<?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: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-1603143440589965075</id><updated>2012-01-24T03:32:26.866-08:00</updated><category term='web application'/><category term='scilab'/><category term='latest add ons'/><category term='web awards 2011'/><category term='workshops'/><category term='santhosh inspirations'/><category term='hacking tips'/><category term='joomla 1.7'/><category term='installing'/><category term='pyGTK programming'/><category term='seminars'/><category term='gmail account'/><category term='javascript player'/><category term='online player'/><category term='free cultual roadshow'/><category term='latex'/><category term='windows vs linux'/><category term='GYAN collective learning'/><category term='open web awards 2011'/><category term='Author&apos;s Voice'/><category term='javascript + flash'/><category term='bangalore conference'/><category term='kalahasti temple'/><category term='open source player'/><category term='shrek 3D'/><category term='Moblin C/C++ SDK&apos;s'/><category term='jooma user group'/><category term='scipy'/><category term='sans review'/><category term='design facebook apps'/><category term='sandy invitation'/><category term='chennai meet-up'/><category term='open source tech event'/><category term='Plugin Developement'/><category term='fcr'/><category term='27th june 2010'/><category term='film review'/><category term='openhackindia'/><category term='JavaFX Script'/><category term='Vimperator'/><category term='Canadian Multi-millionaire'/><category term='CEO&apos;s Fraud'/><category term='workshop'/><category term='next generation User Interface'/><category term='IIT madras event'/><category term='Zembly'/><category term='JavaSE'/><category term='Intel India'/><category term='Corporate Mistakes'/><category term='mailing list'/><category term='Sun Certification'/><category term='self promotion'/><category term='osum'/><category term='start up events'/><category term='ankit fadia'/><category term='flickr'/><category term='sathosh'/><category term='content management system'/><category term='ubuntu'/><category term='open source tools'/><category term='python wiki'/><category term='Arunai Engineering College'/><category term='talks'/><category term='svn'/><category term='subversion'/><category term='media player'/><category term='personality development'/><category term='activity'/><category term='Sandy Movie Review'/><category term='follow twitter'/><category term='OSCO'/><category term='live blogging'/><category term='Tutorials'/><category term='django framework'/><category term='hacking event'/><category term='Open Source Entreprenuer'/><category term='sandy experience'/><category term='Sandy voice'/><category term='ajax class'/><category term='konai falls'/><category term='cybersquatting'/><category term='design apps'/><category term='open standards'/><category term='iitm workshop'/><category term='ajax workshop'/><category term='gmail drive'/><category term='ieee'/><category term='user experience'/><category term='Exam Prepration'/><category term='mozilla drumbeat'/><category term='collabnet'/><category term='PVR chennai'/><category term='Download tutorials'/><category term='mozilla roadshow'/><category term='mozilla campaing'/><category term='FSF TamilNadu Workshop'/><category term='mozilla events'/><category term='firefox addons'/><category term='hackz'/><category term='ssh'/><category term='impress HR'/><category term='python workshop'/><category term='wordpress 3.0'/><category term='fun time'/><category term='santhosh.V'/><category term='version control system'/><category term='sudo'/><category term='Joomla User Group'/><category term='sans reviews'/><category term='twitter'/><category term='International Certification'/><category term='hacker guru'/><category term='indian linux user community'/><category term='social media'/><category term='Linux Alternative Project'/><category term='web platforms'/><category term='using java'/><category term='speakers invited'/><category term='yahoo takes control'/><category term='linux distribution making'/><category term='Red Hat'/><category term='JUG chennai meet'/><category term='meetup'/><category term='one billion downloads'/><category term='student projects'/><category term='adobe ria'/><category term='BBC Interview'/><category term='unlock the open possibilities'/><category term='wordpress hackz'/><category term='sandy Live blogging'/><category term='osco.in'/><category term='ChennaiPy activity'/><category term='andra pradesh'/><category term='all india python software society'/><category term='madurai event'/><category term='windows equivalent softwares'/><category term='yahoo developers meet'/><category term='tips'/><category term='ChennaiPy'/><category term='paper presentations'/><category term='scp'/><category term='Sun Products'/><category term='25th Anniversary celebration'/><category term='open source CMS'/><category term='Zembly tutorial'/><category term='RTBI'/><category term='Intel AppUp Center'/><category term='open platform'/><category term='free sun Training'/><category term='entrepreneur'/><category term='Arunai'/><category term='sandy tour'/><category term='seminar'/><category term='Sun Microsystems'/><category term='Linux softwares'/><category term='Open Source Community'/><category term='blog tips'/><category term='online storage'/><category term='open hack india'/><category term='movie'/><category term='avoid mistakes'/><category term='social networking apps'/><category term='rupee symbol'/><category term='ans review'/><category term='flicker.com'/><category term='mozilla invitation'/><category term='Technology review'/><category term='info geek'/><category term='india economy'/><category term='cloud computing workshop'/><category term='architecture'/><category term='santhosh talks'/><category term='self adulation'/><category term='chennai Conference'/><category term='yahoo'/><category term='free culture incubator'/><category term='Bob Young'/><category term='consumer JRE'/><category term='ilugc summer talks'/><category term='santhosh'/><category term='Java  Tutorials'/><category term='developer meeting'/><category term='SCJP'/><category term='conference'/><category term='ncurser'/><category term='arunai campus'/><category term='download softwares'/><category term='Java Modules'/><category term='siliconindia'/><category term='CMS Expert Review'/><category term='prince of persia'/><category term='unconference'/><category term='General'/><category term='yahoo event'/><category term='anna university event'/><category term='HTML5'/><category term='never forget a name'/><category term='JUG Launch'/><category term='barcamp chennai'/><category term='python programming'/><category term='mozilla prism'/><category term='santhosh tools'/><category term='sanstalk'/><category term='C/C++'/><category term='sandy code'/><category term='csi chennai chapter'/><category term='sandy reviews'/><category term='interview tips'/><category term='refreshments'/><category term='developer tools'/><category term='Sans Invitation'/><category term='SSN Conference'/><category term='Scripting workshop'/><category term='monthly meet'/><category term='JavaFX'/><category term='follow santhosh  madhavan'/><category term='start_up city'/><category term='Latest Sun Technologies'/><category term='Sun'/><category term='devdays 2010'/><category term='mozilla labs'/><category term='Welcome Note'/><category term='ethical hacking'/><category term='Free Training'/><category term='mozilla'/><category term='online networking mistakes'/><category term='open source projects'/><category term='Training'/><category term='sans meet-up'/><title type='text'>Open Source Tech India</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>76</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-5563972796916996067</id><published>2011-10-25T10:19:00.001-07:00</published><updated>2011-10-25T10:19:25.786-07:00</updated><title type='text'>Optimize Your WordPress Permalinks</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #757575; font-family: 'Droid Sans', arial, serif; font-size: 12px; line-height: 18px;"&gt;I am going to teach you how to optimize your WordPress permalinks for better On-Page SEO, which is the first thing you need to do as soon as you have installed WordPress on your server. Learn how to create a custom permalink structure for your WordPress powered site, optimize them for Search Engines and why it is important.&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #757575; font-family: 'Droid Sans', arial, serif; font-size: 12px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="single-entry clearfix" style="font-family: inherit; font-size: 12px; font-style: 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;"&gt;&lt;h2 style="clear: both; color: black; font-family: 'Droid Serif', arial, serif; font-size: 21px; font-style: italic; letter-spacing: 1px; line-height: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-transform: capitalize; vertical-align: baseline;"&gt;1. Default WordPress Permalinks&lt;/h2&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;By default, the WordPress permalinks for your posts and pages are very SEO-Unfriendly and look a bit like this:&lt;/div&gt;&lt;blockquote style="font-family: inherit; font-size: 12px; font-style: 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; quotes: ''; vertical-align: baseline;"&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;http://www.domain.com/?p=1&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;If you know the basics of on-page SEO then you know how this is a problem. Basically the ending of your URL should contain keywords that reflect the content of that page or post. Not only is this more user-friendly (and looks less sketchy when people share links to your site) but it also helps tell search engines, like Google, what that page should be about (On-Page SEO is all about “Relevance”).&lt;/div&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Your permalinks should be something like this:&lt;/div&gt;&lt;blockquote style="font-family: inherit; font-size: 12px; font-style: 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; quotes: ''; vertical-align: baseline;"&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;http://www.domain.com/optimize-wordpress-permalinks&lt;/div&gt;&lt;/blockquote&gt;&lt;h2 style="clear: both; color: black; font-family: 'Droid Serif', arial, serif; font-size: 21px; font-style: italic; letter-spacing: 1px; line-height: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-transform: capitalize; vertical-align: baseline;"&gt;2. Optimizing Your Permalinks&lt;/h2&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Luckily WordPress does provide a very easy way to optimize your permalink structure. All you have to do is log into your WordPress admin panel and go to the following location:&lt;/div&gt;&lt;blockquote style="font-family: inherit; font-size: 12px; font-style: 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; quotes: ''; vertical-align: baseline;"&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Settings –&amp;gt; Permalinks&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;On this page, click on “Custom Structure” and then to the right you’ll want to enter the following:&lt;/div&gt;&lt;blockquote style="font-family: inherit; font-size: 12px; font-style: 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; quotes: ''; vertical-align: baseline;"&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;%postname%&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Now your permalinks will be created using keywords from your post or page title.&lt;/div&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;img alt="Custom Permalinks" class="alignnone size-full wp-image-1905" height="363" src="http://www.aoclarkejr.com/wp-content/uploads/2010/12/custom-permalinks-wordpress.png" style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;" title="custom-permalinks-wordpress" width="558" /&gt;&lt;/div&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;*If you notice I put a “.html” at the end of mine. I really like it because I have subfolders on my domain and it helps distinguish between the two, but it probably doesn’t do much or anything in terms of Search Engine Optimization.&lt;/div&gt;&lt;h2 style="clear: both; color: black; font-family: 'Droid Serif', arial, serif; font-size: 21px; font-style: italic; letter-spacing: 1px; line-height: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-transform: capitalize; vertical-align: baseline;"&gt;3. Manually Editing Your Permalinks Per Page Or Post&lt;/h2&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;After you set up your custom permalink structure you can also manually edit your permalinks while creating or editing your posts/pages. This way you can choose the exact words you want for your URL structure. To do so just click on the small “edit” button right under the field where you put in your post/page title (see image below). Makes sure to click “save draft” or “update” after you change it.&lt;/div&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;img alt="Manually Edit Your Permalinks" class="alignnone size-full wp-image-1907" height="184" src="http://www.aoclarkejr.com/wp-content/uploads/2010/12/manually-edit-permalinks-wordpress.png" style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;" title="manually-edit-permalinks-wordpress" width="517" /&gt;&lt;/div&gt;&lt;h2 style="clear: both; color: black; font-family: 'Droid Serif', arial, serif; font-size: 21px; font-style: italic; letter-spacing: 1px; line-height: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-transform: capitalize; vertical-align: baseline;"&gt;4. Advantages Of A Better Permalink Structure&lt;/h2&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The advantages of optimizing your permalink structure to a keyword-rich one are the following:&lt;/div&gt;&lt;ol style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 10px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;Makes your URL’s easier to read by search engine robots&lt;/li&gt;&lt;li style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;Makes your URL easier to read in search engine results (may increase clicks)&lt;/li&gt;&lt;li style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;Gives more weight to the words in your URL&lt;/li&gt;&lt;/ol&gt;&lt;h2 style="clear: both; color: black; font-family: 'Droid Serif', arial, serif; font-size: 21px; font-style: italic; letter-spacing: 1px; line-height: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-transform: capitalize; vertical-align: baseline;"&gt;5. Quick Tips For Better Permalinks&lt;/h2&gt;&lt;div style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Changing the permalink structure works pretty well, however, you may want to edit them manually (as explained above) to make them even better then the default. Keep the following tips in mind when optimizing your permalinks.&lt;/div&gt;&lt;ul style="font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 10px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;Keep them short -hopefully between 1-4&lt;/li&gt;&lt;li style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;Keep them relevant – make sure to choose the keywords you want your page or post to rank for(obviously they will be relevant to your content)&lt;/li&gt;&lt;li style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;Avoid “fluff’ words – don’t use words like: it, and, of, the…etc.&lt;/li&gt;&lt;/ul&gt;&lt;div class="clear" style="clear: both; font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div class="post-entry-bottom" style="font-family: inherit; font-size: 12px; font-style: 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; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="clearfix" id="post-author" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: initial; background-origin: initial; border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; border-top-color: rgb(238, 238, 238); border-top-style: solid; border-top-width: 1px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; padding-top: 20px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-5563972796916996067?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/5563972796916996067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/10/optimize-your-wordpress-permalinks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5563972796916996067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5563972796916996067'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/10/optimize-your-wordpress-permalinks.html' title='Optimize Your WordPress Permalinks'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4007319065111146951</id><published>2011-10-21T17:30:00.001-07:00</published><updated>2011-10-21T17:31:02.084-07:00</updated><title type='text'>reboot is not the same as init 6</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: 'Droid Sans', 'Lucida Grande', Tahoma, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="entry_wrap fix" style="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; color: #878789; display: block; font-size: 14px; line-height: 22px; 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;"&gt;&lt;div class="entry_content" style="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: 1.1em; line-height: 1.6em; 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;"&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Here’s an interesting Linux tidbit that not many ESX admins realize.&lt;/div&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 30px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="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: 15px; 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;"&gt;reboot&lt;/strong&gt;&amp;nbsp;is not the same as&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;init 6&lt;/strong&gt;&lt;/div&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;In Linux, the&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;init 6&lt;/strong&gt;&amp;nbsp;command gracefully reboots the system running all the K* shutdown scripts first, before rebooting.&amp;nbsp; The&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;reboot&amp;nbsp;&lt;/strong&gt;command does a very quick reboot.&amp;nbsp; It doesn’t execute any kill scripts, but just unmounts filesystems and restarts the system.&amp;nbsp; The&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;reboot&amp;nbsp;&lt;/strong&gt;command is more forceful.&lt;/div&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;So, should I use&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;reboot&amp;nbsp;&lt;/strong&gt;or&lt;strong style="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: 15px; 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;"&gt;&amp;nbsp;init 6&lt;/strong&gt;?&amp;nbsp; – neither!&amp;nbsp; My advice is to use the&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;shutdown&amp;nbsp;&lt;/strong&gt;command.&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;shutdown&amp;nbsp;&lt;/strong&gt;will do a similar job to&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;init 6&lt;/strong&gt;, but it has more options and a better default action.&amp;nbsp; Along with kicking off an init 6, the&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;shutdown&amp;nbsp;&lt;/strong&gt;command will also notify all logged in users (logged in at a tty), notify all processes the system is going down and by default will pause&amp;nbsp; for a set time before rebooting (giving you the chance to cancel the reboot if you realize that you made a mistake).&amp;nbsp; Jolly civil.&lt;/div&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&lt;/div&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;How does this advice apply to VMware ESX servers you ask?&amp;nbsp; Well I’m not a VMware kernel developer so to be honest I’m not the best person to ask (if you do know murky details, then please let us know in the comments).&amp;nbsp; However I will say this; I will always use&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;shutdown -r&lt;/strong&gt;&amp;nbsp;first and foremost.&amp;nbsp; It’s just a better habit to get into.&lt;/div&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Is there a difference on an ESX server? Yes, but as I said I’m entirely sure how it affects the VMkernel processes.&amp;nbsp; The reason I definitely know – a couple of times I’ve had to use the&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;reboot&amp;nbsp;&lt;/strong&gt;command to force an unresponsive ESX&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;shutdown -r&lt;/strong&gt;.&lt;/div&gt;&lt;div style="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: 15px; margin-bottom: 1em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;P.S. This also applies to&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;init 0&lt;/strong&gt;&amp;nbsp;/&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;halt&amp;nbsp;&lt;/strong&gt;(i.e. use&amp;nbsp;&lt;strong style="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: 15px; 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;"&gt;shutdown -h&lt;/strong&gt;&amp;nbsp;instead).&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4007319065111146951?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4007319065111146951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/10/reboot-is-not-same-as-init-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4007319065111146951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4007319065111146951'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/10/reboot-is-not-same-as-init-6.html' title='reboot is not the same as init 6'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7105603958779580443</id><published>2011-10-20T09:14:00.000-07:00</published><updated>2011-10-20T09:50:59.100-07:00</updated><title type='text'>Creating Web Pages with Asynchronous JavaScript and XML - Free 408 page eBook</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #454545; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;span class="yiv696641137text"&gt;The Easy, Example-Based Guide to Ajax for Every Web Developer.&amp;nbsp;&lt;/span&gt;&lt;a href="http://bit.ly/ajaxguide" rel="nofollow" style="color: #234786; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: underline;" target="_blank"&gt;http://bit.ly/ajaxguide&lt;/a&gt;&amp;nbsp;&lt;span class="yiv696641137text"&gt;&lt;br /&gt;&lt;br /&gt;Using Ajax, you can build Web applications with the sophistication and usability of traditional desktop applications and you can do it using standards and open source software. Now, for the first time, there's an easy, example-driven guide to Ajax for every Web and open source developer, regardless of experience.&lt;br /&gt;You'll not only learn how to write "functional" code, but also master design patterns for writing rock solid, high-performance Ajax applications. You'll also learn how to use frameworks such as Ruby on Rails to get the job done fast.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #454545; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;span class="yiv696641137text"&gt;&lt;br /&gt;• Learn how Ajax works, how it evolved, and what it's good for&lt;br /&gt;• Understand the flow of processing in Ajax applications.&lt;br /&gt;• Build Ajax applications with XML and the XMLHttpRequest object.&lt;br /&gt;• Integrate back-end code, from PHP to C#. Use XSLT and XPath, including XPath Axis&lt;br /&gt;• Develop client-side Ajax libraries to support code reuse.&lt;br /&gt;• Streamline development with Ruby on Rails and the Ruby programming language&lt;br /&gt;&lt;br /&gt;Download Here:&amp;nbsp;&lt;/span&gt;&lt;a href="http://bit.ly/ajaxguide" rel="nofollow" style="color: #234786; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: underline;" target="_blank"&gt;http://bit.ly/ajaxguide&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7105603958779580443?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7105603958779580443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/10/creating-web-pages-with-asynchronous.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7105603958779580443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7105603958779580443'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/10/creating-web-pages-with-asynchronous.html' title='Creating Web Pages with Asynchronous JavaScript and XML - Free 408 page eBook'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-5744562142122792665</id><published>2011-09-27T21:03:00.000-07:00</published><updated>2011-09-27T21:03:25.036-07:00</updated><title type='text'>10 Ways To Launch and Promote A Product Using Social Media</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #111111; font-family: Georgia, 'Times New Roman', 'Trebuchet MS'; font-size: 13px; line-height: 20px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="font-size: 14px; font-weight: normal; line-height: 22px;"&gt;Recently I joined the Customer success team in my company and found this article from Jeff Bullas , interesting and worth a share. All these methods will surely improve the social footprint. &amp;nbsp;&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Launching a product using social media provides multi-media rich global platforms that makes it easy for each social network community to share the message and let other people know about your brand.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Promoting, marketing and launching any product globally was usually left to multi-nationals with big budgets and access to prime time TV and other expensive mass media and to be effective required multi-million dollar budgets.&lt;a href="http://www.jeffbullas.com/wp-content/uploads/2011/05/10-Ways-To-Launch-Promote-A-Product-On-Social-Media.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;"&gt;&lt;img alt="10 Ways To Launch and Promote a Product Using Social Media" class="alignright size-full wp-image-12109" height="218" src="http://www.jeffbullas.com/wp-content/uploads/2011/05/10-Ways-To-Launch-Promote-A-Product-On-Social-Media.jpg" style="border-bottom-style: none; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; border-width: initial; border-width: initial; border-width: initial; display: inline; float: right; font-family: inherit; font-size: 14px; font-style: inherit; margin-bottom: 10px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="10 Ways To Launch and Promote a Product Using Social Media" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Here is a case study of Guy Kawasaki’s launch and promotion of his book ‘&lt;em&gt;Enchantment &amp;nbsp;The Art of Changing Hearts, Minds and Actions&lt;/em&gt;‘ and how he used a multi channel social media marketing strategy and tactics that can be applied to any product.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;This approach or a subset of his campaign can be applied by anyone with the right discipline and appropriate resources and ‘yes’ you will need a marketing budget but it will not need to be 6 or 7 figures.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Guy Kawasaki is a Silicon Valley venture capitalist (Garage &amp;nbsp;Technology Ventures), a&amp;nbsp;&lt;a href="http://blog.guykawasaki.com/#axzz1MvsCv5Nv" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;" target="_blank"&gt;well known blogger&lt;/a&gt;&amp;nbsp;and also famous for his RSS aggregator “Alltop”&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;He was involved in launching and marketing the Apple McIntosh in 1984 and has written ten books with ‘Enchantment’ being his latest.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;So how did he launch and promote his book using social media?&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;1. Facebook&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The Facebook fan page was built specifically for the book and its main aim was to provide a community site on the largest social networking community on the planet that would engage and then share. To build up the fan base that provided critical mass to share an incentive to “like” the page was achieved by giving away a free book. In this case it was his first book “The McIntosh Way”&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center; vertical-align: baseline;"&gt;&lt;a href="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Enchantment-Book-Facebook-Page.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;"&gt;&lt;img alt="Guy Kawasaki Enchantment Book Facebook Page" class="size-full wp-image-12078 aligncenter" height="399" src="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Enchantment-Book-Facebook-Page.png" style="border-bottom-style: none; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; border-width: initial; border-width: initial; border-width: initial; display: block; font-family: inherit; font-size: 14px; font-style: inherit; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Guy Kawasaki Enchantment Book Facebook Page" width="433" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal:&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Create an incentive for people to “like” the page by providing a free product and so grow his fan base&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost:&amp;nbsp;&lt;/strong&gt;Approximately $2,700&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;2. Website and Blog&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;He realized after 2 months that Facebook was great but limited and needed a site he owned that was not restricted to the whims and restrictions of the Facebook environment and its terms and conditions. He built the site which was part of his own website.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center; vertical-align: baseline;"&gt;&lt;a href="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Enchantement-Website.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;"&gt;&lt;img alt="Guy Kawasaki Enchantement Website" class="aligncenter size-full wp-image-12079" height="452" src="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Enchantement-Website.png" style="border-bottom-style: none; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; border-width: initial; border-width: initial; border-width: initial; display: block; font-family: inherit; font-size: 14px; font-style: inherit; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Guy Kawasaki Enchantement Website" width="471" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;To make it easy for his book reviewers to obtain information and images necessary to review the book.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost:&lt;/strong&gt;&amp;nbsp;Approximately $4,000&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;3. Book Reviews by Other Bloggers and A-Listers&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Building a tribe before launch becomes very apparent here and with Guy’s access to his Alltop data base of 20,000 bloggers he was able to offer a free review copy to all 20,000 and from that he attained the following traction. He used&amp;nbsp;&lt;a href="http://ecairn.com/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;" target="_blank"&gt;eCairn&lt;/a&gt;&amp;nbsp;to indentify the social media movers and shakers to find other bloggers outside of his own database listing.&lt;/div&gt;&lt;ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 10px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;1,300 requested a copy&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;150 interviews&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;200 reviews&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;All reviews appeared on his website which gave visibility to all the reviewers as a way of saying thank you.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Main Goal:&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;To provide 3rd party credibility authority and social &amp;nbsp;proof that was widespread and ubiquitous&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost&lt;/strong&gt;: $16,000 (but this was borne by the publisher)&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;4. Email&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The shiny new toy ‘social media’ is not the only marketing tactic that he used and they knew that a 160,000 emails (130,000 acquired over 30 years of making contacts including his blog and website) would be highly effective.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The numbers and results for this&lt;/div&gt;&lt;ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 10px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;30,000 extra email from&amp;nbsp;&lt;a href="http://alwayson.goingon.com/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;" target="_blank"&gt;AlwaysOn&lt;/a&gt;&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;3.75% click through rate&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Takeaway:&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Again it is the building of a marketing base via email prior to launch that is vital to have in your tool kit and assets to ensure launch success&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Approximately $4,500 set up and $1,000 per month (allow 3 months) for the email campaign (Total $7,500)&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;5. Banner Ads&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;This was a 6 week campaign on Google AdWords, Facebook Ads and Twitter (Promoted Tweets). They used Clix Marketing for managing the campaign. Both Google Adwords and Facebook ads are easy enough to do your self&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;To get access to potential buyers outside of his sphere of influence and use the power of Google and Facebook to target the rightaudience.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Allow $2,000-$3,000&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;6. Photo Contest&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Every one loves a contest and they work well on Social media. He offered 5 cameras and an Apple iPad. He had a&amp;nbsp;&lt;a href="http://apps.facebook.com/enchantmentcontest/about" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;" target="_blank"&gt;Facebook contest&lt;/a&gt;&amp;nbsp;app designed by&amp;nbsp;&lt;a href="http://www.strutta.com/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;" target="_blank"&gt;Strutta&lt;/a&gt;.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Results&lt;/strong&gt;&lt;/div&gt;&lt;ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 10px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;1,150 entries&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;35,000 visits&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;70,000 entry views&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasakis-Photo-Contest-on-Facebook.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;"&gt;&lt;img alt="" class="aligncenter size-full wp-image-12083" height="455" src="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasakis-Photo-Contest-on-Facebook.png" style="border-bottom-style: none; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; border-width: initial; border-width: initial; border-width: initial; display: block; font-family: inherit; font-size: 14px; font-style: inherit; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Guy Kawasakis Photo Contest on Facebook" width="455" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;To create ‘Buzz’ .&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Approximately $6,000 (App $2,000 and prizes $4,000)&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Major Takeaway: Start a tribe before even writing that book or product so that when you launch you have a a fan base that will be ready to buy and spread your message for you whether that is on Facebook, Twitter or Blog. Guy used his blog, website and his social media community on Alltop as his primary platform for marketing his product.&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;7. Quizzes&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;He took a quiz he had in his book and took it online and provided it in two channels (Facebook and his website). The surprise here was that the website version results far exceeded the Facebook results.&lt;/div&gt;&lt;ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 10px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;700 took the Quiz on Facebook&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;2,900 took the quiz on the website&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;He used Wildfire which costs $400 per month to create the self-serve quiz and used Electric Pulp to create the website version ($3,000)&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center; vertical-align: baseline;"&gt;&lt;a href="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Quiz-for-book.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;"&gt;&lt;img alt="" class="aligncenter size-full wp-image-12084" height="246" src="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Quiz-for-book.png" style="border-bottom-style: none; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; border-width: initial; border-width: initial; border-width: initial; display: block; font-family: inherit; font-size: 14px; font-style: inherit; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Guy Kawasaki Quiz for book" width="404" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal:&amp;nbsp;&lt;/strong&gt;To engage and also create more buzz.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Approximately $5,000&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;8. Infographic&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The popularity of the infographics was taken into account and &amp;nbsp;resulted in reviewers and bloggers embedding it in their sites. He hired Column Five to create the graphic which provides an overview of the book in one image.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center; vertical-align: baseline;"&gt;&lt;a href="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Infographic.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;"&gt;&lt;img alt="Guy Kawasaki Infographic" class="aligncenter size-full wp-image-12085" height="342" src="http://www.jeffbullas.com/wp-content/uploads/2011/05/Guy-Kawasaki-Infographic.png" style="border-bottom-style: none; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-color: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; border-width: initial; border-width: initial; border-width: initial; display: block; font-family: inherit; font-size: 14px; font-style: inherit; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Guy Kawasaki Infographic" width="407" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal:&amp;nbsp;&lt;/strong&gt;To provide a media that could go ‘viral’.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Approximately$2,000&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;9. PowerPoint&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;He had created a PowerPoint presentation &amp;nbsp;that would not only be used at key note presentations but would also be published on Slideshare and spread the brand and buzz.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;So far it has been&lt;/div&gt;&lt;ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 10px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Viewed over 40,000 times&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Favorited over 180 times&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Embedded in over 90 websites&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ReTweeted 81 times&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Shared on Facebook 126 times&lt;/li&gt;&lt;/ul&gt;&lt;div id="__ss_5674917" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 13px; font-style: 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; vertical-align: baseline; width: 425px;"&gt;&lt;strong&gt;&lt;a href="http://www.slideshare.net/GKawasaki/enchantment-v2" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 13px; font-style: inherit; 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; vertical-align: baseline;" title="Enchantment v3.0"&gt;Enchantment v3.0&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" height="355" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 13px; font-style: 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; vertical-align: baseline;" width="425"&gt;&lt;embed id="__sse5674917" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=enchantment11022010-101105024514-phpapp02&amp;amp;stripped_title=enchantment-v2&amp;amp;userName=GKawasaki" name="__sse5674917" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"&gt;&lt;/object&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 13px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px; vertical-align: baseline;"&gt;View more&amp;nbsp;&lt;a href="http://www.slideshare.net/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 13px; font-style: inherit; 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; vertical-align: baseline;"&gt;presentations&lt;/a&gt;&amp;nbsp;from&amp;nbsp;&lt;a href="http://www.slideshare.net/GKawasaki" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 13px; font-style: inherit; 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; vertical-align: baseline;"&gt;Guy Kawasaki&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal&lt;/strong&gt;: Placement on the Slideshare social networking platform to make it easy for people to share and embed&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost:&lt;/strong&gt;&amp;nbsp;Approximately $3,600&lt;/div&gt;&lt;h1 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 30px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 39px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 30px; font-style: 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; vertical-align: baseline;"&gt;10. Slideshow on YouTube&lt;/span&gt;&lt;/h1&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Thank you is a small phrase that produces big results and as a way of saying thank you to all the companies and people involved in the book project launch and promotion he created a slideshow on YouTube. They used&amp;nbsp;&lt;a href="http://animoto.com/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;" target="_blank"&gt;Animoto&lt;/a&gt;&amp;nbsp;to create the slideshow.&lt;/div&gt;&lt;span class="vvqbox vvqyoutube" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; font-family: inherit; font-size: 13px; font-style: inherit; height: 344px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 10px; max-width: 100%; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; visibility: visible !important; width: 425px;"&gt;&lt;object data="http://www.youtube.com/v/_KiJo7zH8uM&amp;amp;rel=0&amp;amp;fs=1&amp;amp;showsearch=0&amp;amp;showinfo=0" height="344" id="vvq-11986-youtube-1" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 13px; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 100%; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; visibility: visible;" type="application/x-shockwave-flash" width="425"&gt;&lt;/object&gt;&lt;/span&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Primary Goal&lt;/strong&gt;: Provide another online digital property that spreads worldwide and as a minimum will be shared by the all the parties mentioned&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Approximately$1,000 for design and $50 a month for the software (professional edition)&lt;/div&gt;&lt;h2 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 24px; font-style: inherit; font-variant: normal; letter-spacing: 0px; line-height: 31px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: left; text-transform: none; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 24px; font-style: 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; vertical-align: baseline;"&gt;Total Cost: Approximately $50,000&lt;/span&gt;&lt;/h2&gt;&lt;h3 style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 18px; font-style: inherit; font-variant: normal !important; letter-spacing: 0px; line-height: 28px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-transform: none !important; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 18px; font-style: 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; vertical-align: baseline;"&gt;(Including $16,000 for books from the publisher and $34,000 by Guy)&lt;/span&gt;&lt;/h3&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;This could be reduced significantly by doing some of this yourself and also focusing on the channels that provide the greatest leverage.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The major takeaway is that you need to build a tribe before you launch any product or book. Guy Kawasaki has worked over the years to build his tribe and here is a snapshot of its size.&lt;/div&gt;&lt;ul style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 10px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Twitter: 351,000 followers&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Email subscribers: 130,000&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Bloggers: 20,000&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 14px; font-style: inherit; list-style-type: disc; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Facebook: 52,000&lt;/li&gt;&lt;/ul&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Have you started growing your tribe?&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;This case study was sourced from Guy’s own article about his book launch on&amp;nbsp;&lt;a href="http://mashable.com/2011/03/30/product-launch-social-media/#comments" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #3a639a; font-family: inherit; font-size: 14px; font-style: inherit; 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; vertical-align: baseline;" target="_blank"&gt;Mashable&lt;/a&gt;.&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: rgb(34, 34, 34) !important; font-family: Arial, sans-serif; font-size: 14px; font-style: inherit; line-height: 22px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-5744562142122792665?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/5744562142122792665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/09/10-ways-to-launch-and-promote-product.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5744562142122792665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5744562142122792665'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/09/10-ways-to-launch-and-promote-product.html' title='10 Ways To Launch and Promote A Product Using Social Media'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3430167256428750187</id><published>2011-09-07T03:16:00.000-07:00</published><updated>2011-09-07T03:26:14.751-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collabnet'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='version control system'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Chapter 1: { RedBean Review } Subversion History</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I have started to deep dive into Subversion and its usage to better understand the architecture and fundamentals which makes them as a critical component in the SDLC process. In this regard, I have planned to blogpost on each chapter i read, which can summarize the core concepts delivered.&lt;br /&gt;&lt;br /&gt;Anyone new to Subversion are recommended to work on the book "Version Control with Subversion" By Ben Collins-Sussman for in-depth knowledge.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Version Control Systems&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Art of Managing changes to information in a standard Repository style. The&amp;nbsp;specialty of the Subversion repo is that it remembers every change ever written to it: every change to every file, and even changes to the directory tree itself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Subversion Timeline&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;CVS was the early and most popular version control system which had lots of pitfalls, By then CollabNet Inc. had a collaboration software suite called SourceCast which used CVS as its initial version control system. CollabNet then had an idea to bring out a new Version control system in the name of Subversion which overcame most of the drawbacks of CVS.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Subversion Features&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unlike CVS, Subversion provides:&lt;/div&gt;&lt;div&gt;a. Directory Versioning&amp;nbsp;&lt;/div&gt;&lt;div&gt;b. True Version History&lt;/div&gt;&lt;div&gt;c. Atomic Commits&amp;nbsp;&lt;/div&gt;&lt;div&gt;d. Versioned Metadata&lt;/div&gt;&lt;div&gt;e. Choice of Network layers&lt;/div&gt;&lt;div&gt;f. Consistent data handling&lt;/div&gt;&lt;div&gt;g. Effective branching and Tagging&lt;/div&gt;&lt;div&gt;h. Hackability&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Subversion Architecture&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-89IZBvSrT08/TmdCpRU5jBI/AAAAAAAAB4E/X0G9QLcGGkQ/s1600/ch01dia1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-89IZBvSrT08/TmdCpRU5jBI/AAAAAAAAB4E/X0G9QLcGGkQ/s400/ch01dia1.png" width="348" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Subversion Components&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;svn&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; The command-line client program&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;svnversion&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A Program for reporting the state of the working copy&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;svnloook&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A tool for inspecting a subversion repository&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;svnadmin&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A tool for creating, tweaking or repairing a subversion repository&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;svndumpfilter&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A Program for filtering subversion repository dumpfile format streams&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;mod_dav_svn&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A plugin-module for the apache HTTP Server, used to make your repository available to others &amp;nbsp; &amp;nbsp;over a network&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;svnserve&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A Custom standalone server program, runnable asa deamon process or invokable by SSH; another way to make your repository available to others over a network&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-3430167256428750187?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/3430167256428750187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/09/chapter-1-redbean-review-subversion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3430167256428750187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3430167256428750187'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/09/chapter-1-redbean-review-subversion.html' title='Chapter 1: { RedBean Review } Subversion History'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-89IZBvSrT08/TmdCpRU5jBI/AAAAAAAAB4E/X0G9QLcGGkQ/s72-c/ch01dia1.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Defence Colony 1st Ave, Ekkatuthangal, Chennai, Tamil Nadu, India</georss:featurename><georss:point>13.021952033258717 80.19779205322266</georss:point><georss:box>13.006481533258718 80.17805105322266 13.037422533258717 80.21753305322265</georss:box></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8312914224600720413</id><published>2011-08-26T04:43:00.000-07:00</published><updated>2011-08-26T04:43:08.579-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='scp'/><title type='text'>SSH and SCP: Howto, tips &amp; tricks</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;This tutorial is about SSH and SCP. You will learn how to connect to a remote host and how to copy between hosts. This tutorial also documents a few important differences between the commands.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Difficulty:&amp;nbsp;&lt;strong style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Basic&lt;/em&gt;&lt;/strong&gt;&lt;span id="more-1" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Before we start: in this tutorial, you will come across both SSH and ssh. The difference is this: SSH is the general protocol, and ssh is the linux SSH client command.&lt;/em&gt;&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="ssh" style="color: #0093ca; 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;"&gt;SSH&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;SSH is some kind of an abbreviation of Secure SHell. It is a protocol that allows secure connections between computers. In this tutorial, we'll be dealing with the ssh command on Linux, the OpenSSH version. Most Linux distributions feature the OpenSSH client today, but if you want to be sure, have a look at the SSH manpage on your system. You can do this by typing:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ man ssh&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Note: this should be done in a terminal. This tutorial assumes that you have some basic terminal knowledge, like knowing how to start a terminal session on your system and being familiar with the basic commands and syntaxes.&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;If it displays something like this&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;NAME&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;ssh - OpenSSH SSH client (remote login program)&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;then you can be quite sure you're running the OpenSSH version. For more background information about SSH, see&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/SSH" style="color: #0093ca; 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;" title="Wikipedia's page about SSH"&gt;http://en.wikipedia.org/wiki/SSH&lt;/a&gt;.&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="the-most-simple-case" style="color: #0093ca; 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;"&gt;The most simple case&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In the most simple case, you can connect to a server that supports ssh with a syntax as short as this:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ ssh yourserver&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Note: If you do not have any ssh server nearby that you can access, you can also try this command with your own computer as a server. To do this, replace "yourserver" with "localhost".&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Of course, yourserver should be replaced by a hostname or an ip address of the server you want to connect to. As you can see in the terminal snippet, I am logged in as rechosen. If you do not specify a username (I'll explain how to do that later in this tutorial), SSH will assume that you want to login with the username you're currently logged in with. So, in this case, SSH will try the username rechosen.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Of course, you need to be sure that the server supports ssh connections. The ssh client tries to connect to port 22 defaultly. This means that, if you want to connect to a remote host with the default settings, you should make sure that, if applicable, port 22 is forwarded to the server you're trying to connect to. You will find more regarding the SSH port further in this tutorial.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Now, back to the command we ran. If the server supports SSH connections and you can reach it by port 22, you should be prompted for a password (if this is the first time you try to connect to the server, ssh will first ask the question if you want to continue connecting, which can generally just be answered with a 'yes'). If you type a password here, you won't see asterisks appearing. Don't panic, this is ssh's normal behaviour. It makes connecting using ssh even more safe, because any accidental spectators won't be able to see the length of the password. After entering the password, if the username and the password were correct, you should be running a shell on the server. If not, make sure you are connecting to a server of which you know that you should be able to login with your username and the specified password. You could try connecting to your own computer (see the note beneath the terminal quote) or read on to learn how to specify an other username.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Once you're done trying the ssh shell, you can exit it by pressing Ctrl + D.&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="specifying-a-username" style="color: #0093ca; 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;"&gt;Specifying a username&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;It's actually quite simple to specify a different username. You might even already be familiar with it. See the following example:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ ssh yourusername@yourserver&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The above will make ssh try to connect with the username "yourusername" instead of (in my case) rechosen. This syntax is also used by a lot of other protocols, so it'll always come in handy to know it. By the way, you will still be asked for a password. For security reasons, it is not even possible to directly specify the password in the syntax. You will always be asked interactively, unless you start configuring the server in an advanced way (which is exactly why that topic is out of this tutorials scope: this tutorial documents how to use the clients, not how to configure the server).&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="specifying-a-port" style="color: #0093ca; 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;"&gt;Specifying a port&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;There are many reasons to move the ssh service to an other port. One of them is avoiding brute-force login attempts. Certain hackers try to get access to ssh servers by trying a lot of common usernames with common passwords (think of a user "john" with password "doe"). Although it is very unlikely that these hackers will ever get access to the system, there is an other aspect of the brute-force attacks that you'll generally want to avoid: the system and connection load. The brute-force attacks usually are done with dozens or even thousands of tries a second, and this unnecessarily slows down the server and takes some bandwidth which could've been used a lot better. By changing the port to a non-default one, the scripts of the hackers will just be refused and most of the bandwidth will be saved.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;As the ssh command can't just guess the port, we will have to specify it if it's not the default 22 one. You can do that this way:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ ssh -p yourport yourusername@yourserver&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Of course, you will have to replace "yourport" with the port number. These is an important difference between ssh and scp on this point. I'll explain it further on.&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="running-a-command-on-the-remote-server" style="color: #0093ca; 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;"&gt;Running a command on the remote server&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Sometimes, especially in scripts, you'll want to connect to the remote server, run a single command and then exit again. The ssh command has a nice feature for this. You can just specify the command after the options, username and hostname. Have a look at this:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ ssh yourusername@yourserver updatedb&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;This will make the server update its searching database. Of course, this is a very simple command without arguments. What if you'd want to tell someone about the latest news you read on the web? You might think that the following will give him/her that message:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ ssh yourusername@yourserver wall "Hey, I just found out something great! Have a look at www.examplenewslink.com!"&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;However, bash will give an error if you run this command:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;bash: !": event not found&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;What happened? Bash (the program behind your shell) tried to interpret the command you wanted to give ssh. This fails because there are exclamation marks in the command, which bash will interpret as special characters that should initiate a bash function. But we don't want this, we just want bash to give the command to ssh! Well, there's a very simple way to tell bash not to worry about the contents of the command but just pass it on to ssh already: wrapping it in single quotes. Have a look at this:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ ssh yourusername@yourserver 'wall "Hey, I just found out something great! Have a look at www.examplenewslink.com!"'&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The single quotes prevent bash from trying to interpret the command, so ssh receives it unmodified and can send it to the server as it should. Don't forget that the single quotes should be around the whole command, not anywhere else.&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="scp" style="color: #0093ca; 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;"&gt;SCP&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The scp command allows you to copy files over ssh connections. This is pretty useful if you want to transport files between computers, for example to backup something. The scp command uses the ssh command and they are very much alike. However, there are some important differences.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The scp command can be used in three* ways: to copy from a (remote) server to your computer, to copy from your computer to a (remote) server, and to copy from a (remote) server to another (remote) server. In the third case, the data is transferred directly between the servers; your own computer will only tell the servers what to do. These options are very useful for a lot of things that require files to be transferred, so let's have a look at the syntax of this command:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ scp examplefile yourusername@yourserver:/home/yourusername/&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Looks quite familiar, right? But there are differences. The command above will transfer the file "examplefile" to the directory "/home/yourusername/" at the server "yourserver", trying to get ssh acces with the username "yourusername". That's quite a lot information, but scp really needs it all. Well, almost all of it. You could leave out the "yourusername@" in front of "yourserver", but only if you want to login on the server with your current username on your own computer. Let's have a closer look at the end of the command. There's a colon over there, with a directory after it. Just like Linux's normal cp command, scp will need to know both the source file(s) and the target directory (or file). For remote hosts, the file(s)/directory are given to the scp command is this way.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You can also copy a file (or multiple files) from the (remote) server to your own computer. Let's have a look at an example of that:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ scp yourusername@yourserver:/home/yourusername/examplefile .&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Note: The dot at the end means the current local directory. This is a handy trick that can be used about everywhere in Linux. Besides a single dot, you can also type a double dot ( .. ), which is the parent directory of the current directory.&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;This will copy the file "/home/yourusername/examplefile" to the current directory on your own computer, provided that the username and password are correct and that the file actually exists.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You probably already guessed that the following command copies a file from a (remote) server to another (remote) server:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ scp yourusername@yourserver:/home/yourusername/examplefile yourusername2@yourserver2:/home/yourusername2/&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Please note that, to make the above command work, the servers&amp;nbsp;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;must&lt;/em&gt;&amp;nbsp;be able to reach each other, as the data will be transferred directly between them. If the servers somehow can't reach each other (for example, if port 22 is not open on one of the sides) you won't be able to copy anything. In that case, copy the files to your own computer first, then to the other host. Or make the servers able to reach each other (for example by opening the port).&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Well, those are the main uses of scp. We'll now go a bit more in-depth about the differences between ssh and scp.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;*:&amp;nbsp;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Actually you can also use it just like the normal cp command, withhout any ssh connections in it, but that's quite useless. It requires you to type an extra 's' =).&lt;/em&gt;&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="specifying-a-port-with-scp" style="color: #0093ca; 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;"&gt;Specifying a port with scp&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The scp command acts a little different when it comes to ports. You'd expect that specifying a port should be done this way:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ scp -p yourport yourusername@yourserver:/home/yourusername/examplefile .&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;However, that will not work. You will get an error message like this one:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;cp: cannot stat `yourport': No such file or directory&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;This is caused by the different architecture of scp. It aims to resemble cp, and cp also features the -p option. However, in cp terms it means 'preserve', and it causes the cp command to preserve things like ownership, permissions and creation dates. The scp command can also preserve things like that, and the -p option enables this feature. The port specification should be done with the -P option. Therefore, the following command will work:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ scp -P yourport yourusername@yourserver:/home/yourusername/examplefile .&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Also note that the -P option&amp;nbsp;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;must&lt;/em&gt;&amp;nbsp;be in front of the (remote) server. The ssh command will still work if you put -p yourport behind the host syntax, but scp won't. Why? Because scp also supports copying between two servers and therefore needs to know&amp;nbsp;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;which&lt;/em&gt;&amp;nbsp;server the -P option applies to.&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="another-difference-between-scp-and-ssh" style="color: #0093ca; 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;"&gt;Another difference between scp and ssh&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Unlike ssh, scp cannot be used to run a command on a (remote) server, as it already uses that feature of ssh to start the scp server on the host. The scp command does have an option that accepts a program (the -S option), but this program will then be used instead of ssh to establish the encrypted connection, and it will not be executed on the remote host.&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="tips-tricks-with-ssh-and-scp" style="color: #0093ca; 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;"&gt;Tips &amp;amp; Tricks with ssh and scp&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Quite a handy thing about scp is that it supports asterisks. You can copy all files in a remote directory in a way like this:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ scp yourusername@yourserver:/home/yourusername/* .&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;And you can also just copy a whole directory by specifying the -r (recursive) option:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ scp -r yourusername@yourserver:/home/yourusername/ .&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Both of these also work when copying to a (remote) server or copying between a (remote) server and another (remote) server.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The ssh command can come in handy if you don't know the exact location of the file you want to copy with scp. First, ssh to the (remote) server:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ ssh yourusername@yourserver&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Then browse to the right directory with cd. This is essential Linux terminal knowledge, so I won't explain it here. When you're in the right directory, you can get the full path with this command:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[rechosen@localhost ~]$ pwd&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Note: pwd is an abbreviation of Print Working Directory, which is a useful way to remember the command.&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You can then copy this output, leave the ssh shell by pressing Ctrl + D, and then paste the full directory path in your scp command. This saves a lot of remembering and typing!&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You can also limit the bandwidth scp may use when copying. This is very useful if you're wanting to copy a huge amount of data without suffering from slow internet for a long time. Limiting bandwidth is done this way:&lt;/div&gt;&lt;blockquote style="background-color: black; color: white; font-family: monospace; margin-bottom: 0px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;scp -l bandwidthlimit yourusername@yourserver:/home/yourusername/* .&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The bandwidth is specified in Kbit/sec. What does this mean? Eight bits is one byte. If you want to copy no faster than 10 Kbyte/sec, set the limit to 80. If you want to copy no faster than 80 Kbyte/sec, set the limit to 640. Get it? You should set the limit to eight times the maximum Kbyte/sec you want it to be. I'd recommend to set the -l option with all scp'ing you do on a connection that other people need to use, too. A big amount of copying can virtually block a whole 10 Mbit network if you're using hubs.&lt;/div&gt;&lt;h2 style="color: #333333; font-size: 20px; letter-spacing: -1px; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px;"&gt;&lt;a href="" name="final-words" style="color: #0093ca; 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;"&gt;Final Words&lt;/a&gt;&lt;/h2&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Well, that was it! I hope you learned a lot. Of course, you can always have a quick look at this tutorial again if you forgot something. Please tell other people who might be interested about this tutorial, you'll help this blog to grow if you do =). Thank you for reading and have a lot of fun with your new knowledge!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8312914224600720413?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8312914224600720413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/ssh-and-scp-howto-tips-tricks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8312914224600720413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8312914224600720413'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/ssh-and-scp-howto-tips-tricks.html' title='SSH and SCP: Howto, tips &amp; tricks'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-1748834743582169436</id><published>2011-08-17T09:25:00.000-07:00</published><updated>2011-08-17T09:25:57.845-07:00</updated><title type='text'>Create a Compelling Resume Online With WordPress</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt; 		 	 		 		 			 					 			 			 				&lt;br /&gt;&lt;div class="wp-caption alignright" id="attachment_98" style="width: 310px;"&gt;&lt;a href="http://gator1028.hostgator.com/%7Edipietro/wp-content/uploads/2009/01/stand-out.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img alt="stand out 300x199 Create a Compelling Resume Online With WordPress" class="size-medium wp-image-98" height="199" src="http://www.domesticatingit.com/wp-content/uploads/2009/01/stand-out-300x199.jpg" title="stand-out" width="300" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;Do you stand out?&lt;/div&gt;&lt;div class="wp-caption-text"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;Here’s a news flash – the economy is a little rough these days. &amp;nbsp;With  the unemployment rate creeping up, it’s a time when you need to be  clear about what you can bring to a prospective employer or client and,  above all, to stand out from the competition. &amp;nbsp;Fortunately, it’s cheaper  and easier than ever to make yourself “present with authority.”&lt;br /&gt;&lt;br /&gt;One of my new year’s resolutions was to get my online identity sorted  out, which means making the most of the available tools and delivering a  consistent message.  After taking inventory of the various professional  sites to which I belong (e.g.&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/1439229635?tag=domeit-20" id="aptureLink_hI1nwZv9LQ"&gt;LinkedIn&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.crunchbase.com/company/visualcv" id="aptureLink_L0lNwzWPjQ"&gt;VisualCV&lt;/a&gt;),  I decided that I needed an aggregator to take charge and deliver my  message, my way, in my style.  I had registered my own name as a domain  many years ago but not done anything with it, and so I decided to use&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/1847195326?tag=domeit-20" id="aptureLink_Xwl2fMRN7b"&gt;WordPress&lt;/a&gt; to &lt;a href="http://www.jondipietro.com/" target="_blank"&gt;tell my professional story&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;What Are the Benefits?&lt;/h2&gt;If you think about your career as a product that you’re selling,  wouldn’t it make perfect sense to have a web site?  Of course it does,  and you want your personal brand to have the same benefits:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;More and more, clients and employers are performing online searches  to learn more about the people with which they are considering to  engage.  Having a search engine friendly web site makes it more likely  they will find you.&lt;/li&gt;&lt;li&gt;Indexing your experience through the use of keywords makes it easy  for people to zero in on the skills and/or expertise in which they’re  interested (more about that later).&lt;/li&gt;&lt;li&gt;Multimedia capabilities (i.e. images, video, presentations, links)  make it easier for you to tell your story in a vivid and interesting  way.&lt;/li&gt;&lt;li&gt;You can use specialized links to direct people to specific content areas of your profile.&lt;/li&gt;&lt;li&gt;While this practice may soon be common place, for the moment at least it will help you to stand out from the crowd.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Laying the Groundwork&lt;/h2&gt;The first decision is your domain name.  One option is to use&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Blogger%20%28service%29" id="aptureLink_F1F1DkskwM"&gt;Blogger&lt;/a&gt;  or WordPress.org (e.g. jondipietro.wordpress.org), which is free.   However, for the few dollars a year it costs you are far better off&amp;nbsp;&lt;a href="http://www.domesticatingit.com/index.php/2009/01/01/the-21st-century-land-grab/" id="aptureLink_UIGSb9GbjF"&gt;registering your own domain name&lt;/a&gt;;  preferably your first and last names if available.  This article will  discuss building your online resume using WordPress on your own hosted  site.&lt;br /&gt;Once the basic WordPress installation is in place, the first thing you’ll want to do is to find a clean,&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/1847193099?tag=domeit-20" id="aptureLink_J6EULkyjOl"&gt;professional theme&lt;/a&gt; and install it.  There are a number of plugins that I install on every WordPress site right out of the gate:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.addtoany.com/" id="aptureLink_lZqEf11bzB"&gt;Add to Any Sharing and Subscribing buttons&lt;/a&gt;:  Makes it easy for visitors to share, save, bookmark, and/or subscribe to your site.&lt;/li&gt;&lt;li&gt;&lt;a href="http://semperfiwebdesign.com/" id="aptureLink_VnpImMWumu"&gt;All in One SEO Pack&lt;/a&gt; :  Provides a bunch of handy tools to make your site more search engine friendly.&lt;/li&gt;&lt;li&gt;&lt;a href="http://ideasilo.wordpress.com/2007/04/30/contact-form-7/" id="aptureLink_hNxxo2HhwQ"&gt;Contact Form 7&lt;/a&gt; :  Create customized forms for visitors to send you messages.&lt;/li&gt;&lt;li&gt;&lt;a href="http://wordpress.org/extend/plugins/exclude-pages/" id="aptureLink_0guZfh0gVE"&gt;Exclude Pages from Navigation&lt;/a&gt; : Allows you to easily build landing pages.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.feedburner.com/fb/a/help/wordpress_quickstart" id="aptureLink_BwKbDJxmlz"&gt;FeedBurner FeedSmith&lt;/a&gt; :  Synchs your blog with FeedBurner.&lt;/li&gt;&lt;li&gt;&lt;a href="http://wordpress.org/extend/plugins/google-analyticator/" id="aptureLink_4jAnqtwvsS"&gt;Google Analyticator&lt;/a&gt; :  Installs the Google Analytics script on your site so you can track traffic.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.arnebrachhold.de/redir/sitemap-home/" id="aptureLink_SxGqxDkPom"&gt;Google XML Sitemaps&lt;/a&gt; :  Creates the XML site map files that makes it easier for Google to discover pages on your site.&lt;/li&gt;&lt;li&gt;&lt;a href="http://wordpress.org/extend/plugins/simple-tags" id="aptureLink_aOYG2qvnPc"&gt;Simple Tags&lt;/a&gt; :  Makes it really easy to manage the tags that you’ll use to mark your areas of expertise.&lt;/li&gt;&lt;li&gt;&lt;a href="http://yoast.com/wordpress/slideshare/" id="aptureLink_fn4ARhVUrN"&gt;SlideShare&lt;/a&gt; : Allows you to embed SlideShare presentations.&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.maybe5.com/?page_id=94" id="aptureLink_fEOc4yaON5"&gt;Social Links&lt;/a&gt; : Display buttons with links to your social networking sites in the sidebar.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ilfilosofo.com/blog/wp-db-backup" id="aptureLink_InscrwZ2vh"&gt;WordPress Database Backup&lt;/a&gt; : Ounce of prevention, and all that…&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.callum-macdonald.com/code/wp-mail-smtp/" id="aptureLink_hzNqHOkCsm"&gt;WP-Mail-SMTP&lt;/a&gt; :&amp;nbsp;Reconfigures the wp_mail() function to use SMTP instead of mail().&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;h2&gt;Turn the Page&lt;/h2&gt;Now it’s time to set up the pages. &amp;nbsp;I decided on the following site map:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Home&lt;/li&gt;&lt;li&gt;About Me &lt;ul&gt;&lt;li&gt;Work History&lt;/li&gt;&lt;li&gt;Skills&lt;/li&gt;&lt;li&gt;Volunteerism&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Experience&lt;/li&gt;&lt;li&gt;Companies&lt;/li&gt;&lt;li&gt;Social Networks&lt;/li&gt;&lt;li&gt;Contact Me&lt;/li&gt;&lt;/ul&gt;The tricky thing about this is that, by default, WordPress publishes  blog articles to the front page of the site. &amp;nbsp;In order to implement my  strategy, it’s important to change that. &amp;nbsp;You can do this on the Reading  Settings page by selecting “Home” for your front page and “Experience”  as the posts page.&lt;br /&gt;&lt;div class="wp-caption aligncenter" id="attachment_102" style="width: 310px;"&gt;&lt;a href="http://gator1028.hostgator.com/%7Edipietro/wp-content/uploads/2009/01/reading-settings.png"&gt;&lt;img alt="reading settings 300x137 Create a Compelling Resume Online With WordPress" class="size-medium wp-image-102" height="137" src="http://www.domesticatingit.com/wp-content/uploads/2009/01/reading-settings-300x137.png" title="reading-settings" width="300" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;Change the default settings for the front and posts pages.&lt;/div&gt;&lt;/div&gt;Next, you’ll need to populate the Home, About Me, Work Experience,  and Skills pages. &amp;nbsp;The Home page functions as a sort of generic cover  letter, while the other pages represent the customary sections of a  resume. &amp;nbsp;However, you have the freedom to be a little more creative and  verbose in this environment than on a paper resume.&lt;br /&gt;What you don’t see in the site map (or in the menu) is my social  networking landing page. &amp;nbsp;Another benefit of having your own web site is  the ability to create landing pages from other sites that allow you to  customize messages and, again, tell your story. &amp;nbsp;For example, Twitter  provides very little space to customize your profile but they do allow  you to enter a web site URL that you can point to a customized landing  page. &amp;nbsp;This is where the “Exclude Pages from Navigation Menu” plugin  comes in handy.&lt;br /&gt;&lt;h2&gt;Rubber Meets Road&lt;/h2&gt;&lt;div class="wp-caption alignright" id="attachment_103" style="width: 280px;"&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://gator1028.hostgator.com/%7Edipietro/wp-content/uploads/2009/01/tag-cloud.png"&gt;&lt;img alt="tag cloud 270x300 Create a Compelling Resume Online With WordPress" class="size-medium wp-image-103" height="300" src="http://www.domesticatingit.com/wp-content/uploads/2009/01/tag-cloud-270x300.png" title="tag-cloud" width="270" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="wp-caption-text"&gt;Skills, experiences, clients, etc... are displayed in the tag cloud widget.&lt;/div&gt;&lt;/div&gt;The power of this approach now takes shape as you create blog posts  to describe specific projects, publications, and experiences. &amp;nbsp;The key  is carefully selected categories and liberal use of tags for the posts.  &amp;nbsp;This will allow employers and/or clients to quickly zero in on the  topics in which they are interested. &amp;nbsp;And since you’re making it easy to  find the information they’re looking for, you can feel free to include  lots of details, making them as interactive as possible. &amp;nbsp;You’ll want to  include the Simple Tags tag could widget in the sidebar.&lt;br /&gt;The categories are also important and you can use them to organize  your pages and posts at a higher level than the tags. &amp;nbsp;How and where the  categories are displayed is somewhat dependent upon your theme. &amp;nbsp;Some  themes display them as menu itmes while others are displayed in the  sidebar and is a matter of your personal preference.&lt;br /&gt;&lt;h2&gt;Shout It Out Loud&lt;/h2&gt;Once your online resume is good to go, you can send out customized  links to direct people straight to a particular area of interest. &amp;nbsp;For  example, if I’m looking to secure a consulting contract for VB.NET  development, I could send the following in an email:&lt;br /&gt;&lt;blockquote&gt;“Please see the &lt;a href="http://www.jondipietro.com/tag/vbnet/" target="_blank"&gt;VB.NET&lt;/a&gt; projects listed on my &lt;a href="http://www.jondipietro.com/" target="_blank"&gt;online resume&lt;/a&gt;.”&lt;/blockquote&gt;The “VB.NET” link is&amp;nbsp;&lt;em&gt;http://www.jondipietro.com/tag/vbnet&lt;/em&gt;,  which will automatically display a list of all pages or posts that were  tagged with the VB.NET keyword. &amp;nbsp;You can begin to see how easy it is to  send customized links to employers and clients that zoom right in to the  areas on which you want them focused.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;As I mentioned, I didn’t initially set out to create an online resume  but once I started putting the idea together it became clear how  compelling and useful this approach can be. &amp;nbsp;But I’m interested to hear  about other creative ideas for leveraging this medium, so leave some  comments. &amp;nbsp;Oh, and feel free to share a link to your own online resume.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-1748834743582169436?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/1748834743582169436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/create-compelling-resume-online-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1748834743582169436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1748834743582169436'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/create-compelling-resume-online-with.html' title='Create a Compelling Resume Online With WordPress'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-2202161924101767053</id><published>2011-08-07T23:28:00.000-07:00</published><updated>2011-08-07T23:28:43.592-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress hackz'/><title type='text'>Easy Page-Specific WordPress Sidebars</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In yet another step to make WordPress function &lt;strong&gt;more like a CMS than a simple blog&lt;/strong&gt;, there is a recently updated plugin that I think is worth noting. &lt;br /&gt;&lt;strong&gt;By default, the WordPress sidebar remains identical on every single page of your web site. &lt;/strong&gt;However,  sometimes we need to be able to have a specific sidebars for different  pages. For example, maybe you have a “Products” page that needs  testimonials along the sidebar while your “About Us” page sidebar needs  to display a listing of awards.&lt;br /&gt;&lt;span id="more-1843"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/h4&gt;&lt;strong&gt;The Advanced Way:&lt;br /&gt;&lt;/strong&gt;Create a separate page template with it’s own sidebar widget  function. Alternately, you could include a conditional statement in your  sidebar.php to display different sidebars depending on the page that’s  being displayed.&lt;br /&gt;&lt;em&gt;If none of what I’m saying makes any sense to you, then you’ll probably want…&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;The “Regular Folks” Way:&lt;/strong&gt;&lt;br /&gt;Simply download the Per Page Sidebars plugin at&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/per-page-sidebars" target="_blank"&gt;http://wordpress.org/extend/plugins/per-page-sidebars&lt;/a&gt;.&lt;br /&gt;Once it’s installed, you’ll notice that at the bottom of each of your  pages is a box titled “Custom Sidebar” (see image below). To set up a  unique custom sidebar for the page that you’re creating, simply check  the “Activate Custom Sidebar” box, and select which of the sidebar  widget areas you’d like to replace.&amp;nbsp;In the screenshot below, we’re  replacing the “Primary Widget Area” – which is the sidebar that goes at  the upper right-hand side of every page.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" class="aligncenter" height="191" src="http://www.magneticwebworks.com/wp-content/uploads/per_page.jpg" style="border: 1px solid;" title="per_page" width="394" /&gt;&lt;/div&gt;Now go into the “Widgets” page of your admin, and you’ll see a new  widget area labled “PPS-” followed by the name of the page with the  page-specific sidebar.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="" class="aligncenter size-full wp-image-1853" height="450" src="http://www.magneticwebworks.com/wp-content/uploads/widgets.jpg" style="border: 1px solid;" title="widgets" width="353" /&gt;&lt;/div&gt;&lt;h4&gt;&lt;strong&gt;A couple of things to consider:&lt;/strong&gt;&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;At this time the plugin only allows you to set up custom sidebars for pages, and &lt;strong&gt;&lt;em&gt;not&lt;/em&gt; for posts or custom post types.&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Removing a custom sidebar widget was a little bit&amp;nbsp;unintuitive. To do so, simply go to the page with the custom sidebar, and &lt;strong&gt;uncheck not only the “Activate Custom Sidebar?” checkbox, but &lt;em&gt;also&lt;/em&gt; the radio button next to the name of the sidebar that your custom sidebar was replacing.&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-2202161924101767053?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/2202161924101767053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/easy-page-specific-wordpress-sidebars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2202161924101767053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2202161924101767053'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/easy-page-specific-wordpress-sidebars.html' title='Easy Page-Specific WordPress Sidebars'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3864649603618655632</id><published>2011-08-07T04:54:00.000-07:00</published><updated>2011-08-07T04:54:16.616-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hackz'/><category scheme='http://www.blogger.com/atom/ns#' term='wordpress 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy code'/><title type='text'>How to fix the ‘The plugin does not have a valid header’ error when activating a WordPress plugin</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;You want to extend WordPress’ functionality and decided to download some plugins found in the &lt;a href="http://wordpress.org/extend/plugins/"&gt;Official WordPress Plugin&lt;/a&gt;  repository. After searching the repo, you’ve found two plugins that  accomplishes the tasks you needed to implement in your blog. Downloading  the plugins gives you two ZIP files that when double-clicked, shows you  the contents in the following format:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;plugin-a.zip&lt;/b&gt;&lt;br /&gt;&lt;pre style="white-space: pre;"&gt;plugin-a-folder&lt;br /&gt;---- plugin-a-main-file.php&lt;br /&gt;---- plugin-a-readme.txt&lt;/pre&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;b&gt;plugin-b.zip&lt;/b&gt;&lt;br /&gt;&lt;pre style="white-space: pre;"&gt;plugin-b-folder&lt;br /&gt;---- plugin-b-subfolder&lt;br /&gt;-------- plugin-b-main-file.php&lt;br /&gt;-------- plugin-b-readme.txt&lt;/pre&gt;&lt;/blockquote&gt;&lt;span id="more-420"&gt;&lt;/span&gt;There are two ways to install a plugin. &lt;b&gt;Option 1&lt;/b&gt; is to unzip the file and upload the contents to &lt;code&gt;wordpress_root/wp-content/plugins/&lt;/code&gt; directory. &lt;b&gt;Option 2&lt;/b&gt; is to use the &lt;code&gt;Add New -&amp;gt; Upload&lt;/code&gt;  option found in the left panel bar of the administrative page of  WordPress. Let’s assume the two plugins went through the two  installation options.&lt;br /&gt;&lt;h4&gt;Installing ‘plugin-a.zip’ using Option 1&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Unzip the file&lt;/li&gt;&lt;li&gt;Upload the contents to &lt;code&gt;wordpress_root/wp-content/plugins/&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Login as admin and go to &lt;code&gt;Plugins -&amp;gt; Installed&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Locate plugin and click &lt;span style="text-decoration: underline;"&gt;Activate&lt;/span&gt; link.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Result:&lt;/b&gt; &lt;div style="-moz-border-radius: 3px 3px 3px 3px; background: #FFFFE0; border: 1px solid #E6DB55; display: inline; padding: 3px 10px;"&gt;Plugin &lt;b&gt;activated.&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Installing ‘plugin-a.zip’ using Option 2&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Login as admin and go to &lt;code&gt;Plugins -&amp;gt; Add New -&amp;gt; Upload&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Locate the file &lt;code&gt;plugin-a.zip&lt;/code&gt; by clicking the &lt;i&gt;Browse&lt;/i&gt; button.&lt;/li&gt;&lt;li&gt;Click &lt;i&gt;Install Now&lt;/i&gt; button.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Result:&lt;/b&gt;&lt;br /&gt;Unpacking the package?&lt;br /&gt;Installing the plugin?&lt;br /&gt;Plugin installed successfully.  &lt;/li&gt;&lt;li&gt;Click &lt;span style="text-decoration: underline;"&gt;Activate Plugin&lt;/span&gt; link.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Result:&lt;/b&gt; &lt;div style="-moz-border-radius: 3px 3px 3px 3px; background: #FFFFE0; border: 1px solid #E6DB55; display: inline; padding: 3px 10px;"&gt;Plugin &lt;b&gt;activated.&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Installing ‘plugin-b.zip’ using Option 1&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Unzip the file&lt;/li&gt;&lt;li&gt;Upload the contents to &lt;code&gt;wordpress_root/wp-content/plugins/&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Login as admin and go to &lt;code&gt;Plugins -&amp;gt; Installed&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Locate plugin and click &lt;span style="text-decoration: underline;"&gt;Activate&lt;/span&gt; link.&lt;/li&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;Error:&lt;/b&gt; Plugin does not exists in the list.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Installing ‘plugin-b.zip’ using Option 2&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Login as admin and go to &lt;code&gt;Plugins -&amp;gt; Add New -&amp;gt; Upload&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Locate the file &lt;code&gt;plugin-b.zip&lt;/code&gt; by clicking the &lt;i&gt;Browse&lt;/i&gt; button.&lt;/li&gt;&lt;li&gt;Click &lt;i&gt;Install Now&lt;/i&gt; button.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Result:&lt;/b&gt;&lt;br /&gt;Unpacking the package?&lt;br /&gt;Installing the plugin?&lt;br /&gt;Plugin installed successfully.  &lt;/li&gt;&lt;li&gt;Click &lt;span style="text-decoration: underline;"&gt;Activate Plugin&lt;/span&gt; link.&lt;/li&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;WordPress ? Error&lt;/b&gt;&lt;/span&gt; &lt;div style="-moz-border-radius: 11px 11px 11px 11px; background: #FFFFFF; border: 1px solid #DFDFDF; color: #333333; display: block; font-family: 'Lucida Grande',Verdana,Arial,'Bitstream Vera Sans',sans-serif; padding: 1em 2em;"&gt;The plugin does not have a valid header.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;Based on our testing, &lt;code&gt;plugin-b.zip&lt;/code&gt; seems to fail on both  methods of installation. To find out what is causing the error, we have  to understand how the plugin installation works. Upon checking the core  files I found this excerpt in &lt;b&gt;get_plugins()&lt;/b&gt; function:&lt;br /&gt;&lt;blockquote&gt;* WordPress only supports plugin files in the base plugins directory&lt;br /&gt;* (wp-content/plugins) and in one directory above the plugins directory&lt;br /&gt;* (wp-content/plugins/my-plugin). The file it looks for has the plugin data and&lt;br /&gt;* must be found in those two locations. It is recommended that do keep your&lt;br /&gt;* plugin files in directories.&lt;/blockquote&gt;The plugin data that the function is looking for can be found below:&lt;br /&gt;&lt;div class="syntaxhighlighter  " id="highlighter_240219"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="plain"&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;/*&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;Plugin Name: Name Of The Plugin&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;Plugin URI: &lt;a href="http://uri_of_page_describing_plugin_and_updates/"&gt;http://URI_Of_Page_Describing_Plugin_and_Updates&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;Description: A brief description of the Plugin.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;Version: The Plugin's Version Number, e.g.: 1.0&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;Author: Name Of The Plugin Author&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;Author URI: &lt;a href="http://uri_of_the_plugin_author/"&gt;http://URI_Of_The_Plugin_Author&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;License: A "Slug" license name e.g. GPL2&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="plain"&gt;?&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;So in order to properly install and activate a plugin, the following two conditions must be satisfied:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;that a plugin main file (.php) must be placed in &lt;code&gt;plugins&lt;/code&gt; root folder or in &lt;b&gt;first-level subdirectory within plugins folder&lt;/b&gt;&lt;/li&gt;&lt;li&gt;and it should contain the necessary plugin data for identification/validation purposes&lt;/li&gt;&lt;/ul&gt;In the case of &lt;code&gt;plugin-b.zip&lt;/code&gt;, although the main PHP file contains the needed plugin data, the &lt;b&gt;validate_plugin()&lt;/b&gt;  function returned an error since neither the file can be found or check  if it contains the plugin data because it is placed in the &lt;b&gt;second level subdirectory&lt;/b&gt;, &lt;span style="text-decoration: underline;"&gt;a directory location in which the function is not designed to scan the content.&lt;/span&gt;&lt;br /&gt;To fix the &lt;code&gt;plugin-b.zip&lt;/code&gt; file, it needs to have the following content structure:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;plugin-b.zip&lt;/b&gt;&lt;br /&gt;&lt;pre style="white-space: pre;"&gt;plugin-b-folder&lt;br /&gt;---- plugin-b-main-file.php&lt;br /&gt;---- plugin-b-readme.txt&lt;/pre&gt;&lt;/blockquote&gt;I hope this post will enlighten WordPress users who wants to maximize their blog’s potential &lt;img alt=":)" class="wp-smiley" src="http://mysillypointofview.richardferaro.com/wp-includes/images/smilies/icon_smile.gif" /&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-3864649603618655632?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/3864649603618655632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/how-to-fix-the-plugin-does-not-have.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3864649603618655632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3864649603618655632'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/how-to-fix-the-plugin-does-not-have.html' title='How to fix the ‘The plugin does not have a valid header’ error when activating a WordPress plugin'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-153286643316768880</id><published>2011-08-04T21:19:00.000-07:00</published><updated>2011-08-04T21:19:20.179-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='follow santhosh  madhavan'/><category scheme='http://www.blogger.com/atom/ns#' term='joomla 1.7'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS Expert Review'/><category scheme='http://www.blogger.com/atom/ns#' term='content management system'/><category scheme='http://www.blogger.com/atom/ns#' term='open source CMS'/><title type='text'>What is new in Joomla 1.7 vs Joomla 1.6?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 16px; line-height: 24px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The Joomla team &amp;nbsp;recently&lt;a href="http://www.joomla.org/announcements/release-news/5380-joomla-170-released.html" style="color: #3990bd; text-decoration: none;" target="_blank"&gt;announced Joomla 1.7&lt;/a&gt;&amp;nbsp;is now stable for live sites. &amp;nbsp;This new version fixes a variety of issues with Joomla 1.6 as well as introduces the ability to upgrade to future versions from within the Administrator panel.&lt;/div&gt;&lt;blockquote style="font-family: Georgia, 'Times New Roman', Times, serif; font-size: 21px; font-style: italic; margin-bottom: 10px; margin-left: 15px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;No more uploading via FTP, hooray!&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;This marks the first step towards a upgrade&amp;nbsp;system&amp;nbsp;that is similar to WordPress, thus making your life as an administrator easier. &amp;nbsp;The Joomla 1.7 release does not bring a huge amount of changes, but it is a vital step in the right direction for Joomla and it’s new release schedule. &amp;nbsp;In this article I will cover what is new, if you need to upgrade, and why I used such an ugly graphic for this post.&lt;/div&gt;&lt;h2 style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 2px; color: black; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 25px; font-weight: normal; line-height: 25px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;What are the newest and biggest features?&lt;/h2&gt;&lt;ul style="margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 30px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;One click upgrades&lt;/strong&gt;&amp;nbsp;– Starting from Joomla 1.6 you can upgrade your install by going to: &amp;nbsp;&lt;em&gt;Extensions -&amp;gt; Extension Manager -&amp;gt; Update -&amp;gt; Find updates.&lt;/em&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;Faster release cycles -&lt;/strong&gt;&amp;nbsp;Short term releases will be changing every six months and only supported for one month after the next release.&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;Multi-Language improvements&lt;/strong&gt;&amp;nbsp;– Associate menu items to&amp;nbsp;different&amp;nbsp;languages.&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;There are a variety of other minor changes that you can review on the official&lt;a href="http://www.joomla.org/17" style="color: #3990bd; text-decoration: none;" target="_blank"&gt;Joomla 1.7 page&lt;/a&gt;.&lt;/div&gt;&lt;div class="wp-caption aligncenter" style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 18px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 473px;"&gt;&lt;a href="http://www.joomla.org/17" style="color: #3990bd; text-decoration: none;" target="_blank"&gt;&lt;img alt="joomla upgrade to 1.7 easily" height="294" src="http://www.ijoomla.com/images/screencaps/matt/2011-07-27_0814.png" style="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: 5px; margin-right: 5px; margin-top: 5px;" title="one click upgrades for Joomla 1.7" width="463" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text" style="background-attachment: initial; background-clip: initial; background-color: #f0f0f0; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #555555; font-size: 12px; margin-bottom: 5px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Thank you Joomla&lt;/div&gt;&lt;/div&gt;&lt;blockquote style="font-family: Georgia, 'Times New Roman', Times, serif; font-size: 21px; font-style: italic; margin-bottom: 10px; margin-left: 15px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;h3 style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 2px; color: black; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Do I really need&amp;nbsp;to&amp;nbsp;upgrade?&lt;/h3&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Depending on what&amp;nbsp;version&amp;nbsp;of Joomla your site(s) are on now, this may be the last time you have to do a “scary upgrade”. &amp;nbsp; Scary meaning doing it all via FTP and hoping you&amp;nbsp;didn’t&amp;nbsp;miss any upgrade instructions or caveats. &amp;nbsp;Upgrading is really easy since J1.6, so this&amp;nbsp;shouldn’t&amp;nbsp;be a huge deal.&lt;/div&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;It’s also important to note that Joomla 1.6 will go end of life in August 2011. &amp;nbsp; That means no more security updates or patches or fixes for&amp;nbsp;vulnerabilities. &amp;nbsp;If your site get’s hacked 6 months from now due to some kid developing some obscure technique, you will only have yourself to blame–not Joomla. &amp;nbsp;Upgrade them sites!&lt;/div&gt;&lt;blockquote style="font-family: Georgia, 'Times New Roman', Times, serif; font-size: 21px; font-style: italic; margin-bottom: 10px; margin-left: 15px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;h3 style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 2px; color: black; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I am on Joomla 1.5. &amp;nbsp;How do I do it?&lt;/h3&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;There is no upgrade path from J1.5 to J1.6 or J1.7. &amp;nbsp; You will have to migrate. &amp;nbsp;There are a variety of changes from J1.5 to newer versions including changes to tables and the ACL (access control list) so a migration is the only way. &amp;nbsp;If you are comfortable with migrating from&amp;nbsp;different&amp;nbsp;Joomla releases you probably have a system in place. &amp;nbsp; If not, you can try out&amp;nbsp;&lt;a href="http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658" style="color: #3990bd; text-decoration: none;" target="_blank"&gt;this extension&lt;/a&gt;. &amp;nbsp;I personally have not tried it, but it seems pretty straightforward. &amp;nbsp;Take all the usual precautions and backup your databases and files before doing something like this. &amp;nbsp; Try it on your development site first and test the process before doing it on a live site.&lt;/div&gt;&lt;blockquote style="font-family: Georgia, 'Times New Roman', Times, serif; font-size: 21px; font-style: italic; margin-bottom: 10px; margin-left: 15px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;h3 style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 2px; color: black; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-weight: normal;"&gt;I am on Joomla 1.6. &amp;nbsp;How do I do it?&lt;/span&gt;&lt;/h3&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;It’s easy peasy if you already made the leap to Joomla 1.6. &amp;nbsp; Just go to:&amp;nbsp;&lt;em&gt;Extensions -&amp;gt; Extension Manager -&amp;gt; Update -&amp;gt; Find updates.&lt;/em&gt;&lt;/div&gt;&lt;blockquote style="font-family: Georgia, 'Times New Roman', Times, serif; font-size: 21px; font-style: italic; margin-bottom: 10px; margin-left: 15px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;h3 style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 2px; color: black; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-weight: normal;"&gt;What’s up with that ugly Joomla image you used in the beginning of the article?&lt;/span&gt;&lt;/h3&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="new features in joomla 1.7 compared to joomla 1.6" class="size-full wp-image-1035 alignleft" height="100" src="http://www.ijoomla.com/blog/wp-content/uploads/2011/07/joomla1-7-fridge-magnets.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; float: left; margin-bottom: 0px; margin-left: 0px; margin-right: 10px; margin-top: 0px;" title="joomla1-7-fridge-magnets" width="400" /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Kids&amp;nbsp;refrigerator&amp;nbsp;magnets are cute, cheap and fun. &amp;nbsp;They also stick to anything metal. &amp;nbsp;Slapping some&amp;nbsp;fridge&amp;nbsp;magnets on a whiteboard or something metal or *gasp*, your actual fridge is a good way to nag yourself that this upgrade is very important and needs to be done soon.&lt;/div&gt;&lt;blockquote style="font-family: Georgia, 'Times New Roman', Times, serif; font-size: 21px; font-style: italic; margin-bottom: 10px; margin-left: 15px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;h3 style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dotted; border-bottom-width: 2px; color: black; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Do I have to worry about extensions breaking?&lt;/h3&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;As with any upgrade there is&amp;nbsp;always&amp;nbsp;the potential for things to break. &amp;nbsp;You should never do a upgrade or migration without some tested and proven way to revert back to a working site if it all goes pear shaped. &amp;nbsp; The changes from J1.6 to J1.7 are pretty minor, but ther are so many extensions that do so many things, it’s hard to make a blanket statement.&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 20px; line-height: 20px;"&gt;How about you?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 16px; line-height: 24px;"&gt;&lt;div style="margin-bottom: 30px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Do you have any tips or tricks I didn’t cover? Let us know in the comments, we would love to hear from you.&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-153286643316768880?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/153286643316768880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/what-is-new-in-joomla-17-vs-joomla-16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/153286643316768880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/153286643316768880'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/08/what-is-new-in-joomla-17-vs-joomla-16.html' title='What is new in Joomla 1.7 vs Joomla 1.6?'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4915868496650799275</id><published>2011-07-30T23:56:00.001-07:00</published><updated>2011-07-30T23:56:49.809-07:00</updated><title type='text'>Angry Birds....!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="405" width="720"&gt;&lt;param name="movie" value="http://www.angrybirds.name/fl/angry-birds.swf"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="menu" value="true"&gt;&lt;embed width="720" height="405" src="http://www.angrybirds.name/fl/angry-birds.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.angrybirds.name/angry-birds.html" target="_blank" title="Play Angry Birds at Angry Birds"&gt;Angry Birds&lt;/a&gt;&lt;/center&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4915868496650799275?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4915868496650799275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/07/angry-birds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4915868496650799275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4915868496650799275'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/07/angry-birds.html' title='Angry Birds....!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7253766715391424201</id><published>2011-07-21T18:20:00.001-07:00</published><updated>2011-07-21T18:20:18.739-07:00</updated><title type='text'>Industrial Training on FOSS! Share Your Feedback and Get Updated with Latest in FOSS Industry!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;iframe frameborder="0" height="1153" marginheight="0" marginwidth="0" src="https://spreadsheets.google.com/spreadsheet/embeddedform?formkey=dDYxNWlNenpRVklZSmVIV1NLUzZsZUE6MQ" width="760"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;Loading...&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7253766715391424201?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7253766715391424201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/07/industrial-training-on-foss-share-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7253766715391424201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7253766715391424201'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2011/07/industrial-training-on-foss-share-your.html' title='Industrial Training on FOSS! Share Your Feedback and Get Updated with Latest in FOSS Industry!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4609085617113237571</id><published>2010-07-23T22:16:00.000-07:00</published><updated>2010-07-23T23:06:06.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bangalore conference'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo developers meet'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy Live blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='openhackindia'/><title type='text'>Live Blogging : Yahoo Open Hack 2010, Bangalore</title><content type='html'>1. YQL by Chris!&lt;br /&gt;2. YAP by Lavanya and Balachandar:&lt;br /&gt;&lt;br /&gt;App is defined by gadget XML : defines open apps, meta data&lt;br /&gt;Conforms to OpenSocial Standards&lt;br /&gt;&lt;br /&gt;YahooSmall View, YahooFullView,Preview -&amp;gt;YML Works only on these&lt;br /&gt;&lt;br /&gt;Yahoo Small View:&lt;br /&gt;-&amp;gt;No JS, Faster, HTML or YMLLite, two state(default, personalised) &lt;br /&gt;Yahoo Full View:&lt;br /&gt;-&amp;gt;Support HTML,CSS, YML, YUI , Caja friendly JS, rich interface, opensocial,&amp;nbsp; YML adds allows ad,&lt;br /&gt;&lt;br /&gt;Preview View:&lt;br /&gt;-&amp;gt; Content to those who have not signed in, haven't installed, motivated to install, yml:customize tag for installing app, no user info is passed to app, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yahoo MarkUp Language:&lt;br /&gt;&lt;br /&gt;similar in format like XML&lt;br /&gt;&lt;br /&gt;Caja:&lt;br /&gt;-&amp;gt;Tansform JS and XML to secure form &lt;br /&gt;-&amp;gt;prevents insecure JS&lt;br /&gt;YUI is a library of JS utilities and controls for building rich interactive web application.&lt;br /&gt;&lt;br /&gt;Open social and its Compatibility&lt;br /&gt;&lt;br /&gt;-&amp;gt; OSML and Open Social Templates are in beta stage&lt;br /&gt;-&amp;gt;support Open Social 0.9 JS API's and open social 0.8.1 RESTful api.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sample Gadget XML&lt;br /&gt;Caja is where insecure js is prevented and for stripping out unreliable content, YUI supports accelerated design.&lt;br /&gt;&lt;br /&gt;Libraries to use:&lt;br /&gt;Caja, opensocial, YUI, YML&lt;br /&gt;&lt;br /&gt;Sections at Gadget XML:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Module per section -&amp;gt; covers meta data for app-&amp;gt; to make searched and featured by yahoo,title for app, screenshot&amp;nbsp; url's,&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;content type="html" view="YahooFullView/YahooSmallView"&gt;&lt;/content&gt;&lt;/li&gt;&lt;/ul&gt;Steps to create&amp;nbsp; Gadget XML:&lt;br /&gt;&lt;br /&gt;check out : &lt;a href="http://developer.yahoo.com/yap/"&gt;http://developer.yahoo.com/yap/&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;check out-&amp;gt; YDN Devtool Page&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yahoo Social API's&lt;br /&gt;-&amp;gt;design a Open Application Or OAuth&lt;br /&gt;select *from social.profile where guid=me;&lt;br /&gt;select * from social.contact where guid=me/guid info;&lt;br /&gt;select * from social.updates where guid=me;&lt;br /&gt;select * from social.updates.search where query='ipad';&lt;br /&gt;select * from updates.search where source='appid';&lt;br /&gt;&lt;br /&gt;MeMe:&lt;br /&gt;check out : http://developers.yahoo.com/meme/&lt;br /&gt;&lt;br /&gt;insert into meme.user.posts(type,content, caption)values("photos", "http://yahoo.com", "this is a photo caption")&lt;br /&gt;&lt;br /&gt;Social SDK's&lt;br /&gt;&lt;ul&gt;&lt;li&gt;examples for opensocial, php, python&lt;/li&gt;&lt;li&gt;perform oAuth Authentication&lt;/li&gt;&lt;/ul&gt;Host your Social Apps @ Joyent, google app engine, amazon web services,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4609085617113237571?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4609085617113237571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/07/live-blogging-yahoo-open-hack-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4609085617113237571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4609085617113237571'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/07/live-blogging-yahoo-open-hack-2010.html' title='Live Blogging : Yahoo Open Hack 2010, Bangalore'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4175775611535198864</id><published>2010-07-11T06:34:00.001-07:00</published><updated>2010-07-11T06:34:47.055-07:00</updated><title type='text'>What came First, the chicken or the Egg?</title><content type='html'>&lt;div id="ynmain"&gt;&lt;div id="storybody"&gt;&lt;br /&gt;&lt;div class="first" style="margin-top: 0pt;"&gt;British researchers may have uncovered a  partial answer to the age-old question, "what came first the chicken or  the egg?"&lt;/div&gt;According to a team, comprising researchers from the  University of Warwick and the University of Sheffield, the answer is  "chicken" or at least a particular chicken protein.&lt;br /&gt;There is,  however, a further twist - this particular chicken protein turns out to  come both first and last. That neat trick it performs provides new  insights into control of crystal growth which is key to egg shell  production.&lt;br /&gt;Scientists have long believed that a chicken eggshell  protein called ovocledidin-17 (OC-17) must play some role in egg shell  formation. The protein is found only in the mineral region of the egg  (the hard part of the shell) and lab bench results showed that it  appeared to influence the transformation of (CaCo3) into calcite  crystals. The mechanism of this control remained unclear. How this  process could be used to form an actual eggshell remained unclear.&lt;br /&gt;University  of Warwick researchers Mark Rodger and David Quigley, in collaboration  with colleagues at the University of Sheffield, have now been able to  apply a powerful computing tool called metadynamics and the UK national  supercomputer in Edinburgh to crack this egg problem.&lt;br /&gt;Dr David  Quigley from the Department of Physics and Centre for Scientific  Computing, University of Warwick, said: "Metadynamics extends  conventional molecular dynamics (MD) simulations and is particularly  good at sampling transitions between disordered and ordered states of  matter."&lt;br /&gt;Using these tools, the team was able to create  simulations that showed exactly how the protein bound to amorphous  calcium carbonate surface using two clusters of "arginine residues",  located on two loops of the protein and creating a literal chemical  "clamp" to nano sized particles of calcium carbonate.&lt;br /&gt;While  clamped in this way, the OC-17 encourages the nanoparticles of calcium  carbonate to transform into "calcite crystallites" that form the tiny of  nucleus of crystals that can continue to grow on their own. But they  also noticed that sometimes this chemical clamp didn't work. The OC-17  just seemed to detatch from the nanoparticle or "be desorbed".&lt;br /&gt;Professor  Mark Rodger from Department of Chemistry and Centre for Scientific  Computing, University of Warwick, said: "With the larger nanoparticles  we examined we found that the binding sites for this chemical clamp were  the same as the smaller nanoparticles but the binding was much weaker.  In the simulations we performed, the protein never desorbed from the  smaller nanoparticle, but always fell off or desorbed from the larger  one. However in each case, desorption occurred at or after nucleation of  calcite."&lt;br /&gt;The researchers had therefore uncovered an incredibly  elegant process allowing highly efficient recycling of the OC-17  protein. Effectively it acts as a catalyst, clamping on to calcium  carbonate particles to kickstart crystal formation and then dropping off  when the crystal nucleus is sufficiently large to grow under its own  steam. This frees up the OC-17 to promote more yet more crystallisation,  facilitating the speedy, literally overnight creation of an egg shell.&lt;br /&gt;The  researchers believe that this new insight into the elegant and highly  efficient methods of promoting and controlling crystallisation in nature  will be of great benefit to anyone exploring how to promote and control  artificial forms of crystallisation. '&lt;br /&gt;The study appears in the  international edition of the journal Angewandte Chemie.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4175775611535198864?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4175775611535198864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/07/what-came-first-chicken-or-egg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4175775611535198864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4175775611535198864'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/07/what-came-first-chicken-or-egg.html' title='What came First, the chicken or the Egg?'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3649199217189947922</id><published>2010-06-25T00:54:00.000-07:00</published><updated>2010-06-25T00:54:53.231-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='27th june 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='unconference'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp chennai'/><title type='text'>Welcome to our 4th Edition of Barcamp Chennai!</title><content type='html'>I am excited to attend the 4th edition of barcamp chennai. Plan your calendar on 27th June 2010 @ Cognizant Technologies, Okiyam, Thoraipakkam. Check this out!&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;object height="225" width="400"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12828459&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=12828459&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;Register yourself @ &lt;a href="http://www.barcampchennai.org/"&gt;Barcampchennai&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-3649199217189947922?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/3649199217189947922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/welcome-to-our-4th-edition-of-barcamp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3649199217189947922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3649199217189947922'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/welcome-to-our-4th-edition-of-barcamp.html' title='Welcome to our 4th Edition of Barcamp Chennai!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3203087843165966046</id><published>2010-06-25T00:39:00.000-07:00</published><updated>2010-06-25T00:39:46.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='india economy'/><category scheme='http://www.blogger.com/atom/ns#' term='rupee symbol'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><title type='text'>A New Identity for Indian Rupees! - For the Growing Economy!</title><content type='html'>Rupee is to about to join the elite league of World Economy through its new symbol! &lt;span style="font-family: Arial; font-size: small;"&gt;&lt;a class="bl-12-u" href="http://connect.in.com/reserve-bank-of-india/profile-543591.html" target="_blank"&gt;Reserve Bank of India&lt;/a&gt;’s Executive  Director HR Khan feels a symbol for the rupee was absolutely necessary.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;“Every currency has a symbol so we thought that the Indian currency  should also have a symbol. It is more of a symbolic value because we are  an emerging power and most countries have some symbol with acts as an  identification for the currency worldwide.”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;Check these finalized 5 symbols and post your comments,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;img alt="http://www.moneycontrol.com/news_image_files/rupee_symbol.jpg" src="http://www.moneycontrol.com/news_image_files/rupee_symbol.jpg" /&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: small;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-3203087843165966046?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/3203087843165966046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/new-identity-for-indian-rupees-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3203087843165966046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3203087843165966046'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/new-identity-for-indian-rupees-for.html' title='A New Identity for Indian Rupees! - For the Growing Economy!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-2836683541290448620</id><published>2010-06-25T00:26:00.000-07:00</published><updated>2010-06-25T00:31:49.935-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seminar'/><category scheme='http://www.blogger.com/atom/ns#' term='iitm workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='ieee'/><category scheme='http://www.blogger.com/atom/ns#' term='csi chennai chapter'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><title type='text'>Cloud Computing Workshop by CSI and IEEE [at] IIT Madras</title><content type='html'>&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="margin-left: auto; margin-right: auto; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="8%"&gt;&lt;/td&gt; &lt;td width="8%"&gt; &lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.csi-chennai.org/wcc/ieeecs-logo-s.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img align="" border="0" middle="" src="http://www.csi-chennai.org/wcc/ieeecs-logo-s.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;Workshop on&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt; &lt;b&gt;Cloud Computing&lt;/b&gt; &lt;/span&gt; &lt;br /&gt;&lt;b&gt;August 19-20, 2010 at IIT Madras, Chennai, India&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Organised by&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;Computer Society of India&lt;br /&gt;Div IV (Communication), Chennai Chapter and SIG-Grid Computing&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;and&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;IEEE Computer Society, Madras Chapter&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Supported by&lt;/i&gt;&lt;br /&gt;&lt;b&gt;Platinum Sponsors&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;Yahoo,  Google, HP, Amazon, IBM, HCL&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Gold Sponsors&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;Novell,  VMware, CSS Corp, Ramco, TCS&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;Fee &amp;amp; Takeaways&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: red;"&gt;Industry Delegates : Rs. 1500/=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;CSI / IEEE Members: Rs. 1250/=&lt;br /&gt;&lt;span style="color: red;"&gt;Academic Faculty, Researchers &amp;amp; Students : Rs.  1250/=&lt;br /&gt;&lt;span style="color: blue;"&gt;CSI / IEEE Student Members : Rs. 1000/=&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: green;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;(Note:  Students should attach copy of the membership card and also a  certificate from the HOD / Principal along with registration form and  payment.&lt;br /&gt;Right of acceptance is reserved based on the flow of registrations)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: green;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;Workshop  Takeaways&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; Apart from the opportunity to hear the technical presentations from the  Industry leaders&lt;br /&gt;in Cloud Computing, each delegate will be provided with the following &lt;span style="color: blue;"&gt;&lt;b&gt;five items.&lt;/b&gt;&lt;/span&gt; &lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: green;"&gt;&lt;span style="color: red;"&gt;  &lt;span style="color: red;"&gt;Workshop Kit&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: green;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: green;"&gt;CD containing  presentations (subject to copyright) and whitepapers,&lt;br /&gt;user case studies being shared by the sponsoring organisations&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: green;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: blue;"&gt;AWS coupon  worth USD 25 to try out Amazon Web Services&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: green;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: red;"&gt;A hard copy of  the &lt;a href="http://www.csi-chennai.org/wcc/cc-book.pdf"&gt;book&lt;/a&gt; "Cloud  Computing: A Practical Approach"&lt;br /&gt;by Anthony T. Velte, Toby J. Velte and Robert C. Elsenpeter,&lt;br /&gt;published by TMH and priced at Rs. 475/= or similar one for reference.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: green;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: green;"&gt;Certificate of  Participation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-2836683541290448620?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/2836683541290448620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/cloud-computing-workshop-by-csi-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2836683541290448620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2836683541290448620'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/cloud-computing-workshop-by-csi-and.html' title='Cloud Computing Workshop by CSI and IEEE [at] IIT Madras'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4601874784055319605</id><published>2010-06-18T11:42:00.001-07:00</published><updated>2010-06-18T11:42:30.029-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open hack india'/><category scheme='http://www.blogger.com/atom/ns#' term='bangalore conference'/><category scheme='http://www.blogger.com/atom/ns#' term='info geek'/><category scheme='http://www.blogger.com/atom/ns#' term='hacker guru'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo event'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking event'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax workshop'/><title type='text'>Yahoo Open Hack India : Registrations Open</title><content type='html'>&lt;img alt="OpenHack-India2010-2.jpg" src="http://developer.yahoo.net/blog/OpenHack-India2010-2.jpg" style="float: left; margin-bottom: 10px; margin-right: 10px;" width="250" /&gt;&lt;br /&gt;Namaste! Open Hack India is back, and we’re excited to see what  creative hacks the vibrant Indian developer community can come up with.  This is the 13th Yahoo Open Hack event we’ve hosted globally and will be  the 3rd one in Bengaluru. The event will be held on the weekend of July  24-25 at the The Taj Residency, Bengaluru. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://openhackindia.eventbrite.com/"&gt;Registration&lt;/a&gt; is  now open.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Due to the limited size of the venue, we will be reviewing  applications for attendance and giving preference to those we believe  will best be able to contribute to the development of a hack at the  event. You can hack individually or in groups, but please sign-up  individually.&lt;br /&gt;&lt;br /&gt;There are two types of registration choices: &lt;br /&gt;&lt;ul&gt;&lt;li class="bullist"&gt;&lt;strong&gt;Info Geek&lt;/strong&gt; Those who are interested in  attending the Technology Seminars and presentations on Saturday morning  but not the main hack event. If you sign up here, you will be asked to  leave after the tech talks end on Saturday.&lt;/li&gt;&lt;li class="bullist"&gt;&lt;strong&gt;Hacker  Gurus&lt;/strong&gt; Those who are pure of heart or creative souls, love  hacking up new ideas, possess entrepreneurial passions, or just want to  build something for world peace…or for an overnight  tech-mayhem-and-hacking-bliss. It includes the Saturday tech  presentations, hacking through the night, Sunday demos, and judging.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://openhackindia.eventbrite.com/"&gt;Book your place now!&lt;/a&gt;  You know you want to. We will send &lt;em&gt;Open Hack Day Confirmed&lt;/em&gt;  emails by the first week of July to all the selected registrations  applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4601874784055319605?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4601874784055319605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/yahoo-open-hack-india-registrations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4601874784055319605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4601874784055319605'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/yahoo-open-hack-india-registrations.html' title='Yahoo Open Hack India : Registrations Open'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3314483953084397874</id><published>2010-06-18T10:23:00.000-07:00</published><updated>2010-06-18T10:25:30.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='workshops'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='mailing list'/><category scheme='http://www.blogger.com/atom/ns#' term='all india python software society'/><title type='text'>Join Us @ Indian Python Software Society</title><content type='html'>Greetings Everyone,&lt;br /&gt;&lt;br /&gt;An All India Society for Python has been registered for conducting Pycon at India and to promote python in India. Everyone from novice to experts in Python are invited to join the mailing list to know the latest in the society and volunteer yourself in spreading python and Evangelizing it!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_wfGWe3E0X34/TBur4VcThNI/AAAAAAAABf0/xZqr0zGVkdE/s1600/python-logo-master-v3-TM-flattened.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://2.bp.blogspot.com/_wfGWe3E0X34/TBur4VcThNI/AAAAAAAABf0/xZqr0zGVkdE/s320/python-logo-master-v3-TM-flattened.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Mailing List URL:&lt;br /&gt;&lt;a href="http://mail.python.org/mailman/listinfo/ipss" target="_blank"&gt;http://mail.python.org/mailman/listinfo/ipss&lt;/a&gt;&lt;br /&gt;further  information about the society may be obtained here:&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/CategoryIndianPythonSoftwareSociety" target="_blank"&gt;http://wiki.python.org/moin/CategoryIndianPythonSoftwareSociety&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Courtesy: Thanks to &lt;a href="http://lawgon.livejournal.com/"&gt;kg&lt;/a&gt; for his invite in Ilug Mailing List!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-3314483953084397874?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/3314483953084397874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/join-us-indian-python-software-society.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3314483953084397874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3314483953084397874'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/join-us-indian-python-software-society.html' title='Join Us @ Indian Python Software Society'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_wfGWe3E0X34/TBur4VcThNI/AAAAAAAABf0/xZqr0zGVkdE/s72-c/python-logo-master-v3-TM-flattened.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7237868141244509454</id><published>2010-06-18T00:52:00.001-07:00</published><updated>2010-06-18T00:52:07.639-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Community'/><category scheme='http://www.blogger.com/atom/ns#' term='wordpress 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='blog tips'/><title type='text'>Wordpress 3.0 : Out of the Box!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/TBsb8cS1iqI/AAAAAAAABfs/NS6UNTYTgdU/s1600/WordPress-3.0-Beta-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_wfGWe3E0X34/TBsb8cS1iqI/AAAAAAAABfs/NS6UNTYTgdU/s200/WordPress-3.0-Beta-1.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;With the release of Wordpress  3.0, Everyone are excited to upgrade their blogs to this latest version  and this post will let you know some cool features of this new flavor  which is worth a try!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Here are some of the highlights of the Wordpress  3.0: &lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt; WordPress and WordPress MU have merged, allowing  the management  of multiple sites (called Multisite) from one WordPress  installation.  &lt;/li&gt;&lt;li&gt; New default theme &lt;a href="http://codex.wordpress.org/Glossary#Twenty_Ten_theme" title="Glossary"&gt;"Twenty Ten"&lt;/a&gt; takes full advantage of the current   features of WordPress.  &lt;/li&gt;&lt;li&gt; New custom menu management feature, allows creation of custom   menus combining posts, pages, categories, tags, and links for use in   theme menus or widgets. &lt;/li&gt;&lt;li&gt; Custom header and background APIs. &lt;/li&gt;&lt;li&gt; Contextual help text accessed under the Help tab of every  screen  in the WordPress administration. &lt;/li&gt;&lt;li&gt; Ability to set the admin username and password during   installation. &lt;/li&gt;&lt;li&gt; Bulk updating of themes with an automatic maintenance mode  during  the process. &lt;/li&gt;&lt;li&gt; Support for shortlinks. &lt;/li&gt;&lt;li&gt; Improved Custom  post types and custom  taxonomies including  hierarchical (category-style) support. (Try  the &lt;a class="external text" href="http://wordpress.org/extend/plugins/custom-post-type-ui/" title="http://wordpress.org/extend/plugins/custom-post-type-ui/"&gt;Custom   Post Type UI&lt;/a&gt; or &lt;a class="external text" href="http://wordpress.org/extend/plugins/gd-taxonomies-tools/" title="http://wordpress.org/extend/plugins/gd-taxonomies-tools/"&gt;GD   Custom Posts And Taxonomies Tools&lt;/a&gt; plugins to see the possibilities.)  &lt;/li&gt;&lt;li&gt; A lighter admin color scheme to increase accessibility and put  the  focus more squarely on your content. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7237868141244509454?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7237868141244509454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/wordpress-30-out-of-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7237868141244509454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7237868141244509454'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/wordpress-30-out-of-box.html' title='Wordpress 3.0 : Out of the Box!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_wfGWe3E0X34/TBsb8cS1iqI/AAAAAAAABfs/NS6UNTYTgdU/s72-c/WordPress-3.0-Beta-1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-1613901322636758824</id><published>2010-06-17T23:32:00.000-07:00</published><updated>2010-06-17T23:32:35.930-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red Hat'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh inspirations'/><category scheme='http://www.blogger.com/atom/ns#' term='Bob Young'/><category scheme='http://www.blogger.com/atom/ns#' term='BBC Interview'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Entreprenuer'/><category scheme='http://www.blogger.com/atom/ns#' term='Canadian Multi-millionaire'/><title type='text'>The Open Source Entreprenuer</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="clear: right; display: inline; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img alt="Bob Young" class="mt-image-right" height="170" src="http://www.bbc.co.uk/blogs/thereporters/maggieshiels/robertyoung_226.jpg" style="float: right; margin: 0pt 0pt 20px 20px;" width="226" /&gt;&lt;/span&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="clear: right; display: inline; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/span&gt;BBC &lt;a href="http://www.bbc.co.uk/blogs/thereporters/maggieshiels/2010/06/the_open_source_entrepreneur.html"&gt;talks  to Bob Young&lt;/a&gt;, the co-founder of Red Hat: "Bob Young is a  self-confessed contrarian with a strong desire to change the world by  allowing people to share and collaborate. The approach has served him  well and has helped turn the Canadian into a multi-millionaire."&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-1613901322636758824?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/1613901322636758824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/open-source-entreprenuer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1613901322636758824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1613901322636758824'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/open-source-entreprenuer.html' title='The Open Source Entreprenuer'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-1697084979353540876</id><published>2010-06-17T22:56:00.000-07:00</published><updated>2010-06-17T23:02:29.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bangalore conference'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel India'/><category scheme='http://www.blogger.com/atom/ns#' term='C/C++'/><category scheme='http://www.blogger.com/atom/ns#' term='Moblin C/C++ SDK&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel AppUp Center'/><title type='text'>Calling all C/C++ Developers!!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="margin-left: 1em; margin-right: 1em; text-align: justify;"&gt;&lt;img alt="Your shortcut to legendary." border="0" height="227" src="http://www.intelapplab.com/images/intel-applab-microsite-header1c.jpg" width="640" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr style="font-family: inherit;"&gt;         &lt;td align="left" style="color: #303030; font-size: 12px; line-height: 20px;"&gt;All C/C++ Developers are invited to port their applications and components to Intel AppUp Center for profit. Sign Up for the free instructional session and hands-on-lab and network with other developers and make profit! &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #003b77;"&gt;Event Details&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Date: 26th June, 2010 &lt;br /&gt;Time: 9:30 am - 5:00 pm &lt;br /&gt;Venue: Taj Residency, Trinity Circle, Bangalore&lt;/td&gt;       &lt;/tr&gt;&lt;tr style="font-family: inherit;"&gt;         &lt;td align="center" style="color: #303030; font-size: 12px; line-height: 20px;"&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;tr&gt;         &lt;td align="center" style="color: #303030; font-family: arial; font-size: 12px; line-height: 20px;"&gt;&lt;a href="http://www.intelapplab.com/"&gt;&lt;img alt="Registration is limited. Don't delay!" border="0" height="33" src="http://www.intelapplab.com/images/intel-applab-microsite-registrationlimited.jpg" width="396" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-1697084979353540876?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/1697084979353540876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/calling-all-cc-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1697084979353540876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1697084979353540876'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/calling-all-cc-developers.html' title='Calling all C/C++ Developers!!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8464089574741342608</id><published>2010-06-17T05:08:00.000-07:00</published><updated>2010-06-17T05:08:15.355-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workshops'/><category scheme='http://www.blogger.com/atom/ns#' term='paper presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Community'/><category scheme='http://www.blogger.com/atom/ns#' term='follow santhosh  madhavan'/><category scheme='http://www.blogger.com/atom/ns#' term='osco.in'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='OSCO'/><category scheme='http://www.blogger.com/atom/ns#' term='speakers invited'/><category scheme='http://www.blogger.com/atom/ns#' term='seminars'/><category scheme='http://www.blogger.com/atom/ns#' term='madurai event'/><category scheme='http://www.blogger.com/atom/ns#' term='open source tech event'/><title type='text'>OSCO GO-OS 2010, Open Source Conference @ Madurai</title><content type='html'>&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/div&gt;&lt;br /&gt;Greetings,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;I am gratified to see many Student Community, Universities, Corporates adopting Open Technologies and advocating the public towards Free and Open Culture especially in softwares. This time it is the second largest city in TamilNadu, next to Chennai; Yes! It's now Madurai hosting the Conference on Open Technologies cum Exhibition to spread the awareness for Students, Universities and Enterprise.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.letmeknow.in/image.php/images/entries/osco1400.gif?image=/images/entries/osco1400.gif&amp;amp;width=140&amp;amp;height=140&amp;amp;quality=60" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://www.letmeknow.in/image.php/images/entries/osco1400.gif?image=/images/entries/osco1400.gif&amp;amp;width=140&amp;amp;height=140&amp;amp;quality=60" width="140" /&gt;&lt;/a&gt; The upcoming busiest IT hub, next to chennai, Madurai stands out as a prime importance for all Tech Evangelist to adopt Open Standards and Open Source Business Models, hence this Conference is planned to address a wide audience and will surely educate most of them. Students are invited for Paper Presentation Contest, Speakers with a sound knowledge in their domain are requested to volunteer for the event! Get Started... Because Open Source Matters!!!&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://osco.in/"&gt;http://osco.in&lt;/a&gt; for more details and Registrations!&lt;br /&gt;&lt;br /&gt;Welcome All!!!&lt;br /&gt;&lt;br /&gt;-Regards,&lt;br /&gt;V.Santhosh,&lt;br /&gt;Author : OpenSourceTechIndia&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8464089574741342608?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8464089574741342608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/osco-go-os-2010-open-source-conference.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8464089574741342608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8464089574741342608'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/osco-go-os-2010-open-source-conference.html' title='OSCO GO-OS 2010, Open Source Conference @ Madurai'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8453040225125796458</id><published>2010-06-16T09:01:00.000-07:00</published><updated>2010-06-16T09:01:37.961-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web awards 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla drumbeat'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='open web awards 2011'/><category scheme='http://www.blogger.com/atom/ns#' term='free culture incubator'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Open Web Awards 2011 : Web Awards 2011</title><content type='html'>&lt;div class="postContent" style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;      &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://yoyodyne.cc/wp-content/uploads/2010/06/open_web_award.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img alt="" class="size-medium wp-image-78" height="261" src="http://yoyodyne.cc/wp-content/uploads/2010/06/open_web_award-300x261.png" title="open_web_award" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="wp-caption alignright" id="attachment_78" style="text-align: justify; width: 310px;"&gt;I’m extremely excited to announce the &lt;a href="http://www.transmediale.de/en/node/13307/" target="_blank"&gt;Open  Web Award 2011&lt;/a&gt; in collaboration with Berlin-based art and digital  culture Festival &lt;a href="http://www.transmediale.de/" target="_blank"&gt;transmediale&lt;/a&gt;.  Following the Mozilla Drumbeat Berlin event we’ve had good talks with &lt;a href="http://www.transmediale.de/en/node/10997"&gt;Free Culture Incubator&lt;/a&gt;  and hope to announce more great open web art initiatives soon. Stay  tuned, and please tell the world (or just your friends) about the Open  Web Award 2011! Open web art is important to show the world what can be  done by building on the open architecture of the web!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;div style="text-align: justify;"&gt;The award will be given to the most creative work or art project  that:&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;blockquote&gt;- are on the web and about the web&lt;br /&gt;- use open and free technology&lt;br /&gt;- incite participation&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;giving specific consideration to “the creative use of HTML5″.&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;The winner will receive a total prize of  5000 EUR, and will obtain  ’supported’ status on &lt;a href="http://www.drumbeat.org/" target="_blank"&gt;Mozilla  Drumbeat &lt;/a&gt;(including the  opportunity to fundraise, if needed). &lt;a href="http://yoyodyne.cc/wp-content/uploads/2010/06/open_web_award_tbx.jpg"&gt;Download  Flyer&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Deadline:&amp;nbsp;July 31, 2010&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.transmediale.de/en/award/open-web-award" rel="nofollow"&gt;ENTER YOUR  SUBMISSION HERE&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8453040225125796458?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8453040225125796458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/open-web-awards-2011-web-awards-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8453040225125796458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8453040225125796458'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/open-web-awards-2011-web-awards-2011.html' title='Open Web Awards 2011 : Web Awards 2011'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7061890999211656090</id><published>2010-06-16T01:23:00.000-07:00</published><updated>2010-06-16T01:26:50.102-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneur'/><category scheme='http://www.blogger.com/atom/ns#' term='meetup'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='RTBI'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT madras event'/><title type='text'>RTBI Monthly Entrepreneurs' Meet</title><content type='html'>&lt;div class="center" id="hosted_by"&gt;&lt;h3 class="thirdheader"&gt;&lt;span style="font-size: small;"&gt;&lt;span id="hosted_by_heading"&gt;Hosted By:&lt;/span&gt;  &amp;nbsp;         RTBI &amp;amp; IITM Research Park    &lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div id="main_event_pic_cont"&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;table style="font-size: 1em;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img alt="Main invitation image" height="393" id="main_media_img" src="http://media.anyvite.com/s6qasai1ac6v3j_main_pic_1233134104.jpg" width="520" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;     &lt;/div&gt;&lt;div id="event_desc"&gt;Hi Everyone,&lt;br /&gt;&lt;br /&gt;This is an RSVP for the  Monthly Entrepreneurs' Meet for the Month of June 2010.&lt;br /&gt;Following  on the response that we received for the Monthly Entrepreneurs Meet in  May,This meet has been decided as regular affair and will be continuing  this on the Third Friday of Every Month.&lt;br /&gt;&lt;br /&gt;So do Mark it in your  calendars.&lt;br /&gt;&lt;br /&gt;Date: 18th June 2010&lt;br /&gt;Venue: Auditorium, IITM  Research Park&lt;br /&gt;Time: 3:00pm - 4:15pm&lt;br /&gt;Speaker: Badri Seshadri,  Founder of Cricinfo, and New Horizon Media&lt;br /&gt;RSVP @ &lt;a href="http://anyvite.com/ro4jzi0rt6"&gt;http://anyvite.com/ro4jzi0rt6&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Outline of the Talk:&lt;/span&gt;&lt;br /&gt;Anyone  who follows Cricket in India would recognize the brand that is  Cricinfo. Having been acquired by ESPN now, its one of the reliable and  favourite destination for the millions of Cricket Aficionados in India  and abroad. As usual, we are posing three interesting questions for  Badri Seshadri to cover for the audience during this talk - apart from  his Journey as an Entrepreneur:&lt;br /&gt;&lt;br /&gt;1. Cricinfo was founded along  with a Co-founder. What has been his experience having a co-founder, are  there any cons to that equation and what would his advice be.&lt;br /&gt;2.  How does one get into an industry like Cricket - which is more or less a  religion in India - and prevail in it, given that bigger players  constantly threaten to enter into that market.&lt;br /&gt;3. The Journey of  Cricinfo and are some Entrepreneurs reluctant than others to get into  business and the perspectives behind it.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The Monthly Entrepreneurs' Meet is an  initiative by IITM's Rural Technology and Business Incubator, along with  IITM Research park.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7061890999211656090?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7061890999211656090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/rtbi-monthly-entrepreneurs-meet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7061890999211656090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7061890999211656090'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/rtbi-monthly-entrepreneurs-meet.html' title='RTBI Monthly Entrepreneurs&apos; Meet'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-6369979721561911309</id><published>2010-06-15T09:15:00.000-07:00</published><updated>2010-06-15T09:17:22.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='self promotion'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='self adulation'/><category scheme='http://www.blogger.com/atom/ns#' term='personality development'/><title type='text'>Forget You, Focus on your Ideas</title><content type='html'>For all my blog readers out there, this is a fabulous post everyone needs to pay attention. Everyone wants to self-promote themselves and become a RockStar! But in the process of Self-promotion, most of them end up with self-adulation which in-turn sabotage your esteem.&lt;br /&gt;&lt;br /&gt;Self-promotion may be key to career  advancement but, let’s face it, cross that line into shameless  self-congratulation and bragging and you’ll just turn people off in a  major way. So how can you edge right up to that invisible boundary but  not cross over it?&lt;br /&gt;&lt;br /&gt;Copyblogger’s &lt;b&gt;Nathan Hangen &lt;/b&gt;tackled this question  recently and came up with a very simple but hugely useful &lt;a href="http://www.copyblogger.com/shameless-self-promotion/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+Copyblogger+%28Copyblogger%29&amp;amp;utm_content=Google+Reader"&gt;distinction  between boorish bragging and helpful self-promotion&lt;/a&gt; — the former is  all about you, the latter all about your audience. Hangen explains:&lt;br /&gt;&lt;blockquote&gt;The reason that self-promotion works and self-adulation  doesn’t is because self-promotion is the art of spreading ideas,  concepts, and a greater vision. Self-adulation is just the promotion of  accomplishments, deeds that have already been done.&lt;/blockquote&gt;&lt;blockquote&gt;When you promote ideas, you give people something to  cheer for. You give people a cause to support. People, in many ways, are  selfish. They promote the things that make them feel good. Your  accomplishments aren’t likely to make them feel good, but your ideas do.&lt;/blockquote&gt;&lt;blockquote&gt;Your ideas might inspire hope, thought, or action . . .  but as a general rule, good ideas inspire &lt;i&gt;something&lt;/i&gt;.&lt;/blockquote&gt;In the rest of the post, Hangen offers some &lt;a href="http://www.copyblogger.com/shameless-self-promotion/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+Copyblogger+%28Copyblogger%29&amp;amp;utm_content=Google+Reader"&gt;tips  on exactly how to broadcast your ideas effectively&lt;/a&gt;. If you’re  interested in the topic, it’s well worth a read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-6369979721561911309?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/6369979721561911309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/forget-you-focus-on-your-ideas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/6369979721561911309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/6369979721561911309'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/forget-you-focus-on-your-ideas.html' title='Forget You, Focus on your Ideas'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-337945577145499153</id><published>2010-06-15T09:06:00.000-07:00</published><updated>2010-06-15T09:06:11.706-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='never forget a name'/><title type='text'>5 Tips to never forget a name again</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Make a choice to care. &lt;/strong&gt;A kind of  “first principle”  of relationship building applies here. If you make a  conscious  decision that you are going to remember names, because you  care about  the people you meet, you will immediately become much better  at doing  it!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Picture the name written across their forehead.&lt;/strong&gt;  Think that sounds dumb? It’s not. It was a trick used by&lt;strong&gt;  Franklin  Roosevelt &lt;/strong&gt;and he amazed his staff with how well he  remembered names.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Listen to the name of the person you are being introduced  to.&lt;/strong&gt; If you don’t hear the name clearly the first time, ask them  to repeat  it. Again, this seems obvious, but some of you are so  convinced you  aren’t going to remember that you don’t even listen in  the first place!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Repeat the name as soon as possible.&lt;/strong&gt; You  can  either repeat it as a confirmation, “Joe, right?” or in  conversation,  “Nice to meet you, Joe.”&amp;nbsp; Either way, say it aloud and  look the person  in the eyes, too.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Use word or picture associations to make the person-name   combination more memorable. &lt;/strong&gt; For someone named Joy, picture her   with a huge smile on her face, glowing with happiness.&amp;nbsp; Imagine Sandy   on a beach.&amp;nbsp; Maybe Mike is singing karaoke. The more unusual the   picture, the more memorable. Be creative!&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-337945577145499153?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/337945577145499153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/5-tips-to-never-forget-name-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/337945577145499153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/337945577145499153'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/5-tips-to-never-forget-name-again.html' title='5 Tips to never forget a name again'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4111790259565002300</id><published>2010-06-15T08:54:00.001-07:00</published><updated>2010-06-15T08:54:59.607-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interview tips'/><category scheme='http://www.blogger.com/atom/ns#' term='impress HR'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><title type='text'>10 Tips to Impress HR</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Never badmouth anything or  anyone.&lt;/strong&gt; This applies to  your former employer, coworkers, or Osama  bin Laden. We’re trying to  screen out whiners and troublemakers. I  don’t care if your last  supervisor was a tyrant. Be kind and magnanimous  about everything and  everyone.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Make sure your appearance is in  order. &lt;/strong&gt;Fair or  not, you are judged based you based on  how  you look. Check your fly  and make sure  your eyebrows are smooth.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don’t smoke on the day of the  interview.&lt;/strong&gt; We can  smell it. We don’t like it. There is an  unconscious bias against  smokers, and let’s face it, you have a  reputation for being lazy.  Smokers are more expensive to insure, too.  Why would we want you on the  payroll? Help me help you. Don’t smoke.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don’t be too aggressive and  tell us how awesome you are. &lt;/strong&gt;You’re  here, aren’t you? A little  humility, and some self-deprecating  comments, will go along way with  HR professionals. Trust me.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don’t tell us your life story. &lt;/strong&gt;We  hate it when you  confuse HR with your mother, your  therapist, or your best friend.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don’t expect us to have a  timeline for the interview  process. &lt;/strong&gt;We have no idea how long it  will take to fill the  position. Ideally, we want to fill the opening  tomorrow so we can get  back to online shopping. Realistically, it will  probably take a few  months.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Be prepared to talk about your  strengths &lt;span style="text-decoration: underline;"&gt;and&lt;/span&gt; weaknesses. &lt;/strong&gt;Don’t  ever tell us that you struggle to delegate. You  care too much. You  take on too much responsibility. An interview is a &lt;em&gt;conversation&lt;/em&gt;,   not a bad eHarmony profile. Show some self-awareness.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;When you take us through your  resume, don’t gloss over the  mistakes. &lt;/strong&gt;We  like it when you stop  and tell us about an  experience that taught you  something. It shows  character. Address your  flaws outright and tell us how you learned  something.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Compliment us.&lt;/strong&gt; Seriously.  We are human beings,  too. Scan our offices and look for awards, photos,  or something  noteworthy. Make a connection. This is what salespeople  do, and it  works. We will remember your praise.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Make it easy for us to hire  you. &lt;/strong&gt;When you give us  examples during the interview process,  frame those examples in a way  that relates to the job description, the  issues in the industry, or the  company’s mission. Be relevant and you  will be remembered.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4111790259565002300?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4111790259565002300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/10-tips-to-impress-hr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4111790259565002300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4111790259565002300'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/10-tips-to-impress-hr.html' title='10 Tips to Impress HR'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-1465877382837003024</id><published>2010-06-15T08:47:00.000-07:00</published><updated>2010-06-15T08:47:45.191-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yahoo takes control'/><category scheme='http://www.blogger.com/atom/ns#' term='flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='flicker.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='cybersquatting'/><title type='text'>Atlast Yahoo caught the CyberSquatter Flicker.com</title><content type='html'>Wikipedia terms "Cybersquatting" as&lt;br /&gt;&lt;br /&gt;&lt;b&gt;" Cybersquatting&lt;/b&gt; (also known as &lt;b&gt;domain squatting&lt;/b&gt;), according  to the United States federal law known as the &lt;a href="http://en.wikipedia.org/wiki/Anticybersquatting_Consumer_Protection_Act" title="Anticybersquatting Consumer Protection Act"&gt;Anticybersquatting  Consumer Protection Act&lt;/a&gt;, is registering, trafficking in, or using a  domain name with &lt;a href="http://en.wikipedia.org/wiki/Bad_faith" title="Bad faith"&gt;bad faith&lt;/a&gt; intent to profit from the goodwill of a  trademark belonging to someone else. The cybersquatter then offers to  sell the domain to the person or company who owns a trademark contained  within the name at an inflated price. "&lt;br /&gt;&lt;br /&gt;Typo-prone photographers appear to owe Yahoo a "thank you."&amp;nbsp; After  making at least one generous offer and then resorting to a lawsuit, the  company's acquired Flicker.com, presumably for the sake of saving people  who misspell "Flickr" from visiting the wrong site.&lt;br /&gt;&lt;br /&gt;Flickr should start seeing more visitors before long, though, and this  move may boost Yahoo's reputation in addition to its traffic stats,  since helping people reach their intended destination isn't such a  self-serving act. Still the site has not been redirected!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-1465877382837003024?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/1465877382837003024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/atlast-yahoo-caught-cybersquatter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1465877382837003024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1465877382837003024'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/atlast-yahoo-caught-cybersquatter.html' title='Atlast Yahoo caught the CyberSquatter Flicker.com'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-6676921475348630621</id><published>2010-06-15T08:10:00.000-07:00</published><updated>2010-06-15T08:10:53.794-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='follow twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='avoid mistakes'/><category scheme='http://www.blogger.com/atom/ns#' term='social networking apps'/><category scheme='http://www.blogger.com/atom/ns#' term='design facebook apps'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='online networking mistakes'/><title type='text'>6 Online Networking Mistakes you need to Avoid!</title><content type='html'>I find many HR's looking around the Social Networks to make a best fit of the project to the Employee's area of interest, thereby giving the employee a well-known platform to work with and use their creative skill and latent interest in the work assigned to them. In this context, there are many online gaffes possible which can sabotage our career advancement. Check out this article where you can avoid the 6 usual mistakes @ social Networking!&lt;br /&gt;&lt;br /&gt;Check Out : &lt;a href="http://moneywatch.bnet.com/career-advice/article/6-online-networking-mistakes-to-avoid/322995/"&gt;6 Online Networking Mistakes you need to avoid!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-6676921475348630621?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/6676921475348630621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/6-online-networking-mistakes-you-need.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/6676921475348630621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/6676921475348630621'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/6-online-networking-mistakes-you-need.html' title='6 Online Networking Mistakes you need to Avoid!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-6364946891451679688</id><published>2010-06-15T07:52:00.000-07:00</published><updated>2010-06-15T07:52:10.825-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Corporate Mistakes'/><category scheme='http://www.blogger.com/atom/ns#' term='CEO&apos;s Fraud'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><title type='text'>Top 10 CEO's in Prison</title><content type='html'>An article recently interested me; yes it's the top CEO's commit Frauds and feeling guilty behind the bars! These guys do it basically due to Evil, Arrogance, Evil, Stupidity, Personal Disorder.&lt;br /&gt;&lt;br /&gt;So, if it’s a behavioral disorder,&amp;nbsp;that sort of begs the biggest  question of all: Can you somehow identify&amp;nbsp;these people &lt;em&gt;before&lt;/em&gt;&amp;nbsp;they  actually commit the crime? Any thoughts on that?&lt;br /&gt;&lt;br /&gt;In any case, here are my &lt;strong&gt;Top 10 CEOs in Prison&lt;/strong&gt;:&lt;br /&gt;&lt;span id="more-4805"&gt;&lt;/span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Jeff Skilling, former CEO of Enron&lt;br /&gt;&lt;/strong&gt;Serving 24 years for fraud, insider trading, and other crimes  related to the collapse of Enron&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Bernie Ebbers, former CEO of WorldCom&lt;br /&gt;&lt;/strong&gt;Serving 25 years for accounting fraud that cost investors over  $100 billion&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dennis Kozlowski, former CEO of Tyco&lt;/strong&gt;&lt;br /&gt;Serving 8 to 25 years for stealing $134 million from Tyco&lt;/li&gt;&lt;li&gt;&lt;strong&gt;John Rigas, former CEO of Adelphia Communications&lt;/strong&gt;&lt;br /&gt;Serving 25 years for bank, wire, and securities fraud related to the  demise of Adelphia&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Sanjay Kumar, former CEO of Computer Associates&lt;/strong&gt;&lt;br /&gt;Serving 12 years for obstruction of justice and securities fraud&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Walter Forbes, former CEO of Cendant &lt;/strong&gt;&lt;br /&gt;Serving 12 years for fraud&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Richard Scrushy, former CEO of HealthSouth &lt;/strong&gt;&lt;br /&gt;Serving 7 years for bribery and mail fraud&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Joseph Nacchio, former CEO of Qwest Communications&lt;br /&gt;&lt;/strong&gt;Serving 6 years for insider trading&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Sam Waksal, former CEO of ImClone&lt;/strong&gt;&lt;br /&gt;Served 7 years for securities fraud (released last year)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Martin Grass, former CEO of Rite Aid&lt;/strong&gt;&lt;br /&gt;Served 6 years for fraud and obstruction (just released this year)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-6364946891451679688?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/6364946891451679688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/top-10-ceos-in-prison.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/6364946891451679688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/6364946891451679688'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/top-10-ceos-in-prison.html' title='Top 10 CEO&apos;s in Prison'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4653085913542630750</id><published>2010-06-15T06:29:00.000-07:00</published><updated>2010-06-15T06:43:33.697-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prince of persia'/><category scheme='http://www.blogger.com/atom/ns#' term='follow santhosh  madhavan'/><category scheme='http://www.blogger.com/atom/ns#' term='film review'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy experience'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy Movie Review'/><category scheme='http://www.blogger.com/atom/ns#' term='movie'/><title type='text'>Today @ Sathyam Cinemas: Unlocking the Sands of Time</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;i&gt;“an adventurous prince who teams up with a rival princess [&lt;a href="http://persia.moviechronicles.com/2008-05/jake-gyllenhaal-cast-as-prince-arterton-as-tamina/"&gt;Tamina,  played by Gemma Arterton&lt;/a&gt;] to stop an angry ruler from unleashing a  sandstorm that could destroy the world.”&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;The Adventurous, Fantasize, Action game "Prince of Persia : The Sands of Time" , now crafted by Disney as a complete Movie is running houseful in all theaters here at Chennai. I with my friends went to Sathyam Cinemas and enjoyed the movie. Hatts of to Director Mike Newell who unlocked the sands of time and carried us back to the days we played the Game! Fantastic Casting!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;embed flashvars="host=picasaweb.google.com&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fsans1601%2Falbumid%2F5482983279959255217%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCLa3iOC49ISLggE%26hl%3Den_US" height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" width="600"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Plot:&lt;/b&gt;  A young fugitive prince and princess must stop a villain who unknowingly  threatens to destroy the world with a special dagger that enables the  magic sand inside to reverse time.&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Z8EA7EbFX4k&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Z8EA7EbFX4k&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Had a great day with my friends. Comming Next in the Movie Column: Ravanan! Letz Wait for the until June 18th.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4653085913542630750?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4653085913542630750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/today-sathyam-cinemas-unlocking-sands.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4653085913542630750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4653085913542630750'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/today-sathyam-cinemas-unlocking-sands.html' title='Today @ Sathyam Cinemas: Unlocking the Sands of Time'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4633866888296722840</id><published>2010-06-14T02:25:00.000-07:00</published><updated>2010-06-14T02:25:47.644-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='konai falls'/><category scheme='http://www.blogger.com/atom/ns#' term='follow santhosh  madhavan'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy experience'/><category scheme='http://www.blogger.com/atom/ns#' term='sathosh'/><category scheme='http://www.blogger.com/atom/ns#' term='kalahasti temple'/><category scheme='http://www.blogger.com/atom/ns#' term='andra pradesh'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy tour'/><title type='text'>Wow! This time @ Konai Falls and @ Kalahasti, Andra Pradesh!</title><content type='html'>Yesterday I went to Konai Falls and Kalahasti Temple @ Andra Pradesh! It was an awesome experience for me to see how matured people are in cherishing the customs and spiritual gifts left by ancient rulers. My dad enrolled me and my sister in a pooja @ Kalahasti. I still can't able to understand why there are many untold and unknown science behind all these customs and beliefs. Anyway I enjoyed a long travel, Konai Falls and beautiful temples all the way from Chennai to Andra!&lt;br /&gt;&lt;embed flashvars="host=picasaweb.google.co.in&amp;amp;captions=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.co.in%2Fdata%2Ffeed%2Fapi%2Fuser%2Fsans1601%2Falbumid%2F5482551535355307873%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCNGlxpKl9ejQGQ%26hl%3Den_US" height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://picasaweb.google.co.in/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" width="600"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4633866888296722840?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4633866888296722840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/wow-this-time-konai-falls-and-kalahasti.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4633866888296722840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4633866888296722840'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/wow-this-time-konai-falls-and-kalahasti.html' title='Wow! This time @ Konai Falls and @ Kalahasti, Andra Pradesh!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8699186844010474691</id><published>2010-06-11T17:18:00.000-07:00</published><updated>2010-06-11T03:31:59.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FSF TamilNadu Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax workshop'/><title type='text'>5 day Industrial Training @ SSN by Free Software Foundation</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;Greetings,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The 5 day Industrial Training conducted by Free Software Foundation, TamilNadu in association with SSN Engineering College ended today with a great blast! 220+ Students attended the 5 day Training and all sessions were fabulous learning experience. Mr.Ravi Jaya (Python Session), Mr.(Linux) Baskar (Linux Installation, Dir Structure) and all other speakers were great in delivering knowledge to all students. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;I need to specially thank Mr.Shanu, Mr.Praveen Chandrahas, Mr.Siddharth, Mr.Welkin, Mr.Shashan, SSN Management and all volunteers in making this event a great success. Mr.Shanu's session on FSF helped everyone to know what Free and Open Source Software is and how they can contribute. Mr.Siddharth handled enlightening session on Software Patents and FSMI. Mr.Praveen's session on Cloud and his complete presence helped all newbies to acquire clarity on many issues. Mr.Welkin's session on Downloading,Compiling and Creating Application was very interesting and informative. I (Santhosh.V) handled a session on "how to do Projects" and shared my experience with FSF, TN. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;This Event has motivated and gave a clarity of thought and usage to 220+ Students where you can see many of them already started working on Linux. Projects were assigned to every college participated. Hats-Off to FSF, TamilNadu for their good Work!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed flashvars="host=picasaweb.google.co.in&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.co.in%2Fdata%2Ffeed%2Fapi%2Fuser%2Fsans1601%2Falbumid%2F5480082961776404497%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCIGJsO_lzt-eAw%26hl%3Den_US" height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://picasaweb.google.co.in/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" width="600"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;-Regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;Santhosh.V&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;Regional Manager, Joomla User Community- Asia,&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;Student, Arunai Engineering College &amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;pre&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8699186844010474691?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8699186844010474691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/5-day-industrial-training-ssn-by-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8699186844010474691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8699186844010474691'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/5-day-industrial-training-ssn-by-free.html' title='5 day Industrial Training @ SSN by Free Software Foundation'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7873631304424215980</id><published>2010-06-11T02:35:00.000-07:00</published><updated>2010-06-15T06:49:39.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PVR chennai'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy experience'/><category scheme='http://www.blogger.com/atom/ns#' term='shrek 3D'/><category scheme='http://www.blogger.com/atom/ns#' term='refreshments'/><title type='text'>Shrek 3D @ PVR Cinemas and Marina! Cool Moments with my Frndz!</title><content type='html'>&lt;embed flashvars="host=picasaweb.google.co.in&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.co.in%2Fdata%2Ffeed%2Fapi%2Fuser%2Fsans1601%2Falbumid%2F5481443251923643953%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCMKBou2X0s3I7gE%26hl%3Den_US" height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://picasaweb.google.co.in/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" width="600"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7873631304424215980?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7873631304424215980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/cool-moments-with-my-friends.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7873631304424215980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7873631304424215980'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/cool-moments-with-my-friends.html' title='Shrek 3D @ PVR Cinemas and Marina! Cool Moments with my Frndz!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4354748396226187199</id><published>2010-06-10T09:25:00.000-07:00</published><updated>2010-06-10T09:25:52.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iitm workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='latex'/><category scheme='http://www.blogger.com/atom/ns#' term='indian linux user community'/><category scheme='http://www.blogger.com/atom/ns#' term='student projects'/><category scheme='http://www.blogger.com/atom/ns#' term='monthly meet'/><category scheme='http://www.blogger.com/atom/ns#' term='django framework'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='chennai meet-up'/><category scheme='http://www.blogger.com/atom/ns#' term='ilugc summer talks'/><title type='text'>ILUGC Monthly Meet : June 12th, 2010</title><content type='html'>I have not been to few previous Meet-ups of Ilug's and I am excited that I would attend the upcoming event @ IITM. The topic which grabbed my attention is Django Framework. I hope Ms.Rajeshwari will give a fabulous intro on the framework and to accelerate the python newbies into developing web apps in python.&lt;br /&gt;&lt;br /&gt;The days goes like this; &lt;br /&gt;&lt;br /&gt;Time  : Sat June 12th, 2010 &amp;nbsp;(3-6 PM)&lt;br /&gt;&lt;br /&gt;Venue: &amp;nbsp;Studio No. 2,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Third Floor,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IC &amp;amp; SR building,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp;Near Gajendra Circle,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IIT Madras.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Talk  1:&lt;br /&gt;-------&lt;br /&gt;&lt;br /&gt;Topic : Introduction to Django&lt;br /&gt;Speaker :  Rajeswari S&lt;br /&gt;&lt;br /&gt;Description : &amp;nbsp;Django is a Python Web framework.&lt;br /&gt;&amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; It follows a Model View Controller architectural pattern.&lt;br /&gt;&amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; It is used to develop web applications rapidly.&lt;br /&gt;&lt;br /&gt;Link  : &amp;nbsp; &lt;a href="http://www.djangoproject.com/" target="_blank"&gt;http://www.djangoproject.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Talk  2 :&lt;br /&gt;--------&lt;br /&gt;&lt;br /&gt;Topic : Introduction to Latex&lt;br /&gt;Speaker :  Arulalan T&lt;br /&gt;&lt;br /&gt;Description : &amp;nbsp; LaTeX is a high-quality typesetting  system; it&lt;br /&gt;includes features designed for the&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp;production of technical and scientific documentation.&lt;br /&gt;LaTeX is the  de facto standard&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for the communication and  publication of scientific documents.&lt;br /&gt;&lt;br /&gt;Link : &amp;nbsp; &lt;a href="http://en.wikibooks.org/wiki/LaTeX" target="_blank"&gt;http://en.wikibooks.org/wiki/LaTeX&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There  will be a general group discussion on the following topics.&lt;br /&gt;&lt;br /&gt;1.  Running Summer Workshops&lt;br /&gt;2. Mentoring Students for contribution&lt;br /&gt;&lt;br /&gt;Welcome All!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4354748396226187199?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4354748396226187199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/ilugc-monthly-meet-june-12th-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4354748396226187199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4354748396226187199'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/ilugc-monthly-meet-june-12th-2010.html' title='ILUGC Monthly Meet : June 12th, 2010'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4451613335215032655</id><published>2010-06-04T08:54:00.000-07:00</published><updated>2010-06-04T08:54:29.284-07:00</updated><title type='text'>Personal Development | Robin Sharma</title><content type='html'>&lt;a href="http://www.robinsharma.com/subscribed_videos.htm"&gt;Personal Development | Robin Sharma&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Watch this!! Exceptionally Fabulous Video!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4451613335215032655?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.robinsharma.com/subscribed_videos.htm' title='Personal Development | Robin Sharma'/><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4451613335215032655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/personal-development-robin-sharma.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4451613335215032655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4451613335215032655'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/personal-development-robin-sharma.html' title='Personal Development | Robin Sharma'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-458148305547495141</id><published>2010-06-01T02:03:00.000-07:00</published><updated>2010-06-01T02:03:11.222-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='follow twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='follow santhosh  madhavan'/><category scheme='http://www.blogger.com/atom/ns#' term='social media'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>10 Technology Twitter Feeds You Should Be Following</title><content type='html'>&lt;div class="body"&gt;If you just joined Twitter, you          need to know the top techies worth following.          Below is a list (organized in alphabetical order          by last name) of technology thought leaders who          post useful information, including links, news,          tips, inside information and perspectives on          current events.&lt;/div&gt;&lt;table bgcolor="#c0c0c0" border="0" cellpadding="5" cellspacing="1" style="width: 509px;"&gt;&lt;tbody&gt;&lt;tr&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/chr1sa"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte5.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="166"&gt;           &lt;div class="body"&gt;&lt;b&gt;Chris Anderson&lt;/b&gt;&lt;br /&gt;Editor in Chief&lt;br /&gt;&lt;i&gt;Wired&lt;/i&gt;&lt;br /&gt;&lt;a href="http://twitter.com/chr1sa"&gt;           @chr1sa&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/pogue"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte10.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="167"&gt;           &lt;div class="body"&gt;&lt;b&gt;David Pogue&lt;/b&gt;&lt;br /&gt;Tech columnist&lt;i&gt;&lt;br /&gt;The New York Times&lt;/i&gt;&lt;br /&gt;&lt;a href="http://twitter.com/pogue"&gt;@pogue&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;          &lt;/tr&gt;&lt;tr&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/ryanblock"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte6.gif" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="166"&gt;           &lt;div class="body"&gt;&lt;b&gt;Ryan Block&lt;/b&gt;&lt;br /&gt;Co-Founder&lt;br /&gt;gdgt&lt;br /&gt;&lt;a href="http://twitter.com/ryanblock"&gt;@RyanBlock&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/TechCrunch"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte11.gif" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="167"&gt;           &lt;div class="body"&gt;&lt;b&gt;TechCrunch&lt;/b&gt;&lt;br /&gt;&lt;a href="http://twitter.com/TechCrunch"&gt;           @TechCrunch&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;          &lt;/tr&gt;&lt;tr&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/EcoGeek"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte7.gif" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="166"&gt;           &lt;div class="body"&gt;&lt;b&gt;Hank Green&lt;/b&gt;&lt;br /&gt;Founder&lt;br /&gt;EcoGeek&lt;br /&gt;&lt;a href="http://twitter.com/EcoGeek"&gt;@EcoGeek&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/JoshuaTopolsky"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte12.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="167"&gt;           &lt;div class="body"&gt;&lt;b&gt;Joshua Topolsky&lt;/b&gt;&lt;br /&gt;Editor in Chief&lt;i&gt;&lt;br /&gt;Engadget&lt;/i&gt;&lt;br /&gt;&lt;a href="http://twitter.com/JoshuaTopolsky"&gt;           @JoshuaTopolsky&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;          &lt;/tr&gt;&lt;tr&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/JasonHiner"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte8.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="166"&gt;           &lt;div class="body"&gt;&lt;b&gt;Jason Hiner&lt;/b&gt;&lt;br /&gt;Editor in Chief&lt;i&gt;&lt;br /&gt;TechRepublic&lt;/i&gt;&lt;br /&gt;&lt;a href="http://twitter.com/JasonHiner"&gt;           @JasonHiner&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/LanceUlanoff"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte13.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="167"&gt;           &lt;div class="body"&gt;&lt;b&gt;Lance Ulanoff&lt;/b&gt;&lt;br /&gt;Editor in Chief&lt;i&gt;&lt;br /&gt;PCMag&lt;/i&gt;&lt;br /&gt;&lt;a href="http://twitter.com/LanceUlanoff"&gt;           @LanceUlanoff&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;          &lt;/tr&gt;&lt;tr&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/TimOReilly"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte9.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="166"&gt;           &lt;div class="body"&gt;&lt;b&gt;Tim O’Reilly&lt;/b&gt;&lt;br /&gt;Founder and CEO&lt;br /&gt;O’Reilly Media&lt;br /&gt;&lt;a href="http://twitter.com/TimOReilly"&gt;           @TimOReilly&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;           &lt;td align="center" bgcolor="#ffffff" width="87"&gt;           &lt;a href="http://twitter.com/AWolfe58"&gt;           &lt;img border="0" hspace="0" src="http://www.todaysengineer.org/2009/Dec/images/Twitter-profiles/Twitte14.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;           &lt;td bgcolor="#ffffff" width="167"&gt;           &lt;div class="body"&gt;&lt;b&gt;Alex Wolfe&lt;/b&gt;&lt;br /&gt;Editor In Chief&lt;i&gt;&lt;br /&gt;InformationWeek&lt;/i&gt;&lt;br /&gt;&lt;a href="http://twitter.com/AWolfe58"&gt;           @AWolfe58&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;          &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="body"&gt;Who would you put in your list          of top technology Twitter feeds?&lt;/div&gt;&lt;div class="body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="body"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-458148305547495141?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/458148305547495141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/10-technology-twitter-feeds-you-should.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/458148305547495141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/458148305547495141'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/06/10-technology-twitter-feeds-you-should.html' title='10 Technology Twitter Feeds You Should Be Following'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-2067175009485804427</id><published>2010-05-28T10:08:00.000-07:00</published><updated>2010-05-28T10:08:13.138-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='start up events'/><category scheme='http://www.blogger.com/atom/ns#' term='entrepreneur'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='start_up city'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='siliconindia'/><title type='text'>Biggest Event for StartUps - StartUpCity 2010: Bangalore</title><content type='html'>Hey,&lt;br /&gt;&lt;br /&gt;Just wanted to let you know about an exciting event  siliconindia is organizing on May 29 &amp;amp; 30, 2010 in Bangalore.&lt;br /&gt;&lt;br /&gt;Limited  seats. Register FREE: &lt;a href="http://www.siliconindia.com/startupcity2010" target="_blank"&gt;http://www.siliconindia.com/startupcity2010&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Roll  up your Sleeves. Meet over 100 cool startups. Learn new Technologies;  Watch live product demonstrations; Get a peek into cutting edge  technologies; Lay hands on the best-of-breed solutions; Meet young,  energetic, passionate geeks; Experience the culture of innovation in  small companies; Listen to Visionary Keynotes and In-depth Panel  Discussions&lt;br /&gt;&lt;br /&gt;Come. Meet the Startups that will become tomorrow's  industry leaders.&lt;br /&gt;&lt;br /&gt;Here's you chance to meet and hear inspiring  entrepreneurial story from Krishnakumar Natarajan, co-founder, CEO &amp;amp;  MD of Mindtree and Bharat Goenka, Co-Founder &amp;amp; MD of Tally  Solutions&lt;br /&gt;&lt;br /&gt;Heads of Dell India, Sage India, Mphasis will talk  about building next generation technology companies from India.&lt;br /&gt;&lt;br /&gt;Founders  of startup companies like SMSCountry, 123 Greetings.com, Manthan  Systems, Ittiam, Jade Magnet will talk about concept to success and idea  to revenue.&lt;br /&gt;&lt;br /&gt;You also get to hear interesting discussions on  Mistakes entrepreneurs make when approaching VCs and Best Opportunities  for Entrepreneurs in 2010, Angel Money and many others from leading  venture capitalists like IDG Ventures, Intel Capital, Helion,  Clearstone, NEA-IndoUS Ventures.&lt;br /&gt;&lt;br /&gt;This is undoubtedly the biggest  event for startups.&lt;br /&gt;&lt;br /&gt;There are limited seats. You can register  yourself for FREE at: &lt;a href="http://www.siliconindia.com/startupcity_09/index.html" target="_blank"&gt;http://www.siliconindia.com/startupcity_09/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;V.Santhosh&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-2067175009485804427?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/2067175009485804427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/05/biggest-event-for-startups-startupcity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2067175009485804427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2067175009485804427'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/05/biggest-event-for-startups-startupcity.html' title='Biggest Event for StartUps - StartUpCity 2010: Bangalore'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-5239391466899276910</id><published>2010-05-21T07:40:00.000-07:00</published><updated>2010-05-21T07:56:42.476-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scilab'/><category scheme='http://www.blogger.com/atom/ns#' term='ncurser'/><category scheme='http://www.blogger.com/atom/ns#' term='ChennaiPy activity'/><category scheme='http://www.blogger.com/atom/ns#' term='python workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='pyGTK programming'/><category scheme='http://www.blogger.com/atom/ns#' term='open source player'/><category scheme='http://www.blogger.com/atom/ns#' term='scipy'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='sans review'/><title type='text'>ChennaiPy Workshop Tomorrow @ MIT, Chrompet</title><content type='html'>Greetings Everyone,&lt;br /&gt;&lt;br /&gt;Tomorrow there is a session planned @ MIT, Chrompet by ChennaiPy UG. I  am happy that ChennaiPy is doing their activities in fairly good manner  as I am seeing them from their start. I believe a good number of  audience tomorrow and&amp;nbsp; wish I would attend. Here are the details. Come  and Get Started with Python.&lt;br /&gt;&lt;br /&gt;Date: 22-05-2010&lt;br /&gt;Time: 3pm to 5pm&lt;br /&gt;Venue: NRCFOSS, AU-KBC Research Center,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MIT, Chrompet&lt;br /&gt;&lt;br /&gt;&amp;gt; ************************************&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt;  Talk 1&amp;nbsp; &amp;nbsp; : Introduction to Python&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; Speaker :  Balakrishnan, BCA Student, Sri Sankara Arts &amp;amp;  Science College&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt;  Duration : 30 min&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; *************************************&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt;  Talk 2&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;: ncurser in Python&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; Speaker&amp;nbsp; : Arulalan, MCA  Student, Saveetha Engineering College&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; Duration&amp;nbsp; : 30  min&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; ****************************************&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt;  Talk 3&amp;nbsp; &amp;nbsp; &amp;nbsp; : Introduction to Scipy and Scilab&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; Speaker&amp;nbsp;  : Jai Sathishkumar, M.Tech Student, Anna University&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt;  Duration&amp;nbsp; : 30 min&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt;  *****************************************&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; Talk 4&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;:  Introduction to PyGTK Programming&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; Speaker : Rajeswari,  NRCFOSS&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; Duration : 30 min&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt;  ******************************************&lt;br /&gt;&lt;br /&gt;Meet U [at] ChennaiPy!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-5239391466899276910?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/5239391466899276910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/05/chennaipy-workshop-tomorrow-mit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5239391466899276910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5239391466899276910'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/05/chennaipy-workshop-tomorrow-mit.html' title='ChennaiPy Workshop Tomorrow @ MIT, Chrompet'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-507459887634965411</id><published>2010-02-26T23:10:00.000-08:00</published><updated>2010-02-27T02:20:00.875-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bangalore conference'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla events'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla drumbeat'/><category scheme='http://www.blogger.com/atom/ns#' term='devdays 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh'/><category scheme='http://www.blogger.com/atom/ns#' term='Arunai Engineering College'/><category scheme='http://www.blogger.com/atom/ns#' term='open standards'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox addons'/><category scheme='http://www.blogger.com/atom/ns#' term='open source projects'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='live blogging'/><title type='text'>Mozilla Devday 2010 ' Bangalore : 27th Feb : Live Blogging</title><content type='html'>Mozilla&lt;br /&gt;Arun Ranganathan, Technology Evangelist&lt;br /&gt;Ragavan Srinivasan, Product Managaer, Mozilla&lt;br /&gt;Seth Bindernagel, Director, Localization, Mozilla&lt;br /&gt;Vineel Reddy, MCR, Community Marketting,&lt;br /&gt;Lucian Teo and John Britton, Drumbeat Initiative, Mozilla&lt;br /&gt;&lt;br /&gt;Mahiti&lt;br /&gt;Sree Rameshaiah, executive Director,&lt;br /&gt;Chethan Elvis, Marketting Director,&lt;br /&gt;Sara Baptiste Brown, social Business Coordinator, Mahiti&lt;br /&gt;&lt;br /&gt;Center of Internet Society&lt;br /&gt;Sunil Abhram&lt;br /&gt;&lt;br /&gt;Mozz Drumbeat Session:&lt;br /&gt;The Future of the Internet&lt;br /&gt;&lt;br /&gt;Session :2 The Embracing Web Platform -Arun Ranganathan'&lt;br /&gt;What's good Platform?&lt;br /&gt;Speed--&amp;gt;&lt;br /&gt;JS Performance Wars&lt;br /&gt;Power--&amp;gt;&lt;br /&gt;Device Capabilities&lt;br /&gt;Deployed at scale&lt;br /&gt;Beauty--&amp;gt;&lt;br /&gt;Make Users say wow!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;what's In the Web?&lt;br /&gt;Faster JS than Ever&lt;br /&gt;Better Mashup Capabilities&lt;br /&gt;2D and 3D Drawing Capabilities&lt;br /&gt;Virtualized Storage&lt;br /&gt;Device Integration&lt;br /&gt;No Plugins Needed&lt;br /&gt;&lt;br /&gt;Integrating with File System&lt;br /&gt;Better File Analysis Capabilities in web pages&lt;br /&gt;File API Support&lt;br /&gt;(exif data -&amp;gt;Geo Tags)&lt;br /&gt;&lt;br /&gt;Power: a Look at better Mashups&lt;br /&gt;1.AJAX&lt;br /&gt;2.Mashup have to be safe&lt;br /&gt;3.Cross-site XMLHttpRequest with CORS Headers&lt;br /&gt;4. IE8, XHttpRequest with CORS Headers&lt;br /&gt;5. TweetPics&lt;br /&gt;&lt;br /&gt;Make Data Location Aware&lt;br /&gt;1. GeolocationAPI in browsers&lt;br /&gt;2. navigator.geolocation supported in chrome (API)&lt;br /&gt;(FF 3.3.6)&lt;br /&gt;3. Google service SSID Wifi Spot -Mechanism of picking signals and identify location . -&amp;gt; GeoIP is collected and manipulated&lt;br /&gt;&lt;br /&gt;Beauty&lt;br /&gt;HTML5 and CSS3&lt;br /&gt;1. Support for CSS3 @font-face in IE,Opera, FF and others (link the fonts across the server)&lt;br /&gt;Case Study :TypeKit.com&lt;br /&gt;Business based Open Fonts&lt;br /&gt;&lt;br /&gt;Drawing 2D&lt;br /&gt;HTML, JS(reading keyboard i/p), Canvas&lt;br /&gt;&lt;br /&gt;Orientation Events&lt;br /&gt;DOM Events Model: MozOrientation&lt;br /&gt;Accelerometer&lt;br /&gt;&lt;br /&gt;Then, There's Video&lt;br /&gt;out-of-the box Vieo Capabilities&lt;br /&gt;HTML5 -&amp;gt; &lt;video tabindex="0"&gt; video element used&lt;/video&gt;&lt;br /&gt;Codec remains contentious&lt;br /&gt;h.264 codec -&amp;gt;flash propertiary&lt;br /&gt;&lt;br /&gt;theora&lt;br /&gt;ogg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; open Standards&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Demos: Green Screen&lt;br /&gt;or light blue&lt;br /&gt;&lt;br /&gt;CSS3 and SVG Powered Demo&lt;br /&gt;&lt;br /&gt;Dynamic Content Injection - Demo&lt;br /&gt;&lt;br /&gt;WebGL :Bringing 3D to CAnvas&lt;br /&gt;OpenGL ES2.0 and share-based&lt;br /&gt;An API "on top" of underlying Hardware&lt;br /&gt;Demos: Toy car,&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Keep in touch! arun@mozilla.com&lt;br /&gt;there are no foolish questions, only fools who do not question.&lt;br /&gt;&lt;br /&gt;Session :3 By Seth&lt;br /&gt;&lt;ul class=""&gt;&lt;li class=""&gt;Out of process plugins (OOPP)&lt;/li&gt;&lt;li class=""&gt;Better startup time&lt;/li&gt;&lt;li class=""&gt;Jetpacks support&lt;/li&gt;&lt;li class=""&gt;Theme updates&lt;/li&gt;&lt;li class=""&gt;Extension Manager Redesign&lt;/li&gt;&lt;li class=""&gt;Tab Matches in Awesome Bar&lt;/li&gt;&lt;li class=""&gt;Weave integration&lt;/li&gt;&lt;li class=""&gt;Integrated Developer Tools&lt;/li&gt;&lt;li class="current"&gt;Source: &lt;a href="https://wiki.mozilla.org/Firefox/Projects"&gt;https://wiki.mozilla.org/Firefox/Projects&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Firefox 3.7 and next Firefox 4.0&lt;br /&gt;catch the ppt @ &lt;a href="http://people.mozilla.com/%7Esethb/BangaloreDevDay/Firefox.Next.html"&gt;http://people.mozilla.com/~sethb/BangaloreDevDay/Firefox.Next.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sponsor Event: Mahiti.org&lt;br /&gt;&lt;br /&gt;Convene is the key project and hacking is better, how postgrey is better than Oracle...Applied Engg and pure Engg, Conducting FOSS Workshops and TTP&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;There are three main categories of workshops.&lt;br /&gt;&lt;b&gt;1.Source Camps :&lt;/b&gt;&lt;br /&gt;Source Camps are week-long workshops that focus on the use of free and open source software (FOSS) in the non-profit sector. They create opportunities for practical learning and skills exchange. An emphasis on community building, which runs through everything from content design and delivery to the agenda and location, makes Source Camps an unforgettable experience. The relationships created during the workshops last long beyond the week of the Camp.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.General Workshops:&lt;/b&gt;&lt;br /&gt;These are generally 2 -3 day workshops where the selected participantsi would like to gain an insight into open source and use this knowledge in migration.Some of these participants might be already familiar with open source but would like more information about the topics being covered.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.Custom Workshops :&lt;/b&gt;&lt;br /&gt;These are special workshops custom made for customers on request.These organizations had either attended our source camps or non-residential workshops and would like to effectively deploy open source technologies at the workplace more effectively.One example would be the custom training programmes we conduct at the Centre for Women's Development and Research. ( www.cwdr.org.in ) ,These have been highly effective in helping the organization migrate effortlessly from proprietary tools to open source.We did the migration ourselves and trained the staff on use of the tools effectively.&lt;br /&gt;&lt;br /&gt;Topics which can be requested for these workshops could be anything from Linux OS to alternatives to MS Office and Outlook.Video and audio editing tools are also covered on request.&lt;br /&gt;&lt;br /&gt;Please contact us with your requirements and we would be glad to assist you.&lt;br /&gt;Our email is ngoinabox@mahiti.org&amp;nbsp; .&lt;br /&gt;&lt;a class="internal-link" href="http://convene.mahiti.org/contact" title="Contact"&gt;Click here for our postal address and phone numbers.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Patents and Copyrights by CIS-India&lt;br /&gt;Portable Network Graphics (PNG) -&amp;gt;alternate innovation.&lt;br /&gt;OGG theora, Dirac, (and maybe On2's VPS)&lt;br /&gt;Microsoft -&amp;gt;covering custom XML&lt;br /&gt;Blackberry -&amp;gt; 615 million&lt;br /&gt;&lt;br /&gt;Mozilla Labs : Raghavan&lt;br /&gt;a virtual lab where people integrate and participate in bringing innovation&lt;br /&gt;1994 (2001-Wikipedia) Mosaic Web Browser&lt;br /&gt;&lt;br /&gt;geode, snowl, ubiquity, weave, Personas, jetpack, test pilot, bespin &lt;br /&gt;&lt;br /&gt;The web is personal&lt;br /&gt;User &amp;lt;--&amp;gt; Producers&lt;br /&gt;The web Platform&lt;br /&gt;Innovation Services&lt;br /&gt;&lt;br /&gt;Weave Sync&lt;br /&gt;------------------------------------------------------- &lt;br /&gt;Encrypted Data in client-side&lt;br /&gt;Full&amp;nbsp; Browser Sync&lt;br /&gt;Use Mozilla's Server or your own&lt;br /&gt;Extend, Customise&lt;br /&gt;&lt;br /&gt;Demo : Weave Sync &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;https://wiki.mozilla.org/Labs/Weave/Developer -&amp;gt; Documentation and Weave API Spec, Library for using Firefox data across all other devices.&lt;br /&gt;&lt;br /&gt;You--&amp;gt; Identity&lt;br /&gt;Account Manager : Connecting to Site very easy and consistent&lt;br /&gt;&lt;br /&gt;Demo: People on the Web&lt;br /&gt;web Finger is protocol, Activity Sreams, OpenID, OAuth, OAuth-WARP&lt;br /&gt;Creating our own personas and become an approver.&lt;br /&gt;&lt;br /&gt;Jetpack -&amp;gt;HTML, JS, CSS (Powerful FF Add-Ons)&lt;br /&gt;Web-based, Secure, Robust, Extensible&lt;br /&gt;&lt;br /&gt;Bespin -Web Based Code Editor&lt;br /&gt;&lt;br /&gt;Design Challenge--&amp;gt; Mock-Up an idea for Firefox Product Team, Prototype, Design and bring in ideas into reality.&lt;br /&gt;Video Presentation posted by raghavan&lt;br /&gt;Speaker: Alex Faaborg, Mozilla Design Team--&amp;gt;Design Challenge from Mozilla open to new ideas to leverage FF!!!:) Concept Series-&amp;gt; Design Challenge for Firefox 4.0 "The Home Tab"&lt;br /&gt;&lt;a href="http://bit.ly/degign-challenge"&gt;http://bit.ly/degign-challenge&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-507459887634965411?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/507459887634965411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/02/mozilla-devday-2010-bangalore-27th-feb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/507459887634965411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/507459887634965411'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/02/mozilla-devday-2010-bangalore-27th-feb.html' title='Mozilla Devday 2010 &apos; Bangalore : 27th Feb : Live Blogging'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3649963080855864605</id><published>2010-02-13T10:15:00.001-08:00</published><updated>2010-02-13T10:15:35.640-08:00</updated><title type='text'>Check out Save Our Tigers | Join the Roar</title><content type='html'>&lt;p&gt;Title: Save Our Tigers | Join the Roar&lt;br/&gt;Link: &lt;a href="http://gotaf.socialtwist.com/redirect?l=56161364935811487631"&gt;http://www.saveourtigers.com/JoinTheRoar.phpion&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I am really unhappy to hear that we have only 1411 tigers all-togethere in India. Lets participate in this Project and help people get aware of this issue and we need strong support from all to save our tiger resource of our Nation.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-3649963080855864605?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/3649963080855864605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/02/check-out-save-our-tigers-join-roar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3649963080855864605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3649963080855864605'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2010/02/check-out-save-our-tigers-join-roar.html' title='Check out Save Our Tigers | Join the Roar'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8578714404927666289</id><published>2009-12-06T09:13:00.000-08:00</published><updated>2009-12-06T10:10:00.861-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSN Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='linux distribution making'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='FSF TamilNadu Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='chennai Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax workshop'/><title type='text'>{DAY-2}- FSF, TN Conf @ SSN : Take the Plunge....Breath Free!!!</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/SxvxKmbz4HI/AAAAAAAAASY/z_Zq8oCjnEo/s1600-h/DSC00316.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/SxvxKmbz4HI/AAAAAAAAASY/z_Zq8oCjnEo/s320/DSC00316.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;{Day-2} @ SSN started with Ajax followed by most exciting Linux Distribution Making and Hands-On lab on making Linux distros. After the lunch, we had sessions on Patents and then came the most awaited project session where each team were assigned a project under FSF and brief timelines where given to us on project submission. What's more than these fabulous sessions, we had our refreshments and concluded FSF Conf.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_wfGWe3E0X34/SxvqANt_hkI/AAAAAAAAASA/lragGc7X2zs/s1600-h/DSC00323.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_wfGWe3E0X34/SxvqANt_hkI/AAAAAAAAASA/lragGc7X2zs/s320/DSC00323.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;I really enjoyed these two days and I thank all those who were behind this initative. HariShankar (my jnr) and I had a really log drive in his Passion+ and finally he dropped me @ Guindy while other 3 guys had SSN Route Buses to drop them home.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/SxvzaJeygQI/AAAAAAAAASg/4-kG05AsgG0/s1600-h/DSC00343.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_wfGWe3E0X34/SxvzaJeygQI/AAAAAAAAASg/4-kG05AsgG0/s320/DSC00343.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; Working Technologies into projects is more important than learing them through Workshops and Conference. In this context, FSF and SSN has helped us to work on technology rather than just learning them. I have no words explaining these days in my life rather than start working on projects told to me on these two days, which I feel is the real way in which I can thank SSN Engg college and FSF Team. &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_wfGWe3E0X34/SxvsBb0a4DI/AAAAAAAAASI/LjwaJUeIc7A/s1600-h/DSC00372.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_wfGWe3E0X34/SxvsBb0a4DI/AAAAAAAAASI/LjwaJUeIc7A/s320/DSC00372.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;FSF Rockzz!!!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8578714404927666289?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8578714404927666289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/day-2-fsf-tn-conf-ssn-take-plungebreath.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8578714404927666289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8578714404927666289'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/day-2-fsf-tn-conf-ssn-take-plungebreath.html' title='{DAY-2}- FSF, TN Conf @ SSN : Take the Plunge....Breath Free!!!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_wfGWe3E0X34/SxvxKmbz4HI/AAAAAAAAASY/z_Zq8oCjnEo/s72-c/DSC00316.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-2306633103228486916</id><published>2009-12-05T10:20:00.000-08:00</published><updated>2009-12-06T08:53:50.852-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSN Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='FSF TamilNadu Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh talks'/><title type='text'>FSF Conference @ SSN {DAY-1} - An Splendid Start</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_wfGWe3E0X34/SxvR6555ScI/AAAAAAAAARQ/dhJZffay2O0/s1600-h/DSC00274.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_wfGWe3E0X34/SxvR6555ScI/AAAAAAAAARQ/dhJZffay2O0/s320/DSC00274.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;It was 6:15AM, 5th December, 2009 when I started from my home to take the Route Bus to SSN. I reached the college @ 8:15AM and the Greens and aesthetic beauty of the campus greeted me as I entered. I was joined by 4 of my college guys (my jrs) and we made ourself present at Mini-Auditorium for the sessions.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/SxvaYntAdYI/AAAAAAAAARo/lhOWJdKvBuk/s1600-h/DSC00264.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_wfGWe3E0X34/SxvaYntAdYI/AAAAAAAAARo/lhOWJdKvBuk/s320/DSC00264.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Previewing Big-Bucks Bunny Movie the session began by a fabulous talk from Mr.Siddharth (Core FSF Member, Cognizant Employee). His talk helped us to know better what Free S/w is and what Open Source software is. He explained how important not to patent our innovation, as it prevents development of Science for the next 20 years from our date of patent. His talk made us to visualize the generations of human development from primitive-industrial-modern.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/SxvVtzz6ADI/AAAAAAAAARg/BUqlk28I2B8/s1600-h/DSC00262.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/SxvVtzz6ADI/AAAAAAAAARg/BUqlk28I2B8/s320/DSC00262.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Next we had a talk from Mr.Praveen Chandrahas, IITian aand FSF Promoter, where he briefed out Filesystem and their implementation and steped down Ubuntu Installation process.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/Sxve8BZZBcI/AAAAAAAAAR4/jb8m6hNa46s/s1600-h/DSC00267.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/Sxve8BZZBcI/AAAAAAAAAR4/jb8m6hNa46s/s320/DSC00267.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We had an Community person from Tamil Computing Team, Ubuntu Mr.Thangamani Arun briefing us on Android Architecture and its SDK's. He showcased a demo on how to work on Android Development Toolkit in Eclipse IDE and to use a Emulator.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/SxvQPWIoWYI/AAAAAAAAARI/lhdPSLwnSpU/s1600-h/DSC00278.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/SxvQPWIoWYI/AAAAAAAAARI/lhdPSLwnSpU/s320/DSC00278.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Android session was followed by Shell Scripting by Mr.Bharathi Subramanian, FOSS Evangelist, ILUG Team. This session was really gr8 as I explored the basics of SHELL programming. I will surely work on this scripting a lot more than just listening to it.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We were served with refreshments in-between the sessions and {DAY-1} was really excellent. Tomorrow {DAY-2}, I am waiting for even more exciting stuffs @ FSF.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/SxvUSR_l5hI/AAAAAAAAARY/UkB9gqRa4l4/s1600-h/DSC00293.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_wfGWe3E0X34/SxvUSR_l5hI/AAAAAAAAARY/UkB9gqRa4l4/s320/DSC00293.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;FSF RockZZZ!!!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-2306633103228486916?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/2306633103228486916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/fsf-conference-ssn-day-1-splendid-start.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2306633103228486916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2306633103228486916'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/fsf-conference-ssn-day-1-splendid-start.html' title='FSF Conference @ SSN {DAY-1} - An Splendid Start'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_wfGWe3E0X34/SxvR6555ScI/AAAAAAAAARQ/dhJZffay2O0/s72-c/DSC00274.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7350422566274319265</id><published>2009-12-03T22:50:00.000-08:00</published><updated>2009-12-03T22:52:19.752-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking tips'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='ankit fadia'/><category scheme='http://www.blogger.com/atom/ns#' term='talks'/><category scheme='http://www.blogger.com/atom/ns#' term='ethical hacking'/><title type='text'>All you wanted to know about hacking!!!</title><content type='html'>&lt;i&gt;Hacking has always inspired me from my schooling, and knowing on it from an Computer Security Consultant Ankit Fadia, who at the age 15 wrote his book on 'Ethical Hacking' is still more awakening..Here are the questions put to Ankit and his views on them...&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;When did you realise that you could hack? &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I got interested in hacking at 12, but it took a while before I figured out how to do it. My first hack was quite interesting. I defaced a magazine site and put my own profile, pictures and e-mail id on it. But then I thought I might get into trouble, so I sent a mail to the editor with the solution on how to prevent hacking the website. He got back to me with a job offer but when he learnt that I was 13, he asked me to wait till I turned 18. I learnt my lesson. I never did an illegal hack after that.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Is hacking cool because it allows entry into forbidden territory? &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It is. It gives you the power to do something that most people can't do, that too in the confines of your room. It gives a false sense of security.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;What exactly is 'ethical hacking'? &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You need to have the same knowledge as cyber criminals, but you put that knowledge to positive use. You go to sites, find out their flaws and correct them. I coined the term when I wrote my first book, Ethical Hacking, at 15.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;You have worked with the FBI too. Isn't that a heady feeling? &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I started working with them at 16, when a Pakistani group was planning to attack an Indian site. I traced the chat transcript and the site was saved. Then, this was like a game for me. But now I realise that there's a lot of responsibility involved in what I do.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Why did you take up the show, What The Hack?&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Last year, I won the MTV Youth Icon award and was introduced to the programming head of the channel. I asked him if they wanted to do a show on hacking. They agreed. There are lots of channels which air tech shows that review technology and gadgets. But this show stands out because we teach people cool things that they can do in the virtual world.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Give us some tips on how to become good hackers? &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You have to know the programming well and also think like a criminal. You have to get into the criminal's mind to become a security system expert.&lt;br /&gt;&lt;br /&gt;-An Interview by Yahoo India &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7350422566274319265?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7350422566274319265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/all-you-wanted-to-know-about-hacking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7350422566274319265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7350422566274319265'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/all-you-wanted-to-know-about-hacking.html' title='All you wanted to know about hacking!!!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-2732774748641786731</id><published>2009-12-03T21:59:00.000-08:00</published><updated>2009-12-03T21:59:37.209-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla roadshow'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla drumbeat'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla campaing'/><category scheme='http://www.blogger.com/atom/ns#' term='fcr'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh talks'/><category scheme='http://www.blogger.com/atom/ns#' term='IIT madras event'/><category scheme='http://www.blogger.com/atom/ns#' term='anna university event'/><title type='text'>Plan your Calendar for Mozilla Free Cultural Roadshow @ Chennai</title><content type='html'>I am eagerly looking for the Free Cultural Roadshow @ Chennai, through which I am planning to associate with my fellow Mozilla Campus Representatives and I believe this is an excellent platform for us to discuss on Open Web and its future. Talk your way in the Festival and Win a trip to Mozilla Drumbeat Festival,Amsterdam on June 2010. Catch me @ Mozilla free Cultural Roadshow,Anna University this Tuesday (8-12-2009) :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/SxikthcvjCI/AAAAAAAAAQo/Xkka5B3w0lY/s1600-h/gview1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_wfGWe3E0X34/SxikthcvjCI/AAAAAAAAAQo/Xkka5B3w0lY/s640/gview1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/SxikoJ-YOjI/AAAAAAAAAQg/UuL-Ra-NSe8/s1600-h/gview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/SxikoJ-YOjI/AAAAAAAAAQg/UuL-Ra-NSe8/s640/gview.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Mozz Rockz!!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-2732774748641786731?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/2732774748641786731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/plan-your-calendar-for-mozilla-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2732774748641786731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2732774748641786731'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/plan-your-calendar-for-mozilla-free.html' title='Plan your Calendar for Mozilla Free Cultural Roadshow @ Chennai'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_wfGWe3E0X34/SxikthcvjCI/AAAAAAAAAQo/Xkka5B3w0lY/s72-c/gview1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-1207435531641416310</id><published>2009-12-03T21:47:00.000-08:00</published><updated>2009-12-03T21:47:19.972-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mozilla events'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla drumbeat'/><category scheme='http://www.blogger.com/atom/ns#' term='free cultual roadshow'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh talks'/><title type='text'>Mozilla Free Cultural RoadShow - Catch the Excitement @ CEG and IIT</title><content type='html'>&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;We love the web, and you do too. It creates huge opportunities along with new tensions.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;What will the web look like in 5, 10, or 25 years? Will it still be a platform for creativity, self-expression, and open commerce? Or will it be enclosed by private interests and enveloped by surveillance and censorship?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Mozilla is traveling from city to city to celebrate the open web and remix culture. Join some illuminating talks, to speak your mind, and to meet new friends. Prepare a 5minutes of Talk which adds to your fame @ Mozilla Drumbeat!!!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/SxihH01hyfI/AAAAAAAAAQY/CdS9rtB7mGg/s1600-h/409px-Drumbeatlogo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/SxihH01hyfI/AAAAAAAAAQY/CdS9rtB7mGg/s400/409px-Drumbeatlogo.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 class="widgettitle" style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Next dates&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt; &lt;/a&gt;&lt;li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt;December 8, 2009&lt;br /&gt;&lt;b&gt; Anna University, Chennai&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt; &lt;/a&gt;&lt;li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt;December 9, 2009&lt;br /&gt;&lt;b&gt; IIT, Madras&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt; &lt;/a&gt;&lt;li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt;December 14, 2009&lt;br /&gt;&lt;b&gt; Mount Carmel College, Bangalore&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt; &lt;/a&gt;&lt;li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt;December 16, 2009&lt;br /&gt;&lt;b&gt; CIS Office, Bangalore&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt; &lt;/a&gt;&lt;li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt;December 18, 2009&lt;br /&gt;&lt;b&gt; CEPT, Ahmedabad&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt; &lt;/a&gt;&lt;li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt;December 20, 2009&lt;br /&gt;&lt;b&gt; India International Centre (co-hosted by Magic Lantern), Delhi&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt; &lt;/a&gt;&lt;li&gt;&lt;a href="http://fcroadshow.net/?page_id=7"&gt;December 22, 2009&lt;br /&gt;&lt;b&gt; Jadavpur University, Kolkata&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: inherit;"&gt;&amp;nbsp;&lt;span style="font-size: small;"&gt;The Roadshow events are 100% free and open to everyone.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-1207435531641416310?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/1207435531641416310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/mozilla-free-cultural-roadshow-catch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1207435531641416310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/1207435531641416310'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/mozilla-free-cultural-roadshow-catch.html' title='Mozilla Free Cultural RoadShow - Catch the Excitement @ CEG and IIT'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_wfGWe3E0X34/SxihH01hyfI/AAAAAAAAAQY/CdS9rtB7mGg/s72-c/409px-Drumbeatlogo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3567134795119610799</id><published>2009-12-03T11:37:00.000-08:00</published><updated>2009-12-03T21:12:50.242-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JUG chennai meet'/><category scheme='http://www.blogger.com/atom/ns#' term='sans meet-up'/><category scheme='http://www.blogger.com/atom/ns#' term='sandy reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='jooma user group'/><category scheme='http://www.blogger.com/atom/ns#' term='ChennaiPy'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh talks'/><title type='text'>Joomla User Group- Welcome Chennai, Fabulous Start-Up Meet</title><content type='html'>Today 3rd December, 2009, I prepared Slides for my JUG presentation @ 3:00 PM and headed straight to Mary Brown @ Anna Nagar. It was 4:30 PM when Gokoul and JayaPrakash from P.M.R.I.T , Bro Rajesh, Swamy from Jaya Engineering College and his friend accompanied me at the venue for the meet. We were 6 , started with&amp;nbsp; FOSS talk , CMS , then I presented my ideas on JUG and its purpose and activities to be conducted. Everyone shared their ideas which helped us to better plan JUG Activities.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_wfGWe3E0X34/SxgQnowckOI/AAAAAAAAAQI/1GBJGejELsE/s1600-h/DSC03096.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_wfGWe3E0X34/SxgQnowckOI/AAAAAAAAAQI/1GBJGejELsE/s400/DSC03096.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;It was a wonderful day, where the meet had everything from Joomla to Nuggets and Burgers. Soon a new web-portal for Joomla User Group, chennai will be hosted (http://jug-chennai.co.cc will be our temporary webspace) We shared many issues on Joomla and our user group activities @ the meet. I hope JUG always stays active and contribute for Joomla in all possible ways it can, becoz Open Source Matters...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/SxgSSiBuNbI/AAAAAAAAAQQ/isWoChSqxp0/s1600-h/DSC03098.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/SxgSSiBuNbI/AAAAAAAAAQQ/isWoChSqxp0/s400/DSC03098.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;From Left: Gokoul (P.M.R.I.T), JayaPrakash(P.M.R.I.T), Santhosh.V (Arunai Engg), Mr.Rajesh(E-ndicusInfo Tech), Swamy(Jaya Engg), Swamy Friend(Jaya Engg), &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-3567134795119610799?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/3567134795119610799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/joomla-user-group-welcome-chennai.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3567134795119610799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/3567134795119610799'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/12/joomla-user-group-welcome-chennai.html' title='Joomla User Group- Welcome Chennai, Fabulous Start-Up Meet'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_wfGWe3E0X34/SxgQnowckOI/AAAAAAAAAQI/1GBJGejELsE/s72-c/DSC03096.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7518633130970713185</id><published>2009-11-30T21:43:00.000-08:00</published><updated>2009-11-30T21:43:46.366-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JUG chennai meet'/><category scheme='http://www.blogger.com/atom/ns#' term='JUG Launch'/><category scheme='http://www.blogger.com/atom/ns#' term='Sans Invitation'/><category scheme='http://www.blogger.com/atom/ns#' term='Joomla User Group'/><title type='text'>Joomla User Group - Start-Up Meet on 3rd December,2009</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;object allownetworking="all" allowscriptaccess="always" data="http://static.eventful.com/store/flash/widgets/countdownWidget.swf" height="238" type="application/x-shockwave-flash" width="468"&gt;&lt;param name ="flashVars" value="&amp;id=E0-001-026633035-3&amp;interfaceFolder=countdownView&amp;theme=0&amp;countDownClock=1&amp;title=Joomla User Group - Start-Up Meet&amp;uId=6e5ba69ec-6904-4761-e03a-618724e4dc7"&gt;&lt;param name="movie" value="http://static.eventful.com/store/flash/widgets/countdownWidget.swf" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here is the Invite for our first JUG meeting to be held at Anna Nagar. Celebration is about to Start!!! Get ready for the Exciting Stuffs to be explored through JUG Chennai!!!!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7518633130970713185?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7518633130970713185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/11/joomla-user-group-start-up-meet-on-3rd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7518633130970713185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7518633130970713185'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/11/joomla-user-group-start-up-meet-on-3rd.html' title='Joomla User Group - Start-Up Meet on 3rd December,2009'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8706194210257130782</id><published>2009-11-29T06:56:00.000-08:00</published><updated>2009-11-29T06:56:03.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSN Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax class'/><category scheme='http://www.blogger.com/atom/ns#' term='FSF TamilNadu Workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Sans Invitation'/><title type='text'>Free Software Foundation, Tamil Nadu Workshop @ SSN on Dec 5th and 6th - Book your Seats...</title><content type='html'>Wow..!!! Its now FSF, TN who will make my holidays more enjoyable. A Cup of Scripting , Linux Customization Salads, Python Feast...whats more to special this December!!!&amp;nbsp; Here goes the Invite...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_wfGWe3E0X34/SxKLMGRKnWI/AAAAAAAAAPo/ouqXt3XL2rk/s1600/ad_blueprint_logo.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_wfGWe3E0X34/SxKLMGRKnWI/AAAAAAAAAPo/ouqXt3XL2rk/s320/ad_blueprint_logo.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;span&gt;Hurry up Students !!! Click here &lt;a href="http://fsftn.org/content/workshopssn2" rel="nofollow" target="_blank"&gt;http://fsftn.org/content/workshopssn2&lt;/a&gt; to&amp;nbsp; register to the workshop. Only 120 Seats available !!!!&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span&gt;*Automatic enrollment to projects* of Free Software Foundation on&amp;nbsp; registering to the workshop. In the workshop you would learn :&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;- Business Models in Free Software &lt;br /&gt;&amp;nbsp; &amp;nbsp;- How to configure Linux for your day-to-day use? &lt;br /&gt;&amp;nbsp; &amp;nbsp;- Scripting Languages !! &lt;br /&gt;&amp;nbsp; &amp;nbsp;- Learn all these on-hands at Lab. &lt;br /&gt;&amp;nbsp; &amp;nbsp;- Learn Ajax. &lt;br /&gt;&amp;nbsp; &amp;nbsp;- Ever thought of having your own Operating System? Learn it, Build it!!! &lt;br /&gt;&amp;nbsp; &amp;nbsp;- Start working on Free Software projects with guidance from experts in Software industry.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Courier,Monospaced;"&gt;*This is the ideal way to use your holidays !!! Fun, Learn, Hack !!!!!!!* &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8706194210257130782?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8706194210257130782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/11/free-software-foundation-tamil-nadu.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8706194210257130782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8706194210257130782'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/11/free-software-foundation-tamil-nadu.html' title='Free Software Foundation, Tamil Nadu Workshop @ SSN on Dec 5th and 6th - Book your Seats...'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_wfGWe3E0X34/SxKLMGRKnWI/AAAAAAAAAPo/ouqXt3XL2rk/s72-c/ad_blueprint_logo.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-7600886979611531147</id><published>2009-11-29T04:33:00.000-08:00</published><updated>2009-11-29T04:53:19.498-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ChennaiPy'/><category scheme='http://www.blogger.com/atom/ns#' term='sanstalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Sandy voice'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh talks'/><category scheme='http://www.blogger.com/atom/ns#' term='sans review'/><title type='text'>ChennaiPy Session - I @ AUKBC-MIT</title><content type='html'>This is really a good start for chennaipy as it conducted its 1st session @ AUKBC- MIT Campus. This time, I reached the campus early and had my seat prior to the session start-up. 14 Members were in the session as it went and the session was filled with novice python group. Ms.Rajeshwari took the web-scrapping session and Mr.Jaganadh took Bio-Medical Text processing with python. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/SxJmdswR3TI/AAAAAAAAAPA/dYwnOaJKa_0/s1600/DSC00256.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_wfGWe3E0X34/SxJmdswR3TI/AAAAAAAAAPA/dYwnOaJKa_0/s320/DSC00256.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;To my surprise, the talks were over very soon and I was given a chance to share my experience in python programming. I was not prepared to face the audience, but still,&amp;nbsp; I managed to brief out my D-Bus Project and we had good discussions from all the attendees. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/SxJnU_LAD0I/AAAAAAAAAPI/o3pW5y4qAkM/s1600/DSC00252.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_wfGWe3E0X34/SxJnU_LAD0I/AAAAAAAAAPI/o3pW5y4qAkM/s320/DSC00252.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I am happy that from now ChennaiPy will regularly conduct session and I shall be a part in bringing out the sessions @ MIT which complements to better understanding of the language.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_wfGWe3E0X34/SxJoRPx3y1I/AAAAAAAAAPQ/jvlped5_Tvc/s1600/DSC00250.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_wfGWe3E0X34/SxJoRPx3y1I/AAAAAAAAAPQ/jvlped5_Tvc/s320/DSC00250.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This was a draft posted by Mr.Jaganadh, Professor @ MIT on the session:&lt;br /&gt;&lt;br /&gt;"This months chennaipy meet started at 3.10 p.m 28-11-09 at AU-KBC Research Centre MIT Campus of Anna University Chennai. Total 14 people attended the meeting. The first talk was given by Rajeswari S on WebScraping with Python, Santhosh give a talk on D-Bus programming with Python and Bio-medical text processing with python by Jaganadh G. There was discussion on IDE for Python, python web programming etc... The meeting ended by 04.50 p.m"&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_wfGWe3E0X34/SxJrzP-NTbI/AAAAAAAAAPg/5Ph2Ymgq064/s1600/DSC00251.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_wfGWe3E0X34/SxJrzP-NTbI/AAAAAAAAAPg/5Ph2Ymgq064/s320/DSC00251.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I thank Mr.Jaganadh, Mr.Surendar, MIT and NRCFOSS without them this session would have not been successful platform for us learn. I wish we must continue these session in future and bring out the best Python programmers in Chennai Region. &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-7600886979611531147?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/7600886979611531147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/11/chennaipy-session-i-aukbc-mit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7600886979611531147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/7600886979611531147'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/11/chennaipy-session-i-aukbc-mit.html' title='ChennaiPy Session - I @ AUKBC-MIT'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_wfGWe3E0X34/SxJmdswR3TI/AAAAAAAAAPA/dYwnOaJKa_0/s72-c/DSC00256.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-5617066121058245486</id><published>2009-10-27T10:54:00.000-07:00</published><updated>2009-10-27T10:54:33.599-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GYAN collective learning'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><category scheme='http://www.blogger.com/atom/ns#' term='santhosh'/><category scheme='http://www.blogger.com/atom/ns#' term='Arunai'/><title type='text'>GYAN - Collective Learning</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-5617066121058245486?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/5617066121058245486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/10/gyan-collective-learning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5617066121058245486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/5617066121058245486'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/10/gyan-collective-learning.html' title='GYAN - Collective Learning'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-906555913479786618</id><published>2009-09-08T21:31:00.000-07:00</published><updated>2009-09-08T21:32:54.241-07:00</updated><title type='text'>How to obtain the latest version of LAMP on Ubuntu:</title><content type='html'>(Apache 2.2 + MySQL 5.1 + PHP 5.2 + PERL 5.10 +PEAR + SQLite + ProFTPD + phpMyAdmin + Webalizer + phpSQLiteAdmin + XAMPP Control Panel)&lt;br /&gt;http://www.ubuntuforums.org/223410&lt;br /&gt;http://www.apachefriends.org/f/viewtopic.php?t=21531#108517&lt;br /&gt;&lt;br /&gt;The commands in this HOWTO must be entered in the terminal:&lt;br /&gt;Applications -&gt; Accessories -&gt; Terminal&lt;br /&gt;&lt;br /&gt;Download XAMPP to your desktop and extract the files:&lt;br /&gt;http://apachefriends.org/xampp-linux&lt;br /&gt;cd ~/Desktop&lt;br /&gt;wget http://www.apachefriends.org/download.php?xampp-linux-1.7.1.tar.gz&lt;br /&gt;sudo tar xvfz xampp-linux*.tar.gz -C /opt&lt;br /&gt;&lt;br /&gt;Create a XAMPP start menu entry:&lt;br /&gt;cd ~/.local/share/applications&lt;br /&gt;gedit xampp-control-panel.desktop&lt;br /&gt;&lt;br /&gt;Paste the following into the open file:&lt;br /&gt;[Desktop Entry]&lt;br /&gt;Comment=Start/Stop XAMPP&lt;br /&gt;Name=XAMPP Control Panel&lt;br /&gt;Exec=gksudo "python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py"&lt;br /&gt;Icon[en_CA]=/usr/share/icons/Tango/scalable/devices/network-wired.svg&lt;br /&gt;Encoding=UTF-8&lt;br /&gt;Terminal=false&lt;br /&gt;Name[en_CA]=XAMPP Control Panel&lt;br /&gt;Comment[en_CA]=Start/Stop XAMPP&lt;br /&gt;Type=Application&lt;br /&gt;Icon=/usr/share/icons/Tango/scalable/devices/network-wired.svg&lt;br /&gt;&lt;br /&gt;[Desktop Entry]&lt;br /&gt;Comment=Start/Stop XAMPP&lt;br /&gt;Name=XAMPP Control Panel&lt;br /&gt;Exec=gksudo /opt/lampp/share/xampp-control-panel/xampp-control-panel&lt;br /&gt;Icon[en_CA]=/opt/lampp/htdocs/xampp/img/logo-small.gif&lt;br /&gt;Encoding=UTF-8&lt;br /&gt;Terminal=false&lt;br /&gt;Name[en_CA]=XAMPP Control Panel&lt;br /&gt;Comment[en_CA]=Start/Stop XAMPP&lt;br /&gt;Type=Application&lt;br /&gt;Icon=/opt/lampp/htdocs/xampp/img/logo-small.gif&lt;br /&gt;&lt;br /&gt;Save and close the file.&lt;br /&gt;&lt;br /&gt;Publish:&lt;br /&gt;XAMPP uses /opt/lampp/htdocs as the root web directory, but you can publish pages in your home directory this way.&lt;br /&gt;cd ~&lt;br /&gt;mkdir public_html&lt;br /&gt;sudo ln -s ~/public_html /opt/lampp/htdocs/$USER&lt;br /&gt;&lt;br /&gt;Now any files and folders you place in ~/public_html will be&lt;br /&gt;published to your personal webserver.&lt;br /&gt;&lt;br /&gt;Start XAMPP via the terminal:&lt;br /&gt;cd /opt/lampp&lt;br /&gt;sudo ./lampp start&lt;br /&gt;&lt;br /&gt;Stop XAMPP (if necessary):&lt;br /&gt;cd /opt/lampp&lt;br /&gt;sudo ./lampp stop&lt;br /&gt;&lt;br /&gt;Via the XAMPP Control Panel:&lt;br /&gt;Applications -&gt; Other -&gt; XAMPP Control Panel&lt;br /&gt;&lt;br /&gt;If Apache2 or MySQL is already running, then XAMPP will not start. You must stop these applications, if you want to use XAMPP:&lt;br /&gt;sudo /etc/init.d/apache2 stop&lt;br /&gt;sudo /etc/init.d/mysql stop&lt;br /&gt;&lt;br /&gt;PHP5 is the default, but you can switch between PHP4 and PHP5, if you like:&lt;br /&gt;cd /opt/lampp&lt;br /&gt;sudo ./lampp php4&lt;br /&gt;sudo ./lampp php5&lt;br /&gt;&lt;br /&gt;Open your new webpages at:&lt;br /&gt;http://localhost/username/&lt;br /&gt;&lt;br /&gt;Security:&lt;br /&gt;http://apachefriends.org/xampp-linux/381&lt;br /&gt;&lt;br /&gt;1. The MySQL root user has a blank password.&lt;br /&gt;2. MySQL is accessible via your local network.&lt;br /&gt;3. ProFTPD has user “nobody” with password “lampp”.&lt;br /&gt;4. PhpMyAdmin is accessible via the local network.&lt;br /&gt;5. Examples are accessible via the local network.&lt;br /&gt;6. MySQL and Apache running under the same user “nobody”.&lt;br /&gt;&lt;br /&gt;To configure some of the security features of xampp:&lt;br /&gt;cd /opt/lampp&lt;br /&gt;sudo ./lampp security&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-906555913479786618?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/906555913479786618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/how-to-obtain-latest-version-of-lamp-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/906555913479786618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/906555913479786618'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/how-to-obtain-latest-version-of-lamp-on.html' title='How to obtain the latest version of LAMP on Ubuntu:'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8606778348943936646</id><published>2009-09-08T21:21:00.000-07:00</published><updated>2009-09-08T21:22:10.246-07:00</updated><title type='text'>The Origins of Linux - Linus Trovalds</title><content type='html'>&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WVTWCPoUt8w&amp;hl=en&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WVTWCPoUt8w&amp;hl=en&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8606778348943936646?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8606778348943936646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/origins-of-linux-linus-trovalds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8606778348943936646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8606778348943936646'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/origins-of-linux-linus-trovalds.html' title='The Origins of Linux - Linus Trovalds'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-4293277448524850541</id><published>2009-09-08T21:12:00.000-07:00</published><updated>2009-09-08T21:16:53.823-07:00</updated><title type='text'>Google Wave!!!! - The Wave of the Future!!!!</title><content type='html'>Delighted to hear another new makings of Google!!!!  Email+IM+Wiki+RealTimeCollaboration+Documents+Workflows+ServerSideBots+GoogleMagic+OpenStandards = Google Wave&lt;br /&gt;&lt;br /&gt;This is the "Wave" of the Future ;)&lt;br /&gt;&lt;br /&gt;Check this out!!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="853" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/v_UyVmITiYQ&amp;hl=en&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/v_UyVmITiYQ&amp;hl=en&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-4293277448524850541?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/4293277448524850541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/google-wave-wave-of-future.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4293277448524850541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/4293277448524850541'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/google-wave-wave-of-future.html' title='Google Wave!!!! - The Wave of the Future!!!!'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-8836863850082485148</id><published>2009-09-08T07:10:00.000-07:00</published><updated>2009-09-08T07:11:06.661-07:00</updated><title type='text'>Ride the D-Bus, Control your Linux desktop from the shell</title><content type='html'>What is the D-Bus?&lt;br /&gt;&lt;br /&gt;From the D-Bus documentation: "D-Bus is an inter-process communication mechanism—a medium for local communication between processes running on the same host. (Inter-host connects may be added in the future, but that is not what D-Bus is meant for). D-Bus is meant to be fast and lightweight, and is designed for use as a unified middleware layer underneath the main free desktop environments"&lt;br /&gt;&lt;br /&gt;So for the non technically inclined (why are you reading this anyway) ;) basically a simple way to think of D-Bus, is that it's a way for processes on an operating system to communicate with each other. That's probably a simple and non accurate enough wording, but it should help grasp the concept. Many utilities nowadays are implementing D-Bus connectivity. It is especially interesting (well for me anyway) to script some GUI elements like for example my KDE-4 desktop from the command line. This would help automate some tasks and is cool anyways. Let's see how to begin talking on the D-Bus&lt;br /&gt;&lt;br /&gt;In order to communicate with running applications on the D-Bus, we need a front end CLI application, or we could use a language binding (say python bindings). However, we will choose a CLI application. It is possible to use "dbus-launch", or the "qdbus" command part of Qt4. I will be using qdbus since it demonstrates the point and is faster to use. So, let's launch qdbus, and list the running communications buses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# qdbus&lt;br /&gt;:1.1&lt;br /&gt;org.kde.klauncher&lt;br /&gt;:1.10&lt;br /&gt;org.freedesktop.ScreenSaver&lt;br /&gt;org.kde.krunner&lt;br /&gt;org.kde.screensaver&lt;br /&gt;:1.12&lt;br /&gt;org.kde.plasma&lt;br /&gt;:1.1249&lt;br /&gt;... List continues&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So basically, qdbus now contacts the running session D-Bus and lists available buses. The buses are named in a reverse DNS style names as you can see. Some buses do not have names, but rather numbers, as far as I can see those represent specific sessions of some applications. Now we need to pick an interesting bus to talk on. I will run the following command to list only freedesktop dbuses, as I believe those should work whether you're running Gnome or KDE. So, it should help any reader follow along&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#qdbus | grep freedesktop&lt;br /&gt;org.freedesktop.ScreenSaver&lt;br /&gt;org.freedesktop.Notifications&lt;br /&gt;org.freedesktop.PowerManagement&lt;br /&gt;org.freedesktop.DBus&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;so, let's pick the ScreenSaver bus. In order to list the available objects on any specific bus, we call it like so:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#qdbus org.freedesktop.ScreenSaver&lt;br /&gt;/&lt;br /&gt;/App&lt;br /&gt;/Interface&lt;br /&gt;/KBookmarkManager&lt;br /&gt;/KBookmarkManager/konqueror&lt;br /&gt;/KDebug&lt;br /&gt;/MainApplication&lt;br /&gt;/ManagerIface_contact&lt;br /&gt;/ScreenSaver&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I mostly find only one "useful" object, in this case "/ScreenSaver". Let's contact that object, and list its avialable "methods". The methods of an object for those who have not done any object oriented coding before, is basically the list of actions or "things" this object can "do". So listing the methods:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# qdbus org.freedesktop.ScreenSaver /ScreenSaver&lt;br /&gt;signal void org.freedesktop.ScreenSaver.ActiveChanged(bool)&lt;br /&gt;method bool org.freedesktop.ScreenSaver.GetActive()&lt;br /&gt;method uint org.freedesktop.ScreenSaver.GetActiveTime()&lt;br /&gt;method uint org.freedesktop.ScreenSaver.GetSessionIdleTime()&lt;br /&gt;method uint org.freedesktop.ScreenSaver.Inhibit(QString application_name, QString reason_for_inhibit)&lt;br /&gt;method void org.freedesktop.ScreenSaver.Lock()&lt;br /&gt;method bool org.freedesktop.ScreenSaver.SetActive(bool e)&lt;br /&gt;method void org.freedesktop.ScreenSaver.SimulateUserActivity()&lt;br /&gt;method uint org.freedesktop.ScreenSaver.Throttle(QString application_name, QString reason_for_inhibit)&lt;br /&gt;method void org.freedesktop.ScreenSaver.UnInhibit(uint cookie)&lt;br /&gt;method void org.freedesktop.ScreenSaver.UnThrottle(uint cookie)&lt;br /&gt;method void org.kde.screensaver.configure()&lt;br /&gt;method void org.kde.screensaver.saverLockReady()&lt;br /&gt;method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface_name, QString property_name)&lt;br /&gt;method void org.freedesktop.DBus.Properties.Set(QString interface_name, QString property_name, QDBusVariant value)&lt;br /&gt;method QString org.freedesktop.DBus.Introspectable.Introspect()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hmm, interesting stuff. Can you see the following method:&lt;br /&gt;org.freedesktop.ScreenSaver.GetSessionIdleTime&lt;br /&gt;Obviously it gives you the session idle time, i.e. how long has the interactive user not touched his keyboard or mouse. This piece of information is interesting if you want your shell script to only do certain things when the user is not interactively using his machine. Without D-Bus, getting this kind of information would be almost impossible, or too tricky. Now how do we call this method you ask? easy! just append it to the command line:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime&lt;br /&gt;0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, the output from this command is a "0". Meaning the session idle time is zero! Everytime you execute this command, you get the same answer. Starting to guess why ? :) Basically, as you hit "enter" to run this command, you reset the session idle time back to zero! So, what do we do to test the functionality, try this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# sleep 5 ; qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime&lt;br /&gt;4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, that previous combo command sleeps for 5 seconds .. then executes the D-Bus query without touching any further keyboard keys, so this time we get an answer of "4" seconds. Don't know where that extra second slipped though :)&lt;br /&gt;&lt;br /&gt;Ok, as a second example let's focus on the following method:&lt;br /&gt;method bool org.freedesktop.ScreenSaver.SetActive(bool e)&lt;br /&gt;&lt;br /&gt;This method sets the screen saver active, i.e. it launches the screen saver from your shell command or script. Let's test it out:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive&lt;br /&gt;Error: org.freedesktop.DBus.Error.UnknownMethod&lt;br /&gt;No such method 'SetActive' in interface 'org.freedesktop.ScreenSaver' at object path '/ScreenSaver' (signature '')&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Oops, this time we got an error. Why? Basically the error is telling us that it cannot find that method we're calling with that "signature". A method signature usually means the arguments you pass to it and the return type. This simply means we're not calling the method the way it's meant to be called. The sharp shooters are going to instantly know this is because we missed the (bool e) at the end of the method. This means the method call is expecting a boolean (true/false) argument. So, let's call the screensaver method correctly this time:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive True&lt;br /&gt;true&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cool! We're now launching the screensaver from the command line. Let's see what else we can do:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yep, that locks the screen on demand, cool! I'm hungry for more. Let's see. Let's call that inhibit method. This will basically inhibit the screensaver from kicking in, even if your computer is idle. Why would that be useful ? Say you're watching a You-tube longish video, and AFAIK, Flash doesn't yet communicate that to the system, and thus the screensaver will kick in to interrupt the video playback. So, let's do it:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Inhibit "$$" "Testing D-Bus Interface"&lt;br /&gt;5822&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's explain those arguments we passed, the first one should be the application name, in my case, the special shell variable $$ is the PID for the currently executing shell. The second string is the "reason for inhibit"! The method call returns a cookie, i.e. a magic number that identifies my request. This is useful when you want to turn off the inhibit, i.e. return the system to its normal state. You would need to pass back that magic cookie. This is used by the system to identify the different inhibit requests. So finally let's uninhibit our screensaver using that cookie number&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.UnInhibit 5822&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cool! Are you starting to see the possibilities just yet? Hope you had fun on this D-Bus tour&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-8836863850082485148?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/8836863850082485148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/ride-d-bus-control-your-linux-desktop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8836863850082485148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/8836863850082485148'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/ride-d-bus-control-your-linux-desktop.html' title='Ride the D-Bus, Control your Linux desktop from the shell'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-2655371865155590866</id><published>2009-09-08T06:21:00.001-07:00</published><updated>2009-09-08T06:24:43.236-07:00</updated><title type='text'>Detecting Network Connectivity Using D-Bus</title><content type='html'>Preface&lt;br /&gt;&lt;br /&gt;The Intel® Mobile Internet Device (MID) platform provides a full internet experience in a pocket-sized form factor. Combining Moblin-based operating systems with the Intel® Atom™ processor, MIDs are able to run any application that has been built for the x86 architecture, including Adobe Flash 10* and Adobe AIR 1.5*. While the features of the devices that are and will be on the market vary depending on OEM and target market, there are several features that the devices share in common; small form factor, emphasis on internet connectivity rather than extensive storage, and alternate input methods.&lt;br /&gt;&lt;br /&gt;Although there are ultra-mobile computing devices in the market that run Microsoft Windows XP* or Windows Vista* and that are built on the same hardware platform as those running a Moblin-based operating systems such as Midinux* or Ubuntu* Mobile Edition, this series of whitepapers focuses entirely on Moblin-based MIDs. For information on how to retrieve this information from Windows operating systems, please consult that platform’s documentation, or see the Intel® Mobile Platform SDK.&lt;br /&gt;&lt;br /&gt;The functionality described in this paper is also provided via the Platform Awareness Service, a light-weight, D-Bus initiated platform information provider. However, because the final software stack for each device is influenced heavily by the OEM and Service Providers, this service may not be pre-installed on some Moblin-based devices. We have therefore written these whitepapers in order to simplify access to this information on platforms that do not have this service installed.&lt;br /&gt;&lt;br /&gt;For further information on how to use D-Bus to retrieve information from the Platform Awareness Service, please refer to the Platform Awareness Service documentation.&lt;br /&gt;&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;With the advances of computer networking within the last decade, devices can be connected via a myriad of technologies and protocols, wired and wireless. This connectivity has become so prevalent that many applications can’t function without it. Some application functions take advantage of network communications such as email, network gaming, web browser, etc. Some real-time applications, especialy networking games, require a large bandwidth and high network reliability. These applications must be aware of the network connectivity. Mobile computing devices such as a laptop or Mobile Internet Device (MID), frequently use wireless technology and thus network awareness becomes even more important. Instead of letting each application write its own connectivity awareness code, we propose a uniform way to convey the connectivity information to applications. Laptop/MID applications can then refer to our system to get information on network connectivity and make proper decisions at run time.&lt;br /&gt;&lt;br /&gt;As part of a whole project, MID Platform Awareness, this paper shows how we can call connectivity awareness methods and get event notifications.&lt;br /&gt;&lt;br /&gt;The system was developed on Moblin[4], a Linux* platform, and uses D-Bus communication[1] to transport information to users [1]. Applications which want to get connectivity information need to use D-Bus as well. In the following sections, we briefly describe D-Bus and how we implement network connectivity awareness service using D-Bus. We show examples of how an application can retrieve the network connectivity information; (1)whether or not the device is connecting to a network, (2)whether or not the device can reach a given website, (3)the latency of the network when the device does connect, (4)the data rate involved when the device reaches a website, (5)the media type of the current network, and (6)the link speed of the network.&lt;br /&gt;&lt;br /&gt;Background on D-Bus&lt;br /&gt;&lt;br /&gt;D-Bus is a fast, lightweight message system which allows applications to communicate one on one or to broadcast messages to subscribers, (inter-process communication). [2]. D-Bus can be used as low-level API or via a higher level binding, such as Qt, Python*, Java*, C#, or Perl. This paper shows an application written in C using Glib bindings. Glib is the base library of GNOME and provides an object-based, event-driven environment.&lt;br /&gt;&lt;br /&gt;Two buses are defined in D-Bus: the system bus and the session bus. The system bus allows communication between an application and the operating system while the session bus is designed to allow communication between two applications.&lt;br /&gt;&lt;br /&gt;In order to use D-Bus, we need to understand a few basics. First, an object is an endpoint on the bus that is created by an application in the context of that application’s connection to the bus. Objects have names, and these names are called object paths. We can find an object via its path. A proxy allows clients to reference objects on the bus. Once we find an object, we usually keep a proxy to that object so we can subsequently refer to that object without searching again.&lt;br /&gt;&lt;br /&gt;An object can perform specific operations, referred to as methods. Thus, a client can send a request to an object and ask the object to invoke a method. The object then executes the method (if the method exists) and the result is sent back to the client. If a method requires input parameters, these parameters are passed with the request. The result can be one or more output parameters, which are sent back to the client in the reply message. At the D-Bus layer, this method invocation/message passing sequence occurs asynchronously; the glib wrapper for the D-Bus object proxy allows the methods to be called either synchronously or asynchronously.&lt;br /&gt;&lt;br /&gt;An object can also emit an event, or signal. When a signal is generated by an object, it is broadcasted to any interested observers. Signals can also carry parameters. Methods and Signals are embedded members of an object that can be grouped into an interface. An object can declare one or many interfaces.&lt;br /&gt;&lt;br /&gt;In order to generate dbus-glib binding code, we use a tool called dbus-binding-tool. We first create an XML file, referred to as an Introspection XML file, in which we describe the methods and signals. Defining the interface this way ensures that clients can discover and introspect our D-Bus service. An example of the introspection XML is shown below:&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. &lt;?xml version="1.0" encoding="UTF-8" ?&gt;  &lt;br /&gt;   2. &lt;!DOCTYPE node PUBLIC   &lt;br /&gt;   3. "-//freedesktop//DTD D-Bus Object Introspection 1.0//EN"  &lt;br /&gt;   4. "http://standards.freedesktop.org/dbus/1.0/introspect.dtd"&gt;  &lt;br /&gt;   5. &lt;node name="/org/moblin/Platform"&gt;  &lt;br /&gt;   6.   &lt;interface name="org.moblin.Platform.Connection"&gt;  &lt;br /&gt;   7.        &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="org_moblin_platform_connection"/&gt;  &lt;br /&gt;   8.        &lt;method name="IsConnected"&gt;  &lt;br /&gt;   9.               &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="isConnected"/&gt;  &lt;br /&gt;  10.               &lt;arg type="b" name="isConnected" direction="out" /&gt;  &lt;br /&gt;  11.        &lt;/method&gt;  &lt;br /&gt;  12.        &lt;method name="IsReachable"&gt;  &lt;br /&gt;  13.               &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="isReachable"/&gt;  &lt;br /&gt;  14.               &lt;arg type="s" name="URI" direction="in" /&gt;  &lt;br /&gt;  15.               &lt;arg type="b" name="isReachable" direction="out" /&gt;  &lt;br /&gt;  16.        &lt;/method&gt;  &lt;br /&gt;  17.        &lt;method name="GetLatency"&gt;  &lt;br /&gt;  18.               &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getLatency"/&gt;  &lt;br /&gt;  19.               &lt;arg type="s" name="URI" direction="in" /&gt;  &lt;br /&gt;  20.               &lt;arg type="d" name="seconds" direction="out" /&gt;  &lt;br /&gt;  21.        &lt;/method&gt;  &lt;br /&gt;  22.        &lt;method name="GetDataRate"&gt;  &lt;br /&gt;  23.               &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getDataRate"/&gt;  &lt;br /&gt;  24.               &lt;arg type="s" name="URI" direction="in" /&gt;  &lt;br /&gt;  25.               &lt;arg type="d" name="KiloBytesPerSecond" direction="out" /&gt;  &lt;br /&gt;  26.        &lt;/method&gt;  &lt;br /&gt;  27.        &lt;method name="GetMediaType"&gt;  &lt;br /&gt;  28.               &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getMediaType"/&gt;  &lt;br /&gt;  29.               &lt;arg type="s" name="mediaType" direction="out" /&gt;  &lt;br /&gt;  30.        &lt;/method&gt;  &lt;br /&gt;  31.        &lt;method name="GetLinkSpeed"&gt;  &lt;br /&gt;  32.               &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getLinkSpeed"/&gt;  &lt;br /&gt;  33.               &lt;arg type="d" name="kpbs" direction="out" /&gt;  &lt;br /&gt;  34.        &lt;/method&gt;  &lt;br /&gt;  35.                 &lt;br /&gt;  36.        &lt;signal name="Connected" /&gt;  &lt;br /&gt;  37.        &lt;signal name="Disconnected" /&gt;             &lt;br /&gt;  38.    &lt;/interface&gt;  &lt;br /&gt;  39. &lt;/node&gt;  &lt;br /&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8" ?&gt;&lt;br /&gt;&lt;!DOCTYPE node PUBLIC &lt;br /&gt;"-//freedesktop//DTD D-Bus Object Introspection 1.0//EN"&lt;br /&gt;"http://standards.freedesktop.org/dbus/1.0/introspect.dtd"&gt;&lt;br /&gt;&lt;node name="/org/moblin/Platform"&gt;&lt;br /&gt;  &lt;interface name="org.moblin.Platform.Connection"&gt;&lt;br /&gt;       &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="org_moblin_platform_connection"/&gt;&lt;br /&gt;       &lt;method name="IsConnected"&gt;&lt;br /&gt;              &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="isConnected"/&gt;&lt;br /&gt;              &lt;arg type="b" name="isConnected" direction="out" /&gt;&lt;br /&gt;       &lt;/method&gt;&lt;br /&gt;       &lt;method name="IsReachable"&gt;&lt;br /&gt;              &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="isReachable"/&gt;&lt;br /&gt;              &lt;arg type="s" name="URI" direction="in" /&gt;&lt;br /&gt;              &lt;arg type="b" name="isReachable" direction="out" /&gt;&lt;br /&gt;       &lt;/method&gt;&lt;br /&gt;       &lt;method name="GetLatency"&gt;&lt;br /&gt;              &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getLatency"/&gt;&lt;br /&gt;              &lt;arg type="s" name="URI" direction="in" /&gt;&lt;br /&gt;              &lt;arg type="d" name="seconds" direction="out" /&gt;&lt;br /&gt;       &lt;/method&gt;&lt;br /&gt;       &lt;method name="GetDataRate"&gt;&lt;br /&gt;              &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getDataRate"/&gt;&lt;br /&gt;              &lt;arg type="s" name="URI" direction="in" /&gt;&lt;br /&gt;              &lt;arg type="d" name="KiloBytesPerSecond" direction="out" /&gt;&lt;br /&gt;       &lt;/method&gt;&lt;br /&gt;       &lt;method name="GetMediaType"&gt;&lt;br /&gt;              &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getMediaType"/&gt;&lt;br /&gt;              &lt;arg type="s" name="mediaType" direction="out" /&gt;&lt;br /&gt;       &lt;/method&gt;&lt;br /&gt;       &lt;method name="GetLinkSpeed"&gt;&lt;br /&gt;              &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getLinkSpeed"/&gt;&lt;br /&gt;              &lt;arg type="d" name="kpbs" direction="out" /&gt;&lt;br /&gt;       &lt;/method&gt;&lt;br /&gt;              &lt;br /&gt;       &lt;signal name="Connected" /&gt;&lt;br /&gt;       &lt;signal name="Disconnected" /&gt;           &lt;br /&gt;   &lt;/interface&gt;&lt;br /&gt;&lt;/node&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this introspection XML file, an interface called org.moblin.Platform.Connection defines six methods:&lt;br /&gt;IsConnected, IsReachable, GetLatency, GetDatRate, GetMediaType and GetLinkSpeed. The annotation XML tags tell dbus-binding-tool what the name of the implementing C function should be. For example, IsConnected is the name of the method that will be visible to users over D-Bus. Internally, we need to implement a C function called isConnected. Method parameters and return values are both specified using the arg XML tag. The direction attribute for a parameter is "in"; for return values, the direction attribute is "out". Note that parameters and return values both have name attributes.&lt;br /&gt;&lt;br /&gt;The type attribute of the arg XML tag indicates the data type of the parameter or return value. For example, the value "b" in the IsConnected method return value indicates that the method returns a Boolean. The second method, IsReachable, takes a string parameter representing the target URI (Uniform Resource Identifier) and returns a Boolean value. The next two methods, GetLatency and GetDataRate, also take a string parameter representing the URI and return a double representing seconds and kilobytes per second, respectively. The output of GetMediaType is a string. Finally, the output of the last method, GetLinkSpeed, is a Double data type, representing the number of kilobits per second.&lt;br /&gt;&lt;br /&gt;Two signals are defined in the introspection XML file. The signal "Connected" is generated when the system changes state from having no connection to having at least one connection. The "Disconnected" signal is generated when the when the system changes state from having at least one connection to having no connections.&lt;br /&gt;&lt;br /&gt;Below are primary steps to implement a D-Bus service. For more details, look here.&lt;br /&gt;&lt;br /&gt;    * Run dbus-binding-tool for an introspection XML file to generate dbus-glib binding code&lt;br /&gt;    * Acquire the D-Bus GObject wrapper&lt;br /&gt;    * Implement the instance initialization&lt;br /&gt;    * Implement the methods&lt;br /&gt;    * Register the object on the D-Bus&lt;br /&gt;&lt;br /&gt;To call the methods implemented on a remote object, a client needs to follow the following steps:&lt;br /&gt;&lt;br /&gt;    * Connect to the bus&lt;br /&gt;    * Create a proxy object&lt;br /&gt;    * Invoke the methods on the proxy object.&lt;br /&gt;&lt;br /&gt;The connectivity awareness service below uses D-Bus as a communication channel to send information to clients regarding network connectivity. Clients can thus use D-Bus to get connectivity information by querying the methods provided by the connectivity service. Client applications can also listen for the signals that the connectivity awareness service generates. The methods and events mentioned in the introspection file are implemented by the connectivity awareness service.&lt;br /&gt;&lt;br /&gt;Getting Network Connectivity Information&lt;br /&gt;&lt;br /&gt;The connectivity awareness service provides the means to query the following connectivity information on the computer where the service is installed.&lt;br /&gt;&lt;br /&gt;Detecting the network connection&lt;br /&gt;&lt;br /&gt;A networked application obviously requires an established network connection. Before allocating resources for a network transaction, it is useful to know whether or not the system has an established network connection. Therefore, the network connectivity service provides a method called IsConnected, which returns a Boolean value confirming the status of the network. The network connectivity service checks the status of all network devices on the computer. If at least one network device has an established connection, the Boolean value TRUE is returned. If all network devices on the computer are not running, the Boolean value FALSE is returned. To query the connectivity, the application first must bind to D-Bus service as shown in the following example&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. #include &lt;dbus/dbus.h&gt; &lt;br /&gt;   2. #include &lt;stdbool.h&gt; &lt;br /&gt;   3. #include &lt;unistd.h&gt; &lt;br /&gt;   4. #include &lt;stdio.h&gt; &lt;br /&gt;   5. #include &lt;stdlib.h&gt; &lt;br /&gt;   6. #include &lt;dbus/dbus-glib-bindings.h&gt;  &lt;br /&gt;   7.   &lt;br /&gt;   8. #define PLATFORM_SERVICE          "org.moblin.Platform" &lt;br /&gt;   9. #define PLATFORM_PATH                    "/org/moblin/Platform" &lt;br /&gt;  10. #define PLATFORM_CONNECTION_IF    "org.moblin.Platform.Connection" &lt;br /&gt;  11.   &lt;br /&gt;  12. int main(int argc, char** argv) &lt;br /&gt;  13. { &lt;br /&gt;  14.        DBusGConnection* conn; &lt;br /&gt;  15.        GError *error; &lt;br /&gt;  16.        DBusGProxy *platformProxy; &lt;br /&gt;  17.   &lt;br /&gt;  18.        g_type_init(); &lt;br /&gt;  19.        error = NULL; &lt;br /&gt;  20.        conn = dbus_g_bus_get(DBUS_BUS_SESSION, &amp;error); &lt;br /&gt;  21.   &lt;br /&gt;  22.        // Create the proxy Platform &lt;br /&gt;  23.        platformProxy = dbus_g_proxy_new_for_name(conn, &lt;br /&gt;  24.               PLATFORM_SERVICE,          // target for the method call &lt;br /&gt;  25.                PLATFORM_PATH,                   // object to call on &lt;br /&gt;  26.                PLATFORM_CONNECTION_IF);  // interface to call on &lt;br /&gt;  27.   &lt;br /&gt;  28.       gboolean result; &lt;br /&gt;  29.   &lt;br /&gt;  30.       if (!dbus_g_proxy_call(platformProxy, "IsConnected", &amp;error,  &lt;br /&gt;  31.                             G_TYPE_INVALID, &lt;br /&gt;  32.                             G_TYPE_BOOLEAN, &amp;result, &lt;br /&gt;  33.                             G_TYPE_INVALID)) &lt;br /&gt;  34.       { &lt;br /&gt;  35.               g_printerr("Failed to call remotely: %s\n", &lt;br /&gt;  36.                                 error-&gt;message); &lt;br /&gt;  37.               g_error_free(error); &lt;br /&gt;  38.       } &lt;br /&gt;  39.       else &lt;br /&gt;  40.               printf ("Remote call successes with returned value: %s\n", result? "TRUE" : "FALSE"); &lt;br /&gt;  41.   &lt;br /&gt;  42.        . . . . . . . . . . . . . . . . . . . . . . &lt;br /&gt;  43.        . . . . . . . . . . . . . . . . . . . . . . &lt;br /&gt;  44.        . . . . . . . . . . . . . . . . . . . . . . &lt;br /&gt;  45.   &lt;br /&gt;  46.        return 0; &lt;br /&gt;  47. }  &lt;br /&gt;&lt;br /&gt;#include &lt;dbus/dbus.h&gt;&lt;br /&gt;#include &lt;stdbool.h&gt;&lt;br /&gt;#include &lt;unistd.h&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include &lt;dbus/dbus-glib-bindings.h&gt; &lt;br /&gt; &lt;br /&gt;#define PLATFORM_SERVICE          "org.moblin.Platform"&lt;br /&gt;#define PLATFORM_PATH                    "/org/moblin/Platform"&lt;br /&gt;#define PLATFORM_CONNECTION_IF    "org.moblin.Platform.Connection"&lt;br /&gt; &lt;br /&gt;int main(int argc, char** argv)&lt;br /&gt;{&lt;br /&gt;       DBusGConnection* conn;&lt;br /&gt;       GError *error;&lt;br /&gt;       DBusGProxy *platformProxy;&lt;br /&gt; &lt;br /&gt;       g_type_init();&lt;br /&gt;       error = NULL;&lt;br /&gt;       conn = dbus_g_bus_get(DBUS_BUS_SESSION, &amp;error);&lt;br /&gt; &lt;br /&gt;       // Create the proxy Platform&lt;br /&gt;       platformProxy = dbus_g_proxy_new_for_name(conn,&lt;br /&gt;              PLATFORM_SERVICE,          // target for the method call&lt;br /&gt;               PLATFORM_PATH,                   // object to call on&lt;br /&gt;               PLATFORM_CONNECTION_IF);  // interface to call on&lt;br /&gt; &lt;br /&gt;      gboolean result;&lt;br /&gt; &lt;br /&gt;      if (!dbus_g_proxy_call(platformProxy, "IsConnected", &amp;error, &lt;br /&gt;                            G_TYPE_INVALID,&lt;br /&gt;                            G_TYPE_BOOLEAN, &amp;result,&lt;br /&gt;                            G_TYPE_INVALID))&lt;br /&gt;      {&lt;br /&gt;              g_printerr("Failed to call remotely: %s\n",&lt;br /&gt;                                error-&gt;message);&lt;br /&gt;              g_error_free(error);&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;              printf ("Remote call successes with returned value: %s\n", result? "TRUE" : "FALSE");&lt;br /&gt; &lt;br /&gt;       . . . . . . . . . . . . . . . . . . . . . .&lt;br /&gt;       . . . . . . . . . . . . . . . . . . . . . .&lt;br /&gt;       . . . . . . . . . . . . . . . . . . . . . .&lt;br /&gt; &lt;br /&gt;       return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note that the application invokes the method IsConnected implemented in the connectivity awareness service: no input is required, and the method returns TRUE if the computer is connected to a network.&lt;br /&gt;&lt;br /&gt;The back-end implementation of this method basically computes the list of network adapters available, and confirms the connection status if there is at least one network adapter running. The function detecting whether or not a network adapter is running, is shown below&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. netdev_ret netdev_get_running(netdev_dev *dev, // in  &lt;br /&gt;   2.                      netdev_running *running)     // out &lt;br /&gt;   3. { &lt;br /&gt;   4.        struct ifreq ifr; &lt;br /&gt;   5.        if(_get_ifreq(dev-&gt;ifname, SIOCGIFFLAGS, &amp;ifr) != NETDEV_SUCCESS) &lt;br /&gt;   6.        { &lt;br /&gt;   7.               running = RUNNING_UNKNOWN; &lt;br /&gt;   8.               return NETDEV_ERROR; &lt;br /&gt;   9.        } &lt;br /&gt;  10.   &lt;br /&gt;  11.        short flags = ifr.ifr_flags; &lt;br /&gt;  12.        if(flags &amp; IFF_RUNNING) &lt;br /&gt;  13.        { &lt;br /&gt;  14.               *running = RUNNING_RUN; &lt;br /&gt;  15.        } &lt;br /&gt;  16.        else &lt;br /&gt;  17.        { &lt;br /&gt;  18.               *running = RUNNING_STOP; &lt;br /&gt;  19.        } &lt;br /&gt;  20.   &lt;br /&gt;  21.        return NETDEV_SUCCESS; &lt;br /&gt;  22. } &lt;br /&gt;  23.   &lt;br /&gt;&lt;br /&gt;netdev_ret netdev_get_running(netdev_dev *dev, // in &lt;br /&gt;                     netdev_running *running)     // out&lt;br /&gt;{&lt;br /&gt;       struct ifreq ifr;&lt;br /&gt;       if(_get_ifreq(dev-&gt;ifname, SIOCGIFFLAGS, &amp;ifr) != NETDEV_SUCCESS)&lt;br /&gt;       {&lt;br /&gt;              running = RUNNING_UNKNOWN;&lt;br /&gt;              return NETDEV_ERROR;&lt;br /&gt;       }&lt;br /&gt; &lt;br /&gt;       short flags = ifr.ifr_flags;&lt;br /&gt;       if(flags &amp; IFF_RUNNING)&lt;br /&gt;       {&lt;br /&gt;              *running = RUNNING_RUN;&lt;br /&gt;       }&lt;br /&gt;       else&lt;br /&gt;       {&lt;br /&gt;              *running = RUNNING_STOP;&lt;br /&gt;       }&lt;br /&gt; &lt;br /&gt;       return NETDEV_SUCCESS;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Detecting HTTP reachability&lt;br /&gt;&lt;br /&gt;The second method queries the reachability of a specified website. When getting this request, the connectivity service forms a HTTP GET message[5] and sends it to the specified address (web address) at port 80 (the typical port for HTTP protocol). The socket timeout is set to 3 seconds in this implementation: the service will wait for a HTTP response with status 200[5] before disconnecting the socket. This method, IsReachable, requires a string parameter as the target address (web address) and returns a Boolean value confirming whether or not the web address can be reachable within the socket timeout. The format of the valid entry takes the protocol (http in this case) follows it with the URI. Examples of valid inputs are shown below&lt;br /&gt;&lt;br /&gt;"http://www.intel.com/", "http://www.google.com/", "http://www.yahoo.com/", etc ...&lt;br /&gt;&lt;br /&gt;The third method, GetLatency, computes the time delay between sending a HTTP GET message and receiving the reply. This method takes an input parameter which is the URI of the website and returns a value of type double, representing the time in seconds. If the socket timeout expires, this method returns a null value.&lt;br /&gt;&lt;br /&gt;The fourth method, GetDataRate, calculates the data rate when sending a HTTP GET message and receiving the reply. This method takes an input parameter which is the URI of the website and returns a value of type double representing kilobyte per second (kBps). If the socket timeout expires, this method returns a null value. Data rate is computed using the following formula:&lt;br /&gt;&lt;br /&gt;(length of HTTP GET sent + length of HTTP reply) / latency&lt;br /&gt;&lt;br /&gt;Code referring to these D-Bus methods is shown below.&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. int result1; &lt;br /&gt;   2.   &lt;br /&gt;   3.       if (!dbus_g_proxy_call(platformProxy, "IsReachable", &amp;error, &lt;br /&gt;   4.                             G_TYPE_STRING, "http://www.intel.com/", &lt;br /&gt;   5.                             G_TYPE_INVALID, &lt;br /&gt;   6.                             G_TYPE_BOOLEAN, &amp;result1, &lt;br /&gt;   7.                             G_TYPE_INVALID)) &lt;br /&gt;   8.       { &lt;br /&gt;   9.               g_printerr("Failed to call remotely: %s\n", &lt;br /&gt;  10.                      error-&gt;message); &lt;br /&gt;  11.               g_error_free(error); &lt;br /&gt;  12.       } &lt;br /&gt;  13.        else &lt;br /&gt;  14.                 printf ("Remote call successes with returned value: %s\n", result1? "TRUE" : "FALSE"); &lt;br /&gt;  15.   &lt;br /&gt;  16.       gdouble result2; &lt;br /&gt;  17.   &lt;br /&gt;  18.       if (!dbus_g_proxy_call(platformProxy, "GetLatency", &amp;error, &lt;br /&gt;  19.                             G_TYPE_STRING, "http://www.intel.com/", &lt;br /&gt;  20.                             G_TYPE_INVALID, &lt;br /&gt;  21.                             G_TYPE_DOUBLE, &amp;result2, &lt;br /&gt;  22.                             G_TYPE_INVALID)) &lt;br /&gt;  23.       { &lt;br /&gt;  24.               g_printerr("Failed to call remotely: %s\n", &lt;br /&gt;  25.                      error-&gt;message); &lt;br /&gt;  26.               g_error_free(error); &lt;br /&gt;  27.       } &lt;br /&gt;  28.       else &lt;br /&gt;  29.               printf ("Remote call successes with returned value: %6.3f seconds\n", result2); &lt;br /&gt;  30.   &lt;br /&gt;  31.   &lt;br /&gt;  32.       if (!dbus_g_proxy_call(platformProxy, "GetDataRate", &amp;error, &lt;br /&gt;  33.                             G_TYPE_STRING, "http://www.intel.com/", &lt;br /&gt;  34.                             G_TYPE_INVALID, &lt;br /&gt;  35.                             G_TYPE_DOUBLE, &amp;result2, &lt;br /&gt;  36.                             G_TYPE_INVALID)) &lt;br /&gt;  37.       { &lt;br /&gt;  38.               g_printerr("Failed to call remotely: %s\n", &lt;br /&gt;  39.                      error-&gt;message); &lt;br /&gt;  40.               g_error_free(error); &lt;br /&gt;  41.       } &lt;br /&gt;  42.               else &lt;br /&gt;  43.                      printf ("Remote call successes with returned value: %8.2f KB/sec\n", result2);  &lt;br /&gt;&lt;br /&gt;              int result1;&lt;br /&gt; &lt;br /&gt;      if (!dbus_g_proxy_call(platformProxy, "IsReachable", &amp;error,&lt;br /&gt;                            G_TYPE_STRING, "http://www.intel.com/",&lt;br /&gt;                            G_TYPE_INVALID,&lt;br /&gt;                            G_TYPE_BOOLEAN, &amp;result1,&lt;br /&gt;                            G_TYPE_INVALID))&lt;br /&gt;      {&lt;br /&gt;              g_printerr("Failed to call remotely: %s\n",&lt;br /&gt;                     error-&gt;message);&lt;br /&gt;              g_error_free(error);&lt;br /&gt;      }&lt;br /&gt;       else&lt;br /&gt;                printf ("Remote call successes with returned value: %s\n", result1? "TRUE" : "FALSE");&lt;br /&gt; &lt;br /&gt;      gdouble result2;&lt;br /&gt; &lt;br /&gt;      if (!dbus_g_proxy_call(platformProxy, "GetLatency", &amp;error,&lt;br /&gt;                            G_TYPE_STRING, "http://www.intel.com/",&lt;br /&gt;                            G_TYPE_INVALID,&lt;br /&gt;                            G_TYPE_DOUBLE, &amp;result2,&lt;br /&gt;                            G_TYPE_INVALID))&lt;br /&gt;      {&lt;br /&gt;              g_printerr("Failed to call remotely: %s\n",&lt;br /&gt;                     error-&gt;message);&lt;br /&gt;              g_error_free(error);&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;              printf ("Remote call successes with returned value: %6.3f seconds\n", result2);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;      if (!dbus_g_proxy_call(platformProxy, "GetDataRate", &amp;error,&lt;br /&gt;                            G_TYPE_STRING, "http://www.intel.com/",&lt;br /&gt;                            G_TYPE_INVALID,&lt;br /&gt;                            G_TYPE_DOUBLE, &amp;result2,&lt;br /&gt;                            G_TYPE_INVALID))&lt;br /&gt;      {&lt;br /&gt;              g_printerr("Failed to call remotely: %s\n",&lt;br /&gt;                     error-&gt;message);&lt;br /&gt;              g_error_free(error);&lt;br /&gt;      }&lt;br /&gt;              else&lt;br /&gt;                     printf ("Remote call successes with returned value: %8.2f KB/sec\n", result2);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The back-end implementation of the above three methods shares a common function: this function parses the input URI and then searches for the URI reachability using HTTP protocol. The parsing function validates the URI and retrieves the target IP address. The reachability function forms a HTTP GET message and sends to the target IP address at port 80. The reachability is confirmed if a HTTP reply message is received within a timeout limit. Readers are encouraged to refer to the source code of the MID Platform Awareness project for the implementation. For illustration, only the reachability function is shown below&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. bool HTTPIsReachable( &lt;br /&gt;   2.               unsigned int *pTime,       // in msec &lt;br /&gt;   3.               double *pRate,             // in KB/sec &lt;br /&gt;   4.               PURI_INFO pUri) &lt;br /&gt;   5. { &lt;br /&gt;   6.               bool bRet = false; &lt;br /&gt;   7.               unsigned long StartTime, StopTime; &lt;br /&gt;   8.               int dwStatusCode; &lt;br /&gt;   9.               int conn; &lt;br /&gt;  10.               int Len = 0; &lt;br /&gt;  11.         &lt;br /&gt;  12.               if (pTime) &lt;br /&gt;  13.                      *pTime = 0; &lt;br /&gt;  14.   &lt;br /&gt;  15.               if ( pUri-&gt;Port == 0 ) &lt;br /&gt;  16.                      pUri-&gt;Port = HTTPPORT; &lt;br /&gt;  17.   &lt;br /&gt;  18.               StartTime = getTime(); &lt;br /&gt;  19.               if (pUri-&gt;DestPath) &lt;br /&gt;  20.                         conn = (int)socketClient( pUri-&gt;pHostIP, pUri-&gt;Port, 0); &lt;br /&gt;  21.   &lt;br /&gt;  22.                 if (conn &lt; 0) &lt;br /&gt;  23.               { &lt;br /&gt;  24.                      printf("conn&lt;0\n"); &lt;br /&gt;  25.                        goto GracefulExit; &lt;br /&gt;  26.               } &lt;br /&gt;  27.   &lt;br /&gt;  28.               char req[1024]; &lt;br /&gt;  29.               sprintf( req, "GET /%s HTTP/1.0\r\nHost: %s\r\n", pUri-&gt;FileName, pUri-&gt;DestPath); &lt;br /&gt;  30.                strcat( req, "User-Agent: hget/"  LIBHTTP_VERSION "\r\n"); &lt;br /&gt;  31.                      strcat( req, "Pragma: no-cache\r\n" ); &lt;br /&gt;  32.               strcat( req, "Accept: */*\r\n\r\n" ); &lt;br /&gt;  33.               dwStatusCode = HttpRequest(conn, &amp;Len, req);    // in Bytes &lt;br /&gt;  34.               close(conn); &lt;br /&gt;  35.   &lt;br /&gt;  36.               StopTime = getTime(); &lt;br /&gt;  37.   &lt;br /&gt;  38.               printf("return code %d\n", dwStatusCode); &lt;br /&gt;  39.               if ( dwStatusCode == 200 || pUri-&gt;FileName == 0 ) &lt;br /&gt;  40.               { &lt;br /&gt;  41.                      bRet = true; &lt;br /&gt;  42.                      if (pTime) &lt;br /&gt;  43.                      { &lt;br /&gt;  44.                            unsigned int st; &lt;br /&gt;  45.                            st = StopTime - StartTime;                // in msec &lt;br /&gt;  46.                            *pTime = st; &lt;br /&gt;  47.                            *pRate = (double)Len / (double)st;              // in KB/sec &lt;br /&gt;  48.                      } &lt;br /&gt;  49.               } &lt;br /&gt;  50.   &lt;br /&gt;  51.        GracefulExit: &lt;br /&gt;  52.               return bRet; &lt;br /&gt;  53. } &lt;br /&gt;  54.   &lt;br /&gt;&lt;br /&gt;bool HTTPIsReachable(&lt;br /&gt;              unsigned int *pTime,       // in msec&lt;br /&gt;              double *pRate,             // in KB/sec&lt;br /&gt;              PURI_INFO pUri)&lt;br /&gt;{&lt;br /&gt;              bool bRet = false;&lt;br /&gt;              unsigned long StartTime, StopTime;&lt;br /&gt;              int dwStatusCode;&lt;br /&gt;              int conn;&lt;br /&gt;              int Len = 0;&lt;br /&gt;       &lt;br /&gt;              if (pTime)&lt;br /&gt;                     *pTime = 0;&lt;br /&gt; &lt;br /&gt;              if ( pUri-&gt;Port == 0 )&lt;br /&gt;                     pUri-&gt;Port = HTTPPORT;&lt;br /&gt; &lt;br /&gt;              StartTime = getTime();&lt;br /&gt;              if (pUri-&gt;DestPath)&lt;br /&gt;                        conn = (int)socketClient( pUri-&gt;pHostIP, pUri-&gt;Port, 0);&lt;br /&gt; &lt;br /&gt;                if (conn &lt; 0)&lt;br /&gt;              {&lt;br /&gt;                     printf("conn&lt;0\n");&lt;br /&gt;                       goto GracefulExit;&lt;br /&gt;              }&lt;br /&gt; &lt;br /&gt;              char req[1024];&lt;br /&gt;              sprintf( req, "GET /%s HTTP/1.0\r\nHost: %s\r\n", pUri-&gt;FileName, pUri-&gt;DestPath);&lt;br /&gt;               strcat( req, "User-Agent: hget/"  LIBHTTP_VERSION "\r\n");&lt;br /&gt;                     strcat( req, "Pragma: no-cache\r\n" );&lt;br /&gt;              strcat( req, "Accept: */*\r\n\r\n" );&lt;br /&gt;              dwStatusCode = HttpRequest(conn, &amp;Len, req);    // in Bytes&lt;br /&gt;              close(conn);&lt;br /&gt; &lt;br /&gt;              StopTime = getTime();&lt;br /&gt; &lt;br /&gt;              printf("return code %d\n", dwStatusCode);&lt;br /&gt;              if ( dwStatusCode == 200 || pUri-&gt;FileName == 0 )&lt;br /&gt;              {&lt;br /&gt;                     bRet = true;&lt;br /&gt;                     if (pTime)&lt;br /&gt;                     {&lt;br /&gt;                           unsigned int st;&lt;br /&gt;                           st = StopTime - StartTime;                // in msec&lt;br /&gt;                           *pTime = st;&lt;br /&gt;                           *pRate = (double)Len / (double)st;              // in KB/sec&lt;br /&gt;                     }&lt;br /&gt;              }&lt;br /&gt; &lt;br /&gt;       GracefulExit:&lt;br /&gt;              return bRet;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Detecting the media and speed of the network connection&lt;br /&gt;&lt;br /&gt;The last two methods, GetMediaType and GetLinkSpeed, return the network media type and the link speed of the network. In the current implementation, only Ethernet and WiFi are supported. The output of GetMediaType is a string (i.e., "802.03", "802.11g"… etc) and the output of GetLinkSpeed is a value of type double, representing the number of kbps (kilobits per second).&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. char *result3; &lt;br /&gt;   2.   &lt;br /&gt;   3.       if (!dbus_g_proxy_call(platformProxy, "GetMediaType", &amp;error, &lt;br /&gt;   4.                             G_TYPE_INVALID, &lt;br /&gt;   5.                             G_TYPE_STRING, &amp;result3, &lt;br /&gt;   6.                             G_TYPE_INVALID)) &lt;br /&gt;   7.       { &lt;br /&gt;   8.               g_printerr("Failed to call remotely: %s\n", &lt;br /&gt;   9.                      error-&gt;message); &lt;br /&gt;  10.               g_error_free(error); &lt;br /&gt;  11.       } &lt;br /&gt;  12.       else &lt;br /&gt;  13.               printf ("Remote call successes with returned value: %s\n", result3); &lt;br /&gt;  14.   &lt;br /&gt;  15.       double result4; &lt;br /&gt;  16.   &lt;br /&gt;  17.       if (!dbus_g_proxy_call(platformProxy, "GetLinkSpeed", &amp;error, &lt;br /&gt;  18.                              G_TYPE_INVALID, &lt;br /&gt;  19.                              G_TYPE_DOUBLE, &amp;result4, &lt;br /&gt;  20.                              G_TYPE_INVALID)) &lt;br /&gt;  21.       { &lt;br /&gt;  22.               g_printerr("Failed to call remotely: %s\n", &lt;br /&gt;  23.                      error-&gt;message); &lt;br /&gt;  24.               g_error_free(error); &lt;br /&gt;  25.       } &lt;br /&gt;  26.       else &lt;br /&gt;  27.               printf ("Remote call successes with returned value: %10.1f Kbps (kbit per sec)\n", result4); &lt;br /&gt;  28.   &lt;br /&gt;&lt;br /&gt;      char *result3;&lt;br /&gt; &lt;br /&gt;      if (!dbus_g_proxy_call(platformProxy, "GetMediaType", &amp;error,&lt;br /&gt;                            G_TYPE_INVALID,&lt;br /&gt;                            G_TYPE_STRING, &amp;result3,&lt;br /&gt;                            G_TYPE_INVALID))&lt;br /&gt;      {&lt;br /&gt;              g_printerr("Failed to call remotely: %s\n",&lt;br /&gt;                     error-&gt;message);&lt;br /&gt;              g_error_free(error);&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;              printf ("Remote call successes with returned value: %s\n", result3);&lt;br /&gt; &lt;br /&gt;      double result4;&lt;br /&gt; &lt;br /&gt;      if (!dbus_g_proxy_call(platformProxy, "GetLinkSpeed", &amp;error,&lt;br /&gt;                             G_TYPE_INVALID,&lt;br /&gt;                             G_TYPE_DOUBLE, &amp;result4,&lt;br /&gt;                             G_TYPE_INVALID))&lt;br /&gt;      {&lt;br /&gt;              g_printerr("Failed to call remotely: %s\n",&lt;br /&gt;                     error-&gt;message);&lt;br /&gt;              g_error_free(error);&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;              printf ("Remote call successes with returned value: %10.1f Kbps (kbit per sec)\n", result4);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The back-end implementation of the method GetMediaType is shown below.&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. char* RetrieveMediaType(void) &lt;br /&gt;   2. { &lt;br /&gt;   3.    netdev_dev netdev_list[MAX_DEVICE]; &lt;br /&gt;   4.    int numInterface = 0; &lt;br /&gt;   5.   &lt;br /&gt;   6.    if(netdev_get_devices(netdev_list, &amp;numInterface) == NETDEV_SUCCESS) &lt;br /&gt;   7.    { &lt;br /&gt;   8.        int i; &lt;br /&gt;   9.        netdev_dev *net_devPtr = netdev_list; &lt;br /&gt;  10.   &lt;br /&gt;  11.        for (i=0; i= Frequency802_11a1) &amp;&amp;  &lt;br /&gt;  12.                                       (freq &lt;= Frequency802_11a2) &amp;&amp;  &lt;br /&gt;  13.                                       (rate &lt;= MaxRate802_11a)) &lt;br /&gt;  14.                                          return ("802.11a"); &lt;br /&gt;  15.   &lt;br /&gt;  16.                                   if ((freq &gt;= Frequency802_11b1) &amp;&amp;  &lt;br /&gt;  17.                                        (freq &lt;= Frequency802_11b2) &amp;&amp;  &lt;br /&gt;  18.                                       (rate &lt;= MaxRate802_11b)) &lt;br /&gt;  19.                                          return ("802.11b"); &lt;br /&gt;  20.                                                         &lt;br /&gt;  21.                                   if ((freq &gt;= Frequency802_11g1) &amp;&amp;  &lt;br /&gt;  22.                                       (freq &lt;= Frequency802_11g2) &amp;&amp;  &lt;br /&gt;  23.                                       (rate &lt;= MaxRate802_11g)) &lt;br /&gt;  24.                                          return ("802.11g"); &lt;br /&gt;  25.  &lt;br /&gt;  26.                                   return ("Unknown"); &lt;br /&gt;  27.                                   break; &lt;br /&gt;  28.                            } &lt;br /&gt;  29.                                                         &lt;br /&gt;  30.                            default: &lt;br /&gt;  31.                                   return ("Unknown"); &lt;br /&gt;  32.                                   break; &lt;br /&gt;  33.                         } &lt;br /&gt;  34.   &lt;br /&gt;  35.                      } &lt;br /&gt;  36.  &lt;br /&gt;  37.                      else &lt;br /&gt;  38.                         return ("Unknown"); &lt;br /&gt;  39.   &lt;br /&gt;  40.               } &lt;br /&gt;  41.           } &lt;br /&gt;  42.           net_devPtr++; &lt;br /&gt;  43.        } &lt;br /&gt;  44.   &lt;br /&gt;  45.    } &lt;br /&gt;  46.   &lt;br /&gt;  47.    return ("Unknown"); &lt;br /&gt;  48. } &lt;br /&gt;  49.   &lt;br /&gt;&lt;br /&gt;char* RetrieveMediaType(void)&lt;br /&gt;{&lt;br /&gt;   netdev_dev netdev_list[MAX_DEVICE];&lt;br /&gt;   int numInterface = 0;&lt;br /&gt; &lt;br /&gt;   if(netdev_get_devices(netdev_list, &amp;numInterface) == NETDEV_SUCCESS)&lt;br /&gt;   {&lt;br /&gt;       int i;&lt;br /&gt;       netdev_dev *net_devPtr = netdev_list;&lt;br /&gt; &lt;br /&gt;       for (i=0; i= Frequency802_11a1) &amp;&amp; &lt;br /&gt;                                      (freq &lt;= Frequency802_11a2) &amp;&amp; &lt;br /&gt;                                      (rate &lt;= MaxRate802_11a))&lt;br /&gt;                                         return ("802.11a");&lt;br /&gt; &lt;br /&gt;                                  if ((freq &gt;= Frequency802_11b1) &amp;&amp; &lt;br /&gt;                                       (freq &lt;= Frequency802_11b2) &amp;&amp; &lt;br /&gt;                                      (rate &lt;= MaxRate802_11b))&lt;br /&gt;                                         return ("802.11b");&lt;br /&gt;                                                       &lt;br /&gt;                                  if ((freq &gt;= Frequency802_11g1) &amp;&amp; &lt;br /&gt;                                      (freq &lt;= Frequency802_11g2) &amp;&amp; &lt;br /&gt;                                      (rate &lt;= MaxRate802_11g))&lt;br /&gt;                                         return ("802.11g");&lt;br /&gt;&lt;br /&gt;                                  return ("Unknown");&lt;br /&gt;                                  break;&lt;br /&gt;                           }&lt;br /&gt;                                                       &lt;br /&gt;                           default:&lt;br /&gt;                                  return ("Unknown");&lt;br /&gt;                                  break;&lt;br /&gt;                        }&lt;br /&gt; &lt;br /&gt;                     }&lt;br /&gt;&lt;br /&gt;                     else&lt;br /&gt;                        return ("Unknown");&lt;br /&gt; &lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;          net_devPtr++;&lt;br /&gt;       }&lt;br /&gt; &lt;br /&gt;   }&lt;br /&gt; &lt;br /&gt;   return ("Unknown");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The back-end implementation of the method GetLinkSpeed is shown below.&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. double RetrieveLinkSpeed(void)   // in bps &lt;br /&gt;   2. { &lt;br /&gt;   3.    netdev_dev netdev_list[MAX_DEVICE]; &lt;br /&gt;   4.    int numInterface = 0; &lt;br /&gt;   5.   &lt;br /&gt;   6.    if(netdev_get_devices(netdev_list, &amp;numInterface) == NETDEV_SUCCESS) &lt;br /&gt;   7.    { &lt;br /&gt;   8.        int i; &lt;br /&gt;   9.        netdev_dev *net_devPtr = netdev_list; &lt;br /&gt;  10.   &lt;br /&gt;  11.        for (i=0; i  &lt;br /&gt;&lt;br /&gt; double RetrieveLinkSpeed(void)   // in bps&lt;br /&gt;{&lt;br /&gt;   netdev_dev netdev_list[MAX_DEVICE];&lt;br /&gt;   int numInterface = 0;&lt;br /&gt; &lt;br /&gt;   if(netdev_get_devices(netdev_list, &amp;numInterface) == NETDEV_SUCCESS)&lt;br /&gt;   {&lt;br /&gt;       int i;&lt;br /&gt;       netdev_dev *net_devPtr = netdev_list;&lt;br /&gt; &lt;br /&gt;       for (i=0; i&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Readers are encouraged to refer to the source code of the MID Platform Awareness project for more details.&lt;br /&gt;&lt;br /&gt;Monitoring Network Connectivity Change&lt;br /&gt;&lt;br /&gt;An application can query the network connectivity information by invoking the methods above. However, instead of constantly invoking the method to query the network connectivity status, sometimes it is more practical that an application just subscribe to network events, or signals. The application will be notified whenever the network connectivity changes status. Two network events are defined: Connected and Disconnected. The Connected event is emitted by the network connectivity service when the network suddenly becomes available. Similarly, the Disconnected event is emitted by the network connectivity service when the network suddenly becomes unavailable. The following code shows how to use D-Bus signals for monitoring network connectivity.&lt;br /&gt;&lt;br /&gt;- collapse sourceview plaincopy to clipboardprint?&lt;br /&gt;&lt;br /&gt;   1. DBusMessage* msg; &lt;br /&gt;   2.        DBusConnection* conn; &lt;br /&gt;   3.        DBusError err; &lt;br /&gt;   4.   &lt;br /&gt;   5.        printf("Listening for signals\n"); &lt;br /&gt;   6.   &lt;br /&gt;   7.        // initialise the errors &lt;br /&gt;   8.        dbus_error_init(&amp;err); &lt;br /&gt;   9.     &lt;br /&gt;  10.        // connect to the bus and check for errors &lt;br /&gt;  11.        conn = dbus_bus_get(DBUS_BUS_SESSION, &amp;err); &lt;br /&gt;  12.        if (dbus_error_is_set(&amp;err))  &lt;br /&gt;  13.        {  &lt;br /&gt;  14.               fprintf(stderr, "Connection Error (%s)\n", err.message); &lt;br /&gt;  15.              dbus_error_free(&amp;err);  &lt;br /&gt;  16.        } &lt;br /&gt;  17.   &lt;br /&gt;  18.        if (NULL == conn)  &lt;br /&gt;  19.               exit(1); &lt;br /&gt;  20.   &lt;br /&gt;  21.        dbus_bus_add_match(conn, "type='signal',interface='org.moblin.Platform.Connection'", &amp;err); &lt;br /&gt;  22.        dbus_connection_flush(conn); &lt;br /&gt;  23.         &lt;br /&gt;  24.        if (dbus_error_is_set(&amp;err))  &lt;br /&gt;  25.        {  &lt;br /&gt;  26.               fprintf(stderr, "Match Error (%s)\n", err.message); &lt;br /&gt;  27.               exit(1);  &lt;br /&gt;  28.        } &lt;br /&gt;  29.   &lt;br /&gt;  30.        printf("Match rule sent\n"); &lt;br /&gt;  31.   &lt;br /&gt;  32.        // loop listening for signals being emmitted &lt;br /&gt;  33.        while (true)  &lt;br /&gt;  34.        { &lt;br /&gt;  35.               // non blocking read of the next available message &lt;br /&gt;  36.              dbus_connection_read_write(conn, 0); &lt;br /&gt;  37.               msg = dbus_connection_pop_message(conn); &lt;br /&gt;  38.   &lt;br /&gt;  39.              // loop again if we haven't read a message &lt;br /&gt;  40.               if (NULL == msg)  &lt;br /&gt;  41.               {  &lt;br /&gt;  42.                      sleep(1); &lt;br /&gt;  43.                      continue; &lt;br /&gt;  44.               } &lt;br /&gt;  45.   &lt;br /&gt;  46.               if (dbus_message_is_signal(msg, PLATFORM_CONNECTION_IF, CONN_CONNECTED_SIGNAL))  &lt;br /&gt;  47.                      printf("Received signal %s\n", CONN_CONNECTED_SIGNAL); &lt;br /&gt;  48.   &lt;br /&gt;  49.               if (dbus_message_is_signal(msg, PLATFORM_CONNECTION_IF, CONN_DISCONNECTED_SIGNAL))  &lt;br /&gt;  50.                      printf("Received signal %s\n", CONN_DISCONNECTED_SIGNAL); &lt;br /&gt;  51.   &lt;br /&gt;  52.               // free the message &lt;br /&gt;  53.               dbus_message_unref(msg); &lt;br /&gt;  54.        } &lt;br /&gt;  55.  &lt;br /&gt;  56.   &lt;br /&gt;&lt;br /&gt;       DBusMessage* msg;&lt;br /&gt;       DBusConnection* conn;&lt;br /&gt;       DBusError err;&lt;br /&gt; &lt;br /&gt;       printf("Listening for signals\n");&lt;br /&gt; &lt;br /&gt;       // initialise the errors&lt;br /&gt;       dbus_error_init(&amp;err);&lt;br /&gt;   &lt;br /&gt;       // connect to the bus and check for errors&lt;br /&gt;       conn = dbus_bus_get(DBUS_BUS_SESSION, &amp;err);&lt;br /&gt;       if (dbus_error_is_set(&amp;err)) &lt;br /&gt;       { &lt;br /&gt;              fprintf(stderr, "Connection Error (%s)\n", err.message);&lt;br /&gt;             dbus_error_free(&amp;err); &lt;br /&gt;       }&lt;br /&gt; &lt;br /&gt;       if (NULL == conn) &lt;br /&gt;              exit(1);&lt;br /&gt; &lt;br /&gt;       dbus_bus_add_match(conn, "type='signal',interface='org.moblin.Platform.Connection'", &amp;err);&lt;br /&gt;       dbus_connection_flush(conn);&lt;br /&gt;       &lt;br /&gt;       if (dbus_error_is_set(&amp;err)) &lt;br /&gt;       { &lt;br /&gt;              fprintf(stderr, "Match Error (%s)\n", err.message);&lt;br /&gt;              exit(1); &lt;br /&gt;       }&lt;br /&gt; &lt;br /&gt;       printf("Match rule sent\n");&lt;br /&gt; &lt;br /&gt;       // loop listening for signals being emmitted&lt;br /&gt;       while (true) &lt;br /&gt;       {&lt;br /&gt;              // non blocking read of the next available message&lt;br /&gt;             dbus_connection_read_write(conn, 0);&lt;br /&gt;              msg = dbus_connection_pop_message(conn);&lt;br /&gt; &lt;br /&gt;             // loop again if we haven't read a message&lt;br /&gt;              if (NULL == msg) &lt;br /&gt;              { &lt;br /&gt;                     sleep(1);&lt;br /&gt;                     continue;&lt;br /&gt;              }&lt;br /&gt; &lt;br /&gt;              if (dbus_message_is_signal(msg, PLATFORM_CONNECTION_IF, CONN_CONNECTED_SIGNAL)) &lt;br /&gt;                     printf("Received signal %s\n", CONN_CONNECTED_SIGNAL);&lt;br /&gt; &lt;br /&gt;              if (dbus_message_is_signal(msg, PLATFORM_CONNECTION_IF, CONN_DISCONNECTED_SIGNAL)) &lt;br /&gt;                     printf("Received signal %s\n", CONN_DISCONNECTED_SIGNAL);&lt;br /&gt; &lt;br /&gt;              // free the message&lt;br /&gt;              dbus_message_unref(msg);&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Conclusion&lt;br /&gt;&lt;br /&gt;D-Bus is a lightweight Remote Procedure Call (RPC) which is suitable for many applications running on a desktop. Because D-Bus is simple and relative small, yet powerful, we can adapt this technology for Mobile Internet Devices (MID). In this paper, we introduced a platform service for MID using D-Bus technology. We briefly described the six connectivity-related methods and two signals provided by the MIDPlatformSvc.&lt;br /&gt;&lt;br /&gt;Although this implementation has been tested on the Moblin stack, this technology should also work on a Windows platform as well: therefore, with minimum change, this application should work on other form factors like UMPC, which run Windows* instead.&lt;br /&gt;&lt;br /&gt;References&lt;br /&gt;&lt;br /&gt;[1] D-Bus, http://www.freedesktop.org/wiki/Software/dbus&lt;br /&gt;[2] D-Bus Tutorial, http://dbus.freedesktop.org/doc/dbus-tutorial.html&lt;br /&gt;[3] http://www.moblin.org/toolkits/basicDevGuides/mobLinux/toolkits_DevGds_mobLinux_createDBUS.php&lt;br /&gt;[4] Mobile and Internet Linux Project, http://moblin.org/&lt;br /&gt;[5] RFC 1945 "Hypertext Transfer Protocol – HTTP/1.0"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1603143440589965075-2655371865155590866?l=opensourcetechindia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://opensourcetechindia.blogspot.com/feeds/2655371865155590866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/detecting-network-connectivity-using-d.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2655371865155590866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1603143440589965075/posts/default/2655371865155590866'/><link rel='alternate' type='text/html' href='http://opensourcetechindia.blogspot.com/2009/09/detecting-network-connectivity-using-d.html' title='Detecting Network Connectivity Using D-Bus'/><author><name>Santhosh V</name><uri>https://profiles.google.com/114437439612714888382</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-gyLOK_bEAeA/AAAAAAAAAAI/AAAAAAAAAAA/3cUQ7hl2u6Y/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1603143440589965075.post-3980399535402702541</id><published>2009-09-08T04:09:00.000-07:00</published><updated>2009-09-08T05:33:35.915-07:00</updated><title type='text'>Convergence 09: Developing Power Aware Application using D-Bus</title><content type='html'>&lt;h1 class="sectionHeading"&gt;&lt;img src="file:///tmp/moz-screenshot.jpg" alt="" /&gt;&lt;/h1&gt;&lt;table id="Table_01" style="height: 101px;" width="580" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;" colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/moblin-platform-awareness-service/"&gt;&lt;img src="http://software.intel.com/file/15855" alt="" width="97" border="0" height="33" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/platform-awareness-service-d-bus-interface-documentation"&gt;&lt;img src="http://software.intel.com/file/15856" alt="" width="96" border="0" height="33" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/platform-monitor-users-guide"&gt;&lt;img src="http://software.intel.com/file/15857" alt="" width="95" border="0" height="33" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/platform-awareness-service-source-code"&gt;&lt;img src="http://software.intel.com/file/15858" alt="" width="97" border="0" height="33" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="3"&gt;&lt;a href="http://software.intel.com/en-us/articles/platform-awareness-service-downloads"&gt;&lt;img src="http://software.intel.com/file/15859" alt="" width="96" border="0" height="33" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/moblin-platform-awareness-service-community"&gt;&lt;img src="http://software.intel.com/file/15860" alt="" width="99" border="0" height="33" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td style="text-align: center;"&gt;&lt;a href="http://software.intel.com/en-us/articles/utilizing-processor-performance-in-rich-internet-applications"&gt;&lt;img src="http://software.intel.com/file/15861" alt="" width="80" border="0" height="35" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/determining-input-devices-in-linux/"&gt;&lt;img src="http://software.intel.com/file/15862" alt="" width="78" border="0" height="35" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/obtaining-display-information-on-mobile-internet-devices"&gt;&lt;img src="http://software.intel.com/file/15863" alt="" width="79" border="0" height="35" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/detecting-network-connectivity-using-d-bus"&gt;&lt;img src="http://software.intel.com/file/15864" alt="" width="79" border="0" height="35" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/developing-power-aware-applications-using-d-bus"&gt;&lt;img src="http://software.intel.com/file/15865" alt="" width="80" border="0" height="35" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://software.intel.com/en-us/articles/how-to-obtain-storage-information-in-linux"&gt;&lt;img src="http://software.intel.com/file/15866" alt="" width="79" border="0" height="35" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td colspan="2"&gt;&lt;a href="http://software.intel.com/en-us/articles/how-to-obtain-location-information-in-linux/"&gt;&lt;img src="http://software.intel.com/file/15867" alt="" width="78" border="0" height="35" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td rowspan="2" width="27" height="62"&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="27" height="62" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr align="center"&gt; &lt;td colspan="12" width="553" height="27"&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="553" height="27" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="80" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="17" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="61" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="35" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="44" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="51" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="28" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="69" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="11" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="79" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="6" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="72" height="1" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src="http://software.intel.com/file/15868" alt="" width="27" height="1" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;h1 class="sectionHeading"&gt;Introduction&lt;/h1&gt;&lt;br /&gt;Computer power consumption has become a passionate subject; hardware engineers trying to minimize the power consumed by devices, and software engineers trying to optimize their code to reduce the power consumed by their applications. Power is an even more important issue with &lt;em&gt;Mobile Internet Devices (MIDs)&lt;/em&gt; since the small form factor limits the size of the battery. Applications running on MID's must therefore be very sensitive to power, and use power information to make smart decisions. For example, before beginning a lengthy transaction (such as downloading a video, or running an update), an application should check to see if the device is running on external power, and if not, determine whether or not there is sufficient power remaining to complete the transaction.&lt;br /&gt;&lt;br /&gt;&lt;h1 class="sectionHeading"&gt;Background on D-Bus&lt;/h1&gt; D-Bus is a fast, lightweight message bus system which allows applications to communicate each other (Inter-process communication) [2]. It has a so-called D-Bus message bus (dbus deamon) which can accept messages from multiples applications and forward messages to them. D-Bus can be used as low-level API or higher level binding, such as Qt, Python*, Java*, C#, or Perl. This paper shows an application written in C using Glib bindings. Glib is the base library of GNOME, it provides an object system, object-based and event-driven programming.&lt;br /&gt;&lt;br /&gt;Two buses are defined in D-Bus: system bus and session bus. The system bus allows communication between an application and the operating system while the session bus is designed to serve the communication between two applications.&lt;br /&gt;&lt;br /&gt;In order to use D-Bus, we need to explore some concepts about D-Bus. First, an &lt;em&gt;object&lt;/em&gt; is an endpoint on the bus, an &lt;em&gt;object&lt;/em&gt; is created by an application in the context that the application's connection to the bus (either system bus or session bus). Objects have names, and these names are called &lt;em&gt;object paths&lt;/em&gt;. A proxy is an object on the bus that can be accessed through references. We can find an object by searching the bus name and the object living in that bus connection. Once we find it, we usually keep a proxy to that object so we can refer to that object again without searching again.&lt;br /&gt;&lt;br /&gt;An object can perform some specific operations. Each operation is referred as &lt;em&gt;method&lt;/em&gt;. Thus, a client can send a request to an object and ask the object to invoke a method. The object then executes the method (if the method exists) and the result is sent back to the client. If a method requires input parameters, these parameters have to be passed with the request. The result can be one or more output parameters, these parameters are sent back to the client in the reply message.&lt;br /&gt;&lt;br /&gt;An object can also emit an event, or &lt;em&gt;signal&lt;/em&gt;. When a signal is generated by an object, it will be broadcasted to any observers who are interested in that particular signal. Signals can carry parameters too. &lt;em&gt;Methods&lt;/em&gt; and &lt;em&gt;Signals&lt;/em&gt; are embedded members of an object. They can be grouped. An Interface of an object is just a group of its members. An object can declare one or many interfaces - its members are then classified in these interfaces.&lt;br /&gt;&lt;br /&gt;Instead of forming a D-Bus method call message and sending to the remote object using Glib bindings, one can instantiate a proxy object representing the remote object and then just invoke the methods of that object.&lt;br /&gt;&lt;br /&gt;In order to generate dbus-glib binding code, we can use a tool called &lt;em&gt;dbus-binding-tool&lt;/em&gt;. We first create an XML file, referred as &lt;em&gt;Introspection XML file&lt;/em&gt;, in which we describe the methods and signals. An example of the introspection XML is shown below:&lt;br /&gt;&lt;br /&gt;&lt;div class="dp-highlighter"&gt;&lt;ol class="dp-cpp" start="1"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;&lt;span class="string"&gt;"1.0"&lt;/span&gt;&lt;span&gt; encoding=&lt;/span&gt;&lt;span class="string"&gt;"UTF-8"&lt;/span&gt;&lt;span&gt; ?&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;"-//freedesktop//DTD D-Bus Object Introspection 1.0//EN"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="string"&gt;"http://standards.freedesktop.org/dbus/1.0/introspect.dtd"&lt;/span&gt;&lt;span&gt;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;node name="&lt;span" class="string"&gt;"/org/moblin/Platform"&lt;/node&gt;&lt;/span&gt;&lt;span&gt;&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;interface name="&lt;span" class="string"&gt;"org.moblin.Platform.Power"&lt;/interface&gt;&lt;/span&gt;&lt;span&gt;&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;annotation name="&lt;span" class="string"&gt;"org.freedesktop.DBus.GLib.CSymbol"&lt;/annotation&gt;&lt;/span&gt;&lt;span&gt; value=&lt;/span&gt;&lt;span class="string"&gt;"org_moblin_platform_power"&lt;/span&gt;&lt;span&gt;/&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;method name="&lt;span" class="string"&gt;"IsUsingExternalPowerSource"&lt;/method&gt;&lt;/span&gt;&lt;span&gt;&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;annotation name="&lt;span" class="string"&gt;"org.freedesktop.DBus.GLib.CSymbol"&lt;/annotation&gt;&lt;/span&gt;&lt;span&gt; value=&lt;/span&gt;&lt;span class="string"&gt;"isUsingExternalPowerSource"&lt;/span&gt;&lt;span&gt; /&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;arg type="&lt;span" class="string"&gt;"b"&lt;/arg&gt;&lt;/span&gt;&lt;span&gt; name=&lt;/span&gt;&lt;span class="string"&gt;"usingExternalPowerSource"&lt;/span&gt;&lt;span&gt; direction=&lt;/span&gt;&lt;span class="string"&gt;"out"&lt;/span&gt;&lt;span&gt; /&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;method name="&lt;span" class="string"&gt;"GetTimeRemaining"&lt;/method&gt;&lt;/span&gt;&lt;span&gt;&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;annotation name="&lt;span" class="string"&gt;"org.freedesktop.DBus.GLib.CSymbol"&lt;/annotation&gt;&lt;/span&gt;&lt;span&gt; value=&lt;/span&gt;&lt;span class="string"&gt;"getTimeRemaining"&lt;/span&gt;&lt;span&gt;/&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;arg type="&lt;span" class="string"&gt;"i"&lt;/arg&gt;&lt;/span&gt;&lt;span&gt; name=&lt;/span&gt;&lt;span class="string"&gt;"minutesRemaining"&lt;/span&gt;&lt;span&gt; direction=&lt;/span&gt;&lt;span class="string"&gt;"out"&lt;/span&gt;&lt;span&gt; /&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;method name="&lt;span" class="string"&gt;"GetPercentRemaining"&lt;/method&gt;&lt;/span&gt;&lt;span&gt;&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;annotation name="&lt;span" class="string"&gt;"org.freedesktop.DBus.GLib.CSymbol"&lt;/annotation&gt;&lt;/span&gt;&lt;span&gt; value=&lt;/span&gt;&lt;span class="string"&gt;"getPercentRemaining"&lt;/span&gt;&lt;span&gt;/&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;arg type="&lt;span" class="string"&gt;"u"&lt;/arg&gt;&lt;/span&gt;&lt;span&gt; name=&lt;/span&gt;&lt;span class="string"&gt;"percentRemaining"&lt;/span&gt;&lt;span&gt; direction=&lt;/span&gt;&lt;span class="string"&gt;"out"&lt;/span&gt;&lt;span&gt; /&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;pre style="display: none;" name="code" class="cpp"&gt;  &lt;node name="/org/moblin/Platform"&gt;   &lt;interface name="org.moblin.Platform.Power"&gt;        &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="org_moblin_platform_power"&gt;     &lt;method name="IsUsingExternalPowerSource"&gt;        &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="isUsingExternalPowerSource"&gt;        &lt;arg type="b" name="usingExternalPowerSource" direction="out"&gt;     &lt;/arg&gt;     &lt;method name="GetTimeRemaining"&gt;        &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getTimeRemaining"&gt;        &lt;arg type="i" name="minutesRemaining" direction="out"&gt;     &lt;/arg&gt;     &lt;method name="GetPercentRemaining"&gt;        &lt;annotation name="org.freedesktop.DBus.GLib.CSymbol" value="getPercentRemaining"&gt;        &lt;arg type="u" name="percentRemaining" direction="out"&gt;     &lt;/arg&gt;   &lt;/annotation&gt; &lt;/method&gt; &lt;/annotation&gt;&lt;/method&gt;&lt;/annotation&gt;&lt;/method&gt;&lt;/annotation&gt;&lt;/interface&gt;&lt;/node&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In this introspection XML file (named &lt;em&gt;MIDPlatformSvcInterfaceDefinition.xml&lt;/em&gt;), an interface called org.moblin.Platform.Power defines three methods: &lt;em&gt;IsUsingExternalPowerSource&lt;/em&gt;, &lt;em&gt;GetTimeRemaining&lt;/em&gt; and &lt;em&gt;GetPerCentRemaining&lt;/em&gt;. The output of the first method is a Boolean value. The output of the second method is an integer value representing the value in minutes, while the output of the third method is an unsigned integer value representing the percentage.&lt;br /&gt;&lt;br /&gt;Below are primary steps to implement a service with methods to be exposed. More details are explained in [3].&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Run &lt;em&gt;dbus-binding-tool&lt;/em&gt; for an introspection XML file to generate dbus-glib binding code&lt;/li&gt;&lt;li&gt;Create a simple GObject for D-Bus&lt;/li&gt;&lt;li&gt;Implement the instance initialization&lt;/li&gt;&lt;li&gt;Implement the methods&lt;/li&gt;&lt;li&gt;Register the object to the D-Bus&lt;/li&gt;&lt;/ul&gt; To call the methods implemented on a remote object, a client needs to follow the following steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Connect to the bus&lt;/li&gt;&lt;li&gt;Create a proxy object&lt;/li&gt;&lt;li&gt;Invoke the methods on the proxy object&lt;/li&gt;&lt;/ul&gt; &lt;h1 class="sectionHeading"&gt;Using D-Bus as a Communication Channel&lt;/h1&gt;&lt;br /&gt;We designed the power service application which uses D-Bus as a communication channel to send information on battery. Other applications which are interested in power awareness can use D-Bus to get power information by querying the methods that the power service provided. These applications can also listen for the events that the power service generated. Figure 1 illustrates the usage model:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Figure 1. Usage Model: A Client Registers to D-Bus to Get the Information Provided by the MISPlatformSvc&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://software.intel.com/file/15818" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 class="sectionHeading"&gt;Gathering Battery Information&lt;/h1&gt;&lt;br /&gt;We will present the implementation of three methods that are part of a simple library that provides battery information. The first method queries the percent of battery power remaining (&lt;em&gt;getPercentRemaining&lt;/em&gt;). This method returns the percent of power currently available in the battery.&lt;br /&gt;&lt;br /&gt;The second method queries the time remaining until the MID runs out of battery power (&lt;em&gt;getTimeRemaining&lt;/em&gt;). This method returns the remaining time in minutes.&lt;br /&gt;&lt;br /&gt;The third method queries whether or not the MID is using an external power source (&lt;em&gt;IsUsingExternalPowerSource&lt;/em&gt;). This method returns a Boolean: TRUE means the MID is currently using an external power source (e.g., AC), FALSE means that the MID is using its battery (DC).&lt;br /&gt;&lt;br /&gt;The first method calculates the percent of battery power remaining in a MID. In Linux, the file /proc/acpi/ contains power-related information. In particular, the file /proc/acpi/battery/BAT1/state contains the current remaining capacity in the field "remaining capacity". The file /proc/acpi/battery/BAT1/info contains the maximum capacity information in the "last full capacity" field. From these entries, we can deduce the percent of power remaining as shown below:&lt;br /&gt;&lt;div class="dp-highlighter"&gt;&lt;br /&gt;&lt;ol class="dp-cpp" start="1"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;gboolean computePercentPowerRemaining(guint *result)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;{  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       DIR *d;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="keyword"&gt;struct&lt;/span&gt;&lt;span&gt; dirent *de;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *acpi_path  = &lt;/span&gt;&lt;span class="string"&gt;"/proc/acpi"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *device_type  = &lt;/span&gt;&lt;span class="string"&gt;"battery"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *stateFile = &lt;/span&gt;&lt;span class="string"&gt;"state"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *infoFile = &lt;/span&gt;&lt;span class="string"&gt;"info"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;FILE&lt;/span&gt;&lt;span&gt; *file;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; filename[PATH_LENGTH];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; line[LINE_LENGTH];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       *result = 0;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;double&lt;/span&gt;&lt;span&gt; power_left = 0.0;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;double&lt;/span&gt;&lt;span&gt; power_full = 0.0;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       gboolean rc = FALSE;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="comment"&gt;// First, check if the ACPI path exists&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (chdir(acpi_path) &lt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       {  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              dbg(&lt;span class="string"&gt;"ACPI is not supported (\"%s\").\n"&lt;/span&gt;&lt;span&gt;, acpi_path);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="keyword"&gt;else&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              dbg(&lt;span class="string"&gt;"Path %s is found \n"&lt;/span&gt;&lt;span&gt;, acpi_path);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="comment"&gt;// Check if battery directory exists&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (chdir(device_type) &lt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       {  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              dbg(&lt;span class="string"&gt;"No support for device type: %s\n"&lt;/span&gt;&lt;span&gt;, device_type);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="keyword"&gt;else&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              dbg(&lt;span class="string"&gt;"Device %s is supported \n"&lt;/span&gt;&lt;span&gt;, device_type);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;         &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="comment"&gt;// /proc/acpi/battery is found. Now search for available batteries&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       d = opendir(&lt;span class="string"&gt;"."&lt;/span&gt;&lt;span&gt;);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (!d) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              dbg(&lt;span class="string"&gt;"Cannot open directory!\n"&lt;/span&gt;&lt;span&gt;);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; ((de = readdir(d))) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="comment"&gt;// Search for real directory ("BAT0", ...), not ".", ".."&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (!strcmp(de-&gt;d_name, &lt;/span&gt;&lt;span class="string"&gt;"."&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     &lt;span class="keyword"&gt;continue&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (!strcmp(de-&gt;d_name, &lt;/span&gt;&lt;span class="string"&gt;".."&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                     &lt;span class="keyword"&gt;continue&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              dbg(&lt;span class="string"&gt;"device found: %s\n"&lt;/span&gt;&lt;span&gt;, de-&gt;d_name);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              &lt;span class="comment"&gt;// Open file "state".&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              sprintf(filename, &lt;span class="string"&gt;"%s/%s/%s/%s"&lt;/span&gt;&lt;span&gt;, acpi_path, device_type, de-&gt;d_name, stateFile);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              file = fopen(filename, &lt;span class="string"&gt;"r"&lt;/span&gt;&lt;span&gt;);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (!file)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              {  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     closedir(d);  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                     &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              memset(line, 0, LINE_LENGTH);  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              &lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; (fgets(line, LINE_LENGTH, file) != NULL) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (strstr(line, &lt;/span&gt;&lt;span class="string"&gt;"remaining capacity:"&lt;/span&gt;&lt;span&gt;) &amp;amp;&amp;amp;   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           (strstr(line, &lt;span class="string"&gt;"mWh"&lt;/span&gt;&lt;span&gt;) || strstr(line, &lt;/span&gt;&lt;span class="string"&gt;"mAh"&lt;/span&gt;&lt;span&gt;)))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     {  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           &lt;span class="comment"&gt;// Search the value&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *c;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           c = strchr(line, &lt;span class="string"&gt;':'&lt;/span&gt;&lt;span&gt;);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           c++;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           power_left = strtoull(c, NULL, 10);      &lt;span class="comment"&gt;// in mWh or mAh&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           &lt;span class="comment"&gt;// Cannot perform conversion&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; ((0 == power_left) &amp;amp;&amp;amp; (EINVAL == errno))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           {  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                                  closedir(d);  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                                  &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;                   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           &lt;span class="keyword"&gt;break&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              fclose(file);  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              &lt;span class="comment"&gt;// Open file "info".&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              sprintf(filename, &lt;span class="string"&gt;"%s/%s/%s/%s"&lt;/span&gt;&lt;span&gt;, acpi_path, device_type, de-&gt;d_name, infoFile);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              file = fopen(filename, &lt;span class="string"&gt;"r"&lt;/span&gt;&lt;span&gt;);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (!file)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              {  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     closedir(d);  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                     &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              memset(line, 0, LINE_LENGTH);  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              &lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; (fgets(line, LINE_LENGTH, file) != NULL) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (strstr(line, &lt;/span&gt;&lt;span class="string"&gt;"last full capacity:"&lt;/span&gt;&lt;span&gt;) &amp;amp;&amp;amp;   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                            (strstr(line, &lt;span class="string"&gt;"mWh"&lt;/span&gt;&lt;span&gt;) || strstr(line, &lt;/span&gt;&lt;span class="string"&gt;"mAh"&lt;/span&gt;&lt;span&gt;)))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     {  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           &lt;span class="comment"&gt;// Search the value&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *c;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           c = strchr(line, &lt;span class="string"&gt;':'&lt;/span&gt;&lt;span&gt;);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           c++;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           power_full = strtoull(c, NULL, 10);      &lt;span class="comment"&gt;// in mWh or mAh&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           &lt;span class="comment"&gt;// Cannot perform conversion&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (0 == power_full)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           {  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                                  closedir(d);  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                                  &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;                   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                           *result = (power_left/power_full)*100;  &lt;span class="comment"&gt;// in %&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                           &lt;span class="keyword"&gt;break&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                     }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              rc = TRUE;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              fclose(file);  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="comment"&gt;// Exit while loop&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              &lt;span class="keyword"&gt;break&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       closedir(d);  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; rc;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;pre style="display: none;" name="code" class="cpp"&gt;gboolean computePercentPowerRemaining(guint *result) {        DIR *d;        struct dirent *de;        char *acpi_path  = "/proc/acpi";        char *device_type  = "battery";        char *stateFile = "state";        char *infoFile = "info";        FILE *file;        char filename[PATH_LENGTH];        char line[LINE_LENGTH];        *result = 0;        double power_left = 0.0;        double power_full = 0.0;        gboolean rc = FALSE;          // First, check if the ACPI path exists        if (chdir(acpi_path) &lt; d =" opendir(" de =" readdir(d)))"&gt;d_name, "."))                      continue;                 if (!strcmp(de-&gt;d_name, ".."))                      continue;                 dbg("device found: %s\n", de-&gt;d_name);                 // Open file "state".               sprintf(filename, "%s/%s/%s/%s", acpi_path, device_type, de-&gt;d_name, stateFile);               file = fopen(filename, "r");               if (!file)               {                      closedir(d);                      return rc;               }                 memset(line, 0, LINE_LENGTH);               while (fgets(line, LINE_LENGTH, file) != NULL) {                      if (strstr(line, "remaining capacity:") &amp;amp;&amp;amp;                             (strstr(line, "mWh") || strstr(line, "mAh")))                      {                            // Search the value                            char *c;                              c = strchr(line, ':');                            c++;                              power_left = strtoull(c, NULL, 10);      // in mWh or mAh                              // Cannot perform conversion                            if ((0 == power_left) &amp;amp;&amp;amp; (EINVAL == errno))                            {                                   closedir(d);                                   return rc;                                             }                            break;                      }               }                 fclose(file);                 // Open file "info".               sprintf(filename, "%s/%s/%s/%s", acpi_path, device_type, de-&gt;d_name, infoFile);               file = fopen(filename, "r");               if (!file)               {                      closedir(d);                      return rc;               }                 memset(line, 0, LINE_LENGTH);               while (fgets(line, LINE_LENGTH, file) != NULL) {                      if (strstr(line, "last full capacity:") &amp;amp;&amp;amp;                              (strstr(line, "mWh") || strstr(line, "mAh")))                      {                            // Search the value                            char *c;                              c = strchr(line, ':');                            c++;                              power_full = strtoull(c, NULL, 10);      // in mWh or mAh                              // Cannot perform conversion                            if (0 == power_full)                            {                                   closedir(d);                                   return rc;                                             }                              *result = (power_left/power_full)*100;  // in %                            break;                      }               }                 rc = TRUE;               fclose(file);                 // Exit while loop               break;        }        closedir(d);          return rc; } &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The second method queries the time remaining until the MID is out battery power (&lt;em&gt;getTimeRemaining&lt;/em&gt;). This method returns the remaining time in minutes. As mentioned above, the file /proc/acpi/battery/BAT1/state contains the current remaining capacity in the "remaining capacity" field. The "present rate" field in the same file contains the rate at which the battery capacity is changing. This field is significant only if the battery is discharging. From this information, we can deduce the remaining time in minutes as shown below:&lt;br /&gt;&lt;br /&gt;&lt;div class="dp-highlighter"&gt;&lt;div class="bar"&gt;&lt;div class="tools"&gt;&lt;a href="http://software.intel.com/en-us/articles/developing-power-aware-applications-using-d-bus/#" onclick="dp.sh.Toolbar.Command('CollapseSource',this);return false;"&gt;- collapse source&lt;/a&gt;&lt;a href="http://software.intel.com/en-us/articles/developing-power-aware-applications-using-d-bus/#" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;"&gt;view plain&lt;/a&gt;&lt;a href="http://software.intel.com/en-us/articles/developing-power-aware-applications-using-d-bus/#" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;"&gt;copy to clipboard&lt;/a&gt;&lt;a href="http://software.intel.com/en-us/articles/developing-power-aware-applications-using-d-bus/#" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;"&gt;print&lt;/a&gt;&lt;a href="http://software.intel.com/en-us/articles/developing-power-aware-applications-using-d-bus/#" onclick="dp.sh.Toolbar.Command('About',this);return false;"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol class="dp-cpp" start="1"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="datatypes"&gt;int&lt;/span&gt;&lt;span&gt; computeTimeRemaining(&lt;/span&gt;&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;{  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       DIR *d;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="keyword"&gt;struct&lt;/span&gt;&lt;span&gt; dirent *de;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *acpi_path  = &lt;/span&gt;&lt;span class="string"&gt;"/proc/acpi"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *device_type  = &lt;/span&gt;&lt;span class="string"&gt;"battery"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; *stateFile = &lt;/span&gt;&lt;span class="string"&gt;"state"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;FILE&lt;/span&gt;&lt;span&gt; *file;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; filename[PATH_LENGTH];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;char&lt;/span&gt;&lt;span&gt; line[LINE_LENGTH];  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;int&lt;/span&gt;&lt;span&gt; result = -1;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;double&lt;/span&gt;&lt;span&gt; power_left = 0.0;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;double&lt;/span&gt;&lt;span&gt; power_full = 0.0;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;double&lt;/span&gt;&lt;span&gt; dischargeRate = 0.0;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="datatypes"&gt;int&lt;/span&gt;&lt;span&gt; find = 0;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;   &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="comment"&gt;// First, check if the ACPI path exists&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (chdir(acpi_path) &lt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       {  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;              dbg(&lt;span class="string"&gt;"ACPI is not supported (\"%s\").\n"&lt;/span&gt;&lt;span&gt;, acpi_path);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;              &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; result;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;       }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;       &lt;span class="keyword"&gt;else&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;
