<?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-2355999168837142713</id><updated>2024-09-20T20:02:15.654-07:00</updated><category term="open source technology benifits"/><category term="open source technology"/><category term="PHP in Udaipur"/><category term="Google vs Microsoft:"/><category term="Popular Programming Languages"/><category term="PHP vs ASP.NET"/><category term="SEO"/><category term="open source vs microsoft"/><category term="About PHP Udaipur"/><category term="Google"/><category term="Google vs. Microsoft"/><category term="Popularity of Programming Languages"/><category term="php development in udaipur"/><category term="php vs ruby vs java"/><category term="Java vs. Ruby on Rails"/><category term="Web Services"/><category term="Reuters"/><category term="future of microsoft"/><category term="php advantages"/><category term="Billion"/><category term="Content managemen system"/><category term="Google’s Facebook Competitor"/><category term="Ruby on Rails applications"/><category term="The Google+ Social Network"/><category term="World"/><category term="google Vs Facebook"/><category term="CAPTCHA: WHAT IS CAPTCHA?"/><category term="Facebook"/><category term="Linux"/><category term="PHP"/><category term="future without Microsoft"/><category term="google programming language"/><category term="open source market in india"/><category term="ruby from java"/><category term="Challenge"/><category term="Cloud Computing Concept"/><category term="Fashion"/><category term="Groupon"/><category term="HOW TO CREATE CAPTCHA : EXAMPLE"/><category term="Internet"/><category term="Java App Cloud"/><category term="MS Technology"/><category term="Mashable"/><category term="Model-View-Controller"/><category term="NewsFactor"/><category term="Open Source Software"/><category term="Oracle To Buy Sun"/><category term="Raises"/><category term="Stores"/><category term="TYPES OF CLOUD COMPUTING"/><category term="The Future of  Androids"/><category term="Web Services Example"/><category term="downloads"/><category term="insulting"/><category term="popular scripting technology"/><category term="3D google view"/><category term="3G"/><category term="ASP.NET"/><category term="Address"/><category term="Antique"/><category term="Apple"/><category term="Apples"/><category term="Applications of CAPTCHAs"/><category term="Applying"/><category term="Appolicious"/><category term="Better Job Chances"/><category term="Cacti"/><category term="Challenges"/><category term="Cisco Certification In India"/><category term="Client-Server Architecture"/><category term="Cloud-based CRM"/><category term="Coupon"/><category term="Dailymotion"/><category term="Designer"/><category term="ERP MArket in india"/><category term="Engine"/><category term="Googles"/><category term="Green  IT"/><category term="Hacking techniques"/><category term="IPocalypse"/><category term="IT Security"/><category term="India IT-BPO Mark"/><category term="Jobs in Udaipur"/><category term="Key Logger"/><category term="LittleBigPlanet"/><category term="Magazine"/><category term="Music"/><category term="Neutrality"/><category term="Oracle-Sun Deal"/><category term="Orange"/><category term="Palestinian"/><category term="Polyvore"/><category term="Running"/><category term="Search"/><category term="Server Types"/><category term="Service"/><category term="Songs"/><category term="SpaceKind"/><category term="Store"/><category term="Stylist"/><category term="The 100 Best Websites List"/><category term="Top Electric Cars Launching in India"/><category term="Trillion"/><category term="Turns"/><category term="UPES And IBM"/><category term="Update"/><category term="Valuation"/><category term="Verizon"/><category term="Views"/><category term="Viral"/><category term="Web Search Engines"/><category term="Web Services with php"/><category term="Wireless"/><category term="Woman"/><category term="addresses"/><category term="benifits"/><category term="books"/><category term="brings"/><category term="called"/><category term="change"/><category term="charged"/><category term="competitor"/><category term="copyright"/><category term="database"/><category term="decade"/><category term="developing"/><category term="exhausting"/><category term="eying"/><category term="financials"/><category term="global"/><category term="industry"/><category term="japan technologies"/><category term="leader"/><category term="looks"/><category term="microsoft bug"/><category term="offers"/><category term="online"/><category term="outsourcing in india"/><category term="popular"/><category term="published"/><category term="questions"/><category term="report"/><category term="ruby on rails jobs"/><category term="ruby vs java"/><category term="spamladen"/><category term="stake"/><category term="targets"/><category term="tsunami in japan"/><category term="unveil"/><category term="virtual machine on windows"/><category term="websites"/><category term="working"/><title type='text'>NEW EMERGING TECHNOLOGIES</title><subtitle type='html'>Latest Technologies, Open Source Technology, Search Engine Optimization, PHP-MySQL, SEO Techniques, Free Open Source Softwares, Content Management system,future trends in information technology, CMS, Popular Programming Languages by Udaipur Open Source Developer Blog (PHP MYSQL in Udaipur)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>175</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-3427990612746149871</id><published>2011-08-13T11:50:00.001-07:00</published><updated>2011-08-13T11:50:39.795-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><title type='text'>CRM - Customer Relationship Management</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial, Helvetica, Verdana, sans-serif; font-size: 12px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; line-height: 1.6; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: justify; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;http://www.ecrmguide.com/&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #cc3300; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;CRM&lt;/a&gt;&amp;nbsp;is the abbreviation for&amp;nbsp;&lt;strong style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;em style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;customer relationship management&lt;/em&gt;&lt;/strong&gt;. CRM entails all aspects of interaction that a company has with its customer, whether it is sales or service-related. &amp;nbsp;CRM is often thought of as a business strategy that enables businessesto:&lt;/div&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; line-height: 1.6; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: justify; vertical-align: baseline;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Understand the customer&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Retain customers through better customer experience&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Attract new customer&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Win new clients and contractsIncrease profitably&lt;/li&gt;
&lt;li style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Decrease customer management costs&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; line-height: 1.6; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: justify; vertical-align: baseline;&quot;&gt;While the phrase&amp;nbsp;&lt;em style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;customer relationship management&lt;/em&gt;&amp;nbsp;is most commonly used to describe a business-customer relationship, however CRM systems are used in the same way to manage business contacts, clients, contract wins and sales leads.&lt;/div&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; line-height: 1.6; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: justify; vertical-align: baseline;&quot;&gt;CRM solutions provide you with the customer business data to help you provide services or products that your customers want, provide better customer service, cross-sell and up sell more effectively, close deals, retain current customers and understand who the customer is.&lt;/div&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; line-height: 1.6; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: justify; vertical-align: baseline;&quot;&gt;Technology and the Web has changed the way companies approach CRM strategies because advances in technology have also changed consumer buying behavior and offers new ways for companies to communicate with customers and collect data about them. With each new advance in technology -- especially the proliferation of self-service channels like the&amp;nbsp;&lt;a href=&quot;http://www.webopedia.com/TERM/W/World_Wide_Web.html&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #cc3300; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Web&lt;/a&gt;&amp;nbsp;and smartphones -- customer relationships is being managed electronically.&lt;/div&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; line-height: 1.6; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: justify; vertical-align: baseline;&quot;&gt;Many aspects of CRM relies heavily on technology; however the strategies and processes of a good CRM system will collect, manage and link information about the customer with the goal of letting you market and sell services effectively.&lt;/div&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 12px; line-height: 1.6; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: justify; vertical-align: baseline;&quot;&gt;Organizations frequently looking for ways to personalize online experiences (a process also referred to as mass customization) through tools such as&amp;nbsp;&lt;a href=&quot;http://www.webopedia.com/TERM/H/help_desk.html&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #cc3300; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;help-desk&lt;/a&gt;&amp;nbsp;software, e-mail organizers and different types of&amp;nbsp;&lt;a href=&quot;http://www.webopedia.com/TERM/E/enterprise_application.html&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #cc3300; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;enterprise applications&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/3427990612746149871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/08/crm-customer-relationship-management.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3427990612746149871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3427990612746149871'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/08/crm-customer-relationship-management.html' title='CRM - Customer Relationship Management'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-550753780359763327</id><published>2011-08-09T22:05:00.000-07:00</published><updated>2011-08-09T22:05:44.024-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="The Future of  Androids"/><title type='text'>The Future of Android - open source</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;As the Android world grows, it  becomes an increasingly juicy target for  malware. Infected apps have  been spotted in various Android app outlets  on numerous occasions. The  platform is less restricted than Apple&#39;s, for  example, and with those  freedoms sometimes come security dangers.  Critics say Google could  address Android&#39;s security issues with a few  tighter control policies.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The number of attacks on Android devices has been rising over the past few months.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The  malware has exotic names such as &quot;Zitmo,&quot; &quot;DroidDreamLight,&quot;  &quot;Hong Tou  Tou,&quot; &quot;DroidKungFu,&quot; &quot;YZHCSMS,&quot; &quot;Geinimi&quot; and &quot;Plankton.&quot;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In January 2010, &lt;a class=&quot;story-keyword-offsite&quot; href=&quot;http://www.google.com/&quot;&gt;Google&lt;/a&gt;   (Nasdaq: GOOG) removed more than 50 fake banking apps from the Android   market, and in March of this year, it removed another 50 infected  apps,  Amit Sinha, chief technology officer at &lt;a href=&quot;http://www.zscaler.com/&quot; target=&quot;_blank&quot;&gt;Zscaler&lt;/a&gt;, told LinuxInsider.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Meanwhile,  Android smartphones are growing in popularity. They have  extended  their lead in the United States and Canadian markets, according  to &lt;a class=&quot;story-keyword-offsite&quot; href=&quot;http://www.idc.com/&quot;&gt;IDC&#39;s&lt;/a&gt; worldwide mobile phone market report for Q2, 2011.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;That will make for a bigger pool of targets.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;Android  has the potential to become the dominant OS for  smartphones,&quot;  Sinha  said. &quot;And ... hackers will aggressively target  Android.&quot;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Add  in Google&#39;s support for NFC -- near field communications -- in   Android; its launching of Google Wallet, which is undergoing field tests   now; and &lt;a class=&quot;story-keyword-offsite&quot; href=&quot;http://www.paypal.com/us/&quot;&gt;PayPal&#39;s&lt;/a&gt; using NFC on Android to make payments easier, and we could have a bit of a problem.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;But  that&#39;s not all. Even if e-wallet features don&#39;t take off, NFC has   another ace in the hole -- it lets owners of NFC-capable smartphone   transfer documents by touching  their devices together.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;You can watch a &lt;a class=&quot;story-keyword-offsite&quot; href=&quot;http://www.youtube.com/&quot;&gt;YouTube&lt;/a&gt; video demoing  that feature on the &lt;a class=&quot;story-keyword-offsite&quot; href=&quot;http://www.nokia.com/&quot;&gt;Nokia&lt;/a&gt; (NYSE: NOK) N9 smartphone &lt;a href=&quot;http://www.youtube.com/watch?v=jOD0099UCj8&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The  implications for enterprise security are vast, especially when  you  recall that the increasing consumerization of IT means people are  using  their own mobile devices at work.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Is  Google&#39;s to blame for the increasing number of attacks on the  Android  OS because of Android&#39;s design and the hands-off policy Google   maintains towards the OS? Will Android survive and be made more secure?   Or will Google&#39;s laissez-faire attitude finally kill off the OS?&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Google did not respond to requests for comment by press time. &lt;/div&gt;&lt;div class=&quot;story-advertisement&quot; style=&quot;text-align: justify;&quot;&gt;&lt;ins style=&quot;border: none; display: inline-table; height: 600px; margin: 0; padding: 0; position: relative; visibility: visible; width: 160px;&quot;&gt;&lt;/ins&gt;&lt;br /&gt;
&lt;ins id=&quot;aswift_0_anchor&quot; style=&quot;border: none; display: block; height: 600px; margin: 0; padding: 0; position: relative; visibility: visible; width: 160px;&quot;&gt;&lt;/ins&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; class=&quot;ct-7340-adx_L160-1&quot; height=&quot;0&quot; src=&quot;http://www.ectnews.com/adsys/count/7340/?nm=adx_L160-1&amp;amp;ENN_rnd=13129521893309&amp;amp;ign=0/ign.gif&quot; style=&quot;left: 0px; position: absolute; top: 0px;&quot; width=&quot;0&quot; /&gt; 	 	&lt;/div&gt;&lt;h2 class=&quot;subhead&quot; style=&quot;text-align: justify;&quot;&gt; Follow the Money &lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In  September, Fortinet came across a banking Trojan it named   \u201cZitmo.\u201d That Trojan steals one-time banking passwords. It   resurfaced in July.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The mobile malware threat is expected to grow, security experts warn.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;In  addition to mobile banking, many retail commerce transactions are   expected to take place on mobile phones, and the cybercriminals will go   where the money is,&quot; Neil Daswani, CTO and co-founder of &lt;a href=&quot;http://www.dasient.com/&quot; target=&quot;_blank&quot;&gt;Dasient&lt;/a&gt;, told LinuxInsider.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;However, we may have some time before mobile banking really becomes a major security issue.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Many banks still haven&#39;t enabled mobile transactions on their websites, indicated Mickey Boodaei, CEO of &lt;a href=&quot;http://www.trusteer.com/&quot; target=&quot;_blank&quot;&gt;Trusteer&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;Since  online fraud is mostly a big numbers game, attacking mobile  bankers is  not yet a profitable fraud operation,&quot; Boodaei remarked.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;That  situation will change soon. Trusteer predicts that within 12 to  24  months more than 5 percent of all Android phones, iPads and iPhones   could become infected by mobile malware. &lt;/div&gt;&lt;h2 class=&quot;subhead&quot; style=&quot;text-align: justify;&quot;&gt; Preparing for the Mobile Malware Rush &lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Device  makers and app developers have to shape up in preparation for the   expected flood of attacks on NFC-enabled devices once mobile banking   takes off.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;The &lt;a href=&quot;http://www.nfc-forum.org/home/&quot; target=&quot;_blank&quot;&gt;NFC Forum&lt;/a&gt;   defines the contactless protocol between devices, so much of the   security is the responsibility of application providers and   manufacturers,&quot;  Debbie Arnold, the forum&#39;s director, told LinuxInsider.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The forum&#39;s role is just to define the contactless protocol between devices, Arnold said. &lt;/div&gt;&lt;h2 class=&quot;subhead&quot; style=&quot;text-align: justify;&quot;&gt; Was Android Built Wrong? &lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The  problem lies in Android&#39;s security architecture, and the proof is  that  it&#39;s easy to build applications that can get access to sensitive   operating system resources such as text messages, voice, location and   more, Trusteer&#39;s Boodaei told LinuxInsider.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;However, not everyone agrees this is really an issue.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;While  the security architecture of Android as well as other mobile  OSes can  certainly be improved, just as desktop OS security has improved  over  the decades, the security architecture itself isn&#39;t responsible  for  malware propagation,&quot; Daswani said.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Tens  of thousands of new malware binary variants are created for  Windows  and Mac OS, for example, Daswani pointed out. The problem of  security  isn&#39;t going away any time soon, he opined. &lt;/div&gt;&lt;h2 class=&quot;subhead&quot; style=&quot;text-align: justify;&quot;&gt; Permissions Are a Hollow Protection &lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In  its defense, Google has repeatedly pointed out that all downloaded   apps request permission to access resources on uses&#39; smartphones, and   users can just say no.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;That isn&#39;t enough, Boodaei contends.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Users usually just say yes because many applications request access to an &quot;extensive list&quot; of resources, Boodaei explained.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Google could make Android&#39;s permissions model more fine-grained, Dasient&#39;s Daswani suggested.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;For  example, when an Android app requests access to the Internet, it  gets  access to everything, including malicious domains and websites,  Daswani  said. Instead, Google should perhaps restrict an app&#39;s access to  the  Internet to only what it actually needs.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;That follows the principle of least privilege, which is well-known in the security community,\u201d Daswani remarked. &lt;/div&gt;&lt;h2 class=&quot;subhead&quot; style=&quot;text-align: justify;&quot;&gt; Google&#39;s Slow Anti-Malware Shuffle &lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In  addition, Google doesn&#39;t check apps before letting their authors post   them on the Android Market. Also, Google has sometimes been criticized   as slow to respond to complaints about apps containing malware.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;Distributing  fraudulent Android applications is trivial,&quot; Trusteer&#39;s  Boodaei  alleged. &quot;There are no real controls around the submission  process that  could identify and prevent the publication of malicious  applications.  Compared to &lt;a class=&quot;story-keyword-offsite&quot; href=&quot;http://www.apple.com/&quot;&gt;Apple&#39;s&lt;/a&gt; (Nasdaq: AAPL) App Store, the Android Market is the Wild West.&quot;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Further,  a Google Web page requesting that Google review and take  down  inappropriate apps from the Android Market is hard to find, Boodaei   said.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The form doesn&#39;t appear to be of much use, either, he said.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;We  used it a few times with no results,&quot; Boodaei groused. &quot;In order  to  have an application on the Android Market taken down, we had to use   contacts within Google who are not available to the average user.&quot;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Google  needs to make &quot;major improvements&quot; in its process of  identifying and  removing malicious apps from the Android Market, Boodaei  said.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;Google  already has a kill switch to remotely remove malicious apps,  but this  approach is reactive,&quot; ZScaler&#39;s Sinha stated. &quot;They need a  more  proactive approach to screening and testing apps prior to allowing  them  on the market.&quot;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/550753780359763327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/08/future-of-android-open-source.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/550753780359763327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/550753780359763327'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/08/future-of-android-open-source.html' title='The Future of Android - open source'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-2432163849653977424</id><published>2011-08-01T21:45:00.001-07:00</published><updated>2011-08-01T21:45:38.649-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs. Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Popular Programming Languages"/><title type='text'>Hierarchy of programming languages</title><content type='html'></content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/2432163849653977424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/08/hierarchy-of-programming-languages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2432163849653977424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2432163849653977424'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/08/hierarchy-of-programming-languages.html' title='Hierarchy of programming languages'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-2903695842324811293</id><published>2011-06-30T01:56:00.000-07:00</published><updated>2011-06-30T01:56:40.470-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google programming language"/><category scheme="http://www.blogger.com/atom/ns#" term="google Vs Facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="Google’s Facebook Competitor"/><category scheme="http://www.blogger.com/atom/ns#" term="The Google+ Social Network"/><title type='text'>How To Use Google Plus....Google Plus(+) is Better than Facebook</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;mt-image-none&quot; height=&quot;150&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/google_plus_icons_150x150.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; cursor: auto; float: left; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;150&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Waiting for a&amp;nbsp;&lt;a href=&quot;http://www.readwriteweb.com/archives/google_circles_googles_radical_new_social_network.php&quot; style=&quot;color: #cc0000; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;&quot;&gt;Google Plus&amp;nbsp;&lt;/a&gt;invite? Google is rolling out the service in waves and you can expect it to become a ubiquitous social option in the coming months. We have been playing with the service since getting invites yesterday and there are a lot of things to like about Google&#39;s new social initiative.&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Unlike Google&#39;s last big invite-only rollout of a social initiative -&amp;nbsp;&lt;a href=&quot;http://www.readwriteweb.com/archives/google_wave_our_first_hands-on_impressions.php&quot; style=&quot;color: #cc0000; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;&quot;&gt;Google Wave&lt;/a&gt;&amp;nbsp;- users will not be confounded on just what the heck you are supposed to with the service when signing up for the first time. From Friendster, Friendfeed, MySpace and Facebook, users are familiar with how a social platform is theoretically supposed to look. At its core level, Plus is not that much different. Yet, there is so much more. How do you get started with Google Plus? Let&#39;s break down the nuts and bolts.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 style=&quot;color: black; font-size: 1.3em; font-weight: bold; line-height: 1.2em; margin-bottom: 0.2em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Create Your Circles&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Imagine the ability to break down Facebook into its various constituent parts and keep them separate from each other as opposed to one giant feed. That is what Google has done with Plus. There is one main stream where all your friends updates show up then the option to see updates from only certain groups like &quot;Work,&quot; &quot;Friends&quot; or &quot;Family.&quot; This is the essence of Circles.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;From the initial interface, you will see four buttons - Home, Photos, Profile and Circles.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;Go_To_Circles.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;234&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Go_To_Circles.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The first thing you are going to want to do is set up your circles. Click on the tab and it will bring you to a interface where all of your contacts in Gmail (not just Gmail addresses, but all of your contacts) are listed in a panel on top of the screen. Below is a panel that has your various circles. To add a contact to a circle, drag from the top of the list to the appropriate group. Contacts can be added to multiple circles.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;Google_Plus_Circle_Drag.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;85&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Google_Plus_Circle_Drag.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;One of the initial problems I had from the circles interface was that I added a couple of &quot;Friends&quot; into my &quot;Work&quot; circle and could not figure out how to get them out. You can do this from the user streams by hovering over the person&#39;s name and hovering over &quot;Add to circles&quot; and clicking the appropriate boxes. Yet, from the circles interface, that was not readily apparent. To take people out of a circle, hover above the circle, grab their icon and drag it back into the people plane.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;One of the great differentiators between Twitter and Facebook is the &quot;unbalanced&quot; or &quot;balanced&quot; follow. Facebook was initially a two-way follow paradigm - I friend you, you friend me and we see each other&#39;s updates. This has been changed with the ability to &quot;like&quot; groups, brands and pages without them following you back. Twitter has always been a one-way follow - I follow you and you do not necessarily have to follow me back.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;This line has been blurred in circles. If a person is in your contacts, they can be added to a circle and will get a notification that has happend (but not what circle they have actually been added to). There is also a &quot;follow&quot; circle. Just like Twitter, you can follow people and see their updates without them having to follow you back. As your circles evolve this could allow to track different interests, like Twitter lists.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;Google_Plus_Circle_Add.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;219&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Google_Plus_Circle_Add.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;h2 style=&quot;color: black; font-size: 1.3em; font-weight: bold; line-height: 1.2em; margin-bottom: 0.2em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The Stream and &quot;Bumping&quot;&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Once you have set up your circles, go back to the Home screen to see the results. Below the profile picture you will see the choices of stream. You can view your entire stream at once (à la Facebook) or by particular circle.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;Google_Plus_Main.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;234&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Google_Plus_Main.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;There are two other options below your circles - Incoming and Notifications. Clicking incoming will bring you to messages that have been sent by people outside of your circles. Notifications will show you when people in your circles have commented on something you have posted, or something you have commented on.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Below the circles and notifications there is a tab dubbed &quot;Sparks.&quot; More on that below.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;One of the killer features of Gmail, or any Google product, is Chat. It has made its way into Plus and sits in the familiar left-hand, bottom-right portion of the screen that it is found in Gmail. Users with a lot of Circle and Chat contacts will like the ability to enable chat for particular groups. Want to surface friends and family but not acquaintances? Plus will let you do that.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;If you are using Plus in a Chrome browser, desktop notifications do not pop up when someone sends you a message like it would in Gmail.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Posting a status update in Plus is not like sending a Tweet or updating Facebook. The core functions of an update are present - photos, links, video and location - but when you hit &quot;share&quot; it doesn&#39;t automatically post your message to everybody in your circles. You have the option to decide which circles your update is posted to, from individual groups to all circles, to extended circles, or just a single person.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;Google_Plus_Chat_Circles.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;306&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Google_Plus_Chat_Circles.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;An interesting feature in the user stream is that conversations will surface back to the top of the feed when subsequent comments are made on a thread. This, according to Google developer Jean-Baptiste Queru, is called &quot;bumping.&quot; Google Buzz has this same capability and it was also a feature of FriendFeed.&lt;/div&gt;&lt;h2 style=&quot;color: black; font-size: 1.3em; font-weight: bold; line-height: 1.2em; margin-bottom: 0.2em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Photos&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Photos in Plus are relatively self-explanatory. Users can update photos from their computers or from their phones, see photos that people in their circles have uploaded. With the Android app, there is a way to upload any photo that you take with your phone straight to Plus, an interesting if slightly disconcerting feature.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;When you add a photo, it will prompt you to create an album. Once that album is created it will ask which of your circles you would like to share it with. This is a prime differentiator from Facebook where all of your photos are visible to all of your friends by default (you can change who can view certain photos in Facebook preferences). You can also pick an individual to share photos with instead of an entire circle.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Photo uploading is easy within Plus. Just like adding a picture or an attachment to a Gmail document, you can drag-and-drop from your desktop or click the on the upload button and browse your computer for pictures.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;Google_Plus_Photo_Drag.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;274&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Google_Plus_Photo_Drag.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Users can also add photos by posting them in status updates or by uploading them through the Profile tab.&lt;/div&gt;&lt;h2 style=&quot;color: black; font-size: 1.3em; font-weight: bold; line-height: 1.2em; margin-bottom: 0.2em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Profile&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;If you use any Google products and have a Google account, you have a Google Profile. Profiles are unknown to most of the Internet because, until now, it was relatively useless to anyone but Google.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Your Google Profile is now the hub of you Plus experience, the backbone that everything else is built upon. There are six tabs in your profile page - posts, about, photos, videos, +1s and Buzz.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;Google_Profile_Dan_Plus.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;216&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Google_Profile_Dan_Plus.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;A significant change to your profile page is that there is now a location where your +1s live. Until now, when you clicked +1 on content on the Web, nothing happened. The information was sent to Google and integrated into some type of esoteric search algorithm. Users can now see what people have +1ed through their Google Profile. Unlike the Facebook share/like/recommend buttons, it does not go straight into your stream but rather to the profile page.&lt;/div&gt;&lt;h2 style=&quot;color: black; font-size: 1.3em; font-weight: bold; line-height: 1.2em; margin-bottom: 0.2em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Sparks and Hangouts&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Hangouts is a new feature rolled out with Plus. Essentially it is an area where your circles or a select group of friends can video chat all on one screen. To start a Hangout, go to the &quot;Welcome&quot; button in the home tab. It will prompt you to start a hangout and invite individuals or entire circles. Up to 10 people can be in a hangout at once and it will be seen in that circle or users&#39; stream.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;Plus_Hangouts.jpg&quot; class=&quot;mt-image-none&quot; height=&quot;218&quot; src=&quot;http://rww.readwriteweb.netdna-cdn.com/Plus_Hangouts.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-style: initial; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 0px; text-align: justify;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Sparks is the part of Plus where you can find content on the Web that you are interested in. In the &quot;Field Trial&quot; version of Plus, it looks like Sparks is a randomized version of content and news generated through Google News. Sparks can be a dashboard for things you are interested in on the Web. When you do a search in Sparks, it will predict what you are searching for with a drop down menu (like old Google search, not quite like Google Instant). You can pin particular topics you search for to the Sparks dashboard for quick access.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;You can share articles found in Sparks with a share button on the bottom of every article that surfaces in a search. Like everything else in Plus, it can be shared with a specific person, circle, group of circles or the general public.&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/2903695842324811293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/how-to-use-google-plusgoogle-plus-is.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2903695842324811293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2903695842324811293'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/how-to-use-google-plusgoogle-plus-is.html' title='How To Use Google Plus....Google Plus(+) is Better than Facebook'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-41983771261335569</id><published>2011-06-30T01:54:00.000-07:00</published><updated>2011-06-30T01:54:00.201-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google Vs Facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="Google’s Facebook Competitor"/><category scheme="http://www.blogger.com/atom/ns#" term="The Google+ Social Network"/><title type='text'>Google Plus brings real-life social sharing to life</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #212121; font-family: Verdana, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Google Plus&lt;/strong&gt;, the social thingie from Google is out. This project is under the wraps from Google and as all things Google, it made a subtle launch. The service is rolled out but it is invitation only and you can sign up&amp;nbsp;&lt;a href=&quot;https://services.google.com/fb/forms/googleplus/&quot; style=&quot;color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google has said this with a lot of gumption in its blog post about Google Plus :&lt;/div&gt;&lt;div class=&quot;note&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: whitesmoke; background-image: initial; background-repeat: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.583em; padding-left: 0.833em; padding-right: 0.833em; padding-top: 0.583em; text-align: justify;&quot;&gt;The problem is that today’s online services turn friendship into fast food—wrapping everyone in “friend” paper—and sharing really suffers&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;img alt=&quot;Google Plus Google Plus brings real life social sharing to life&quot; border=&quot;0&quot; height=&quot;129&quot; src=&quot;http://trak.in/wp-content/uploads/2011/06/Google-Plus.jpg&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Google Plus brings real life social sharing to life internet&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;As per&amp;nbsp;&lt;a href=&quot;https://plus.google.com/up/start/?sw=1&amp;amp;type=st&quot; style=&quot;color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot; target=&quot;_blank&quot; title=&quot;Google Plus&quot;&gt;Google Plus&lt;/a&gt;,&amp;nbsp;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;today’s sharing and social networks are sloppy, scary and insensitive.&lt;/strong&gt;And I can’t agree more. On facebook whatever I share is just out there for everyone to see. On twitter, a link which might be meant for a few tweeples cannot be posted. And there is no way to have a group conversation on twitter, nor facebook. Skype has it but it misses all the other elements of a social network.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Google Plus&lt;/strong&gt;&amp;nbsp;is set to change all that. In fact Google plus isn’t just another social product. It is an extension of Google itself. Hence the plus. To do that it has introduced&amp;nbsp;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Circles, Hangouts, Huddle and Sparks.&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;349&quot; src=&quot;http://www.youtube.com/embed/xwnJ5Bl4kLI&quot; style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;note&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: whitesmoke; background-image: initial; background-repeat: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.583em; padding-left: 0.833em; padding-right: 0.833em; padding-top: 0.583em; text-align: justify;&quot;&gt;Google Plus isn’t basically a one hammer hits all nails approach.&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&amp;nbsp;It is one hammer for all important nails.&lt;/strong&gt;&amp;nbsp;Facebook and Twitter can suck on that. Or not.&lt;/div&gt;&lt;h3 style=&quot;color: #962424; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 1.333em; font-weight: normal; line-height: 1.25em; margin-bottom: 0.625em; margin-left: 0px; margin-right: 0px; margin-top: 1.875em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Circles&lt;/h3&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;From your group of friends you can share what matters to the people who matter the most. Stuff related to cricket can be shared with people who are just cricket fans in your circle. There is no ranting about Munaf Patel or Sreesanth and filling up everybody’s timeline like what happens in twitter. Relevance is paramount for Circles.&lt;/div&gt;&lt;h3 style=&quot;color: #962424; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 1.333em; font-weight: normal; line-height: 1.25em; margin-bottom: 0.625em; margin-left: 0px; margin-right: 0px; margin-top: 1.875em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Sparks&lt;/h3&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Sparks is a new content sharing and discovery engine. On facebook all the family updates, picture updates and a video you liked get the same kind of attention. With Sparks you can separate that attention out. Something personal, it will go in to circles. Something interesting and worth sharing, come hang out in Sparks.&lt;/div&gt;&lt;h3 style=&quot;color: #962424; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 1.333em; font-weight: normal; line-height: 1.25em; margin-bottom: 0.625em; margin-left: 0px; margin-right: 0px; margin-top: 1.875em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Huddle&lt;/h3&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Huddle is to let everyone in the circle know what’s going on. Kind of an asynchronous messaging system like Google Wave but much simpler.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;embed height=&quot;340&quot; src=&quot;http://www.youtube.com/v/iA22daAstNg?hd=1&quot; style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;560&quot; wmode=&quot;transparent&quot;&gt;&lt;/embed&gt;&lt;/div&gt;&lt;h3 style=&quot;color: #962424; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 1.333em; font-weight: normal; line-height: 1.25em; margin-bottom: 0.625em; margin-left: 0px; margin-right: 0px; margin-top: 1.875em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Hangouts&lt;/h3&gt;&lt;div style=&quot;margin-bottom: 1.667em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;This is a&amp;nbsp;&lt;strong style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;group messaging app&lt;/strong&gt;&amp;nbsp;aimed at smartphones and tablets and most importantly at Skype. Facebook can integrate with Skype all it wants but Hangout is much cooler. Huddling up is like walking in to a bar and telling everyone that you are&amp;nbsp; available for some face time. This will be the uninterrupted face time you spend with the people. You are hanging out.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/41983771261335569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/google-plus-brings-real-life-social.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/41983771261335569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/41983771261335569'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/google-plus-brings-real-life-social.html' title='Google Plus brings real-life social sharing to life'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/xwnJ5Bl4kLI/default.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-2684225640867212022</id><published>2011-06-30T01:51:00.000-07:00</published><updated>2011-06-30T01:51:43.661-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google programming language"/><category scheme="http://www.blogger.com/atom/ns#" term="google Vs Facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="Google’s Facebook Competitor"/><category scheme="http://www.blogger.com/atom/ns#" term="The Google+ Social Network"/><title type='text'>Google Plus Better Then FaceBook...Some Reasons to Be Optimistic About Google Plus</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 25px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Here’s a dirty little secret: I thought Google Wave was going to be awesome. I admit this so that you can immediately discount everything I’m about to write if you like, but&amp;nbsp;&lt;em&gt;wait, hear me out!&lt;/em&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;http://www.geeksaresexy.net/wp-content/uploads/2011/06/googleplus.png&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-47794&quot; height=&quot;210&quot; src=&quot;http://www.geeksaresexy.net/wp-content/uploads/2011/06/googleplus.png&quot; style=&quot;border-bottom-style: none; border-color: initial; border-color: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; clear: both; display: block; font-size: 14px; font: inherit; height: auto; margin-bottom: 0.1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;If you haven’t been living under a rock for the past 48 hours or so then you’ve heard about Google’s new “Facebook killer.” Because despite Google’s serious attempts to&amp;nbsp;&lt;em&gt;not&lt;/em&gt;&amp;nbsp;brand themselves that way (“It’s a&amp;nbsp;&lt;em&gt;project&lt;/em&gt;, not a&amp;nbsp;&lt;em&gt;product&lt;/em&gt;! We’re not competing with Facebook!”), media article after media article has been using a term that makes me think we’re not talking about social networking at all but instead the upcoming season of&amp;nbsp;&lt;em&gt;Dexter&lt;/em&gt;. So yes, everyone knows that it’s meant to compete with Facebook. Because Google would be stupid&amp;nbsp;&lt;em&gt;not&lt;/em&gt;&amp;nbsp;to want to compete with Facebook, which is perhaps the number one source of valuable user data they’re not getting.&lt;/div&gt;&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Of course, we have reason to be wary. Because&amp;nbsp;&lt;a href=&quot;http://www.geeksaresexy.net/2009/11/30/is-anyone-riding-the-google-wave/&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Google Wave&lt;/a&gt;&amp;nbsp;was impenetrable and&amp;nbsp;&lt;a href=&quot;http://www.geeksaresexy.net/2010/04/20/canada-and-everyone-else-to-google-you-suck/&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Google Buzz&lt;/a&gt;made Facebook’s privacy woes look amateur. And there’s a lot working against them in terms of adoption, because so many people are so firmly ensconced in Facebook that they’d have to be dragged out kicking and screaming. Years ago I remember thinking that Facebook would have difficulty sucking the user base out of Friendster, but that was nowhere&amp;nbsp;&lt;em&gt;near&lt;/em&gt;&amp;nbsp;the scale we’re talking about now – Facebook is pretty much&amp;nbsp;&lt;a href=&quot;http://xkcd.com/802/&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;taking over the world&lt;/a&gt;. And of course the thing about an online social network is, it only works if your&amp;nbsp;&lt;em&gt;&lt;/em&gt;“real” social network is there. Plus if everyone moves over from Facebook to Google Plus, just think about all those dead crops!&lt;/div&gt;&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Still, I am optimistic that this thing could actually work. Here’s why:&lt;/div&gt;&lt;ul style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 20px; margin-left: 40px; margin-right: 40px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;The reason I don’t use Facebook much is because every time I post something I have to think “Do I want my father to read this? My academic adviser? My boss? My friends? That guy I dated for two weeks in high school?” Yes, Facebook does provide ways to make posts selectively private, but it seems like this is exactly the problem that&amp;nbsp;&lt;a href=&quot;http://youtu.be/ocPeAdpe_A8&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Circles&lt;/a&gt;&amp;nbsp;is trying to solve.&lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;As&amp;nbsp;&lt;a href=&quot;http://xkcd.com/918/&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;xkcd&lt;/a&gt;&amp;nbsp;points out, on one hand you’ll never be able to convince your parents to switch. On the other hand, you’ll never be able to convince your parents to switch!&lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;The adoption problems re: tearing people away from Facebook (and their crops!) may be mitigated in part by the ease of adding people via gmail. What’s one more Google product in our lives? Plus Google’s limited roll-out strategy seems to have been successful in the past at creating demand and buzz. I wonder if they considered buying MySpace at&amp;nbsp;&lt;a href=&quot;http://news.cnet.com/8301-1023_3-20075167-93/myspace-sale-nearing-end-with-low-$30m-price/&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;a low, low, discounted price&lt;/a&gt;&amp;nbsp;to lure over the two people and some bands who are left there.&lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Given the huge shift in Facebook towards games like Farmville, as well as other apps, it’s possible that Google Plus can be more of a pure social network without all the noise. I see those two functions as very different things, and for those who like to play social games, there may be room for more than one site in their lives.&lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;After the debacle with Buzz, Google is heavily motivated to take privacy very seriously. I am optimistic on this count, though on the other hand, I’ve heard some grumbling (unverified) that Plus makes gender a mandatory public field, and this is the kind of thing that causes problems. So we’ll see.&lt;/li&gt;
&lt;li style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;http://youtu.be/Tku1vJeuzH4&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #5599cc; font-size: 14px; font: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;Hangouts&lt;/a&gt;&amp;nbsp;is actually something new – more similar to Skype than Facebook. The spontaneous gathering idea is interesting, but what really appeals to me is the potential to support a social practice I already have – which is watching Netflix remotely with people. For friends who live far away, we queue up a movie (usually a bad one) and then chat in IM as we watch. When I saw someone tweeting yesterday about “hanging out” in Plus watching YouTube videos with friends, I got a glimmer of hope for this.&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font: inherit; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;So will Google Plus (and by the way, “Google+” is such an awful name for the purposes of writing, I can’t even express) be the “Facebook Killer”? Doubtful. But there might still be something there, and maybe I’m just too sunshine-and-unicorns, but I’m excited to find out.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/2684225640867212022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/google-plus-better-then-facebooksome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2684225640867212022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2684225640867212022'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/google-plus-better-then-facebooksome.html' title='Google Plus Better Then FaceBook...Some Reasons to Be Optimistic About Google Plus'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-5757206069492593755</id><published>2011-06-30T01:49:00.000-07:00</published><updated>2011-06-30T01:49:43.366-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google Vs Facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="Google’s Facebook Competitor"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="The Google+ Social Network"/><title type='text'>Google’s Facebook Competitor, The Google+ Social Network, Finally Arrives</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444; font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 20px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google’s long expected second shot at taking on Facebook in the social networking space&amp;nbsp;&lt;a href=&quot;http://googleblog.blogspot.com/2011/06/introducing-google-project-real-life.html&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;has arrived in the form of the Google+ Project&lt;/a&gt;. It has some interesting twists on the social networking model but is far from a Facebook-killer.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;That Name&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The terrible name is a bad start. Google+? Google+! I can’t even question or exclaim about the bad name without it looking bad in writing.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Pronounced “Google Plus,” the product is officially written as Google+ — making placing any punctuation after the name fairly awkward.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Seriously, I’m cursing whoever made the final decision to go with Google+ as a name. Wasn’t the&amp;nbsp;&lt;a href=&quot;http://searchengineland.com/meet-1-googles-answer-to-the-facebook-like-button-70569&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Google +1 sharing service&lt;/a&gt;&amp;nbsp;bad enough?&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Now we have Google+, which in turn allows you to +1 things that you’ve Google+’d. My head hurts from writing that.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;In this article, I’ll generally stick with the Google+ name except where Google Plus is more legible, due to punctuation.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The Google+ Project&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;What about the product itself? Google dubs&amp;nbsp;&lt;a href=&quot;http://plus.google.com/&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Google+&lt;/a&gt;&amp;nbsp;as a “project” rather than a product, stressing it’s part of making Google itself more social rather than being a standalone social network to take on Facebook.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;“It’s ‘Plus’ because it takes products from Google and makes them better and ‘project’ because it’s an ongoing set of products,” said Vic Gundotra, the senior vice president who oversees Google’s social products.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;But is it Facebook competitor, I asked in a follow-up question. Google emailed back:&lt;/div&gt;&lt;blockquote style=&quot;margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;No. We realize that today people are increasingly connecting with one another on the web. But the ways in which we connect online are limited and don’t mimic our real-life relationships. The Google+ project is our attempt to make online sharing even better. We aren’t trying to replace what’s currently available, we just want to introduce a new way to connect online with the people that matter to you.&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;OK, but as the saying goes, if it looks like a duck and quacks like a duck, it’s probably a duck. And Google+ looks like and quacks like Facebook in several ways.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Circles&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Most important, Google+ is a social network of your friends, family and other contacts, a way to connect to these people, just like Facebook.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Unlike Facebook, Google+ is built from the ground up around the concept of sharing material with groups of people, called “Circles.” Here’s an example of how they look:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-83405&quot; height=&quot;297&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/gplus_circleeditor-600x448.png&quot; style=&quot;display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Circles&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The idea is that you can easily drag-and-drop people into different types of Circles, which you can then use for sharing different types of things.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;For example, you can create a “Family” circle where you might chose to share things only with family members in it, while another “Work” circle might contain work colleagues who only see what you share to that.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google+ Circles Vs Facebook Lists &amp;amp; Groups&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;While Facebook might not have been built from the beginning with a Circles-like sharing concept, Facebook does currently have two features that are similar: Friend Lists &amp;amp; Groups.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.facebook.com/blog.php?post=7831767130&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Added&lt;/a&gt;&amp;nbsp;in December 2007,&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/help/?page=768&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Friend Lists&lt;/a&gt;&amp;nbsp;allow you to share some of your Facebook information with specific groups of friends (or other selected contacts) that you create. They’re also supposed to allow you to group message people in a list, though I couldn’t get this to work, when I tested it today.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Friend Lists don’t allow for selective sharing. But the updated&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/groups&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Facebook Groups&lt;/a&gt;&amp;nbsp;feature that&lt;a href=&quot;http://searchengineland.com/facebook-introduces-private-groups-52388&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;came out last October&lt;/a&gt;&amp;nbsp;does provide this, a way to share what you want with whom you want.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;How does Circles weight up against these? I can’t say first hand. The Google+ product wasn’t live for me to test when I wrote this (our hands-on review will come later today).&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Friend Lists are nice in that if you pick one person, such as below where I selected Facebook communications chief Elliott Schrage, you get relevant suggestions that appear (other Facebook execs who’ve friended me on Facebook):&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/?attachment_id=83409&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-83409&quot; height=&quot;125&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/facebook-friends-2-600x188.jpg&quot; style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: black; border-left-style: solid; border-left-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-top-color: black; border-top-style: solid; border-top-width: 1px; border-width: initial; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;facebook friends&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;But that list can’t be used, as best I can tell, to start an associated group to share just to these people. Instead, when I tested today, I was still forced to make a group, then pick people individually to add to that.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;So, the drag-and-drop interface of Circles looks appealing. Then again, if you have hundreds of “friends,” it still might turn into too much organization. Maybe people will use it to create some select groups that they really want (family, close friends, those in a club, etc.). But if it turns into a wonderful tool, it’s hard to imagine that Facebook couldn’t easily match it.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Who’s In Your Circle?&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-full wp-image-83406&quot; height=&quot;90&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/circles-90.png&quot; style=&quot;float: right; margin-bottom: 4px; margin-left: 14px; margin-right: 14px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Google+ Circles Logo&quot; width=&quot;90&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;There’s no limit to the number of circles you can create. But where do the people come from who will be in your circles?&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;First, any contacts you’ve stored through the Google Contacts service will be available. If you have no contacts, you can import them through the CSV format, which many contact services will export out to.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google also said that it is looking into ways to directly important contacts from Yahoo and Microsoft. Facebook wasn’t mentioned.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;That’s not surprising. Facebook hasn’t allowed the export of friends’ email addresses, except to … Yahoo and Microsoft. The stories below explains more about this:&lt;a href=&quot;http://searchengineland.com/facebook-you-have-no-right-to-export-email-addresses-55247&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style=&quot;color: #515151; font-size: 12px; line-height: 1.5em; margin-bottom: 10px; margin-left: 5px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 15px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;color: #515151; font-size: 15px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2px; padding-right: 2px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/facebook-you-have-no-right-to-export-email-addresses-55247&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Facebook: You’ve No Right To Export Email Addresses (Unless It’s To Yahoo &amp;amp; Microsoft)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;color: #515151; font-size: 15px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 2px; padding-right: 2px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/facebook-messages-export-of-facebook-com-addresses-ok-55992&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 1.5em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Facebook Messages: Export Of Facebook.com Addresses OK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;What’s all this mean in practical terms? Everyone in Google+ will effectively be starting from scratch.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;If you already use things like Gmail, you probably have Google Contacts that give you email addresses of your social network. If you don’t, you can import — and Yahoo and Microsoft may serve as go-betweens to help you bring information from Facebook into Google Plus.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;From Email To Virtual Person&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/googles-facebook-competitor-the-google-social-network-finally-arrives-83401/profile-90&quot; rel=&quot;attachment wp-att-83430&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-full wp-image-83430&quot; height=&quot;90&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/profile-90.png&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; float: right; margin-bottom: 4px; margin-left: 14px; margin-right: 14px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Google Profiles logo&quot; width=&quot;90&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The bigger issue is that your contacts — be that from within Google or imported from Facebook — are basically just email addresses. The won’t have any social connection information with them.&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google Contacts won’t know that a particular person whose email address you have is friends with other people you know. A Facebook import won’t turn email addresses gathered from there into links with other people who use Facebook.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Instead, what will really jump start Google+ is if a significant number of people come into the system and start claiming profiles within it, effectively turning those email addresses into virtual people who have connections within Google Plus.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;That’s a big if. If you’re already happy using Facebook, you may have no more incentive to use Google’s new social network than someone already happy using Google has to switch over to Bing. What you’re using is doing the job just fine.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Buzz Off Google Buzz&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;When people do get into the system, that does open up another way to add contacts. You’ll be able to search through other members who have registered.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;But here’s the crazy thing. Those connections you may have already formed using&amp;nbsp;&lt;a href=&quot;http://searchengineland.com/google-buzz-takes-on-twitter-facebook-foursquare-35673&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Google Buzz&lt;/a&gt;? Remember, Google’s last attempt to take on Facebook from February 2010? None of that is being used for Google Plus. The two products are being kept completely separate.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;I suspect Google’s trying to be as cautious as possible, in the wake of its settlement with the US Federal Trade Commission (see&amp;nbsp;&lt;a href=&quot;http://searchengineland.com/google-settles-ftc-charges-over-buzz-agrees-to-20-years-of-privacy-audits-70676&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Google Settles FTC Charges Over Buzz, Agrees To 20 Years Of Privacy Audits&lt;/a&gt;). Buzz seems tainted, so keeping Google+ isolated from that may be deemed the most prudent course.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;And what’s the future for Buzz, with Google+ coming out? Google told me in a follow-up email:&lt;/div&gt;&lt;blockquote style=&quot;margin-bottom: 10px; margin-left: 20px; margin-right: 20px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The short answer is it won’t have any major impact on Buzz at launch. Buzz users will still see a Buzz tab on their Google profile, and Buzz will continue working as it always has. Google+ users can also be Buzz users or can decide to just share their content using one of the products. Over time, we’ll determine what makes the most sense in terms of integrating the products.&lt;/blockquote&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google+ Stream&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Now let’s talk about how you see what’s being shared by those in your network, as well as what you can specifically share.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Information appears in your “Stream,” which is akin to Facebook’s news feed. At the top of your stream is a sharing box. Actually, two sharing boxes:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-83416&quot; height=&quot;92&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/sharing-box-600x139.png&quot; style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-top-color: black; border-top-style: solid; border-top-width: 1px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;sharing box&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;In the new black navigation bar that began&amp;nbsp;&lt;a href=&quot;http://searchengineland.com/google-goes-black-with-black-navigation-bar-test-83162&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;showing up for some people this week&lt;/a&gt;, there’s a “Share” area to the right side. That bar, by the way, has been dubbed the “One Google” bar, Google told me. No matter where you are on Google, you’ll have the ability to share something out to Google Plus.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;In the Stream itself, there’s a longer box, where you can enter a status update or use icons to upload and share photo and videos. You can also share links or your location, if you’ve allowed Google to track that for you. On mobile devices, you can select from a drop-down of nearby places to check-in.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The check-in feature also raises questions about Google Latitude — does it get absorbed into Google+ eventually? What about HotPot?&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;What do you see from others? Here’s an example:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-83419&quot; height=&quot;231&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/gplus_stream-600x347.png&quot; style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-top-color: black; border-top-style: solid; border-top-width: 1px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Stream View&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;In this screenshot, the person is viewing what’s been shared only by people in their “Bike Geeks” groups, as highlighted on the left side. By selecting another circle that’s listed, they would see only information being shared by that group.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Friends, Followers &amp;amp; Off-Network Friends&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;As with Twitter (or with Facebook, when it comes to fan pages), it’s possible with Google+ to follow other people on the network, even if they don’t reciprocate and follow you or friend you back.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google says that if you follow someone this way, you’ll only see what they choose to share with everyone publicly. If they share some things more restrictively, with particular circles, for example, those outside of those circles won’t see that.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Somewhat related, you can be friends with people who aren’t formally part of Google Plus. If they’re an email-only contact and never formally join the service, you can still add them to circles and share with them.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;When you do this, they’ll apparently be sent an email with whatever you wanted to share, a picture, an update and so on.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The downside is that if they’re not on Google Plus, they’ll get a notification anytime you share anything. So if you’re a big sharer, potentially you might hit some of your friends with a lot of email.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Where’s +1?&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/confirmed-google-showing-1-counts-to-logged-out-users-82800/plus-1-image-2&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-full wp-image-82806&quot; height=&quot;73&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/plus-1-image.png&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; float: right; margin-bottom: 4px; margin-left: 14px; margin-right: 14px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;plus-1-image&quot; width=&quot;114&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In the stream example above, there was a +1 button at the bottom of the photo. Yes, anything you like within Google+ can be +1′d, in the way that anything you like on Facebook can be liked with Facebook Like buttons.&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;If you do that, do your friends on Google+ see that action, in the way that friends on Facebook may see what you like? Nope. Not to my understanding,&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Further more, all those Google +1 buttons that are now&amp;nbsp;&lt;a href=&quot;http://searchengineland.com/googles-plusone-button-goes-global-83353&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;starting to appear on Google search worldwide&lt;/a&gt;? Those&amp;nbsp;&lt;a href=&quot;http://searchengineland.com/its-here-google-1-buttons-for-websites-79394&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;Google +1 buttons&lt;/a&gt;&amp;nbsp;that publishers have diligently been adding to their sites since they were released earlier this month? Nothing from those button clicks flows back into Google Plus.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;It’s crazy. It makes no sense. It’s as if Facebook launched its Like buttons but forgot to hook them up to flow information back into Facebook.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Right now, it remains the case that if you want to see what someone has +1′d, then you have to remember to go to their Google Profile page on a regular basis, then hope they’ve enabled the +1 tab on that profile, then rinse and repeat for other people.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google told me that it would be “logical” to see +1 flow into Google+ and that “one could guess eventually” it will happen. So, I’m pretty sure we will see this happen. But when it will launch is unclear, and it really feels like an incredible mistake that it’s not part of the launch.&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google Sparks: Tips On What To Share&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Time for more features. What if you started a social network and no one knew what to share? That’s a problem that Google Sparks is intended to solve.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Think of it like Google Alerts made to flow into Google Plus. Google Sparks lets you follow topics of interest:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/googles-facebook-competitor-the-google-social-network-finally-arrives-83401/gplus_sparks&quot; rel=&quot;attachment wp-att-83449&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-83449&quot; height=&quot;284&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/gplus_sparks-600x427.png&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Google Sparks&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;You can browse suggestions or set up your own keyword-based searches. Then when you select a “Sparks” link, you’ll get a feed of search results that you might wish to share. Here’s an example of what Sparks might show for a fashion topic:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-83450&quot; height=&quot;160&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/Google+-Tour-600x241.jpg&quot; style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: black; border-left-style: solid; border-left-width: 1px; border-right-color: black; border-right-style: solid; border-right-width: 1px; border-top-color: black; border-top-style: solid; border-top-width: 1px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Google Sparks&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The relevancy is supposed to be tweaked to find especially sharable content that people are already clicking on, things that are very visual with photo and pictures.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;I got a brief demo trying two searches, and the results didn’t thrill me. They were OK, but they didn’t feel particularly shareable. Still, the feature will probably be useful to some, and I can’t really assess the relevancy either way on such limited testing.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Hangouts: Group Video Chat&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google seems to be hanging most of its hopes that Google+ will attract people from Facebook on two main features, I’d say. One is the aforementioned Circles sharing feature. The other is the Hangout video chat feature.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;With Hangouts, up to 10 people at a time can all interact through video:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-83458&quot; height=&quot;221&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/hangouts-1.jpg&quot; style=&quot;display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Hangouts&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The demo I saw of the system was compelling. As one participant spoke, the main image automatically changed to that person. You can also play video that everyone watches.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Gundotra spent some time talking with me about how Google has examined the social dynamics of video chat, to get people more comfortable participating. The key is to get several people all involved casually, rather than to barge in with a solitary invite.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;He used a “talking to your neighbor” analogy to explain more. You’re probably are hesitant to knock a neighbor’s door and disturb them just because you want to talk. But if you saw them outside on their porch, Gundotra said, you’d probably feel better saying “Hi” when passing by. If two neighbors were sitting and talking, you’d probably feel rude not also stopping and chatting.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Hence the Hangouts name. When someone launches a Hangout, this shows up on the feed that goes out to their friends. As more people join, the notifications get updated to show the number participating. As that number rises, Google says even more people are compelled to take part.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The party ends at 10, however. No more can participate for scale reasons and also because the group dynamics get too hard, Gundotra said. If someone leaves, others can come in.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The puzzling thing to me is that Google’s not made it possible for anyone to stream the chat out to non-participants. If you have a group of friends, and not all can take part at once, others might be interested just to listen in.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Beyond that, Hangouts seems like a pretty awesome tool for those who wanted to record video shows. But there’s no way to save what happens.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Huddle: Group Text Chat&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Somewhat related to Hangouts is Huddle, a group text chat service. I can’t really tell you more than that. Google didn’t cover this during my talk with them about Google Plus last week, so I’ve only got a screenshot for you and a promise will cover it more in our coming hands-on piece:&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/googles-facebook-competitor-the-google-social-network-finally-arrives-83401/huddle&quot; rel=&quot;attachment wp-att-83463&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-large wp-image-83463&quot; height=&quot;247&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/huddle-600x371.jpg&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;Huddle&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Huddle is for Android 2.0+ phones, iPhone 4.0+ phones and SMS, Google tells me.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Instant Upload&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;a href=&quot;http://searchengineland.com/?attachment_id=83464&quot; style=&quot;color: #0c72b6; font-size: 15px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-full wp-image-83464&quot; height=&quot;208&quot; src=&quot;http://searchengineland.com/figz/wp-content/seloads/2011/06/instant-upload.jpg&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; float: right; margin-bottom: 4px; margin-left: 14px; margin-right: 14px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot; title=&quot;instant upload&quot; width=&quot;344&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The last major feature of Google+ is called “Instant Upload.”&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;For those with Android phones, you can have any picture you take be uploaded to a centralized — and private — photo album area.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Google tells me they hope to bring it to other phones, as well.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2 style=&quot;color: #444444; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 20px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Getting Google+&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Want to try the service? Right now, it’s strictly invite only. Some press are being allowed in, along with others that Google hand picks. There’s no ETA on when wider invites will be available.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Unusually, this isn’t being called a beta test or an experiment but rather a “field trial” that’s meant to finally gather some feedback from outside Google itself.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;The limited test is probably wise. It’ll give Google more time to discover things it might not have anticipated being problems, as was the case with Buzz.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;As for a wider release, and possible success, it’s anyone’s guess. As I said earlier, if you’re happy using Facebook, there seems relatively little to make you want to switch over to Google Plus, at the moment.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Perhaps with further Google +1 integration, that might change. Perhaps if there are people who want a Facebook alternative, Google’s now got a core to build on for them. At least the guessing about what Google might be doing is over.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/5757206069492593755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/googles-facebook-competitor-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/5757206069492593755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/5757206069492593755'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/googles-facebook-competitor-google.html' title='Google’s Facebook Competitor, The Google+ Social Network, Finally Arrives'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-8316045542643032286</id><published>2011-06-07T01:28:00.000-07:00</published><updated>2011-06-07T01:28:59.417-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><title type='text'>7 features available only in Google Chrome</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif; font-size: 12px; line-height: 22px;&quot;&gt;We have already seen in recent news that&amp;nbsp;&lt;a href=&quot;http://computer-internet-technology.blogspot.com/search/label/google&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #104e8b; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;&quot;&gt;&lt;b style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Google&lt;/b&gt;&lt;/a&gt;&amp;nbsp;reserved - legitimately - some advantages and features to its own services and machinery. For example, Google Maps navigation, 3D view of buildings in vector or Google Music , many services that are currently available on the&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD3&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;Android smartphones&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif; font-size: 12px; line-height: 22px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;So too with its web browser Chrome, which offers some functionality related to Google that you can not find - or not in the same form - in other browsers. The&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD5&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;blog&lt;/span&gt;&amp;nbsp;Google Operating System has wisely listed seven features available exclusively in Chrome .&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;1. Printing natively in Google Docs. It is more useful to&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD4&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;download&lt;/span&gt;&amp;nbsp;PDFs in Adobe Reader to&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD8&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;print&lt;/span&gt;. You can&amp;nbsp;printdirectly from Google Chrome.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;2. Import files into Google Docs. Other browsers require the&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD7&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;installation&lt;/span&gt;&amp;nbsp;of a&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD11&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;Java&lt;/span&gt;&amp;nbsp;applet to do so. This is not the case for Google Chrome.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;3. Speech input in Google Translate. The latest version of Google Chrome can tell the browser to obtain a translation of the text, rather than enter the keyboard. We talked about it here: Google is experimenting with voice search on the PC .&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;4 &amp;amp; 5. The&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD2&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;notification&lt;/span&gt;&amp;nbsp;alerts on your desktop to Gmail and&amp;nbsp;&lt;a href=&quot;http://computer-internet-technology.blogspot.com/search/label/google&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #104e8b; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;&quot;&gt;&lt;b style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Google&lt;/b&gt;&lt;/a&gt;&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD10&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;Calendar&lt;/span&gt;. When you receive a new email or you must be warned of an impending next&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD6&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;appointment&lt;/span&gt;, Chrome sends a warning not too intrusive on your desktop.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;6. Opening PDF attachments in the integrated viewer. Rather than opening the PDFs in Google Docs, Chrome opens them directly in the browser.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;7. Drag and drop attachments Gmail. If in Firefox you can already drag an&amp;nbsp;&lt;span class=&quot;IL_AD&quot; id=&quot;IL_AD1&quot; style=&quot;-webkit-background-clip: initial !important; -webkit-background-origin: initial !important; background-attachment: scroll !important; background-color: transparent !important; background-image: none !important; background-position: 0% 50%; background-repeat: repeat !important; border-bottom-color: rgb(0, 153, 0) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(0, 153, 0) !important; cursor: pointer !important; display: inline !important; float: none !important; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif !important; font-size: 12px !important; font-style: normal !important; font-weight: normal !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;&quot;&gt;attachment&lt;/span&gt;&amp;nbsp;from your desktop into an email, the reverse is not possible. Google Chrome, if you can drag an&amp;nbsp;attachment&amp;nbsp;received in an email directly to your desktop.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Cosmetic features may encourage large consumers to take the plunge and leave their current browser to Google Chrome ...&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/8316045542643032286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/7-features-available-only-in-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8316045542643032286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8316045542643032286'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/06/7-features-available-only-in-google.html' title='7 features available only in Google Chrome'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-6509633861873963952</id><published>2011-05-24T00:08:00.000-07:00</published><updated>2011-06-06T21:15:37.462-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><title type='text'>WebP: A new image format for the Web</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;line-height: 125%; padding-top: 12px; text-align: justify;&quot;&gt;WebP is a new image format that provides lossy compression for     photographic images. In a large scale study of 900,000 web images, WebP     images were 39.8% smaller than jpeg images of similar quality.          A WebP file consists of &lt;a href=&quot;http://www.webmproject.org/tools/vp8-sdk&quot;&gt;     VP8&lt;/a&gt; image data, and a container based on     &lt;a href=&quot;http://code.google.com/speed/webp/docs/riff_container.html&quot;&gt;RIFF&lt;/a&gt;. The standalone     &lt;code&gt;libwebp&lt;/code&gt; library serves as a reference implementation for the     WebP specification and is available at this &lt;a href=&quot;http://www.webmproject.org/code/#libwebp_webp_image_library&quot;&gt;git&lt;/a&gt;     repository and as a &lt;a href=&quot;http://code.google.com/p/webp/downloads/list&quot;&gt;tarball&lt;/a&gt;.     Webmasters and web developers can use the WebP image format to create     smaller and better looking images that can help make the web faster.     &lt;br /&gt;
&lt;strong&gt;Did you know?&lt;/strong&gt; WebP is pronounced &quot;weppy&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&amp;nbsp;How WebP works&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;line-height: 125%; padding-top: 5px;&quot;&gt;WebP uses predictive coding to encode an image, the same             methodology used by the VP8 video codec to compress keyframes in             videos. Predictive coding uses the values in neighboring blocks of             pixels to predict the             values in a block, and then encodes only the difference (residual)             between the actual values and the prediction.             &lt;br /&gt;
The residuals typically contain many zero values, which can be             compressed much more effectively. The residuals are then             transformed, quantized and entropy-coded as             usual. WebP also uses variable block sizes.             &lt;/div&gt;&lt;/div&gt;&lt;table class=&quot;columns&quot; style=&quot;margin-left: 0px; margin-right: 0px; text-align: justify;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;WebP support           &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;div style=&quot;line-height: 125%; padding-top: 5px;&quot;&gt;WebP is supported by a variety of tools. In addition, it is now             natively supported in Google Chrome, the             &lt;a href=&quot;http://www.google.com/chromeframe&quot;&gt;Google Chrome Frame&lt;/a&gt;             plug-in for Internet Explorer and Opera 11.10.             &lt;br /&gt;
Developers have also added support to a variety of image editing             tools. This release also provides a lightweight encoding and             decoding library,             &lt;code&gt;               &lt;a href=&quot;http://www.webmproject.org/code/#libwebp_webp_image_decoder_library&quot;&gt;libwebp&lt;/a&gt;             &lt;/code&gt;             and command line tools             &lt;code&gt;&lt;a href=&quot;http://code.google.com/speed//webp/docs/using.html&quot;&gt;cwebp&lt;/a&gt;&lt;/code&gt; and             &lt;code&gt;&lt;a href=&quot;http://code.google.com/speed/webp/docs/using.html&quot;&gt;dwebp&lt;/a&gt;&lt;/code&gt;             for converting images to and from the WebP format. The full source             code is available on the             &lt;a href=&quot;http://code.google.com/speed/webp/download.html&quot;&gt;download&lt;/a&gt; page.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;http://code.google.com/speed/webp/download.html&quot;&gt;WebP converter download&amp;nbsp;             &lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Convert your favorite collection from PNG and JPEG to WebP by              downloading the precompiled &lt;code&gt;cwebp&lt;/code&gt; conversion tool              for &lt;a href=&quot;http://code.google.com/speed/webp/docs/precompiled.html&quot;&gt;Linux,              Windows or Mac OS X&lt;/a&gt;.              &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/6509633861873963952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/webp-new-image-format-for-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/6509633861873963952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/6509633861873963952'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/webp-new-image-format-for-web.html' title='WebP: A new image format for the Web'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-8303092742279215695</id><published>2011-05-20T23:21:00.000-07:00</published><updated>2011-05-20T23:21:31.093-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><title type='text'>Google’s WebP Image Format Takes On JPEGs With Sharper Pictures (Google is on a mission to make the Web faster)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #272727; font-family: &#39;Lucida Grande&#39;, Verdana, &#39;Lucida Sans Regular&#39;, &#39;Lucida Sans Unicode&#39;, Arial, sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 19px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; text-align: center;&quot;&gt;&lt;img height=&quot;361&quot; src=&quot;http://tctechcrunch.files.wordpress.com/2011/05/webp-gallery.jpg&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-style: initial; border-top-width: 0px; max-width: 620px; position: relative;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 19px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; text-align: justify;&quot;&gt;Google is on a mission to make the Web faster. One thing that slows down pageload times are fat image files. Even JPEG and PNG files can get pretty big. So Google is developing a&amp;nbsp;&lt;a href=&quot;http://www.crunchgear.com/2010/09/30/with-webp-google-aims-to-replace-yet-another-elemental-web-format/&quot; style=&quot;color: #009f00; font-weight: bold; text-decoration: none;&quot;&gt;new image format&lt;/a&gt;&amp;nbsp;called&amp;nbsp;&lt;a href=&quot;http://code.google.com/speed/webp/&quot; style=&quot;color: #009f00; font-weight: bold; text-decoration: none;&quot;&gt;WebP&lt;/a&gt;&amp;nbsp;(which is a sister format to its&amp;nbsp;&lt;a href=&quot;http://techcrunch.com/2010/05/19/webm-google-h-264/&quot; style=&quot;color: #009f00; font-weight: bold; text-decoration: none;&quot;&gt;WebM project&lt;/a&gt;&amp;nbsp;for videos).&lt;/div&gt;&lt;div style=&quot;line-height: 19px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; text-align: justify;&quot;&gt;The key to making image files on the Web smaller without losing sharpness is better compression of the original file. Today, Google announced via the&amp;nbsp;&lt;a href=&quot;http://blog.chromium.org/2011/05/webp-in-chrome-picasa-gmail-with-slew.html&quot; style=&quot;color: #009f00; font-weight: bold; text-decoration: none;&quot;&gt;Chromium blog&lt;/a&gt;&amp;nbsp;that the compression algorithms for WebP just got better and that they can even handle different parts of an image separately so that parts of it can be displayed without waiting for the entire image to be compressed and decompressed.&lt;/div&gt;&lt;div style=&quot;line-height: 19px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; text-align: justify;&quot;&gt;The images above, for instance, are from this&amp;nbsp;&lt;a href=&quot;http://code.google.com/speed/webp/gallery.html#samples&quot; style=&quot;color: #009f00; font-weight: bold; text-decoration: none;&quot;&gt;gallery&lt;/a&gt;&amp;nbsp;comparing JPEG to WebP. The WebP images are significantly smaller, but look just as sharp. Can you tell the difference? Unfortunately, WebP is only supported in Chrome and Opera browsers. Google products such as Gmail, Picassa Web albums, and Google Instant Previews also support WebP. But other than Opera, it’s pretty much an all-Google affair.&lt;/div&gt;&lt;div style=&quot;line-height: 19px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em; text-align: justify;&quot;&gt;Websites aren’t going to start using WebP images just for Google Chrome visitors. But if it does speed things up without reducing the quality of images, other browsers will start supporting it as well or else be left behind.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/8303092742279215695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/googles-webp-image-format-takes-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8303092742279215695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8303092742279215695'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/googles-webp-image-format-takes-on.html' title='Google’s WebP Image Format Takes On JPEGs With Sharper Pictures (Google is on a mission to make the Web faster)'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-2486307252349382213</id><published>2011-05-18T02:51:00.000-07:00</published><updated>2011-05-18T02:51:37.216-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><category scheme="http://www.blogger.com/atom/ns#" term="Popular Programming Languages"/><title type='text'>Create SEO friendly URL`s using mod rewrite in PHP (.htaccess)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;In this tutorial I will show you how to transform this: &lt;div class=&quot;code&quot;&gt;http://www.mywebsite.com/tutorials.php?id=123&amp;amp;title=mod_rewrite&amp;amp;category=php&lt;/div&gt;into this &lt;div class=&quot;code&quot;&gt;http://www.mywebsite.com/tutorials/php/mod_rewrite-123&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Why to rewrite your URL`s ?&lt;/b&gt;&lt;br /&gt;
The  main reason is because static URL`s (the second URL is static) are  indexed more faster than dynamic URL`s (like the first one), because  from a static URL is easier to understand what the page is about both  for search engines and your visitors. When using dynamic URL`s there is  an another problem: search engines are reading only the beginning of the  long URL`s, so if your addresses are different only at the end, than  search engines will see the same URL for all of your pages and from this  reason none will be indexed.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;How this works ?&lt;/b&gt;&lt;br /&gt;
We will  use Apache mod_rewrite. The mod_rewrite transforms back the second URL  into the first URL, so the server will access the &quot;ugly&quot; address, but  the visitors and the search engines will see the &quot;clear&quot; one.  mod_rewrite simply rewrites the URL`s what meets specific conditions  into addresses what are understood by the server.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Let`s rewrite it!&lt;/b&gt;&lt;br /&gt;
The code what rewrites the website address needs to be placed in your &lt;b&gt;.htaccess&lt;/b&gt; file (if you don`t have it in your root folder, create it), the code is very short:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot; style=&quot;background-color: #f9cb9c; color: #20124d;&quot;&gt;&lt;b&gt;RewriteEngine on&lt;br /&gt;
RewriteRule ^tutorials/(.*)/(.*)-([0-9]+)/?$ /tutorials.php?id=$3&amp;amp;title=$2&amp;amp;category=$1&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br style=&quot;color: #3d85c6;&quot; /&gt;&lt;b&gt;Take it apart!&lt;/b&gt;&lt;br /&gt;
The first line: &lt;b&gt;RewriteEngine on&lt;/b&gt; simply does what it says, it starts the rewrite engine. &lt;br /&gt;
Now let`s take apart the second line:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #f9cb9c; color: #134f5c;&quot;&gt;&lt;b&gt;RewriteRule - this tells the server about the rule to follow when rewriting the URL&lt;/b&gt;&lt;b&gt;^ - this exponential sign means the start of the URL: http://www.mywebsite.com/&lt;/b&gt;&lt;b&gt;tutorials - this word is simply added to the website adress&lt;/b&gt;&lt;b&gt;/ - this character separates the directories &lt;/b&gt;&lt;b&gt;(.*) - this tells the server that here will be placed some data (any kind of characters) (e.g.: php)&lt;/b&gt;&lt;b&gt;- - this character will be simply added to the website adress&lt;/b&gt;&lt;b&gt;([0-9]) - this tells the server that here will be placed a digit (e.g: 1)&lt;/b&gt;&lt;b&gt;+ - the plus sign tells the server that here can be more digits (e.g.: 123)&lt;/b&gt;&lt;b&gt;?  - this sign tell the server that the character in it`s front it`s not  required (so the URL will work with and without the last &quot;/&quot;)&lt;/b&gt;&lt;b&gt;$ - the dollar sign tells the server that here is the end of the rule&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The last part of the line is the old address, the value of each variable  (id, title and category) are changed to $3, $2 and $1. mod_rewrite  takes these variables and places them in their new position in the new  URL. In the first place for data (the first (.*)) it places the $1`s  value (the category value), in the second place the value of $2 and so  on. If you want to change the order just change the $1, $2 and $3 order,  but be careful to set the right data type in the new URL.&amp;nbsp; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/2486307252349382213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/create-seo-friendly-urls-using-mod.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2486307252349382213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2486307252349382213'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/create-seo-friendly-urls-using-mod.html' title='Create SEO friendly URL`s using mod rewrite in PHP (.htaccess)'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-5087841531189927709</id><published>2011-05-18T02:10:00.000-07:00</published><updated>2011-05-18T02:10:48.335-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java vs. Ruby on Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><title type='text'>Benefits of Programming in Ruby on Rails</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Lucida Grande&#39;, Verdana, &#39;Lucida Sans Regular&#39;, &#39;Lucida Sans Unicode&#39;, Arial, sans-serif; font-size: 12px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: transparent; background-image: initial; background-repeat: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #101010; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;There are several programming languages that to-be programmers (or current programmers) can choose from. For first-time programmers, choosing a programming language can be difficult. There are many programming languages that are dying out, just aren’t popular, or are just generally hard to learn. It would be a shame for any first-time programmer to purchase books to learn a language to find that it is too difficult. It would also be a shame to learn a programming language that has no application at work. Ruby is a great programming language because it offers a great feature called Ruby on Rails. Rails is a web framework that can be used by programmers to speed up development.&lt;/div&gt;&lt;div style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: transparent; background-image: initial; background-repeat: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #101010; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;&lt;span id=&quot;more-14155&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: transparent; background-image: initial; background-position: initial initial; background-repeat: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;/span&gt;The programming language, Ruby, was created in the mid 1990’s in Japan, by Yukihiro “Matz” Matsumoto. Ruby is based on Perl, Smalltalk, Eiffel, Ada, and Lisp and was written to create a programming language that, according to Matsumoto, “was more powerful than Perl, and more object-oriented than Python.”&lt;/div&gt;&lt;div style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: transparent; background-image: initial; background-repeat: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #101010; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;One of the goals of Ruby is to allow the simple and fast creation of web applications. The language itself satisfies this goal. Because of this, there is much less tedious work with this language than many other programming languages. Ruby is also free of charge. It is also free to copy, use, modify, and distribute. Since Ruby can be modified, programmers can make necessary changes and can code without feeling restricted. Another feature of Ruby is its mark-and-sweep garbage collection which allows programmers the ability to code without having to worry about the need to maintain reference counts in extension libraries. Also, if an operating system allows for it, Ruby can dynamically load extension libraries. Ruby currently ranks as the 9th most popular programming language in the world. There are many online guides where Ruby programmers to-be can learn how to program in Ruby.&lt;/div&gt;&lt;div style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: transparent; background-image: initial; background-repeat: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #101010; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;&quot;&gt;Ruby on Rails, often simply called Rails, is an open source web application framework that was designed for Ruby by David Heinemeier Hansson and was released in July 2004. Ruby on Rails makes use of an object relational mapping layer known as the ActiveRecord. Because of this, programmers do not have to specify database column names in class definitions. Rails will retrieve this information on its own from the database based on the class name. Rails also has a testing framework built in which allows programmers to write test cases which helps them create more reliable, robust code.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/5087841531189927709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/benefits-of-programming-in-ruby-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/5087841531189927709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/5087841531189927709'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/benefits-of-programming-in-ruby-on.html' title='Benefits of Programming in Ruby on Rails'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-5138221825027615305</id><published>2011-05-18T02:08:00.001-07:00</published><updated>2011-05-18T02:08:28.194-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="Popular Programming Languages"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby vs java"/><title type='text'>Ruby on Rails Proves it Deserves the Hype (JAVA VS RUBY)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 23px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;With the multitude of programming languages out there such as Fortran, Java, C++ and C#, you may wonder why Ruby on Rails has suddenly become such a hot topic in the development world. Created in the late 1990&#39;s by an individual in Japan, the Ruby programming language had a cult following but never reached top-tier status. In 2004, a company called 37 Signals released a Web programming framework called Rails, which was originally developed for their own in-house projects. Rails was written using the Ruby programming language. It is the combination of Ruby and Rails together that has generated notable excitement in the development community, and the emerging language and application framework is proving to be a game-changer to the world of Web application development.&lt;/div&gt;&lt;h2 id=&quot;mbHeader&quot; style=&quot;color: black; font-size: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 15px; text-align: justify; width: 540px;&quot;&gt;Ruby on Rails&#39; Impact on Productivity&lt;/h2&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Rails is an integrated framework that utilizes the dynamic nature of the object-oriented Ruby programming language. Rails developers emphasize features of the framework for productivity rather than tools, and they take a common approach to Web architecture that should satisfy the needs of a large portion of the Web application projects in the wild.&lt;/div&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;As Rails was developed, the innovators of the framework realized that there were a multitude of features inherent to the framework that could benefit all Web applications. Rails is an extremely productive framework for database-backed Web applications. It is different from other frameworks in that it preaches convention over configuration. Typically, if you were building a computer program, you had to start from scratch and rely heavily on the skills and experience of the team&#39;s architect to develop and adhere to standards of writing good software. Rails primarily uses conventions to avoid configuration when possible, resulting in time saving and enhanced productivity. In a study by IBM, Rails applications needed a fraction of the configuration code of Java counterparts, often by a factor of ten or more.¹ Where the programmer must specify configuration, Rails usually relies on Ruby programming language to provide configuration. The strategy saves developers many lines of code and simplifies the code that does need to be written. By taking mundane but essential decisions away from the developer, productivity increases substantially because more time and attention is spent satisfying the customer&#39;s requirements rather than the technical plumbing that can burden most projects.&lt;/div&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Ruby on Rails is known for its ability to build Web applications quickly and with ease. For first-time users of Java, it could take about five to ten days to build a moderately useful Web application that will communicate with a database using accepted Java Web best-practices such as separating business logic, from display logic (commonly referred to as Model-View-Controller). With no prior training on Ruby on Rails, it takes about one day to accomplish the same goal using the Ruby programming language. In several more days, it is possible to build a relatively complete Web application with Ruby on Rails.&lt;/div&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;In Java, a developer has countless decisions to make about how to proceed when communicating with a database. Should I use JDBC? Should I use an Object-Relational-Mapping (ORM) library, and, if I use an ORM, which one should I choose? TopLink? Hibernate? JDO? Do I need to use EJB2 or EJB3? Rails has an ORM database layer built into its framework called ActiveRecord. Another useful feature of Rails is scaffolding -- Similar to how a building under construction uses scaffolding to assist in the construction of the final structure, Rails can generate code called scaffolding that can be used to quickly put up functional Web pages that talk to a database and allow you to add, delete and change information quickly and with very little coding. As previously mentioned, in other languages you have to select naming conventions and define the general structure of the file system, while Rails utilizes conventions and the Ruby programming language so that all of that is provided for you. Managers will appreciate the fact that Rails minimizes configuration and encourages standardization. This feature enables programming skills to be more portable. Rails developers can move from one project to another with ease, since standards common to all development projects, such as naming conventions, directory structures, unit-test frameworks, and interface templates, are already decided, with working samples always available.&lt;/div&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;Another feature of Ruby on Rails that enhances developer productivity is the rapid feedback loop. The feedback loop is the amount of time between making a change in code and seeing the results in the execution of your application on the screen. In Rails, you get nearly-instant feedback as you code. There is no compile or packaging phase needed. You can immediately load a browser page to see the results of your changes. Managers should take note of this feature, because with enhanced productivity comes improved client satisfaction. Say you are in a meeting with a client, and they have some edits that they would like for you to incorporate into their Web application. With Ruby on Rails, you can make changes promptly and see the results immediately, improving the overall client experience.&lt;/div&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;It is important to note that introducing a radically different framework such as Ruby on Rails can be detrimental to a company&#39;s development, testing, and production infrastructure. For example, Rails applications are installed differently than common development platforms such as Java or Microsoft&#39;s .NET. Operations managers need to understand how to deploy it effectively.&lt;/div&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;But Rails acceptance is already being witnessed in large companies such as IBM, Microsoft, Apple, and Sun Microsystems. Sun Microsystems supports a project called JRuby that enables Ruby applications to run in a Java Virtual Machine. Efforts like JRuby will make it easier for companies to transition and adapt to Ruby on Rails since it will become a part of a familiar structure. Apple Computer has announced that Ruby on Rails will be included in the next release of its flagship operating system, OS X 10.5 (Leopard). And, even Microsoft has included Ruby programming language support in its newest rich-Internet framework, Silverlight. The world&#39;s largest technical publisher, O&#39;Reilly Media, has even acknowledged Ruby&#39;s rapid growth and now considers it a major language with triple digit growth between 2006 to 2007. (http://feeds.feedburner.com/~r/oreilly/radar/atom/~3/117292190/state_of_the_co_10.html)&lt;/div&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;A common question regarding Ruby on Rails relates to its performance relative to its peers. Some companies claim that Ruby on Rails does not perform as well as comparable systems. Comments such as these must be looked at objectively and balanced against productivity gains. Managers then need to make the decision of whether it is cheaper to hire people or purchase additional hardware, and chances are they will find that purchasing more hardware makes better financial sense.&lt;/div&gt;&lt;h2 id=&quot;mbHeader&quot; style=&quot;color: black; font-size: 1.2em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 15px; text-align: justify; width: 540px;&quot;&gt;Conclusion&lt;/h2&gt;&lt;div style=&quot;line-height: 23px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 4px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;People are paying more and more attention to Ruby on Rails, and for good reason. With the advent of the Rails framework, the Ruby programming language is making its way towards the top. By focusing on convention over configuration, Ruby on Rails is lowering the barriers of entry to programming and positively impacting employee productivity-ultimately proving that all of the hype is true and well-deserved.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/5138221825027615305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/ruby-on-rails-proves-it-deserves-hype.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/5138221825027615305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/5138221825027615305'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/ruby-on-rails-proves-it-deserves-hype.html' title='Ruby on Rails Proves it Deserves the Hype (JAVA VS RUBY)'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-2307217782223767101</id><published>2011-05-10T00:13:00.000-07:00</published><updated>2011-05-10T00:13:49.874-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><category scheme="http://www.blogger.com/atom/ns#" term="Popular Programming Languages"/><title type='text'>Building Desktop Applications in PHP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;Introduction&lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;So, you’re a hotshot PHP developer. You’ve written a lot of code&lt;br /&gt;
powering some pretty cool websites; maybe you’ve even written some&lt;br /&gt;
public / open source scripts that other developers are using. You’ve&lt;br /&gt;
been through it all with the web, from basic database hacks to battling&lt;br /&gt;
with inconsistent browser rendering, and now you want to have a go at&lt;br /&gt;
something different.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Of course, the standard destination would&lt;br /&gt;
be desktop application development. But how can you get into desktop&lt;br /&gt;
application development without leaving behind all your existing PHP&lt;br /&gt;
skills? In this article, I’ll examine the techniques and systems you&lt;br /&gt;
can use to build desktop applications, from GTK libraries to native&lt;br /&gt;
Windows API calls.&lt;/div&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;Fundamentals&lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Now, desktop application development is an entirely different cup of&lt;br /&gt;
tea. It’s not what you’re used to: you’re used to being input-driven,&lt;br /&gt;
but desktop apps are event driven (&lt;a href=&quot;http://www.codegear.com/products/delphi/php&quot; target=&quot;_blank&quot;&gt;&lt;u&gt;Delphi for PHP&lt;/u&gt;&lt;/a&gt;&lt;br /&gt;
is the best of both worlds). As a result, before you start developing&lt;br /&gt;
desktop applications, you’ll have to step back for a moment and examine&lt;br /&gt;
the differences.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As a web developer, you’re familiar with the&lt;br /&gt;
basics of web scripting. Client makes request to server, server runs&lt;br /&gt;
your PHP code through PHP compiler/interpreter, output is sent to&lt;br /&gt;
client etc. etc. Your entire request has finished very quickly;&lt;br /&gt;
possibly in less than a second. The user didn’t do anything in between;&lt;br /&gt;
the data for the request (cookie data, get / post values, server and&lt;br /&gt;
environment variables etc.) was all set once before your code was run.&lt;br /&gt;
When executing your script, PHP went from top to bottom, ending at the&lt;br /&gt;
last line of code in your PHP file. Once it’s finished, the request is&lt;br /&gt;
gone; the process finished, possibly even the thread killed.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Desktop&lt;br /&gt;
applications, on the other hand, are nothing like this. Now that we&lt;br /&gt;
have full-on JS-heavy web applications, you should have a basic&lt;br /&gt;
understanding of how desktop application development works – think of&lt;br /&gt;
it like a web application written entirely in JavaScript. It’s heavily&lt;br /&gt;
event driven, with functions for different events such as a button&lt;br /&gt;
click or a mouse move, and it keeps going without executing any code.&lt;br /&gt;
In desktop applications, you first draw the window using some basic UI&lt;br /&gt;
code, and then wait – just wait. You have to give up a bit of control&lt;br /&gt;
to the operating system – for example, if you want a menu, you&lt;br /&gt;
(typically) tell the operating system to draw a menu and to bind some&lt;br /&gt;
of your functions to the menu items, then let it take care of the rest.&lt;br /&gt;
It takes quite a while to get used to, but soon enough you’ll get the&lt;br /&gt;
hang of it, and be building fantastic desktop applications in no time.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Of&lt;br /&gt;
course, as your applications are written in PHP, you can also reuse all&lt;br /&gt;
your existing PHP code – well, almost all (HTML output won’t exactly&lt;br /&gt;
help). As a result, once you understand the basics of desktop&lt;br /&gt;
development, you can be building powerful desktop applications in no&lt;br /&gt;
time – you could even integrate with your existing web application!&lt;/div&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;Benefits of desktop development&lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;There are a number of benefits to desktop development, from&lt;br /&gt;
technical advantages to fundamental benefits. Here are some reasons why&lt;br /&gt;
you should be developing desktop applications.&lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;Technical advantages&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;There&lt;br /&gt;
are a number of basic technical advantages to desktop-based&lt;br /&gt;
applications. They can interact with the local filesystem, allowing&lt;br /&gt;
settings to be saved on the user’s computer, files to be retrieved and&lt;br /&gt;
manipulated, databases to be stored and so on. They generally integrate&lt;br /&gt;
with the GUI toolkit of the operating system, providing a UI style that&lt;br /&gt;
the user is familiar with – users are still getting used to the web&lt;br /&gt;
application interfaces of our web 2.0 applications. And finally, they&lt;br /&gt;
use consistent interfaces, unlike the hope-for-the-best approach to&lt;br /&gt;
writing HTML, allowing for complex UI elements.&lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;Fundamental advantages&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;However,&lt;br /&gt;
perhaps most importantly, they are geared to user-driven applications,&lt;br /&gt;
especially where the user has content to share. Web applications can&lt;br /&gt;
easily bring users together, for effective sharing of information.&lt;br /&gt;
Desktop applications, on the other hand, can easily work with the user&lt;br /&gt;
and manage information, especially when there is no need to share that&lt;br /&gt;
information.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Gaming is an excellent example; interface and&lt;br /&gt;
graphics issues aside, games are built around the user, and as a result&lt;br /&gt;
work very well on the desktop. Image editing is another; despite the&lt;br /&gt;
availability of online Photoshop alternatives, everything at the higher&lt;br /&gt;
end of image editing is still squarely on the desktop. Sure, there’s&lt;br /&gt;
Flickr, but Flickr is more geared towards the sharing of photos and&lt;br /&gt;
basic editing.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As a result, if you’re considering building an&lt;br /&gt;
application that fits into one of these categories, and you’ve&lt;br /&gt;
currently got a web application in mind, a desktop application is&lt;br /&gt;
definitely worth considering.&lt;/div&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;Building desktop applications in PHP&lt;/h2&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;To demonstrate basic application development in PHP, we’ll take a&lt;br /&gt;
look at the PHP-GTK extension. PHP-GTK offers GTK bindings for PHP,&lt;br /&gt;
allowing you to build scripts that create windows using the GTK&lt;br /&gt;
graphics toolkit.&lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;The desktop approach&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As you can&lt;br /&gt;
imagine, building a desktop application when coming from a web&lt;br /&gt;
background is a whole new ballgame. Consider that, when you run a PHP&lt;br /&gt;
script on the web, it goes from top to bottom. When you run a desktop&lt;br /&gt;
application, you open it, and wait. And wait. And wait. It doesn’t&lt;br /&gt;
matter how long you wait for – you are waiting, and the application is&lt;br /&gt;
not doing anything. Of course, the moment you click a button or open a&lt;br /&gt;
menu, it springs into action again. At what point in the execution of a&lt;br /&gt;
standard PHP script is absolutely nothing happening? (Besides in &lt;code&gt;sleep()&lt;/code&gt;) .&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Now,&lt;br /&gt;
the only real way to achieve this in PHP is an infinite loop, with a&lt;br /&gt;
check for some sort of change or input on every iteration. Which is&lt;br /&gt;
exactly how the various most of the PHP-desktop systems available&lt;br /&gt;
function. Of course, it would be impractical for you to code this loop&lt;br /&gt;
manually, as there’s a lot of code all over the place. Instead, you&lt;br /&gt;
tell the interface system to draw your interface and bind your&lt;br /&gt;
functions/methods to the interface elements. Drawing your interface&lt;br /&gt;
involves telling it what interface elements to create – such as buttons&lt;br /&gt;
and input boxes – and where to put them. Binding allows you to link&lt;br /&gt;
your functions/methods to certain events for these elements. For&lt;br /&gt;
example, you could create a button, and have one of your functions&lt;br /&gt;
called when the button is clicked.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;That’s where the&lt;br /&gt;
fundamentals end and the various differences in systems come into play.&lt;br /&gt;
So, let’s take a look at some code to create a basic desktop&lt;br /&gt;
application.&lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;PHP-GTK&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;PHP-GTK is one of the standard&lt;br /&gt;
approaches for creating desktop-based PHP applications. As it only&lt;br /&gt;
requires GTK for interface bindings, it’s cross-platform – you can&lt;br /&gt;
write your application on a Mac, test it on a Linux machine and deploy&lt;br /&gt;
it to a Windows box, and with no code adjustments it will look (almost)&lt;br /&gt;
exactly the same on each.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Before continuing, if you want to try out the code samples, you’ll need a copy of PHP-GTK. You can download it from &lt;a href=&quot;http://gtk.php.net/&quot;&gt;gtk.php.net&lt;/a&gt;;&lt;br /&gt;
there are windows binaries, but for everything else you may have to use&lt;br /&gt;
CVS. Installation instructions are available on the download page; you&lt;br /&gt;
might find &lt;a href=&quot;http://forum.codecall.net/tutorials-classes-code/5680-setting-up-php-gtk-ubuntu.html&quot;&gt;these instructions for Ubuntu&lt;/a&gt; useful as well.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Now, let’s take a look at a basic PHP-GTK script from the manual. Here’s the full code:&lt;/div&gt;&lt;pre&gt;&amp;lt;?php// Code snippet from the PHP-GTK manual.if (!class_exists(&#39;gtk&#39;)) die(&quot;Please load the php-gtk2 module in your php.ini&quot;);&lt;/pre&gt;&lt;pre&gt;$window = new GtkWindow();$window-&amp;gt;set_title(&#39;Our PHP-GTK window&#39;);$window-&amp;gt;connect_simple(&#39;destroy&#39;, array(&#39;gtk&#39;, &#39;main_quit&#39;));&lt;/pre&gt;&lt;pre&gt;$label1 = new GtkLabel(&quot;Hello world!&quot;);$window-&amp;gt;add($label1);&lt;/pre&gt;&lt;pre&gt;$window-&amp;gt;show_all();Gtk::main();?&amp;gt;&lt;/pre&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As you can see, it’s perfectly normal PHP code. However, it’s relatively short; it ends with a call to this mysterious &lt;code&gt;Gtk::main()&lt;/code&gt;.&lt;br /&gt;
Remember that infinite loop I mentioned? When you finish creating your&lt;br /&gt;
window and drawing it, your scripts hand over to the GTK library that&lt;br /&gt;
handles that same loop. Still, it’s new territory, so let’s step&lt;br /&gt;
through the code and review it.&lt;/div&gt;&lt;pre&gt;if (!class_exists(&#39;gtk&#39;)) die(&quot;Please load the php-gtk2 module in your php.ini&quot;);&lt;/pre&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Pretty&lt;br /&gt;
standard stuff: we check that the ‘gtk’ class is available. Without it,&lt;br /&gt;
you won’t be able to render your windows with the GTK toolkit. As PHP&lt;br /&gt;
isn’t really designed for desktop applications, there is still the&lt;br /&gt;
potential for deployment quirks such as lack of the GTK module, so we&lt;br /&gt;
carefully check it here.&lt;/div&gt;&lt;pre&gt;$wnd = new GtkWindow();$wnd-&amp;gt;set_title(&#39;Our PHP-GTK window&#39;);&lt;/pre&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The &lt;code&gt;GtkWindow&lt;/code&gt;&lt;br /&gt;
class is, as it’s name suggest, a GTK window. Working with GTK in PHP&lt;br /&gt;
is heavily object oriented; you’ll have objects for your windows, the&lt;br /&gt;
interface elements on those windows, GTK itself and more. The &lt;code&gt;set_title()&lt;/code&gt; method sets the title, similar to using a &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; tag in HTML, with the exception that what really goes in the title bar is no longer at the mercy of the end-user environment.&lt;/div&gt;&lt;pre&gt;$window-&amp;gt;connect_simple(&#39;destroy&#39;, array(&#39;gtk&#39;, &#39;main_quit&#39;));&lt;/pre&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;This&lt;br /&gt;
is where we start binding to the interface. When the user clicks the&lt;br /&gt;
close button on our application, it doesn’t just magically clean up&lt;br /&gt;
after itself and quit. The operating system can’t simply kill our&lt;br /&gt;
application; chances are we want to tie up some loose ends and clear&lt;br /&gt;
out data we’ve stored. As a result, we have to link the ‘destroy’&lt;br /&gt;
signal to the &lt;code&gt;gtk::main_quit()&lt;/code&gt; method. This method essentially ends our application so that we can cleanly exit.&lt;/div&gt;&lt;pre&gt;$label1 = new GtkLabel(&quot;Hello world!&quot;);$window-&amp;gt;add($label1);&lt;/pre&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Now&lt;br /&gt;
we start creating our interface. We’ll start with a simple label. In&lt;br /&gt;
desktop applications, if you want to cleanly position text (and you do,&lt;br /&gt;
as opposed to running it all from the top-left corner of the form) it&lt;br /&gt;
needs to be in some sort of container, and a label is the common term&lt;br /&gt;
for a basic text container in a window.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;You can position your&lt;br /&gt;
label, give it some additional properties and so on, but for now we’ll&lt;br /&gt;
just give it the text &quot;Hello world!&quot;. By calling the &lt;code&gt;add()&lt;/code&gt; method of our &lt;code&gt;GtkWindow object $window&lt;/code&gt;,&lt;br /&gt;
we tell GTK to put our new label on our window. Without this, the label&lt;br /&gt;
can’t really appear anywhere. Interestingly, this approach of not&lt;br /&gt;
scoping an interface element within a particular form makes element&lt;br /&gt;
reuse simple and effective.&lt;/div&gt;&lt;pre&gt;$window-&amp;gt;show_all();Gtk::main();&lt;/pre&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;This is the interesting part. First of all, our window won’t actually appear until we call the &lt;code&gt;show_all()&lt;/code&gt;&lt;br /&gt;
method on our window’s object. This call tells GTK to show the window&lt;br /&gt;
on the screen. However, that infinite loop I mentioned before? Now that&lt;br /&gt;
we’ve finished drawing our window, we’re ready to roll. We call &lt;code&gt;Gtk::main()&lt;/code&gt;, and away we go…&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;em&gt;Your first PHP-GTK application!&lt;/em&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;If you’re trying to run this application, I presume you’re running it from&lt;br /&gt;
the command line with PHP-CLI. To check that everything’s in order,&lt;br /&gt;
click the ‘x’ button in the top-right. Your PHP-GTK application should&lt;br /&gt;
close, and your console window should indicate that the program has&lt;br /&gt;
finished and take you back to the prompt.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;With PHP-GTK, you&lt;br /&gt;
have all the power of the GTK toolkit, allowing you to create complex&lt;br /&gt;
interfaces and high-end applications. Check out the &lt;a href=&quot;http://gtk.php.net/manual/en/tutorials.php&quot;&gt;PHP-GTK manual&lt;/a&gt; for some more complex tutorials. There are also some good tutorials elsewhere online.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/2307217782223767101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/building-desktop-applications-in-php.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2307217782223767101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/2307217782223767101'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/05/building-desktop-applications-in-php.html' title='Building Desktop Applications in PHP'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-3727685330892592568</id><published>2011-04-27T01:34:00.000-07:00</published><updated>2011-04-27T01:34:09.834-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Top Electric Cars Launching in India"/><title type='text'>Top Electric Cars Launching in India</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;                           &lt;/div&gt;&lt;div style=&quot;padding-bottom: 5px; text-align: justify;&quot;&gt; &lt;img alt=&quot;Top Electric Cars Launching in India&quot; src=&quot;http://assets3.seabetter.com/images/guide/extra_large_image17706.jpg?1271052027&quot; title=&quot;Top Electric Cars Launching in India&quot; /&gt;&lt;/div&gt;&lt;div&gt;                  &lt;/div&gt;&lt;div class=&quot;story clearfix&quot; style=&quot;overflow: hidden; text-align: justify;&quot;&gt;                      &lt;div class=&quot;summary&quot;&gt; &lt;/div&gt;Electric car is an alternate fuel  automobile that uses electricity instead of petrol or diesel. These  automobiles have electric motors and controllers used for propulsion.  These vehicles do not use the traditional or the common methods of  propulsion like ICE (internal combustion engine). These cars are energy  efficient and are capable of reducing city pollution because of the zero  tail pipe emission.&lt;br /&gt;
&amp;nbsp;On-board battery packs are the main power supply to the car. The  functioning of the cars greatly depends on the quality of the battery  used in the car. The poor battery may result into long hours of  recharging and poor speed with poor acceleration. These cars are not  practically suitable for long journey but can be a good transportation  vehicle for everyday use and can be recharged overnight.&lt;br /&gt;
&lt;div class=&quot;deatil&quot;&gt;             &lt;div style=&quot;overflow: hidden;&quot;&gt;&lt;b&gt;Hyundai i10 Electric&lt;/b&gt; The new electric version of  i10 is termed as zero-emission urban  commuter consisting a 16kWh battery and a 49kWh electrical motor. The  batteries incorporate Li-Poly batteries that are capable to produce  equaling power as compared to NiMH batteries. The advantage of Li-Poly  batteries over the NiMH batteries is that, Li-poly weighs much lesser  than that of NiMH. Recharging the batteries from 220V outlet will take  up to 5 hours whereas recharging from a 413V outlet will take only 15  minutes to complete 85% of the charge. You can drive up to 160 km with  the top speed of 130 kmph.  &lt;/div&gt;&lt;/div&gt;&lt;img alt=&quot;Image credit: http://www.amitbhawani.com/auto/wp-content/uploads/2010/02/Hyundai-I10-Electric-Review.jpg&quot; src=&quot;http://www.amitbhawani.com/auto/wp-content/uploads/2010/02/Hyundai-I10-Electric-Review.jpg&quot; title=&quot;Image credit: http://www.amitbhawani.com/auto/wp-content/uploads/2010/02/Hyundai-I10-Electric-Review.jpg&quot; width=&quot;390&quot; /&gt; &lt;br /&gt;
&lt;div class=&quot;deatil&quot;&gt;             &lt;div style=&quot;overflow: hidden;&quot;&gt;&lt;b&gt;General Motors - Chevrolet Electric Spark / Chevrolet E-Spark&lt;/b&gt; Chevrolet Beat is the latest launch of General Motors. General displayed  11 concept vehicles at Auto Expo. Out of the three themes, &#39;Chevrolet  Hot Hatch’ was the one which had everyone’s attention and all eyes on  it. The category highlighted three hatchback cars Chevrolet Spark, Beat  and Aveo U-VA.  The Electric Spark will run on an all-electric drive  train while the Volt will save an estimated 1,892 liters of petrol every  year if driven for 64kms every day. &lt;/div&gt;&lt;/div&gt;&lt;img alt=&quot;Image credit: http://images.google.com/url?source=imgres&amp;amp;ct=img&amp;amp;q=http://www.instablogsimages.com/images/2010/01/07/chevrolet-e-spark_Vzsis_5638.jpg&amp;amp;usg=AFQjCNF7rR5HsRo3VAT-XdP-JeJZeMKKGw&quot; src=&quot;http://images.google.com/url?source=imgres&amp;amp;ct=img&amp;amp;q=http://www.instablogsimages.com/images/2010/01/07/chevrolet-e-spark_Vzsis_5638.jpg&amp;amp;usg=AFQjCNF7rR5HsRo3VAT-XdP-JeJZeMKKGw&quot; title=&quot;Image credit: http://images.google.com/url?source=imgres&amp;amp;ct=img&amp;amp;q=http://www.instablogsimages.com/images/2010/01/07/chevrolet-e-spark_Vzsis_5638.jpg&amp;amp;usg=AFQjCNF7rR5HsRo3VAT-XdP-JeJZeMKKGw&quot; width=&quot;390&quot; /&gt; &lt;br /&gt;
&lt;div class=&quot;deatil&quot;&gt;             &lt;div style=&quot;overflow: hidden;&quot;&gt;&lt;b&gt;General Motors - Chevrolet Volt&lt;/b&gt; Chevrolet Volt is an electric car that is capable of creating its own  electricity. Once it is charged completely, it is ready to run on  electric charge for up to a range of 40 miles i.e. 64.374 km. After  that, Volt keeps going, even if you can&#39;t plug it in. Volt uses a  range-extending gas generator that produces enough energy to power it  for hundreds of miles on a single tank of gas. &lt;/div&gt;&lt;/div&gt;&lt;img alt=&quot;Image credit: http://images.google.com/url?source=imgres&amp;amp;ct=img&amp;amp;q=http://energyethos.files.wordpress.com/2008/12/800px-chevrolet-volt-dc.jpg&amp;amp;usg=AFQjCNHyUftrm5w4ojqRAdK8gZEN_FZQAw&quot; src=&quot;http://images.google.com/url?source=imgres&amp;amp;ct=img&amp;amp;q=http://energyethos.files.wordpress.com/2008/12/800px-chevrolet-volt-dc.jpg&amp;amp;usg=AFQjCNHyUftrm5w4ojqRAdK8gZEN_FZQAw&quot; title=&quot;Image credit: http://images.google.com/url?source=imgres&amp;amp;ct=img&amp;amp;q=http://energyethos.files.wordpress.com/2008/12/800px-chevrolet-volt-dc.jpg&amp;amp;usg=AFQjCNHyUftrm5w4ojqRAdK8gZEN_FZQAw&quot; width=&quot;390&quot; /&gt; &lt;br /&gt;
&lt;div class=&quot;deatil&quot;&gt;             &lt;div style=&quot;overflow: hidden;&quot;&gt;&lt;b&gt;Toyota Prius&lt;/b&gt; The second hybrid car launched at Auto Expo that will be available in  Indian market is Toyota Prius. The Prius was launched in 2009 in the  international market. The design is more aerodynamic if compared to the  previous version of it. The coefficient of drag reduced to 0.25 Cd, The  1.8-liter petrol engine generates about 100PS and with the added power  of the electric motor, combined power is 136PS. The Prius engine, with  an electric water pump, is the first production engine that requires no  accessory belts improving fuel economy. &lt;/div&gt;&lt;/div&gt;&lt;img alt=&quot;Image credit: http://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Toyota_Prius_III_20090710_front.JPG/800px-Toyota_Prius_III_20090710_front.JPG&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Toyota_Prius_III_20090710_front.JPG/800px-Toyota_Prius_III_20090710_front.JPG&quot; title=&quot;Image credit: http://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Toyota_Prius_III_20090710_front.JPG/800px-Toyota_Prius_III_20090710_front.JPG&quot; width=&quot;390&quot; /&gt; &lt;br /&gt;
&lt;div class=&quot;deatil&quot;&gt;             &lt;div style=&quot;overflow: hidden;&quot;&gt;&lt;b&gt;Reva NXR and NXG&lt;/b&gt; The REVA Electric Car company is the leader in the electric car producer  and is ready to launch two new and improved electric car version namely  REVA NXR and REVA NXG. Unlike the previous electric car REVA, which was  two seater , small and compact car, the NXR is a three door, four  seater and much spacious model. It can accelerate to a maximum speed of  105 km/h with a range of 160 kilometers on a single charge of its  lithium-ion battery pack. The new models are coming up with improved  charging that might result in 15-minute faster recharge as compared to  the older version. However, it might take up to 8 hours to completely  recharge the battery packs from a regular household outlet.  &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/3727685330892592568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/top-electric-cars-launching-in-india.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3727685330892592568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3727685330892592568'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/top-electric-cars-launching-in-india.html' title='Top Electric Cars Launching in India'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-423658928722435375</id><published>2011-04-25T22:15:00.000-07:00</published><updated>2011-04-25T22:23:45.799-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><category scheme="http://www.blogger.com/atom/ns#" term="Popular Programming Languages"/><title type='text'>Programming Language Market Share (Java vs php vs ruby) (POPULARITY OF PROGRAMMING LAGUAGES)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0a0a0a; font-family: Verdana; font-size: 12px; line-height: 20px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;source:&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0e774a; font-family: arial, sans-serif; font-size: x-small; line-height: 15px;&quot;&gt;www.zacker.org&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Popular programming language ACCORDING TO MARKET SHARE......(%):&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;1. JAVA&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;2. PHP&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;3.PERL&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;4. C#&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;5. PYTHON&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;6. RUBY&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;img height=&quot;306&quot; src=&quot;http://www.zacker.org/files/market_share_graph.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-top-style: none; border-width: initial; border-width: initial;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 0.6em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;img height=&quot;308&quot; src=&quot;http://www.zacker.org/files/market_share_delta.jpg&quot; style=&quot;border-color: initial; border-color: initial; border-color: initial; border-style: initial; border-top-style: none; border-width: initial; border-width: initial;&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/423658928722435375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/programming-language-market-share-java.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/423658928722435375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/423658928722435375'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/programming-language-market-share-java.html' title='Programming Language Market Share (Java vs php vs ruby) (POPULARITY OF PROGRAMMING LAGUAGES)'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-3276629813988325725</id><published>2011-04-25T22:05:00.000-07:00</published><updated>2011-04-25T22:06:56.953-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java vs. Ruby on Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby from java"/><title type='text'>PHP vs Java vs Ruby</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; font-size: 14px; line-height: 20px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;This week, a lot of focus is on the other open frameworks that have risen during the same era, and their comparative value in a post open source Java world. One such take is from well-known Sun insider, Tim Bray, who spoke at last week&#39;s International&amp;nbsp;&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;PHP&lt;/span&gt;&amp;nbsp;Conference in Germany.&lt;/div&gt;&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=2355999168837142713&amp;amp;postID=3276629813988325725&quot; name=&quot;more&quot; style=&quot;color: #003366; font-family: verdana, geneva, arial, helvetica, sans-serif; text-decoration: underline;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;Bray, who is Director of Web Technologies at Sun Microsystems, co-creator of the&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;XML&lt;/span&gt;&amp;nbsp;1.0 and&amp;nbsp;&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;XML&lt;/span&gt;&amp;nbsp;Namespace standards, co-founder of Open-Text, and contributor to the Atom Publishing standard (whew!) spoke in a presentation entitled “How to combine&amp;nbsp;&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;PHP&amp;nbsp;&lt;/span&gt;technology with Java based on Enterprise Systems” .&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;In the slide below, Bray outlines the basic advantages of each of these three platforms (or rather the two languages and one framework if you are scoring at home). In perhaps in a nod to his new employer, Sun, Bray totally omits any mention of .NET or smaller products like Adobe&#39;s Flex/ColdFusion platform.&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;His idea, if you are able to take it on the surface only, is to rate your priorities of: 1) Scalability, 2) Dev Speed, 3) Dev Tools, and 4) Maintainability. In this highly generalized approach, you could theoretically pick your web application building language/framework based on only these priorities.&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;&lt;img alt=&quot; &quot; height=&quot;208&quot; src=&quot;http://www.cmswire.com/images/bray-intrinsics.png&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-left: 0px;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;Tim weighs-in heavy on the maintainability side, and we&#39;d tend to agree with him. To quote:&lt;/div&gt;&lt;blockquote style=&quot;background-image: url(http://www.cmswire.com/images/ico-doublequote-L.png); background-position: 0pt 3px; background-repeat: no-repeat; color: #505050; font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;“Good apps, once built, tend to be in production for an astonishingly long time. Which means that they have to be maintained for an astonishingly long time. Which means that maintainability is important. There are a lot of things that go into maintainability, but I suggest that the biggies are object-orientation,&amp;nbsp;&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;MVC&lt;/span&gt;architecture, code readability, and code size.”&lt;/blockquote&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;On the maintainability side Tim places Ruby on Rails out front. Quoting him again, Tim describes why RoR is in the lead here.&lt;/div&gt;&lt;blockquote style=&quot;background-image: url(http://www.cmswire.com/images/ico-doublequote-L.png); background-position: 0pt 3px; background-repeat: no-repeat; color: #505050; font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px; text-align: justify;&quot;&gt;“Mostly because there&#39;s less code. The fact that Ruby&amp;nbsp;&lt;strong style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;forces&lt;/strong&gt;&amp;nbsp;&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;MVC&amp;nbsp;&lt;/span&gt;on you helps too, also the fact that the templating and [Object Relational Mapping (ORM)] and testing and application code are all so tightly integrated helps. Bear in mind that we still don&#39;t know how well Rails is going to work outside of the&amp;nbsp;&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;CRUD&lt;/span&gt;-centered greenfield app space where it shines.”&lt;/blockquote&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;Tim&#39;s metrics don&#39;t really exist on a quantitative level nor are they based on any published statistics — just a very informed intellect and a privileged position. Obviously, additional parameters such as total cost of ownership and native security (PHP, we are looking at you) should also play a big role the decision making process.&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;As you can probably guess, in response to this presentation, the&amp;nbsp;proponents of Java,&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;PHP&lt;/span&gt;&amp;nbsp;and&amp;nbsp;Ruby&amp;nbsp;are lighting the Internet aflame in defense of their platform of choice and at the same time nay-saying their fellow players. While very entertaining and sometimes educational to follow, not much is going to be gained from this bickering.&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;Bray concludes the presentation with the Rodney King-esque statement “One way or another we all have to integrate.”&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;The reality is that there are a great number of ways to hone-in on the language or framework choice for a web application. Many factors have to be considered and weighed against each other. The beauty of what we have today is that there&amp;nbsp;&lt;span class=&quot;caps&quot; style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif;&quot;&gt;ARE&amp;nbsp;&lt;/span&gt;a great many choices out there, much more-so than even a few years ago.&lt;/div&gt;&lt;div style=&quot;font-family: verdana, geneva, arial, helvetica, sans-serif; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 11px; text-align: justify;&quot;&gt;The fact that open source options are being stacked up against the likes of Java and .NET, and have a similar levels of support is a blessing. Today, with the open-sourcing of Java, we have a new entry onto the field. Rather than exclude one or another, this arrival is going to make the open source web world, warmer, more sophisticated, and for better or worse, a little sunnier.&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/3276629813988325725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/php-vs-java-vs-ruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3276629813988325725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3276629813988325725'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/php-vs-java-vs-ruby.html' title='PHP vs Java vs Ruby'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-8441111812419445998</id><published>2011-04-25T22:02:00.000-07:00</published><updated>2011-04-25T22:02:57.426-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java vs. Ruby on Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby from java"/><title type='text'>Ruby for the Java world</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;first&quot; style=&quot;border-bottom-color: rgb(224, 224, 224); border-bottom-style: solid; border-bottom-width: 3px; font-size: 12px; line-height: 20px; margin-bottom: 15px; margin-top: 10px; padding-bottom: 8px; text-align: justify;&quot;&gt;Ever since the invention of the computer, software development has been trending towards higher-level languages. From assembly language, to C, to C++, to Java, each step up has met with the same criticisms from the old guard: it&#39;s slow; it&#39;s buggy; developers don&#39;t want to lose control. But gradually, as hardware has sped up, and new research and development has improved compilers, interpreters, and virtual machines, developers have inevitably migrated to the higher level, enhancing their productivity by freeing themselves from lower-level concerns&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Java now holds the lead in many areas of software development, but dynamic languages threaten to bypass it in this inexorable climb. Languages such as Python, Perl, Rexx, Groovy, TCL, and Ruby have been doing yeoman service in specialized domains such as file processing, test automation, software builds, glue code, and Web GUIs for years—hence, their historic name &quot;scripting languages.&quot; But in the last few years, they have been making headway in the heavy-duty jobs once reserved mostly for C++, Java, and other compiled languages.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;In the last year, the Ruby on Rails (RoR) Web framework has given Ruby a big boost. RoR builds definitions for all tiers of a typical Web application—GUI, business logic, and persistence—from simple Ruby code, thereby minimizing redundancy, boilerplate code, source-code generation, and configuration. RoR&#39;s ease of use showcases the Ruby language; and Ruby, a full-fledged software language, has much more to offer than RoR.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;As a long-time Java developer, I am likely to stick with Java for some time to come. But I keep my eye on other languages that can play a role in my Java-based systems, and Ruby has recently emerged as a particularly good candidate. With the help of the JRuby interpreter, Ruby works well with Java, configuring, integrating, and reusing Java software (more on that below). And simply learning Ruby has improved my Java code. Ruby lets me easily accomplish techniques such as functional programming and metaprogramming, which in Java I can only do with difficulty. Learning these techniques in Ruby has helped me better appreciate when and how to use them in Java development.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;With this article, I hope to share with you some of my excitement about what Ruby can do for my Java-based systems. I compare the strengths and weaknesses of both Java and Ruby, and present the pros and cons of the JRuby interpreter. I also show where to best draw the dividing line between Java and Ruby to benefit from each. I illustrate these points with code samples and present a messaging example that shows how to integrate Java systems with Ruby, putting to good use the flexibility, expressiveness, and power of a dynamic metaprogrammable language.&lt;/div&gt;&lt;h3 style=&quot;font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;&quot;&gt;Ruby vs. Java&lt;/h3&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;This article explains Ruby from the Java developer&#39;s viewpoint, focusing on a comparison between the two languages. Like Java, Ruby is a full-featured object-oriented language. But there are many significant differences. Ruby is dynamically typed and runs in a source-code interpreter, and it conveniently supports metaprogramming as well as the procedural and functional paradigms. I won&#39;t go into details of Ruby syntax, since that subject has been covered extensively elsewhere.&lt;/div&gt;&lt;h4 style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; line-height: normal; text-align: justify;&quot;&gt;Dynamic typing&lt;/h4&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Java has static typing. You declare the type of each variable, and then, during compilation, you get an error message if you use a variable of the wrong type. Ruby, on the other hand, has dynamic typing: You don&#39;t declare types for variables or functions, and no type-check occurs until runtime, when you get an error if you call a method that doesn&#39;t exist. Even then, Ruby doesn&#39;t care about an object&#39;s class, just whether it has a method of the name used in the method call. For this reason, the dynamic approach has earned the name&amp;nbsp;&lt;em&gt;duck typing&lt;/em&gt;: &quot;If it walks like a duck and quacks like a duck, it&#39;s a duck.&quot;&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;&lt;strong style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;Listing 1. Duck typing&lt;/strong&gt;&lt;/div&gt;&lt;div id=&quot;codewrap&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #f1f2f3; background-image: initial; background-position: initial initial; background-repeat: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; height: auto; margin-bottom: 25px; margin-left: 0px; margin-right: 0px; margin-top: -3px; overflow-x: auto; overflow-y: auto; padding-bottom: 8px; padding-left: 8px; padding-right: 8px; padding-top: 8px; width: auto;&quot;&gt;&lt;div id=&quot;codewrap14&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;class ADuck&lt;/code&gt;&lt;/div&gt;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    def quack()&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;        puts &quot;quack A&quot;;&lt;/div&gt;end
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;en
d
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;class BDuck&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    def quack()&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;        puts &quot;quack B&quot;;&lt;/div&gt;end
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;en
d
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;# quack_it doesn&#39;t care about the type of the argument duck, as long&lt;/div&gt;# as it has a method called quack. Classes A and B have no
&lt;div style=&quot;text-align: justify;&quot;&gt;ck
end&lt;/div&gt;# inheritance relationship.
def quack_it(duck)
    duck.qu
&lt;div style=&quot;text-align: justify;&quot;&gt;a&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;a = ADuck.new&lt;/div&gt;b = BDuck.new
&lt;div style=&quot;text-align: justify;&quot;&gt;ack_it(b)&lt;/div&gt;quack_it(a)
q
&lt;div style=&quot;text-align: justify;&quot;&gt;u&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Java also lets you achieve dynamic typing, using reflection, but this clumsy and verbose workaround produces confusing exceptions like&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;NoSuchMethodError&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;InvocationTargetException&lt;/code&gt;; in practice, these exceptions tend to pop up in reflective Java code far more often than the equivalents in Ruby.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Even in nonreflective Java code, you often lose static type information. For example,&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;execute()&lt;/code&gt;&amp;nbsp;methods in the Command design pattern&amp;nbsp;must return&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Object&lt;/code&gt;&amp;nbsp;rather than a specific type in pre-Java 5 code, resulting in&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;ClassCastException&lt;/code&gt;s. Likewise, when signatures change between compile-time and runtime, runtime&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Error&lt;/code&gt;s ensue. In practice, whether in Java or Ruby, such errors rarely cause severe field bugs. A strong unit test suite—which you need anyway!—generally catches them in time.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Ruby&#39;s dynamic typing means you don&#39;t repeat yourself: How often in Java have you had to suffer through verbose code along the lines of&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;XMLPersistence xmlPersistence = (XMLPersistence)persistenceManager.getPersistence();&lt;/code&gt;? Ruby eliminates the need for the type declaration and casting (as well as parentheses and semicolon): a typical Ruby equivalent would be&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;xmlPersistence = persistence_manager.persistence&lt;/code&gt;.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Ruby&#39;s&amp;nbsp;&lt;em&gt;dynamic&lt;/em&gt;&amp;nbsp;typing does not mean&amp;nbsp;&lt;em&gt;weak&lt;/em&gt;&amp;nbsp;typing—Ruby always requires you to pass objects of the correct type. Java, in fact, enforces types more weakly than Ruby. For example, Java evaluates&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&quot;4&quot; + 2&lt;/code&gt;&amp;nbsp;as&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&quot;42&quot;&lt;/code&gt;, coercing the integer to a string, while Ruby throws a&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;TypeError&lt;/code&gt;, telling you it &quot;can&#39;t convert Fixnum into String.&quot; Likewise, Java, sacrificing correctness for speed, can silently overflow an integer operation, producing weirdness such as&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Integer.MAX_VALUE + 1&lt;/code&gt;, which equals&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Integer.MIN_VALUE&lt;/code&gt;, while Ruby simply expands integers as needed.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Despite Ruby&#39;s advantages, Java&#39;s static typing does give it one ability that leaves it as the preferred choice for large-scale projects: Java tools understand code at development-time. IDEs can trace dependencies between classes, find usages of methods and classes, auto-complete identifiers, and help you refactor code. Though parallel Ruby tools exist with limited functionality, they lack type information and so cannot perform all these tasks.&lt;/div&gt;&lt;h4 style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; line-height: normal; text-align: justify;&quot;&gt;Interpreted language&lt;/h4&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Ruby runs in an interpreter, so you can test code without a distracting wait from the compiler; you can even run Ruby interactively, executing each line as you type it. Besides the fast feedback, interpreted languages have a rarely noted advantage in dealing with field bugs. With compiled languages, to analyze the code causing a field bug, the field engineer must determine the deployed application&#39;s exact build version and then look up the code in the source-code configuration management system. In real life, often this is simply impossible. With interpreted languages, on the other hand, the source code is immediately available for analysis and even, when necessary, for emergency on-the-spot fixes.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Interpreted languages have an unfortunate reputation for slowness. Compare the history of Java, a &quot;semi-compiled&quot; language: In the early years, the JVM always interpreted the bytecode at runtime, which contributed to Java&#39;s reputation for slowness. Yet Java developers quickly learned that most applications spend most of their time waiting on the user or network I/O and the remaining bottlenecks are best optimized in higher-level algorithms, rather than in raw low-level tweaks. Over the years, Java rapidly gained speed; for example, just-in-time compilers with optimization based on dynamic analysis sometimes allow Java to outdo C++, which is limited to optimization based on static compile-time analysis.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Already, for most applications, Ruby is no slower than other languages. In the near future, Ruby will get a further boost as Ruby&#39;s native interpreter moves to a bytecode-based system and the JVM JRuby interpreter gains the ability to compile Ruby to Java bytecode. Eventually, any performance lag will gradually become negligible for most functionality.&lt;/div&gt;&lt;h4 style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; line-height: normal; text-align: justify;&quot;&gt;Functional programming&lt;/h4&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Ruby supports multiple programming paradigms with equal ease. In addition to its pure object-oriented style (even integers and the like are objects), it also supports a procedural style suited to one-off scripts: you can write code outside any class or function, as well as functions outside any class. (Ruby silently adds these functions to the&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Object&lt;/code&gt;&amp;nbsp;class, maintaining the object-orientation behind the scenes.)&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Most interestingly, for Java programmers looking for new and useful perspectives, Ruby supports the functional paradigm. You can use most functional programming constructs in Java, with some support from libraries such as Jakarta Commons Collections, but the syntax is clumsier. (See &quot;Functional Programming in the Java Language&quot; by Abhijit Belapurkar and Jakarta Commons Collections in&amp;nbsp;&lt;a href=&quot;http://www.javaworld.com/javaworld/jw-07-2006/jw-0717-ruby.html#resources&quot; style=&quot;color: #035a87; text-decoration: none;&quot;&gt;Resources&lt;/a&gt;.) Ruby, though not a purely functional language, treats functions and anonymous blocks of code as full citizens of the language, which can be passed around and manipulated like any ordinary objects.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;In Java, you often iterate over a collection&#39;s&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Iterator&lt;/code&gt;, running the logic on each element. But the iteration is just an implementation detail: in general, you are just trying to apply the same logic to each element of a collection. In Ruby, you pass a code block to a method that does just that, iterating behind the scenes. For example,&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;[1, 2, 3, 4, 5].each{|n| print n*n, &quot; &quot;}&lt;/code&gt;&amp;nbsp;prints the string&amp;nbsp;&lt;em&gt;1 4 9 16 25&lt;/em&gt;; an iterator takes each element of the list and passes it into the code block as the variable&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;n&lt;/code&gt;.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Functional programming is useful in wrapping code blocks with instructions to be executed before and after the block. For example, in Java, you can use the Command design pattern to ensure the opening and closing of a file, database transaction, or other resource. This burdens the code with the useless overhead of an anonymous inner class and callback method; in addition, there is the distracting rule that variables passed into the anonymous&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Command&lt;/code&gt;&amp;nbsp;class must be declared&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;final&lt;/code&gt;. And to ensure that logic always executes at the end of a code block, the whole thing must be wrapped with&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;try{...}finally{...}&lt;/code&gt;.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;In Ruby, you can wrap any function or code block, with no need for anonymous classes or method definitions. In Listing 2, the file opens, then closes after the&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;write()&lt;/code&gt;&amp;nbsp;method. No code is needed beyond the&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;transaction()&lt;/code&gt;&amp;nbsp;method and the code block.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;&lt;strong style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;Listing 2. Wrap a code block&lt;/strong&gt;&lt;/div&gt;&lt;div id=&quot;codewrap&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #f1f2f3; background-image: initial; background-position: initial initial; background-repeat: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; height: auto; margin-bottom: 25px; margin-left: 0px; margin-right: 0px; margin-top: -3px; overflow-x: auto; overflow-y: auto; padding-bottom: 8px; padding-left: 8px; padding-right: 8px; padding-top: 8px; width: auto;&quot;&gt;&lt;div id=&quot;codewrap68&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;File.open(&quot;out.txt&quot;, &quot;a&quot;) {|f|&lt;/code&gt;&lt;/div&gt;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;    f.write(&quot;Hello&quot;)
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;}&lt;/code&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;h4 style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; line-height: normal; text-align: justify;&quot;&gt;Metaprogrammable language&lt;/h4&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;You generally define your Java classes as source code, but you can also manipulate class definitions at runtime. This requires advanced techniques such as bytecode enhancement during class-loading. Hibernate, for example, inserts data-access logic directly into the business objects&#39; bytecode, saving the application programmer from coding the extra data-access layer. But class manipulation, called&amp;nbsp;&lt;em&gt;metaprogramming&lt;/em&gt;, is practical only for infrastructure programmers: application programmers cannot usefully introduce these tricky and fragile techniques.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Even at development time, Java limits the developers&#39; ability to change classes. To add an&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;isBlank()&lt;/code&gt;&amp;nbsp;method that tells you if a&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;String&lt;/code&gt;&amp;nbsp;is all white space, you&#39;d have to add a&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;StringUtils&lt;/code&gt;&amp;nbsp;class with the static method (as Apache Commons does); logically, the new method belongs in&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;String&lt;/code&gt;.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;In Ruby, on the other hand, you can simply extend the built-in&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;String&lt;/code&gt;&amp;nbsp;class with a&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;blank?&lt;/code&gt;&amp;nbsp;method. In fact, because in Ruby everything is an object, you could even augment the&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Fixnum&lt;/code&gt;&amp;nbsp;class, the equivalent of Java&#39;s primitive&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;int&lt;/code&gt;, as shown in Listing 3.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;&lt;strong style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;Listing 3. Add method to built-in classes String and Fixnum&lt;/strong&gt;&lt;/div&gt;&lt;div id=&quot;codewrap&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #f1f2f3; background-image: initial; background-position: initial initial; background-repeat: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; height: auto; margin-bottom: 25px; margin-left: 0px; margin-right: 0px; margin-top: -3px; overflow-x: auto; overflow-y: auto; padding-bottom: 8px; padding-left: 8px; padding-right: 8px; padding-top: 8px; width: auto;&quot;&gt;&lt;div id=&quot;codewrap87&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;class String&lt;/code&gt;&lt;/div&gt;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    # Returns true if string is all white space.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    # The question mark indicates a Boolean return value.&lt;/div&gt;def blank?()
        !(self = /\S/)
    end
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;en
d
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;class Fixnum&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;# Returns 0 or 1 which in Ruby are treated as false and true respectively.&lt;/div&gt;def odd?()
    return self % 2
    end
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;en
d
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;puts &quot; &quot;.blank? # true&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;# The next line evaluates if-then similarly to Java&#39;s ternary operator ?:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;puts (if 23.odd? then &quot;23 odd&quot; else &quot;23 even&quot; end)&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;h3 style=&quot;font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;&quot;&gt;JRuby: Ruby in a Java world&lt;/h3&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;As a Java programmer, you won&#39;t want to use Ruby in production until you can get it to interact with existing Java applications and libraries, which hold within them a tremendous variety of essential functionality. JRuby, an open source Ruby interpreter for the JVM, simplifies Ruby-Java integration. You can call Java libraries from Ruby, script Java applications with an embedded interpreter, or even use Ruby libraries from Java. Exactly the same Ruby code runs in JRuby and the standard Ruby interpreter, except where Ruby code calls into native (C-coded) or Java libraries.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;The JVM is often contrasted with .Net&#39;s multilanguage Common Language Runtime as supporting only a single language. But in fact, the JVM executes not only Java, but also Python, JavaScript, Groovy, Scheme, and many other languages, which means that where necessary, Ruby code can interact with these languages as well&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;As of mid-July 2006, JRuby remains in prerelease mode (version 0.9). But it&#39;s catching up rapidly: a team of volunteers has released five versions since January 2005. JRuby&#39;s maturity is continually evaluated with a test suite that calibrates it against the standard interpreter, and it now passes more than 90 percent of the tests plus provides basic support for Ruby on Rails.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;To try JRuby, be sure that Java SE 5 is installed and that JAVA_HOME is set. (Java Runtime Environment 1.4 was supported in JRuby 0.8.3 and below; it will be supported from the next patch release after 0.9.) Download the compressed file from the project&#39;s&amp;nbsp;page&amp;nbsp;and uncompress it. Set the JRUBY_HOME environment variable to the JRuby base directory. You can experiment interactively with jirb in the bin directory. For most purposes, you&#39;ll use the&amp;nbsp;&lt;em&gt;jruby&lt;/em&gt;&amp;nbsp;interpreter—create a file and pass its name as a parameter to the&amp;nbsp;&lt;em&gt;jruby&lt;/em&gt;&amp;nbsp;batch/shell script in directory bin.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;In addition to running ordinary Ruby code, you can also use JRuby to construct Java objects, call Java methods, and inherit from Java classes. A Ruby class can even implement Java interfaces—necessary for statically calling Ruby methods from Java.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;To initialize the libraries used for accessing Java from Ruby, start with&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;require &quot;java&quot;&lt;/code&gt;. Then specify the Java classes to use with the&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;include_class&lt;/code&gt;&amp;nbsp;method, for example,&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;include_class &quot;javax.jms.Session&quot;&lt;/code&gt;. You can include an entire Java package into a Ruby module with&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;include_package&lt;/code&gt;. Like Java&#39;s wildcard package-import statement, it&#39;s advisable to avoid the namespace pollution of&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;include_package&lt;/code&gt;; in JRuby, there is the additional penalty of a performance hit as the interpreter searches all packages for the desired class. Stick to&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;include_class&lt;/code&gt;&amp;nbsp;where possible.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;The names of many Java standard classes overlap with the names of Ruby classes. To resolve collisions, pass a code block into the&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;include_class&lt;/code&gt;&amp;nbsp;function, returning a new name for the Java class, and JRuby will use this as an alias (see Listing 4).&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;&lt;strong style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;Listing 4. Include a Java class with clashing name&lt;/strong&gt;&lt;/div&gt;&lt;div id=&quot;codewrap&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #f1f2f3; background-image: initial; background-position: initial initial; background-repeat: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; height: auto; margin-bottom: 25px; margin-left: 0px; margin-right: 0px; margin-top: -3px; overflow-x: auto; overflow-y: auto; padding-bottom: 8px; padding-left: 8px; padding-right: 8px; padding-top: 8px; width: auto;&quot;&gt;&lt;div id=&quot;codewrap116&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;require &quot;java&quot;&lt;/code&gt;&lt;/div&gt;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;# The next line exposes Java&#39;s String as JString&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;include_class(&quot;java.lang.String&quot;) { |pkg, name| &quot;J&quot; + name }&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;s = JString.new(&quot;f&quot;)&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Alternatively, you can create a Ruby module that includes the Java class definitions, but in a separate namespace. For example:&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;&lt;strong style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;Listing 5. Java module importing multiple Java classes&lt;/strong&gt;&lt;/div&gt;&lt;div id=&quot;codewrap&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #f1f2f3; background-image: initial; background-position: initial initial; background-repeat: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; height: auto; margin-bottom: 25px; margin-left: 0px; margin-right: 0px; margin-top: -3px; overflow-x: auto; overflow-y: auto; padding-bottom: 8px; padding-left: 8px; padding-right: 8px; padding-top: 8px; width: auto;&quot;&gt;&lt;div id=&quot;codewrap123&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;require &quot;java&quot;&lt;/code&gt;&lt;/div&gt;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;module JavaLang&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;    include_package &quot;java.lang&quot;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;end&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;s = JavaLang::String.new(&quot;a&quot;)&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;h3 style=&quot;font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;&quot;&gt;What&#39;s JRuby good for?&lt;/h3&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Dynamic languages like Ruby are most commonly used for specialized areas such as gluing other systems together; JRuby takes on this role in the Java world. For example, JRuby can pull data from one system, transform it and insert it into another. When the requirements change, modifying a JRuby script is as easy as changing a configuration file, thereby avoiding the complex compile-and-deploy cycle of Java integration code.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;In addition to calling Java from Ruby, you can call Ruby from Java, making your application scriptable. With JRuby&#39;s minimal syntactic overhead, you can create an easy-to-use domain-specific language for users to work with&amp;nbsp;For example, a gaming engine&#39;s scripting system can present Ruby classes describing characters, vehicles, and other game entities.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Moreover, with Ruby&#39;s dynamism, users can change definitions of scriptable classes. The Ruby objects allow direct method access to state and behavior. With Java, on the other hand, you typically pass around a&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Map&lt;/code&gt;&amp;nbsp;with user-configurable keys, lacking the full functionality of objects.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;A Ruby script is like a souped-up configuration file. Configuration for Java applications typically comes in an XML or properties file, but these are limited only to parameters decided on at development time. With a Ruby script fed to your scripting system either from a text file or from an embedded editor, the user can freely customize behavior wherever you choose to place a scripting hook. In this way, Ruby combines configuration with behavior, providing the functionality of Java plug-in APIs, but without a Java IDE or a compiler, and sparing the additional steps of building and deploying jar files.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;For example, a user-provided script can hook into an application&#39;s management events to filter for certain suspicious conditions, then send a notification to a system administrator and log into a special security-issues database, or a start-up script can purge old files and reinitialize custom datastores. Likewise, many rich clients allow users to change the position of menus and toolbars—with a JRuby hook, a user&#39;s new menu items trigger any behavior the user wants.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;For convenience in scripting Java applications, the Bean Scripting Framework (BSF) provides a standard interface between the JVM and multiple dynamic languages, including Ruby, Python, BeanShell, Groovy, and JavaScript; Java Specification Request (JSR) 223, the successor of BSF, will be a standard part of Java 6. The Java code can send variables into the JRuby namespace; JRuby can manipulate these Java objects directly or return a value back to Java. With the BSF and JSR 223, the syntax for interoperation between Java and any scripting language is the same. Listing 6 shows a basic example of BSF use with Ruby, and the full code is in the online samples under the directory bsf_example. Note that BSF does not include JRuby support out of the package; but simple instructions for adding it are available in the JRuby documentation.&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;&lt;strong style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;Listing 6. Embed a Ruby interpreter&lt;/strong&gt;&lt;/div&gt;&lt;div id=&quot;codewrap&quot; style=&quot;-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #f1f2f3; background-image: initial; background-position: initial initial; background-repeat: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; height: auto; margin-bottom: 25px; margin-left: 0px; margin-right: 0px; margin-top: -3px; overflow-x: auto; overflow-y: auto; padding-bottom: 8px; padding-left: 8px; padding-right: 8px; padding-top: 8px; width: auto;&quot;&gt;&lt;div id=&quot;codewrap140&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;...&lt;/code&gt;&lt;/div&gt;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;// JRuby must be registered in BSF.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;// jruby.jar and bsf.jar must be on classpath.&lt;/div&gt;BSFManager.registerScriptingEngine(&quot;ruby&quot;,
&lt;div style=&quot;text-align: justify;&quot;&gt;,  new String[]{&quot;rb&quot;});
BSFManager manager = new BSFManager();
// &lt;/div&gt;&quot;org.jruby.javasupport.bsf.JRubyEngine
&quot;Make the variable myUrl available from Ruby.
&lt;div style=&quot;text-align: justify;&quot;&gt;ww/jruby.org&quot;), URL.class);
// Note that the Method getDefaultPort is ava&lt;/div&gt;manager.declareBean(&quot;myUrl&quot;, new URL(&quot;http://
wilable from Ruby
// as getDefaultPort and also as defaultPort.
&lt;div style=&quot;text-align: justify;&quot;&gt;
// and a Java method call.
String result = (String) manager.eva&lt;/div&gt;// The following line illustrates the combination of Ruby synta
xl(
    &quot;ruby&quot;, &quot;(java)&quot;, 1, 1, &quot;if $myUrl.defaultPort&amp;lt; 1024 then &quot; +
    &quot;&#39;System port&#39; else &#39;User port&#39; end&quot;);
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;..
.&lt;/code&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;It is also possible to instantiate a JRuby interpreter directly from Java, but as this ties your Java code to Ruby-specific Java wrapper classes, it&#39;s best to stick with BSF/JSR 223. (An upcoming release of JRuby will also allow direct embedding of the interpreter with cleaner encapsulation of Ruby objects, without the need for BSF or JSR 223.)&lt;/div&gt;&lt;h3 style=&quot;font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;&quot;&gt;Limitations&lt;/h3&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;It&#39;s important to remember that JRuby is still in prerelease mode and still has some limitations, which will be fixed before the 1.0 release.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;In particular, a Ruby class can&#39;t extend abstract Java classes. Unfortunately, to get around this limitation, you can&#39;t simply create a concrete Java subclass, implementing abstract methods with dummy methods, which the Ruby class then extends. This is because of a second limitation in Ruby/Java inheritance in current prerelease versions of JRuby: Java code cannot polymorphically call a Ruby-coded method that overrides a (concrete) Java method.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;The limitations make the use of Swing especially difficult. For example, it&#39;s impossible to extend&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;AbstractTableModel&lt;/code&gt;&amp;nbsp;to take advantage of the functionality that it adds to the&amp;nbsp;&lt;code style=&quot;font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;TableModel&lt;/code&gt;&amp;nbsp;interface. You can work around this by converting inheritance to delegation: Extend the abstract class with a concrete Java &quot;shim&quot; class that delegates to an object of interface type, where the interface includes all the abstract Java methods. A Ruby class implements the delegate interface. Though the wordiness of this approach obviates the usual advantages of JRuby, it does offer a workaround for this limitation and provides flexibility where it is needed: in the subclass functionality (see table_example in attached code listings).&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Ruby comes with standard libraries that provide a wide range of functionality. Those that do not use native code are included in the JRuby release. The JRuby team is gradually porting most libraries, although some that are a thin layer over native code, like the GUI library Tk, will probably not be ported. Java&#39;s standard libraries, which are included, provide all necessary functionality.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;JRuby now provides basic support for Ruby on Rails in the WEBrick Web server; the next major milestone is full support in any servlet container. RoR support will let programmers combine the ease of the Web framework with the vast array of existing Java libraries, while also validating JRuby as an alternative Ruby interpreter.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Java SE 5 is required for JRuby 0.9 because of a bug, but JRE 1.4 will be supported in the next release.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;The JRuby team has so far prioritized correctness over performance; optimization is a top priority for the 0.9.x releases.&lt;/div&gt;&lt;h3 style=&quot;font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;&quot;&gt;Example&lt;/h3&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;The example jms_example.rb&amp;nbsp;illustrates the use of JRuby at greater length. It shows how to transform messages from one class structure to another, simulating software that integrates two differently defined distributed game engines. The code uses advanced functional and metaprogramming techniques to transform XML messages of any type as Ruby objects. Comments in the code walk you through the logic.&lt;/div&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Achieving this level of configurability in Java is nearly impossible; at best, users can plug in compiled code. But in Ruby, the dynamic code is as natural and easy to use as any statically defined code.&lt;/div&gt;&lt;h3 style=&quot;font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;&quot;&gt;Ruby and the future of Java&lt;/h3&gt;&lt;div style=&quot;font-size: 14px; line-height: 20px; margin-bottom: 10px; margin-top: 10px; text-align: justify;&quot;&gt;Ruby has a lot to teach Java programmers. The Ruby on Rails framework shows how simple it can be to develop a Web application; with JRuby, RoR will soon be able to reuse existing Java functionality. JRuby is set to join Jython, JavaScript, and other dynamic languages in the scripting of Java applications. Developers who want to keep their skills up to date should learn dynamic languages, which are likely to take over more and more domains in application development. Even when not using dynamic languages, Java developers can benefit from the insights Ruby gives into concepts like functional programming and metaprogramming.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/8441111812419445998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/ruby-for-java-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8441111812419445998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8441111812419445998'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/ruby-for-java-world.html' title='Ruby for the Java world'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-477125600951704953</id><published>2011-04-25T21:58:00.000-07:00</published><updated>2011-04-25T21:58:28.908-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java vs. Ruby on Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology"/><category scheme="http://www.blogger.com/atom/ns#" term="php vs ruby vs java"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby from java"/><title type='text'>To Ruby From Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-top: 0px; text-align: justify;&quot;&gt;Java is mature. It’s tested. And it’s fast (contrary to what the anti-Java crowd may still claim). It’s also quite verbose. Going from Java to Ruby, expect your code size to shrink down considerably. You can also expect it to take less time to knock together quick prototypes.&lt;/div&gt;&lt;h3 style=&quot;background-image: url(http://www.ruby-lang.org/images/dotted-underline.gif); background-position: 50% 100%; background-repeat: repeat-x; color: #c61a1a; font-family: Georgia, Palatino, &#39;Times New Roman&#39;, Times, serif; font-size: 22px; font-weight: normal; line-height: 24px; margin-bottom: 0.75em; padding-bottom: 8px; text-align: justify;&quot;&gt;Similarities&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As with Java, in Ruby,...&lt;/div&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Memory is managed for you via a garbage collector.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Objects are strongly typed.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;There are public, private, and protected methods.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;There are embedded doc tools (Ruby’s is called RDoc). The docs generated by rdoc look very similar to those generated by javadoc.&lt;/li&gt;
&lt;/ul&gt;&lt;h3 style=&quot;background-image: url(http://www.ruby-lang.org/images/dotted-underline.gif); background-position: 50% 100%; background-repeat: repeat-x; color: #c61a1a; font-family: Georgia, Palatino, &#39;Times New Roman&#39;, Times, serif; font-size: 22px; font-weight: normal; line-height: 24px; margin-bottom: 0.75em; padding-bottom: 8px; text-align: justify;&quot;&gt;Differences&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Unlike Java, in Ruby,...&lt;/div&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;You don’t need to compile your code. You just run it directly.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;There are several different popular third-party&amp;nbsp;&lt;span class=&quot;caps&quot;&gt;GUI&lt;/span&gt;&amp;nbsp;toolkits. Ruby users can try&amp;nbsp;&lt;a href=&quot;http://wxruby.rubyforge.org/wiki/wiki.pl&quot; style=&quot;color: #3256b6;&quot;&gt;WxRuby&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://www.fxruby.org/&quot; style=&quot;color: #3256b6;&quot;&gt;FXRuby&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://ruby-gnome2.sourceforge.jp/&quot; style=&quot;color: #3256b6;&quot;&gt;Ruby-GNOME2&lt;/a&gt;, or the bundled-in Ruby Tk for example.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;You use the&amp;nbsp;&lt;code&gt;end&lt;/code&gt;&amp;nbsp;keyword after defining things like classes, instead of having to put braces around blocks of code.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;You have&amp;nbsp;&lt;code&gt;require&lt;/code&gt;&amp;nbsp;instead of&amp;nbsp;&lt;code&gt;import&lt;/code&gt;.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;All member variables are private. From the outside, you access everything via methods.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Parentheses in method calls are usually optional and often omitted.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Everything is an object, including numbers like 2 and 3.14159.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;There’s no static type checking.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Variable names are just labels. They don’t have a type associated with them.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;There are no type declarations. You just assign to new variable names as-needed and they just “spring up” (i.e.&amp;nbsp;&lt;code&gt;a = [1,2,3]&lt;/code&gt;rather than&amp;nbsp;&lt;code&gt;int[] a = {1,2,3};&lt;/code&gt;).&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;There’s no casting. Just call the methods. Your unit tests should tell you before you even run the code if you’re going to see an exception.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;It’s&amp;nbsp;&lt;code&gt;foo = Foo.new( &quot;hi&quot;)&lt;/code&gt;&amp;nbsp;instead of&amp;nbsp;&lt;code&gt;Foo foo = new Foo( &quot;hi&quot; )&lt;/code&gt;.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;The constructor is always named “initialize” instead of the name of the class.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;You have “mixin’s” instead of interfaces.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;caps&quot;&gt;YAML&lt;/span&gt;&amp;nbsp;tends to be favored over&amp;nbsp;&lt;span class=&quot;caps&quot;&gt;XML&lt;/span&gt;.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;It’s&amp;nbsp;&lt;code&gt;nil&lt;/code&gt;&amp;nbsp;instead of&amp;nbsp;&lt;code&gt;null&lt;/code&gt;.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;code&gt;==&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;equals()&lt;/code&gt;&amp;nbsp;are handled differently in Ruby. Use&amp;nbsp;&lt;code&gt;==&lt;/code&gt;&amp;nbsp;when you want to test equivalence in Ruby (&lt;code&gt;equals()&lt;/code&gt;&amp;nbsp;is Java). Use&amp;nbsp;&lt;code&gt;equal?()&lt;/code&gt;when you want to know if two objects are the same (&lt;code&gt;==&lt;/code&gt;&amp;nbsp;in Java).&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/477125600951704953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/to-ruby-from-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/477125600951704953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/477125600951704953'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/to-ruby-from-java.html' title='To Ruby From Java'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-598280248089196443</id><published>2011-04-19T21:27:00.000-07:00</published><updated>2011-06-30T02:05:22.901-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="virtual machine on windows"/><title type='text'>Installing a Guest Operating System on a Virtual Machine</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Virtualization has been widely accepted as a technique to conserve  resources. Virtualization is the process of running a guest operating  system on a virtual machine, which is created in a virtualizer running  on the host operating system. Large companies do not have to install 100  different host computers for its employees as they may create 100  different virtual machines running different guest operating systems on a  single host computer.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;VMware is one of the main vendors of &lt;a href=&quot;http://www.linux.com/archive/feature/133018&quot;&gt;Linux virtualization&lt;/a&gt;  solutions. VMware Player may be used to run 32-bit and 64-bit Linux  operating systems including openSUSE, RHEL 5, and Ubuntu. VMware also  offers Virtual Appliances, which are prebuilt software solutions  comprising of virtual machine/s. Virtual Appliances are available for  Ubuntu, Red Hat and openSUSE, though an appliance for the latest  versions may not be available. For the latest version of openSuse, 11.2,  it is recommended to install the openSUSE directly onto the VMware  Player. In this article we shall install Oracle database XE in openSuse  11.2 as a guest operating system running in a virtual machine (VM) on a  Windows host operating system.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Using Oracle database XE with openSuse 11.2 in VMPlayer requires the following:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Install VMPlayer&lt;/li&gt;
&lt;li&gt;Create a virtual machine and install openSUSE 11.2 on the VM&lt;/li&gt;
&lt;li&gt;Install Oracle database in openSUSE 11.2&lt;/li&gt;
&lt;li&gt;Add user to dba group&lt;/li&gt;
&lt;li&gt;Create initialization initXE.ora file&lt;/li&gt;
&lt;li&gt;Grant write access to intiXE.ora&lt;/li&gt;
&lt;li&gt;Start database instance in NOMOUNT&lt;/li&gt;
&lt;li&gt;Modify DB_NAME parameter&lt;/li&gt;
&lt;li&gt;Restart database instance in NOMOUNT&lt;/li&gt;
&lt;li&gt;Create database&lt;/li&gt;
&lt;li&gt;Create database table&lt;/li&gt;
&lt;li&gt;Create data dictionary views&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Installing VMware Player&lt;/b&gt;&lt;br /&gt;
Create three folders - openSuse,  vmplayer and VMs - for installing openSuse ISO, VMPlayer, and an  openSuse virtual machine. First, we need to download the latest version  of &lt;a href=&quot;https://www.vmware.com/tryvmware/?p=player&amp;amp;lp=1&quot;&gt;VMPlayer&lt;/a&gt;  to the vmplayer folder. The VMPlayer is just an .exe file. Double-click  on the .exe file and the VMware Player Setup Wizard gets started.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Click on Next in the Welcome window. Specify the Destination Folder  (C:\vmplayer for example) to install the VMware Player. Click on Next.  In the Ready to Perform the Requested Operations window click on  Continue. The VMware installation gets started. When the installation is  completed, the Setup Wizard prompts for restarting the system to  complete the installation. Click on Restart Now. After the system has  been restarted, the VMware Player installation is completed.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Creating a Virtual Machine&lt;/b&gt;&lt;br /&gt;
Next, download the &lt;a href=&quot;http://software.opensuse.org/112/en&quot;&gt;openSUSE 11.2 Live&lt;/a&gt;  KDE ISO (openSUSE-11.2-KDE4-LiveCD-i686.iso) to the openSuse folder.  Open the VMware Player. Click on Create a New Virtual Machine to create  an openSUSE 11.2 virtual machine as shown in Figure 1.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;272&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure1_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The New Virtual Machine Wizard gets started. Select the Installer  disc image file (iso) radio button and select the openSUSE 11.2 KDE ISO  file as shown in Figure 2. Click on Next.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;288&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure2.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Select a guest operating system as Linux and a version as OpenSUSE as in Figure 3. Click on Next.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;288&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure3.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Specify a name for the virtual machine and specify the Location of  the VM as the VMs directory. Click on Next. Specify the disk size as  40.0 GB and select Split virtual disk into 2GB files as in Figure 4.  Click on Next.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;288&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure4.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Select the memory allocated to the VM. By default one processor is  configured. Configure the Network Adapter as Bridged with Replicate  physical network connection state as in Figure 5.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;227&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure5_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Click on Finish to create the openSUSE 11.2 VM and start the installation.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Installing openSUSE 11.2 in the Virtual Machine&lt;/b&gt;&lt;br /&gt;
After the virtual machine gets created, select Installation in the OpenSUSE Installer boot screen as in Figure 6.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;281&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure6_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In the Welcome window the license agreement is displayed. Click on  Next. Select Time Zone and click on Next. In the Suggested Partitioning  window Partition Based is selected by default. Click on Edit Partition  Setup. In the Expert Partitioner the Available Storage on Linux gets  listed for the different partitions of the VMware type /dev/sda hard  disk as in Figure 7. Click on Accept.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;281&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure7_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Click on Next as in Figure 8.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;281&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure8_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;In the User Settings, create a new user with the Create New User  wizard. Click Next. In Installation Settings, review the installation  summary and click Install. In the Confirm Installation window click  Install. The installation gets started.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;After the installation is completed, the system needs to reboot as shown in Figure 9.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;259&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure9_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The initial booting of openSUSE 11.2 gets completed. Next, the  automatic configuration of openSUSE 11.2 gets performed. The openSUSE  11.2 VM gets created and installed as shown in Figure 10.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;271&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure10_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Installing Oracle Database XE in openSUSE 11.2&lt;/b&gt;&lt;br /&gt;
Next, we  install the Oracle database XE in the openSUSE 11.2 VM. To start the  openSUSE 11.2 VM click on Play virtual machine. Select VM &amp;gt; Install  VMWare Tools to install VMware Tools. In the openSUSE login window  specify the Username and Password.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The VMPlayer Desktop is displayed, as shown in Figure 11.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;259&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure11_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&amp;nbsp;Download the &lt;a href=&quot;http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html&quot;&gt;Oracle database XE for Linux&lt;/a&gt;.  Start the Dolphin file manager. Select the Download folder. Right-click  on the oracle-xe rpm and select Open with Install Software. Specify a  password for the root user and click on OK. The Software Manager will  start. Oracle Database 10g XE will be installed.&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Adding a User to the dba Group&lt;/b&gt;&lt;br /&gt;
Next, we test the newly  installed database by starting the database. First, start the  application launcher. In the application launcher search for Oracle and  start the database with Start Database. An error will be generated,  &quot;Operation failed. dvohra11 is not a member of ‘dba&#39; group. We need to  add the user dvohra11 to the ‘dba&#39; group. In the application launcher  select the command line Terminal Konsole. The openSUSE terminal will  start the Bash shell. Log in to the openSUSE 11.2 with root privileges  with the su command. Add user dvohra11 to the ‘dba&#39; group with the  following command as shown in Figure 12.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;320&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure12_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;316&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;usermod&amp;nbsp; -G dba dvohra11&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Start the SQL Command line. Having added the user to the ‘dba&#39; group, you will be able to connect as sys to an idle instance.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Creating an Initialization File initXE.ora&lt;/b&gt;&lt;br /&gt;
Before we create  a database and a table, we need to create an initialization file from  which the initialization parameters are read. For an ‘XE&#39; SID we need an  initXE.ora initialization file. We&#39;ll create the initXE.ora file by  making a copy of the init.ora file in the directory  /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/dbs. In the bash  shell cd to the //dbs directory. Create the initXE.ora file with the  following command as shown in Figure 13.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;cp init.ora initXE.ora&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;311&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure13_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Next, grant write permissions to initXE.ora with the following command.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;chmod g+w initXE.ora&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Starting Database Instance in NOMOUNT&lt;/b&gt;&lt;br /&gt;
To create a database  and a table start the database instance with the STARTUP command.  Because control files are not yet available, an error will be generated  indicating we need to start the instance in NOMOUNT. Start up the  instance with the following command:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;STARTUP NOMOUNT&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The Oracle instance gets started.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Modifying DB_NAME Parameter&lt;/b&gt;&lt;br /&gt;
Next, we will create a database with the CREATE DATABASE command:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;CREATE DATABASE ORAXE&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;An error is generated:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;CREATE DATABASE failed&lt;br /&gt;
database name ‘ORAXE&#39; does not match parameter db_name ‘DEFAULT&#39;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;We need to modify the static initialization parameter DB_NAME to the  database name we want to create. Static parameters are modified with the  ALTER SYSTEM command with scope set to ‘SPFILE&#39;. Start the database in  NOMOUNT and set the db_name parameter with the following command:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;ALTER SYSTEM SET db_name=&#39;ORCLXE&#39; scope=spfile&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Static parameters require an instance restart when modified for the  modification to take effect. Shut down the instance with the SHUTDOWN  command as shown in Figure 14.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;227&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure14_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Restart the instance in NOMOUNT and verify that the DB_NAME parameter has been modified with the SHOW PARAMETER command.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Creating a Database&lt;/b&gt;&lt;br /&gt;
Having set the DB_NAME parameter to ORCLXE, create a database with the following command.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;CREATE DATABASE ORCLEXE&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The database gets created and mounted and opened as shown in Figure 15.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;225&quot; src=&quot;http://res.sys-con.com/story/apr11/1799209/Figure15_0.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Creating a Database Table&lt;/b&gt;&lt;br /&gt;
Next, create a database table with the CREATE TABLE command. Shut down the instance with the SHUTDOWN command.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Creating Data Dictionary Views&lt;/b&gt;&lt;br /&gt;
We also need to create the data dictionary views with the following commands:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;SQL&amp;gt; @?/rdbms/admin/catalog.sql&lt;br /&gt;
SQL&amp;gt; @?/rdbms/admin/catproc.sql&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;A VM may be shut down by selecting VM &amp;gt; Power &amp;gt; Power Off. As a  best practice, don&#39;t shut down the VMPlayer without shutting down the  VM. Similarly, multiple virtual machines may be added to the VMPlayer.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/598280248089196443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/installing-guest-operating-system-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/598280248089196443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/598280248089196443'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/installing-guest-operating-system-on.html' title='Installing a Guest Operating System on a Virtual Machine'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-3823405302998262942</id><published>2011-04-19T21:23:00.000-07:00</published><updated>2011-06-30T02:05:22.904-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><title type='text'>Facebook Turns Light Green, Open Sources Its Data Center</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Facebook has been quietly working on building an energy-efficient  data center at the lowest possible cost for a year or two and Thursday  it open sourced the infrastructure it created under what it calls the  Open Compute Project, figuring that many eyes might improve on it.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&quot;We are not the only ones who need the kind of hardware that we are building out,&quot; Facebook CEO Mark Zuckerberg said.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The company wasn&#39;t getting what it needed from the OEMs so it  designed the thing from the ground up and wound up building its own  stripped-down Intel and AMD servers, power supplies, server racks and  battery backup systems.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Its approach meant it had total control over every part of the system  from the software on up and that meant it could use a 480-volt  electrical distribution system to reduce energy loss; remove anything in  the servers that didn&#39;t contribute to efficiency; reuse hot aisle air  in winter to heat its offices; and eliminate the need for a central  uninterruptible power supply.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img height=&quot;179&quot; src=&quot;http://res.sys-con.com/story/apr11/1786277/Cloud%20Expo%202010%20New%20York%20468%2002.jpg&quot; style=&quot;vertical-align: baseline;&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As a result it claims its soon-to-open data center in Prineville, Oregon, is &lt;b&gt;38% more efficient&lt;/b&gt; and &lt;b&gt;24% less expensive&lt;/b&gt;  to build and run than other state-of-the-art data centers. It&#39;s also  supposed to support more Facebook users and offer them real-time social  experiences - such as the ability to read comments as they are written  or see friends of friends appear dynamically as the user searches.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; The facility is reportedly fetching a &lt;a href=&quot;http://en.wikipedia.org/wiki/Power_usage_effectiveness&quot;&gt;PUE&lt;/a&gt; of 1.07, which is below the EPA-defined state-of-the-art industry average of 1.5&lt;sup&gt; &lt;/sup&gt;and means 93% of the energy from the grid makes it into every so-called Open Compute server&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;It&#39;s eliminated centralized chillers and 480V-to-208V transformation.  It says Ethernet-powered LED lighting and its passive cooling  infrastructure cut the energy spent on running the facility further.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The servers it designed reportedly use 22% fewer materials and are  1.5U high to accommodate taller heat sinks and larger fans. The power  supplies, evidently from HP, are reportedly 94.5% efficient.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Thursday it released the specifications and mechanical drawings  covering its motherboards, power supply, server chassis, server racks  and battery cabinets. It&#39;s also sharing its data center electrical and  mechanical construction specifications.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Greenpeace, a critic of Facebook&#39;s piggish energy use, says  efficiency isn&#39;t enough. It needs to tap clean, renewable energy sources  instead of coal.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Facebook worked with &lt;a href=&quot;http://atce.com/&quot;&gt;Alfa Tech&lt;/a&gt;, &lt;a href=&quot;http://www.amd.com/&quot;&gt;AMD&lt;/a&gt;, &lt;a href=&quot;http://www.delta-corp.com/&quot;&gt;Delta&lt;/a&gt;, &lt;a href=&quot;http://www.intel.com/&quot;&gt;Intel&lt;/a&gt;, &lt;a href=&quot;http://www.power-one.com/&quot;&gt;Power-One&lt;/a&gt; and &lt;a href=&quot;http://www.quantatw.com/quanta/english/Default.aspx&quot;&gt;Quanta&lt;/a&gt;  to develop the first generation of the technologies used and is working  with Dell, HP, Rackspace, Skype and Zynga on its next generation.  Apparently it&#39;s not thinking of using ARM.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;It says it&#39;s already talking to its peers about how they can work  together on Open Compute Project technology. Competitors were seen at  its announcement.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/3823405302998262942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/facebook-turns-light-green-open-sources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3823405302998262942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3823405302998262942'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/facebook-turns-light-green-open-sources.html' title='Facebook Turns Light Green, Open Sources Its Data Center'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-512324301180525128</id><published>2011-04-19T21:22:00.000-07:00</published><updated>2011-06-30T02:05:22.898-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><title type='text'>After Ubuntu, Windows Looks Increasingly Bad, Increasingly Archaic, Increasingly Unfriendly</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;i&gt;My recent switch to a single-boot Ubuntu setup on my Thinkpad T60  simply floors me on a regular basis. Most recently it&#39;s had to do with  the experience of maintaining the software. Fresh from a very long  Windows 2000 experience and a four-month Windows XP experience along  with a long-time Linux sys admin role puts me in a great position to  assess Ubuntu. Three prior attempts over the years at using Linux as my  daily desktop OS had me primed for failure. Well, Ubuntu takes Linux  where I&#39;ve long hoped it would go - easy to use, reliable, dependable,  great applications too but more on that later. It has some elegance to  it - bet you never heard that about a Linux desktop before.&lt;/i&gt;&lt;br /&gt;
&lt;img align=&quot;right&quot; height=&quot;127&quot; hspace=&quot;8&quot; src=&quot;http://gemsres.com/story/may07/382946/opensource-Ubuntu2.jpg&quot; vspace=&quot;8&quot; width=&quot;226&quot; /&gt;  There are many night-and-day differences between Windows and Ubuntu  and, for a guy that does 80% standard office tasks and the rest of the  time I&#39;m doing Linux admin tasks, it was nearly all in favor of Ubuntu  after the first few weeks of the transition. Overall, my productivity  and the scope of things I can do with Ubuntu far exceed what I could do  with Windows and just as importantly Ubuntu (like any Linux would) lets  me easily create my own productivity shortcuts of a variety of sorts.&lt;br /&gt;
One of the things that&#39;s become clear as I&#39;ve gotten used to the  appliance-like experience of Ubuntu is that the future of software in an  open source-dominated world is going to be significantly different than  the world dominated by Microsoft. So what distant point on the horizon  has Ubuntu shone a light on for me? Simple. Software will increasingly  compete on ease of use in the total software experience more than on  features. The future will be more about being simple than about any  other dimension.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some recent use cases:&lt;br /&gt;
_ &lt;i&gt;I needed to rebuild my T60 with a fresh OS. Which was easier? MS  Windows with a factory install disk, separate disks for Office and for  Virus protection and then a lot of hunt-and-peck downloading for various  apps like Thunderbird, Firefox, SSH, and Calendar or....Ubuntu with one  CD and an OS that includes an integrated, extensible, and slick  software package manager where all the software is approved and tailored  to the installation?&lt;br /&gt;
&lt;br /&gt;
_ I needed to rebuild a T43. I tried to use  the rebuild partition included on the HD but it was corrupt. So I tried  to make factory-install disks but the corrupt partition prevented it.  Next option? Call Lenovo and get disks sent for $51. That process took  five days and eight CD-ROMs from start to finish. With Ubuntu, this  process takes three hours max, not four days and there&#39;s no software  keys or other things to track down. The labor involved is less than a  fifth with Ubuntu and the delivered product is a lot more productive -  for my use models anyway.&lt;br /&gt;
&lt;br /&gt;
_ I needed to resubscribe to Symantec  on a Windows machine. Again this is a 30-60 minute timeout from  production AND a $49 charge AND a hassle with product keys and sending  data about my machine and purchases around to companies that I&#39;d choose  not have it if I had a choice. But I didn&#39;t since Windows XP needs  Symantec&#39;s products badly even though these scanning and cleaning  products degrade machine performance badly - even with a gig of RAM.&lt;br /&gt;
&lt;br /&gt;
_  And I now hear that Windows Vista renames the partition it&#39;s installed  on what used to be the C: partition. I need to check out this story but  the very idea of automatic partition renaming is insane to even  contemplate.&lt;/i&gt;&lt;br /&gt;
So my machine sings with Ubuntu. Having no virus scanning alone  unleashes a responsiveness that makes the power of the T60&#39;s Intel  dual-core shine. And what am I noticing most about all of this?&lt;br /&gt;
Well, first off Ubuntu is good as a productivity platform. Without  that, the rest wouldn&#39;t matter a bit. But since Ubuntu is not only good  on features but reliability then at least some of us would crawl over  broken glass to get it installed.&lt;br /&gt;
But, in fact, there&#39;s no broken glass in the picture. It&#39;s the  opposite. Ubuntu&#39;s installation is so easy, and maintaining it once it&#39;s  installed is so simple that Ubuntu nearly falls into your machine like a  ying to the hardware&#39;s yang. Once there, Ubuntu happily makes a home in  your head with hardly a blip. I think Ubuntu actually dropped my blood  pressure. Not something you typically find when switching ALL your  software for something that&#39;s about as alien to Windows as it possibly  can be.&lt;br /&gt;
Once that major hurdle is cleared, then the other big issues come  into focus. Ease of install, easy updates, easy software maintenance,  easy data backups. After experiencing Ubuntu, the world of Windows looks  increasingly bad, increasingly archaic, increasingly like a  neighborhood that makes life hard. Why should I put up with what Windows  makes me go through if I don&#39;t have to?&lt;br /&gt;
I&#39;ve used rsync for backups for years. I back up my mail, my  Thunderbird data, and &quot;my document&quot; directory (i.e., /home/xxxx/). One  of these backup commands looks like this and sits in a single shell  script and runs from cron once a day (I&#39;ve already sent the ssh key to  the backup target server so no need to manually login to the backup  server for this command to run):&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: maroon;&quot;&gt;rsync -avgz /home/xxxx/.mozilla-thunderbird/ root@mycomcastipnumber:/hdb/ibmt60-ubuntu-mozilla-tbird/ &amp;gt;&amp;gt;&lt;br /&gt;
/home/xxxx/backup-.txt&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: maroon;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
That little command executes in a few seconds to a few minutes no  matter where I am on the Internet and even if I&#39;ve added some decently  sized files to my computer. I&#39;ve got my home router set up to pass the  ssh port 22 through to a Linux server sitting in my attic. Quick and  painless backups run without a hitch. It&#39;s a thing of beauty. I use the  same solution for my servers so having a single platform from server to  desktop has benefits and this is but one of them. I used to sweat about  my Windows backups in the old days - if I did them every two weeks, I  was happy. Ubuntu dropped my blood pressure on backups alone by 10% and  now I have to decide how often is too often to do a backup. Also, I&#39;m up  on the MIRRA product but, trust me, you don&#39;t want to forget a password  there.&lt;br /&gt;
Through a similar setup, I can also print to my home printer from any  Internet connection. This is not a Windows- or Linux-specific feature  but it&#39;s nice to have and I use it more than I expected. This is just  good fun but it may also drop my blood pressure a point or two.&lt;br /&gt;
So far, none of this is news to those in the know about Ubuntu. It&#39;s  not news but it is a big deal. A very big deal. Ubuntu is getting rave  reviews: it&#39;s a productive platform, it&#39;s a reliable platform, it&#39;s a  durable platform, it&#39;s an upgradeable platform, it&#39;s an easy-to-install  platform, and adoption is through the roof.&lt;br /&gt;
What&#39;s changing in all this?&lt;br /&gt;
In my view, once you realize the platform is viable from a daily  productivity standpoint (exceedingly so), the #1 thing that Ubuntu is  then changing is ease of access to software. If I had decided to rebuild  my PC with Windows XP - we won&#39;t even talk about Vista - this is what I  was looking at:&lt;br /&gt;
&lt;br /&gt;
1)  Buy OEM Install disks from Lenovo because my rebuild partition was corrupt - $51.&lt;br /&gt;
&lt;br /&gt;
2)  Buy a Symantec subscription because I was done with the 90-day free trial - $49.&lt;br /&gt;
&lt;br /&gt;
3)   Buy an extra 512MB of RAM because XP couldn&#39;t run Firefox,  Thunderbird, MS Word, MS Excel, and SSH all at once with 512MB of  installed RAM - $104.&lt;br /&gt;
&lt;br /&gt;
4)  Install all of the above with product  keys along the way - four hours? Maybe six? Maybe more because the tools  for getting 2GB-3GB of mail data back into Thunderbird in Windows  aren&#39;t nearly as good as the same tools in Linux.&lt;br /&gt;
That&#39;s $204 just to get me back to where I thought I was two months  back - i.e., a machine with XP and Office on it. Symantec alone is going  to want to pick my pocket again at some point.&lt;br /&gt;
Ubuntu releases me from these costs and from these long-term headaches:&lt;br /&gt;
&lt;br /&gt;
1)  &lt;b&gt;&lt;i&gt;Viruses&lt;/i&gt;&lt;/b&gt;  - I no longer worry and I no longer need to check my PC - that&#39;s a  relief. You can pick nits here about security but the bottom line is  Ubuntu is orders of magnitude better.&lt;br /&gt;
&lt;br /&gt;
2)  &lt;b&gt;&lt;i&gt;Vulnerabilities&lt;/i&gt;&lt;/b&gt;  - Windows is like Swiss cheese with so many vulnerabilities that it&#39;s  sick - you can&#39;t connect XP to a public Internet connection (i.e.,  behind a router is OK but direct to the net isn&#39;t). Ubuntu? It&#39;s Linux -  no worries.&lt;br /&gt;
&lt;br /&gt;
3)  Thanks to #1 and #2, I&#39;m free from products like  Symantec and Norton and the dollar expense, the complexity of  administering them (those pop-ups are annoying and a productivity hit),  and wondering when they expire next.&lt;br /&gt;
&lt;br /&gt;
4)  Software updates for the entire collection of software on the machine are simple in Ubuntu.&lt;br /&gt;
&lt;br /&gt;
5)  Backups are automatic.&lt;br /&gt;
That&#39;s batting for the cycle. Am I missing anything? Anything at all?  Yes. Printing is easier in Ubuntu for older printers like the HP  Laserjet 4 on a D-Link print server in the office and the HP 6L on an  SMC print server in the home office. Multifunction printers are more of a  challenge. A little care in printer purchases going forward takes this  issue off the plate and I&#39;m fine with the printer solution in place that  has largely been stumbled upon.&lt;br /&gt;
The one bit of software that was Windows-related was a QuickBooks  Timer. I haven&#39;t needed it because I began editing the output of that  program in Excel six months ago because the QuickBooks Timer was too  much of a clod interface to be productive. When I switched from  Microsoft Office to OpenOffice on Windows XP, I continued not using the  QuickBooks Timer. Doing the same manual editing of these QuickBooks  Timer output files in OpenOffice Calc on Linux is a breeze. If there  were a QuickBooks Timer for Linux, I wouldn&#39;t use it so I haven&#39;t  checked for it.&lt;br /&gt;
In sum, what&#39;s changing about software? The installation,  maintenance, and use of software in Windows have become a burden. A huge  burden. And I don&#39;t think the average Windows user realizes how much  out of their way they are going to keep their Windows PCs working.  Windows challenges users and makes for a very expensive user experience  in time and dollars if users follow the book and use the latest virus  protection, keep that protection updated, and avoid the pitfalls that  are squarely on the path that normal users use. In the best case, you  end up with a machine that has a lot of crapware installed on it and is  slow and clunky to use. In the more typical case, you end up with a  machine that spirals to a grinding halt over six to 12 months - like the  T43 I&#39;m working on right now. A machine that has trouble opening an  Excel file in three minutes because it has so much software competing  for disk access and CPU cycles.&lt;br /&gt;
My experience with Linux on the server with its multi-hundred day  uptimes broken by hardware upgrades, not software reboots, and with no  performance degradation even at high disk utilizations tells me Ubuntu  isn&#39;t taking me down with it. My blood pressure is truly low now.&lt;br /&gt;
I&#39;m literally running out the door to get the word rolling on this  changing dynamic. It&#39;s that big. And a word to IBM and Lenovo: if you&#39;re  listening, Ubuntu as an OEM install on your Thinkpad T and X series  would be a huge win for you and for the the OSS adoption curve. This is a  classic case of experience changing perception and it&#39;s got me to  thinking about a seamless platform from server to desktop to phone -  think about it.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/512324301180525128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/after-ubuntu-windows-looks-increasingly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/512324301180525128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/512324301180525128'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/after-ubuntu-windows-looks-increasingly.html' title='After Ubuntu, Windows Looks Increasingly Bad, Increasingly Archaic, Increasingly Unfriendly'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-3047945465603872211</id><published>2011-04-19T21:19:00.001-07:00</published><updated>2011-04-19T21:19:57.452-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology"/><category scheme="http://www.blogger.com/atom/ns#" term="open source vs microsoft"/><title type='text'>HP Starts Pushing Desktop Linux</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;HP has supposedly been selling MandrakeSoft Linux on the desktop for a  while but it&#39;s been so quiet about it that for all intents and purposes  it&#39;s been a stealth operation. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  But now that the desktop Linux hype meter is registering new highs, HP has decided to raise the decibel level. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  It says it&#39;s got two new Linux desktops for the North American SMB  market.   One is the first of a new basic 2000 series, the HP Compaq Business  Desktop dx2000. The company figures the street price of a Celeron model  will be $389 to start. The Hyper-Threaded Pentium 4 unita will be  pricier. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  The other box is a mainstream widget designated the dc5000, another  series that will come with HP Lifecycle manageability tools and is  priced at $599 for a Celeron chip and $679 for a P4 box. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  According to HP&#39;s custom, the boxes will be sold with Mandrake Linux, a  boon for the French company that just filed its plan to emerge from the  Parisian version of Chapter 11 last week. The same PCs can be had with  Windows XP, by the way. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  An HP Compaq 7000 series, due this summer, will offer customers advanced  security, serviceability and manageability features, including HP  Lifecycle Solutions to deploy and maintain PCs in corporate networks. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  The microtower dx2000 features four DIMM slots to support single- or  dual-channel memory configurations and offers quick and easy utilization  of external peripherals with eight USB 2.0 ports.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  The box can be had at clock rates up to 3GHz, with a maximum 80GB drive,  up to one gigabyte of double data rate (DDR) SDRAM and a choice of  optical drives. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  Though it uses the same processors as the 2000, the dc5000 is intended  for more advanced computing, and comes in two designs - a small form  factor and a microtower. It can support a 160GB drive and up to 4GB of  DDR SDRAM. Both form factors are designed with tool-less access to  internal components and drives. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  HP seems to think XP will dominate the 5000 platform. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  Meanwhile, Mandrake&#39;s Chapter 11 exit plan, which the courts have yet to  accept, calls for it to repay 4.1 million euros in liabilities over the  next nine years and no interest. It says it&#39;s committed to repaying 3.3  million euros of the total amount, but that 800,000 euros is  conditional on &quot;certain events&quot; that it doesn&#39;t describe. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  The company says it means the liabilities will be pay off out of  revenues and that it won&#39;t need to raise additional capital. At last  word it had subscriptions from existing investors to pay 2.10 euros  apiece for an additional 358,000 shares, giving Mandrake a stronger  capital base. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;  Although the exit plan hasn&#39;t been rubberstamped by a court, Mandrake  shares are trading again on Marche Libre after a 14-month absence. &lt;/div&gt;The company is working on a new desktop kit based on the 2.6 Linux  kernel that will offer a choice of KDE 3.2, Gnome 2.4 or the house-brand  MandrakeGalaxy 2 desktop environments as well as OpenOffice 1.1&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/3047945465603872211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/hp-starts-pushing-desktop-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3047945465603872211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/3047945465603872211'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/hp-starts-pushing-desktop-linux.html' title='HP Starts Pushing Desktop Linux'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-7832774089712332301</id><published>2011-04-19T21:18:00.000-07:00</published><updated>2011-04-19T21:18:43.375-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google vs Microsoft:"/><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="php development in udaipur"/><category scheme="http://www.blogger.com/atom/ns#" term="Popularity of Programming Languages"/><title type='text'>Tying Google Search into Nuxeo Enterprise CMS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Open source enterprise content management (ECM) vendor Nuxeo (&lt;a href=&quot;http://www.cmswire.com/topics/nuxeo&quot;&gt;news&lt;/a&gt;, &lt;a class=&quot;external&quot; href=&quot;http://www.nuxeo.com/&quot;&gt;site&lt;/a&gt;)  announced the Nuxeo GSA Connector that enables &lt;a href=&quot;http://www.cmswire.com/topics/google&quot;&gt;Google&lt;/a&gt; Search &lt;a class=&quot;kLink&quot; href=&quot;http://www.cmswire.com/cms/enterprise-cms/tying-google-search-into-nuxeo-enterprise-cms-010871.php#&quot; id=&quot;KonaLink0&quot; style=&quot;font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static; text-decoration: underline !important;&quot;&gt;&lt;span style=&quot;color: blue; font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;&quot;&gt;&lt;span class=&quot;kLink&quot; style=&quot;background-color: transparent; border-bottom: 1px solid blue; color: blue ! important; font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;&quot;&gt;Appliance&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;  to index  and search Nuxeo ECM content. Organizations using Nuxeo and   Google’s search appliance can now have the ECM content in same &lt;a class=&quot;kLink&quot; href=&quot;http://www.cmswire.com/cms/enterprise-cms/tying-google-search-into-nuxeo-enterprise-cms-010871.php#&quot; id=&quot;KonaLink1&quot; style=&quot;font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static; text-decoration: underline !important;&quot;&gt;&lt;span style=&quot;color: blue; font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;&quot;&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static;&quot;&gt;search &lt;/span&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static;&quot;&gt;results&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; as  other content indexed by search appliance and actually get closer to living up  to the “enterprise search” moniker.  &lt;a href=&quot;&quot; name=&quot;more&quot;&gt;&lt;/a&gt;         &lt;/div&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;Enterprise Search and ECM&lt;/h2&gt;&lt;div&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;a class=&quot;kLink&quot; href=&quot;http://www.cmswire.com/cms/enterprise-cms/tying-google-search-into-nuxeo-enterprise-cms-010871.php#&quot; id=&quot;KonaLink2&quot; style=&quot;font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static; text-decoration: underline !important;&quot;&gt;&lt;span style=&quot;color: blue; font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;&quot;&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static;&quot;&gt;Google &lt;/span&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static;&quot;&gt;Search&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;  Appliance (GSA) provides Google search capabilities to  enterprise  content. GSA connects to many content sources, like the popular   SharePoint 2010, out-of-the-box, but alas, Nuxeo was not among that  list.  However, no longer does content stored in Nuxeo’s &lt;a class=&quot;kLink&quot; href=&quot;http://www.cmswire.com/cms/enterprise-cms/tying-google-search-into-nuxeo-enterprise-cms-010871.php#&quot; id=&quot;KonaLink3&quot; style=&quot;font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static; text-decoration: underline !important;&quot;&gt;&lt;span style=&quot;color: blue; font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;&quot;&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static;&quot;&gt;open &lt;/span&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static;&quot;&gt;source&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; ECM have to be  AWOL from search results with the release of the new Nuxeo GSA Connector.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The Nuxeo GSA Connector requires Nuxeo DM 5.4.0.1 or Nuxeo DM 5.4.1 and  includes:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;ul style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Google Enterprise  &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/google-enterprise-connector-manager/&quot;&gt;  Connector Manager&lt;/a&gt;: Allows GSA to search and serve documents from the   Nuxeo repository.&lt;/li&gt;
&lt;li&gt;Nuxeo Google Search Appliance  &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/intl/fr/apis/searchappliance/documentation/connectors/260/connector_admin/admin_connector.html&quot;&gt;  connector type&lt;/a&gt;: Allows user to configure the connection and define the   content to index.&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Using Nuxeo’s GSA Connector is transparent to end-users. Once  an  administrator has installed the connector, Nuxeo ECM documents  appear in the  search results of their local &lt;a class=&quot;kLink&quot; href=&quot;http://www.cmswire.com/cms/enterprise-cms/tying-google-search-into-nuxeo-enterprise-cms-010871.php#&quot; id=&quot;KonaLink4&quot; style=&quot;font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static; text-decoration: underline !important;&quot;&gt;&lt;span style=&quot;color: blue; font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;&quot;&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: blue !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; position: static;&quot;&gt;Google&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; website. When users select the document,  the document is served from Nuxeo.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;img alt=&quot;gsaAdminScreen.png&quot; height=&quot;313&quot; src=&quot;http://www.cmswire.com/images/gsaAdminScreen.png&quot; width=&quot;320&quot; /&gt;&lt;br /&gt;
&lt;em&gt;Nuxeo GSA administration&lt;/em&gt;&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Nuxeo  has integrated security with the connector. The connector applies the   access rights from Nuxeo ECM to the search results. The first time  search  results include Nuxeo documents, the platform displays a login  window. Users  must log in to see Nuxeo results and can only see  documents they can access in  Nuxeo ECM. The credentials are saved for  future searches.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Organizations invested in open source should also take note that the &lt;a class=&quot;external&quot; href=&quot;http://mkto-k0025.com/track?type=click&amp;amp;enid=bWFpbGluZ2lkPW51eGVvQmV0YWN1c3QtMTkyMi0yMDg0LTAtMTk2Mi1wcm9kLTk2NCZtZXNzYWdlaWQ9MCZkYXRhYmFzZWlkPTk2NCZzZXJpYWw9MTI2MDI1NDgwMyZlbWFpbGlkPXByQGNtc3dpcmUuY29tJnVzZXJpZD00ODczMzkmZXh0cmE9JiYm&amp;amp;&amp;amp;&amp;amp;https://hg.nuxeo.org/addons/nuxeo-gsa-connector?mkt_tok=3RkMMJWWfF9wsRonsq7LZKXonjHpfsX84%2BsuWq6g38431UFwdcjKPmjr1YIISsB0dvycMRAVFZl5nQJNAuWa&quot; target=&quot;_blank&quot;&gt; source code&lt;/a&gt; for the connector is open and available under the LGPL license. Complete &lt;a class=&quot;external&quot; href=&quot;https://doc.nuxeo.com/x/GABi&quot;&gt;documentation&lt;/a&gt; for the  connector is available on the Nuxeo site.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;Getting the Connector&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The new open source Nuxeo GSA Connector is available in the &lt;a class=&quot;external&quot; href=&quot;https://connect.nuxeo.com/nuxeo/site/marketplace/package/gsa-connector-1.2.2?mkt_tok=3RkMMJWWfF9wsRonsq7LZKXonjHpfsX84%2BsuWq6g38431UFwdcjKPmjr1YIISsB0dvycMRAVFZl5nQJNAuWa&quot; target=&quot;_blank&quot;&gt;Nuxeo Marketplace&lt;/a&gt;.  Nuxeo Connect subscribers can download and install it  directly in  Nuxeo DM via the in-product Update Center. Non-Connect subscribers  can  sign up for a trial. Users that decide to try out the connector should  be  aware that the package does &lt;b&gt;not&lt;/b&gt; support hot reloading. They should follow  the Nuxeo GSA Connector &lt;a class=&quot;external&quot; href=&quot;https://doc.nuxeo.com/x/GABi&quot;&gt;documentation&lt;/a&gt;  for installation instructions.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As  enterprise content grows in size and becomes more diverse,  organizations  continue to struggle to provide a unified view of all  information assets.  Nuxeo’s move to provide a connector to GSA gets  some of these organizations just  a little closer to that goal.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/7832774089712332301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/tying-google-search-into-nuxeo.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/7832774089712332301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/7832774089712332301'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/tying-google-search-into-nuxeo.html' title='Tying Google Search into Nuxeo Enterprise CMS'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2355999168837142713.post-8737808645593428929</id><published>2011-04-12T02:02:00.000-07:00</published><updated>2011-04-12T02:02:20.984-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="open source technology benifits"/><category scheme="http://www.blogger.com/atom/ns#" term="The Future of  Androids"/><title type='text'>The Future of Cheap Androids Begins Now</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;         &lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignleft size-medium wp-image-293055&quot; height=&quot;198&quot; src=&quot;http://gigaom2.files.wordpress.com/2011/02/lg-optimus-v.jpg?w=240&amp;amp;h=198&quot; title=&quot;lg-optimus-v&quot; width=&quot;240&quot; /&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The  arrival of low-priced smartphones is an event many have been waiting on  for some time. Sure there are often buy one, get one deals or one-day  specials where you can find a smartphone for as little as a penny, but  in most cases, such deals are tied to expensive plan commitments that  last for two years. For a real paradigm shift, we’ll need to see  unsubsidized handsets priced at or under $100 that can be used on a  month-to-month basis. We’re inching closer to that shift.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Take the LG Optimus V, for example.&amp;nbsp;Virgin Mobile just began selling this Android smartphone for $149.  Since Virgin Mobile is a pre-paid operator, there’s no contract  involved. That means the company is selling the handset at full-price;  there’s no subsidy, no contract cancellation fee and no commitment. You  pay $149 and the phone is yours. Monthly plans that include unlimited  mobile broadband access with Virgin Mobile — which uses Sprint’s network  — start at $25 with a limited amount of minutes.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Think about that for a second. With a $149 initial investment and  then an ongoing cost of less than $1 per day, someone can have a basic,  but useful, smartphone in the U.S., with the flexibility of upgrading to  a better phone or different carrier at any point in time. Granted, the  Optimus V doesn’t compare to the high-end specifications of the latest  and greatest Androids, Apple’s iPhone, or other currently popular  devices, but I’m not sure that matters.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;I reviewed the LG Optimus T handset back in November,  and it’s essentially the same phone as the Optimus V; LG is rebadging  the basic design for different carriers. For a long-time mobile device  user that values high performance, the Optimus may not be as fast or as  feature-packed as what I’m used to. But that doesn’t mean it won’t  provide value to those currently on feature phones or other low-end  smartphones. In my review, I noted:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;blockquote&gt;This handset does just about everything that my more  expensive phone can do. You can install mobile apps from the Android  Market (yay Angry Birds!), share pics on Facebook (taken with a decent,  but not high-end camera), browse the web over 3G or Wi-Fi, manage email  on the go, check-in on Foursquare, use Google’s Navigation and use  Google Voice services. The phone&amp;nbsp;uses the latest version of Android, which helps boost performance. Plus, the 1500 mAh battery paired with a slower processor makes for an all-day device.&lt;/blockquote&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;All of the essential functions are there: 3G, Wi-Fi, Bluetooth, a  touchscreen display, GPS, a 3.2-megapixel camera and more. Plus, the  handset can run a myriad of software found in the Android Market. Would I  like to see the device have more guts than the 600 MHz processor  provides? Sure I would, but each improved feature boosts the costs and  puts the device out of reach for more consumers on a tight budget, and  besides, I’m not in the target audience for this device.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-medium wp-image-293061&quot; height=&quot;240&quot; src=&quot;http://gigaom2.files.wordpress.com/2011/02/lg-optimus-v-facebook.jpg?w=222&amp;amp;h=240&quot; title=&quot;lg-optimus-v-facebook&quot; width=&quot;222&quot; /&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The  Optimus handset line, especially when paired with a low-cost pre-paid  plan, represents the coming wave of cheaper smartphones: a slowly rising tide that will bring additional challenges to companies such as Nokia&amp;nbsp;that  sell more feature phones than any company in the world today. Indeed,  outside the U.S., where Nokia is a popular brand, such cheap smartphones  may even greater risk to Nokia. Why? Because here in the U.S. our  handsets are generally tied or locked to a carrier and we have two  different network technologies. But in Europe and elsewhere, it’s not  uncommon to buy a phone, then purchase a SIM card from whichever carrier  is currently offering the cheapest voice and data rates. A cheap,  no-contract handset can run on any number of networks in that case,  making the device an even more appealing alternative to a feature phone.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Adding additional pressure is the&amp;nbsp;likelihood&amp;nbsp;of these Android  handsets getting cheaper in the future. Brian Modoff from&amp;nbsp;Deutsche Bank  Equity Research yesterday issued this note:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;blockquote&gt;By 2013, we expect 1 GHz smartphones to be available for  $100.&amp;nbsp;The combination of a $0 license for Android and the steady march  of&amp;nbsp;Moore’s Law could translate into $100 smartphones by late 2012  or&amp;nbsp;early 2013. At that point, we think even the average  emerging&amp;nbsp;markets’ consumer shift their purchase sharply away  from&amp;nbsp;feature phones to smartphones, posing a serious challenge  to&amp;nbsp;companies such as Nokia without a clear strategy for  low-end&amp;nbsp;operating systems.&lt;/blockquote&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;I agree with Modoff in principle, but I suspect the timeline he  presents for a $100 smartphone is too conservative. By the end of this  year, I expect to see no-contract Android devices costing $99 or less,  paired with reasonably priced pre-paid plans. There may be a question of  exactly when that will happen, but there’s no question that it will  happen. And when it does, it will open up the floodgates for upgrades to  those on feature phones and kick smartphone adoption into an even  higher gear.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaurav-asktome.blogspot.com/feeds/8737808645593428929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/future-of-cheap-androids-begins-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8737808645593428929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2355999168837142713/posts/default/8737808645593428929'/><link rel='alternate' type='text/html' href='http://gaurav-asktome.blogspot.com/2011/04/future-of-cheap-androids-begins-now.html' title='The Future of Cheap Androids Begins Now'/><author><name>Gaurav</name><uri>http://www.blogger.com/profile/09032866412904134593</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivS0HhftrvOn45ZI1JIwRspH91y1p7hRbHXmj47Gl0-Op7r-rEAe2004FWS1vr-IcSL_n_LKkb41ewo8CVgecPj_oZThzd-vnY1IJNsaVTCEVPkt4YEsgA6DcMVV3oAGg/s220/EYKIW.jpg'/></author><thr:total>0</thr:total></entry></feed>