<?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>{ enygmatic } &#187; Coding</title>
	<atom:link href="http://blog.enygmatic.com/category/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.enygmatic.com</link>
	<description>mobilis in mobili</description>
	<lastBuildDate>Thu, 26 Jan 2012 17:46:12 +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>One Month in Singapore</title>
		<link>http://blog.enygmatic.com/2011/10/20/one-month-in-singapore/</link>
		<comments>http://blog.enygmatic.com/2011/10/20/one-month-in-singapore/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 18:03:30 +0000</pubDate>
		<dc:creator>enygmatic</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Infographic]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.enygmatic.com/?p=733</guid>
		<description><![CDATA[Before you think that I spent the last one month in Singapore, let me say upfront that this post is about a little big data thought experiment involving Singapore  and a whole lot of tweets. Some time back Eric Fischer posted some amazing maps on Flickr and elsewhere on the web visualizing tweets from Twitter [...]]]></description>
			<content:encoded><![CDATA[<p>Before  you think that I spent the last one month in Singapore, let me say  upfront that this post is about a little big data thought experiment  involving Singapore  and a whole lot of tweets.<br />
Some  time back <a title="Eric Fischer - Twitter Profile" href="http://twitter.com/enf" target="_blank">Eric Fischer</a> posted <a title="Flickr - See Something Say Something Set" href="http://www.flickr.com/photos/walkingsf/sets/72157627140310742/with/5912385701/" target="_blank">some amazing maps on Flickr</a> and elsewhere  on the web visualizing tweets from Twitter and Flickr. He basically  plotted locations from where people tweeted and posted photos to Flickr  from. The result &#8211; a beautiful map of the area which looks more like a  night time view of the area from space!!<br />
Seeing  this I was inspired to try the same. Initially I thought of trying it  for Indian cities, however it seems that geographic co-ordinates are  hard to come by for tweets from India. So then I randomly chose  Singapore for this little experiment.<br />
I  set up a small Ruby script that polled Twitter’s search API once every  few minutes and pulled tweets from Singapore. These were then logged and  stored onto simple text files. I ran this script for little over a  month (August to September) and managed to collect about 225,000 tweets.  Plotting them using R (without any projections) gave rise to this  beautiful visualization.</p>
<div id="attachment_734" class="wp-caption alignnone" style="width: 686px"><img class="size-full wp-image-734" title="Singapore Twitter Map" src="http://enygmatic.com/blog/wp-content/uploads/2011/10/twittermap2.jpg" alt="Singapore Twitter Map" width="676" height="417" /><p class="wp-caption-text">Singapore Twitter Map</p></div>
<p>Some  interesting features immediately come to light here. For instance the  two huge vacant holes on the plot correspond to the two large national  parks in Singapore. Concentration of tweets in other places also brings  to light roads and other transportation conduits.</p>
<p>I  also did some analysis around tweets by hour and day of week and kind  of reverse geo-coded popular locations to figure out where people were  tweeting from on weekends. The result of that exercise gave this  interesting tag cloud</p>
<div id="attachment_735" class="wp-caption alignnone" style="width: 787px"><img class="size-full wp-image-735" title="Popular Places on the weekend" src="http://enygmatic.com/blog/wp-content/uploads/2011/10/clouds-3.png" alt="Popular Places on the weekend" width="777" height="497" /><p class="wp-caption-text">Popular Places on the weekend</p></div>
<p>I’ve put all this together in one gorgeous infographic which you can see <a title="Flickr - One Month in Singapore" href="http://www.flickr.com/photos/enygmatic/6264346032/" target="_blank">here</a>.<br />
PS: Many Thanks to good pal Jayaram for helping me put the map together in R</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.enygmatic.com/2011/10/20/one-month-in-singapore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Value Investing</title>
		<link>http://blog.enygmatic.com/2011/09/21/testing-value-investing/</link>
		<comments>http://blog.enygmatic.com/2011/09/21/testing-value-investing/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 10:57:52 +0000</pubDate>
		<dc:creator>enygmatic</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[Value investing]]></category>

		<guid isPermaLink="false">http://blog.enygmatic.com/?p=716</guid>
		<description><![CDATA[I’ve been fascinated by the world of algorithmic trading, portfolio selection and the general use of computers and technology to make trading and investment decisions. Of late, I’ve also been dabbling with markets, and while my stock picking has been fairly decent – there have been some huge lemons picked up along the way as [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been fascinated by the world of algorithmic trading, portfolio selection and the general use of computers and technology to make trading and investment decisions. Of late, I’ve also been dabbling with markets, and while my stock picking has been fairly decent – there have been some huge lemons picked up along the way as well. So I wondered if there was a way to systematically invest and diversify away the risk using historical data and trends.</p>
<p>Of course, investing in a  good mutual fund through a Systematic Investment Plan (SIP) is a no-brainer and I believe the corner stone of every portfolio (especially if you do not have the time to micro-manage your portfolio) should start there. However, I also believe it’s possible to augment returns from mutual funds through investing in stocks directly or through derivatives.</p>
<p>Which brings me back to the fundamental question – is there a fairly “sound” system for getting into the stock market and exiting profitably? From the little I know about the field, most academic research has been done in the “value investing” school of thought i.e. investing in stocks that are trading at less than their intrinsic values.</p>
<p>So I decided to investigate this further by building a “paper” portfolio of value stocks. I chose Benjamin Graham’s Net Current Asset Value (NCAV) per share as the criterion to filter stocks.  The NCAV per share is calculated as per the formula below:<br />
<a href="http://enygmatic.com/blog/wp-content/uploads/2011/09/NCAV-form.png"><img class="alignnone size-full wp-image-717" title="NCAV formula" src="http://enygmatic.com/blog/wp-content/uploads/2011/09/NCAV-form.png" alt="NCAV formula" width="376" height="53" /></a><br />
What the NCAV per share effectively indicates, is a “realistic” cash value that may be available to the shareholder once all liabilities have been met.  Graham recommends buying stock that trades at approximately 67% or less of the NCAV per share. A study by the State University of New York has shown that investors could have earned an average return of 29.4% over a 20 year period, by picking stocks by this method and holding them for a year.<br />
Once the filter criterion was decided on, I needed a universe of stocks to choose from. For the universe of stocks to choose from, I restricted myself to the stocks that compose the BSE SMALL CAP index (which also served as my benchmark). I then ran a series of scripts that I wrote in Ruby to pull the data needed to calculate NCAV from Yahoo Finance. Once I had all the data in a spreadsheet, I calculated the NCAV for all the stocks.<br />
While Graham recommends only picking up stocks that trade at values significantly below their NCAV, I chose to go with stocks that were trading at prices that were at the NCAV or below it. Using this filter, I got a portfolio of about 17 stocks. The next step in my opinion should have been either of the following:</p>
<ul>
<li> Use the Markowitz optimum portfolio theory and allocate a fixed amount of capital among the stocks chosen so as to minimize portfolio risk OR</li>
<li>Do further fundamental analysis (which most investment “gurus” recommend) and pick only those that are “fundamentally” strong</li>
</ul>
<p>However, since I was pressed for time – I took the easy way out.</p>
<p>I just created a “paper” portfolio containing 100 shares of each stock. Slightly “unscientific” I know, but bear with me.<br />
So with this small little NCAV portfolio – I began tracking the performance of the portfolio. And the results have been interesting, to say the least.</p>
<div id="attachment_718" class="wp-caption alignnone" style="width: 863px"><a href="http://enygmatic.com/blog/wp-content/uploads/2011/09/NCAV.png"><img class="size-full wp-image-718" title="NCAV Portfolio Performance" src="http://enygmatic.com/blog/wp-content/uploads/2011/09/NCAV.png" alt="NCAV Portfolio Performance" width="853" height="299" /></a><p class="wp-caption-text">NCAV Portfolio Performance</p></div>
<p>The portfolio has significantly outperformed the benchmark over the last month. The returns from the benchmark BSE SMALL CAP index have been about -2.14% while the portfolio has returned about +9.09%.<br />
While I agree that the time period is probably a bit short for significant analysis, I think the results warrant further investigation. Over the next few months, I will actively monitor my little test portfolio and update this blog. Lets see how it goes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.enygmatic.com/2011/09/21/testing-value-investing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The API reduction</title>
		<link>http://blog.enygmatic.com/2011/05/29/the-api-reduction/</link>
		<comments>http://blog.enygmatic.com/2011/05/29/the-api-reduction/#comments</comments>
		<pubDate>Sun, 29 May 2011 17:41:27 +0000</pubDate>
		<dc:creator>enygmatic</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Current Affairs]]></category>

		<guid isPermaLink="false">http://blog.enygmatic.com/?p=697</guid>
		<description><![CDATA[Recently, Google announced that it was depreciating some of it&#8217;s APIs (including the very popular Translate API). This announcement was met with a fair amount of flak from the developer community, with people going as far to say that they would never ever use a Google API ever again. Here&#8217;s what I don&#8217;t get, people [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, Google <a title="Spring Cleaning for some of our APIs" href="http://googlecode.blogspot.com/2011/05/spring-cleaning-for-some-of-our-apis.html" target="_blank">announced</a> that it was depreciating some of it&#8217;s APIs (including the very popular Translate API). This announcement was met with a fair amount of flak from the developer community, with people going as far to say that they would never ever use a Google API ever again.<br />
Here&#8217;s what I don&#8217;t get, people are complaining in spite of the fact that:</p>
<ol>
<li> The APIs are Google&#8217;s property. It can do as it wants with them.</li>
<li>Most of the people who are crying out against this haven&#8217;t contributed in any form to either the API development or maintenance.</li>
<li>Almost all the depreciated APIs have replacements.</li>
<li>Quite a few of the APIs were still under API Labs – which means that they were experimental.</li>
<li>The Termination clause in the Terms &amp; Conditions (which I assume most people expecting to run a business / project based on a API would read) clearly states that Google may terminate the API if, I quote:<br />
<blockquote><p>the provision of the Services to you by Google is, in Google’s opinion, no longer commercially viable.</p></blockquote>
</li>
<li>The Warranty clause in the Terms &amp; Conditions further states that:<br />
<blockquote><p>IN PARTICULAR, GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS DO NOT REPRESENT OR WARRANT TO YOU THAT:</p>
<ol>
<li>YOUR USE OF THE SERVICES WILL MEET YOUR REQUIREMENTS,</li>
<li>YOUR USE OF THE SERVICES WILL BE UNINTERRUPTED, TIMELY, SECURE OR FREE FROM ERROR,</li>
<li>ANY INFORMATION OBTAINED BY YOU AS A RESULT OF YOUR USE OF THE SERVICES WILL BE ACCURATE OR RELIABLE, AND</li>
<li>THAT DEFECTS IN THE OPERATION OR FUNCTIONALITY OF ANY SOFTWARE PROVIDED TO YOU AS PART OF THE SERVICES WILL BE CORRECTED.</li>
</ol>
</blockquote>
</li>
</ol>
<p>(Note the emphasis on the ALL CAPS text)<br />
So, given all this, did all those complainers really expect to keep making  money off Google&#8217;s efforts and data in perpetuity? And is basing a business model on a API, that clearly states that it might vanish overnight, really such a smart idea?</p>
<p>Google also drew a lot of flak for pulling the plug on Translate citing API abuse as the reason. A lot of people felt that, given how “smart” Google was, they should have found some other way round the abuse problem. My take on this is that, people give Google some credit. Given how “smart” they are I&#8217;m sure they must have explored all avenues before coming to that drastic conclusion.</p>
<p>I think in the end, its the developer community that needs to shape up and stop having unrealistic expectations of experimental APIs and be ready to change legacy code when API&#8217;s depreciate or stop using them. And Businesses need to realize that depending on other companies for core functionality is never a smart move. I&#8217;ve already been involved this year with cases that show how both depending on API&#8217;s and building missing functionality using API&#8217;s can seriously boomerang.</p>
<p>Thats my 10 cents on this issue. What&#8217;s your take on it?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.enygmatic.com/2011/05/29/the-api-reduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tedx Mumbai &#8211; A Twitter Analysis</title>
		<link>http://blog.enygmatic.com/2010/05/26/tedx-mumbai-a-twitter-analysis/</link>
		<comments>http://blog.enygmatic.com/2010/05/26/tedx-mumbai-a-twitter-analysis/#comments</comments>
		<pubDate>Wed, 26 May 2010 19:07:37 +0000</pubDate>
		<dc:creator>enygmatic</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[tedx mumbai]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.enygmatic.com/?p=590</guid>
		<description><![CDATA[Tedx Mumbai was an independently organized TED event that was held in at BlueFrog, Mumbai on 3rd April 2010. Unfortunately for me, the event was held on the day before Easter, and so even applying to attend was out. Around the same time I was dabbling with a Ruby Script to automatically collate tweets matching [...]]]></description>
			<content:encoded><![CDATA[<p>Tedx Mumbai was an independently organized TED event that was held in at BlueFrog, Mumbai on 3rd April 2010. Unfortunately for me, the event was held on the day before Easter, and so even applying to attend was out. Around the same time I was dabbling with a Ruby Script to automatically collate tweets matching a few keywords and tags. So I thought, let’s collate all the tweets from the event and then see the event from the eyes of twitter.<br />
Some frantic coding later, my script was live on my server and I was set. Or so I thought.<br />
The very next day, halfway on the way to work I realized that I had forgotten to setup a script to monitor the hashtag for the event. Out came my new Android phone to the rescue!! I managed to access my server, through Net2FTP and then copied the existing script and modified it using a web based editor and set up the script using my control panel, all from the phone. Whew!!<br />
Net result was that I was setup, but about an hour late, so I missed out on a few tweets. I let my scripts run for the entire day as well as the next. What follows is an attempt to make some sense of the many voices out there. I do hope this bit of random craziness, gives you something interesting to read.<span id="more-590"></span></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-IN</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> <w:UseFELayout /> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val=" " /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Cambria; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073741899 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	text-align:justify; 	text-justify:inter-ideograph; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Cambria","serif"; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:major-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:major-fareast; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:major-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:major-bidi; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US; 	mso-bidi-language:EN-US;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Cambria; 	mso-ascii-theme-font:major-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:major-fareast; 	mso-hansi-font-family:Cambria; 	mso-hansi-theme-font:major-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:major-bidi; 	mso-ansi-language:EN-US; 	mso-fareast-language:EN-US; 	mso-bidi-language:EN-US;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 72.0pt 72.0pt 72.0pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} --> <!--[endif]--></p>
<p class="MsoNormal"><span lang="EN-US">Tedx Mumbai was an independently organized TED event that was held in at BlueFrog, Mumbai on 3<sup>rd</sup> April 2010. Unfortunately for me, the event was held on the day before Easter, and so even applying to attend was out. Around the same time I was dabbling with a Ruby Script to automatically collate tweets matching a few keywords and tags. So I thought, let’s collate all the tweets from the event and then see the event from the eyes of twitter. </span></p>
<p class="MsoNormal"><span lang="EN-US">Some frantic coding later, my script was live on my server and I was set. Or so I thought. </span></p>
<p class="MsoNormal"><span lang="EN-US">The very next day, halfway on the way to work I realized that I had forgotten to setup a script to monitor the hashtag for the event. Out came my new Android phone to the rescue!! I managed to access my server, through Net2FTP and then copied the existing script and modified it using a web based editor and set up the script using my control panel, all from the phone. Whew!!</span></p>
<p class="MsoNormal"><span lang="EN-US">Net result was that I was setup, but about an hour late, so I missed out on a few tweets. I let my scripts run for the entire day as well as the next. What follows is an attempt to make some sense of the many voices out there. I do hope this bit of random craziness, gives you something interesting to read.</span></p>
</div>
<p>Read the rest of this piece of analysis below&#8230;</p>
<p><a style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;" title="View Tedx Mumbai on Scribd" href="http://www.scribd.com/doc/32061226/Tedx-Mumbai">Tedx Mumbai</a> <object id="doc_266478108116354" style="outline:none;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="doc_266478108116354" /><param name="wmode" value="opaque" /><param name="bgcolor" value="#ffffff" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="FlashVars" value="document_id=32061226&amp;access_key=key-237x98hav307emgij31i&amp;page=1&amp;viewMode=list" /><param name="src" value="http://d1.scribdassets.com/ScribdViewer.swf" /><param name="allowfullscreen" value="true" /><param name="flashvars" value="document_id=32061226&amp;access_key=key-237x98hav307emgij31i&amp;page=1&amp;viewMode=list" /><embed id="doc_266478108116354" style="outline:none;" type="application/x-shockwave-flash" width="100%" height="600" src="http://d1.scribdassets.com/ScribdViewer.swf" flashvars="document_id=32061226&amp;access_key=key-237x98hav307emgij31i&amp;page=1&amp;viewMode=list" allowscriptaccess="always" allowfullscreen="true" bgcolor="#ffffff" wmode="opaque" name="doc_266478108116354"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.enygmatic.com/2010/05/26/tedx-mumbai-a-twitter-analysis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Amazon Wish Lists in WordPress</title>
		<link>http://blog.enygmatic.com/2009/08/03/amazon-wish-lists-in-wordpress/</link>
		<comments>http://blog.enygmatic.com/2009/08/03/amazon-wish-lists-in-wordpress/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 16:42:36 +0000</pubDate>
		<dc:creator>enygmatic</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[API]]></category>

		<guid isPermaLink="false">http://blog.enygmatic.com/?p=414</guid>
		<description><![CDATA[Recently Bhooshan contacted me for help in translating his ideas for a re-design of his existing blog. One of the features he had in mind was the display of his Amazon Wishlist on his blog. Now, I understand that there are several plug-ins that let you do that, so I thought that this should be [...]]]></description>
			<content:encoded><![CDATA[<p>Recently <a title="Bhooshan" href="http://www.bhooshan.com/" target="_blank">Bhooshan </a>contacted me for help in translating his ideas for a re-design of his existing blog. One of the features he had in mind was the display of his Amazon Wishlist on his blog. Now, I understand that there are several plug-ins that let you do that, so I thought that this should be easy as pie. It turns out that it wasn&#8217;t.</p>
<p>I first installed one of the most popular plug-ins called <a title="AVH-Amazon" href="http://wordpress.org/extend/plugins/avh-amazon/" target="_blank">AVH-Amazon</a>. This is one of the most extensive plug-ins available for WordPress, so I figured that it ought to do the job. However, after installation I learned that due to a change in Amazon policy I would need to register at Amazon Web services and get a secret API key. The plug-in author didn&#8217;t provide one, as the key was going to be used by Amazon to monitor API usage and bill customers for use of those parts of its API that it charged a service fee for. Naturally the plug-in author didn&#8217;t want to risk it with his own API key, due to potential for misuse.</p>
<p>So faced with this roadblock and not wanting to go the extra mile and get an API key, I started looking for alternatives. I remembered that Amazon provided a RSS feed for a users Wishlist items. So I thought, what if I managed to extract the information from the feed itself ? As it is, I just wanted the item title, image and link to the item page, all of which were there in feed. Some tinkering in PHP and a few minutes later, I managed to parse the feed and show the items from the Wishlist. Voilà !! Instant Wishlist. <img src='http://enygmatic.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>While I am happy with the result so far, I was wondering if there are any other good plug-ins that would let me do this a bit more efficiently. Any ideas ?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.enygmatic.com/2009/08/03/amazon-wish-lists-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Labs goes live !!</title>
		<link>http://blog.enygmatic.com/2008/03/10/labs-goes-live/</link>
		<comments>http://blog.enygmatic.com/2008/03/10/labs-goes-live/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 16:34:43 +0000</pubDate>
		<dc:creator>enygmatic</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://blog.enygmatic.com/?p=78</guid>
		<description><![CDATA[After a long delay, Labs is finally online. You can check out complete experiments and projects as well as read some articles that I have written. The Labs section will primarily showcase some of my small open source based projects as well articles and papers. The very first project available for download is Loupe, the [...]]]></description>
			<content:encoded><![CDATA[<p>After a long delay, <a href="http://labs.enygmatic.com" title="Labs" target="_blank">Labs </a>is finally online. You can check out complete experiments and projects as well as read some articles that I have written. The Labs section will primarily showcase some of my small open source based projects as well articles and papers.</p>
<p>The very first project available for download is Loupe, the rails+flickr image gallery. This is the same gallery that I run my photography site on. So please visit the site, and download and try the scripts. Any feedback would of course be welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.enygmatic.com/2008/03/10/labs-goes-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal</title>
		<link>http://blog.enygmatic.com/2008/02/24/drupal/</link>
		<comments>http://blog.enygmatic.com/2008/02/24/drupal/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 09:32:53 +0000</pubDate>
		<dc:creator>enygmatic</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.enygmatic.com/?p=72</guid>
		<description><![CDATA[I&#8217;ve been playing around with the open source CMS, Drupal. I wanted a CMS to use for my Labs section, and wanted something that was easy to set up and use. I have used Joomla previously, and while the set up is a no-brainer, feature wise Joomla is a bit more tedious to use. Good [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing around with the open source CMS, <a href="http://drupal.org" title="Drupal" target="_blank">Drupal</a>. I wanted a CMS to use for my Labs section, and wanted something that was easy to set up and use. I have used <a href="http://www.joomla.org" title="Joomla" target="_blank">Joomla</a> previously, and while the set up is a no-brainer, feature wise Joomla is a bit more tedious to use. Good thing about Joomla is that it supports almost everything one could want, however to get the specific output from it, I had to tinker with a gazillion settings &#8211; something I didn&#8217;t quite enjoy.</p>
<p>But I digress, so back to Drupal. I took to Drupal since it seemed to be easier to set up and use. However in hindsight I think I was mistaken.</p>
<p><span id="more-72"></span>Initially setting  up the system was quite easy. Theme and module installation was also quite simple. However, once the initial work was done the deficiencies started becoming apparent. For starters, the first thing I noticed was that there was no rich text editor. While this is more of a personal preference and I understand that some people might not want to use one, I was quite surprised that I had to actually install a module manually to get it working. Then also there were a lot of little things like no way to turn off breadcrumbs without physically editing the theme files, and no way to turn off the display of the author in a blog posts etc.</p>
<p>On the plus side, it&#8217;s blocks and taxonomy features are quite powerful and I really liked the flexibility that these features gave. But then again, on the negative side documentation on specific things that might be useful to a developer like a database structure and relationship between tables etc was not really easily found. I&#8217;m sure that the documentation might exist somewhere, just that I wasn&#8217;t able to find it. At the end of the day, I had to try and figure out things from the DB for some simple things I wanted to fetch and display. Though it does have a great API, with a nice DB abstraction layer, all this doesn&#8217;t really help if you don&#8217;t know what tables to query, now does it ?<br />
To summarize, Drupal is  a powerful, clean and extensible CMS however if you want to very customized feature set for you site and don&#8217;t want to get your hands dirty in code then maybe Drupal isn&#8217;t for you.</p>
<p><strong>Technorati Tags</strong>: <a href="http://www.technorati.com/tag/Drupal" rel="tag">Drupal</a>,  <a href="http://www.technorati.com/tag/CMS" rel="tag">CMS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.enygmatic.com/2008/02/24/drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

