<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>geometrus</title>
	
	<link>http://geometrus.com/wp</link>
	<description>where mediawiki, gis, php and mysql meet</description>
	<lastBuildDate>Mon, 06 Jun 2011 08:55:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Geometrus" /><feedburner:info uri="geometrus" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://creativecommons.org/licenses/by-nc-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>Geometrus</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>GIS books from ESRI</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/AZL2QCVBbTE/</link>
		<comments>http://geometrus.com/wp/2011/02/gis-books-from-esri/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 21:36:37 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[ebook]]></category>
		<category><![CDATA[geo]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=436</guid>
		<description><![CDATA[GIS for Oceans [Jan 2011, PDF, 7Mb] Essays on Geography and GIS, volume 3 [Feb 2011, PDF, 1.6Mb], volume 2 [July 2009, PDF, 2.1Mb] and volume 1 [Sep 2008, PDF, 5Mb] Geomedicine. Can geographic information make me healthy? [Nov 2010, &#8230; <a href="http://geometrus.com/wp/2011/02/gis-books-from-esri/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li><a rel="nofollow" target="_blank" href="http://www.esri.com/library/ebooks/oceans.pdf">GIS for Oceans</a> [Jan 2011, PDF, 7Mb]</li>
<li><a rel="nofollow" target="_blank" href="http://www.esri.com/library/bestpractices/essays-on-geography-gis-vol3.pdf">Essays on Geography and GIS, volume 3</a> [Feb 2011, PDF, 1.6Mb], <a rel="nofollow" target="_blank" href="http://www.esri.com/library/bestpractices/essays-on-geography-gis-vol2.pdf">volume 2</a> [July 2009, PDF, 2.1Mb] and <a rel="nofollow" target="_blank" href="http://www.esri.com/library/bestpractices/essays-on-geography-gis.pdf">volume 1</a> [Sep 2008, PDF, 5Mb]</li>
<li><a rel="nofollow" target="_blank" href="http://www.esri.com/library/ebooks/geomedicine.pdf">Geomedicine. Can geographic information make me healthy?</a> [Nov 2010, PDF, 1.7Mb]</li>
<li><a rel="nofollow" target="_blank" href="http://www.esri.com/library/ebooks/geodesign.pdf">Changing Geography by Design</a> [Oct 2010, PDF, 2.5Mb]</li>
<li><a rel="nofollow" target="_blank" href="http://www.esri.com/library/ebooks/climate-change.pdf">Climate Change is a geographic problem</a> [June 2010, PDF, 2Mb]</li>
<li><a rel="nofollow" target="_blank" href="http://www.esri.com/library/bestpractices/managing-gis.pdf">Managing GIS</a> [Nov 2010, PDF, 3.9Mb]</li>
<li><a rel="nofollow" target="_blank" href="http://www.esri.com/library/bestpractices/gis-in-africa.pdf">GIS in Africa</a> [Mar 2009, PDF, 3.6Mb]</li>
</ul>
<p>And a lot of <a rel="nofollow" target="_blank" href="http://www.esri.com/showcase/best-practices/index.html">other ESRI books</a>.<br />
<a href="http://geometrus.com/wp/wp-content/uploads/2011/02/gis_in_africa.png"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:300px;" class="aligncenter"><img src="http://geometrus.com/wp/wp-content/uploads/2011/02/gis_in_africa-300x234.png" alt="ebook - GIS in Africa" title="gis_in_africa" width="300" height="234" class=" size-medium wp-image-439 shadow_flat"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://geometrus.com/wp/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:3px;width:100%;-moz-opacity:.65;opacity:.65;"></div></a></p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;title=GIS%20books%20from%20ESRI&amp;bodytext=%0D%0A%09GIS%20for%20Oceans%20%5BJan%202011%2C%20PDF%2C%207Mb%5D%0D%0A%09Essays%20on%20Geography%20and%20GIS%2C%20volume%203%20%5BFeb%202011%2C%20PDF%2C%201.6Mb%5D%2C%20volume%202%20%5BJuly%202009%2C%20PDF%2C%202.1Mb%5D%20and%20volume%201%20%5BSep%202008%2C%20PDF%2C%205Mb%5D%0D%0A%09Geomedicine.%20Can%20geographic%20information%20make%20me%20healthy%3F%20%5BNov%202010%2C%20PDF%2C%201.7Mb" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;title=GIS%20books%20from%20ESRI" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;title=GIS%20books%20from%20ESRI&amp;notes=%0D%0A%09GIS%20for%20Oceans%20%5BJan%202011%2C%20PDF%2C%207Mb%5D%0D%0A%09Essays%20on%20Geography%20and%20GIS%2C%20volume%203%20%5BFeb%202011%2C%20PDF%2C%201.6Mb%5D%2C%20volume%202%20%5BJuly%202009%2C%20PDF%2C%202.1Mb%5D%20and%20volume%201%20%5BSep%202008%2C%20PDF%2C%205Mb%5D%0D%0A%09Geomedicine.%20Can%20geographic%20information%20make%20me%20healthy%3F%20%5BNov%202010%2C%20PDF%2C%201.7Mb" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;t=GIS%20books%20from%20ESRI" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;submitHeadline=GIS%20books%20from%20ESRI&amp;submitSummary=%0D%0A%09GIS%20for%20Oceans%20%5BJan%202011%2C%20PDF%2C%207Mb%5D%0D%0A%09Essays%20on%20Geography%20and%20GIS%2C%20volume%203%20%5BFeb%202011%2C%20PDF%2C%201.6Mb%5D%2C%20volume%202%20%5BJuly%202009%2C%20PDF%2C%202.1Mb%5D%20and%20volume%201%20%5BSep%202008%2C%20PDF%2C%205Mb%5D%0D%0A%09Geomedicine.%20Can%20geographic%20information%20make%20me%20healthy%3F%20%5BNov%202010%2C%20PDF%2C%201.7Mb&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=GIS%20books%20from%20ESRI%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;title=GIS%20books%20from%20ESRI&amp;annotation=%0D%0A%09GIS%20for%20Oceans%20%5BJan%202011%2C%20PDF%2C%207Mb%5D%0D%0A%09Essays%20on%20Geography%20and%20GIS%2C%20volume%203%20%5BFeb%202011%2C%20PDF%2C%201.6Mb%5D%2C%20volume%202%20%5BJuly%202009%2C%20PDF%2C%202.1Mb%5D%20and%20volume%201%20%5BSep%202008%2C%20PDF%2C%205Mb%5D%0D%0A%09Geomedicine.%20Can%20geographic%20information%20make%20me%20healthy%3F%20%5BNov%202010%2C%20PDF%2C%201.7Mb" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=GIS%20books%20from%20ESRI&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;title=GIS%20books%20from%20ESRI&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F&amp;title=GIS%20books%20from%20ESRI&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=%0D%0A%09GIS%20for%20Oceans%20%5BJan%202011%2C%20PDF%2C%207Mb%5D%0D%0A%09Essays%20on%20Geography%20and%20GIS%2C%20volume%203%20%5BFeb%202011%2C%20PDF%2C%201.6Mb%5D%2C%20volume%202%20%5BJuly%202009%2C%20PDF%2C%202.1Mb%5D%20and%20volume%201%20%5BSep%202008%2C%20PDF%2C%205Mb%5D%0D%0A%09Geomedicine.%20Can%20geographic%20information%20make%20me%20healthy%3F%20%5BNov%202010%2C%20PDF%2C%201.7Mb" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2011%2F02%2Fgis-books-from-esri%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=AZL2QCVBbTE:_2oQpiSLJCM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=AZL2QCVBbTE:_2oQpiSLJCM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=AZL2QCVBbTE:_2oQpiSLJCM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=AZL2QCVBbTE:_2oQpiSLJCM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=AZL2QCVBbTE:_2oQpiSLJCM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=AZL2QCVBbTE:_2oQpiSLJCM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=AZL2QCVBbTE:_2oQpiSLJCM:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=AZL2QCVBbTE:_2oQpiSLJCM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=AZL2QCVBbTE:_2oQpiSLJCM:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/AZL2QCVBbTE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2011/02/gis-books-from-esri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2011/02/gis-books-from-esri/</feedburner:origLink></item>
		<item>
		<title>new Carto magazine, #3</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/UwlDRkyF-ig/</link>
		<comments>http://geometrus.com/wp/2010/12/new-carto-magazine-3/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 21:43:31 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[geo]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=423</guid>
		<description><![CDATA[Released the new issue of Carto magazine, #3 December 2010 &#8211; January 2011: share this on...]]></description>
			<content:encoded><![CDATA[<p>Released the new issue of Carto magazine, #3 December 2010 &#8211; January 2011:</p>
<p><img src="http://geometrus.com/wp/wp-content/uploads/2010/12/CARTO03_72dpi-229x300.jpg" alt="" title="CARTO03_72dpi" width="229" height="300" class="aligncenter size-medium wp-image-424" /></p>
<div style="clear:both"></div>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;title=new%20Carto%20magazine%2C%20%233%20&amp;bodytext=Released%20the%20new%20issue%20of%20Carto%20magazine%2C%20%233%20December%202010%20-%20January%202011%3A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;title=new%20Carto%20magazine%2C%20%233%20" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;title=new%20Carto%20magazine%2C%20%233%20&amp;notes=Released%20the%20new%20issue%20of%20Carto%20magazine%2C%20%233%20December%202010%20-%20January%202011%3A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;t=new%20Carto%20magazine%2C%20%233%20" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;submitHeadline=new%20Carto%20magazine%2C%20%233%20&amp;submitSummary=Released%20the%20new%20issue%20of%20Carto%20magazine%2C%20%233%20December%202010%20-%20January%202011%3A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=new%20Carto%20magazine%2C%20%233%20%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;title=new%20Carto%20magazine%2C%20%233%20&amp;annotation=Released%20the%20new%20issue%20of%20Carto%20magazine%2C%20%233%20December%202010%20-%20January%202011%3A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=new%20Carto%20magazine%2C%20%233%20&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;title=new%20Carto%20magazine%2C%20%233%20&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F&amp;title=new%20Carto%20magazine%2C%20%233%20&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=Released%20the%20new%20issue%20of%20Carto%20magazine%2C%20%233%20December%202010%20-%20January%202011%3A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F12%2Fnew-carto-magazine-3%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=UwlDRkyF-ig:0qg8pOTY0EE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=UwlDRkyF-ig:0qg8pOTY0EE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=UwlDRkyF-ig:0qg8pOTY0EE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=UwlDRkyF-ig:0qg8pOTY0EE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=UwlDRkyF-ig:0qg8pOTY0EE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=UwlDRkyF-ig:0qg8pOTY0EE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=UwlDRkyF-ig:0qg8pOTY0EE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=UwlDRkyF-ig:0qg8pOTY0EE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=UwlDRkyF-ig:0qg8pOTY0EE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/UwlDRkyF-ig" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/12/new-carto-magazine-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/12/new-carto-magazine-3/</feedburner:origLink></item>
		<item>
		<title>mediawiki leaves beta behind: v1.16.0 update</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/QZgj5X7zisA/</link>
		<comments>http://geometrus.com/wp/2010/08/mediawiki-leaves-beta-behind-v1-16-0-update/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 22:49:48 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[mediawiki]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=403</guid>
		<description><![CDATA[Some ten days ago, Mediawiki released finally the 1.16 version withouth the &#8220;beta&#8221; surname. We are proud to announce the first stable release of the 1.16 series. Selected changes that may be of interest since MediaWiki 1.15 are: Watchlists now &#8230; <a href="http://geometrus.com/wp/2010/08/mediawiki-leaves-beta-behind-v1-16-0-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some ten days ago, Mediawiki released finally the 1.16 version withouth the &#8220;beta&#8221; surname.</p>
<div style="margin: 2em; padding: 2em; background-color: rgb(255, 250, 251); border: 1px solid rgb(230, 224, 225); font-style: italic;">We are proud to announce the first stable release of the 1.16 series.<br />
Selected changes that may be of interest since MediaWiki 1.15 are:</p>
<ul>
<li>Watchlists now have RSS/Atom feeds. RSS feeds generally are now hidden, since Atom is a better protocol and is supported by virtually all clients.</li>
<li>It&#8217;s now possible to block users from sending email via Special:Emailuser.</li>
<li>The maintenance script system was overhauled. Most maintenance scripts now have a useful help page when you run them with &#8211;help.</li>
<li>AdminSettings.php is no longer required in order to run maintenance scripts. You can just set $wgDBadminuser and $wgDBadminpassword in your LocalSettings.php instead.</li>
<li>The preferences system was overhauled. Preferences are stored in a more compact format. Changes to site default preferences will automatically affect all users who have not chosen a different preference.</li>
<li>Support for SQLite was improved. Some broken features were fixed, and it now has an efficient full-text search.</li>
<li>The user groups ACL system was improved by allowing rights to be revoked, instead of just granted.</li>
<li>A new localisation caching system was introduced, which will make MediaWiki faster for almost everyone, especially when lots of extensions are enabled.</li>
</ul>
<p>By default, this new system makes a lot of database queries. If your database is particularly slow, or if your system administrator limits your query count, or if you want to squeeze as much performance as possible out of Mediawiki, set $wgCacheDirectory to a writable path on the local filesystem. Make sure you have the DBA extension for PHP installed, this will improve performance further.
</p></div>
<p>There were also some other security issues fixed that you can read in the <a rel="nofollow" target="_blank" href="http://lists.wikimedia.org/pipermail/mediawiki-announce/2010-July/000092.html">mediawiki release note</a>.</p>
<h3>Major vs minor mediawiki upgrade</h3>
<p>As it was a minor upgrade, only files were affected. Major upgrades can (and usually do) affect the database, and they change the second number in version: 1.15 to 1.16 for example. Minor upgrades do not affect the database, only files, and they change the third number in version: 1.15.4 to 1.15.5, or 1.16.0beta3 to 1.16.0, as this is the case. </p>
<p>Files affected are:</p>
<p><code><br />
/CREDITS<br />
/RELEASE-NOTES<br />
/languages/Classes/* (more than half of the files)<br />
/maintenance/Mantenance.php<br />
/maintenance/language/messages.inc<br />
/maintenance/ora/tables.sql<br />
/maintenance/tests/MediaWikiParserTest.php<br />
/skins/common/jquery.js<br />
/skins/common/jquery.min.js<br />
/skins/common/wikibits.js<br />
/skins/vector/experiments/* (4 css files)<br />
/skins/vector/experiments/images/* (11 png files)<br />
</code></p>
<p>And there are two other files updated in the 1.16 version, but they are not important as they only rename some divs:</p>
<p><code><br />
/skins/Vector.php<br />
/skins/vector/main-ltr.css<br />
</code></p>
<p>I have installed new versions in wikiprogress (1.16.0) and wikigender (1.15.5), and they work perfectly:<br />
<div style="overflow:hidden;display:table;line-height:0;text-align:center;width:304px;" class="aligncenter"><img src="http://geometrus.com/wp/wp-content/uploads/2010/08/wikigender_1.15.5.png" alt="" title="wikigender_1.15.5" width="304" height="97" class=" size-full wp-image-405 shadow_flat"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://geometrus.com/wp/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:3px;width:100%;-moz-opacity:.65;opacity:.65;"></div><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:344px;" class="aligncenter"><img src="http://geometrus.com/wp/wp-content/uploads/2010/08/wikiprogress_1.16.0.png" alt="" title="wikiprogress_1.16.0" width="344" height="135" class=" size-full wp-image-406 shadow_flat"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://geometrus.com/wp/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:3px;width:100%;-moz-opacity:.65;opacity:.65;"></div></p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;title=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update&amp;bodytext=Some%20ten%20days%20ago%2C%20Mediawiki%20released%20finally%20the%201.16%20version%20withouth%20the%20%22beta%22%20surname.%0D%0A%0D%0AWe%20are%20proud%20to%20announce%20the%20first%20stable%20release%20of%20the%201.16%20series.%0D%0ASelected%20changes%20that%20may%20be%20of%20interest%20since%20MediaWiki%201.15%20are%3A%0D%0A%0D%0A%0D%0A%09Watchlists%20" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;title=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;title=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update&amp;notes=Some%20ten%20days%20ago%2C%20Mediawiki%20released%20finally%20the%201.16%20version%20withouth%20the%20%22beta%22%20surname.%0D%0A%0D%0AWe%20are%20proud%20to%20announce%20the%20first%20stable%20release%20of%20the%201.16%20series.%0D%0ASelected%20changes%20that%20may%20be%20of%20interest%20since%20MediaWiki%201.15%20are%3A%0D%0A%0D%0A%0D%0A%09Watchlists%20" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;t=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;submitHeadline=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update&amp;submitSummary=Some%20ten%20days%20ago%2C%20Mediawiki%20released%20finally%20the%201.16%20version%20withouth%20the%20%22beta%22%20surname.%0D%0A%0D%0AWe%20are%20proud%20to%20announce%20the%20first%20stable%20release%20of%20the%201.16%20series.%0D%0ASelected%20changes%20that%20may%20be%20of%20interest%20since%20MediaWiki%201.15%20are%3A%0D%0A%0D%0A%0D%0A%09Watchlists%20&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;title=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update&amp;annotation=Some%20ten%20days%20ago%2C%20Mediawiki%20released%20finally%20the%201.16%20version%20withouth%20the%20%22beta%22%20surname.%0D%0A%0D%0AWe%20are%20proud%20to%20announce%20the%20first%20stable%20release%20of%20the%201.16%20series.%0D%0ASelected%20changes%20that%20may%20be%20of%20interest%20since%20MediaWiki%201.15%20are%3A%0D%0A%0D%0A%0D%0A%09Watchlists%20" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;title=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F&amp;title=mediawiki%20leaves%20beta%20behind%3A%20v1.16.0%20update&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=Some%20ten%20days%20ago%2C%20Mediawiki%20released%20finally%20the%201.16%20version%20withouth%20the%20%22beta%22%20surname.%0D%0A%0D%0AWe%20are%20proud%20to%20announce%20the%20first%20stable%20release%20of%20the%201.16%20series.%0D%0ASelected%20changes%20that%20may%20be%20of%20interest%20since%20MediaWiki%201.15%20are%3A%0D%0A%0D%0A%0D%0A%09Watchlists%20" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fmediawiki-leaves-beta-behind-v1-16-0-update%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=QZgj5X7zisA:gUqf8caQOzg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=QZgj5X7zisA:gUqf8caQOzg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=QZgj5X7zisA:gUqf8caQOzg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=QZgj5X7zisA:gUqf8caQOzg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=QZgj5X7zisA:gUqf8caQOzg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=QZgj5X7zisA:gUqf8caQOzg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=QZgj5X7zisA:gUqf8caQOzg:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=QZgj5X7zisA:gUqf8caQOzg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=QZgj5X7zisA:gUqf8caQOzg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/QZgj5X7zisA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/08/mediawiki-leaves-beta-behind-v1-16-0-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/08/mediawiki-leaves-beta-behind-v1-16-0-update/</feedburner:origLink></item>
		<item>
		<title>codeigniter unit testing</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/BL0Kagr9wv0/</link>
		<comments>http://geometrus.com/wp/2010/08/codeigniter-unit-testing/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 17:51:05 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[codeigniter]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=401</guid>
		<description><![CDATA[Toast &#8211; unit testing for codeigniter http://jensroland.com/projects/toast/ share this on...]]></description>
			<content:encoded><![CDATA[<p>Toast &#8211; unit testing for codeigniter <a rel="nofollow" target="_blank" href="http://jensroland.com/projects/toast/">http://jensroland.com/projects/toast/</a></p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;title=codeigniter%20unit%20testing&amp;bodytext=Toast%20-%20unit%20testing%20for%20codeigniter%20http%3A%2F%2Fjensroland.com%2Fprojects%2Ftoast%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;title=codeigniter%20unit%20testing" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;title=codeigniter%20unit%20testing&amp;notes=Toast%20-%20unit%20testing%20for%20codeigniter%20http%3A%2F%2Fjensroland.com%2Fprojects%2Ftoast%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;t=codeigniter%20unit%20testing" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;submitHeadline=codeigniter%20unit%20testing&amp;submitSummary=Toast%20-%20unit%20testing%20for%20codeigniter%20http%3A%2F%2Fjensroland.com%2Fprojects%2Ftoast%2F&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=codeigniter%20unit%20testing%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;title=codeigniter%20unit%20testing&amp;annotation=Toast%20-%20unit%20testing%20for%20codeigniter%20http%3A%2F%2Fjensroland.com%2Fprojects%2Ftoast%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=codeigniter%20unit%20testing&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;title=codeigniter%20unit%20testing&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F&amp;title=codeigniter%20unit%20testing&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=Toast%20-%20unit%20testing%20for%20codeigniter%20http%3A%2F%2Fjensroland.com%2Fprojects%2Ftoast%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F08%2Fcodeigniter-unit-testing%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=BL0Kagr9wv0:1yCvrp8giZI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=BL0Kagr9wv0:1yCvrp8giZI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=BL0Kagr9wv0:1yCvrp8giZI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=BL0Kagr9wv0:1yCvrp8giZI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=BL0Kagr9wv0:1yCvrp8giZI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=BL0Kagr9wv0:1yCvrp8giZI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=BL0Kagr9wv0:1yCvrp8giZI:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=BL0Kagr9wv0:1yCvrp8giZI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=BL0Kagr9wv0:1yCvrp8giZI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/BL0Kagr9wv0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/08/codeigniter-unit-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/08/codeigniter-unit-testing/</feedburner:origLink></item>
		<item>
		<title>maps &amp; infographics</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/xNDEdwYArEc/</link>
		<comments>http://geometrus.com/wp/2010/07/maps-infographics/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 14:00:58 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[geo]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=397</guid>
		<description><![CDATA[awesome examples of maps &#038; infographics http://ht.ly/2j3R3 &#8211; http://ht.ly/2j3Tc &#8211; http://ht.ly/2j40p share this on...]]></description>
			<content:encoded><![CDATA[<p>awesome examples of maps &#038; infographics <a rel="nofollow" target="_blank" href="http://ht.ly/2j3R3">http://ht.ly/2j3R3</a> &#8211; <a rel="nofollow" target="_blank" href="http://ht.ly/2j3Tc">http://ht.ly/2j3Tc</a> &#8211; <a rel="nofollow" target="_blank" href="http://ht.ly/2j40p">http://ht.ly/2j40p</a></p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;title=maps%20%26%20infographics&amp;bodytext=awesome%20examples%20of%20maps%20%26%20infographics%20http%3A%2F%2Fht.ly%2F2j3R3%20-%20http%3A%2F%2Fht.ly%2F2j3Tc%20-%20http%3A%2F%2Fht.ly%2F2j40p" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;title=maps%20%26%20infographics" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;title=maps%20%26%20infographics&amp;notes=awesome%20examples%20of%20maps%20%26%20infographics%20http%3A%2F%2Fht.ly%2F2j3R3%20-%20http%3A%2F%2Fht.ly%2F2j3Tc%20-%20http%3A%2F%2Fht.ly%2F2j40p" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;t=maps%20%26%20infographics" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;submitHeadline=maps%20%26%20infographics&amp;submitSummary=awesome%20examples%20of%20maps%20%26%20infographics%20http%3A%2F%2Fht.ly%2F2j3R3%20-%20http%3A%2F%2Fht.ly%2F2j3Tc%20-%20http%3A%2F%2Fht.ly%2F2j40p&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=maps%20%26%20infographics%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;title=maps%20%26%20infographics&amp;annotation=awesome%20examples%20of%20maps%20%26%20infographics%20http%3A%2F%2Fht.ly%2F2j3R3%20-%20http%3A%2F%2Fht.ly%2F2j3Tc%20-%20http%3A%2F%2Fht.ly%2F2j40p" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=maps%20%26%20infographics&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;title=maps%20%26%20infographics&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F&amp;title=maps%20%26%20infographics&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=awesome%20examples%20of%20maps%20%26%20infographics%20http%3A%2F%2Fht.ly%2F2j3R3%20-%20http%3A%2F%2Fht.ly%2F2j3Tc%20-%20http%3A%2F%2Fht.ly%2F2j40p" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmaps-infographics%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=xNDEdwYArEc:SzBSKqkhNPg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=xNDEdwYArEc:SzBSKqkhNPg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=xNDEdwYArEc:SzBSKqkhNPg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=xNDEdwYArEc:SzBSKqkhNPg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=xNDEdwYArEc:SzBSKqkhNPg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=xNDEdwYArEc:SzBSKqkhNPg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=xNDEdwYArEc:SzBSKqkhNPg:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=xNDEdwYArEc:SzBSKqkhNPg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=xNDEdwYArEc:SzBSKqkhNPg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/xNDEdwYArEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/07/maps-infographics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/07/maps-infographics/</feedburner:origLink></item>
		<item>
		<title>mediawiki news, aka recent changes</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/rfG6IGo7Oa8/</link>
		<comments>http://geometrus.com/wp/2010/07/mediawiki-news-aka-recent-changes/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 17:00:44 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[mediawiki]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[create article]]></category>
		<category><![CDATA[edit article]]></category>
		<category><![CDATA[recent changes]]></category>
		<category><![CDATA[upload file]]></category>
		<category><![CDATA[user joins]]></category>
		<category><![CDATA[wiki news]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=375</guid>
		<description><![CDATA[The list of changes in mediawiki is presented in a SpecialPage called Recentchanges, quite extensive and usefulbut which looks awful, with all wiki codes. Modifying the special page is a temp solution (it would be overwritten with an upgrade). Hereby you can find the first of a series of two posts on how to do it. First, the SQL part. <a href="http://geometrus.com/wp/2010/07/mediawiki-news-aka-recent-changes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>The mediawiki tecentchanges special page</h3>
<p>The list of changes in mediawiki is presented in a SpecialPage called Recentchanges, quite extensive and useful:<br />
<img src="http://geometrus.com/wp/wp-content/uploads/2010/07/recentchanges_wikiprogress.png" alt="" title="recentchanges_wikiprogress" width="600" height="248" class="aligncenter size-full wp-image-372" /></p>
<p>The problem is, when including this page on another, it is showed like this:<br />
<div style="overflow:hidden;display:table;line-height:0;text-align:center;width:420px;" class="aligncenter"><img src="http://geometrus.com/wp/wp-content/uploads/2010/07/recentchanges_old_wikiprogress.png" alt="" title="recentchanges_old_wikiprogress" width="420" height="194" class=" size-full wp-image-373 shadow_flat"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://geometrus.com/wp/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:3px;width:100%;-moz-opacity:.65;opacity:.65;"></div></p>
<p>Which looks awful, with all wiki codes like <code>==</code> or <code>{{</code>, or html codes like <code><br /></code>. Isn&#8217;t there a better solution than modifying a special page (which would be overwritten with an upgrade)?</p>
<h3>The wikihow model</h3>
<p><a rel="nofollow" target="_blank" href="http://www.wikihow.com/Main-Page">Wikihow</a> created a very nice approach to this: <a rel="nofollow" target="_blank" href="http://www.wikihow.com"><br />
<div style="overflow:hidden;display:table;line-height:0;text-align:center;width:250px;" class="aligncenter"><img src="http://geometrus.com/wp/wp-content/uploads/2010/07/wikihow_recentchanges.png" alt="" title="wikihow_recentchanges" width="250" height="255" class=" size-full wp-image-376 shadow_flat"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://geometrus.com/wp/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:3px;width:100%;-moz-opacity:.65;opacity:.65;"></div></a></p>
<p>As far as I can see, it lists these types of changes:</p>
<ul>
<li>a new user joined the wiki;</li>
<li>a new file uploaded;</li>
<li>a category added to an article;</li>
<li>an edition to an article;</li>
<li>a user left a message to another;</li>
<li>and of course, when a new article is created.</li>
</ul>
<p>Except for the user messaging system, which is probably based on a specific extension, all the others can be taken from the database. Also, the category addition is not that different from an article edition, so I will leave that one apart too.</p>
<h3>recent changes sql, the core</h3>
<p>There are four key data items to get for each news: </p>
<ul>
<li>what it is about (joining, creating, editing, uploading);</li>
<li>when it occurred (here it comes handy the <a href="http://geometrus.com/wp/2010/05/date-semantics/">date semantics function</a>);</li>
<li>who did it (the user);</li>
<li>and where happened (the link with further info).</li>
</ul>
<p>What, when, who and where sounds like a good plan. Let&#8217;s see the queries:</p>
<h4>a new user joined the wiki</h4>
<p>The query is quite easy, new users are those who registered last: </p>
<pre class="brush: sql; title: ; notranslate">
SELECT user_id, user_name, user_registration, &quot;joined&quot;, CONCAT(&quot;User:&quot;, user_name)
FROM user
ORDER BY user_registration DESC
</pre>
<h4>an article was created</h4>
<p>This query is probably the most complicated, as it comes from the most important couple of tables in mediawiki, <a href="http://geometrus.com/wp/2010/02/new-articles-mediawiki/">revisions and pages</a>. </p>
<p>Basically, it takes all changes if they had some content (<code>length > 0</code>), if they are new pages (&#8216;Created&#8230;&#8217;), and only from proper content pages (i.e., not talk pages or special content, that is, <code>namespace = 0</code>):</p>
<pre class="brush: sql; title: ; notranslate">
SELECT r.rev_user, r.rev_user_text, r.rev_timestamp, &quot;created&quot;, r.rev_page, p.page_title
FROM `revision` r, page p
WHERE r.rev_page = p.page_id
  AND r.rev_len &gt; 0
  AND r.rev_comment LIKE 'Created%'
  AND p.page_namespace = 0
ORDER BY rev_timestamp DESC
</pre>
<h4>an article was edited</h4>
<p>Same as above, changing the comment; since there can be several changes for the same page, we take the latest only:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT r.rev_user, r.rev_user_text, max( r.rev_timestamp ), &quot;edited&quot;,  r.rev_page, p.page_title
FROM `revision` r, page p
WHERE r.rev_page = p.page_id
  AND r.rev_len &gt; 0
  AND  r.rev_comment NOT LIKE 'Created%'
  AND p.page_namespace = 0
GROUP BY r.rev_user, r.rev_user_text, r.rev_page, p.page_title
ORDER BY 3 DESC
</pre>
<p>This query can be improved, depending on each use: not listing sysops editions, or those on the home page. May you have a special need for these, please leave a comment below.</p>
<h4>a file was uploaded</h4>
<p>Quite easy, after the previous queries:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT i.img_user, i.img_user_text, i.img_timestamp, &quot;uploaded&quot;, p.page_id, i.img_name
FROM image i, page p
WHERE p.page_title = i.img_name
ORDER BY img_timestamp DESC
</pre>
<h3>The final query, putting it all together</h3>
<p>Every query has different columns, different column names and maybe even types, so they must be unified, and joined through a <code>UNION </code>clause. Also, the <code>ORDER BY</code> must be the same for all. </p>
<pre class="brush: sql; title: ; notranslate">
(SELECT user_id, user_name, user_registration AS d_when, &quot;joined&quot; AS what, 0 AS page_id, CONCAT(&quot;User:&quot;, user_name) AS page_title FROM user)
UNION
(SELECT r.rev_user AS user_id, r.rev_user_text AS user_name, max( r.rev_timestamp ) AS d_when, &quot;edited&quot; AS what,  r.rev_page AS page_id, p.page_title FROM `revision` r, page p WHERE r.rev_page = p.page_id AND r.rev_len &gt; 0 AND r.rev_comment = &quot;&quot; AND p.page_namespace = 0 GROUP BY r.rev_user, r.rev_user_text, r.rev_page, p.page_title )
UNION
(SELECT r.rev_user AS user_id, r.rev_user_text AS user_name, r.rev_timestamp AS d_when, &quot;created&quot; AS what, r.rev_page AS page_id, p.page_title FROM `revision` r, page p WHERE r.rev_page = p.page_id AND r.rev_len &gt; 0 AND r.rev_comment LIKE 'Created%' AND p.page_namespace = 0 )
UNION
(SELECT i.img_user AS user_id, i.img_user_text AS user_name, i.img_timestamp AS d_when, &quot;uploaded&quot; AS what, p.page_id, i.img_name AS page_title FROM image i, page p WHERE p.page_title = i.img_name)
ORDER BY d_when DESC
</pre>
<p>Including that in a new special page, and including that special page, that will need another post.</p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;title=mediawiki%20news%2C%20aka%20recent%20changes&amp;bodytext=The%20list%20of%20changes%20in%20mediawiki%20is%20presented%20in%20a%20SpecialPage%20called%20Recentchanges%2C%20quite%20extensive%20and%20usefulbut%20which%20looks%20awful%2C%20with%20all%20wiki%20codes.%20Modifying%20the%20special%20page%20is%20a%20temp%20solution%20%28it%20would%20be%20overwritten%20with%20an%20upgrade%29.%20Hereby%20you%20can%20find%20the%20first%20of%20a%20series%20of%20two%20posts%20on%20how%20to%20do%20it.%20First%2C%20the%20SQL%20part." ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;title=mediawiki%20news%2C%20aka%20recent%20changes" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;title=mediawiki%20news%2C%20aka%20recent%20changes&amp;notes=The%20list%20of%20changes%20in%20mediawiki%20is%20presented%20in%20a%20SpecialPage%20called%20Recentchanges%2C%20quite%20extensive%20and%20usefulbut%20which%20looks%20awful%2C%20with%20all%20wiki%20codes.%20Modifying%20the%20special%20page%20is%20a%20temp%20solution%20%28it%20would%20be%20overwritten%20with%20an%20upgrade%29.%20Hereby%20you%20can%20find%20the%20first%20of%20a%20series%20of%20two%20posts%20on%20how%20to%20do%20it.%20First%2C%20the%20SQL%20part." ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;t=mediawiki%20news%2C%20aka%20recent%20changes" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;submitHeadline=mediawiki%20news%2C%20aka%20recent%20changes&amp;submitSummary=The%20list%20of%20changes%20in%20mediawiki%20is%20presented%20in%20a%20SpecialPage%20called%20Recentchanges%2C%20quite%20extensive%20and%20usefulbut%20which%20looks%20awful%2C%20with%20all%20wiki%20codes.%20Modifying%20the%20special%20page%20is%20a%20temp%20solution%20%28it%20would%20be%20overwritten%20with%20an%20upgrade%29.%20Hereby%20you%20can%20find%20the%20first%20of%20a%20series%20of%20two%20posts%20on%20how%20to%20do%20it.%20First%2C%20the%20SQL%20part.&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=mediawiki%20news%2C%20aka%20recent%20changes%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;title=mediawiki%20news%2C%20aka%20recent%20changes&amp;annotation=The%20list%20of%20changes%20in%20mediawiki%20is%20presented%20in%20a%20SpecialPage%20called%20Recentchanges%2C%20quite%20extensive%20and%20usefulbut%20which%20looks%20awful%2C%20with%20all%20wiki%20codes.%20Modifying%20the%20special%20page%20is%20a%20temp%20solution%20%28it%20would%20be%20overwritten%20with%20an%20upgrade%29.%20Hereby%20you%20can%20find%20the%20first%20of%20a%20series%20of%20two%20posts%20on%20how%20to%20do%20it.%20First%2C%20the%20SQL%20part." ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=mediawiki%20news%2C%20aka%20recent%20changes&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;title=mediawiki%20news%2C%20aka%20recent%20changes&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F&amp;title=mediawiki%20news%2C%20aka%20recent%20changes&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=The%20list%20of%20changes%20in%20mediawiki%20is%20presented%20in%20a%20SpecialPage%20called%20Recentchanges%2C%20quite%20extensive%20and%20usefulbut%20which%20looks%20awful%2C%20with%20all%20wiki%20codes.%20Modifying%20the%20special%20page%20is%20a%20temp%20solution%20%28it%20would%20be%20overwritten%20with%20an%20upgrade%29.%20Hereby%20you%20can%20find%20the%20first%20of%20a%20series%20of%20two%20posts%20on%20how%20to%20do%20it.%20First%2C%20the%20SQL%20part." ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmediawiki-news-aka-recent-changes%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=rfG6IGo7Oa8:cw-MTF7JpyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=rfG6IGo7Oa8:cw-MTF7JpyU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=rfG6IGo7Oa8:cw-MTF7JpyU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=rfG6IGo7Oa8:cw-MTF7JpyU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=rfG6IGo7Oa8:cw-MTF7JpyU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=rfG6IGo7Oa8:cw-MTF7JpyU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=rfG6IGo7Oa8:cw-MTF7JpyU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=rfG6IGo7Oa8:cw-MTF7JpyU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=rfG6IGo7Oa8:cw-MTF7JpyU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/rfG6IGo7Oa8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/07/mediawiki-news-aka-recent-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/07/mediawiki-news-aka-recent-changes/</feedburner:origLink></item>
		<item>
		<title>a couple of great typography learning links</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/ZLHulkHFvXQ/</link>
		<comments>http://geometrus.com/wp/2010/07/a-couple-of-great-typography-learning-links/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 10:44:20 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=380</guid>
		<description><![CDATA[a typography learning book for kids and grown-ups who don&#8217;t feel like that, and 29 typography tutorials share this on...]]></description>
			<content:encoded><![CDATA[<p>a <a rel="nofollow" target="_blank" href="http://hyperactivitypography.com/preview/index.html">typography learning book</a> for kids and grown-ups who don&#8217;t feel like that, and <a rel="nofollow" target="_blank" href="http://thedesignmag.com/29-excellent-typography-tutorials-for-designers.html">29 typography tutorials</a></p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;title=a%20couple%20of%20great%20typography%20learning%20links&amp;bodytext=a%20typography%20learning%20book%20for%20kids%20and%20grown-ups%20who%20don%27t%20feel%20like%20that%2C%20and%2029%20typography%20tutorials" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;title=a%20couple%20of%20great%20typography%20learning%20links" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;title=a%20couple%20of%20great%20typography%20learning%20links&amp;notes=a%20typography%20learning%20book%20for%20kids%20and%20grown-ups%20who%20don%27t%20feel%20like%20that%2C%20and%2029%20typography%20tutorials" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;t=a%20couple%20of%20great%20typography%20learning%20links" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;submitHeadline=a%20couple%20of%20great%20typography%20learning%20links&amp;submitSummary=a%20typography%20learning%20book%20for%20kids%20and%20grown-ups%20who%20don%27t%20feel%20like%20that%2C%20and%2029%20typography%20tutorials&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=a%20couple%20of%20great%20typography%20learning%20links%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;title=a%20couple%20of%20great%20typography%20learning%20links&amp;annotation=a%20typography%20learning%20book%20for%20kids%20and%20grown-ups%20who%20don%27t%20feel%20like%20that%2C%20and%2029%20typography%20tutorials" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=a%20couple%20of%20great%20typography%20learning%20links&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;title=a%20couple%20of%20great%20typography%20learning%20links&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F&amp;title=a%20couple%20of%20great%20typography%20learning%20links&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=a%20typography%20learning%20book%20for%20kids%20and%20grown-ups%20who%20don%27t%20feel%20like%20that%2C%20and%2029%20typography%20tutorials" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fa-couple-of-great-typography-learning-links%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=ZLHulkHFvXQ:3TCcEIq6KEQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=ZLHulkHFvXQ:3TCcEIq6KEQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=ZLHulkHFvXQ:3TCcEIq6KEQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=ZLHulkHFvXQ:3TCcEIq6KEQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=ZLHulkHFvXQ:3TCcEIq6KEQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=ZLHulkHFvXQ:3TCcEIq6KEQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=ZLHulkHFvXQ:3TCcEIq6KEQ:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=ZLHulkHFvXQ:3TCcEIq6KEQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=ZLHulkHFvXQ:3TCcEIq6KEQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/ZLHulkHFvXQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/07/a-couple-of-great-typography-learning-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/07/a-couple-of-great-typography-learning-links/</feedburner:origLink></item>
		<item>
		<title>mysql best practices</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/4QD4Dm6jhWI/</link>
		<comments>http://geometrus.com/wp/2010/07/mysql-best-practices/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 22:28:34 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=368</guid>
		<description><![CDATA[some 21 mysql best practices to follow share this on...]]></description>
			<content:encoded><![CDATA[<p>some <a rel="nofollow" target="_blank" href="http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/">21 mysql best practices</a> to follow</p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;title=mysql%20best%20practices&amp;bodytext=some%2021%20mysql%20best%20practices%20to%20follow" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;title=mysql%20best%20practices" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;title=mysql%20best%20practices&amp;notes=some%2021%20mysql%20best%20practices%20to%20follow" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;t=mysql%20best%20practices" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;submitHeadline=mysql%20best%20practices&amp;submitSummary=some%2021%20mysql%20best%20practices%20to%20follow&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=mysql%20best%20practices%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;title=mysql%20best%20practices&amp;annotation=some%2021%20mysql%20best%20practices%20to%20follow" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=mysql%20best%20practices&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;title=mysql%20best%20practices&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F&amp;title=mysql%20best%20practices&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=some%2021%20mysql%20best%20practices%20to%20follow" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fmysql-best-practices%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=4QD4Dm6jhWI:npoqODuJL_o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=4QD4Dm6jhWI:npoqODuJL_o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=4QD4Dm6jhWI:npoqODuJL_o:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=4QD4Dm6jhWI:npoqODuJL_o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=4QD4Dm6jhWI:npoqODuJL_o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=4QD4Dm6jhWI:npoqODuJL_o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=4QD4Dm6jhWI:npoqODuJL_o:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=4QD4Dm6jhWI:npoqODuJL_o:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=4QD4Dm6jhWI:npoqODuJL_o:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/4QD4Dm6jhWI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/07/mysql-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/07/mysql-best-practices/</feedburner:origLink></item>
		<item>
		<title>php coding standards</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/Ef6QSiFzlvk/</link>
		<comments>http://geometrus.com/wp/2010/07/php-coding-standards/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 15:48:07 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[coding standards]]></category>
		<category><![CDATA[error handling]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[model view controller]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[naming convention]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=324</guid>
		<description><![CDATA[Why coding standards? In big projects, in any project, they&#8217;re essential: understandeable, much easier, solid code. Perfect, mandatory for a team. The objective is to have all decisions documented, choices and standards that I will stick on when developing. Important &#8230; <a href="http://geometrus.com/wp/2010/07/php-coding-standards/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Why coding standards? In big projects, in any project, they&#8217;re essential: understandeable, much easier, solid code. Perfect, mandatory for a team. The objective is to have all decisions documented, choices and standards that I will stick on when developing. Important thing is not to follow these guidelines, but to follow a set of them, whichever. It can be <a rel="nofollow" target="_blank" href="http://pear.php.net/manual/en/standards.php">PEAR</a> as <a rel="nofollow" target="_blank" href="http://paul-m-jones.com/archives/34">this guy</a>. My coding standards are based on <a rel="nofollow" target="_blank" href="http://framework.zend.com/manual/en/coding-standard.overview.html">Zend Framework Coding Standard</a> for PHP, but some are mine. The result follows.</p>
<h3>scope (as a table of contents)</h3>
<p>As of today, topics in this php coding standards include:</p>
<ul>
<li><a rel="nofollow" target="_blank" href="#arch">php architecture</a>,
<ul>
<li>why a framework?,</li>
<li>why codeigniter?,</li>
<li>file structure,</li>
<li>version,</li>
<li>developing,</li>
</ul>
</li>
<li><a rel="nofollow" target="_blank" href="#file">file formatting</a>,
<ul>
<li>php tag,</li>
<li>indentation,</li>
<li>lines,</li>
</ul>
</li>
<li><a rel="nofollow" target="_blank" href="#nami">naming convention</a>,</li>
<li><a rel="nofollow" target="_blank" href="#codi">coding style</a>,
<ul>
<li>parenthesis,</li>
<li>braces,</li>
<li>strings,</li>
<li>switch,</li>
<li>other,</li>
</ul>
</li>
<li><a rel="nofollow" target="_blank" href="#exam">example</a>,</li>
<li><a rel="nofollow" target="_blank" href="#docu">documentation</a>,
<ul>
<li>file,</li>
<li>class, and</li>
<li>function, method.</li>
</ul>
</li>
</ul>
<p><a name="arch"></a><br />
<h3>php architecture</h3>
<p>I work with the <acronym title="model-view-controller">MVC</acronym> pattern:<br />
<a rel="nofollow" target="_blank" href="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch2.html"><div style="overflow:hidden;display:table;line-height:0;text-align:center;width:516px;" class="aligncenter"><img src="http://geometrus.com/wp/wp-content/uploads/2010/07/app-archa2.gif" alt="MVC - Model View Controller" title="app-archa2" width="516" height="361" class=" size-full wp-image-328 shadow_flat"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://geometrus.com/wp/wp-content/plugins/shadows/shadow_flat.png" class="shadow_img" style="margin:0 !important;height:3px;width:100%;-moz-opacity:.65;opacity:.65;"></div></a></p>
<p>Following this architecture, I prefer the <a rel="nofollow" target="_blank" href="http://codeigniter.com/">Codeigniter</a> framework. Codeigniter, in its wonderful yet easy and concise help, <a rel="nofollow" target="_blank" href="http://codeigniter.com/user_guide/overview/mvc.html">defines MVC</a> as:</p>
<div style="margin: 2em; padding: 2em; background-color: rgb(230, 224, 225); border: 1px solid rgb(150, 144, 145); font-style: italic;">
MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.</p>
<ul>
<li>The Model represents your data structures. Typically your model classes will contain functions that help you retrieve, insert, and update information in your database.</li>
<li>The View is the information that is being presented to a user. A View will normally be a web page, but in CodeIgniter, a view can also be a page fragment like a header or footer. It can also be an RSS page, or any other type of &#8220;page&#8221;.
</li>
<li>The Controller serves as an intermediary between the Model, the View, and any other resources needed to process the HTTP request and generate a web page.</li>
</ul>
</div>
<h4>why a framework? </h4>
<p>Frameworks provide us programmers with tested, ready-to-use tools to develop flexible and almost error-free applications effectively. PHP frameworks can include authentication classes, database access, caching, even web templates in case you need them. They help in the sense you can focus on design and business, and not in implementation details. You don&#8217;t have to reinvent the wheel for very common development needs.</p>
<h4>why codeigniter? </h4>
<p>Why not? It is lighter, easier, more flexible than <a rel="nofollow" target="_blank" href="http://www.devtrench.com/codeigniter-vs-symfony/">symphony</a>, <a rel="nofollow" target="_blank" href="http://designelemental.net/blog/CodeIgniter-vs.-CakePHP">cakephp</a> and <a rel="nofollow" target="_blank" href="http://avnetlabs.com/php/php-frameworks-revisited-codeigniter-vs-zend-framework">zend</a>, support databases as Oracle which <a rel="nofollow" target="_blank" href="http://www.beyondcoding.com/2009/03/02/choosing-a-php-framework-round-2-yii-vs-kohana-vs-codeigniter/">Kohana and Yii</a> lack. </p>
<h4>file structure </h4>
<pre class="brush: plain; title: ; notranslate">
the-domain.com/
      app/
            config/
            controller/
            view/
            model/
            library/
            helper/
            (...)
      public/
            css/
            js/
            img/
            (...)
</pre>
<p>File name: low case a-z, underscore separation: <code>emission_dataset.php</code>. All files have .php extension (<a rel="nofollow" target="_blank" href="http://stackoverflow.com/questions/1195037/php-include-file-extension-best-practices">no .inc for security issues</a>). For classes, the file has same name as the class contained in it, still low case.</p>
<p>For backoffice files, begin with underscore: _users.php.</p>
<h4>version</h4>
<p>It is controlled by <a rel="nofollow" target="_blank" href="http://subversion.tigris.org/">subversion</a>.</p>
<h4>developing</h4>
<p>While developing, I use these conventions in comments:</p>
<ul>
<li>:TBD: to be done.</li>
<li>:BUG: and the number assigned by the <a rel="nofollow" target="_blank" href="http://www.mantisbt.org/">bug tracker</a>.</li>
<li>:WRN: some warning, maybe the code could be unstable depending on some conditions.</li>
</ul>
<p><a name="file"></a><br />
<h3>file formatting</h3>
<h4>file</h4>
<p>Files are ASCII text with Western, ISO-8859-1 character encoding.</p>
<h4>lines</h4>
<ul>
<li>Maximum line length: 80 to 120 chars.</li>
<li>Line terminations follow the windows standard: CRLF (both chr 13 and 10).</li>
</ul>
<h4>php tags</h4>
<ul>
<li><code>&lt;?php</code>: full open tag, available in all php configuration and thus preferred over the short one (<code><?</code>), which can cause problems.</li>
<li><code>&lt;?php= $val; ?></code> as inline tag (and even better, <code>&lt;?php echo $val; ?></code>).</li>
<li>Not using <code>?></code> at the end of a file to avoid possible injections.</li>
</ul>
<h4>indentation</h4>
<ul>
<li>Always 2 spaces and not using tabs, to avoid problems in different text editors and users.</li>
<li>Align when possible:
<pre class="brush: php; title: ; notranslate">
      $aColors = array( array( #FFF, #FFF, #FFF ),
                        array( #0FF, #F0F, #FF0 ),
                        array( #00F, #F00, #0F0 ),
                        array( #000, #000, #000 ) );
</pre>
<p>      or another example:</p>
<pre class="brush: php; title: ; notranslate">
      $sName          = &quot;&quot;;
      $iMaxFileSizeKb = 128;
      $aTypeAllowed   = array( &quot;jpg&quot;, &quot;gif&quot;, &quot;png&quot; );
</pre>
</li>
</ul>
<p><a name="nami"></a><br />
<h3>naming convention</h3>
<h4>classes</h4>
<p>Capital first letter, underscore between words. Class name must match controller's and file name (except first letter). That means that each class must go in a different file. Models add "_model" at the end, as <code>Dataset_model</code>. Use of acronyms is allowed but without caps: <code>Document_pdf</code> and<code> Document_pdf_model</code>. Even if a word is an acronym, it must not be written in all caps (HTML, for example, would become Html).</p>
<h4>functions and methods</h4>
<p>Begin with small caps, then words begin with caps. No underscore between words. If suitable, use "Get" or "Set" as beginning. Explain what they do: <code>getErrorCode</code>, <code>calcEmissions</code>, <code>showPdf</code>, <code>loadDataset</code>.</p>
<h4>variables</h4>
<p>Since PHP vars can be of any type, even change in the same script, I prefer using the hungarian notation for stating the type with the first lower letter, then same as functions. Always initialized before used:<code> $aColors = array();</code>, <code>$bEndFile = false;</code>. Exceptions:</p>
<ul>
<li>Short loops: <code>$i</code>, <code>$j</code>.</li>
<li>Coordinates: <code>$x</code>, <code>$y</code>, <code>$z</code>.</li>
<li>Database: <code>$sql</code>, <code>$query</code>, <code>$db</code>, <code>$rs</code>.</li>
</ul>
<p>I do not use global vars. When needed, either a regular var in config or a session one.</p>
<h4>constants</h4>
<p>All caps and underscore between words: <code>MAX_FILES_ALLOWED</code>.          </p>
<p><a name="codi"></a><br />
<h3>coding style</h3>
<h4>parenthesis</h4>
<p>I do know that language constructs as <code>if</code> are different than functions as <code>str_replace</code>. But both work the same way and return values, so I try to keep same style with these calls. Always put spaces when using parenthesis, it is much easier to read:</p>
<pre class="brush: php; title: ; notranslate">
 if( $sUserType === &quot;admin&quot; )
</pre>
<pre class="brush: php; title: ; notranslate">
 $iLastUser = count( $aUsers ) - 1;
</pre>
<pre class="brush: php; title: ; notranslate">
 $sLastUser = $aUsers[ $iLastUser ];
</pre>
<pre class="brush: php; title: ; notranslate">
 $oDataset-&gt;loadPdf( $fName, $iFileSize, $sUrl );
</pre>
<h4>braces</h4>
<p>I always use braces in their own line:</p>
<pre class="brush: php; title: ; notranslate">
  for( $i = 0; $i &lt;= $iLastUser; $i ++ )
  {
    if( ! empty( $aUsers[ $i ] ) )
    {
      echo( &quot;user: &quot;, $aUsers[ $i ], &quot;&lt;br/&gt;&quot; );
    }
  }
</pre>
<h4>strings</h4>
<p>I prefer double quotes, but never rely on magic quotes. Single quotes are used inside.</p>
<pre class="brush: sql; title: ; notranslate">
$sql = &quot;SELECT id FROM users WHERE name = 'Pau' &quot;;
</pre>
<p>When using concatenation, the . operator is placed under the assignment. Concatenation and caps are used in queries as follow:</p>
<pre class="brush: sql; title: ; notranslate">
        $sql = &quot;SELECT field1, field2 &quot;
             . &quot;  FROM table &quot;
             . &quot; WHERE field3 = 'somevalue' &quot;
             . &quot; ORDER BY field1 &quot; ;
</pre>
<h4>switch</h4>
<p>Use <code>continue </code>and <code>break </code>sparingly, as they are masked <code>go to</code>. Always use a <code>default</code>. The <code>switch </code>follows this model:</p>
<pre class="brush: php; title: ; notranslate">
switch( $erCode )
{
  case 1:
    ...
    break;
  case 2:
    ...
    break;
  default:
}
</pre>
<h4>other</h4>
<ul>
<li>Never use global vars. Use session vars instead.</li>
<li>Use of <code>echo( 1, " .- ", $var );</code> instead of <code>echo 1 . " .- " . $var;</code> or <code>print</code>.</li>
<li>Use of <code>if </code>instead of the ternary operator <code>? :</code>.</li>
<li>The <code>return</code> clause never uses parents. And it helps debugging if there is a simple variable to return. Any calculations or function calls must be done earlier:
<pre class="brush: php; title: ; notranslate">
      function getTableValue( $sTable, $sField )
      {
          $sql = 'SELECT ' . $sField
               . '  FROM ' . $sTable;
          $db-&gt;query( $sql );
          $val = $db-&gt;row[ $sField ];
          return $val;
      }
</pre>
</li>
<li>No use of magical numbers like <code>if( $i > 15 )</code>. Use variables and document them.</li>
<li>One statement per line. If possible, avoid embedded assignments like <code>if( $file = fopen( $url ) )</code></li>
<li>Space after commas, as when writing.</li>
<li>Do not use <code>abort </code>or <code>die</code>, or the <em><a rel="nofollow" target="_blank" href="http://en.php.net/operators.errorcontrol#90987">evil</a></em> @ operator. Use a error handler, like:
<pre class="brush: php; title: ; notranslate">
      function exception_handler( $exception )
      {
        echo 'Uncaught exception: ',
             $exception-&gt;getMessage(), '\n';
      }

      set_exception_handler( 'exception_handler' );

      throw new Exception( 'Uncaught Exception' );
</pre>
</li>
<li>Use of operators like <code>===</code>, <code>!==</code> (value &#038; type) instead of <code>==</code>, <code>!=</code> (just value, type is casted).</li>
<li>Do not rely on the default values like zero, null or false; always check <code>if( $bGeneratePdf === true )</code>.</li>
<li>Do not call functions in checking the end of a loop; assign them before:
<pre class="brush: php; title: ; notranslate">
      $iNumUsers = count( $aUsers );
      for( $i = 0; $i &lt; $iLastUser; $i++ )
</pre>
</li>
</ul>
<p><a name="exam"></a><br />
<h3>example</h3>
<h4>bad code</h4>
<pre class="brush: php; title: ; notranslate">
function copy($url,$dirname){
@$file = fopen ($url, &quot;rb&quot;);
if (!$file) {
echo '&lt;font color=red&gt;Failed to copy
$url!&lt;/font&gt;&lt;br&lt;';
return false;
}else {
$filename = basename($url);
$fc = fopen($dirname.&quot;$filename&quot;, &quot;wb&quot;);
while (!feof ($file)) {
$line = fread ($file, 1028);
fwrite($fc,$line);
}
fclose($fc);
echo &quot;&lt;font color=blue&gt;File $url saved to
PC!&lt;/font&gt;&lt;br&gt;&quot;;
return true;
}
}
</pre>
<h4>my code</h4>
<pre class="brush: php; title: ; notranslate">
function copyFile( $sUrl, $sDirName )
{
  $iBufferRead = 1024;
  try
  {
    $fIni = fopen( $sUrl, &quot;rb&quot;);
  }
  catch(Exception $e) //this does not handle fatal errors, though
  {
    print(&quot;Couldn't open file&quot;);
  }
  if( !$fIni )
  {
    echo '&lt;p class=&quot;error&quot;&gt;Failed to copy',
         $sUrl, '&lt;/p&gt;';
    return false;
  }
  else
  {
    $sFileName = basename( $sUrl );
    $fEnd = fopen( $sDirName . $sFileName, &quot;wb&quot; );
    while( ! feof( $fIni ) )
    {
      $sLine = fread( $fIni, $iBufferRead );
      fwrite( $fEnd, $sLine );
    }
    fclose( $fEnd );
    fclose( $fIni );
    echo '&lt;p class=&quot;succeed&quot;&gt;File',
         $sUrl, 'saved to PC!&lt;/p&gt;&quot;;
    return true;
  }
}
</pre>
<p><a name="docu"></a><br />
<h3>documentation</h3>
<p>Documentation must be compatible with <a rel="nofollow" target="_blank" href="http://www.phpdoc.org/">phpDocumentor</a>.</p>
<h4>file</h4>
<p>Each file starts with...</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/**
 * some_file.php
 *
 * Explains what it is inside the file.
 *
 * @copyright 2009 geometrus all rights reserved
 * @license http://geometrus.com/license
 * @version $Id$  (cvs keyword)
 * @link (where the file is placed)
 * @author Fulgencio Sanmartin &lt;f@geometrus.com&gt;
 * @since File available since Release 1.5.0
 *
 * Audit:
 * 23/01/2009 [fulgen] created
 * 25/01/2009 [other]  added some functionality
 * 26/02/2009 [fulgen] solved bug #3341
 */
</pre>
<h4>class</h4>
<p>Apart from previous tags (see file), each class adds and is preceded of...</p>
<pre class="brush: php; title: ; notranslate">
 * @package sample
 * @subpackage classes
</pre>
<h4>function, method</h4>
<p>Apart from previous tags (see file), each function or method adds and is preceded of...</p>
<pre class="brush: php; title: ; notranslate">
 * @param string $param1 name to declare
 * @param string $param2 value of the name
 * @return integer
</pre>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;title=php%20coding%20standards&amp;bodytext=Why%20coding%20standards%3F%20In%20big%20projects%2C%20in%20any%20project%2C%20they%27re%20essential%3A%20understandeable%2C%20much%20easier%2C%20solid%20code.%20Perfect%2C%20mandatory%20for%20a%20team.%20The%20objective%20is%20to%20have%20all%20decisions%20documented%2C%20choices%20and%20standards%20that%20I%20will%20stick%20on%20when%20deve" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;title=php%20coding%20standards" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;title=php%20coding%20standards&amp;notes=Why%20coding%20standards%3F%20In%20big%20projects%2C%20in%20any%20project%2C%20they%27re%20essential%3A%20understandeable%2C%20much%20easier%2C%20solid%20code.%20Perfect%2C%20mandatory%20for%20a%20team.%20The%20objective%20is%20to%20have%20all%20decisions%20documented%2C%20choices%20and%20standards%20that%20I%20will%20stick%20on%20when%20deve" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;t=php%20coding%20standards" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;submitHeadline=php%20coding%20standards&amp;submitSummary=Why%20coding%20standards%3F%20In%20big%20projects%2C%20in%20any%20project%2C%20they%27re%20essential%3A%20understandeable%2C%20much%20easier%2C%20solid%20code.%20Perfect%2C%20mandatory%20for%20a%20team.%20The%20objective%20is%20to%20have%20all%20decisions%20documented%2C%20choices%20and%20standards%20that%20I%20will%20stick%20on%20when%20deve&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=php%20coding%20standards%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;title=php%20coding%20standards&amp;annotation=Why%20coding%20standards%3F%20In%20big%20projects%2C%20in%20any%20project%2C%20they%27re%20essential%3A%20understandeable%2C%20much%20easier%2C%20solid%20code.%20Perfect%2C%20mandatory%20for%20a%20team.%20The%20objective%20is%20to%20have%20all%20decisions%20documented%2C%20choices%20and%20standards%20that%20I%20will%20stick%20on%20when%20deve" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=php%20coding%20standards&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;title=php%20coding%20standards&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F&amp;title=php%20coding%20standards&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=Why%20coding%20standards%3F%20In%20big%20projects%2C%20in%20any%20project%2C%20they%27re%20essential%3A%20understandeable%2C%20much%20easier%2C%20solid%20code.%20Perfect%2C%20mandatory%20for%20a%20team.%20The%20objective%20is%20to%20have%20all%20decisions%20documented%2C%20choices%20and%20standards%20that%20I%20will%20stick%20on%20when%20deve" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F07%2Fphp-coding-standards%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=Ef6QSiFzlvk:Z3bGdvEdSjk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=Ef6QSiFzlvk:Z3bGdvEdSjk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=Ef6QSiFzlvk:Z3bGdvEdSjk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=Ef6QSiFzlvk:Z3bGdvEdSjk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=Ef6QSiFzlvk:Z3bGdvEdSjk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=Ef6QSiFzlvk:Z3bGdvEdSjk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=Ef6QSiFzlvk:Z3bGdvEdSjk:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=Ef6QSiFzlvk:Z3bGdvEdSjk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=Ef6QSiFzlvk:Z3bGdvEdSjk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/Ef6QSiFzlvk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/07/php-coding-standards/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/07/php-coding-standards/</feedburner:origLink></item>
		<item>
		<title>visualization methods</title>
		<link>http://feedproxy.google.com/~r/Geometrus/~3/jiJOgXkqY4Y/</link>
		<comments>http://geometrus.com/wp/2010/06/visualization-methods/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 18:31:28 +0000</pubDate>
		<dc:creator>fulgen</dc:creator>
				<category><![CDATA[asides]]></category>

		<guid isPermaLink="false">http://geometrus.com/wp/?p=321</guid>
		<description><![CDATA[a periodic table of visualization methods: http://www.visual-literacy.org/periodic_table/periodic_table.html share this on...]]></description>
			<content:encoded><![CDATA[<p>a periodic table of visualization methods: <a rel="nofollow" target="_blank" href="http://www.visual-literacy.org/periodic_table/periodic_table.html">http://www.visual-literacy.org/periodic_table/periodic_table.html</a></p>
share this on...<a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/printfriendly.png" class="sociable-img sociable-hovers" title="Print" alt="Print" /></a><a rel="nofollow"   href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;title=visualization%20methods&amp;bodytext=a%20periodic%20table%20of%20visualization%20methods%3A%20http%3A%2F%2Fwww.visual-literacy.org%2Fperiodic_table%2Fperiodic_table.html" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a><a rel="nofollow"   href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;title=visualization%20methods" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a><a rel="nofollow"   href="http://delicious.com/post?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;title=visualization%20methods&amp;notes=a%20periodic%20table%20of%20visualization%20methods%3A%20http%3A%2F%2Fwww.visual-literacy.org%2Fperiodic_table%2Fperiodic_table.html" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a><a rel="nofollow"   href="http://www.facebook.com/share.php?u=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;t=visualization%20methods" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a><a rel="nofollow"   href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;submitHeadline=visualization%20methods&amp;submitSummary=a%20periodic%20table%20of%20visualization%20methods%3A%20http%3A%2F%2Fwww.visual-literacy.org%2Fperiodic_table%2Fperiodic_table.html&amp;submitCategory=science&amp;submitAssetType=text" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png" class="sociable-img sociable-hovers" title="Yahoo! Buzz" alt="Yahoo! Buzz" /></a><a rel="nofollow"   href="http://twitter.com/home?status=visualization%20methods%20-%20http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a><a rel="nofollow"   href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;title=visualization%20methods&amp;annotation=a%20periodic%20table%20of%20visualization%20methods%3A%20http%3A%2F%2Fwww.visual-literacy.org%2Fperiodic_table%2Fperiodic_table.html" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a><a rel="nofollow"   href="mailto:?subject=visualization%20methods&amp;body=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a><a rel="nofollow"   href="http://www.google.com/reader/link?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;title=visualization%20methods&amp;srcURL=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;srcTitle=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/googlebuzz.png" class="sociable-img sociable-hovers" title="Google Buzz" alt="Google Buzz" /></a><a rel="nofollow"   href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F&amp;title=visualization%20methods&amp;source=geometrus+where+mediawiki%2C+gis%2C+php+and+mysql+meet&amp;summary=a%20periodic%20table%20of%20visualization%20methods%3A%20http%3A%2F%2Fwww.visual-literacy.org%2Fperiodic_table%2Fperiodic_table.html" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a><a rel="nofollow"   href="http://meneame.net/submit.php?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/meneame.png" class="sociable-img sociable-hovers" title="Meneame" alt="Meneame" /></a><a rel="nofollow"   href="http://www.printfriendly.com/print/new?url=http%3A%2F%2Fgeometrus.com%2Fwp%2F2010%2F06%2Fvisualization-methods%2F" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/pdf.png" class="sociable-img sociable-hovers" title="PDF" alt="PDF" /></a><a rel="nofollow"   href="http://geometrus.com/wp/feed/" ><img src="http://geometrus.com/wp/wp-content/plugins/sociable-30/images/default/16/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a><br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Geometrus?a=jiJOgXkqY4Y:YzlzZLCnFlA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=jiJOgXkqY4Y:YzlzZLCnFlA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=jiJOgXkqY4Y:YzlzZLCnFlA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=jiJOgXkqY4Y:YzlzZLCnFlA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=jiJOgXkqY4Y:YzlzZLCnFlA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=jiJOgXkqY4Y:YzlzZLCnFlA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=jiJOgXkqY4Y:YzlzZLCnFlA:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Geometrus?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Geometrus?a=jiJOgXkqY4Y:YzlzZLCnFlA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Geometrus?i=jiJOgXkqY4Y:YzlzZLCnFlA:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Geometrus/~4/jiJOgXkqY4Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://geometrus.com/wp/2010/06/visualization-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	<feedburner:origLink>http://geometrus.com/wp/2010/06/visualization-methods/</feedburner:origLink></item>
	</channel>
</rss>

