<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5065406</id><updated>2024-09-10T06:17:21.959-07:00</updated><category term="Java PHP Facebook"/><category term="Software Product marketing Telugu movie industry"/><category term="Systems Products SVPMA  Frog Design"/><title type='text'>Radha Popuri&#39;s blog</title><subtitle type='html'>Gyaana - My thoughts on Software, Technology, Entrepreneurship and other stuff. Gyaana means knowledge in Sanskrit.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5065406.post-6141109559445295666</id><published>2013-09-29T21:19:00.003-07:00</published><updated>2013-09-29T21:19:44.539-07:00</updated><title type='text'>Higher Order functions in Scala</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
The other day I was experimenting with functional programming in scala and &amp;nbsp;the concept of first class functions.&lt;br /&gt;
&lt;br /&gt;
A programming language is said to support first class functions if&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Functions can be passed as parameters to another function.&lt;/li&gt;
&lt;li&gt;Functions can be returned from another function.&lt;/li&gt;
&lt;li&gt;Functions can be assigned to a variable in the same ways as any other first class object or primitive data types can be assigned to a variable.&lt;/li&gt;
&lt;li&gt;Functions can be defined within another function.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
A corollary to this is that first class functions in a programming language lead to the language supporting closures since it has to clearly define what variables and values are being referred to by inner functions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Exploring all these things in Scala made me write some sample code to demonstrate these concepts.&lt;/div&gt;
&lt;div&gt;
Below is a scala function which demonstrates all these concepts.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
// 1.Takes a function as input,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
// 2.creates a nested function and assigns it to a variable,&lt;/div&gt;
&lt;div&gt;
// &amp;nbsp;3. applies the input function to input variables&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;// 4. returns a function&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; def firstclassfunc(inputfunc:(Int)=&amp;gt; Int, inputparam:Int): (Int,Int) =&amp;gt; Int = {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; //val innerfunc = (x:Int, y:Int) =&amp;gt; inputfunc(inputparam+x+y)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; val innerfunctionliteral = &amp;nbsp;(x:Int, y:Int)=&amp;gt; { inputfunc(inputparam+x+y) }&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; def anotherinnerfunc(x:Int, y:Int):Int = {inputfunc(inputparam+x+y)}&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; val innerfunctionvalclassrepresentation = new Function2[Int, Int, Int] {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;def apply(x: Int, y:Int): Int = inputfunc(inputparam+x+y)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; val innerfuncdefvalpartiallyapplied = &amp;nbsp;anotherinnerfunc _&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; val innerfuncdefvalinstantiated = anotherinnerfunc(1,2);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; // All of the below scala mechanisms work. As long as we can return a function that can still has accept //two &amp;nbsp;free variables, it seems we conform to the parent functions&#39; return type definition of (Int,Int) =&amp;gt; Int&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; return innerfunctionliteral&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; // return anotherinnerfunc _&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;// &amp;nbsp;return innerfunctionvalclassrepresentation&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;// &amp;nbsp; return innerfuncdefvalpartiallyapplied&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;// &amp;nbsp;return anotherinnerfunc(_,_)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;// return innerfunctionval&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; }&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/6141109559445295666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/6141109559445295666' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/6141109559445295666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/6141109559445295666'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2013/09/higher-order-functions-in-scala.html' title='Higher Order functions in Scala'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-443226224242779410</id><published>2010-08-23T17:12:00.000-07:00</published><updated>2010-09-01T16:04:49.407-07:00</updated><title type='text'>Big Data - Now and the future</title><content type='html'>Data, data and more data !! The era of big data is upon us. Tera byte  data sets are slowly becoming common place and exa and peta byte data  sets are expected soon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What are the underlying trends that  caused the explosion of big data - or more aptly semi structured big  data? On the web, the first one is the rise of Web search and the second  one is the rise of social networking.&lt;br /&gt;&lt;br /&gt;Search companies like Google needed a way to &lt;a href=&quot;http://research.google.com/archive/googlecluster.html&quot;&gt;index the entire we&lt;/a&gt;&lt;a href=&quot;http://research.google.com/archive/googlecluster.html&quot;&gt;b&lt;/a&gt; on their machines. Google came up with the concept of &lt;a href=&quot;http://labs.google.com/papers/mapreduce-osdi04.pdf&quot;&gt;MapReduce - a data processing framework&lt;/a&gt;  on commodity machines to do this cost effectively. Open source  implementations of MapReduce- named &#39;Hadoop&#39; soon followed to solve  these data processing issues. Social networking also required that the &lt;span id=&quot;SPELLING_ERROR_6&quot; class=&quot;blsp-spelling-error&quot;&gt;Facebooks&lt;/span&gt; and &lt;span id=&quot;SPELLING_ERROR_7&quot; class=&quot;blsp-spelling-error&quot;&gt;LinkedIns&lt;/span&gt;  of the world , store huge amounts of user generated data coming in at a  very high rate. They then had to index it, analyze it and &lt;a href=&quot;http://sna-projects.com/blog/2009/06/building-a-1-tb-data-cycle-at-linkedin-with-hadoop-and-project-voldemort/&quot;&gt;generate insights&lt;/a&gt; from it to drive further user adoption and &lt;span id=&quot;SPELLING_ERROR_8&quot; class=&quot;blsp-spelling-error&quot;&gt;virality&lt;/span&gt;.  A lot of this data was semi-structured( did not fit in a database  neatly) and required a lot more computation to generate insights, than  the traditional BI model.&lt;br /&gt;This is leading to the rise of the so called Big Data Stack at consumer internet companies and it has five major components&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Big Data Storage&lt;/span&gt; : &lt;span id=&quot;SPELLING_ERROR_11&quot; class=&quot;blsp-spelling-error&quot;&gt;NOSQL&lt;/span&gt; databases - Cassandra/&lt;span id=&quot;SPELLING_ERROR_12&quot; class=&quot;blsp-spelling-error&quot;&gt;Voldemort&lt;/span&gt;, &lt;span id=&quot;SPELLING_ERROR_13&quot; class=&quot;blsp-spelling-error&quot;&gt;HDFS&lt;/span&gt;, &lt;span id=&quot;SPELLING_ERROR_14&quot; class=&quot;blsp-spelling-error&quot;&gt;HBase&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Big Data Indexing and index storage&lt;/span&gt; : &lt;span id=&quot;SPELLING_ERROR_15&quot; class=&quot;blsp-spelling-error&quot;&gt;Lucene&lt;/span&gt;, Katta or &lt;span id=&quot;SPELLING_ERROR_16&quot; class=&quot;blsp-spelling-error&quot;&gt;NOSQL&lt;/span&gt; stores like above; Zoie (real time indexing from Linkedin) ; Bobo for faceted search&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Big Data Processing&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; and Analytics&lt;/span&gt;: &lt;span id=&quot;SPELLING_ERROR_17&quot; class=&quot;blsp-spelling-error&quot;&gt;Hadoop&lt;/span&gt;, Hive, Pig&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Big Data Workflows&lt;/span&gt;: Oozie( Yahoo), Azkaban(Linkedin), Cascading(Chris Wenzel)&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Big Data and Big Log transportation&lt;/span&gt; : &lt;span id=&quot;SPELLING_ERROR_18&quot; class=&quot;blsp-spelling-error&quot;&gt;Chukwa&lt;/span&gt;, Flume, Scribe etc&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Big Data Intelligence&lt;/span&gt; : Mahout (A Machine Learning framework -that can run on top of &lt;span id=&quot;SPELLING_ERROR_19&quot; class=&quot;blsp-spelling-error&quot;&gt;Hadoop&lt;/span&gt;)&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Big Data Sharding:  &lt;/span&gt;&lt;span&gt;Gizzard&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; ( &lt;/span&gt;&lt;span&gt;A middleware sharding framework developed by Twitter&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;(The exact use cases of the above stack and the variations at various &lt;span id=&quot;SPELLING_ERROR_20&quot; class=&quot;blsp-spelling-error&quot;&gt;internet&lt;/span&gt; companies merits its own discussion and is outside the scope of this article; I will address this in another post.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Traditional  Fortune 500 enterprises have long relied on an enterprise architecture  stack consisting of RDBMS and BI software running on high-end servers;  However, there was no good way to handle unstructured and semi  structured data until recently. As more ideas like user generated data  percolate from the consumer &lt;span id=&quot;SPELLING_ERROR_23&quot; class=&quot;blsp-spelling-error&quot;&gt;internet &lt;/span&gt;into  the enterprise, enterprises are beginning to see the same big data  issues that were first experienced in consumer internet space. There is  also a growing realization that data can now be processed cost  effectively to generate hidden insights and drive competitive advantage.&lt;br /&gt;&lt;br /&gt;&lt;span id=&quot;SPELLING_ERROR_25&quot; class=&quot;blsp-spelling-error&quot;&gt;However today&#39;s CIO&#39;s&lt;/span&gt;  lack the tools needed to manage this data. Even though this new stack  and frameworks are getting mature, the skillsets currently needed by the  IT staff to handle these new frameworks is very high. And every &lt;span id=&quot;SPELLING_ERROR_28&quot; class=&quot;blsp-spelling-error&quot;&gt;CIO&lt;/span&gt; is pressed on budget and under pressure to deliver value to their business using minimal staff. I think we will see a lot of tools and processes develop around big data ti ease the transition to the enterprise.&lt;br /&gt;&lt;br /&gt;It should be an interesting space to watch!!</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/443226224242779410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/443226224242779410' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/443226224242779410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/443226224242779410'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2010/08/big-data-now-and-future.html' title='Big Data - Now and the future'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-7055109956772196336</id><published>2010-01-29T17:35:00.000-08:00</published><updated>2010-01-29T18:08:55.263-08:00</updated><title type='text'>Current perspectives on Scalability - A buffet from various Internet scale companies</title><content type='html'>FaceBook:&lt;br /&gt;Dark Launch&lt;br /&gt;Use(functional) concurrency  supporting languages basd servers for applications which map to a parallel environment more.&lt;br /&gt;Use straight forward HTTP web servers for req-response style requests.&lt;br /&gt;Use C++ whenever efficiency/logging is required.&lt;br /&gt;&lt;br /&gt;Develop/use NOSQL based approaches(Cassandra) for semi-structured/unstructured data that can tolerate relaxed consistency.&lt;br /&gt;&lt;br /&gt;Develop your own  Storage system (which does not require all the metadata and inode entries generally required by general POSIX systems) for photos to get rid of expensive CDN&#39;s.&lt;br /&gt;&lt;br /&gt;Scribe - Their own distributed/reliable Logging System.&lt;br /&gt;&lt;br /&gt;Do not use too many fine grained services - I have seen this problem in companies where too many fine grained services, then result in a drop order on deployment day (pretty painful).&lt;br /&gt;&lt;br /&gt;No service private schemas ( Then how do they make changes to databases in an isolated way).&lt;br /&gt;Swim Lanes</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/7055109956772196336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/7055109956772196336' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7055109956772196336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7055109956772196336'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2010/01/current-perspectives-on-scalability.html' title='Current perspectives on Scalability - A buffet from various Internet scale companies'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-6157133893741527408</id><published>2010-01-21T12:40:00.000-08:00</published><updated>2010-01-21T12:43:12.584-08:00</updated><title type='text'>Business Skills for Technology executives</title><content type='html'>I was reading one of the  blog posts from  AKF Partners the other day, where they talk about the &lt;a href=&quot;http://akfpartners.com/techblog/2008/06/20/business-acumen-and-the-ciocto/&quot;&gt;business skills that need to be acquired by Technology Executives&lt;/a&gt;.&lt;br /&gt;It is pretty coincidental, that I started on this exact quest some time ago.&lt;br /&gt;&lt;br /&gt;The approach is pretty simple.&lt;br /&gt;1) Got to personalmba.com recommended reading list  http://personalmba.com/best-business-books/&lt;br /&gt;2) Read one book on each topic - whenever you have time&lt;br /&gt;3) So far I understood Competitive Strategy, Positioning and a very basic way to read financial reports and a number of other skills too.&lt;br /&gt;4) I felt this was the best approach in Silicon Valley - short of a full time MBA program.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/6157133893741527408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/6157133893741527408' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/6157133893741527408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/6157133893741527408'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2010/01/business-skills-for-technology.html' title='Business Skills for Technology executives'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-68959647620370152</id><published>2010-01-19T14:47:00.000-08:00</published><updated>2010-01-19T14:54:19.660-08:00</updated><title type='text'>An Architecture to learn from:FaceBook Chat</title><content type='html'>Many times a programming language is just a tool.. Sometimes it is a differentiator&lt;br /&gt;&lt;br /&gt;At Facebook , they have used Erlang mostly for its lightweight concurrency and its actors model concurrency( ErLang calls them Channels; Scala calls them actors)&lt;br /&gt;&lt;br /&gt;This has real implications in terms of how many machines Facebook has to buy to support chat; I am sure they cut their hardware requirements by at least half from what they would have needed if they went with a traditional request/response model; Shows how a good architecture means real money saved for hight traffic sites.&lt;br /&gt;&lt;br /&gt;If you want to learn how Facebook  uses Erlang as a differentiator,  go through this presentation&lt;br /&gt;There is a pdf somewhere also which explains the architecture in more detail.&lt;br /&gt;&lt;br /&gt;My only question is this :  Could a java based NIO approach have delivered similar/same results for Facebook;  Is Java threading model so heavy and the semantics of shared memory so ill suited for Facebook chat?</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/68959647620370152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/68959647620370152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/68959647620370152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/68959647620370152'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2010/01/architecture-to-learn-fromfacebook-chat.html' title='An Architecture to learn from:FaceBook Chat'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-8039105301753311916</id><published>2010-01-19T14:44:00.000-08:00</published><updated>2010-01-19T14:47:12.147-08:00</updated><title type='text'>Ramping up on Scala</title><content type='html'>I was getting up to speed on Scala on and off, but never made a concerted effort to get the entire hang of it.&lt;br /&gt;&lt;br /&gt;Yesterday I finally got hold of Martin Odersky&#39;s Programming in Scala book and going at a good pace.&lt;br /&gt;&lt;br /&gt;I would love to use more and more functional programming features in my future career.&lt;br /&gt;&lt;br /&gt;-Radha.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/8039105301753311916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/8039105301753311916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/8039105301753311916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/8039105301753311916'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2010/01/ramping-up-on-scala.html' title='Ramping up on Scala'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-9152979867642902376</id><published>2009-08-14T15:45:00.000-07:00</published><updated>2009-08-14T16:00:32.487-07:00</updated><title type='text'>Competitive Strategy: Analyzing your career and any industry</title><content type='html'>I am into an in-depth study of &lt;a href=&quot;http://www.amazon.com/Competitive-Strategy-Techniques-Industries-Competitors/dp/0684841487&quot;&gt;Michael Porter&#39;s competitive Strategy book&lt;/a&gt; , as part of my effort to understand a number of business concepts.&lt;br /&gt;&lt;br /&gt;I have already gone through a number of marketing books such as&lt;br /&gt;Positioning (Ries/Trout), Seth Godin(All Marketers are Liars ) etc.&lt;br /&gt;&lt;br /&gt;However Porter&#39;s book is in a different class of its own. It gives you a framework to analyze any industry using a five forces framework of  suppliers, buyers, threat of new entrants, substitutes and industry rivalry.&lt;br /&gt;&lt;br /&gt;Some of the stuff is common sense and it seems this stuff is more applicable to late-stage or mature companies  - than startups.&lt;br /&gt;&lt;br /&gt;I am doing an analysis of two entities based on whatever I learned by studying this framework.&lt;br /&gt;The first is that of a Software Engineer&#39;s career in USA.&lt;br /&gt;The second one is of my current employer&#39;s industry.&lt;br /&gt;&lt;br /&gt;Will be following up soon with posts on these subjects.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/9152979867642902376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/9152979867642902376' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/9152979867642902376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/9152979867642902376'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2009/08/competitive-strategy-analyzing-your.html' title='Competitive Strategy: Analyzing your career and any industry'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-2727544594436934144</id><published>2008-04-17T14:31:00.000-07:00</published><updated>2008-04-17T14:45:25.410-07:00</updated><title type='text'>Improve performance of legacy code using Java 5  language features</title><content type='html'>Practical Advice for practical programmers&lt;br /&gt;&lt;br /&gt;As a senior engineer,  you sometimes are thrown  into a situation, where you have to come up with some ways to improve the performance of your server side java multithreaded application.&lt;br /&gt;The code was written over a span of 6-7  years and you have only a vague idea of what it does and does not do. More importantly it uses  java language features that are old. What do you do?&lt;br /&gt;&lt;br /&gt;Before kicking up a profiler and doing memory/CPU profiling - there is something very easy you can do which does not involve all that, provided you can move to  Java 5.&lt;br /&gt;&lt;br /&gt;There are a number of new classes and frameworks in Java 5 which should improve the performance and reduce the boilerplate code you need to write for a multithreaded application.&lt;br /&gt;Here are some of them.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Replace synchronized collections from your old code with new concurrent collections.i.e. of you have a synchronized HashMap - replace it with &lt;span style=&quot;font-style: italic;&quot;&gt;ConcurrentHashMap&lt;/span&gt;. The Concurrent classes in Java 5 perform fine grained locking and hence provide better scalability.&lt;/li&gt;&lt;li&gt;Identify places where you use Java list class with Queue semantics and replace it with the Java &lt;span style=&quot;font-style: italic;&quot;&gt;Queue class , &lt;/span&gt;introduced in version 5 or 6. Java Queue class is much more efficient than the List class, whose interface supports random access.&lt;/li&gt;&lt;li&gt;Use Blocking Queue (or Bounded Blocking queue), whenever possible.&lt;/li&gt;&lt;li&gt;A common pattern in multithreaded Java applications, is the thread pool along with a work queue. See if you can use Java 5 Executor Task Execution framework.&lt;/li&gt;&lt;/ol&gt;These are some of the ideas I got so far from reading Java 5 concurrency book by Brian Goetz.&lt;br /&gt;I will keep posting some more patterns to emulate  as I come across more of them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/2727544594436934144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/2727544594436934144' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2727544594436934144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2727544594436934144'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2008/04/improve-performance-of-legacy-code.html' title='Improve performance of legacy code using Java 5  language features'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-6929027845292522363</id><published>2008-04-14T15:58:00.000-07:00</published><updated>2008-04-14T16:16:09.795-07:00</updated><title type='text'>It is not your Mama&#39;s Java concurrency anymore</title><content type='html'>I have been going through this &lt;a href=&quot;http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601&quot;&gt;great book on Java Concurrency by Brian Goetz&lt;/a&gt;.&lt;br /&gt;I studied a part of this book two years ago but at some point stopped. This time, I am determined to complete it. Reading(nay, Studying) this book makes you realize how much your language(I mean, programming language)  changes/has changed over the years.&lt;br /&gt;&lt;br /&gt;Here is the thing about high-tech and software development.  You start career in this industry as a programmer/developer and you get used to a certain habits of programming or thinking about your programs.  A programming language is essentially a tool for you to produce software.  You start off enthusiastically and attain a certain proficiency/ comfort level to get the job done. Unfortunately, you get to use and actually need a very small percentage of the language to build about anything- provided you have sufficient time. This results in a flat learning curve for most programmers  in their core language. True, they will be learning the latest zing thing framework - which requires changing another 10 xml files - from time to time.&lt;br /&gt;But essentially, their understanding of their language remains stagnant.&lt;br /&gt;&lt;br /&gt;That&#39;s when they need a kick in the pants. This book is such a  kick in  the pants for the average java programmer. This book will make you&lt;br /&gt;&lt;br /&gt;1)Understand JMM(Java Memory model)&lt;br /&gt;2) Understand how badly you are lagging the language synchronization constructs..&lt;br /&gt;3)Clear Misconceptions you have regarding the java synchronization constructs.&lt;br /&gt;&lt;br /&gt;If you are like me, who try to solve  Josh Bloch&#39;s Java puzzlers/bloopers once in a while and fail 30% of the time or more, this book is for you.&lt;br /&gt;&lt;br /&gt;Happy  Reading :)</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/6929027845292522363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/6929027845292522363' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/6929027845292522363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/6929027845292522363'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2008/04/it-is-not-your-mamas-java-concurrency.html' title='It is not your Mama&#39;s Java concurrency anymore'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-2199635266770645894</id><published>2008-02-05T16:16:00.000-08:00</published><updated>2008-02-05T16:22:04.093-08:00</updated><title type='text'>SDForum Technical Events for February</title><content type='html'>There are a number of good Technical events being hosted by SDForum for the month of February.&lt;br /&gt;The SDForum calendar  is &lt;a href=&quot;http://www.sdforum.org/index.cfm?fuseaction=Page.viewPage&amp;amp;pageId=471&quot;&gt;here&lt;/a&gt;&lt;br /&gt;Some good ones I am interested in are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;appOutput&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;span style=&quot;color: rgb(31, 73, 125);&quot;&gt;&lt;span style=&quot;font-family:Verdana;font-size:85%;color:#003366;&quot;&gt;&lt;strong&gt;Java SIG -Improving code with dependency injection and  aspects (Feb 5th)&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;appOutput&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:Verdana;font-size:85%;color:#003366;&quot;&gt;Search SIG - Using the Social Graph / Social Platforms to Enhance Search &amp;amp; Discovery(Feb 12th)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;appOutput&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:Verdana;font-size:85%;color:#003366;&quot;&gt;Web Services SIG- Mashing Up The Enterprise(Feb 26th)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class=&quot;appOutput&quot;&gt;&lt;span style=&quot;font-family:Verdana;font-size:85%;color:#003366;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/2199635266770645894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/2199635266770645894' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2199635266770645894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2199635266770645894'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2008/02/sdforum-technical-events-for-february.html' title='SDForum Technical Events for February'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-4016078315714278667</id><published>2008-02-05T15:00:00.000-08:00</published><updated>2008-02-05T15:15:08.334-08:00</updated><title type='text'>Vendors get serious about Business Event  Processing</title><content type='html'>One of the latest trends in SOA is Event Processing - more importantly Complex Event Processing.&lt;br /&gt;However , everyone hates the word &quot;Complex&quot;, so IBM and other vendors are simply referring to it as Business Event Processing - even though the technology can be used for processing any kind of events.&lt;br /&gt;&lt;br /&gt;So what is really event processing?  Event processing is nothing but processing those events that arise in the  enterprise and making some sense out of them. Have we not been making sense of them with application integration for the last ten years??&lt;br /&gt;&lt;br /&gt;The short answer is NO - because while we might have been integrating applications, synchronizing orders and making enterprises have a consistent view of their systems, we never really derived any higher order meaning from the various events that happen in the enterprise.&lt;br /&gt;&lt;br /&gt;We never really understood why something happens.&lt;br /&gt;&lt;br /&gt;We never understood what multiple events in isolation meant as a whole.&lt;br /&gt;&lt;br /&gt;We never maintained any state regarding those events.&lt;br /&gt;&lt;br /&gt;In essence, we never had the notion of time while processing events, except for a very rudimentary event sequencing.&lt;br /&gt;&lt;br /&gt;About three years ago, I worked on a prototype to demonstrate how event processing could be used in conjunction with our integration broker. It is good to see that these things are now slowlybeing adopted by various enterprises.&lt;br /&gt;&lt;br /&gt;BEA has started using &lt;a href=&quot;http://www.espertech.com/news/20070717_bea.php&quot;&gt;Esper&lt;/a&gt; as its event processing engine in WebLogic Integration Server and IBM has recently acquired AptSoft.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/4016078315714278667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/4016078315714278667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/4016078315714278667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/4016078315714278667'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2008/02/vendors-get-serious-about-business.html' title='Vendors get serious about Business Event  Processing'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-669085329282925722</id><published>2007-10-12T14:14:00.000-07:00</published><updated>2007-10-12T14:22:21.931-07:00</updated><title type='text'>Java rant from Steve Yegge</title><content type='html'>I have missed it all these days but I am rolling on the floor laughing at Steve Yegge&#39;s hilarious blog post..err..&lt;a href=&quot;http://steve-yegge.blogspot.com/2007/09/steveys-tech-news-issue-1.html&quot;&gt; &lt;strong&gt;Tech News&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&quot;&lt;em&gt;you can combine the names of Gang of Four Design Patterns to form new Computer Science concepts that all Java programmers understand, such as the ObserverFactoryBridge, the BridgeFactoryObserver, and the well-known FactoryObserverBridgeChainOfCommandSingletonProxy, beloved of Java programmers everywhere. Java experts at Sun say they&#39;re not sure how many combinations there are of the twenty-three pattern names, but there are &quot;definitely a lot of them&lt;/em&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&quot;&lt;em&gt;Man Dies Waiting for Eclipse to Launch&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;A software engineer in San Jose, CA was found dead at his desk yesterday, apparently having died while waiting for his Java editing program, Eclipse, to finish its boot process.&quot;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Man, That&#39;s funny..</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/669085329282925722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/669085329282925722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/669085329282925722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/669085329282925722'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/10/java-rant-from-steve-yegge.html' title='Java rant from Steve Yegge'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-7719032804942310453</id><published>2007-09-24T17:27:00.000-07:00</published><updated>2007-10-12T11:08:07.036-07:00</updated><title type='text'>Concurrent reading - Three great books</title><content type='html'>I have been reading two great books concurrently. One of them deals with the process of building a product and the other one deals with how do you make a product out of the working software that you have.&lt;br /&gt;&lt;br /&gt;1) &lt;a href=&quot;http://www.amazon.com/gp/reader/0932633439/&quot;&gt;PeopleWare - Productive Projects and Teams&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;How to build a product - which most of the time boils down to how to build a great team and manage them. I will paraphrase Joel Spolsky&#39;s review of the book here, since it correctly summarizes what you will get out of this book.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.amazon.com/gp/reader/0932633439/&quot;&gt;&lt;img style=&quot;FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 166px; CURSOR: hand; HEIGHT: 186px&quot; height=&quot;177&quot; alt=&quot;&quot; src=&quot;http://ecx.images-amazon.com/images/I/51MlUgcSICL._BO2,204,203.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&quot;&lt;em&gt;As summer interns at Microsoft, my friends and I used to take &quot;field trips&quot; to the company supply room to stock up on school supplies. Among the floppy disks, mouse pads, and post-it notes was a stack of small paperback books, so I took one home to read. The book was &lt;/em&gt;&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0932633439/ref=nosim/joelonsoftware/&quot;&gt;&lt;em&gt;Peopleware&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, by Tom DeMarco and Timothy Lister. This book was one of the most influential books I&#39;ve ever read. The best way to describe it would be as an Anti-Dilbert Manifesto. Ever wonder why everybody at Microsoft gets their own office, with walls and a door that shuts? It&#39;s in there. Why do managers give so much leeway to their teams to get things done? That&#39;s in there too. Why are there so many jelled SWAT teams at Microsoft that are remarkably productive? Mainly because Bill Gates has built a company full of managers who read Peopleware. I can&#39;t recommend this book highly enough. It is the one thing every software manager needs to read... not just once, but once a year&quot;.&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;2) &lt;a href=&quot;http://www.amazon.com/dp/1565920643/&quot;&gt;Building a successful Software Business&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This is a book about selling the great product you already built. Everything you need to know about marketing/selling a software product - in fact anything other than building the product itself. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Do you wonder what goes on after you build the product?&lt;/li&gt;&lt;li&gt;Does the word marketing, run circles around your head.&lt;/li&gt;&lt;li&gt;Do you know the various channels through which you can market your product&lt;/li&gt;&lt;li&gt;Want to know how to evaluate a sales pipeline - and factor it into your projections.&lt;/li&gt;&lt;li&gt;What cashflow is and how to manage it.&lt;/li&gt;&lt;li&gt;If so, this book is for you. It is a bit dated(written in 1993) ; However as anyone ever been in business knows - the business aspects of a business don&#39;t really change that much.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;3) The third book is a great book by &lt;a href=&quot;http://www.interface21.com/&quot;&gt;Rod Johnson from Interface 21&lt;/a&gt;, regarding the development of Java Web Applications - without using EJB.&lt;br /&gt;Ever since I have been looking at EJB from some years ago, I have been wondering &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Why all this verbosity? &lt;/li&gt;&lt;li&gt;Why so many constraints on where my objects should inherit from?&lt;/li&gt;&lt;li&gt;Why so much emphasis on EJB and components - instead of pure Objects? What happened to Java being Java? &lt;/li&gt;&lt;li&gt;Why so much repetition, everywhere? &lt;/li&gt;&lt;li&gt;Why so many transfer Objects everywhere? &lt;/li&gt;&lt;li&gt;Why is so much type casting, which defeatsthe whole purpose of Java&#39;s strong typing? &lt;/li&gt;&lt;li&gt;Why so much glue code to connect/wire services/components &lt;/li&gt;&lt;li&gt;Why so much emphasis on RMI? &lt;/li&gt;&lt;li&gt;Why do I need to &lt;strong&gt;deploy&lt;/strong&gt; to test a &quot;Hello World&quot;? &lt;/li&gt;&lt;li&gt;Having been trained in C and Assembly during my college days, I was wondering why so much emphasis to dumb down programming and drive everything from XML files.&lt;br /&gt;&lt;br /&gt;Then I started playing with light-weight frameworks and understood the motivations of EJB and how things can be simplified. I have been postponing reading this book  for a long time and finally got my motivation to pick it up .&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/7719032804942310453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/7719032804942310453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7719032804942310453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7719032804942310453'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/09/concurrent-reading-three-great-books.html' title='Concurrent reading - Three great books'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-7900483513566424543</id><published>2007-09-24T16:45:00.000-07:00</published><updated>2007-09-26T16:00:58.485-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Software Product marketing Telugu movie industry"/><title type='text'>Market principles applied to  the Telugu movie industry</title><content type='html'>Recently I have been reading some books about General and Software marketing, when it occurred to me that some of the marketing principles are also applicable in an entirely different context - the Telugu movie industry and actors.&lt;br /&gt;&lt;br /&gt;For those who don&#39;t know, I hail from a state called Andhra Pradesh in India , and my native language is &lt;span style=&quot;font-style: italic;&quot;&gt;Telugu. &lt;/span&gt;&lt;span&gt;This post is about the various leading actors and we analyze their presence with respect to marketing principles &lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;- positioning, segmentation and differentiation.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Let me define the players in this market&lt;br /&gt;&lt;br /&gt;Leading Male Actors :- Chiranjeevi, Venkatesh, Nagarjuna, BalaKrishna , various others.&lt;br /&gt;&lt;br /&gt;The movie genres are pretty similar to other genres all over the world, with some genres having no parallel in HollyWood. These genres based on audiences are Young/Teens, Family dramas, Action oriented, Young Adult and mature adult&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;.&lt;br /&gt;&lt;br /&gt;You can segment the market further by&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;gender - male vs female dramas&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;feminist oriented&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Ideology driven - religious vs communist vs secular movies&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Locale - rural vs urban&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Tone of the movie - comedy vs serious etc.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;All the leading male and some leading female actors occupy various positions in this multi dimensional market.&lt;br /&gt;&lt;br /&gt;Chirnajeevi is considered the megastar of Telugu film industry. He is considered a very versatile actor who can don any kind of role. As such he has a considerable presence in the industry and he occupies a leading market position in almost all segments. His movies exploit all his histrionic talents in various measures - a feat not easily pulled off by other actors.&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; &lt;/span&gt;&lt;/span&gt;He has produced blockbusters in all the genres he has acted. You can consider him either first or second in all the dimensions (Remember &lt;a href=&quot;http://www.amazon.co.uk/Jack-Welch-G-E-Way-Management/dp/&quot;&gt;Jack Welch&#39;s GE Way&lt;/a&gt;)?which is the reason behind his wide appeal. This is the reason Chiranjeevi&#39;s movies have a story line which also normally has a wide appeal across all age groups.&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Of course, becuase of his wide appeal and positioning, Chiranjeevi is not the best and first choice when a producer wants to make a movie to cater to specific audiences. The presence of Chirnajeevi leaves some few niches big enough to support a number of other players, who specialzie in one or two particualr niches/genres.&lt;br /&gt;&lt;br /&gt;Nagarjuna filles one of these niches very well. He started off as a young action hero but over the years has positioned himself as somone whose movies appeal to young/young adult/urban upcoming professionals and young/teenage girls. He used his natural strengths - good looks and styling to position himself. Even Chiranjeevi could not command as much loyalty as Nagarjuna does in this segment at a similar stage of his career. He rarely plays rural characters and supplements his weak comedy skills with the help of other comedians in his movies. Lately he has been donning mythological roles too because of the void in this space(There are not many other actors who can handle a mythological role).&lt;br /&gt;&lt;br /&gt;Venkatesh&#39;s core base is married women and families with two kids. Again he started off as an action hero but because of the crowded market place, he could not sustain himself in that category. Over the years he repositioned himself with his skillful choice of roles. His movies show him as a protagonist from middle class with family repsonsibilities. Most of his roles have an emotional component to them, and the protagonist always make some sort of sacrifice for the sake of his family - wife, brother, sister, mother, uncle etc.&lt;br /&gt;&lt;br /&gt;Then there are smaller segments such as comedy/funny movies. These segments used to be dominated by ChandraMohan/Rajendra Prasad/Naresh and Ali. However this segment has died down with the advent of cable TV and the comedy TV shows and &lt;span style=&quot;font-style: italic;&quot;&gt;comedy&lt;/span&gt; has since then been an integral part of other movies, but not a separate segment anymore.&lt;br /&gt;&lt;br /&gt;Geoffrey Moore says in &lt;a href=&quot;http://www.amazon.com/Crossing-Chasm-Geoffrey-Moore/dp//ref=pd_bbs_sr_1/?ie=UTF8&amp;amp;s=books&amp;amp;qid=&amp;amp;sr=1-1&quot;&gt;Crossing the Chasm&lt;/a&gt; that every market matures to have one Gorilla, Two Chimpanzees and a number of monkeys. I think the same could be said about the actors in the Telugu Film industry.&lt;br /&gt;&lt;br /&gt;Coming back to the book which started me thinking along these lines - It is a book named &lt;span style=&quot;font-style: italic;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Building-Successful-Software-Business-Radin/dp//ref=sr_1_2/?ie=UTF8&amp;amp;s=books&amp;amp;qid=&amp;amp;sr=8-2&quot;&gt;Building a Successful Software Business&lt;/a&gt; BY Dave Radin ; More one some of these books in my next posts.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/7900483513566424543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/7900483513566424543' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7900483513566424543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7900483513566424543'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/09/market-principles-applied-to-telugu.html' title='Market principles applied to  the Telugu movie industry'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-1229036140127830007</id><published>2007-08-17T10:51:00.000-07:00</published><updated>2007-08-30T10:26:32.510-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java PHP Facebook"/><title type='text'>One pitfall of using Scripting languages</title><content type='html'>It seems  Facebook &lt;a href=&quot;http://www.techcrunch.com/2007/08/11/facebook-source-code-leaked/&quot;&gt;source code leaked &lt;/a&gt;the other day.  And for those of  you who don&#39;t know, Facebook uses PHP.  Even though the problem was apparently due to a misconfigured server, it nevertheless exposes the problem with interpreted languages in the web world.&lt;br /&gt;Nick Cubrovic (founder of OmniDrive) has a great post on preventing PHP&lt;a href=&quot;http://www.nik.com.au/archives/2007/08/11/learning-from-facebook-preventing-php-leakage/&quot;&gt; leakage&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;May be this is the reason , a number of enterprises still stick with  compiled languages like Java  on the web.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/1229036140127830007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/1229036140127830007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/1229036140127830007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/1229036140127830007'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/08/one-pitfall-of-using-scripting.html' title='One pitfall of using Scripting languages'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-2672496635167880455</id><published>2007-08-02T15:10:00.000-07:00</published><updated>2007-08-10T13:55:28.200-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Systems Products SVPMA  Frog Design"/><title type='text'>Systems vs Products</title><content type='html'>Yesterday night I was at the Silicon Valley Product Management Association(&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;SVPMA&lt;/span&gt;)&#39;s monthly meet and had the opportunity to hear Adam Richardson from &lt;a href=&quot;http://www.frogdesign.com/&quot;&gt;Frog Design&lt;/a&gt; speak about managing Systems vs Products. Frog Design is a strategic and creative consultancy, which works with companies to design product strategies and designs products for their clients based on those strategies.&lt;br /&gt;&lt;br /&gt;The main topic was about the management of the technology &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;eco&lt;/span&gt;-systems(&lt;span style=&quot;FONT-STYLE: italic&quot;&gt;&lt;/span&gt;the technology &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;eco&lt;/span&gt;-system around technology products), rather than just the products themselves. Let&#39;s call these &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;eco-&lt;/span&gt;systems &quot;&lt;span style=&quot;FONT-STYLE: italic&quot;&gt;System&lt;/span&gt; &quot;&lt;br /&gt;&lt;br /&gt;Some key take away from the talk were&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It is not about a product in isolation anymore. These days systems matter more or aw well as products sold in isolation.&lt;/li&gt;&lt;li&gt;Systems are hard to manage &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;because&lt;/span&gt; they are abstract. Most products ( at least the physical one or those with some form of &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;UI&lt;/span&gt;) are tangible - Whereas the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;eco&lt;/span&gt;-system around a product is abstract.&lt;/li&gt;&lt;li&gt;Systems are hard to manage because they cut across organizational boundaries and functional business units. In other words, a slightly dictatorial approach to building systems works better than the democratic approach. Steve Jobs and Apple are a great example in this regard. Without Steve Jobs, the various functional units inside Apple could not have collaborated to build such a good &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;eco&lt;/span&gt; system around the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;iPod&lt;/span&gt;. &lt;/li&gt;&lt;li&gt;Since managing systems is harder than managing products, a company which does it right has built a great barrier to entry. The &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;iPod&lt;/span&gt; has built such a good &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;eco&lt;/span&gt;-system around &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;iTunes&lt;/span&gt;, Mac, music and cool marketing that it is hard to replicate that experience easily.&lt;/li&gt;&lt;li&gt;Product Managers should ask themselves what sort of organizations they are in , in order to pull together the various functional units- top-down vs bottom-up, faith-based vs proof-based organization really matters.&lt;/li&gt;&lt;li&gt;In the early stages of a market, when the user experience has not been standardized, you can have a closed system with high margins. However, once the user experience becomes standardized and the market matures, open and modular systems tend to work better and your profit margins fall. And at the far end of a mature market i.e. when the user experience of your product overshoots the expectation of the market is when you run into the&lt;a href=&quot;http://www.blogger.com/www.businessweek.com/chapter/christensen.htm&quot;&gt; Innovators&#39; dilemma&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;All the stages mentioned above are fuzzy i.e. think hard about what stage of the market you are in.&lt;/li&gt;&lt;li&gt;Feed the system vs product mind set right into your &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;MRD&lt;/span&gt;, at the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;very&lt;/span&gt; earliest stages of a product development. Once it becomes a &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;PRD&lt;/span&gt;, it is very hard to change the product mindset to a system mindset. May we should call this a &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;SRD&lt;/span&gt;??&lt;/li&gt;&lt;/ol&gt;In essence this was great talk.&lt;br /&gt;Thanks to &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_16&quot;&gt;SVPMA&lt;/span&gt; organizers/volunteers who made this happen.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/2672496635167880455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/2672496635167880455' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2672496635167880455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2672496635167880455'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/08/systems-vs-products.html' title='Systems vs Products'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-2939908548913023461</id><published>2007-07-17T14:36:00.000-07:00</published><updated>2007-07-17T14:47:21.686-07:00</updated><title type='text'>SOAP and finally some REST !!</title><content type='html'>Since I work in the EAI/Web Services field, I am not new to the REST vs SOAP debate; For a while, I have been thinking that it is more of a choice in a web service design&lt;br /&gt;Fortunately I came across a very good &lt;a href=&quot;http://www.prescod.net/rest/rest_vs_soap_overview/&quot;&gt;article&lt;/a&gt; on the REST vs SOAP debate yesterday and now realize that the issue is much deeper than that; &lt;br /&gt;It seems to me that  debate falls along the lines of other common debates between - &lt;em&gt;practicians vs theorists&lt;/em&gt;, &lt;em&gt;generalists vs specialists&lt;/em&gt;, &lt;em&gt;strongly typed interfaces vs weakly typed interfaces&lt;/em&gt; , &lt;em&gt;KISS vs complicated&lt;/em&gt; , &lt;em&gt;bottom-up vs top-down&lt;/em&gt; and so on.&lt;br /&gt;&lt;br /&gt;Why is it that we in the Software Industry always seem to have to deal with so many philosophical arguments, unlike other industries? I guess this has to do with Software being much more malleable , than , say most metals.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/2939908548913023461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/2939908548913023461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2939908548913023461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/2939908548913023461'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/07/soap-and-finally-some-rest.html' title='SOAP and finally some REST !!'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-3367202462016490797</id><published>2007-07-02T17:39:00.000-07:00</published><updated>2007-07-12T14:31:10.402-07:00</updated><title type='text'>Networking in Silicon Valley</title><content type='html'>&lt;div&gt;If you are in Silicon Valley, there are a number of avenues to meet interesting people in Technology. You can attend events on a number of topics  of your interest and they don&#39;t cost that much to attend.  Here are some of the organizations which I attend whenever I get time.&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;a)SD Forum - &lt;a href=&quot;http://www.sdforum.org/&quot;&gt;www.sdforum.org&lt;/a&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;SD Forum is very much useful when you want to keep in touch with the latest Technical trends in the industry. They have various SIG&#39;s (Special Interest Groups) which you can attend and many startup founders present their technology in the relevant SIG&#39;s.&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;They also serve as incubator to companies and I heard that Sugar CRM incubated in SD Forum offices.&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;b)TIE (The Indus Entrepreneurs)&lt;br /&gt;c)SVPMA(Silicon Valley Product Management Association)&lt;br /&gt;d)Churchill Club&lt;br /&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/3367202462016490797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/3367202462016490797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/3367202462016490797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/3367202462016490797'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/07/networking-in-silicon-valley.html' title='Networking in Silicon Valley'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-7206850445881311944</id><published>2007-06-28T15:35:00.000-07:00</published><updated>2007-06-28T15:48:37.878-07:00</updated><title type='text'>Compilers  courses separate the men from the boys</title><content type='html'>&lt;a href=&quot;http://steve-yegge.blogspot.com/&quot;&gt;Steve Yegge&lt;/a&gt; has a recent post on the &lt;a href=&quot;http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html&quot;&gt;importance of compilers in &lt;/a&gt;a computer science curriculum.&lt;br /&gt;&lt;br /&gt;&quot;One reason many programmers don&#39;t take compilers is that they&#39;ve heard it&#39;s really, really hard. It&#39;s often the &quot;capstone&quot; course of a CS program (OS often being the other one), which means it&#39;s a sort of &quot;optional rite of passage&quot; that makes you a Real Programmer and puts hair on your chest, regardless of gender or chest-hair preference.&quot;&lt;br /&gt;&lt;br /&gt;&quot;Designing an effective undergrad CS degree is hard. It&#39;s no wonder so many ivy-league schools have more or less given up and turned into Java Certification shops.&quot;&lt;br /&gt;&lt;br /&gt;Sad but it seems this is true. Compilers course is very hard and I know it damn well, having taken this under Prof.Wei Chung Hsu in my Masters at the Univesity of Minnesota. We designed a small compiler for a language appropriately named C-- ; Our compiler could produce MIPS assembly language instruction  set , which we would optimizie in the final phase for reducing redundant loads and stores , which we would then run though a MIPS simulator(SPIM, I believe) for execution.&lt;br /&gt;In fact, one reason I took the course was that I wasn&#39;t happy with the way compilers was taught in my Bachelors, and I knew that I would never get a chance to learn them again in my professional life.&lt;br /&gt;&lt;br /&gt;If some Software Engineer/CS student understands compilers, I would rate him very highly.&lt;br /&gt;The only courses tougher  than compilers at University CS programs are the ones dealing with Complexity Theory, Turing Machines and automata theory.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/7206850445881311944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/7206850445881311944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7206850445881311944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/7206850445881311944'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/06/compilers-courses-separate-men-from.html' title='Compilers  courses separate the men from the boys'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-8519687011134459407</id><published>2007-06-26T16:26:00.000-07:00</published><updated>2007-06-26T16:31:57.259-07:00</updated><title type='text'></title><content type='html'>Netscape founder Marc Anderssen may have joined  joined the blog world late, but he  seems to  make up for lost time by coming up with great &lt;a href=&quot;http://blog.pmarca.com/&quot;&gt;posts after posts&lt;/a&gt;. A must read for anyone  aspiring to be an entrepreneur.&lt;br /&gt;&lt;br /&gt;If you want to know how to approach VC&#39;s , or how to become a VC  backed entrepreneur , it is  a must read.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/8519687011134459407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/8519687011134459407' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/8519687011134459407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/8519687011134459407'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2007/06/netscape-founder-marc-anderssen-may.html' title=''/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-116657885426125425</id><published>2006-12-19T17:27:00.000-08:00</published><updated>2006-12-19T18:19:01.300-08:00</updated><title type='text'>Why Research and Product development should not be separated</title><content type='html'>Today, I am going to write about research vs product development in Software/internet media industries. And I am going to start from an examination of the current favorite company-Google.&lt;br /&gt;&lt;br /&gt;When people write about google, they always write about how Sergey Brin and Larry Page started their company based on an idea, as if &lt;span style=&quot;font-style: italic;&quot;&gt;Page ranking&lt;/span&gt; in itself makes Google the best search engine on the planet.  From another viewpoint, they talk about how Google redefined the advertising industry.&lt;br /&gt;&lt;br /&gt;I am a Software engineer and the kind of person who wants to understand how Larry and Sergey made their jump from having a clever algorithm up their sleeves, to making it massively scalable and  recruiting other great engineers.  If you open the hood of Google, and take away all the applications such as GMail, GMaps etc, what you will see is a beautiful, fault-tolerant distrivuted computing architecture built by some great engineers. The group who built this is called the Systems Infrastrucure group inside Google. This is the group that built MapReduce, Google File System, Big Table, SawZall and a bunch of other stuff. This is the layer on which, a number of other google engineers write their applications.&lt;br /&gt;&lt;br /&gt;You will see that a number of these &lt;a href=&quot;http://labs.google.com/papers/&quot;&gt;papers&lt;/a&gt; are written by people from HP&#39;s  Palo Alto Labs.&lt;br /&gt;&lt;a href=&quot;http://labs.google.com/people/sanjay/&quot;&gt;Sanjay Ghemawat&lt;/a&gt;, &lt;a href=&quot;http://labs.google.com/people/jeff/index.html&quot;&gt;Jeffrey Dean&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/corporate/execs.html#alan&quot;&gt;Alan Eustace&lt;/a&gt;. In fact, a number of top people in the early days of Google came from HP labs(which was Compaq labs before HP acquired Compaq). And which was DEC labs before Compaq acquired DEC.&lt;br /&gt;&lt;br /&gt;Larry and Sergey may be smart but I always wonder how they could recruit so many parallel computing, distributed computing folks in their early days. Imagine you are  the  founder(s) of a small startup, with no revenue plan in 1999. How would you convince these researchers that they should work for you?&lt;br /&gt;&lt;br /&gt;I can only speculate. But I think that the fact that DEC labs had no importance in the eyes of the HP management definitely helped. I can&#39;t help noticing that 1999 is also the year , when Carly Fiorina go the top job at HP.  So many a top brains at HP labs must have preferred working at Google to a research lab of no importance to HP(Carly was a sales person afterall..).&lt;br /&gt;&lt;br /&gt;I think this story has been repeated a number of times before. Successful companies establish research arms to solve their problem of being bogged down by the success of their existing products(The Innovators dilemma) . As time goes by, your product development organization becomes (a)  dumber and dumber and bloated and misses the next big thing(b) you research arm becomes frustrated because of your inability to turn any breakthrough into successful products.&lt;br /&gt;&lt;br /&gt;Then these researchers take their talent somewhere to solve real problems.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/116657885426125425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/116657885426125425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/116657885426125425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/116657885426125425'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2006/12/why-research-and-product-development.html' title='Why Research and Product development should not be separated'/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-112844515255522796</id><published>2005-10-04T09:56:00.000-07:00</published><updated>2005-10-04T10:05:41.110-07:00</updated><title type='text'></title><content type='html'>&lt;pre&gt;EclipseCon 2006 will be held in Santa Clara, CA in March.&lt;br /&gt;&lt;a href=&quot;http://www.joelonsoftware.com/&quot;&gt;Joel&lt;/a&gt; is a speaker.&lt;br /&gt;&lt;a href=&quot;http://www.eclipsecon.org/&quot;&gt;&lt;img style=&quot;width: 144px; height: 125px;&quot; src=&quot;http://www.eclipsecon.org/2006/images/banner125x125.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Eclipse Con is taking submissions for this year&#39;s topics;&lt;br /&gt;If you are interested in &lt;a href=&quot;http://canuck.gda.itesm.mx/eclipsezilla/&quot;&gt;submitting a proposal&lt;/a&gt; for a long talk/short talk or any other exhibits, please go &lt;a href=&quot;http://canuck.gda.itesm.mx/eclipsezilla/&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/112844515255522796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/112844515255522796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112844515255522796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112844515255522796'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2005/10/eclipsecon-2006-will-be-held-in-santa.html' title=''/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-112500130124862730</id><published>2005-08-25T13:15:00.000-07:00</published><updated>2005-08-25T15:27:10.843-07:00</updated><title type='text'></title><content type='html'>After I started my blog, I  anted to know which search engines could catch my blog first.&lt;br /&gt;I searched for &quot;Gyaana radha&quot; on Yahoo and Google. On Yahoo, my blog is the first result. On Google, I am not even there!! . This despite the fact that I added my URL to Google a week ago.&lt;br /&gt;This shows that&lt;br /&gt;1) Google hasn&#39;t processed my URL yet. and/or&lt;br /&gt;2)Yahoo&#39;s ranking algorithm has more keyword based weightage to it then Google&#39;s algorithm( which is probably entirely Page Rank based). As far as I know, no one links to my blog yet :-((.</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/112500130124862730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/112500130124862730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112500130124862730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112500130124862730'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2005/08/after-i-started-my-blog-i-anted-to.html' title=''/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-112447165806490307</id><published>2005-08-19T10:08:00.000-07:00</published><updated>2005-08-19T10:14:18.066-07:00</updated><title type='text'></title><content type='html'>I  will be on a vacation to &lt;a href=&quot;http://www.nps.gov/yell/&quot;&gt;YellowStone National Park&lt;/a&gt;  at the end of August;&lt;br /&gt;I  have been told that YS is like no other national park both in its grandeur and vastness.  Feeling pretty excited!!</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/112447165806490307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/112447165806490307' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112447165806490307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112447165806490307'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2005/08/i-will-be-on-vacation-to-yellowstone.html' title=''/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5065406.post-112446950900384168</id><published>2005-08-19T09:34:00.000-07:00</published><updated>2005-08-19T09:38:29.003-07:00</updated><title type='text'></title><content type='html'>My current job involves with Eclipse-based Plugin devel0pment in java.  Here is an introduction to&lt;a href=&quot;http://www.eclipse.org&quot;&gt; Eclipse&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://popuri.blogspot.com/feeds/112446950900384168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5065406/112446950900384168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112446950900384168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5065406/posts/default/112446950900384168'/><link rel='alternate' type='text/html' href='http://popuri.blogspot.com/2005/08/my-current-job-involves-with-eclipse.html' title=''/><author><name>Radha Krishna Popuri</name><uri>http://www.blogger.com/profile/03610242708151654397</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>