<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://vinoaj.com/blog/wp-atom.php">
	<title type="text">VV's Corner</title>
	<subtitle type="text">my collection of random thoughts, how-to's and code snippets</subtitle>

	<updated>2010-12-04T15:05:54Z</updated>

	<link rel="alternate" type="text/html" href="http://vinoaj.com/blog" />
	<id>http://vinoaj.com/blog/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.1">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/vinoajHowtos" /><feedburner:info uri="vinoajhowtos" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>-33.53</geo:lat><geo:long>151.10</geo:long><entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Getting started with Google Geo (Maps, Mapplets &amp; Earth) APIs]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/GXHMn3zvpSU/" />
		<id>http://vinoaj.com/blog/?p=41</id>
		<updated>2008-10-19T03:52:47Z</updated>
		<published>2008-10-19T03:52:47Z</published>
		<category scheme="http://vinoaj.com/blog" term="Uncategorized" /><category scheme="http://vinoaj.com/blog" term="api" /><category scheme="http://vinoaj.com/blog" term="earth" /><category scheme="http://vinoaj.com/blog" term="geo" /><category scheme="http://vinoaj.com/blog" term="google" /><category scheme="http://vinoaj.com/blog" term="mapplets" /><category scheme="http://vinoaj.com/blog" term="maps" /><category scheme="http://vinoaj.com/blog" term="street" /><category scheme="http://vinoaj.com/blog" term="streetview" /><category scheme="http://vinoaj.com/blog" term="view" />		<summary type="html"><![CDATA[There is a great quantity of quality resources to help get you started on making your first geo mashups. This page links to all those great resources from one easy location. Google Maps API Google Streetview API Google Mapplets API Google Earth API Google Earth Google Maps API Get started with the Google Maps API [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/10/getting-started-with-google-geo-maps-mapplets-earth-apis/">&lt;p&gt;There is a great quantity of quality resources to help get you started on making your first geo mashups. This page links to all those great resources from one easy location.&lt;/p&gt;
&lt;div id="contents"&gt;
&lt;p&gt;&lt;a href="#maps"&gt;Google Maps API&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="#streetview"&gt;Google Streetview API&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="#mapplets"&gt;Google Mapplets API&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="#earthapi"&gt;Google Earth API&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="#earth"&gt;Google Earth&lt;/a&gt;  &lt;/div&gt;
&lt;p&gt; &lt;br/&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name="maps" id="maps"&gt;&lt;/a&gt;Google Maps API&lt;/h2&gt;
&lt;ul class="learnlist"&gt;
&lt;li&gt;Get started with the &lt;a href="http://code.google.com/apis/maps/" target="_blank"&gt;Google Maps API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Read the &lt;a href="http://code.google.com/apis/maps/documentation/index.html" target="_blank"&gt;API Getting Started guide&lt;/a&gt; and &lt;a href="http://code.google.com/apis/maps/documentation/reference.html" target="_blank"&gt;API reference documentation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Watch &lt;a href="http://code.google.com/apis/maps/documentation/mediagallery.html" target="_blank"&gt;Google Maps Presentations&lt;/a&gt; on basics and advanced topics &lt;/li&gt;
&lt;li&gt;Learn to create your first map, store locator, and other &lt;a href="http://code.google.com/apis/maps/articles/" target="_blank"&gt;useful tutorials&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Participate in discussions and receive support at the &lt;a href="http://groups.google.com/group/Google-Maps-API" target="_blank"&gt;Google Maps API Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;There are a number of open-source &lt;a href="http://code.google.com/p/gmaps-utility-library/" target="_blank"&gt;utility libraries&lt;/a&gt; that make developing with Google Maps easy &lt;/li&gt;
&lt;li&gt;Play with some &lt;a href="http://code.google.com/apis/maps/documentation/examples/" target="_blank"&gt;API examples&lt;/a&gt; to see what can be done &lt;/li&gt;
&lt;li&gt;Subscribe to the &lt;a href="http://googlegeodevelopers.blogspot.com/" target="_blank"&gt;Google Geo Developers blog&lt;/a&gt; and Google &lt;a href="http://google-latlong.blogspot.com/2008/10/opening-door-to-geospatial-data.html" target="_blank"&gt;LatLong blog&lt;/a&gt; to keep up to date with the latest tips and updates&lt;/li&gt;
&lt;li&gt;Subscribe to the &lt;a href="http://googlemapsmania.blogspot.com/" target="_blank"&gt;Google Maps Mania  blog&lt;/a&gt; and see what others are doing with the Maps API &lt;/li&gt;
&lt;li&gt;Use the &lt;a href="http://code.google.com/apis/maps/documentation/staticmaps/" target="_blank"&gt;Static Maps API&lt;/a&gt; to embed map images in your mobile and email content &lt;/li&gt;
&lt;li&gt;Use the &lt;a href="http://code.google.com/apis/maps/documentation/flash/" target="_blank"&gt;Flash Maps API&lt;/a&gt;     in your Flash applications    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt; &lt;/p&gt;
&lt;h3&gt;YouTube videos&lt;/h3&gt;
&lt;p&gt;  View a full list of &lt;a href="http://code.google.com/apis/maps/documentation/mediagallery.html" target="_blank"&gt;Maps API  videos here&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;br/&gt;&lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="5"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Bbk5Zw-M23o&amp;#038;hl=en&amp;#038;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Bbk5Zw-M23o&amp;#038;hl=en&amp;#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/td&gt;
&lt;td&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/o1nVWtYhlEg&amp;#038;hl=en&amp;#038;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/o1nVWtYhlEg&amp;#038;hl=en&amp;#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Maps API Intermediate (44:11) &lt;/td&gt;
&lt;td&gt;Google Maps API Advanced (50:17) &lt;a href="http://www.youtube.com/view_play_list?p=5F0F046F77B7B62A" target="_blank"&gt;&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt; &lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name="streetview" id="streetview"&gt;&lt;/a&gt;Google Street View API&lt;/h2&gt;
&lt;p&gt;  The Street View API allows you to leverage Google&amp;#8217;s unique Streetview imagery and controls within your mashups.  Streetview is currently available for selected locations in the US, Australia, and Japan.&lt;/p&gt;
&lt;ul class="learnlist"&gt;
&lt;li&gt;Get started with the &lt;a href="http://code.google.com/apis/maps/documentation/services.html#Streetview" target="_blank"&gt;Google Street View API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Read the  &lt;a href="http://code.google.com/apis/maps/documentation/reference.html#GStreetviewData" target="_blank"&gt;API reference&lt;/a&gt; documentation &lt;/li&gt;
&lt;li&gt;Play with some &lt;a href="http://gmaps-samples.googlecode.com/svn/trunk/streetview/" target="_blank"&gt;API samples&lt;/a&gt; to see what can be done&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;br/&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name="mapplets" id="mapplets"&gt;&lt;/a&gt;Google Mapplets API&lt;/h2&gt;
&lt;p&gt;  Mapplets are a combination of the Maps API and Gadgets API, and provide a great platform for making your maps mashups discoverable and permanent via the mapplets directory.&lt;/p&gt;
&lt;ul class="learnlist"&gt;
&lt;li&gt;Get started with the &lt;a href="http://code.google.com/apis/maps/documentation/mapplets/" target="_blank"&gt;Google Mapplets API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Read the &lt;a href="http://code.google.com/apis/maps/documentation/mapplets/basics.html" target="_blank"&gt;API Getting Started guide&lt;/a&gt; and &lt;a href="http://code.google.com/apis/maps/documentation/mapplets/reference.html" target="_blank"&gt;API reference documentation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Discover, install, and play with others&amp;#8217; mapplets in the &lt;a href="http://maps.google.com/ig/directory?synd=mpl&amp;amp;pid=mpl&amp;amp;features=sharedmap,geofeed&amp;amp;backlink=http://maps.google.com/maps/mm%3Fie%3DUTF8%26hl%3Den%26ll%3D1.352083,103.819836%26spn%3D1.346792,2.114868%26z%3D10&amp;amp;hl=en" target="_blank"&gt;Mapplets Directory&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;br/&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name="earthapi" id="earthapi"&gt;&lt;/a&gt;Google Earth API&lt;/h2&gt;
&lt;ul class="learnlist"&gt;
&lt;li&gt;Get started with the &lt;a href="http://code.google.com/apis/earth/" target="_blank"&gt;Google Earth API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Read the &lt;a href="http://code.google.com/apis/earth/documentation/index.html" target="_blank"&gt;API Getting Started guide&lt;/a&gt; and &lt;a href="http://code.google.com/apis/earth/documentation/reference/index.html" target="_blank"&gt;API reference&lt;/a&gt; documentation &lt;/li&gt;
&lt;li&gt;Learn about &lt;a href="http://code.google.com/apis/kml/documentation/index.html" target="_blank"&gt;KML files&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Learn how to &lt;a href="http://sketchup.google.com/vtutorials.html" target="_blank"&gt;create 3D models&lt;/a&gt; using &lt;a href="http://sketchup.google.com/index.html" target="_blank"&gt;Google Sketchup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Participate in discussions and receive support at the &lt;a href="http://groups.google.com/group/sketchup/" target="_blank"&gt;Google SketchUp Help Group&lt;/a&gt; and subscribe to the &lt;a href="http://sketchupdate.blogspot.com/" target="_blank"&gt;SketchUp Blog&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Play with some &lt;a href="http://code.google.com/apis/earth/documentation/examples.html" target="_blank"&gt;Earth API samples&lt;/a&gt; to see what can be done &lt;/li&gt;
&lt;li&gt;Subscribe to the &lt;a href="http://googlegeodevelopers.blogspot.com/" target="_blank"&gt;Google Geo Developers blog&lt;/a&gt; and Google &lt;a href="http://google-latlong.blogspot.com/2008/10/opening-door-to-geospatial-data.html" target="_blank"&gt;LatLong blog&lt;/a&gt; to keep up to date with the latest tips and updates&lt;/li&gt;
&lt;li&gt;Subscribe to the &lt;a href="http://googlemapsmania.blogspot.com/" target="_blank"&gt;Google Maps Mania  blog&lt;/a&gt; and see what others are doing with the Earth API &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;br/&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a name="earth" id="earth"&gt;&lt;/a&gt;Google Earth&lt;/h2&gt;
&lt;ul class="learnlist"&gt;
&lt;li&gt;&lt;a href="http://pack.google.com/intl/en/integrated_eula.html?hl=en&amp;amp;ciint=ci_earth&amp;amp;ci_earth=onciint=ci_earth" target="_blank"&gt;Download Google Earth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Learn about using &lt;a href="http://earth.google.com/" target="_blank"&gt;Google Earth  &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Learn about &lt;a href="http://code.google.com/apis/kml/documentation/index.html" target="_blank"&gt;KML files&lt;/a&gt; and how to &lt;a href="http://code.google.com/apis/kml/documentation/kml_tut.html" target="_blank"&gt;develop content for Google Earth&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Participate in discussions and receive support at the &lt;a href="http://bbs.keyhole.com/ubb/ubbthreads.php/Cat/0" target="_blank"&gt;Google Earth Community&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Learn how to &lt;a href="http://sketchup.google.com/vtutorials.html" target="_blank"&gt;create 3D models&lt;/a&gt; using &lt;a href="http://sketchup.google.com/index.html" target="_blank"&gt;Google Sketchup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discover, install, and play with others&amp;#8217; Earth content in the &lt;a href="http://earth.google.com/gallery/index.html" target="_blank"&gt;Google Earth KML Gallery&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Subscribe to the &lt;a href="http://googlegeodevelopers.blogspot.com/" target="_blank"&gt;Google Geo Developers blog&lt;/a&gt; and Google &lt;a href="http://google-latlong.blogspot.com/2008/10/opening-door-to-geospatial-data.html" target="_blank"&gt;LatLong blog&lt;/a&gt; to keep up to date with the latest tips and updates&lt;/li&gt;
&lt;li&gt;Subscribe to the &lt;a href="http://googlemapsmania.blogspot.com/" target="_blank"&gt;Google Maps Mania  blog&lt;/a&gt; and see what others are doing with Google Earth &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;br/&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/10/getting-started-with-google-geo-maps-mapplets-earth-apis/&amp;via=vinoaj&amp;text=Getting started with Google Geo (Maps, Mapplets &amp; Earth) APIs&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YeSpY-FdL1vKj3-REbZbSIcUZBs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YeSpY-FdL1vKj3-REbZbSIcUZBs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YeSpY-FdL1vKj3-REbZbSIcUZBs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YeSpY-FdL1vKj3-REbZbSIcUZBs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/GXHMn3zvpSU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/10/getting-started-with-google-geo-maps-mapplets-earth-apis/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/10/getting-started-with-google-geo-maps-mapplets-earth-apis/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/10/getting-started-with-google-geo-maps-mapplets-earth-apis/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[User-friendly 404 pages]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/pqdQinxr-Lo/" />
		<id>http://vinoaj.com/blog/?p=40</id>
		<updated>2008-08-26T03:30:19Z</updated>
		<published>2008-08-26T03:30:19Z</published>
		<category scheme="http://vinoaj.com/blog" term="Uncategorized" /><category scheme="http://vinoaj.com/blog" term="google webmaster tools 404 widget" />		<summary type="html"><![CDATA[If a user types in or follows a URL that does not exist on a website they are usually taken to a 404 (page not found) page.  Returning a standard 404 page to your user tends to provide a less-than-optimal user experience and may cause you to lose them altogether.  A solution is now at [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/08/user-friendly-404-pages/">&lt;p&gt;If a user types in or follows a URL that does not exist on a website they are usually taken to a 404 (page not found) page.  Returning a standard 404 page to your user tends to provide a less-than-optimal user experience and may cause you to lose them altogether.  &lt;br id="s2sw" /&gt; &lt;br id="s2sw0" /&gt; A solution is now at hand.  &lt;a id="p9ry" title="Create a custom 404 page" href="http://google.com/support/webmasters/bin/answer.py?answer=93641"&gt;Create a custom 404 page&lt;/a&gt; and embed a &lt;a id="ngiu" title="Webmaster Tools 404 widget" href="http://googlewebmastercentral.blogspot.com/2008/08/make-your-404-pages-more-useful.html"&gt;Webmaster Tools 404 widget&lt;/a&gt; into it.  The 404 widget helps your visitors find what they&amp;#8217;re looking for by providing suggestions based on the incorrect URL.  It also provides a link to the parent subdirectory, a sitemap webpage, and a site search query suggestions and search box.&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/08/user-friendly-404-pages/&amp;via=vinoaj&amp;text=User-friendly 404 pages&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HmCm4me-nmY3am5ss9sZMFhDErE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HmCm4me-nmY3am5ss9sZMFhDErE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HmCm4me-nmY3am5ss9sZMFhDErE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HmCm4me-nmY3am5ss9sZMFhDErE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/pqdQinxr-Lo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/08/user-friendly-404-pages/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/08/user-friendly-404-pages/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/08/user-friendly-404-pages/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Using the Google Static Maps API to include maps in your emails]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/db7cqSp5WG0/" />
		<id>http://vinoaj.com/blog/?p=39</id>
		<updated>2008-08-11T09:45:14Z</updated>
		<published>2008-08-11T09:42:42Z</published>
		<category scheme="http://vinoaj.com/blog" term="Uncategorized" /><category scheme="http://vinoaj.com/blog" term="google maps api static" />		<summary type="html"><![CDATA[The Google Maps API is a great way to utilise Google&#8217;s Maps platform on your own website. The standard Maps API, however, does not work in e-mails as it is reliant on JavaScript which most (if not all) e-mail clients block. Luckily there is a solution thanks to the Google Static Maps API. The Static [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/08/using-the-google-static-maps-api-to-include-maps-in-your-emails/">&lt;p&gt;The &lt;a href="http://code.google.com/apis/maps/" target="_blank"&gt;Google Maps API&lt;/a&gt; is a great way to utilise Google&amp;#8217;s Maps platform on your own website.  The standard Maps API, however, does not work in e-mails as it is reliant on JavaScript which most (if not all) e-mail clients block.&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
Luckily there is a solution thanks to the &lt;a href="http://code.google.com/apis/maps/documentation/staticmaps/" target="_blank"&gt;Google Static Maps API&lt;/a&gt;.  The Static Maps API generates an image file that can be embedded into your HTML content (like below).  Because it is an image, and there is no JavaScript involved, mail clients will display such a map.  You can specify the location of the map, the size of the image, the zoom level, the type of map, and the placement of optional markers at locations on the map using the API. For example:&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;img src="http://maps.google.com/staticmap?center=1.286032,103.845434&amp;amp;markers=1.288939,103.846936,bluea|1.293219,103.852181,blueb&amp;amp;path=rgba:0x0000FFcc,weight:9|1.29478,103.83213|1.28895,103.83496|1.28886,103.83840|1.28946,103.84063|1.28612,103.84535&amp;amp;zoom=14&amp;amp;size=500x300&amp;amp;key=ABQIAAAAhISZ-o4nxPcNq1JTRTETLhQLeGXvsK0JA63sEZyuJAvN8d-PMxSxggKvVhYClNAOt63G9NDKDsqpCw" alt="Singapore MRT stations" /&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;img src="http://maps.google.com/staticmap?center=-33.869667,151.207302&amp;amp;markers=-33.870273,151.208224,greena|-33.869240,151.205810,greena&amp;amp;path=rgba:0x0000FFb3,weight:5|-33.87053,151.20820|-33.87078,151.20819|-33.87070,151.21022|-33.87086,151.21019|-33.87088,151.21081&amp;amp;zoom=16&amp;amp;size=500x300&amp;amp;key=ABQIAAAAhISZ-o4nxPcNq1JTRTETLhQLeGXvsK0JA63sEZyuJAvN8d-PMxSxggKvVhYClNAOt63G9NDKDsqpCw" alt="Sydney - Pitt St Mall to Hyde Park" /&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
Getting started is easy!&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://code.google.com/apis/maps/signup.html" target="_blank"&gt;Sign up for a Google Maps API key&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use the &lt;a href="http://gmaps-samples.googlecode.com/svn/trunk/simplewizard/makestaticmap.html" target="_blank"&gt;Google Static Map Wizard&lt;/a&gt; to create your first static map&lt;/li&gt;
&lt;li&gt;Read the &lt;a href="http://code.google.com/apis/maps/documentation/staticmaps/" target="_blank"&gt;Google Maps Static API documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
This method is great for also providing map content in other mediums that don&amp;#8217;t support JavaScript &amp;#8211; such as mobile content.&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/08/using-the-google-static-maps-api-to-include-maps-in-your-emails/&amp;via=vinoaj&amp;text=Using the Google Static Maps API to include maps in your emails&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-S126GCzvC34k-cLx4tD7kfoMvQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-S126GCzvC34k-cLx4tD7kfoMvQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-S126GCzvC34k-cLx4tD7kfoMvQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-S126GCzvC34k-cLx4tD7kfoMvQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/db7cqSp5WG0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/08/using-the-google-static-maps-api-to-include-maps-in-your-emails/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/08/using-the-google-static-maps-api-to-include-maps-in-your-emails/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/08/using-the-google-static-maps-api-to-include-maps-in-your-emails/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Python: Inserting characters into a string]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/NyP05vZZVXQ/" />
		<id>http://vinoaj.com/blog/?p=38</id>
		<updated>2008-08-02T14:02:09Z</updated>
		<published>2008-08-02T14:00:14Z</published>
		<category scheme="http://vinoaj.com/blog" term="Uncategorized" /><category scheme="http://vinoaj.com/blog" term="list" /><category scheme="http://vinoaj.com/blog" term="python" /><category scheme="http://vinoaj.com/blog" term="string" />		<summary type="html"><![CDATA[Disclaimer: I&#8217;m a Python newbie &#8230; if you know of a more efficient way let me know! I needed to take a sequence of 4 digits (eg 1145) and modify it to look like clock-time (eg &#8220;11:45&#8243;). After a bit of online (what else?) research I decided to take the approach of converting the integer [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/08/python-inserting-characters-into-a-string/">&lt;p&gt;Disclaimer: I&amp;#8217;m a Python newbie &amp;#8230; if you know of a more efficient way let me know!&lt;/p&gt;
&lt;p&gt;I needed to take a sequence of 4 digits (eg 1145) and modify it to look like clock-time (eg &amp;#8220;11:45&amp;#8243;).  After a bit of online (what else?) research I decided to take the approach of converting the integer to a string and then to a list (of characters).  I then insert the extra character (ie the &amp;#8220;:&amp;#8221;) into the list at the right position.  Finally, join the list elements together to form a new string.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
time_int = 1145&lt;br /&gt;
time_str = str(time_int)&lt;br /&gt;
time_list = list(time_str)&lt;br /&gt;
time_list.insert(2, ':')  #insert the ':' character into the list before position 2&lt;br /&gt;
time_str = "".join(time_list)&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/08/python-inserting-characters-into-a-string/&amp;via=vinoaj&amp;text=Python: Inserting characters into a string&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JtocL1xDllnwFuYNEReZKwSLNzU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtocL1xDllnwFuYNEReZKwSLNzU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JtocL1xDllnwFuYNEReZKwSLNzU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtocL1xDllnwFuYNEReZKwSLNzU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/NyP05vZZVXQ" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/08/python-inserting-characters-into-a-string/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/08/python-inserting-characters-into-a-string/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/08/python-inserting-characters-into-a-string/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Python: removing repeated values in a list]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/hL_rCq7ft5k/" />
		<id>http://vinoaj.com/blog/?p=37</id>
		<updated>2008-07-29T13:56:50Z</updated>
		<published>2008-07-29T13:56:50Z</published>
		<category scheme="http://vinoaj.com/blog" term="Uncategorized" /><category scheme="http://vinoaj.com/blog" term="list" /><category scheme="http://vinoaj.com/blog" term="python" /><category scheme="http://vinoaj.com/blog" term="set" />		<summary type="html"><![CDATA[PLAIN TEXT CODE: list = &#91;'one', 'two', 'three', 'one', 'one', 'four', 'two'&#93; #convert the list into a set.&#160; An element can only exist once within a set set = set&#40;list&#41; #convert the set back into a list type list = list&#40;set&#41; print list Are those variable names confusing? Let's look at that example again: PLAIN [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/07/python-removing-repeated-values-in-a-list/">&lt;div class="igBar"&gt;&lt;span id="lcode-3"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('code-3'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;CODE:&lt;/span&gt;
&lt;div id="code-3"&gt;
&lt;div class="code"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;list = &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color:#CC0000;"&gt;'one'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'two'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'three'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'one'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'one'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'four'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'two'&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;#convert the list into a set.&amp;nbsp; &lt;span style=""&gt;An&lt;/span&gt; element can only exist once within a set&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;set = set&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;list&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;#convert the set back into a list type&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;list = list&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;set&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;print list &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Are those variable names confusing? Let's look at that example again:&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="lcode-4"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('code-4'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;CODE:&lt;/span&gt;
&lt;div id="code-4"&gt;
&lt;div class="code"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;fruits = &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color:#CC0000;"&gt;'apple'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'bananas'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'cantaloupes'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'apple'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'apple'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'durian'&lt;/span&gt;, &lt;span style="color:#CC0000;"&gt;'bananas'&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;#convert the list into a set.&amp;nbsp; &lt;span style=""&gt;An&lt;/span&gt; element can only exist once within a set&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;fruits_unique = set&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;fruits&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;#convert the set back into a list type&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;fruits = list&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;fruits_unique&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;print fruits &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/07/python-removing-repeated-values-in-a-list/&amp;via=vinoaj&amp;text=Python: removing repeated values in a list&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/t5c7VY6nulfkDz3Q7hTz0LxVDwU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t5c7VY6nulfkDz3Q7hTz0LxVDwU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/t5c7VY6nulfkDz3Q7hTz0LxVDwU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t5c7VY6nulfkDz3Q7hTz0LxVDwU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/hL_rCq7ft5k" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/07/python-removing-repeated-values-in-a-list/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/07/python-removing-repeated-values-in-a-list/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/07/python-removing-repeated-values-in-a-list/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Testing your regular expression Goal URLs for Google Analytics]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/7iOCqg_7EtI/" />
		<id>http://vinoaj.com/blog/?p=36</id>
		<updated>2008-07-28T09:55:55Z</updated>
		<published>2008-07-28T09:55:55Z</published>
		<category scheme="http://vinoaj.com/blog" term="Uncategorized" /><category scheme="http://vinoaj.com/blog" term="analytics" /><category scheme="http://vinoaj.com/blog" term="google" /><category scheme="http://vinoaj.com/blog" term="regex" /><category scheme="http://vinoaj.com/blog" term="regular expressions" />		<summary type="html"><![CDATA[Your dilemma: You want to create a Google Analytics Goal that defines a Goal URL using a regular expression match.  But how do you test it without having to wait 24 hours for your Google Analytics reports to be updated? Help is at hand: Regular expressions can be tested using the search box in Google Analytics [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/07/testing-your-regular-expression-goal-urls-for-google-analytics/">&lt;p&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: Verdana; font-size: 13px; 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;/p&gt;
&lt;p id="h_zf1" style="margin: 0px;"&gt;&lt;strong&gt;Your dilemma:&lt;/strong&gt; You want to create a Google Analytics Goal that defines a Goal URL using a regular expression match.  But how do you test it without having to wait 24 hours for your Google Analytics reports to be updated?&lt;/p&gt;
&lt;p id="cj75" style="margin: 0px;"&gt;&lt;br id="cj750" /&gt;&lt;/p&gt;
&lt;p id="cj751" style="margin: 0px;"&gt;&lt;strong&gt;Help is at hand:&lt;/strong&gt; Regular expressions can be tested using the search box in Google Analytics reports.  That's right - the search box available in all reports can take and interpret regular expressions.  Let's say that you intend to use the following regular expression as your Goal URL:&lt;/p&gt;
&lt;p id="mkr_" style="margin: 0px;"&gt;&lt;br id="mkr_0" /&gt;&lt;/p&gt;
&lt;p id="mkr_1" style="margin: 0px;"&gt;&lt;span id="b-co" class="Apple-style-span" style="font-family: 'Courier New';"&gt;/goal_page\.html\?cid=[123][abc]-.*&amp;amp;.*&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id="mkr_2" style="margin: 0px;"&gt;&lt;br id="mkr_3" /&gt;&lt;/p&gt;
&lt;p id="mkr_4" style="margin: 0px;"&gt;First, copy the regular expression into your clipboard.  Then navigate to the Content &amp;gt; Top Content report.  Paste the regular expression into the search box that sits below the table of data.  Now click on the "Go" button.&lt;/p&gt;
&lt;p id="qh0." style="margin: 0px;"&gt;&lt;br id="qh0.0" /&gt;&lt;/p&gt;
&lt;p id="qh0.1" style="margin: 0px;"&gt;Do you see your Goal URL(s) in the returned report?  If yes - great, you're good to go!  If no - you will need to spend some time refining your regular expression.  Tools like &lt;a id="sp6z" style="color: #551a8b;" title="RegExr" href="http://gskinner.com/RegExr/"&gt;RegExr&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;and &lt;a id="be03" style="color: #551a8b;" title="The Regex Coach" href="http://www.weitz.de/regex-coach/"&gt;The Regex Coach&lt;/a&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;are useful for this.&lt;/p&gt;
&lt;p id="cj752" style="margin: 0px;"&gt;&lt;br id="cj753" /&gt;&lt;/p&gt;
&lt;p id="cj754" style="margin: 0px;"&gt;There you have it - an easy way to test your regular expressions without having to wait 24 hours for your reports to update.&lt;/p&gt;
&lt;p id="x-it0" style="margin: 0px;"&gt;&lt;br id="x-it1" /&gt;&lt;/p&gt;
&lt;p id="cj758" style="margin: 0px;"&gt;This method can also be used to test regular expressions for your filters.  For example, if you have a custom filter for the "Visitor Country" field that uses a regular expression, test that expression in the Visitors &amp;gt; Map Overlay report.&lt;/p&gt;
&lt;p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/07/testing-your-regular-expression-goal-urls-for-google-analytics/&amp;via=vinoaj&amp;text=Testing your regular expression Goal URLs for Google Analytics&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gk-iZ-NGM7h0qqi1Lck1-Dsk1Wo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gk-iZ-NGM7h0qqi1Lck1-Dsk1Wo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gk-iZ-NGM7h0qqi1Lck1-Dsk1Wo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gk-iZ-NGM7h0qqi1Lck1-Dsk1Wo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/7iOCqg_7EtI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/07/testing-your-regular-expression-goal-urls-for-google-analytics/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/07/testing-your-regular-expression-goal-urls-for-google-analytics/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/07/testing-your-regular-expression-goal-urls-for-google-analytics/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Google Analytics and Troubleshooting AdWords Auto-Tagging]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/yctiXFsja9k/" />
		<id>http://vinoaj.com/blog/?p=35</id>
		<updated>2008-07-15T00:50:22Z</updated>
		<published>2008-07-15T00:50:22Z</published>
		<category scheme="http://vinoaj.com/blog" term="Uncategorized" /><category scheme="http://vinoaj.com/blog" term="adwords" /><category scheme="http://vinoaj.com/blog" term="analytics" /><category scheme="http://vinoaj.com/blog" term="auto-tagging" /><category scheme="http://vinoaj.com/blog" term="autotagging" /><category scheme="http://vinoaj.com/blog" term="gclid" /><category scheme="http://vinoaj.com/blog" term="google" />		<summary type="html"><![CDATA[When reading your AdWords reports in Google Analytics, there are many possible reasons why there may be discrepancies between Google Analytics visits and AdWords clicks.  If you see wildly different numbers for visits and clicks, the likely culprit is that the AdWords auto-tagging parameter is being stripped from the landing page URL. What happens when [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/07/google-analytics-and-troubleshooting-adwords-auto-tagging/">&lt;p&gt;When reading your AdWords reports in Google Analytics, there are many &lt;a id="awmr" title="possible reasons why there may be discrepancies in reported figures for Google Analytics visits vs. AdWords clicks" href="http://www.google.com/support/googleanalytics/bin/answer.py?answer=55610&amp;amp;topic=11145" target="_blank"&gt;possible reasons why there may be discrepancies between Google Analytics visits and AdWords clicks&lt;/a&gt;.  If you see wildly different numbers for visits and clicks, the likely culprit is that the AdWords auto-tagging parameter is being stripped from the landing page URL.&lt;br id="groj5" /&gt; &lt;br id="groj6" /&gt; What happens when you have auto-tagging enabled in your AdWords account?  Any time one of your ads is clicked on, AdWords will automatically append a paramater called the &lt;span style="font-family: Courier New;"&gt;gclid &lt;/span&gt;(Google CLick ID) on to the end of the ad's destination URL.&lt;br id="groj7" /&gt; &lt;br id="groj8" /&gt; For example, if your ad's destination URL is &lt;span style="font-family: Courier New;"&gt;&lt;span class="linkification-ext"&gt;&lt;a class="linkification-ext" title="Linkification: http://www.mysite.com/landing_page.html" href="http://www.mysite.com/landing_page.html"&gt;http://www.mysite.com/landing_page.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; and a user clicks on your ad, AdWords will redirect the user to &lt;span style="font-family: Courier New;"&gt;&lt;span class="linkification-ext"&gt;&lt;a class="linkification-ext" title="Linkification: http://www.mysite.com/landing_page.html" href="http://www.mysite.com/landing_page.html"&gt;http://www.mysite.com/landing_page.html&lt;/a&gt;&lt;/span&gt;?&lt;/span&gt;&lt;strong id="ki3s" style="font-family: Courier New;"&gt;gclid=123fa35fjn809080jk&lt;/strong&gt; (the gclid value is a random string)&lt;br id="groj9" /&gt; &lt;br id="groj10" /&gt; The gclid value is a unique identifier that identifies which ad (and consequently keyword, ad group and campaign) the visitor clicked on to reach your site.  When Google Analytics processes your reports, it fills in the AdWords reports by looking up the appropriate &lt;span style="font-family: Courier New;"&gt;gclid &lt;/span&gt;values in the AdWords database to find the corresponding information.&lt;br id="groj11" /&gt; &lt;br id="groj12" /&gt; &lt;strong id="plat"&gt;Here's the key point: Google Analytics &lt;span style="text-decoration: underline;"&gt;cannot&lt;/span&gt; tell if the visitor came from an AdWords click if the gclid parameter is missing on the page that the user eventually lands on!&lt;/strong&gt;&lt;br id="groj13" /&gt; &lt;br id="groj14" /&gt; The key is to &lt;strong id="t2wr"&gt;test whether your landing page retains the gclid parameter&lt;/strong&gt;.&lt;br id="t2wr0" /&gt; &lt;br id="groj15" /&gt;&lt;/p&gt;
&lt;ol id="t2wr1"&gt;
&lt;li id="t2wr2"&gt;Take your destination URL (eg &lt;span style="font-family: Courier New;"&gt;&lt;span class="linkification-ext"&gt;&lt;a class="linkification-ext" title="Linkification: http://www.yoursite.com/landing_page.html" href="http://www.yoursite.com/landing_page.html"&gt;http://www.yoursite.com/landing_page.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;) and paste it into your browser's location bar (where you usually type in a web address)&lt;/li&gt;
&lt;li id="t2wr3"&gt;Add a test parameter on to the end of the URL.  If your URL does not already have parameters in it, append &lt;strong id="g04z" style="font-family: Courier New;"&gt;?gclid=test&lt;/strong&gt;.  If there are already parameters, append &lt;strong id="zpl1" style="font-family: Courier New;"&gt;&amp;amp;gclid=test&lt;/strong&gt; on to the end.  (For example, &lt;span style="font-family: Courier New;"&gt;&lt;span class="linkification-ext"&gt;&lt;a class="linkification-ext" title="Linkification: http://www.yoursite.com/landing_page.html" href="http://www.yoursite.com/landing_page.html"&gt;http://www.yoursite.com/landing_page.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; becomes &lt;span style="font-family: Courier New;"&gt;&lt;span class="linkification-ext"&gt;&lt;a class="linkification-ext" title="Linkification: http://www.yoursite.com/landing_page.html" href="http://www.yoursite.com/landing_page.html"&gt;http://www.yoursite.com/landing_page.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong id="kla:" style="font-family: Courier New;"&gt;?gclid=test&lt;/strong&gt;; and &lt;span style="font-family: Courier New;"&gt;&lt;span class="linkification-ext"&gt;&lt;a class="linkification-ext" title="Linkification: http://www.yoursite.com/landing_page.html?myval=1" href="http://www.yoursite.com/landing_page.html?myval=1"&gt;http://www.yoursite.com/landing_page.html?myval=1&lt;/a&gt;&lt;/span&gt; &lt;/span&gt;becomes &lt;span style="font-family: Courier New;"&gt;&lt;span class="linkification-ext"&gt;&lt;a class="linkification-ext" title="Linkification: http://www.yoursite.com/landing_page.html?myval=1" href="http://www.yoursite.com/landing_page.html?myval=1"&gt;http://www.yoursite.com/landing_page.html?myval=1&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong id="qcx8" style="font-family: Courier New;"&gt;&amp;amp;gclid=test&lt;/strong&gt;)&lt;/li&gt;
&lt;li id="t2wr4"&gt;Press enter&lt;/li&gt;
&lt;li id="t2wr5"&gt;Your browser will take you to your landing page.  Be mindful of redirects, especially if you are tracking with Doubleclick, Atlas, etc tags.&lt;/li&gt;
&lt;li id="t2wr6"&gt;Is the &lt;span style="font-family: Courier New;"&gt;gclid=test&lt;/span&gt; parameter still visible in your browser's location bar?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br id="groj21" /&gt; YES? Auto-tagging plays nice with your destination URLs.  You can stop reading now!&lt;br id="groj22" /&gt; &lt;br id="groj23" /&gt; NO? Oh-oh.  There is most likely an intermediate redirect that is stripping out the gclid parameter. There are two options to remedy this:&lt;br id="groj25" /&gt;&lt;/p&gt;
&lt;ol id="s57v"&gt;
&lt;li id="s57v0"&gt;First (and easiest) - change your destination URL to the ultimate page that the visitor lands on, thus bypassing any redirects&lt;/li&gt;
&lt;li id="s57v1"&gt;Configure your server so that the gclid parameter is passed along in the redirect&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br id="x372" /&gt; (Two other common culprits are users are landing on a 404 error page or the Google Analytics tracking code missing altogether on the landing page!)&lt;br id="x3720" /&gt; &lt;br id="groj28" /&gt; There you have it - how to test if your destination URLs play nice with auto-tagging.  For more information, read &lt;a id="pqte" title="Google's official help center article on auto-tagging" href="http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;amp;answer=55590" target="_blank"&gt;Google's help center article on auto-tagging&lt;/a&gt;.&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/07/google-analytics-and-troubleshooting-adwords-auto-tagging/&amp;via=vinoaj&amp;text=Google Analytics and Troubleshooting AdWords Auto-Tagging&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lO7_xq4PAQR66G8kMISSp1vJo3A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lO7_xq4PAQR66G8kMISSp1vJo3A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lO7_xq4PAQR66G8kMISSp1vJo3A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lO7_xq4PAQR66G8kMISSp1vJo3A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/yctiXFsja9k" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/07/google-analytics-and-troubleshooting-adwords-auto-tagging/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/07/google-analytics-and-troubleshooting-adwords-auto-tagging/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/07/google-analytics-and-troubleshooting-adwords-auto-tagging/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Triggering the Source Code view of the current page using JavaScript]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/Ejt3McwO__Y/" />
		<id>http://vinoaj.com/blog/uncategorized/triggering-the-source-code-view-of-the-current-page-using-javascript/</id>
		<updated>2008-03-28T22:41:18Z</updated>
		<published>2008-03-28T22:40:49Z</published>
		<category scheme="http://vinoaj.com/blog" term="development" /><category scheme="http://vinoaj.com/blog" term="javascript" />		<summary type="html"><![CDATA[I was recently writing a demo to showcase the new Google Language API, and in my demo I did the usual thing of instructing users to View &#62; Page Source in order to view the source code and comments. I know this is less than ideal, because it forces users to have to process the [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2008/03/triggering-the-source-code-view-of-the-current-page-using-javascript/">&lt;p&gt;I was recently writing a &lt;a href="http://vinoaj.com/google/language" title="Google Language API demo" target="_blank"&gt;demo to showcase the new Google Language API&lt;/a&gt;, and in my demo I did the usual thing of instructing users to View &amp;gt; Page Source in order to view the source code and comments.  I know this is less than ideal, because it forces users to have to process the instructions, and then execute them.  Somewhere in there you lose them and they never execute the desired action.&lt;/p&gt;
&lt;p&gt;It got me thinking: is there a way to have the source code in front of them in one click?  A few Google searches later, and the answer was yes!&lt;/p&gt;
&lt;p&gt;Using JavaScript you can open a new window to display the source code view of the current window:&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="ljavascript-6"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('javascript-6'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id="javascript-6"&gt;
&lt;div class="javascript"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;window.&lt;span style="color: #000066;"&gt;open&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #3366CC;"&gt;'view-source:'&lt;/span&gt; + window.&lt;span style="color: #006600;"&gt;location&lt;/span&gt;.&lt;span style="color: #006600;"&gt;href&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'mysource'&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Voila!  How easy was that?  Now it's your turn.&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2008/03/triggering-the-source-code-view-of-the-current-page-using-javascript/&amp;via=vinoaj&amp;text=Triggering the Source Code view of the current page using JavaScript&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4W1umFp6-BKWFsavJ038X5kJ-Ps/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4W1umFp6-BKWFsavJ038X5kJ-Ps/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4W1umFp6-BKWFsavJ038X5kJ-Ps/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4W1umFp6-BKWFsavJ038X5kJ-Ps/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/Ejt3McwO__Y" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2008/03/triggering-the-source-code-view-of-the-current-page-using-javascript/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2008/03/triggering-the-source-code-view-of-the-current-page-using-javascript/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2008/03/triggering-the-source-code-view-of-the-current-page-using-javascript/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>vinoaj</name>
						<uri>http://vinoaj.com/</uri>
					</author>
		<title type="html"><![CDATA[Recommended Mozilla Firefox add-ons (aka extensions, aka plugins)]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/RUXnDTkiomU/" />
		<id>http://vinoaj.com/blog/howtos/javascript/recommended-mozilla-firefox-add-ons-aka-extensions-aka-plugins/</id>
		<updated>2007-07-30T02:15:19Z</updated>
		<published>2007-07-30T02:15:19Z</published>
		<category scheme="http://vinoaj.com/blog" term="development" /><category scheme="http://vinoaj.com/blog" term="DOM" /><category scheme="http://vinoaj.com/blog" term="firefox" /><category scheme="http://vinoaj.com/blog" term="html" /><category scheme="http://vinoaj.com/blog" term="HTTP" /><category scheme="http://vinoaj.com/blog" term="javascript" />		<summary type="html"><![CDATA[This is a list of my "must-have" Mozilla Firefox add-ons. If you can recommend anything similar or better, be sure to drop me a comment. Page Analysis &#38; SEO Minimise Nuisance Bookmark Management Download Management Productivity Web Development &#38; Design Security Functional Extensions Tab Management Add-Ons Management Page Analysis &#38; SEO About This Site Bookmarks [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2007/07/recommended-mozilla-firefox-add-ons-aka-extensions-aka-plugins/">&lt;p&gt;This is a list of my "must-have" &lt;a href="https://addons.mozilla.org/en-US/firefox/" target="_blank"&gt;Mozilla Firefox add-ons&lt;/a&gt;.  If you can recommend anything similar or better, be sure to drop me a comment.&lt;/p&gt;
&lt;hr /&gt;
&lt;a href="#pageanalyis"&gt;Page Analysis &amp;amp; SEO&lt;/a&gt;&lt;br /&gt;
&lt;a href="#nuisance"&gt;Minimise Nuisance&lt;/a&gt;&lt;br /&gt;
&lt;a href="#bookmarks"&gt;Bookmark Management&lt;/a&gt;&lt;br /&gt;
&lt;a href="#downloads"&gt;Download Management&lt;/a&gt;&lt;br /&gt;
&lt;a href="#productivity"&gt;Productivity&lt;/a&gt;&lt;br /&gt;
&lt;a href="#webdev"&gt;Web Development &amp;amp; Design&lt;/a&gt;&lt;br /&gt;
&lt;a href="#security"&gt;Security&lt;/a&gt;&lt;br /&gt;
&lt;a href="#functional"&gt;Functional Extensions&lt;/a&gt;&lt;br /&gt;
&lt;a href="#tabs"&gt;Tab Management&lt;/a&gt;&lt;br /&gt;
&lt;a href="#addons"&gt;Add-Ons Management&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;&lt;a title="pageanalysis" name="pageanalysis"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Page Analysis &amp;amp; SEO&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3673" target="_blank"&gt;&lt;strong&gt;About This Site Bookmarks&lt;/strong&gt;&lt;/a&gt; - right-click on a page, select "About This Site Bookmarks" and you will see a list of handy links pointing off to informational sites such as Alexa, Compete, Netcraft, del.icio.us, etc.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/321" target="_blank"&gt;&lt;strong&gt;SearchStatus&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/590" target="_blank"&gt;&lt;strong&gt;ShowIP&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="nuisance" name="nuisance"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Minimising Nuisance&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865" target="_blank"&gt;&lt;strong&gt;Adblock Plus&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1136" target="_blank"&gt;&lt;strong&gt;Adblock Filterset.G Updater&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="bookmarks" name="bookmarks"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Bookmark Management&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/11" target="_blank"&gt;&lt;strong&gt;Add Bookmark Here&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1553" target="_blank"&gt;&lt;strong&gt;Bookmark Duplicate Detector&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3615" target="_blank"&gt;&lt;strong&gt;del.icio.us&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="downloads" name="downloads"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Download Management&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/26" target="_blank"&gt;&lt;strong&gt;Download Statusbar&lt;/strong&gt;&lt;/a&gt; - manage your downloads via the Firefox status bar.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/201" target="_blank"&gt;&lt;strong&gt;DownThemAll&lt;/strong&gt;&lt;/a&gt; - conveniently download all link targets on a page.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/220" target="_blank"&gt;&lt;strong&gt;FlashGot&lt;/strong&gt;&lt;/a&gt; - allows for single and multiple downloads utilising an external download manager of your choice (I prefer FlashGet).&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="productivity" name="productivity"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Productivity&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/383" target="_blank"&gt;&lt;strong&gt;Auto Copy&lt;/strong&gt;&lt;/a&gt; - highlight a piece of text and the selection is automatically copied to your clipboard.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1117" target="_blank"&gt;&lt;strong&gt;FoxClocks&lt;/strong&gt;&lt;/a&gt; - displays local times around the world in the statusbar or toolbar.  Great for if you are dealing with friends and colleagues across multiple timezones.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/219" target="_blank"&gt;&lt;strong&gt;FoxyTunes&lt;/strong&gt;&lt;/a&gt; - operate your currently running media player from your Firefox statusbar.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.google.com/notebook" target="_blank"&gt;&lt;strong&gt;Google Notebook&lt;/strong&gt;&lt;/a&gt; - conveniently clip text and links to your Google Notebook.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/190" target="_blank"&gt;&lt;strong&gt;Linkification&lt;/strong&gt;&lt;/a&gt; - Converts text links (including e-mail addresses) into clickable links.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/636" target="_blank"&gt;&lt;strong&gt;PDF Download&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="webdev" name="webdev"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Web Development &amp;amp; Design&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/271" target="_blank"&gt;&lt;strong&gt;ColorZilla&lt;/strong&gt;&lt;/a&gt; - eye-dropper tool that allows you to pick the HEX &amp;amp; RGB values of colours of elements on the page.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank"&gt;&lt;strong&gt;Firebug&lt;/strong&gt;&lt;/a&gt; - the quintessential Javascript debugger.  It also allows for excellent DOM and CSS debugging and manipulation.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/images/addon_icon/249" target="_blank"&gt;&lt;strong&gt;HTML Validator&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/35" target="_blank"&gt;&lt;strong&gt;IE View&lt;/strong&gt;&lt;/a&gt; - open the current page in an IE window.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3829" target="_blank"&gt;&lt;strong&gt;Live HTTP Headers&lt;/strong&gt;&lt;/a&gt; - view HTTP request and response headers in realtime.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/59" target="_blank"&gt;&lt;strong&gt;User Agent Switcher&lt;/strong&gt;&lt;/a&gt; - allows you to spoof the User-Agent string and have Firefox masquerade as the Googlebot, etc, to see how your site reacts to different user-agents.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/655" target="_blank"&gt;&lt;strong&gt;View Source Chart&lt;/strong&gt;&lt;/a&gt; - renders page source HTML in an easy-to-read manner.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank"&gt;&lt;strong&gt;Web Developer&lt;/strong&gt;&lt;/a&gt; - a must for the serious web developer.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5369" target="_blank"&gt;&lt;strong&gt;YSlow&lt;/strong&gt;&lt;/a&gt; - an addon to the Firebug debugger.  It allows you to profile a page and identify bottlenecks.  Provided by Yahoo.  Also see Yahoo's articles on improving page load performance.&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="security" name="security"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Security&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2497" target="_blank"&gt;&lt;strong&gt;CookieSafe&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4510" target="_blank"&gt;&lt;strong&gt;Edit Cookies&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.siteadvisor.com/download/ff.html" target="_blank"&gt;&lt;strong&gt;McAfee SiteAdvisor&lt;/strong&gt;&lt;/a&gt; - lets you know if the currently viewed site is considered "safe" or not.&lt;/p&gt;
&lt;p&gt;&lt;a title="functional" name="functional"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Functionality Extensions&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/743" target="_blank"&gt;&lt;strong&gt;CustomizeGoogle&lt;/strong&gt;&lt;/a&gt; - customize your Google search and application experiences.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3336" target="_blank"&gt;&lt;strong&gt;ErrorZilla&lt;/strong&gt;&lt;/a&gt; - extends the standard page not found error screen with convenient links such as access to the page's Google cached copy.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4429" target="_blank"&gt;&lt;strong&gt;Secure Login&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/315" target="_blank"&gt;&lt;strong&gt;View Cookies&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="tabs" name="tabs"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Tab Management&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3780" target="_blank"&gt;&lt;strong&gt;Faviconize Tab&lt;/strong&gt;&lt;/a&gt; - minimize a tab's width to the width of the favicon.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1122" target="_blank"&gt;&lt;strong&gt;Tab Mix Plus&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;a title="addons" name="addons"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Add-Ons Management&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.google.com/tools/firefox/browsersync/" target="_blank"&gt;&lt;strong&gt;Google Browser Sync&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2109" target="_blank"&gt;&lt;strong&gt;FEBE&lt;/strong&gt;&lt;/a&gt; - a convenient extensions &amp;amp; settings backup tool.  Allows you to also run scheduled backups.  The backups can be used to transport your extensions and their settings to another machine or Firefox profile.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/421" target="_blank"&gt;&lt;strong&gt;MR Tech Local Install&lt;/strong&gt;&lt;/a&gt; - install power tools for add-ons&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2007/07/recommended-mozilla-firefox-add-ons-aka-extensions-aka-plugins/&amp;via=vinoaj&amp;text=Recommended Mozilla Firefox add-ons (aka extensions, aka plugins)&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EcP_7CsY7cYWEkcSBHZRFL8i6I4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EcP_7CsY7cYWEkcSBHZRFL8i6I4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EcP_7CsY7cYWEkcSBHZRFL8i6I4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EcP_7CsY7cYWEkcSBHZRFL8i6I4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/RUXnDTkiomU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2007/07/recommended-mozilla-firefox-add-ons-aka-extensions-aka-plugins/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2007/07/recommended-mozilla-firefox-add-ons-aka-extensions-aka-plugins/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2007/07/recommended-mozilla-firefox-add-ons-aka-extensions-aka-plugins/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>vinoaj</name>
						<uri>http://vinoaj.com/</uri>
					</author>
		<title type="html"><![CDATA[scp Usage]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/Zc9vvTqxxn8/" />
		<id>http://vinoaj.com/blog/howtos/scp-usage/</id>
		<updated>2007-07-25T11:34:03Z</updated>
		<published>2007-07-25T11:34:03Z</published>
		<category scheme="http://vinoaj.com/blog" term="howto" /><category scheme="http://vinoaj.com/blog" term="linux" />		<summary type="html"><![CDATA[Secure File Copy (scp) allows you to copy files between hosts using the SSH protocol. To copy from a remote host to your current host PLAIN TEXT PERL: scp -r user@remotehost:path/to/remotefiles localtarget &#160; #-r recursive copy #you will be prompted for user's password @ remotehost To copy files from your current host across to the [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2007/07/scp-usage/">&lt;p&gt;Secure File Copy (scp) allows you to copy files between hosts using the SSH protocol.&lt;/p&gt;
&lt;p&gt;To copy from a remote host to your current host&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="lperl-9"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('perl-9'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;PERL:&lt;/span&gt;
&lt;div id="perl-9"&gt;
&lt;div class="perl"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;scp -r user&lt;span style="color: #0000ff;"&gt;@remotehost&lt;/span&gt;:path/to/remotefiles localtarget&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;#-r recursive copy&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;#you will be prompted for user's password @ remotehost &lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;To copy files from your current host across to the remote host&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="lperl-10"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('perl-10'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;PERL:&lt;/span&gt;
&lt;div id="perl-10"&gt;
&lt;div class="perl"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;scp -r localfiles user&lt;span style="color: #0000ff;"&gt;@remotehost&lt;/span&gt;:path/to/remotetarget &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2007/07/scp-usage/&amp;via=vinoaj&amp;text=scp Usage&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xqvBdmHtnOR3XFHiSPEK8WopGzc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xqvBdmHtnOR3XFHiSPEK8WopGzc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xqvBdmHtnOR3XFHiSPEK8WopGzc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xqvBdmHtnOR3XFHiSPEK8WopGzc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/Zc9vvTqxxn8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2007/07/scp-usage/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2007/07/scp-usage/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2007/07/scp-usage/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>vinoaj</name>
						<uri>http://vinoaj.com/</uri>
					</author>
		<title type="html"><![CDATA[Selecting a random row using MySQL]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/4IYVGOQFOKA/" />
		<id>http://vinoaj.com/blog/howtos/selecting-a-random-row-using-mysql/</id>
		<updated>2007-07-25T08:54:58Z</updated>
		<published>2007-07-25T08:54:58Z</published>
		<category scheme="http://vinoaj.com/blog" term="development" /><category scheme="http://vinoaj.com/blog" term="howto" /><category scheme="http://vinoaj.com/blog" term="mysql" />		<summary type="html"><![CDATA[There are many examples where you would need to retrieve a random record or more from a set of tables. For example your page template may be cycling through QOTDs, testimonials, offers, specials, and so forth. To retrieve a random row in MySQL, use the ORDER BY RAND() statement to randomly order the rows of [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2007/07/selecting-a-random-row-using-mysql/">&lt;p&gt;There are many examples where you would need to retrieve a random record or more from a set of tables.  For example your page template may be cycling through QOTDs, testimonials, offers, specials, and so forth.&lt;/p&gt;
&lt;p&gt;To retrieve a random row in MySQL, use the &lt;code&gt;ORDER BY RAND()&lt;/code&gt; statement to randomly order the rows of a table.  Then use &lt;code&gt;LIMIT x&lt;/code&gt; to retrieve the first &lt;code&gt;x&lt;/code&gt; rows from the randomised representation of the table.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="lsql-13"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('sql-13'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;SQL:&lt;/span&gt;
&lt;div id="sql-13"&gt;
&lt;div class="sql"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #808080; font-style: italic;"&gt;/*&amp;nbsp; Retrieve 5 random special offers to display in your e-commerce store's sidebar */&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;SELECT&lt;/span&gt;&amp;nbsp; offer_id&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;FROM&lt;/span&gt;&amp;nbsp; &amp;nbsp; special_offers&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;ORDER&lt;/span&gt; &lt;span style="color: #993333; font-weight: bold;"&gt;BY&lt;/span&gt; RAND&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;LIMIT&lt;/span&gt; &lt;span style="color: #cc66cc;color:#800000;"&gt;5&lt;/span&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Of course, we can make our query as complex as needed, and then randomly order the resultset.&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="lsql-14"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('sql-14'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;SQL:&lt;/span&gt;
&lt;div id="sql-14"&gt;
&lt;div class="sql"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;SELECT&lt;/span&gt;&amp;nbsp; so.offer_id, i.title&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;FROM&lt;/span&gt;&amp;nbsp; &amp;nbsp; special_offers so&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #993333; font-weight: bold;"&gt;LEFT&lt;/span&gt; &lt;span style="color: #993333; font-weight: bold;"&gt;JOIN&lt;/span&gt; items i &lt;span style="color: #993333; font-weight: bold;"&gt;ON&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;so.item_id = i.item_id&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #993333; font-weight: bold;"&gt;LEFT&lt;/span&gt; &lt;span style="color: #993333; font-weight: bold;"&gt;JOIN&lt;/span&gt; item_categories ic &lt;span style="color: #993333; font-weight: bold;"&gt;ON&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;i.item_id = ic.item_id&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;WHERE&lt;/span&gt;&amp;nbsp; &amp;nbsp;ic.category_id = &lt;span style="color: #cc66cc;color:#800000;"&gt;2344&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;ORDER&lt;/span&gt; &lt;span style="color: #993333; font-weight: bold;"&gt;BY&lt;/span&gt; RAND&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #993333; font-weight: bold;"&gt;LIMIT&lt;/span&gt; &lt;span style="color: #cc66cc;color:#800000;"&gt;5&lt;/span&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2007/07/selecting-a-random-row-using-mysql/&amp;via=vinoaj&amp;text=Selecting a random row using MySQL&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R5yMVOs-i78_q5ry-l2hMBAP0Jw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R5yMVOs-i78_q5ry-l2hMBAP0Jw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R5yMVOs-i78_q5ry-l2hMBAP0Jw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R5yMVOs-i78_q5ry-l2hMBAP0Jw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/4IYVGOQFOKA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2007/07/selecting-a-random-row-using-mysql/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2007/07/selecting-a-random-row-using-mysql/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2007/07/selecting-a-random-row-using-mysql/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>vinoaj</name>
						<uri>http://vinoaj.com/</uri>
					</author>
		<title type="html"><![CDATA[PHP code snippet &#8211; Reorder items in a table]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/1N72ms9padE/" />
		<id>http://vinoaj.com/blog/howtos/php-code-snippet-reorder-items-in-a-table/</id>
		<updated>2007-07-09T10:00:15Z</updated>
		<published>2007-07-09T10:00:15Z</published>
		<category scheme="http://vinoaj.com/blog" term="db" /><category scheme="http://vinoaj.com/blog" term="development" /><category scheme="http://vinoaj.com/blog" term="howto" /><category scheme="http://vinoaj.com/blog" term="php" />		<summary type="html"><![CDATA[This snippet of code reorders items in a table based on the number of steps you want to move an item from its current position. It moves the item of interest to its new position and shifts all other items to their new shifted positions. PLAIN TEXT PHP: function moveItem &#40;$n_steps&#41; &#123; if &#40;$n_steps == [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2007/07/php-code-snippet-reorder-items-in-a-table/">&lt;p&gt;This snippet of code reorders items in a table based on the number of steps you want to move an item from its current position.  It moves the item of interest to its new position and shifts all other items to their new shifted positions.&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="lphp-16"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('php-16'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;PHP:&lt;/span&gt;
&lt;div id="php-16"&gt;
&lt;div class="php"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#000000; font-weight:bold;"&gt;function&lt;/span&gt; moveItem &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;$n_steps&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#616100;"&gt;if&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;$n_steps&lt;/span&gt; == &lt;span style="color:#CC66CC;color:#800000;"&gt;0&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#616100;"&gt;return&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$cur_pos&lt;/span&gt; = &lt;span style="color:#0000FF;"&gt;$this&lt;/span&gt;-&amp;amp;gt;pos;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$new_pos&lt;/span&gt; = &lt;span style="color:#0000FF;"&gt;$cur_pos&lt;/span&gt; + &lt;span style="color:#0000FF;"&gt;$n_steps&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#616100;"&gt;if&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;$n_steps&lt;/span&gt; &amp;amp;lt;&lt;span style="color:#CC66CC;color:#800000;"&gt;0&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$min_pos&lt;/span&gt; = &lt;span style="color:#0000FF;"&gt;$cur_pos&lt;/span&gt; + &lt;span style="color:#0000FF;"&gt;$n_steps&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$max_pos&lt;/span&gt; = &lt;span style="color:#0000FF;"&gt;$cur_pos&lt;/span&gt; - &lt;span style="color:#CC66CC;color:#800000;"&gt;1&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$shift_sign&lt;/span&gt; = &lt;span style="color:#FF0000;"&gt;'+'&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color:#616100;"&gt;elseif&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;$n_steps&lt;/span&gt;&amp;amp;gt; &lt;span style="color:#CC66CC;color:#800000;"&gt;0&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$min_pos&lt;/span&gt; = &lt;span style="color:#0000FF;"&gt;$cur_pos&lt;/span&gt; + &lt;span style="color:#CC66CC;color:#800000;"&gt;1&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$max_pos&lt;/span&gt; = &lt;span style="color:#0000FF;"&gt;$cur_pos&lt;/span&gt; + &lt;span style="color:#0000FF;"&gt;$n_steps&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$shift_sign&lt;/span&gt; = &lt;span style="color:#FF0000;"&gt;'-'&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#125;&lt;/span&gt; &lt;span style="color:#616100;"&gt;else&lt;/span&gt; &lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#616100;"&gt;return&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$id&lt;/span&gt; = &lt;span style="color:#0000FF;"&gt;$this&lt;/span&gt;-&amp;amp;gt;id;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#FF9933; font-style:italic;"&gt;//Reorder existing items that will be existed by moving this item&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$sql&lt;/span&gt; = &lt;span style="color:#FF0000;"&gt;"UPDATE&amp;nbsp; positions&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#FF0000;"&gt;SET&amp;nbsp;&amp;nbsp;order_num = order_num $shift_sign 1&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#FF0000;"&gt;WHERE&amp;nbsp; &amp;nbsp;id = $id&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#FF0000;"&gt;AND&amp;nbsp;position&amp;amp;gt;= $min_pos&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#FF0000;"&gt;AND&amp;nbsp;position &amp;amp;lt;= $max_pos"&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$this&lt;/span&gt;-&amp;amp;gt;db-&amp;amp;gt;query&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;$sql&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#FF9933; font-style:italic;"&gt;//Now set new position for this item&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$sql&lt;/span&gt; = &lt;span style="color:#FF0000;"&gt;"UPDATE postions SET position = $new_pos WHERE id = $id"&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#0000FF;"&gt;$this&lt;/span&gt;-&amp;amp;gt;db-&amp;amp;gt;query&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;$sql&lt;/span&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color:#006600; font-weight:bold;"&gt;&amp;#125;&lt;/span&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2007/07/php-code-snippet-reorder-items-in-a-table/&amp;via=vinoaj&amp;text=PHP code snippet - Reorder items in a table&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rDnoKveIBfvQTg-ZGVVqbrt0HLs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rDnoKveIBfvQTg-ZGVVqbrt0HLs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rDnoKveIBfvQTg-ZGVVqbrt0HLs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rDnoKveIBfvQTg-ZGVVqbrt0HLs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/1N72ms9padE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2007/07/php-code-snippet-reorder-items-in-a-table/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2007/07/php-code-snippet-reorder-items-in-a-table/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2007/07/php-code-snippet-reorder-items-in-a-table/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>vinoaj</name>
						<uri>http://vinoaj.com/</uri>
					</author>
		<title type="html"><![CDATA[svn &#8211; Ignore/exclude files from version control]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/kMO1yT1lNns/" />
		<id>http://vinoaj.com/blog/howtos/svn-ignoreexclude-files-from-version-control/</id>
		<updated>2007-07-08T08:21:01Z</updated>
		<published>2007-07-05T10:34:13Z</published>
		<category scheme="http://vinoaj.com/blog" term="development" /><category scheme="http://vinoaj.com/blog" term="howto" /><category scheme="http://vinoaj.com/blog" term="svn" />		<summary type="html"><![CDATA[In most projects there are going to be files that you wish to ignore in version control. These could be temporary files, log or debug files, and so forth. These are files that you can safely ignore when executing commands such as svn commit and svn st. The following shows how to configure your svn [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2007/07/svn-ignoreexclude-files-from-version-control/">&lt;p&gt;In most projects there are going to be files that you wish to ignore in version control.  These could be temporary files, log or debug files, and so forth.  These are files that you can safely ignore when executing commands such as &lt;code&gt;svn commit&lt;/code&gt; and &lt;code&gt;svn st&lt;/code&gt;.  The following shows how to configure your svn client to ignore particular files in your working copy.&lt;/p&gt;
&lt;pre&gt;svn propedit svn:ignore /path/with/files/to/ignore/&lt;/pre&gt;
&lt;p&gt;svn opens up your text editor of choice&lt;/p&gt;
&lt;p&gt;Use file patterns to indicate which files to ignore from version control. Each pattern goes on a new line. e.g.&lt;/p&gt;
&lt;pre&gt;
log_12*.log
*.tmp&lt;/pre&gt;
&lt;p&gt;Save your file and exit&lt;/p&gt;
&lt;p&gt;Now whenever you perform commands like &lt;code&gt;svn st&lt;/code&gt; or &lt;code&gt;svn commit&lt;/code&gt;, svn will ignore files with the patterns you specified in the directories that you specified.&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2007/07/svn-ignoreexclude-files-from-version-control/&amp;via=vinoaj&amp;text=svn - Ignore/exclude files from version control&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OfKqE8WRR6R-KcB9lc21BWrPD-U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OfKqE8WRR6R-KcB9lc21BWrPD-U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OfKqE8WRR6R-KcB9lc21BWrPD-U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OfKqE8WRR6R-KcB9lc21BWrPD-U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/kMO1yT1lNns" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2007/07/svn-ignoreexclude-files-from-version-control/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2007/07/svn-ignoreexclude-files-from-version-control/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2007/07/svn-ignoreexclude-files-from-version-control/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Class Inheritance in Javascript]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/nvbCtUm3_pc/" />
		<id>http://vinoaj.com/blog/howtos/class-inheritance-in-javascript/</id>
		<updated>2007-06-05T11:08:17Z</updated>
		<published>2007-06-05T11:07:53Z</published>
		<category scheme="http://vinoaj.com/blog" term="howto" /><category scheme="http://vinoaj.com/blog" term="javascript" /><category scheme="http://vinoaj.com/blog" term="oo" />		<summary type="html"><![CDATA[My previous post showed how to create classes in Javascript. This addendum post shows how to create an inherited class from a parent class. The concept is simple. Declare and define your parent class Declare and define your child class without defining the parent-child relationship Add a new instance of your parent class to your [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2007/06/class-inheritance-in-javascript/">&lt;p&gt;My previous post &lt;a href="http://vinoaj.com/blog/howtos/creating-classes-with-javascript/"&gt;showed how to create classes in Javascript&lt;/a&gt;.  This addendum post shows how to create an inherited class from a parent class.&lt;/p&gt;
&lt;p&gt;The concept is simple.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Declare and define your parent class&lt;/li&gt;
&lt;li&gt;Declare and define your child class &lt;strong&gt;without&lt;/strong&gt; defining the parent-child relationship&lt;/li&gt;
&lt;li&gt;Add a new instance of your parent class to your child class' prototype.  Now the child class has access to the parent class' properties and methods.  This last step may seem counter-intuitive, but the example below helps to clarify what I mean.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="igBar"&gt;&lt;span id="ljavascript-19"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('javascript-19'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id="javascript-19"&gt;
&lt;div class="javascript"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;function&lt;/span&gt; SuperHero&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;heroID, p1, p2, p3&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; ...&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; ...&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; ...&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #009900; font-style: italic;"&gt;/* Do some extending of SuperHero's prototype here */&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #009900; font-style: italic;"&gt;//Now let's define our child class - note that we do not initially define the parent-child relationship&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;function&lt;/span&gt; AlienSuperHero&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;heroID, homePlanet, race, p1, p2, p3&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; ...&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900; font-style: italic;"&gt;//Now we indicate the parent-child relationship&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;prototype&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;new&lt;/span&gt; SuperHero&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;heroID, p1, p2, p3&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #009900; font-style: italic;"&gt;/* Do some extending of AlienSuperHero's prototype here */&lt;/span&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Usage would be along the lines of:&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="ljavascript-20"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('javascript-20'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id="javascript-20"&gt;
&lt;div class="javascript"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;var&lt;/span&gt; MartianManhunter = &lt;span style="color: #003366; font-weight: bold;"&gt;new&lt;/span&gt; AlienSuperHero&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #CC0000;color:#800000;"&gt;3454&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Mars'&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Martian'&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Flight'&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Telepathy'&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Shapeshifting'&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;fire&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #009900; font-style: italic;"&gt;//This is a method defined in the parent class&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; MartianManhunter.&lt;span style="color: #006600;"&gt;losePowers&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2007/06/class-inheritance-in-javascript/&amp;via=vinoaj&amp;text=Class Inheritance in Javascript&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nu8puE1wiip9MLxyWMtVln9rRF4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nu8puE1wiip9MLxyWMtVln9rRF4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nu8puE1wiip9MLxyWMtVln9rRF4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nu8puE1wiip9MLxyWMtVln9rRF4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/nvbCtUm3_pc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2007/06/class-inheritance-in-javascript/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2007/06/class-inheritance-in-javascript/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2007/06/class-inheritance-in-javascript/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>admin</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Creating classes with Javascript]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/vinoajHowtos/~3/6um_0lIf3E8/" />
		<id>http://vinoaj.com/blog/howtos/creating-classes-with-javascript/</id>
		<updated>2007-06-05T11:08:46Z</updated>
		<published>2007-06-05T10:51:22Z</published>
		<category scheme="http://vinoaj.com/blog" term="howto" /><category scheme="http://vinoaj.com/blog" term="javascript" /><category scheme="http://vinoaj.com/blog" term="oo" />		<summary type="html"><![CDATA[Javascript is a prototype-based language rather than a class-based language (e.g. Java). For an explanation of the difference, see Mozilla's comparison of class-based and prototype-based languages. In short, in a class-based language, objects are created by instantiating classes. The classes' list of properties and methods cannot be altered (e.g. added to) at runtime. A prototype-based [...]]]></summary>
		<content type="html" xml:base="http://vinoaj.com/blog/2007/06/creating-classes-with-javascript/">&lt;p&gt;Javascript is a prototype-based language rather than a class-based language (e.g. Java).  For an explanation of the difference, see Mozilla's &lt;a href="http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:Class-Based_vs._Prototype-Based_Languages" target="_blank"&gt;comparison of class-based and prototype-based languages&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;In short, in a class-based language, objects are created by instantiating classes.  The classes' list of properties and methods cannot be altered (e.g. added to) at runtime.  A prototype-based language does not have the notion of a class.  Everything is an object.  A prototype-based object can have its list of properties and methods modified during runtime.&lt;/p&gt;
&lt;p&gt;The examples below show how to create a class in Javascript.  First we define a function that will behave as our constructor.  Then we extend that function's prototype to include further functions that will behave as the class' methods.  Note the use of the &amp;quot;this&amp;quot; keyword to refer to the prototype of the current object.&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="ljavascript-23"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('javascript-23'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id="javascript-23"&gt;
&lt;div class="javascript"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #009900; font-style: italic;"&gt;//This is our constructor&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;function&lt;/span&gt; SuperHero&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;heroID, p1, p2, p3&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;heroID&lt;/span&gt; = heroID;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #000066;"&gt;name&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_1&lt;/span&gt; = p1;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_2&lt;/span&gt; = p2;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_3&lt;/span&gt; = p3;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_ultimate&lt;/span&gt; = p1 + p2 + p3;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #009900; font-style: italic;"&gt;//Now add some methods to the class&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;SuperHero.&lt;span style="color: #006600;"&gt;prototype&lt;/span&gt;.&lt;span style="color: #006600;"&gt;getPower1&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;return&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_1&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;SuperHero.&lt;span style="color: #006600;"&gt;prototype&lt;/span&gt;.&lt;span style="color: #006600;"&gt;losePowers&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_1&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_2&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #006600;"&gt;power_3&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;SuperHero.&lt;span style="color: #006600;"&gt;prototype&lt;/span&gt;.&lt;span style="color: #006600;"&gt;setName&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #000066;"&gt;name&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #000066;"&gt;name&lt;/span&gt; = &lt;span style="color: #000066;"&gt;name&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;SuperHero.&lt;span style="color: #006600;"&gt;prototype&lt;/span&gt;.&lt;span style="color: #006600;"&gt;alertProfile&lt;/span&gt; = &lt;span style="color: #003366; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #003366; font-weight: bold;"&gt;var&lt;/span&gt; str = &lt;span style="color: #3366CC;"&gt;'Hero Profile:&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;'&lt;/span&gt; +&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #3366CC;"&gt;'Name: '&lt;/span&gt; + &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #000066;"&gt;name&lt;/span&gt; + &lt;span style="color: #3366CC;"&gt;'&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;'&lt;/span&gt; +&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #3366CC;"&gt;'Name: '&lt;/span&gt; + &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #000066;"&gt;name&lt;/span&gt; + &lt;span style="color: #3366CC;"&gt;'&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;'&lt;/span&gt; +&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #3366CC;"&gt;'Name: '&lt;/span&gt; + &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #000066;"&gt;name&lt;/span&gt; + &lt;span style="color: #3366CC;"&gt;'&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;'&lt;/span&gt; +&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #3366CC;"&gt;'Name: '&lt;/span&gt; + &lt;span style="color: #000066; font-weight: bold;"&gt;this&lt;/span&gt;.&lt;span style="color: #000066;"&gt;name&lt;/span&gt; + &lt;span style="color: #3366CC;"&gt;'&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;'&lt;/span&gt; +&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And now we have a simple class with a few simple properties and methods.  Usage of the class would be something like:&lt;/p&gt;
&lt;div class="igBar"&gt;&lt;span id="ljavascript-24"&gt;&lt;a href="#" onclick="javascript:showPlainTxt('javascript-24'); return false;"&gt;PLAIN TEXT&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="syntax_hilite"&gt;&lt;span class="langName"&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id="javascript-24"&gt;
&lt;div class="javascript"&gt;
&lt;ol&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;var&lt;/span&gt; Superman = &lt;span style="color: #003366; font-weight: bold;"&gt;new&lt;/span&gt; SuperHero&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #CC0000;color:#800000;"&gt;2331&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Flight'&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Speed'&lt;/span&gt;, &lt;span style="color: #3366CC;"&gt;'Strength'&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;Superman.&lt;span style="color: #006600;"&gt;setName&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #3366CC;"&gt;'Superman: Man of Steel'&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #003366; font-weight: bold;"&gt;var&lt;/span&gt; power_1&amp;nbsp; = Superman.&lt;span style="color: #006600;"&gt;getPower1&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #000066; font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;kryptonite&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #66cc66;"&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp; &amp;nbsp; Superman.&lt;span style="color: #006600;"&gt;losePowers&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&lt;span style="color: #66cc66;"&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-weight: bold;color:#26536A;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"&gt;
&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"&gt;Superman.&lt;span style="color: #006600;"&gt;alertProfile&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #66cc66;"&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="float: right; margin-left: 10px;"&gt;&lt;a href="http://twitter.com/share?url=http://vinoaj.com/blog/2007/06/creating-classes-with-javascript/&amp;via=vinoaj&amp;text=Creating classes with Javascript&amp;related=:&amp;lang=en&amp;count=horizontal" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/S4MPR2zkFzemjpUX07fy_3-riKA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S4MPR2zkFzemjpUX07fy_3-riKA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/S4MPR2zkFzemjpUX07fy_3-riKA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S4MPR2zkFzemjpUX07fy_3-riKA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/vinoajHowtos/~4/6um_0lIf3E8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://vinoaj.com/blog/2007/06/creating-classes-with-javascript/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://vinoaj.com/blog/2007/06/creating-classes-with-javascript/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://vinoaj.com/blog/2007/06/creating-classes-with-javascript/</feedburner:origLink></entry>
	</feed>

