<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3281895583339810405</atom:id><lastBuildDate>Tue, 10 Nov 2009 07:22:21 +0000</lastBuildDate><title>Web Development company</title><description>Find the best web site development and internet marketing, news, tips, tricks, tutorials and providers to help you create and manage your website.</description><link>http://india-web-development.blogspot.com/</link><managingEditor>indrajitc@indusnet.co.in (Indrajit)</managingEditor><generator>Blogger</generator><openSearch:totalResults>75</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/WebDevelopmentCompany" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-2539942863963699600</guid><pubDate>Thu, 05 Nov 2009 02:27:00 +0000</pubDate><atom:updated>2009-11-04T18:29:04.085-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">Mysql</category><category domain="http://www.blogger.com/atom/ns#">PHP techniques</category><title>MySQL University: GRAPH computation engine for MySQL</title><description>&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(51, 51, 51); line-height: 18px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 20px; padding-bottom: 5px; padding-left: 20px; "&gt;One of the things relational databases are not very good at is handling structures like trees (for example structure of categories in forum) or graphs (for example network of friends on social networking site).&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 20px; padding-bottom: 5px; padding-left: 20px; "&gt;GRAPH is a MySQL plugin which promises to handle such data in an easy and efficient manner using normal SQL syntax. I don't know any details, as MySQL University announcement was the first time I ever heard of this. Nevertheless the topic seems interesting, so if you would like to know more, &lt;a href="http://forge.mysql.com/wiki/GRAPH_computation_engine_for_MySQL" style="color: rgb(36, 91, 139); "&gt;attend MySQL Uni session&lt;/a&gt; this Thursday, November 5th at 10:00 GMT.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 20px; padding-bottom: 5px; padding-left: 20px; "&gt;As usual session recording in flash format will also be available at a later time.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 20px; padding-bottom: 5px; padding-left: 20px; "&gt;More information about GRAPH is available at &lt;a href="http://openquery.com/products/graph-engine" style="color: rgb(36, 91, 139); "&gt;OpenQuery's site&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 20px; padding-bottom: 5px; padding-left: 20px; "&gt;For more information about MySQL University, go to my &lt;a href="http://www.phpfreaks.com/blog/mysql-university" style="color: rgb(36, 91, 139); "&gt;introductory post&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 20px; padding-bottom: 5px; padding-left: 20px; "&gt;Source: &lt;a href="http://www.phpfreaks.com/blog/mysql-university-graph-computation-engine-for-mysql"&gt;http://www.phpfreaks.com/blog/mysql-university-graph-computation-engine-for-mysql&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-2539942863963699600?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/TZEY8cTT7dM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/TZEY8cTT7dM/mysql-university-graph-computation.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/11/mysql-university-graph-computation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-7087050843855920365</guid><pubDate>Tue, 08 Sep 2009 03:10:00 +0000</pubDate><atom:updated>2009-09-07T20:15:55.682-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">open source</category><title>11 Popular Open Source Enterprise Software</title><description>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:'Times New Roman';font-size:16px;"  &gt;&lt;span class="Apple-style-span" style="color: rgb(80, 80, 80); line-height: 18px;font-family:Arial;font-size:13px;"  &gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;A&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://mediaproducts.gartner.com/reprints/microsoft/164057.html" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;report&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;by Gartner predicts that the open source software (OSS) model will be adopted by at least 90% cloud-computing providers by the year 2013. As incredible as it sounds, the OSS model is an emerging key component for organizations that are looking for cost effective, reliable solutions for their operations.&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;Each year, InfoWorld reviews hundreds of open source organization as part of its ‘Best of Open Source’ /&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://www.infoworld.com/d/open-source/best-open-source-enterprise-software-740&amp;amp;current=1&amp;amp;last=12#slideshowTop" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;BOSSIE Awards&lt;/a&gt;. We’ve compiled a list of open source applications that made their way to this year’s BOSSIE Awards winners:&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;div id="attachment_490" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;a href="http://www.compiere.com/" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;img class="size-full wp-image-490" title="compiere" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/compiere.jpg" alt="Compiere" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Compiere&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;Compiere&lt;/strong&gt;&lt;/p&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.compiere.com/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;Compiere&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is a commercial open source Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM) application. It allows you to automate all your financial, distribution, sales and service processes. It uses a model-driven application platform that provides customers with adaptability, rapid deployment, and low cost of ownership.&lt;/p&gt;&lt;div id="attachment_491" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;a href="http://www.dimdim.com/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-491" title="dimdim-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/dimdim-oss.jpg" alt="DimDim" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;DimDim&lt;/p&gt;&lt;/div&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;DimDim&lt;/strong&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.dimdim.com/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;Dimdim&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is a simple to use browser-based web conferencing service. You can show presentations, collaborate via whiteboards, chat, talk and broadcast via webcam with absolutely no download required to host, attend or even record meetings. It is similar to solutions like&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://www.webex.com/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;WebEx&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;and&lt;a href="https://www2.gotomeeting.com/?Portal=www.gotomeeting.com" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;GotoMeeting&lt;/a&gt;. The free version of DimDim allows you to host event with up to 20 people, but if you’d like more attendees, you can upgrade for their pro plans.&lt;/p&gt;&lt;div id="attachment_492" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;a href="http://www.hotscripts.com/listing/drupal/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-492" title="drupal-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/drupal-oss.jpg" alt="Drupal" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Drupal&lt;/p&gt;&lt;/div&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;Drupal&lt;/strong&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://drupal.org/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;Drupal&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is an open source content management platform that supports a variety of sites ranging from blogs to large community driven web portals. Some of its built-in modules include user administration, publishing workflow, discussion capabilities, news aggregation, and metadata functionalities using controlled vocabularies and XML publishing for content sharing purposes.&lt;/p&gt;&lt;div id="attachment_493" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;a href="http://www.intalio.com/products/bpm/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-493" title="intalio-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/intalio-oss.jpg" alt="Intalio BPM" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Intalio BPM&lt;/p&gt;&lt;/div&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;Intalio BPM&lt;/strong&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.intalio.com/products/bpm/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;br /&gt;Intalio&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is a Business Process Management (BPM) solution that provides all the components required for the design, deployment and management of most complex business process. It is based on the Eclipse standard and Apache engine. Intalio PM is available as either a downloadable software or as Software as a Service.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;div id="attachment_495" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;a href="http://jasperforge.org/" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;img class="size-full wp-image-495" title="jasper-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/jasper-oss.jpg" alt="JasperSoft BI Suite" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;JasperSoft BI Suite&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;JasperSoft BI Suite&lt;/strong&gt;&lt;/p&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://jasperforge.org/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;JasperSoft&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;Suite is a Business Intelligence (BI) application that provides integrated reporting and analysis and data integration. It is  is comprised of an interactive reporting server, graphical and ad hoc report design interfaces, OLAP analysis, an ETL tool for data integration, and a Java reporting library for use with either stand-alone or embedded business intelligence applications..&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;div id="attachment_496" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;a href="http://www.magentocommerce.com/" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;img class="size-full wp-image-496" title="magento-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/magento-oss.jpg" alt="Magento" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Magento&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;Magento&lt;/strong&gt;&lt;/p&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.magentocommerce.com/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;Magento&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is an open source PHP and MySql ecommerce script bundle with tons of features like catalog management, marketing and promotion tools, analytics and reporting. The Magento Community Edition is available for free and best suited for small businesses looking for an ecommerce solution. Its enterprise edition is more geared towards corporations looking for a production-ready solution with SLA agreements.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;div id="attachment_497" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;a href="http://www.openbravo.com/" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;img class="size-full wp-image-497" title="opebravo-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/opebravo-oss.jpg" alt="OpenBravo ERP" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;OpenBravo ERP&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;OpenBravo ERP&lt;/strong&gt;&lt;/p&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.openbravo.com/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;OpenBravo&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is an Enterprise Resource Planning (ERP) web-based open source solution. It has several functionalities tailored to manage accounting, sales, CRM, inventory and projects for any organizations. It is scalable and can be easily deployed on premise or on the cloud. It supports an add-on system whereby you can use 3&lt;sup style="margin: 0px; padding: 0px;"&gt;rd-party&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;/sup&gt;modules or write your own to add new features adapted to your needs.&lt;/p&gt;&lt;div id="attachment_498" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;a href="http://www.pentaho.com/index.php" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-498" title="pentaho-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/pentaho-oss.jpg" alt="Pentaho BI Suite " style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Pentaho BI Suite&lt;/p&gt;&lt;/div&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;Pentaho BI Suite&lt;/strong&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.pentaho.com/index.php" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;Pentaho&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is an open source data warehousing and Business Intelligence (BI) suite available as downloadable or as SaaS. It supports query and reporting, interactive analysis, dashboards, data integration/ETL, data mining. Its dashboards feature allow you to get immediate visibility into metrics while the data mining feature can help you discover hidden patterns and indicators of future performance for your business.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;div id="attachment_500" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;a href="http://piwik.org/" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;img class="size-full wp-image-500" title="piwiki-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/piwiki-oss.jpg" alt="Piwik" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Piwik&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;Piwik&lt;/strong&gt;&lt;/p&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://piwik.org/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;Piwik&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;in a nutshell is a free open source alternative to Google Analytics. It is a PHP/MySQL based web analytics script that can be downloaded and installed on your own web server. Similar to Google Analytics, all you need to add to your website is a copy-and-paste JavaScript tracking code. It will then provide you with detailed reports about your website’s visitors, the search engines and keywords they used, etc. Learn more in this&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://www.blogger.com/piwik-web-analytics-script/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;post&lt;/a&gt;.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;div id="attachment_501" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;a href="https://www.sugarcrm.com/crm/" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;img class="size-full wp-image-501" title="sugarcrm-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/sugarcrm-oss.jpg" alt="SugarCRM " style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;SugarCRM&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;SugarCRM&lt;/strong&gt;&lt;/p&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="https://www.sugarcrm.com/crm/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;SugarCRM&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is a Customer Relationship Management script that has been constantly evolving since the past few years. It is bundled with a set of tools for salesforce automation (leads, pipeline forecasting, and account management), e-marketing, and online lead capture, as well as customer support and automated service handling.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;/strong&gt;&lt;div id="attachment_502" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 160px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;&lt;a href="http://www.hotscripts.com/listing/wordpress/" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;img class="size-full wp-image-502" title="wordpress-oss" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/09/wordpress-oss.jpg" alt="WordPress" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="75" width="150" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;WordPress&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;strong style="margin: 0px; padding: 0px;"&gt;WordPress&lt;/strong&gt;&lt;/p&gt;&lt;/h2&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.wordpress.org/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;WordPress&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability. It supports multiple users, categories, comments, bookmarklets, RSS syndication, several APIs, weblogs.com ping, and more!&lt;/p&gt;&lt;br /&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;Source: &lt;a href="http://www.hotscripts.com/blog/11-popular-open-source-enterprise-software/"&gt;http://www.hotscripts.com/blog/11-popular-open-source-enterprise-software/&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-7087050843855920365?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/FbtV6-BQVYc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/FbtV6-BQVYc/11-popular-open-source-enterprise.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">11</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/09/11-popular-open-source-enterprise.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-6302919134741085338</guid><pubDate>Mon, 07 Sep 2009 03:20:00 +0000</pubDate><atom:updated>2009-09-06T20:36:20.727-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">XML</category><category domain="http://www.blogger.com/atom/ns#">rss builder</category><title>How to Create an RSS Feed</title><description>RSS is a method of distributing links to content in your web site that you'd like others to use. In other words, it's a mechanism to "syndicate" your content.
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Steps&lt;/span&gt;
&lt;br /&gt;What is RSS?
&lt;br /&gt;How does RSS syndication work? Say you publish a new web page about a particular topic. You want others interested in that topic to know about it. By listing the page as an "item" in your RSS file, you can have the page appear in front of those who read information using RSS readers or "news aggregators". RSS also allows people to easily add links to your content within their own web pages. Bloggers are a huge core audience that especially does this.
&lt;br /&gt;What does RSS stand for? There's a can of worms. RSS as introduced by Netscape in 1999 then later abandoned in 2001 stood for "Rich Site Summary." Another version of RSS pioneered by UserLand Software stands for "Really Simple Syndication." In yet another version, RSS stands for "RDF Site Summary."
&lt;br /&gt;History buffs might be interested that there's been some rivalry over who invented RSS. This is why we have both different names and indeed different "flavors" or versions of RSS.
&lt;br /&gt;At the heart of an RSS file are "items." No matter what version of RSS you settle on, your file will have to include at least one item. Items are generally web pages that you'd like others to link to. For example, let's say you just created a web page reviewing a new cell phone that's being released. Information about that page would form an item.
&lt;br /&gt;To enter your item into the RSS file, you'll need three bits of information:
&lt;br /&gt;
&lt;br /&gt;Title
&lt;br /&gt;Description
&lt;br /&gt;Link
&lt;br /&gt;
&lt;br /&gt;The title and description of your item need not match exactly the HTML title tag of the web page that the item refers to, nor the meta description tag, assuming you use these. You can write any title and description that you think will describe the page. However, using your page's title and meta description tag certainly makes it easy to copy and paste to build your RSS feed.
&lt;br /&gt;
&lt;br /&gt;In the case of our example page, let's say this is the information we settle on to define it as an item:
&lt;br /&gt;
&lt;br /&gt;Recent Changes - WikiHow
&lt;br /&gt;Patrol all the edits that people have recently made to wikiHow!
&lt;br /&gt;http://www.wikihow.com/Special:Recentchanges
&lt;br /&gt;
&lt;br /&gt;Now we have to surround that information with xml tags. These are similar to HTML tags, with the exception that unlike with HTML, there's no set definition of xml tags. Anyone can make up a particular xml tag. Whether it is useful depends on the program that reads the resulting xml file. In the case of RSS feeds, they have their own unique set of XML tags that are defined. Use these correctly, and then anything that reads RSS will understand your information.
&lt;br /&gt;
&lt;br /&gt;Did that make your head spin? If so, don't reread - just carry on to see how simple it is. First, open a text editor like Notepad. We're going to build our RSS file using it.
&lt;br /&gt;
&lt;br /&gt;For your title, you need to start it with the title tag, then follow this with the text of the title, then end with the title tag.
&lt;br /&gt;
&lt;br /&gt;For your description, you do the same, starting out with the opening description tag, then following with the actual description, then closing with the description tag.
&lt;br /&gt;
&lt;br /&gt;Next, we add the link information, beginning with link, following with the actual hyperlink, then closing with . 
&lt;br /&gt;Now there's one more thing we need to do. We actually have to define all this information as forming a particular "item," which we do using a special item tag.
&lt;br /&gt;
&lt;br /&gt;You place the opening item tag, "item" at the top or start of all the information we've listed. You then place the closing item tag, "item", at the bottom or "end" of the item information. 
&lt;br /&gt;
&lt;br /&gt;Congratulations! You've now made your first item. There's a bit more to do to finish our RSS file. First, what if we have other items we want to syndicate? Then we simply add more item elements, just as we did above. You can have up to 15 items. New items tend to be inserted at the top, with old items removed from the bottom, to make room for new stuff.
&lt;br /&gt;With our example, let's see how things look if we add two more items:
&lt;br /&gt;
&lt;br /&gt;Now, how does something reading our RSS file know that the information above is for our "channel" when it looks just like item information? Simple. As long as we don't surround this information with an opening and closing item tags, it won't be seen as item information but rather as channel information.
&lt;br /&gt;There are a few last things we need to do. First, we need to add a tag at the very top of the file saying that this is written according to the XML 1.0 specifications. Right under this, we also have to say what RSS version we are using.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;So far, everything we've done is compatible with UserLand's popular RSS 0.91 version. However, it also matches UserLand's latest RSS 2.0 version, as well, so we'll define the file as meeting that specification. This will allow us to add other neat features in the future, if we want.
&lt;br /&gt;
&lt;br /&gt;Finally, after the RSS tag, we need to add an opening "channel" tag. That gives us this at the top of the file:
&lt;br /&gt;
&lt;br /&gt;&lt;rss version="2.0"&gt;
&lt;br /&gt;&lt;channel&gt;
&lt;br /&gt;At the bottom of the file, after all the items we want to syndicate, we have to insert a closing channel and RSS tag, in that order. Those look like this:
&lt;br /&gt;&lt;/channel&gt;
&lt;br /&gt;&lt;/rss&gt;
&lt;br /&gt;This means our complete file looks like this:
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Saving The File - Now that we're done adding to the file, we need to save it. But what name shall we give it? As for the first part, that really can be whatever you like. For our example, let's say we just call it "feed.xml".
&lt;br /&gt;
&lt;br /&gt;Now that our file is saved, we can place it anywhere we want on our web server. Let's say we put it in the root or home directory. Then the address to our RSS file would be:
&lt;br /&gt;
&lt;br /&gt;http://www.wikihow.com/feed.xml
&lt;br /&gt;Adding the Feed to Your Page - There is one more thing left to do. To make it obvious that you have a feed on your page you should declare it in the head tag on your web page. To do this add the following code:
&lt;br /&gt;&lt;link rel="alternate" type="application/rss+xml" title="WikiHow Feeds" href="http://www.wikihow.com/feed.xml"&gt;
&lt;br /&gt;If everything worked, you should see the little orange RSS icon in your browser's address bar. (Firefox,Opera)
&lt;br /&gt;
&lt;br /&gt;Tips
&lt;br /&gt;Getting started will take time and isn't that easy, but after you know the basics it gets easier.
&lt;br /&gt;For more technical details on RSS, read the RSS 2.0 specification
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-6302919134741085338?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/6k7rlobGyyo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/6k7rlobGyyo/how-to-create-rss-feed.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/09/how-to-create-rss-feed.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-959789256831284742</guid><pubDate>Tue, 25 Aug 2009 04:44:00 +0000</pubDate><atom:updated>2009-08-24T21:47:41.592-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">popularity</category><category domain="http://www.blogger.com/atom/ns#">programming language</category><title>Determining Programming Language Popularity</title><description>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(80, 80, 80); font-family: Arial; font-size: 13px; line-height: 18px;"&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;One common question that members ask us is which language is most popular? While there is no definitive answer to this question, it all depends on which statistics and rankings you are looking at and how you interpret the results. There are several organizations that publishes regular reports or tools that provides trends to measure popularity of a programming language. In this post, we take a look at some of these reports and tools along with the metrics they use.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;TIOBE – Popularity by Community Index&lt;/a&gt;&lt;/h2&gt;&lt;div id="attachment_432" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 110px;"&gt;&lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-432" title="TIOBE" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/08/tiobe3.jpg" alt="TIOBE" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="62" width="100" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;TIOBE&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;The TIOBE Programming Community index  gives a monthly indication of the popularity of programming language based several factors - the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, Wikipedia and YouTube are used also to calculate the ratings.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;a href="http://langpop.com/" target="_blank" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;LangPop - Popularity by Search and Discussions&lt;/a&gt;&lt;/h2&gt;&lt;div id="attachment_433" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 110px;"&gt;&lt;a href="http://langpop.com/" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-433" title="LangPop" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/08/langpop4.jpg" alt="LangPop" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="62" width="100" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;LangPop&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;LangPop uses some metrics similar to TIOBE, but also takes into consideration some other channels like Craiglist, Amazon’s books index, del.icio.us and open source project hosting site like Google Code and Freshmeat. It also aggregates data based on what people are talking about on IRC, Reddit and Slahsot.&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt; &lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;a href="https://www.ohloh.net/languages/compare" target="_blank" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;Ohloh - Popularity by Commits&lt;/a&gt;&lt;/h2&gt;&lt;div id="attachment_434" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 110px;"&gt;&lt;a href="https://www.ohloh.net/languages/compare" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-434" title="Ohloh" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/08/ohloh1.jpg" alt="Ohloh" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="62" width="100" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Ohloh&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;Ohloh is a project hosting site for open source projects and has a strong community of developers. Their monthly language comparison is calculated based on the number of commits made by source code developers for that particular month, A commit is a change done to the code and Ohloh requires at least one line change for that language.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;a href="http://www.blackducksoftware.com/news/releases/2009-08-12" target="_blank" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;BlackDuck - Popularity by Lines of Code&lt;/a&gt;&lt;/h2&gt;&lt;div id="attachment_435" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 110px;"&gt;&lt;a href="http://www.blackducksoftware.com/news/releases/2009-08-12" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-435" title="BlackDuck" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/08/blackduck1.jpg" alt="BlackDuck" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="62" width="100" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;BlackDuck&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;BlackDuck publishes regular analysis of language usage used in open source projects. It determines this by counting lines of source code across all open source projects. Black Duck Software gathers information by continuously spidering the Internet collecting open source code and binary files into its database from over 200,000 projects.&lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;a href="http://www.google.com/trends?q=php%2Casp.net%2Casp%2Cajax%2Ccfml%2Cjsp%2Cruby+on+rails&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=all&amp;amp;sort=0" target="_blank" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;Google Trends - Popularity by Search Trends&lt;/a&gt;&lt;/h2&gt;&lt;div id="attachment_436" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 110px;"&gt;&lt;a href="http://www.google.com/trends?q=php%2Casp.net%2Casp%2Cajax%2Ccfml%2Cjsp%2Cruby+on+rails&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=all&amp;amp;sort=0" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-436" title="Google Trends " src="http://www.hotscripts.com/blog/wp-content/uploads/2009/08/google-trends1.jpg" alt="Google Trends " style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="62" width="100" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Google Trends&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;Google Trends is a powerful tool to see how often a particular search-term is used relative to the total search-volume. The best thing about Google Trends is that results are in real time and you can group any programming language of your choice to be included in the result.&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt; &lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;a href="http://www.indeed.com/jobtrends?q=php%2Casp.net%2Casp%2Cajax%2Ccfml%2Cjsp%2Cruby+on+rails&amp;amp;l=&amp;amp;relative=1" target="_blank" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;Indeed - Popularity by Job Trends&lt;/a&gt;&lt;/h2&gt;&lt;div id="attachment_437" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 110px;"&gt;&lt;a href="http://www.indeed.com/jobtrends?q=php%2Casp.net%2Casp%2Cajax%2Ccfml%2Cjsp%2Cruby+on+rails&amp;amp;l=&amp;amp;relative=1" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-437" title="Indeed " src="http://www.hotscripts.com/blog/wp-content/uploads/2009/08/indeeed1.jpg" alt="Indeed " style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="62" width="100" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;Indeed&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;Indeed is a search engine that aggregates job listings from the web. It provides a trend tool to compare jobs with particular term. You can use it to search job trends based on the different programming language.&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt; &lt;/p&gt;&lt;h2 style="margin: 20px 0px 6px; padding: 0px; font-weight: normal; font-size: 21px; color: rgb(21, 122, 67); background-image: none; font-family: Times; text-decoration: none; font-style: normal;"&gt;&lt;a href="http://blogs.oreilly.com/cgi-bin/mt/mt-search.cgi?blog_id=57&amp;amp;tag=market%20analysis&amp;amp;limit=20&amp;amp;IncludeBlogs=57" target="_blank" style="margin: 0px; padding: 0px; color: rgb(56, 56, 56); background-image: none; font-size: 21px; font-weight: normal; font-family: Times; text-decoration: none; font-style: normal;"&gt;O’Reillly - Popularity by Book Sales&lt;/a&gt;&lt;/h2&gt;&lt;div id="attachment_438" class="wp-caption alignright" style="border: 1px solid rgb(221, 221, 221); margin: 10px; padding: 4px 0px 0px; float: right; text-align: center; background-color: rgb(243, 243, 243); width: 110px;"&gt;&lt;a href="http://blogs.oreilly.com/cgi-bin/mt/mt-search.cgi?blog_id=57&amp;amp;tag=market%20analysis&amp;amp;limit=20&amp;amp;IncludeBlogs=57" style="margin: 0px; padding: 0px; color: rgb(132, 0, 0);"&gt;&lt;img class="size-full wp-image-438" title="O'Reillly" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/08/oreilly1.jpg" alt="O'Reillly" style="border-style: none; border-width: 0px; margin: 0px; padding: 0px;" height="62" width="100" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text" style="margin: 0px; padding: 0px 4px 5px; font-size: 11px; line-height: 22px;"&gt;O'Reillly&lt;/p&gt;&lt;/div&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;O’Reilly publishes regular posts on their blog about programming lanaguage trends based on computer book sales. These statistics rough ballparks and are based on O’Reilly published books only but they still provides a relative demand of each language.&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;a href="http://www.hotscripts.com/blog/determining-programming-language-popularity/"&gt;http://www.hotscripts.com/blog/determining-programming-language-popularity/&lt;/a&gt;&lt;/p&gt;&lt;p style="margin: 0px 0px 15px; padding: 0px; line-height: 22px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-959789256831284742?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/XzATYZG_Kfo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/XzATYZG_Kfo/determining-programming-language.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/08/determining-programming-language.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-1924286504138331428</guid><pubDate>Sat, 01 Aug 2009 01:43:00 +0000</pubDate><atom:updated>2009-07-31T18:44:42.099-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">application</category><category domain="http://www.blogger.com/atom/ns#">web developers</category><category domain="http://www.blogger.com/atom/ns#">iphone</category><title>6 iPhone Apps for Web Developers</title><description>&lt;p&gt;Perhaps the biggest reason for the staggering success of the iPhone is its thousands of applications that are available. iPhone apps ranges from games, productivity tools, entertainment programs but there are also apps that can be a great addition to a web developer’s toolbox. If you have an iPhone, here are some apps that you’ll find useful. Please note that the URLs for the applications below will automatically load the Apple Store within iTune.&lt;/p&gt; &lt;h2&gt;Developer Notes&lt;/h2&gt; &lt;p&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=323249166&amp;amp;mt=8"&gt;&lt;img class="alignright size-full wp-image-325" style="margin-left: 5px; margin-right: 5px;" title="developernotes" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/07/developernotes.jpg" alt="developernotes" height="75" width="75" /&gt;Developer Notes&lt;/a&gt; is an application built exclusively for software and web development community. It allows you to organize development tasks with ease. Each tasks can be assigned to a specific type like todo, fixme, idea with different tracking status like new, pending, on-hold or done. You can also prioritize tasks and set their due dates or move tasks between different versions. DeveloperNotes also comes with built-in email features that allows you to email tasks to yourself or your lead developer.&lt;/p&gt; &lt;h2&gt;iCheatSheets&lt;/h2&gt; &lt;p&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=319453066&amp;amp;mt=8"&gt;&lt;img class="alignright size-full wp-image-326" style="margin-left: 5px; margin-right: 5px;" title="icheatsheet" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/07/icheatsheet.jpg" alt="icheatsheet" height="75" width="75" /&gt;&lt;/a&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=319453066&amp;amp;mt=8" target="_blank"&gt;CheatSheets&lt;/a&gt; is for every seasoned developers that needs a quick refresher course. It is a free reference application that gives web developers quick reference to a variety of useful functions right at their finger tips. It has quick function and command references for most popular web technologies like ASP, PHP, HTML and also includes reference for topics like Mod Rewrite and Regular Expressions.&lt;/p&gt; &lt;h2&gt;FTP on The Go&lt;/h2&gt; &lt;p&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=286479939"&gt;&lt;img class="alignright size-full wp-image-327" style="margin-left: 5px; margin-right: 5px;" title="ftponthego" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/07/ftponthego.jpg" alt="ftponthego" height="76" width="75" /&gt;&lt;/a&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=286479939" target="_blank"&gt;FTP on The Go&lt;/a&gt; is an FTP client for the iPhone with all features of a desktop FTP client. It allows you to fix your web site, and view files on your FTP server from anywhere. Other than the default FTP features like upload and download, it also support editing text file with its built-in editor. Its Find/Replace and Go To Line Number enables you to fix your codes faster. FTP on The Go can also store your files on your iPhone and you can view,edit or email any of the saved files.&lt;/p&gt; &lt;h2&gt;DatabaseViewer&lt;/h2&gt; &lt;p&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=312061860&amp;amp;mt=8"&gt;&lt;img class="alignright size-full wp-image-328" style="margin-left: 5px; margin-right: 5px;" title="dbviewer" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/07/dbviewer.jpg" alt="dbviewer" height="75" width="75" /&gt;&lt;/a&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=312061860&amp;amp;mt=8" target="_blank"&gt;DatabaseViewer&lt;/a&gt; is a commercial application with its price tagged at $19.99 - a little expensive for an iPhone application, in my opinion. It will allow you to view any database on your iPhone and you can synchronize data wirelessly. It support SQL select queries, filters and you can sort the fields. DatabaseViewer currently supports most of the popular databases like MS Access, SQL Server, MySQL, PostegreSQL and any other ODBC compliant database.&lt;/p&gt; &lt;h2&gt;WorkTimer&lt;/h2&gt; &lt;p&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=293280857&amp;amp;mt=8"&gt;&lt;img class="alignright size-full wp-image-329" style="margin-left: 5px; margin-right: 5px;" title="worktimer" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/07/worktimer.jpg" alt="worktimer" height="74" width="75" /&gt;&lt;/a&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=293280857&amp;amp;mt=8" target="_blank"&gt;WorkTimer&lt;/a&gt; is a time management application that allows you to track how long you’ve spent on various project so that you can eventually bill your client accordingly. This is pretty useful for web developers that works both from office and home and need a convenient way to track their hours. At the end of each month, you can email yourself (or anyone else) a monthly report of all the hours worked in different projects.&lt;/p&gt; &lt;h2&gt;Source Viewer&lt;/h2&gt; &lt;p&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=308126298&amp;amp;mt=8"&gt;&lt;img class="alignright size-full wp-image-330" style="margin-left: 5px; margin-right: 5px;" title="soureviewer" src="http://www.hotscripts.com/blog/wp-content/uploads/2009/07/soureviewer.jpg" alt="soureviewer" height="75" width="75" /&gt;&lt;/a&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=308126298&amp;amp;mt=8" target="_blank"&gt;Source Viewer&lt;/a&gt; is a handy application that enables you to view a web site’s HTML source code - just as you would with the ‘view source’ option in your web browser. The source code of the web site is presented in an easy to read format with code highlighting feature. The best thing about this application is that it also collects all images and links (CSS links, JS links) from the source code and these can then be viewed separately.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Source : http://www.hotscripts.com/blog/iphone-apps-for-web-developers/&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-1924286504138331428?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/vGD2dMxB1aA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/vGD2dMxB1aA/6-iphone-apps-for-web-developers.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/07/6-iphone-apps-for-web-developers.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-5592118370755995143</guid><pubDate>Sat, 04 Jul 2009 04:39:00 +0000</pubDate><atom:updated>2009-07-03T21:43:00.845-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php tutorial</category><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">PHP techniques</category><title>10 Ways to Avoid Writing Crappy Code</title><description>&lt;span style="font-weight:bold;"&gt;1. Learn OOP and common OO principles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is an absolute requirement. If you are still coding procedural, this is no small task. What are you waiting for?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Employ Test Driven Design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Code that is buggy or simply doesn't work at all can safely be considered "crappy code". TDD gives you the confidence that your code works, and the side effects force better and more flexible software design.&lt;br /&gt;If you are not familiar with TDD yet, and this post has prompted you to try it, be warned: at first it will seem very cumbersome. What definitely will help is this piece of advice, which is at the core of Test Driven Design: don't write tests afterwards, write them first. Without going to much into the details, and somewhat simplified the general mantra is this: write a test first, make it work by writing the application code, refactor, write another test, make it work, refactor, etc etc. It's a cycle. The application code follows the test code, not the other way around.&lt;br /&gt;I recommend PHPUnit. It has the most features and the largest adoption.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Refactor, refactor, refactor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Refactoring means "to improve the design of existing code". Making changes to code results in an increasing loss of quality of that code, this is known as "software decay". To battle this phenomenon, you have to constantly evaluate if the code hasn't lost it's quality, and look for opportunities to improve the design beyond it's original. But there's a catch. And it isn't the time that refactoring takes, if you do it properly you'll save those hours by having avoided software decay. It is the risk of change.&lt;br /&gt;I can understand if you are hesitant to change code that works (at least for now). But this is where number two comes back into play: as long as you've written the right tests, you can make sure your changes don't break anything.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Simpler is better&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Your mind should constantly be waging a battle between simplicity and flexibility. Avoid unnecessary complication.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4. Use Design Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Design Patterns describe real world software design problem and solutions. Make sure you are familiar with them, buy some books. If you encounter a design problem that seems familiar take your trusty GoF and PoEAA from the shelf and look it up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5. Don't Use Design Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once you are familiar with Design Patterns, or even just with the existence of them, it can be tempting to start sprinkling pattern implementations over your application code, just because you can. Don't. Remember a Design Pattern consists of a problem and one or more solutions to that problem. Until you have the problem, don't use the solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;6. Accept the limitations of your language&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Believe me, I know that as a programmer it is difficult to accept limitations on bending your code to your will, but trying to change the behaviour of PHP is not the solution. PHP has limitations, you'll have to live with them. If you try to "patch" them, chances are you will do more harm than good.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7. Pretend you are writing a book&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It has been said that "code should be easy to read rather than easy to write". Maybe somebody else will need to understand your code at some stage. Maybe two years from now, you will revisit this code and need to re-learn it's inner workings.&lt;br /&gt;Semantics, meaningful docblocks and clear execution flow are everything. Imagine reading an instruction manual without pictures, filled with meaningless abbreviations, and with the pages in arbitrary order, without page numbers. That's how someone, maybe you, will feel if you ignore this advice.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;8. Peer Review&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Believe it or not, you don't know everything and you aren't always right. Nobody is. Getting a "second opinion" can only improve the end result.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;9. E_STRICT is your friend&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make sure your code runs properly with E_STRICT turned on. Although, if you have gotten this far, I don't think that will be a problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;10. Create a distinction between "source code" and a "build"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Even though PHP is an interpreted language, this is an important distinction in my opinion, even though practically noone employs this in the PHP world. A build in PHP is a copy of (part of) the source code, which includes assets like HTML, CSS and JavaScript, and is stripped of anything not necessary for running the application. Maybe your build is a Phar file, or maybe you have combined some source files into a single file (like the guys at Doctrine do). Maybe you can provide different build of the same project to server different purposes..&lt;br /&gt;How does this help you avoid crappy code? It allows you to have the source code and build differ, avoiding any compromises you might be tempted to make to facilitate runing or developing the application. Bonus points if you allow the user to choose between placing everything in the server document root or just a bootstrap and the static files.&lt;br /&gt;&lt;br /&gt;There are various build tools available, personally I use PHPUnderControl, which is a patch for CruiseControl and gives you a variety of build server features. It uses Ant by default, but I also use Phing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-5592118370755995143?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/1kQLaLV-hsg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/1kQLaLV-hsg/10-ways-to-avoid-writing-crappy-code.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/07/10-ways-to-avoid-writing-crappy-code.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-3049292486697510844</guid><pubDate>Fri, 03 Jul 2009 06:58:00 +0000</pubDate><atom:updated>2009-11-05T04:55:35.622-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php tutorial</category><category domain="http://www.blogger.com/atom/ns#">PHP</category><title>10 Signs of Crappy PHP Software</title><description>&lt;div style="text-align: justify;"&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;Like it or not, as a professional developer, sooner or later you are going to do some customising (if you are lucky, "extending") of existing software.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;If you are not familiar with the software, it is good advice to look into it before accepting the job. I had to learn that the hard way. But how do you recognize crappy applications without getting knee deep into the code? 10 pointers to identify crappy PHP software quickly...&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;1. The software tries to reinvent the object model, or "fix" language features.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;See if you can find a class called "Object". If you find it, it's a pretty clear indication that the author is in the business of trying to reinvent the object model (most commonly because of his own lacking understanding of OO). It is safe to assume that his "fixes" won't stop there. Unplug your phone and hide under your desk.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;2. The code includes user defined global variables&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;A search in the code for "global" or "$GLOBALS" may reveal something like this:&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;global $database, $my, $mainframe;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;The infamous global variable. If you can tell me what those last two variables contain you are either intimate with the software I pulled it from, or you're psychic. Unlimited bonus points if you can say what code has had it's claws on it before execution flow got to this point. In short, steer well clear.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;3. Scattered HTML and SQL&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;Search for some common SQL and HTML strings. You should be able to determine very quickly whether these are appropriate places for HTML or SQL. If you find HTML and SQL in the same file, "crappyness" is most definitely confirmed.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;4. Classes do too much&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;Find the 3 largest class files by bit size. Take a look at the class name. Does it indicate a distinct responsibility? Look at the methods. Are the tasks they perform closely related? If not, run away screaming.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;5. Lots of properties are public or lots of properties are static&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;If lots of properties are declared "public static", triple your quote. If I have to explain why, maybe there's an open position on the development team of the software for you.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;6. Multiple levels of inheritance&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;More than 2 levels inheritance should be avoided like the plague. I stake my life on the resulting objects having too much unrelated behaviour (ok, maybe not my life, but if you find a proper use of more than 2 levels of inheritance, I'll buy you a beer).&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;7. The authors try to use Design Patterns&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;Whether or not the authors have a clue is easily determined by searching for some of the most common design patters. Search the code base and/or documentation for "factory", "decorator", "strategy" etc. If present, you can pretty quickly determine whether the authors know their stuff or are trying to look interesting. That is, if you know how the code should look. If not, refuse to take the project until you do.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;8. The software messes with the error level&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;Well written applications run fine at any error level. Searching the files for /error_level\(.*\)/ should do the trick. In case of hits, try replacing the value with E_STRICT. That's little more than a formality though.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;9. In the code base, there is a directory called "core"&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;This is usually used as an excuse to have the whole application dependent on whatever is in there. Despite the appeal of the term (it does make the contents sound pretty cool and important), defining a "core" is a sign of bad design.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;10. The software uses it's own template language.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&lt;font face="verdana"&gt;Be afraid. Very afraid. These guys are definitely in the business of reinventing the wheel. Ignore this warning and you will find yourself spending the better part of a day simulating a "for" loop.&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font class="Apple-style-span" size="small"&gt;&lt;font class="Apple-style-span" size="4"&gt;&lt;font class="Apple-style-span" size="16"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;font class="Apple-style-span" size="small"&gt;&lt;a style="font-family: verdana;" href="http://www.pixeloutpost.com/"&gt;&lt;font style="text-decoration: none;"&gt;&lt;font style="font-style: normal;"&gt;&lt;font&gt;fine arts prints&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana"&gt; - Outpost makes it easy to create large prints and Art from your Photos and Illustrations on multiple types of fine art papers and artist canvases&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font size="2"&gt;&lt;a style="font-family: verdana;" href="http://www.centauruscomputers.com/"&gt;&lt;font style="text-decoration: none;"&gt;&lt;font style="font-style: normal;"&gt;&lt;font&gt;gaming computer&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana"&gt; - Computers - Buy new custom built gaming computers from $499.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.netconcepts.cn/services/seo"&gt;Chinese SEO&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.seopositive.com/"&gt;SEO Company&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;font class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;" face="'Times New Roman'" size="3"&gt;&lt;font class="Apple-style-span" style="border-collapse: collapse;" face="Arial"&gt;&lt;a href="http://www.marketingguru.co.uk/"&gt;Marketing Lists&lt;/a&gt; - &lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;" face="'Times New Roman'" size="3"&gt;&lt;font class="Apple-style-span" style="border-collapse: collapse;" face="Arial"&gt;Accurate and targeted UK consumer mailing list selectable from over 1000criteria.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;font class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;" face="'Times New Roman'" size="3"&gt;&lt;font class="Apple-style-span" style="border-collapse: collapse;" face="Arial"&gt;&lt;a href="http://www.moolahology.com/"&gt;Work from home&lt;/a&gt; - &lt;/font&gt;&lt;/font&gt;&lt;font class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;" face="'Times New Roman'" size="3"&gt;&lt;font class="Apple-style-span" style="border-collapse: collapse;" face="Arial"&gt;Moolahology is a work from home guide that focuses on helping people start their own internet business through affiliate marketing.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.infocaresolution.com/"&gt;seo company india&lt;/a&gt; - INFOCARE India provides Search Engine Marketing solutions like SEO, Link Building, PPC, Web Development and Web Design services at very affordable prices.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webpromotionerindia.com/"&gt;Link building services india&lt;/a&gt; - cheapest SEO Company in India offers free SEO consultation and Search Engine Optimization.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.covalentworks.com/"&gt;EDI solutions&lt;/a&gt; - EDI solutions without buying EDI software. Complete outsourced systems.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.clinkweb.com/"&gt;Web design company in Miami&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.bootstrapdevelopment.com/"&gt;ipod software&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eci2.com/"&gt;Eci software&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.highlyrelevant.com/california-search-engine-optimization-seo.html"&gt;California seo services&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.micrositez.co.uk/"&gt;&lt;font dir="ltr" id=":2y3"&gt;SEO&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.techservicesguide.com.au/"&gt;IT Support IT Services&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webconferencing.net.au/livemeetingonline.php"&gt;Mikes Live Meeting&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&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/3281895583339810405-3049292486697510844?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/1psiMoVV8LI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/1psiMoVV8LI/10-signs-of-crappy-php-software.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/07/10-signs-of-crappy-php-software.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-2481018756916202142</guid><pubDate>Tue, 23 Jun 2009 08:44:00 +0000</pubDate><atom:updated>2009-06-26T05:28:13.071-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">PHP techniques</category><title>Using MySQL Administrator with WampServer</title><description>&lt;p&gt;For those readers who do not develop PHP on Windows platform &lt;a href="http://www.wampserver.com/en/" target="_blank"&gt;WampServer&lt;/a&gt; is probably the most popular Apache + MySQL + PHP package for Windows. MySQL Administrator on the other hand, is a part of &lt;a href="http://dev.mysql.com/downloads/gui-tools/5.0.html" target="_blank"&gt;MySQL GUI Tools&lt;/a&gt; package.&lt;/p&gt; &lt;p&gt;The problem with this pair, is that they don't want to work together. At least not right out of box. MySQL Administrator fails to find mysql service process as installed by WampServer. This leads to infamous 'Could not find settings' error message.&lt;/p&gt; &lt;p&gt;&lt;img src="" alt="" /&gt;&lt;/p&gt; &lt;p&gt;You still will be able to use MySQL Administrator, but some of its features will be unavailable - among them quite important 'Startup variables' that lets you configure your server.&lt;/p&gt; &lt;p&gt;The reason is simple. WampServer keeps MySQL's config file in a directory, that is not checked by MySQL Administrator's searching algorithm.&lt;/p&gt; &lt;p&gt;Luckily, the solution is also simple.&lt;/p&gt; &lt;p&gt;Open registry editor&lt;br /&gt;Windows XP: Go to &lt;tt&gt;Start&lt;/tt&gt; &gt; &lt;tt&gt;Run...&lt;/tt&gt;  type in &lt;tt&gt;regedit&lt;/tt&gt; and press Enter&lt;br /&gt;Vista: Go to &lt;tt&gt;Start&lt;/tt&gt;, type &lt;tt&gt;regedit&lt;/tt&gt; into search box and press Enter&lt;/p&gt; &lt;p&gt;A word of warning: be careful when using registry editor, as you might break your system if you change wrong variables.&lt;/p&gt; &lt;p&gt;Using tree on the left go to:&lt;br /&gt;&lt;tt&gt;HKEY_LOCAL_MACHINE\System\&lt;wbr&gt;CurrentControlSet\Services\&lt;wbr&gt;wampmysqld&lt;/tt&gt;&lt;/p&gt; &lt;p&gt;In the window on the right find &lt;tt&gt;ImagePath&lt;/tt&gt; variable, double click it's name.&lt;/p&gt; &lt;p&gt;In the dialog that opens you should see something like this:&lt;br /&gt;&lt;tt&gt;c:\wamp\bin\mysql\mysql5.1.33\&lt;wbr&gt;bin\mysqld.exe  wampmysqld&lt;/tt&gt;&lt;br /&gt;(MySQL's version may vary)&lt;/p&gt; &lt;p&gt;Change it like this:&lt;br /&gt;&lt;tt&gt;"c:\wamp\bin\mysql\mysql5.1.&lt;wbr&gt;33\bin\mysqld.exe" --defaults-file="c:\wamp\bin\&lt;wbr&gt;mysql\mysql5.1.33\my.ini" wampmysqld&lt;/tt&gt;&lt;br /&gt;(be careful not to miss any double quotes!&lt;/p&gt; &lt;p&gt;Close registry editor, then restart you MySQL server from WampServer's tray menu.&lt;/p&gt; &lt;p&gt;MySQL Administrator should work fine now.&lt;/p&gt; &lt;p&gt;That would be it ;)&lt;/p&gt; &lt;p&gt;----&lt;/p&gt; &lt;p&gt;&lt;a href="http://forums.mysql.com/read.php?34,128259,128297#msg-128297" target="_blank"&gt;MySQL Forums post, where I've found this solution&lt;/a&gt;|&lt;a href="http://www.bluehat.co.uk/services/database-development.aspx" target="_blank"&gt;Database Software Development by Expert Developers, UK&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-2481018756916202142?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/GoKpOmepWlg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/GoKpOmepWlg/using-mysql-administrator-with.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/06/using-mysql-administrator-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-7125860447925645412</guid><pubDate>Thu, 18 Jun 2009 11:01:00 +0000</pubDate><atom:updated>2009-08-01T05:55:17.231-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php tutorial</category><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">linux user</category><category domain="http://www.blogger.com/atom/ns#">PHP training</category><title>SSH Auto-mount Network Share</title><description>&lt;p&gt;(&lt;b&gt;Beware&lt;/b&gt; - &lt;i&gt;This blog/tutorial is directed towards linux based users&lt;/i&gt;)&lt;br /&gt;When doing any type of work, especially web work, one of the royal pains is FTPing to your server, or any type of file transfer. Well now you can make it quick and painless. Let me introduce SSHFS. There are 3 major components when creating the SSHFS, and I will guide you through creating and installing all of the necessary steps. Now you can mount and use your file system to automatically upload files and folders to your server with ease.&lt;/p&gt; &lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;i&gt;The 3 Major components:&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;SSH Automatic Login&lt;/li&gt;&lt;li&gt;Install SSHFS&lt;/li&gt;&lt;li&gt;Mount your folder(s)&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;SSH Automatic Login&lt;/h3&gt;&lt;p&gt;Run this command (with the obvious variable substitutions).  It should create a public ssh key on your server.&lt;/p&gt; &lt;pre&gt;ssh-copy-id [-i [identity_file]] [user@]machine&lt;/pre&gt;&lt;ol&gt;&lt;li&gt;ssh-keygen -t dsa&lt;/li&gt;&lt;li&gt;ssh-copy-id user@machiner.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt; Check to make sure it's there, the file should be called, "authorized_keys".&lt;br /&gt; &lt;/p&gt; &lt;pre&gt;ls -al ~/.ssh/&lt;/pre&gt;&lt;p&gt; If you're having trouble with this part, you can reference this tutorial which breaks this component into smaller steps: &lt;a href="http://wp.uberdose.com/2006/10/16/ssh-automatic-login/" target="_blank"&gt;SSH Automatic Login&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;Install SSHFS&lt;/h3&gt;&lt;pre&gt;sudo apt-get install sshfs&lt;/pre&gt;&lt;p&gt; Or use whatever package manager your distribution provides.&lt;/p&gt; &lt;h3&gt;Mount&lt;/h3&gt;&lt;p&gt; Create a shell script, we'll call it "mount.sh", and add the contents:&lt;br /&gt; &lt;/p&gt; &lt;pre&gt;sshfs [user]@[your_server].com:/dir/&lt;wbr&gt;on/server /dir/to/mount&lt;/pre&gt;&lt;p&gt; Run the script:&lt;br /&gt; &lt;/p&gt; &lt;pre&gt;./mount.sh&lt;/pre&gt;&lt;p&gt; Go to the mounted directory and run the 'ls' command to make sure all of your files/folders from your server show up in your local directory.&lt;/p&gt; &lt;p&gt;After you have this successfully working you should at it to your startup scripts.&lt;br /&gt; &lt;/p&gt; &lt;pre&gt;System &gt;&gt; Preferences &gt;&gt; Sessions &gt;&gt; [add_a_new_entry]&lt;/pre&gt;&lt;p&gt;You should be all set. You should have an automatic SSH login (no prompt for a password) from your computer to your server and a mounted folder to your server that acts as an automatic FTP client. The files in your mounted directory should be synced with that of your server. Now all you have to do is move or copy your desired files/folders into the mounted directory, and voila, they're on your server.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-7125860447925645412?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/s0myPqR7-wY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/s0myPqR7-wY/ssh-auto-mount-network-share.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/06/ssh-auto-mount-network-share.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-6231980242190787773</guid><pubDate>Sat, 30 May 2009 01:20:00 +0000</pubDate><atom:updated>2009-05-29T18:24:52.034-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">Mysql</category><category domain="http://www.blogger.com/atom/ns#">MySQL 5.1</category><title>MySQL University: Boosting Performance With MySQL 5.1 Partitioning</title><description>&lt;p align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;It's been some time some time since we had a MySQL Uni session subject that could be interesting to an 'average' PHP developer. The one that's going to take place next Thursday will definitely be of this sort.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Introduced in MySQL 5.1, partitioning lets you divide your tables into smaller chunks of data... while still keeping them in one table. No more need for `invoices2006`, `invoices2007`, `invoices2008` tables to cope with archival data, no more wicked UNIONs. Now you can tell MySQL to keep invoices (or whatever you need to keep) from one year separate from all other years, thus improving queries that only deal with records from one year.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;That's just a simple example, as there are much more to partitioning than that. I urge you therefore to attend MySQL Uni's Dimdim session this Thursday, June 4th at 13:00GMT.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;The session will be presented by Giuseppe Maxia a.k.a. The Data Charmer. I attended one of his sessions in the past, and he seems like a very interesting person to listen to.Check the MySQL University home page for details (and possible last minute schedule changes!)For more information about MySQL University, see my introductory post&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-6231980242190787773?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/MZL32yuROdU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/MZL32yuROdU/mysql-university-boosting-performance.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/05/mysql-university-boosting-performance.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-8887666736150034265</guid><pubDate>Sun, 26 Apr 2009 05:13:00 +0000</pubDate><atom:updated>2009-04-25T22:21:54.180-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Personality Development</category><title>Personality Development  - a slide I liked</title><description>&lt;div style="width: 425px; text-align: left;" id="__ss_1342734"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/indrajitbadal/personality-development-1342734?type=presentation" title="Personality Development"&gt;Personality Development&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=personalitydevelopment-090426000833-phpapp02&amp;amp;stripped_title=personality-development-1342734"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=personalitydevelopment-090426000833-phpapp02&amp;amp;stripped_title=personality-development-1342734" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/indrajitbadal/personality-development-1342734#relatedList"&gt;Related List&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/3281895583339810405-8887666736150034265?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/mUYGGCt-mBg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/mUYGGCt-mBg/personality-development.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/04/personality-development.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-6070956910217660258</guid><pubDate>Sun, 26 Apr 2009 01:46:00 +0000</pubDate><atom:updated>2009-04-25T18:54:00.512-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TIMESTAMP</category><category domain="http://www.blogger.com/atom/ns#">Mysql</category><title>Too much information about the MySQL TIMESTAMP</title><description>&lt;div class="serendipity_entry_body"&gt;Source:http://www.gizmola.com/blog/archives/93-Too-much-information-about-the-MySQL-TIMESTAMP.html&lt;br /&gt;&lt;br /&gt;The MySQL timestamp is an oddity, being both a mySQL "Data Type" as well as a type of specialty column that provides a built in default. It doesn't help matters, that the timestamp was changed significantly around mysql version 4.1.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The Old TIMESTAMP&lt;/h3&gt;&lt;br /&gt;In older mysql versions, the TIMESTAMP was not in the same format as a DateTime column, and you could also set up truncation by defining the TIMESTAMP to have a fixed size. For example, you could define a TIMESTAMP column to be a TIMESTAMP(4) which would then only store the 4 digit Year portion of a DateTime value. I won't go into much detail on the pre version 4.1 TIMESTAMP, however, if you're stuck with an older version of MySQL I recommend you read the manual carefully before you attempt to use any of the information here. I'm going to concentrate on the current TIMESTAMP.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;TIMESTAMP Properties&lt;/h3&gt;&lt;br /&gt;At its most fundamental, the TIMESTAMP is really nothing more than a Unix TimeStamp, which is to say, that internally it is stored as an integer value of seconds. Where a MySQL DATETIME column can be used to store any date and time from Jan 1, 1000 to 12/31/9999, the TIMESTAMP is limited in the same ways that the Unix timestamp is currently limited -- it can only store values from Jan 1, 1970 to Jan 9, 2038.&lt;br /&gt;&lt;br /&gt;Those familiar with Unix design, will recognize the Jan 9, 2038 date as being the next big "Y2K" computing panic, and if you're young enough, you may realize a large payday in your future, selling remediation services to companies in roughly another 28 years. The folks at &lt;a href="http://www.gizmola.com/blog/exit.php?url_id=988&amp;amp;entry_id=93" onmouseover="window.status='http://www.y2038.com/';return true;" onmouseout="window.status='';return true;" title="http://www.y2038.com/"&gt;http://www.y2038.com/&lt;/a&gt; are already estimating this to be as much as a 10 trillion dollar jackpot, although no doubt by that time most of the coding will be done by the Morlocks from their &lt;em&gt;underground cave cities&lt;/em&gt;.   Outsourcing of IT to Morlocks will be a major industry trend by the year 2020, mark my words.&lt;br /&gt;&lt;br /&gt;            &lt;/div&gt;                          &lt;div class="serendipity_entry_extended"&gt;&lt;h3&gt;Saving bytes&lt;/h3&gt;&lt;br /&gt;MySQL stores a timestamp as a 32 bit integer, which of course requires 4 bytes of storage. This is one reason why you might want to use a TIMESTAMP over a DATETIME, which requires 8 bytes. Primarily, people look to the TIMESTAMP because, as its name implies, it can be utilized to &lt;em&gt;stamp the time&lt;/em&gt; on a row at the point it's inserted.  Let's take a look at a mysql TIMESTAMP in action.&lt;br /&gt;&lt;br /&gt;First let's create a table with a single TIMESTAMP column in it. We will not refer to this column, and observe what happens when we insert a new row into the table. In case you're keeping score:&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;@@&lt;/span&gt;version;&lt;br /&gt;+-----------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;@@&lt;/span&gt;version &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+-----------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 5.0.45    &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+-----------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="mysql geshi" style="text-align: left;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align: top;"&gt;&lt;div style="margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 0%; font-family: monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 1em; line-height: 1.2em; font-size-adjust: none; font-stretch: normal; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; vertical-align: top;"&gt;&lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;CREATE&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;TABLE&lt;/span&gt; atimestamp &lt;span style="color: rgb(255, 0, 255);"&gt;(&lt;/span&gt;id &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;INT&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;KEY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;AUTO_INCREMENT&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; justnow &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;DATETIME&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; created &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;;&lt;/span&gt;  &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; describe atimestamp;&lt;br /&gt;+---------+-----------+------+-----+-------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Field   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Type      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Null &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Key &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Default           &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Extra          &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+-------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt;      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; int&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;11&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; PRI &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL              &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; auto_increment &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; datetime  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; YES  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL              &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; CURRENT_TIMESTAMP &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+-------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;3&lt;/span&gt; rows &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So here we have the table, along with a datetime column that we will set to the magic value of NOW().&lt;br /&gt;&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; insert into atimestamp &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;justnow&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt; values &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;14&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;29&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;58&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;14&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;29&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;58&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Just as one would hope, MySQL automatically sets the value of TIMESTAMP column I named "created" to be the same as the Server time. So if our primary goal is to have a column that keeps track of when the row was created, our TIMESTAMP does a great job.&lt;br /&gt;&lt;em&gt;&lt;br /&gt;Or does it?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Stopping an UPDATE from overwriting the TIMESTAMP&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;What happens if, at later time, we UPDATE a column in the table?&lt;br /&gt;&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; update atimestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; justnow = NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;Rows matched: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Changed: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Warnings: &lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;            &lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;14&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;30&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;32&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;14&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;30&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;32&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This is not good.  Our created time has been lost, because the default behavior of a TIMESTAMP is to update the value to NOW(), &lt;strong&gt;any time the row is changed.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The TIMESTAMP Defaults&lt;/h3&gt;&lt;br /&gt;Setting a column to be a MySQL TIMESTAMP is equivalent to also giving the column a default of &lt;em&gt;CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP&lt;/em&gt;. For those not familiar with Mysql Defaults, when creating a table, you can specify a default value for a column to receive if it is not specifically assigned a value during an INSERT. You do this using the DEFAULT keyword, and for all columns other than a TIMESTAMP this must be a constant value. Timestamp columns can specify the CURRENT_TIMESTAMP default which tells mySQL to default this column to NOW().&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Stopping UPDATE on TIMESTAMP&lt;/h3&gt;&lt;br /&gt;The only way not to get the update behavior is to specifically declare the TIMESTAMP to &lt;strong&gt;DEFAULT CURRENT_TIMESTAMP&lt;/strong&gt;. This seems to me to defeat the purpose of having the default behavior in the first place but might be understandable if it was possible for you to have a second TIMESTAMP column, perhaps named "updated".&lt;br /&gt;&lt;br /&gt;Unfortunately, you can't have one TIMESTAMP with DEFAULT CURRENT_TIMESTAMP, and a second one with ON UPDATE CURRENT_TIMESTAMP. More often than not, what people really want is only the DEFAULT CURRENT_TIMESTAMP behavior, so it's very important to remember this workaround, if you are using a TIMESTAMP as for example, the "signup date" in a User table. See this in action below:&lt;br /&gt;&lt;br /&gt;&lt;div class="mysql geshi" style="text-align: left;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align: top;"&gt;&lt;div style="margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 0%; font-family: monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 1em; line-height: 1.2em; font-size-adjust: none; font-stretch: normal; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; vertical-align: top;"&gt;&lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;CREATE&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;TABLE&lt;/span&gt; atimestamp &lt;span style="color: rgb(255, 0, 255);"&gt;(&lt;/span&gt;id &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;INT&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;KEY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;AUTO_INCREMENT&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; justnow &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;DATETIME&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; created &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; describe atimestamp;&lt;br /&gt;+---------+-----------+------+-----+-------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Field   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Type      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Null &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Key &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Default           &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Extra          &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+-------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt;      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; int&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;11&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; PRI &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL              &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; auto_increment &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; datetime  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; YES  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL              &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; CURRENT_TIMESTAMP &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+-------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;3&lt;/span&gt; rows &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; insert into atimestamp &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;justnow&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt; values &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;                       &lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;18&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;15&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;38&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;18&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;15&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;38&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; update atimestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; justnow = NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;                       &lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;Rows matched: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Changed: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Warnings: &lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;18&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;15&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;56&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;18&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;15&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;38&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now we have automatic timestamping on INSERT, but without the timestamp being overwritten on UPDATE.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What about an UPDATE only TIMESTAMP?&lt;/h3&gt;&lt;br /&gt;Perhaps there's a really good reason to dedicate a TIMESTAMP to only apply the time when the row is updated. I can't think of one, but for the sake of completeness, here's how you can define the Default.&lt;br /&gt;&lt;br /&gt;&lt;div class="mysql geshi" style="text-align: left;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align: top;"&gt;&lt;div style="margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 0%; font-family: monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 1em; line-height: 1.2em; font-size-adjust: none; font-stretch: normal; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; vertical-align: top;"&gt;&lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;CREATE&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;TABLE&lt;/span&gt; atimestamp &lt;span style="color: rgb(255, 0, 255);"&gt;(&lt;/span&gt;id &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;INT&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;KEY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;AUTO_INCREMENT&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; justnow &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;DATETIME&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; updated &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: rgb(0, 128, 128);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;ON&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;UPDATE&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; describe atimestamp;                           &lt;br /&gt;+---------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Field   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Type      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Null &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Key &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Default             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Extra          &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt;      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; int&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;11&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; PRI &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; auto_increment &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; datetime  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; YES  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;3&lt;/span&gt; rows &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; insert into atimestamp &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;justnow&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt; values &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;33&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;56&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.01&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; update atimestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; justnow = NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;Rows matched: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Changed: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Warnings: &lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;34&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;19&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;34&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;19&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Many Timestamps, but only one that's magical&lt;/h3&gt;&lt;br /&gt;MySQL will allow you to declare multiple columns of type TIMESTAMP, but &lt;strong&gt;only the first timestamp in the table will have the built in Default.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="mysql geshi" style="text-align: left;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align: top;"&gt;&lt;div style="margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 0%; font-family: monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 1em; line-height: 1.2em; font-size-adjust: none; font-stretch: normal; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; vertical-align: top;"&gt;&lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;CREATE&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;TABLE&lt;/span&gt; bigtimestamp &lt;span style="color: rgb(255, 0, 255);"&gt;(&lt;/span&gt;id &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;INT&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;KEY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;AUTO_INCREMENT&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; justnow &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;DATETIME&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; created &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; updated &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; verified &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; describe bigtimestamp;&lt;br /&gt;+----------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Field    &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Type      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Null &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Key &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Default             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Extra          &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt;       &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; int&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;11&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; PRI &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; auto_increment &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; datetime  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; YES  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; CURRENT_TIMESTAMP   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; verified &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;5&lt;/span&gt; rows &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; insert into bigtimestamp &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;justnow&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt; values &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.01&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from bigtimestamp;&lt;br /&gt;+----+---------------------+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; verified            &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;39&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;19&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;39&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;19&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Even with this limitation, it may still be a good idea to declare your Date columns as TIMESTAMP type, as the savings of 4 bytes per date per row can easily be significant if your table will have a lot of rows in it.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Single table Insert and Update Timestamp Workaround&lt;/h3&gt;&lt;br /&gt;It is actually possible to trick mysql into providing the default timestamp behavior for "created' and "updated" columns, despite the documented limitation of only having one default timestamp per table. If you define the first timestamp column to have a default of 0, while also being NOT NULL, you can trick mysql into supplying today's date by &lt;em&gt;explicitly setting the column to be NULL on insert.&lt;/em&gt; In this case, mySQL decides to be &lt;em&gt;helpful&lt;/em&gt; and for no logical reason, to set the value to NOW(). The second TIMESTAMP which has the explict TIMESTAMP defaults, works normally, and is set to NOW() on insert and update.&lt;br /&gt;&lt;br /&gt;&lt;div class="mysql geshi" style="text-align: left;"&gt;&lt;ol&gt;&lt;li style="font-weight: normal; vertical-align: top;"&gt;&lt;div style="margin: 0pt; padding: 0pt; background: transparent none repeat scroll 0% 0%; font-family: monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 1em; line-height: 1.2em; font-size-adjust: none; font-stretch: normal; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; vertical-align: top;"&gt;&lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;CREATE&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;TABLE&lt;/span&gt; atimestamp &lt;span style="color: rgb(255, 0, 255);"&gt;(&lt;/span&gt;id &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;INT&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;KEY&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;AUTO_INCREMENT&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; justnow &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;DATETIME&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; created &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt; &lt;span style="color: rgb(204, 0, 153); font-weight: bold;"&gt;NOT&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;NULL&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: rgb(0, 128, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;,&lt;/span&gt; updated &lt;span style="color: rgb(255, 153, 0); font-weight: bold;"&gt;TIMESTAMP&lt;/span&gt; &lt;span style="color: rgb(153, 0, 255); font-weight: bold;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;CURRENT_TIMESTAMP&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;ON&lt;/span&gt; &lt;span style="color: rgb(153, 0, 153); font-weight: bold;"&gt;UPDATE&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="bash geshi" style="text-align: left;"&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; describe atimestamp;&lt;br /&gt;+---------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Field   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Type      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Null &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Key &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Default             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; Extra          &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt;      &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; int&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;11&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; PRI &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; auto_increment &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; datetime  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; YES  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NULL                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; timestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; NO   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; CURRENT_TIMESTAMP   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+---------+-----------+------+-----+---------------------+----------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;4&lt;/span&gt; rows &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; insert into atimestamp &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;justnow&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt; values &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; insert into atimestamp &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;created, justnow&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt; values &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;NULL, NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;                                     &lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;2&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;55&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;35&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;55&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;35&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;55&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;35&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;2&lt;/span&gt; rows &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; update atimestamp &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(0, 120, 0);"&gt;justnow&lt;/span&gt;=NOW&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt; WHERE &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 0);"&gt;2&lt;/span&gt;;&lt;br /&gt;Query OK, &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; row affected &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;Rows matched: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Changed: &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt;  Warnings: &lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mysql&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;*&lt;/span&gt; from atimestamp;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(194, 12, 185); font-weight: bold;"&gt;id&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; justnow             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; created             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; updated             &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; 0000-00-00 00:00:00 &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;54&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;2&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;56&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;48&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;55&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;35&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;2009&lt;/span&gt;-04-&lt;span style="color: rgb(0, 0, 0);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;23&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;56&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 0);"&gt;48&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;|&lt;/span&gt;&lt;br /&gt;+----+---------------------+---------------------+---------------------+&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;2&lt;/span&gt; rows &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; &lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0.00&lt;/span&gt; sec&lt;span style="color: rgb(122, 8, 116); font-weight: bold;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;While this technique works at present, I would consider it an undocumented hack, based on a side effect. It also requires you to explicitly specify NULL in the values for the created column. If you forget to reference the column in the INSERT statement, it will not set the value to NOW() as illustrated above. This technique works for now, but who knows what will happen in future versions of mySQL? Use at your own risk.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-6070956910217660258?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/lp1a-aMjZ20" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/lp1a-aMjZ20/too-much-information-about-mysql.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/04/too-much-information-about-mysql.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-2506267154694591756</guid><pubDate>Tue, 21 Apr 2009 05:34:00 +0000</pubDate><atom:updated>2009-07-01T23:31:20.107-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tools</category><category domain="http://www.blogger.com/atom/ns#">password recovery</category><category domain="http://www.blogger.com/atom/ns#">software</category><category domain="http://www.blogger.com/atom/ns#">ms outlook</category><title>PST Password Recovery Software</title><description>Stellar Phoenix Outlook PST Repair Software is designed to recover lost or forgotten PST file password instantly. Stellar also provide recovery of  your lost or corrupt outlook email file and s allow splitting PST file into smaller files when PST file size exceed from 2 GB and  Outlook can’t recognize the PST files. This Software completely recovers all of Microsoft Outlook Problems.&lt;br /&gt;&lt;br /&gt;Microsoft Outlook is a Personal information manager used to receive confidential, personal and business important client mails .It used mainly for email, contacts, notes, messages, calendar entries, journal all these features are stores in Personal Storage Table (PST). PST is a password protection feature also adds to its data security. To protect your client mail and other outlook features you must set a password. The PST password may get lost or forgotten. This is the time when you need your outlook &lt;a href="http://www.pst-password-recovery.com/"&gt;password recovery&lt;/a&gt;.&lt;br /&gt;Key Features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Instantaneous PST password recovery&lt;/li&gt;&lt;li&gt;Mail account password recovery&lt;/li&gt;&lt;li&gt;Generation of several passwords for a single file&lt;/li&gt;&lt;li&gt;Can save recovered passwords in notepad or any other text editor&lt;/li&gt;&lt;li&gt;PST password recovery options for Outlook 2007, 2003, 2002, 2000 and 98&lt;/li&gt;&lt;li&gt;Passwords having special characters and numbers can be recovered&lt;/li&gt;&lt;li&gt;Interactive interface&lt;/li&gt;&lt;li&gt;PST repair ability&lt;/li&gt;&lt;li&gt;Can split PST into smaller PST files&lt;/li&gt;&lt;li&gt;Live Update feature to help software constantly updated&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Cases, when PST password recovery may be needed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lost or forgotten the PST or mail account password&lt;/li&gt;&lt;li&gt;The bit of paper or file is missing where the password was written&lt;/li&gt;&lt;li&gt;Password was set a long ago and now you have no clue of&lt;/li&gt;&lt;li&gt;Outlook is not accepting your password&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Stellar Phoenix Outlook PST Repair Software has designed the program to recover forgotten, lost or missing PST password in any case along with intuitive interface. &lt;a href="http://www.pst-password-recovery.com/"&gt;PST Password Recovery&lt;/a&gt; program gives a set of new passwords to access PST.&lt;br /&gt;&lt;br /&gt;Stellar Phoenix Application is most powerful to recovery lost Password. It supports Outlook 2007, 2003, 2002 and 2000. The application can also be used to split large PST file into smaller parts. This Stellar product is efficient enough to give you PST password recovery, PST repair and split PST options in a single fusion. All three jobs are productive, valuable and viable through Stellar Phoenix Outlook PST Repair Software. You can download free version of windows data recovery then please &lt;a href="http://www.pst-password-recovery.com/download-password-recovery-software.php"&gt;Visit here&lt;/a&gt;…..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vizuality.co.uk/index.php"&gt;Vizuality Marketing and Design Doncaster&lt;/a&gt;&lt;br /&gt;Vizualitys marketing, PR, public relations, graphic and media design expertise will transform your ideas into brand development and corporate identity. Based in Doncaster, South Yorkshire we are leaders in our field.Design and print services also avaiable.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.instant-radio-codes.com/radio-codes-blaupunkt.php"&gt;Instant Blaupunkt Radio Codes&lt;/a&gt;&lt;br /&gt;It`s so easy to get your Blaupunkt Radio Code! And our fully automated process will guide you through the entire procedure. After you have entered your radio details into the boxes provided, you will be directed to the PayPal website to make a secure payment, and once completed, your Blaupunkt Radio Code will be ready for you to view Online. We will also send a copy via E-Mail for your to print off for your records.&lt;br /&gt;&lt;a href="http://www.stellarinfo.com/"&gt;Data Recovery Software&lt;/a&gt;&lt;br /&gt;Buy award winning hard drive data recovery software and utilities or try the demos free. Stellar offers a complete solution of file recovery software and lost data restoration programs for Windows (Windows 95, 98, ME, NT, 2000, 2003, XP), Apple Macintosh, Novell, Linux, Unix operating system and FAT, NTFS,NTFS5,HFS, HFS+, NWFS, EXT2 and EXT3 file systems.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stellarinfo.com/data-recovery-services.htm"&gt;Data Recovery Services&lt;/a&gt;&lt;br /&gt;Offers data recovery, data recovery services from crashed hard drives, laptops and damaged Mac drive. Stellar provides data recovery in New Jersey, data recovery services in USA, ASIA &amp; European Countries.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stellarinfo.com/file-recovery.htm"&gt;File Recovery&lt;/a&gt;&lt;br /&gt;Stellar offers you hard drive disk &amp; file recovery and protection software and data file eraser utility for complete protection of your data.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stellarinfo.com/partition-recovery.htm"&gt;Partition Recovery&lt;/a&gt;&lt;br /&gt;Windows data recovery software, an easy to use NTFS &amp; FAT partition recovery Utility that examines inaccessible hard drives for damages and corruptions and recovers the data back.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stellarinfo.com/download.htm"&gt;Hard Drive Recovery&lt;/a&gt;&lt;br /&gt;Try our data recovery software. Available are Data recovery software download for windows 95,98,Me,Novell,Unix,Linux,windows NT,XP,2000 which give you easy recovery decision of try before you buy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-2506267154694591756?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/4MhXePr1XX8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/4MhXePr1XX8/pst-password-recovery-software.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/04/pst-password-recovery-software.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-7834064738601312205</guid><pubDate>Tue, 21 Apr 2009 05:29:00 +0000</pubDate><atom:updated>2009-05-08T04:53:42.282-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">development tool</category><category domain="http://www.blogger.com/atom/ns#">opensource</category><title>Atlassian offering licenses to Confluence and Jira for $5</title><description>&lt;p&gt;Atlassian has made a name for itself with its java based opensource development tools. Confluence (an Intranet Wiki tool) and Jira (a bug tracker) are two of the companies Flagship products. Calling this their "Atlassian Stimulus Project", they are offering 5 user licenses for $5 each, and donating the proceeds to "Room to Read".&lt;/p&gt; &lt;p&gt;I have used both Confluence and Jira as well as Fisheye, and they are all excellent products, that don't quite have competitors in the LAMP world. Any small development company will find Jira a great bug tracker, capable of complex workflows. Confluence is a Wiki on steriods, that can be used in a variety of ways as an interanet tool, and for design, and internal and external documentation. Both products are modular and there are a substantial number of plugins that increase their functionality. I'd urge any small company to take a look at this offer, which is only good for the next 5 days.&lt;/p&gt; &lt;p&gt;Visit &lt;a href="http://www.atlassian.com/starter/" target="_blank"&gt;http://www.atlassian.com/&lt;wbr&gt;starter/&lt;/a&gt; for the details.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.latestt.com/Docshare/docshare.aspx?catId=3&amp;amp;catName=technology&amp;amp;valType=1"&gt;Share Technology Documents&lt;/a&gt; - Upload and download technology documents online. Share technology documents and  reports with friends at latestt.com&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-7834064738601312205?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/DpCfb1zscG0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/DpCfb1zscG0/atlassian-offering-licenses-to.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/04/atlassian-offering-licenses-to.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-179602992252654769</guid><pubDate>Fri, 10 Apr 2009 01:14:00 +0000</pubDate><atom:updated>2009-07-01T23:29:36.983-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">PHP techniques</category><title>Microsoft Q&amp;A: Running PHP on Windows Server 2008</title><description>Microsoft has been recently engaging in a number of open source projects. They have been working on enhancing performance, security and stability of PHP applications on Windows Server platforms.&lt;br /&gt;&lt;br /&gt;In relation to that we would, in cooperation with Microsoft, invite you to trial a Windows based web stack consisting of IIS 7, PHP 5 and SQL Server. Via the PHP on WS 2008 website you will be able to request a 30-day trial with a Microsoft hosting partner, and you'll be able to request a downloadable trial for installation on your own computer. You will be able to find more information on that page as well. Alternatively, if you have Windows Vista you can install IIS 7 and test its FastCGI capabilities.&lt;br /&gt;&lt;br /&gt;We have setup a dedicated board, PHP on Windows Server 2008 - Microsoft Q&amp;amp;A, where you will be able to post your feedback and discuss it in general. Commencing April 20th, Hank Janssen and his team from the Microsoft Open Source Center will be available to respond on the feedback, and answer whatever questions that may arise.&lt;br /&gt;&lt;br /&gt;We hope you will take part in this Q&amp;amp;A to enhance PHP, and specifically to enhance it on the Windows platform.&lt;br /&gt;&lt;br /&gt;Do feel free to ask in the board if you have any questions.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.script2please.com/php-development.html"&gt;PHP Web Development&lt;/a&gt; services at Script2please.com&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.webrankings.co.uk/seo-web-design/"&gt;SEO Web Design&lt;/a&gt; - Web Rankings - UK based White Label SEO Web Design Agency. Search Engine Optimisation, Search Engine Marketing, Web Design,  PPC, Conversion Specialists.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ardentcreative.co.uk/"&gt;Web Design Agency&lt;/a&gt; - Web Design, Web Development &amp;amp; Web Marketing Agency based in Surrey&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.spaceandtime.eu.com/"&gt;Media Buying&lt;/a&gt; - Media planning &amp;amp; buying, including digital from Space &amp;amp; Time Media.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alkemi.co.nz"&gt;SEO &lt;/a&gt; - Learn how search engine marketing, PPC management, conversion enhancement and web analytics tracking can boost your online profitability. Visit our website and harness the web with Alkemi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-179602992252654769?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/AFAIrs1fQlA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/AFAIrs1fQlA/microsoft-q-running-php-on-windows.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/04/microsoft-q-running-php-on-windows.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-8694433537924720044</guid><pubDate>Fri, 27 Mar 2009 04:27:00 +0000</pubDate><atom:updated>2009-03-26T21:31:12.789-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">website design</category><category domain="http://www.blogger.com/atom/ns#">Google Chrome</category><title>Solve your site rendering  problem with Google Chrome</title><description>By Glenn Wilson, Product Manager, Google Chrome
&lt;br /&gt;http://googlewebmastercentral.blogspot.com/2009/03/helping-your-site-look-great-with.html
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Since launching Google Chrome last September, we received a number of questions from webmasters and web developers about how to make their sites look great in Google Chrome. The questions were very insightful and illuminating for the Chrome team, and I want to respond with a few helpful tips for making your site look stellar in Google Chrome.
&lt;br /&gt;
&lt;br /&gt;Detecting Google Chrome
&lt;br /&gt;
&lt;br /&gt;Most sites will render the same in both Safari and Google Chrome, because they're both WebKit-based browsers. If your site looks right in Safari, then it should look right in Google Chrome, too.
&lt;br /&gt;
&lt;br /&gt;Since Chrome is relatively new, many sites have confused Google Chrome with another browser. If your site doesn't look quite right in Chrome but works fine in Safari, it's possible your site may just not recognize Chrome's user-agent string.
&lt;br /&gt;
&lt;br /&gt;As platforms and browsers adopt WebKit as their rendering engine, your site can detect and support them automatically with the right JavaScript checks. Commonly, sites use JavaScript to 'sniff' the navigator.userAgent property for "Chrome" or "Safari", but you should use proper object detection if possible. In fact, Gmail has been detecting WebKit properly in Chrome since day one!
&lt;br /&gt;
&lt;br /&gt;If you must detect the user-agent type, you can use this simple JavaScript to detect WebKit:
&lt;br /&gt;
&lt;br /&gt;var isWebkit =
&lt;br /&gt;navigator.userAgent.indexOf("AppleWebKit") &gt; -1;
&lt;br /&gt;
&lt;br /&gt;Or, if you want to check that the version of WebKit is at least a certain version—say, if you want to use a spiffy new WebKit feature:
&lt;br /&gt;
&lt;br /&gt;var webkitVersion =
&lt;br /&gt;parseFloat(navigator.userAgent.split("AppleWebKit/")[1]) ||
&lt;br /&gt;undefined;
&lt;br /&gt;if (webkitVersion &amp;amp;&amp;amp; webkitVersion &gt; 500 ) {
&lt;br /&gt;// use spiffy WebKit feature here
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;For reference, here are a few browser releases and the version of WebKit they shipped:
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Browser Version of WebKit
&lt;br /&gt;Chrome 1.0 525.19
&lt;br /&gt;Chrome 2.0 beta 530.1
&lt;br /&gt;Safari 3.1 525.19
&lt;br /&gt;Safari 3.2 525.26.2
&lt;br /&gt;Safari 4.0 beta 528.16
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;You can find more information about detecting WebKit at webkit.org.
&lt;br /&gt;
&lt;br /&gt;Other helpful tips
&lt;br /&gt;Google Chrome doesn't support ActiveX plug-ins, but does support NPAPI plug-ins. This means you can show plug-in content like Flash and Java in Google Chrome the same way you do with Firefox and Safari.
&lt;br /&gt;If text on your site looks a bit off, make sure you provide the proper content type and character encoding information in the HTTP response headers, or at the beginning of your pages, preferably near the top of the &lt;head&gt; section.
&lt;br /&gt;Don't put block elements inside inline elements.
&lt;br /&gt;Wrong: &lt;a&gt;&lt;div&gt;This will look wrong.&lt;/div&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Right: &lt;div&gt;&lt;a&gt;This will look right!&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;If your JavaScript isn't working in Google Chrome, you can debug using Chrome's built-in JavaScript debugger, under the "page" menu -&gt; 'Developer' -&gt; 'Debug JavaScript' menu option.
&lt;br /&gt;To help webmasters and web developers find more answers, we created a support center and forum specifically to answer your questions. Of course, if you find something you think is really a bug in Chrome, please report it to us!
&lt;br /&gt;
&lt;br /&gt;Help us improve Google Chrome!
&lt;br /&gt;
&lt;br /&gt;If you'd like to help even more, we're looking for sites that may be interested in allowing Google to use their site as a benchmark for our internal compatibility and performance measurements. If you're interested in having Google Chrome development optimized against a cached version of your site, please contact us about details at chrome-webmasters@google.com.
&lt;br /&gt;
&lt;br /&gt;Please keep the feedback coming, and we'll keep working to improve Google Chrome!
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-8694433537924720044?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/MzcWnGAZsUc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/MzcWnGAZsUc/solve-your-site-rendering-problem-with.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/03/solve-your-site-rendering-problem-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-8727528379293926585</guid><pubDate>Mon, 23 Mar 2009 07:21:00 +0000</pubDate><atom:updated>2009-03-23T00:25:24.650-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">Google</category><category domain="http://www.blogger.com/atom/ns#">gadgets</category><title>Develop new gadgets with support from Google.</title><description>http://www.google.com/gadgetventures/&lt;br /&gt;&lt;br /&gt;Try your hand on Google pilot program dedicated to helping developers create richer, more useful gadgets. Inspired by the success of &lt;a href="http://www.google.com/ig"&gt;iGoogle&lt;/a&gt;, which has been driven by the creation by 3rd-party developers of a broad range of gadgets, Gadget Ventures provides two types of funding:     &lt;ol&gt;&lt;li&gt;&lt;strong&gt;Grants&lt;/strong&gt; of $5,000 to those who’ve built gadgets we’d like to see developed further. You’re eligible to apply for a grant if you’ve developed a gadget that’s in our &lt;a href="http://www.google.com/ig/directory"&gt; gadgets directory&lt;/a&gt; and gets at least 250,000 weekly page views. To apply, you must submit a one-page proposal detailing how you’d use the grant to improve your gadget. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Seed       investments&lt;/strong&gt; of $100,000 to developers who’d like to build a business around the gadgets platform. Only Google Gadget Venture grant recipients are eligible for this type of funding. Submitting a business plan detailing how you plan to build a viable business around the gadgets platform is a required part of the seed investment application process.&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/3281895583339810405-8727528379293926585?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/H__JvMnFi6Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/H__JvMnFi6Q/develop-new-gadgets-with-support-from.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/03/develop-new-gadgets-with-support-from.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-4515929503483335323</guid><pubDate>Sat, 21 Mar 2009 06:34:00 +0000</pubDate><atom:updated>2009-03-20T23:40:02.171-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Chrome</category><category domain="http://www.blogger.com/atom/ns#">Google</category><category domain="http://www.blogger.com/atom/ns#">Download Google Chrome</category><category domain="http://www.blogger.com/atom/ns#">Chrome Experiments</category><title>Chrome Experiments - The Power of JavaScript!</title><description>&lt;p&gt;  &lt;!--content with more link--&gt;  &lt;/p&gt;&lt;p&gt;&lt;a href="http://tnerd.com/tag/google/" title="Google" rel="tag"&gt;http://tnerd.com/2009/03/20/5-best-chrome-experiments-the-power-of-javascript/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;  &lt;img src="http://tnerd.com/wp-content/uploads/2008/09/chrome.jpg" alt="Chrome" align="right" border="0" width="165" height="200" /&gt;&lt;a href="http://tnerd.com/tag/google/" class="st_tag internal_tag" rel="tag" title="Posts tagged with Google"&gt;Google&lt;/a&gt; has always been a step ahead when it comes to creating a buzz for its products and attracting great talent to build upon its tools. &lt;/p&gt; &lt;p&gt;  &lt;a href="http://www.chromeexperiments.com/" target="_blank"&gt;ChromeExperiments.com&lt;/a&gt; is one such example. Applications showcased  on this site are mostly built on JavaScript &lt;a id="KonaLink0" target="undefined" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://tnerd.com/2009/03/20/5-best-chrome-experiments-the-power-of-javascript/#"&gt;&lt;span style="font-weight: 400; position: static;font-family:Arial,Helvetica,Sans-Serif;font-size:12;color:#b00000;"   &gt;&lt;span class="kLink" style="font-weight: 400; position: static;font-family:Arial,Helvetica,Sans-Serif;font-size:12;color:#b00000;"   &gt;technologies&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; and are a showcase of out-of-the-box thinking and creativity. These Applications/Experiments might not be put to use as it is, however, they serve their purpose of demonstrating the power of JavaScript and the Browser.&lt;/p&gt; &lt;p&gt;  Following are the top 5 experiments from the bunch.. (I  recommend viewing these experiments in &lt;a title="Google Chrome" href="http://tnerd.com/tag/google-chrome/"&gt;Google Chrome&lt;/a&gt;. Click &lt;a href="http://www.google.com/chrome" target="_blank"&gt;here&lt;/a&gt; to &lt;a title="download Chrome" href="http://tnerd.com/tag/download-chrome/"&gt;download Chrome&lt;/a&gt; if you don’t  have it installed already)&lt;/p&gt; &lt;p&gt;&lt;span id="more-3073"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;BallDroppings:&lt;/strong&gt; It’s a musical app which looks like pong. The balls are dropped one after the other, users can draw lines/bars to keep the balls from going off the screen. The balls bounce off the bar drawn on the screen creating a sound every time a ball hits the bar.  &lt;/p&gt; &lt;p&gt;  Click &lt;a href="http://balldroppings.com/js" target="_blank"&gt;here&lt;/a&gt; to  launch the experiment or watch the video below to see it in action.&lt;/p&gt; &lt;p align="center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/G6IKsek8DKE&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/G6IKsek8DKE&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Browser Ball:&lt;/strong&gt; This is another fun application which shows the power of JavaScript and how  well &lt;a title="Chrome" href="http://tnerd.com/tag/chrome/"&gt;Chrome&lt;/a&gt; handles it. &lt;/p&gt; &lt;p&gt; All you have to do is Open windows and throw the ball through them. Not only that but you can also add new windows on the fly.&lt;/p&gt; &lt;p&gt;  Click &lt;a href="http://experiments.instrum3nt.com/markmahoney/ball/" target="_blank"&gt;here&lt;/a&gt; to launch  the app or watch the following video to see it in action&lt;/p&gt; &lt;p align="center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3al8prbfK5o&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/3al8prbfK5o&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ball Pool&lt;/strong&gt;: Ball Pool works on the laws of physics. Shake the browser, move or throw the balls around and see how the browser and see how the onscreen objects react to it. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;From the Author:&lt;/strong&gt;  Start by shaking the browser, then create new balls (click on empty space), move some others (drag) and reset the screen (double click).&lt;/p&gt; &lt;p&gt;It’s like the old days once again! &lt;img src="http://tnerd.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /&gt; &lt;/p&gt; &lt;p&gt;  Click &lt;a href="http://www.chromeexperiments.com/hosted/ballpool/index.html" target="_blank"&gt;here&lt;/a&gt; to  launch the experiment or watch the following video to see the app in action&lt;/p&gt; &lt;p align="center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XPlybgUiotA&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/XPlybgUiotA&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Boombox: &lt;/strong&gt;This  application lets you control the volume of the sound by resizing the channel  window.&lt;/p&gt; &lt;p&gt; For demo purpose the application plays a song online, however, it would be great if it can be integrated with any of the music services online.&lt;/p&gt; &lt;p&gt;  Click &lt;a href="http://boombox.paradoxica.net/" target="_blank"&gt;here&lt;/a&gt; to  launch the application or watch the video below to see the app in action&lt;/p&gt; &lt;p align="center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/A_i9xmVndbc&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/A_i9xmVndbc&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Monster:&lt;/strong&gt; This  application demonstrates how JavaScript is used instead of Flash to create 3D  objects and animation in the browser. &lt;/p&gt;  &lt;p&gt;  Click &lt;a href="http://deanm.github.com/pre3d/monster.html" target="_blank"&gt;here&lt;/a&gt; to launch the animation or watch the video below to see it in action.&lt;/p&gt;&lt;p align="center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/E9EQSV7zRZg&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/E9EQSV7zRZg&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;  &lt;a href="http://tnerd.com/tag/google/" title="Google" rel="tag"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-4515929503483335323?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/FwPpK4fxu_o" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/FwPpK4fxu_o/chrome-experiments-power-of-javascript.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/03/chrome-experiments-power-of-javascript.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-4954839974212794648</guid><pubDate>Tue, 03 Mar 2009 13:12:00 +0000</pubDate><atom:updated>2009-03-03T05:14:22.829-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sesconference</category><category domain="http://www.blogger.com/atom/ns#">outsourcing</category><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">Technologies</category><category domain="http://www.blogger.com/atom/ns#">Indus  Net</category><category domain="http://www.blogger.com/atom/ns#">web  marketing</category><title>Abhishek Rungta interviewed at SES London 2009</title><description>&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/p6YvMQjBikw&amp;hl=en&amp;fs=1"&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/p6YvMQjBikw&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&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/3281895583339810405-4954839974212794648?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/Lw4skYEH4sE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/Lw4skYEH4sE/abhishek-rungta-interviewed-at-ses.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/03/abhishek-rungta-interviewed-at-ses.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-8642522067275995652</guid><pubDate>Mon, 02 Mar 2009 13:12:00 +0000</pubDate><atom:updated>2009-04-14T05:22:09.233-07:00</atom:updated><title>Show You’re a Professional with Isilon Certification</title><description>In the IT industry you can show you’re a professional with Isilion and the Isilion certification. With the Isilion certifications training and the Isilion practice exams, you cannot go wrong in any way. You will be able to pass your exams with flying colors.&lt;br /&gt;Everything that you need will be made available to you including Isilion training tools, Isilion exams preparation and the Isilion study guide prepared by certified &lt;a href="http://www.examsexpert.com/"&gt;exams expert&lt;/a&gt;. With all of this and so much more, you will not fail in the task you have set for yourself.&lt;br /&gt;After all of the effort that you have put forth, studying day in and day out, the Isilion exams will be a walk in the park by the time that you are done. There are professional instructors and teachers that are at your disposal to help you every step of the way.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Move On With Your Career&lt;/span&gt;&lt;br /&gt;They want to make sure that you get your certifications with Isilion and move forward in the career and field of your choice. By getting your certifications, you are showing the IT world that you are ready to undertake one of the most challenging careers in today’s market place.&lt;br /&gt;Employers will see you as someone that is taking their career seriously and will not let anything stand in their way of getting what they want. You will have the opportunity to shine above all others when you can show a potential employer that you are certified.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Use the Guidelines&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By following the study guide for Isilion that is made available to you by you are getting all of the information that you could possible need to help you succeed. Although they cannot take the test for you, with all of the support that you will receive you will feel as though they are actually there helping you with every question that you have to answer for the Isilion exam or other exams preparation study guides , tutorial, practice tests, &lt;a href="http://www.examsexpert.com/200-045.html"&gt;200-045 practice exam&lt;/a&gt;.&lt;br /&gt;So, what are you waiting for? There is no time like the present to jump on board with Isilion and start studying for your future. This is a choice and a decision that you will never regret working with Isilion. Secure your future and get your certifications with exams experts today and Isilion so you will never look back again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-8642522067275995652?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/H0Bbf0G9wyo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/H0Bbf0G9wyo/show-youre-professional-with-isilon.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/03/show-youre-professional-with-isilon.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-1361374611183556655</guid><pubDate>Thu, 19 Feb 2009 07:45:00 +0000</pubDate><atom:updated>2009-02-18T23:53:31.138-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">Security Enhancements</category><category domain="http://www.blogger.com/atom/ns#">Zend</category><category domain="http://www.blogger.com/atom/ns#">Framework</category><title>Zend Framework 1.7.5 released - contains important security fix</title><description>&lt;p&gt;Zend Framework 1.7.5 has been released, and as always you can download the latest copy of Zend Framework for free from:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://framework.zend.com/download/latest/"&gt;http://framework.zend.com/download/latest/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Besides the normal small enhancements and bug fixes that come with an incremental release such as this, there is also a rather important (and somewhat controversial) security fix that was added. This security fix breaks backwards compatibility with the previous version, because it simply must in order to exist. There is however a way to turn the security fix off to keep your current applications working in the case that this change breaks you.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-1361374611183556655?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/-v3MiSbq6HM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/-v3MiSbq6HM/zend-framework-175-released-contains.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/02/zend-framework-175-released-contains.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-2543725749460700163</guid><pubDate>Mon, 02 Feb 2009 14:13:00 +0000</pubDate><atom:updated>2009-02-02T06:15:53.878-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frameworks</category><category domain="http://www.blogger.com/atom/ns#">tools</category><category domain="http://www.blogger.com/atom/ns#">tutorial</category><category domain="http://www.blogger.com/atom/ns#">css</category><title>5 Popular CSS Frameworks + Tutorials &amp; Tools for Getting Started</title><description>&lt;p&gt;CSS frameworks have grown in popularity recently, enabling developers to &lt;strong&gt;rapidly prototype designs&lt;/strong&gt;. The idea of CSS Frameworks is to do all the heavy lifting of the repetitive tasks you do over and over again on each site, allowing you to get faster results and get to the fun stuff designers love.&lt;/p&gt; &lt;p&gt;Main features of good CSS Framework is to &lt;i&gt;&lt;strong&gt;1)&lt;/strong&gt;&lt;/i&gt; rapidly speed up our development time,&lt;i&gt; &lt;strong&gt;2)&lt;/strong&gt;&lt;/i&gt; should have a very small size, &lt;i&gt;&lt;strong&gt;3)&lt;/strong&gt;&lt;/i&gt; have good documentation and tutorials and &lt;i&gt;&lt;strong&gt;4)&lt;/strong&gt;&lt;/i&gt; have clean grid structure. You will need a basic understanding of the CSS framework you are going to use to understand why and how things get solved.&lt;/p&gt; &lt;p&gt;In today’s post we present an overview of the &lt;strong&gt;5 most popular CSS Frameworks&lt;/strong&gt;; &lt;strong&gt;showcasing handpicked tutorials &lt;/strong&gt;for using each of them among other &lt;strong&gt;useful tools and resources&lt;/strong&gt; you will definitely find useful and time-saving.&lt;/p&gt; &lt;p&gt;&lt;span id="more-8074"&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 class="title"&gt;1. &lt;a href="http://960.gs/"&gt;960 CSS Framework&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;&lt;img src="http://noupe.com/img/css-framework-1.jpg" alt="5 Popular CSS Frameworks + Tutorials &amp;amp; Tools for Getting Started" /&gt;&lt;/p&gt; &lt;p&gt;The 960 Grid System is an effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels. There are two variants: 12 and 16 columns, which can be used separately or in tandem. The 960.css file itself is only 3.6 KB compressed.&lt;/p&gt; &lt;p&gt;&lt;a href="http://960.gs/demo.html" class="download"&gt;Demo can be found here&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Tutorials Explaining how to use 960 CSS Framework&lt;/strong&gt;&lt;/p&gt; &lt;ul class="post"&gt;&lt;li&gt; &lt;h5 class="title"&gt; &lt;a href="http://nettuts.com/videos/screencasts/a-detailed-look-at-the-960-css-framework/"&gt;A Detailed Look at the 960 CSS Framework&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&lt;img src="http://noupe.com/img/css-framework-1-1.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/p&gt; &lt;p&gt; “Jeffrey Way” takes a close look at the 960 CSS Framework, explaing the pros and cons of using it. He also takes us step by by step and create a simple “12 column” layout with a simple header and two column structure. Most important tip here is : you must assign a class to each div. Naming conventions require that that the class name begins with “grid_” and ends with the number of columns needed.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;h5 class="title"&gt; &lt;a href="http://www.divitodesign.com/2008/12/960-css-framework-learn-basics/"&gt;960 CSS Framework - Learn the Basics&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Stefan Vervoort takes the heavy work for you and explains the basics of this framework so you can start developing with 960 pretty fast. Basics principles explained here include: not to edit 960.css, Loading the grid, Containers, Grids / Columns, Margins and styling. &lt;a href="http://www.divitodesign.com/2009/01/tricks-to-solve-960-css-framework-problems/"&gt;Another post&lt;/a&gt; by Stefan where he solves some of the problem he faced while working with this framework.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;h5 class="title"&gt; &lt;a href="http://designinfluences.com/fluid960gs/"&gt;Fluid 960 Grid System&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&lt;img src="http://noupe.com/img/css-framework-1-3.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/p&gt; &lt;p&gt;The Fluid 960 Grid System templates have been built upon the work of Nathan Smith and his 960 Grid System using effects from the Mootools JavaScript library.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h3 class="title"&gt;2. &lt;a href="http://blueprintcss.org/"&gt;Blueprint CSS Framework&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="http://blueprintcss.org/"&gt;&lt;img src="http://noupe.com/img/css-framework-2.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Blueprint is a CSS framework, which aims to cut down on your CSS development time. It gives you a solid CSS foundation to build your project on top of, with an easy-to-use grid, sensible typography, nice-looking forms and even a stylesheet for printing. One of its main feature is performing a mass reset of browser default styles, offering a methodology to use for customizable layout grids and most important is that all elements are override-able.&lt;/p&gt; &lt;p&gt;There are  several &lt;a href="http://github.com/joshuaclayton/blueprint-css/tree/master/blueprint/plugins"&gt;Blueprint plugins&lt;/a&gt; available which can overwrite aspects of the framework or add new styles for you to use. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blueprintcss.org/tests/" class="download"&gt;Check out the Live Demos&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Tutorials Explaining how to use Blueprint CSS Framework and tools using it &lt;/strong&gt;&lt;/p&gt; &lt;ul class="post"&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://blueflavor.com/blog/2007/oct/24/blueprint-css-101/"&gt;BlueprintCSS 101&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Jeff Croft  explains Blueprint’s core feature, how we use it, how it has impacted our workflow, and what we like about it.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://nettuts.com/tutorials/html-css-techniques/a-closer-look-at-the-blueprint-css-framework/"&gt;A Closer Look At the Blueprint CSS Framework&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;In this tutorial we will get a look at the inner workings of Blueprint and we’ll take a look at demo application that uses Blueprint to get a better idea of how to actually use the framework.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://www.garethjmsaunders.co.uk/downloads/blueprintcss_cheatsheet_0-7-1.pdf"&gt;Blueprint CSS Cheat Sheet&lt;/a&gt;&lt;/h5&gt; &lt;/li&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://kematzy.com/blueprint-generator/"&gt;Blueprint Grid CSS Generator&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;This tool will help you generate more flexible versions of Blueprint’s grid.css and compressed.css and grid.png image file for use as a background image during development- very handy for making sure everything lines up properly. Whether you prefer 8, 10,16 or 24 columns in your design, this generator now enables you that flexibility with Blueprint.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://pxtoem.com/"&gt;PXtoEM&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&lt;a href="http://pxtoem.com/"&gt;&lt;img src="http://noupe.com/img/css-framework-2-1.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;PXtoEM.com is a website that makes converting PX values to EM values easier. The CSS file of the values you’ve choosen can be get based on the typography.css portion of Blueprint CSS to setup a default typography.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://www.constructyourcss.com/"&gt;Construct&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;Construct, a visual layout editor based on Blueprint &amp;amp; jQuery, Construct, a useful tool for CSS designers and as proof that a visual layout editor is possible to acheive with clean CSS &amp;amp; semantic HTML.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h3 class="title"&gt;3. &lt;a href="http://docs.jquery.com/UI/Theming/API#The_jQuery_UI_CSS_Framework"&gt;The jQuery UI CSS Framework&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;&lt;a href="http://docs.jquery.com/UI/Theming/API#The_jQuery_UI_CSS_Framework"&gt;&lt;img src="http://noupe.com/img/css-framework-3.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;jQuery UI includes a robust CSS Framework designed for building custom jQuery widgets. The framework includes classes that cover a wide array of common user interface needs, and can be manipulated using jQuery UI &lt;a href="http://www.themeroller.com/"&gt;ThemeRoller&lt;/a&gt;. By building your UI components using the jQuery UI CSS Framework, you will be adopting shared markup conventions and allowing for ease of code integration across the plugin community at large. &lt;/p&gt; &lt;ul class="post"&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquery_ui_css_framework/"&gt;Styling Buttons and Toolbars with the jQuery UI&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&lt;a href="http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquery_ui_css_framework/"&gt;&lt;img src="http://noupe.com/img/css-framework-3-1.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A real-world examples of themeable buttons and toolbars using the &lt;a href="http://docs.jquery.com/UI/Theming/API"&gt;jQuery UI CSS framework&lt;/a&gt;, a system of classes developed for &lt;a href="http://jqueryui.com/demos/"&gt;jQuery UI widgets&lt;/a&gt; that can easily be applied to any plugin, and even static content. Here are button examples that demonstrate how to incorporate the power of the CSS framework classes in a custom widget.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.filamentgroup.com/examples/buttonFrameworkCSS/" class="download"&gt;Check out the Live Demos here&lt;/a&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h5 class="title"&gt;4. &lt;a href="http://www.yaml.de/en/"&gt;YAML&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&lt;a href="http://www.yaml.de/en/"&gt;&lt;img src="http://noupe.com/img/css-framework-4.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Yaml (Yet Another Multicolumn Layout) focused on flexible layouts and offers column and grid based design elements for flexible, elastic or fixed layouts. You will need a license to use it. &lt;/p&gt; &lt;p&gt;YAML comes with a a very nice &lt;a href="http://builder.yaml.de/"&gt;Ajax builder&lt;/a&gt;, a handy tool for visual development of YAML-based CSS layouts which allows you to put the containers of the layout visually together via drag-n-drop. The valid HTML- and CSS-code is generated automatically on the fly.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.yaml.de/fileadmin/examples/index.html" class="download"&gt;Check out the Live Demos here&lt;/a&gt;&lt;/p&gt; &lt;ul class="post"&gt;&lt;li&gt; &lt;h5 class="title"&gt;&lt;a href="http://www.smashingmagazine.com/2008/06/26/flexible-layouts-challenge-for-the-future/"&gt;Flexible Layouts with YAML&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&lt;a href="http://www.smashingmagazine.com/2008/06/26/flexible-layouts-challenge-for-the-future//"&gt;&lt;img src="http://noupe.com/img/css-framework-4-1.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Dirk Jesse, the developer of YAML (Yet Another Multicolumn Layout), an (X)HTML&amp;amp;CSS framework which explains his motivation for YAML in the last paragraph of the article, providing an overview of what is possible with YAML and may deliver some ideas for your future layouts.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h5 class="title"&gt;5. &lt;a href="http://developer.yahoo.com/yui/grids/"&gt;Yahoo YUI Grids CSS&lt;/a&gt;&lt;/h5&gt; &lt;p&gt;&lt;a href="http://developer.yahoo.com/yui/grids/"&gt;&lt;img src="http://noupe.com/img/css-framework-5.jpg" alt="Popular CSS FrameWorks: 10 Useful Tutorials For Getting Stared" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The foundational YUI Grids CSS offers four preset page widths, six preset templates, and the ability to stack and nest subdivided regions of two, three, or four columns. The 4kb file provides over 1000 page layout combinations. Features include: Self-clearing footer, customization of width for fixed-width layouts, Supports fluid-width (100%) layouts and more.&lt;/p&gt; &lt;p&gt;The &lt;a href="http://developer.yahoo.com/yui/grids/builder/"&gt;YUI Grids Builder&lt;/a&gt; — a simple interface for Grids customization.&lt;/p&gt; &lt;p&gt;Don’t forget to check the&lt;a href="http://yuiblog.com/assets/pdf/cheatsheets/css.pdf"&gt; CSS Reset/Base/Fonts/Grids Cheat Sheet&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-2543725749460700163?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/hIGQxGK5ZDc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/hIGQxGK5ZDc/5-popular-css-frameworks-tutorials.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/02/5-popular-css-frameworks-tutorials.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-2581231084136629577</guid><pubDate>Thu, 29 Jan 2009 11:25:00 +0000</pubDate><atom:updated>2009-01-29T03:31:53.460-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php tutorial</category><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">PHP techniques</category><title>Dynamic Image Generation</title><description>&lt;span style="font-weight:bold;"&gt;Long and boring back-story....&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One of the standard features of a message board is allowing members to have a signature, which is appended to the bottom of each post they make. Posters can put whatever they want into the signature (within forum settings). Putting quotes in one's signature is one of the more popular things to do.&lt;br /&gt;&lt;br /&gt;A lot of people put in some motto they live by, some funny quote by some famous person, whatever. Some people like to quote things other posters on the board have said. I am one of those people. I think it's fun and promotes a sense of belonging to the community.&lt;br /&gt;&lt;br /&gt;I've been a member of the phpfreaks forum for a number of years now, and over the years, I have posted and come across quotes that were (to me, anyways) worth collecting. But having a bunch of quotes in a sig isn't very convenient. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.phpfreaks.com/tutorial/php-add-text-to-image"&gt;&lt;span style="font-weight:bold;"&gt;Click Here&lt;/span&gt;&lt;/a&gt; to Read Full Article from www.phpfreaks.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-2581231084136629577?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/BgoH1zdPSSg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/BgoH1zdPSSg/dynamic-image-generation.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/01/dynamic-image-generation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-5778286059531074248</guid><pubDate>Wed, 28 Jan 2009 07:29:00 +0000</pubDate><atom:updated>2009-01-27T23:35:23.984-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php tutorial</category><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">PHP training</category><title>MySQL University</title><description>MySQL University is a series of free web seminars. Each week (on Thursdays) you have a unique opportunity to learn something interesting from &lt;a href="http://www.script2please.com/php-development.html"&gt;MySQL developers&lt;/a&gt; and professionals.&lt;br /&gt;&lt;br /&gt;MySQL University sessions cover wide range of topics including server administration, extending MySQL functionality, or just tips for better performance of your queries.&lt;br /&gt;&lt;br /&gt;The sessions are conducted using &lt;a href="http://www.dimdim.com/"&gt;DimDim&lt;/a&gt;, a web based conference tool build in Flash. It works really good even if your connection is not the fastest one.&lt;br /&gt;During the session, the presenter will show slides and talk about the topic (so it's pretty important that you can understand spoken English), and you and other participants can ask questions using built in chat.&lt;br /&gt;I strongly recommend you to take part in 'live' sessions as it is pretty unique experience, but if for some reason you can't, then there is archive of past sessions, often with flash recording, available at &lt;a href="http://forge.mysql.com/wiki/MySQL_University"&gt;MySQL University's home page&lt;/a&gt;.&lt;br /&gt;On the same page you will also find more detailed information on participation, as well as a schedule of upcoming sessions with abstracts and presentation slides, to help you decide if particular subject will be interesting to you or not.&lt;br /&gt;&lt;br /&gt;There's also &lt;a href="http://www.google.com/calendar/embed?src=2sm2lq8nr230ifm2gujrg1r93k%40group.calendar.google.com"&gt;a Google Calendar with MySQL University Schedule&lt;/a&gt; available, to which you can subscribe.&lt;br /&gt;&lt;br /&gt;From now on, I will (if time permits) post here on PHPfreaks about upcoming sessions that might be interesting for an 'average' PHP developer.&lt;br /&gt;&lt;br /&gt;The one that takes place next Thursday is titled 'Scalability Challenges in an InnoDB-based Replication Environment' and seems to be directed more to server administrators. If however, you run your website on a VPS or a dedicated server, you might as well take a look at it.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-5778286059531074248?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/1ODBofexW7U" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/1ODBofexW7U/mysql-university.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/01/mysql-university.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3281895583339810405.post-3666011127169696313</guid><pubDate>Thu, 22 Jan 2009 13:24:00 +0000</pubDate><atom:updated>2009-01-22T05:29:59.563-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">php tutorial</category><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">PHP training</category><title>Where can I learn about PHP and MySQL ?</title><description>&lt;p&gt;The official PHP site is &lt;a href="http://www.php.net/"&gt;http://www.php.net&lt;/a&gt; and the online documentation is found at &lt;a href="http://www.php.net/manual"&gt;http://www.php.net/manual&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you would rather follow a tutorial, then check out &lt;a href="http://www.devshed.com/"&gt;http://www.devshed.com&lt;/a&gt; (this covers PHP and others) or &lt;a href="http://www.phpbuilder.com/"&gt;http://www.phpbuilder.com&lt;/a&gt; or just do a search on google for PHP Tutorials.&lt;/p&gt;&lt;p&gt;Especially look into how PHP integrates with MySQL so you can program database powered websites. If you are the type of person who likes to dive in the deepend, try downloading some basic scripts from &lt;a href="http://www.hotscripts.com/"&gt;http://www.hotscripts.com&lt;/a&gt; and/or &lt;a href="http://php.resourceindex.com/"&gt;http://php.resourceindex.com&lt;/a&gt; and start ripping apart the code to see what's being done.&lt;/p&gt;&lt;p&gt;The official MySQL site , is &lt;a href="http://www.mysql.org/"&gt;www.mysql.org&lt;/a&gt;, also look into a great mysql tutorial at&lt;/p&gt;&lt;p&gt;&lt;a href="http://dev.mysql.com/doc/refman/5.0/en/tutorial.html"&gt;http://dev.mysql.com/doc/refman/5.0/en/tutorial.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;lastly below is a link to a dozen php and mysql tutorials frm webreference.com &lt;a href="http://www.webreference.com/programming/php/"&gt;http://www.webreference.com/programming/php/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://indusnetacademy.com/professional-php-mysql-developer"&gt;php mysql training cources&lt;/a&gt; at Kolkata, India&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281895583339810405-3666011127169696313?l=india-web-development.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebDevelopmentCompany/~4/VKh3g_-51UA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebDevelopmentCompany/~3/VKh3g_-51UA/where-can-i-learn-about-php-and-mysql.html</link><author>indrajitc@indusnet.co.in (Indrajit)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://india-web-development.blogspot.com/2009/01/where-can-i-learn-about-php-and-mysql.html</feedburner:origLink></item></channel></rss>
