<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Digital Divide &#187; Technology</title>
	<atom:link href="http://www.simonecampora.com/blog/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simonecampora.com/blog</link>
	<description>Simone Campora&#039;s Blog: about Data Analtsis, GIS, Mobile Apps and more...</description>
	<lastBuildDate>Fri, 05 Aug 2011 07:56:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ST-Toolkit presentation for AGILE 2011 Conference</title>
		<link>http://www.simonecampora.com/blog/2011/05/20/st-toolkit-presentation-for-agile-2011-conference/</link>
		<comments>http://www.simonecampora.com/blog/2011/05/20/st-toolkit-presentation-for-agile-2011-conference/#comments</comments>
		<pubDate>Fri, 20 May 2011 14:56:08 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Geography]]></category>
		<category><![CDATA[Sciences]]></category>
		<category><![CDATA[Sciencie]]></category>
		<category><![CDATA[Technologies]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=347</guid>
		<description><![CDATA[here it is the published presentation of ST-Toolkit proof of concept library for Spatio Temporal data warehousing:
 ST-Toolkit, a Framework for Trajectory Data Warehousing 
 View more presentations from Simone Campora 

]]></description>
			<content:encoded><![CDATA[<p>here it is the published presentation of ST-Toolkit proof of concept library for Spatio Temporal data warehousing:</p>
<div style="width:425px" id="__ss_7770267"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/camporasimone/sttoolkit-a-framework-for-trajectory-data-warehousing" title="ST-Toolkit, a Framework for Trajectory Data Warehousing" target="_blank">ST-Toolkit, a Framework for Trajectory Data Warehousing</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/7770267" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/camporasimone" target="_blank">Simone Campora</a> </div>
</p></div>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;linkname=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2011%2F05%2F20%2Fst-toolkit-presentation-for-agile-2011-conference%2F&amp;title=ST-Toolkit%20presentation%20for%20AGILE%202011%20Conference" id="wpa2a_2">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2011/05/20/st-toolkit-presentation-for-agile-2011-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What would happen if the earth stopped spinning?</title>
		<link>http://www.simonecampora.com/blog/2010/08/05/what-would-happen-if-the-earth-stopped-spinning/</link>
		<comments>http://www.simonecampora.com/blog/2010/08/05/what-would-happen-if-the-earth-stopped-spinning/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 11:25:52 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[Geography]]></category>
		<category><![CDATA[Sciences]]></category>
		<category><![CDATA[Sciencie]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=316</guid>
		<description><![CDATA[
If the earth stood still, the oceans would gradually migrate toward the  poles and cause land in the equatorial region to emerge. This would  eventually result in a huge equatorial megacontinent and two large polar  oceans. The line that delineates the areas that hydrologically  contribute to one or the other ocean [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://www.esri.com/news/arcuser/0610/graphics/nospin_10-lg.jpg" alt="The resulting world" width="470" height="233" /></p>
<p>If the earth stood still, the oceans would gradually migrate toward the  poles and cause land in the equatorial region to emerge. This would  eventually result in a huge equatorial megacontinent and two large polar  oceans. The line that delineates the areas that hydrologically  contribute to one or the other ocean would follow the equator if the  earth was a perfect ellipsoid. However, due to the significant relief of  both the continents and the ocean floor, the hypothetical global divide  between the areas that hydrologically contribute to one or another  ocean deviates from the equator significantly. Analogous to the  well-known U.S. Continental Divide, this would be the border separating  two giant hemispherical watersheds of the new circumpolar oceans.  Interestingly, the highest point on this global divide would not be the  highest altitude on the entire globe. The highest elevation of the  global divide in the Colombian Andes would be about 12,280 meters,  whereas the altitudes of the famous equatorial volcanoes of Chimborazo  (Ecuador) and Kilimanjaro (Tanzania) would be 13,615 and 12,786 meters,  respectively. Both volcanoes happen not to be located on the global  divide line. The lowest point on the new global dividing line, with an  elevation of 2,760 meters, would be situated southwest of Kiribati  Island in the western Pacific.</p>
<p>(<a href="http://www.esri.com/news/arcuser/0610/nospin.html">src Witold Fraczek, Esri</a>)</p>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;linkname=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F05%2Fwhat-would-happen-if-the-earth-stopped-spinning%2F&amp;title=What%20would%20happen%20if%20the%20earth%20stopped%20spinning%3F" id="wpa2a_4">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2010/08/05/what-would-happen-if-the-earth-stopped-spinning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Beats iPhone in 2010 Q2 !</title>
		<link>http://www.simonecampora.com/blog/2010/08/04/android-beats-iphone-in-2010-q2/</link>
		<comments>http://www.simonecampora.com/blog/2010/08/04/android-beats-iphone-in-2010-q2/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 11:08:37 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Smartphones]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[new york times]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=302</guid>
		<description><![CDATA[


The  Nielsen Company Graphics from the Nielsen  report show the market share of smartphone operating systems. By the end of 2011, there could be more smartphones in the United  States than the less advanced  feature phones, according to a report  released Monday by the Nielsen Company, a market trends monitor.
The [...]]]></description>
			<content:encoded><![CDATA[<div>
<p style="text-align: center;"><img src="http://graphics8.nytimes.com/images/2010/08/02/technology/bits-android/bits-android-custom1.jpg" alt="The Nielsen Company smartphone graphics" /></p>
<div style="text-align: center;"><img src="http://graphics8.nytimes.com/images/2010/08/02/technology/bits-android/bits-android-custom2.jpg" alt="The Nielsen Company smartphone graphics" /></div>
<div>The  Nielsen Company Graphics from the Nielsen  report show the market share of smartphone operating systems. By the end of 2011, there could be more smartphones in the United  States than the less advanced  feature phones, according to a <a href="http://blog.nielsen.com/nielsenwire/online_mobile/android-soars-but-iphone-still-most-desired-as-smartphones-grab-25-of-u-s-mobile-market/">report  released</a> Monday by the Nielsen Company, a market trends monitor.</div>
<p>The report also notes that the Google Android platform continues to  show rapid growth and over the past six months has edged past the Apple  iPhone platform with new subscribers. But even with the latest spike, the iPhone still remains the  smartphone that is most coveted by consumers.</p>
<p>(<a href="http://bits.blogs.nytimes.com/2010/08/02/android-passes-iphone-for-new-subscribers/?ref=technology">src www.nytimes.com</a>)</p>
</div>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;linkname=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F08%2F04%2Fandroid-beats-iphone-in-2010-q2%2F&amp;title=Android%20Beats%20iPhone%20in%202010%20Q2%20%21" id="wpa2a_6">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2010/08/04/android-beats-iphone-in-2010-q2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>About Spatial Representativeness on Historical Illustrations</title>
		<link>http://www.simonecampora.com/blog/2010/07/13/about-spatial-representativeness-on-historical-illustrations/</link>
		<comments>http://www.simonecampora.com/blog/2010/07/13/about-spatial-representativeness-on-historical-illustrations/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 10:12:40 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Archeology]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Technologies]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=283</guid>
		<description><![CDATA[
With the development of cartography, the history of landscapes has taken more and more importance to delineate the development of social settlements. As cited from [1] the illustration, let us take the famous depiction of Napoleon’s march on Moscow published by Charles Joseph Minard in 1861 ( a detailed description can be found in Tufte [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.simonecampora.com/blog/wp-content/uploads/2010/07/napoleon.png"><img class="aligncenter size-full wp-image-285" title="napoleon" src="http://www.simonecampora.com/blog/wp-content/uploads/2010/07/napoleon.png" alt="" width="439" height="262" /></a></p>
<p style="text-align: justify;">With the development of cartography, the history of landscapes has taken more and more importance to delineate the development of social settlements. As cited from [<a href="http://scholar.google.com/scholar?q=%22Basic+Concepts+of+Movement+Data.%22">1</a>] the illustration, let us take the famous depiction of Napoleon’s march on Moscow published by Charles Joseph Minard in 1861 ( a detailed description can be found in Tufte ). The author engages the readers in the exploration of the fate of Napoleon’s army in the Russian campaign of 1812-1813. Beginning at the Polish-Russian border, the thick band shows the size of the army at each position. The path of Napoleon’s retreat from Moscow in the cold winter is depicted by the dark lower band, which is tied to temperature and time scales. Tufte identified six separate variables that were shown within Minard’s drawing. First, the line width continuously marked the size of the army. Second and third, the line itself showed the latitude and longitude of the army as it moved. Fourth, the lines themselves showed the direction that the army was travelling, both in advance and retreat. Fifth, the location of the army with respect to certain dates was marked. Finally, the temperature along the path of retreat was displayed. It can also be noted that, despite of the schematic character of the drawing with its rudimentary cartography, Minard depicted some features of the underlying territory (specifically, rivers and towns) he deemed essential for the understanding of the story.</p>
<p style="text-align: justify;">(<a href="http://scholar.google.com/scholar?q=%22Basic+Concepts+of+Movement+Data.%22">src Adrienko <em>et al.</em></a>)</p>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;linkname=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F13%2Fabout-spatial-representativeness-on-historical-illustrations%2F&amp;title=About%20Spatial%20Representativeness%20on%20Historical%20Illustrations" id="wpa2a_8">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2010/07/13/about-spatial-representativeness-on-historical-illustrations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to efficiently extract and load Tables in Oracle with sqlplus, sqlldr</title>
		<link>http://www.simonecampora.com/blog/2010/07/09/how-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix/</link>
		<comments>http://www.simonecampora.com/blog/2010/07/09/how-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 07:56:18 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[named pipes]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Loader]]></category>
		<category><![CDATA[sqlplus]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=202</guid>
		<description><![CDATA[
Today I&#8217;m posting another technical hint for those who might want to extract huge dataset and have to cope with limited disk space issues. SQL Loader is a powerful Oracle tool for bulk loading, and so far the fastest on Oracle.
A major issue is surely the disk space that needs to be occupied while temporarly [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://nadatest.org/images/SunOracle.png" alt="SUN Oracle" width="304" height="207" /></p>
<p style="text-align: justify;">Today I&#8217;m posting another technical hint for those who might want to extract huge dataset and have to cope with limited disk space issues. SQL Loader is a powerful Oracle tool for bulk loading, and so far the fastest on Oracle.<br />
A major issue is surely the disk space that needs to be occupied while temporarly storing the loading data on local disks. This example will help you overcoming this issue by dumping the data direct on zip files and allowing SQL Loader to read directly from zipped files.</p>
<p>1. Prepare SQL select statement: this is the content inside the  select.sql script</p>
<pre class="brush: sql; collapse: false; light: false; title: ; toolbar: true; notranslate">
set pagesize 0
set head off
set feed off
set line 200

select
col1      || '|' ||
col2      || '|' ||
coln
from
SCHEMA.TABLENAME
;
exit;
</pre>
<p>2. Extract the dataset (for UNIX systems)</p>
<pre class="brush: bash; collapse: false; light: false; title: ; toolbar: true; notranslate">
user@machine&gt; mkfifo to-zip
user@machine&gt; gzip -9 -c &lt; to-zip &gt; dataset.dat.gz
user@machine&gt; sqlplus -s username/password@service @select.sql &gt; to-zip
</pre>
<p>3. Create the SQLLDR control file (control.ctl file)</p>
<pre class="brush: sql; collapse: false; light: false; title: ; toolbar: true; notranslate">
LOAD DATA
APPEND
INTO TABLE SCHEMA.TABLENAME
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(
COL1
,COL2
,COLN
)
</pre>
<p>4. Load the dataset</p>
<pre class="brush: bash; collapse: false; light: false; title: ; toolbar: true; notranslate">
user@machine&gt; mkfifo unzip
user@machine&gt; zcat dataset.dat.gz &gt; unzip
user@machine&gt; sqlldr userid=$username/$password@$service control=control.ctl log=results.log bad=results.bad discard=results.dsc data=unzip direct=y errors=0
</pre>
<p>And that&#8217;s it! please remember that a good behavior will be always to truncate the table first (if you need to replace the data) and force the rebuild of the table related indexes at the end of the process.</p>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;linkname=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2010%2F07%2F09%2Fhow-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix%2F&amp;title=How%20to%20efficiently%20extract%20and%20load%20Tables%20in%20Oracle%20with%20sqlplus%2C%20sqlldr" id="wpa2a_10">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2010/07/09/how-to-extract-and-load-a-whole-table-in-oracle-using-sqlplus-sqlldr-named-pipes-and-zipped-dumps-on-unix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading .OV2 TomTom POI Files using Java or C#</title>
		<link>http://www.simonecampora.com/blog/2009/12/31/reading-ov2-tomtom-poi-files-using-java/</link>
		<comments>http://www.simonecampora.com/blog/2009/12/31/reading-ov2-tomtom-poi-files-using-java/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 10:20:35 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[free sofware]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OV2]]></category>
		<category><![CDATA[POI]]></category>
		<category><![CDATA[TomTom One]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=159</guid>
		<description><![CDATA[
I&#8217;m posting today some source code about the famous TomTom One .OV2 file formats. These files are the one used by TomTom to store Point of Interest information within their navigation systems. However such format is proprietary, the data specs can be found in the TomTom website (see this PDF at section 2.4). I wrote [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecampora.com/blog/wp-content/uploads/2009/12/tom-tom-one.png"><img class="aligncenter size-thumbnail wp-image-171" title="tom-tom-one" src="http://www.simonecampora.com/blog/wp-content/uploads/2009/12/tom-tom-one-150x150.png" alt="" width="150" height="150" /></a></p>
<p style="text-align: justify;">I&#8217;m posting today some source code about the famous TomTom One .OV2 file formats. These files are the one used by TomTom to store Point of Interest information within their navigation systems. However such format is proprietary, the data specs can be found in the TomTom website (<a href="http://www.tomtom.com/support/ce/downloads/ttnavsdk_manual.pdf">see this PDF</a> at section 2.4). I wrote down a simple procedure that gathers record by record only the simple POI records. Actually the OV2 format is a little bit more complicated than a simple list of POIs and it can be subjected to changes and version incompatibilities. I tested it with POIs taken from my TomTom ONE XL and ti worked great, however if the OV2 files contains proprietary or special record types (not specified in TomTom data sheets) these procedures will simply stop since it is not possible for this format to distinguish between a corrupted file or non standard encoding.</p>
<p style="text-align: justify;">I hope you&#8217;ll find it interesting.</p>
<p style="text-align: justify;">Java version:</p>
<pre class="brush: java; light: false; title: ; toolbar: true; notranslate">
package readers;

import java.io.FileInputStream;
import java.io.IOException;

public class OV2RecordReader {

	public static String[] readOV2Record(FileInputStream inputStream){
		String[] record = null;
		int b = -1;
		try{
			if ((b = inputStream.read())&gt; -1) {
				// if it is a simple POI record
				if (b == 2) {
					record = new String[3];
		    	    long total = readLong(inputStream);

		    	    double longitude = (double) readLong(inputStream) / 100000.0;
		    	    double latitude = (double) readLong(inputStream) / 100000.0;

		    	    byte[] r = new byte[(int) total - 13];
		    	    inputStream.read(r);

		    	    record[0] = new String(r);
		    	    record[0] = record[0].substring(0,record[0].length()-1);
		    	    record[1] = Double.toString(latitude);
		    	    record[2] = Double.toString(longitude);
		    	}
				//if it is a deleted record
				else if(b == 0){
					byte[] r = new byte[9];
		    	    inputStream.read(r);
				}
				//if it is a skipper record
				else if(b == 1){
					byte[] r = new byte[20];
		    	    inputStream.read(r);
				}
				else{
					throw new IOException(&quot;wrong record type&quot;);
				}
			}
			else{
				return null;
			}
		}
		catch(IOException e){
			e.printStackTrace();
		}
		return record;
	}

	private static long readLong(FileInputStream is){
		long res = 0;
		try{
			res = is.read();
			res += is.read() &lt;&lt;8;
			res += is.read() &lt;&lt;16;
			res += is.read() &lt;&lt;24;
		}
		catch(IOException e){
			e.printStackTrace();
		}
		return res;
	}
}
</pre>
<p>C# Version</p>
<pre class="brush: csharp; light: false; title: ; toolbar: true; notranslate">

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace OV2Reader
{
 class Program
 {
 static void Main(string[] args)
 {
 string filename = @&quot;C:\test.ov2&quot;;
 FileStream infile = new FileStream(filename, FileMode.Open, FileAccess.Read);

 while (infile.Length != infile.Position)
 {
 string[] data = readOV2Record(infile);
 if (data != null)
 {
 for (int i = 0; i &lt; data.Length; i++)
 {
 Console.WriteLine(data[i]);
 }
 }
 }

 Console.WriteLine(&quot;exiting....&quot;);
 Console.ReadKey();
 }

 static string[] readOV2Record(FileStream inputStream)
 {
 String[] record = null;
 int b = -1;

 if ((b = inputStream.ReadByte()) &gt; -1)
 {
 // if it is a simple POI record
 if (b == 2)
 {

 long total = readLong(inputStream);

 double longitude = (double)readLong(inputStream) / 100000.0;
 double latitude = (double)readLong(inputStream) / 100000.0;

 byte[] r = new byte[(int)total - 13];
 inputStream.Read(r, 0, (int)total - 13);

 record = new String[3];
 string s = System.Text.ASCIIEncoding.ASCII.GetString(r);
 record[0] = s;
 record[0] = record[0].Substring(0, record[0].Length - 1);
 record[1] = latitude.ToString();
 record[2] = longitude.ToString();
 }
 //if it is a deleted record
 else if (b == 0)
 {
 byte[] r = new byte[9];
 inputStream.Read(r, 0, 9);
 }
 //if it is a skipper record
 else if (b == 1)
 {
 byte[] r = new byte[20];
 inputStream.Read(r, 0, 20);
 }
 else
 {
 //
 return null;
 }
 }
 else
 {
 return null;
 }

 return record;
 }

 private static long readLong(FileStream fis)
 {
 long res = 0;

 res = fis.ReadByte();
 res += fis.ReadByte() &lt;&lt; 8;
 res += fis.ReadByte() &lt;&lt; 16;
 res += fis.ReadByte() &lt;&lt; 24;
 return res;
 }
 }
}
</pre>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;linkname=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F12%2F31%2Freading-ov2-tomtom-poi-files-using-java%2F&amp;title=Reading%20.OV2%20TomTom%20POI%20Files%20using%20Java%20or%20C%23" id="wpa2a_12">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2009/12/31/reading-ov2-tomtom-poi-files-using-java/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>GeoMondrian Example</title>
		<link>http://www.simonecampora.com/blog/2009/11/18/geomondrian-example/</link>
		<comments>http://www.simonecampora.com/blog/2009/11/18/geomondrian-example/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 11:12:45 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[GeoMondrian]]></category>
		<category><![CDATA[GeoMondrian Example]]></category>
		<category><![CDATA[Mondrian OLAP]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[SOLAP]]></category>
		<category><![CDATA[spatial database]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=153</guid>
		<description><![CDATA[
As soon as I&#8217;ve started digging into OLAP Architectures I realized how complicated things might become whenever looking for extra features. Most of the commercial OLAP solutions are providing &#8220;classic&#8221; OLAP features for data warehousing. It means that only simple numeric, strings and dates would be supported. Spatial Data Warehouses  architectures instead, are still in [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://www.spatialytics.org/wp-content/themes/republica/images/logo.png" alt="Spartialitics.org" width="300" height="60" /></p>
<p style="text-align: justify;">As soon as I&#8217;ve started digging into OLAP Architectures I realized how complicated things might become whenever looking for extra features. Most of the commercial OLAP solutions are providing &#8220;classic&#8221; OLAP features for data warehousing. It means that only simple numeric, strings and dates would be supported. Spatial Data Warehouses  architectures instead, are still in their infancy and there exists no commercial product that is actually providing such SOLAP functionalities. There exists several academic proposals instead which can provide a good overview on the features that can be supported by SOLAP Servers.</p>
<p style="text-align: justify;">One of these acedemic prototypes is <a href="http://www.spatialytics.org/projects/geomondrian/">Geo Mondrian</a>.</p>
<p style="text-align: justify;">GeoMondrian is a spatially-enabled version of Pentaho Analysis Services (<a onclick="javascript:pageTracker._trackPageview('/outbound/article/mondrian.pentaho.org');" href="http://mondrian.pentaho.org/">Mondrian</a>). It has been released under the <a onclick="javascript:pageTracker._trackPageview('/outbound/article/www.opensource.org');" href="http://www.opensource.org/licenses/eclipse-1.0.php">EPL</a>. GeoMondrian is the first implementation of a true SOLAP server. It provides a consistent integration of spatial objects into the OLAP data cube structure, instead of fetching them from a separate spatial database, web service or GIS file. To make a simple analogy, GeoMondrian brings to the Mondrian OLAP server what PostGIS brings to the PostgreSQL database management system.</p>
<p style="text-align: justify;">Unfortunately the documentation and getting-started guides are missing right now&#8230; That&#8217;s why I&#8217;ve decided to publish a couple of advices to whom may decide to use GeoMondrian for  developing SOLAP applications. Here attached you can find an archive that contains all that you need to setup a sample SOLAP server with geographic data source. It is designed to be working on PostgreSQL+Postigs since it is the only spatial database to be supported right now.</p>
<p style="text-align: justify;">What you have to do in order to be able to use this unofficial build release of GeoMondrian is to load the .SQL script into your postgresql+postgis database and than run the Test application (be sure that the .XML schema definition is in the same parent directory, to have set up properly your JDBC connection and have included the libraries that are present in the &#8220;lib&#8221; folder).</p>
<p style="text-align: justify;">I hope that it will help!</p>
<p style="text-align: center;"><a href="http://www.simonecampora.com/public/files/geomondrian-example.zip"><img class="aligncenter size-full wp-image-156" title="zip-icon1" src="http://www.simonecampora.com/blog/wp-content/uploads/2009/11/zip-icon1.jpg" alt="zip-icon1" width="73" height="85" /></a></p>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;linkname=GeoMondrian%20Example" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F11%2F18%2Fgeomondrian-example%2F&amp;title=GeoMondrian%20Example" id="wpa2a_14">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2009/11/18/geomondrian-example/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Supported Spatial Data Formats</title>
		<link>http://www.simonecampora.com/blog/2009/10/15/supported-spatial-data-formats/</link>
		<comments>http://www.simonecampora.com/blog/2009/10/15/supported-spatial-data-formats/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 12:14:17 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[data formats]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[fme]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=142</guid>
		<description><![CDATA[
GIS People often have to fight agains data conversions. The constellation of Desktop GIS suites make our life harder and harder while approaching to ETL processes. A relevant issue in ETL processes is the so called &#8220;data formats discovery&#8221;. Finding information about which software is supporting which spatial data type can turn a simple routing [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.safe.com/products/desktop/formats/index.php"><img class="aligncenter size-full wp-image-143" title="crystal_clear_action_db_status" src="http://www.simonecampora.com/blog/wp-content/uploads/2009/10/crystal_clear_action_db_status.png" alt="crystal_clear_action_db_status" width="128" height="128" /></a></p>
<p style="text-align: justify;">GIS People often have to fight agains data conversions. The constellation of Desktop GIS suites make our life harder and harder while approaching to ETL processes. A relevant issue in ETL processes is the so called &#8220;data formats discovery&#8221;. Finding information about which software is supporting which spatial data type can turn a simple routing task into a &#8220;mission impossible&#8221; waist of time.</p>
<p style="text-align: justify;">To overcome this inconvenient we can refer to the support guide of a famous ETL software: FME. FME is a complete spatial ETL solution that enables GIS Professionals to quickly translate, transform, integrate and distribute spatial data. In our case it simplifies our life by means of the &#8220;Supported Formats&#8221; guide.</p>
<p style="text-align: justify;">Visiting this link [<a href="http://www.safe.com/products/desktop/formats/index.php">WWW</a>] you may find a list of supported types from this software (quite a huge list!), however by clicking on each single data types you will be able to access to PDF version data sheets of each data source, complete of description, supported types, versions, and lot more.</p>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;linkname=Supported%20Spatial%20Data%20Formats" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F10%2F15%2Fsupported-spatial-data-formats%2F&amp;title=Supported%20Spatial%20Data%20Formats" id="wpa2a_16">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2009/10/15/supported-spatial-data-formats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosing the perfect Free Software License</title>
		<link>http://www.simonecampora.com/blog/2009/08/25/choosing-free-software-license/</link>
		<comments>http://www.simonecampora.com/blog/2009/08/25/choosing-free-software-license/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 08:59:53 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[free sofware]]></category>
		<category><![CDATA[licensing]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=117</guid>
		<description><![CDATA[
Every time you start developing a new piece of software that needs external libraries to be used and integrated, the licensing dilemma strikes again. If you are a developer of a well standardized software company you can have stronger restrictions on the licenses to be used (even a list of usable licenses), however when you [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://www.opensource.org/trademarks/opensource/OSI-approved-license.png" alt="open source license" width="130" height="179" /></p>
<p style="text-align: justify;">Every time you start developing a new piece of software that needs external libraries to be used and integrated, the licensing dilemma strikes again. If you are a developer of a well standardized software company you can have stronger restrictions on the licenses to be used (even a list of usable licenses), however when you have to start your software from scratch, or start a software &#8220;business idea&#8221;, it is important to know something more on what you can take and what you can reuse without breaking somebody&#8217;s heart. I would like to dedicate this &#8220;in progress&#8221; post to collect in one page a brief description of the major families or licenses that can be used while developing free software but with possible commercial purposes! I hope it will help and I warmly advise anybody that would suggest any further detail to post a comment and I will be glad to integrate my content with that!</p>
<p style="text-align: justify;">
<h2>Apache License 2.0</h2>
<ul>
<li>Free Software</li>
<li>OSI Compatible</li>
<li>Linking from code with a different license</li>
<li>no Copyleft</li>
<li>GPL v3 Compatible</li>
</ul>
<p style="text-align: justify;">software can be redistributed in any other license, but should be noticed that Apache software is included<br />
Two files that must be put at the top directory of redistributed software packages:</p>
<p>* LICENSE &#8211; a copy of the license itself.<br />
* NOTICE &#8211; A &#8220;notice&#8221; text document listing the names of licensed libraries used, together with their developers.</p>
<p>In every licensed file, any original copyright or patent notices in redistributed code must be preserved, and in every licensed file changed a notification must be added stating that changes have been made to that file.</p>
<p style="text-align: justify;">
<h2>Gnu LGPL License</h2>
<p style="text-align: justify;">
<ul>
<li>Free Software</li>
<li>OSI Compatible</li>
<li>Linking from code with a different license</li>
<li>Copyleft</li>
<li>GPL Compatible</li>
</ul>
<p style="text-align: justify;">an author may, through a copyleft licensing scheme, give every person who receives a copy of a work permission to reproduce, adapt or distribute the work as long as any resulting copies or adaptations are also bound by the same copyleft licensing scheme.</p>
<p>primarly used for software libraries; has copyleft restrictions. it is something in between GPL and BSD/APACHE like licenses.</p>
<p style="text-align: justify;">
<h2>BSD Licenses</h2>
<ul>
<li>Free Software</li>
<li>OSI Compatible</li>
<li>Linking from code with a different license</li>
<li>no Copyleft</li>
<li>GPL Compatible</li>
</ul>
<h2>Eclipse Public License</h2>
<ul>
<li>Free Software</li>
<li>OSI Compatible</li>
<li>Linking from code with a different license</li>
<li>Copyleft</li>
<li>no GPL  Compatible</li>
</ul>
<p style="text-align: justify;">is designed to be business friendly. allows developers to create their own licenses on the portion of the codes that are added.</p>
<h2 style="text-align: justify;">Academic Free License</h2>
<ul>
<li>Free Software</li>
<li>OSI Compatible</li>
<li>Linking from code with a different license</li>
<li>no Copyleft</li>
<li>GPL  Compatible unknown</li>
</ul>
<p style="text-align: justify;">considered redundant specifically to the Apache License 2.0</p>
<h2>MIT License</h2>
<p style="text-align: justify;">considered a duplicate of BSD-like licenses</p>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;linkname=Choosing%20the%20perfect%20Free%20Software%20License" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F08%2F25%2Fchoosing-free-software-license%2F&amp;title=Choosing%20the%20perfect%20Free%20Software%20License" id="wpa2a_18">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2009/08/25/choosing-free-software-license/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PostgreSQL Custom Types</title>
		<link>http://www.simonecampora.com/blog/2009/05/16/postgresql-custom-types/</link>
		<comments>http://www.simonecampora.com/blog/2009/05/16/postgresql-custom-types/#comments</comments>
		<pubDate>Sat, 16 May 2009 16:50:26 +0000</pubDate>
		<dc:creator>simonecampora</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database custom types]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.simonecampora.com/blog/?p=54</guid>
		<description><![CDATA[
In the last year I&#8217;ve spent six months digging into a PostgreSQL project. PostgreSQL is one of the most interesting and fast developed database management systems. However it is still a little bit behind the major commercial competitors, it is without any doubt, the most advanced OpenSource and Free DBMS. On the great features of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.simonecampora.com/blog/wp-content/uploads/2009/05/postgresql.png"><img class="aligncenter size-medium wp-image-56" title="postgresql" src="http://www.simonecampora.com/blog/wp-content/uploads/2009/05/postgresql-290x300.png" alt="postgresql" width="135" height="141" /></a></p>
<p style="text-align: justify;">In the last year I&#8217;ve spent six months digging into a PostgreSQL project. PostgreSQL is one of the most interesting and fast developed database management systems. However it is still a little bit behind the major commercial competitors, it is without any doubt, the most advanced OpenSource and Free DBMS. On the great features of PostgreSQL is the documentation of its architecture, that is maintained updated constantly by its vivid and active community. Although this community provides one of the best (the fastest that I&#8217;ve every experienced as a single user) developer on-line support system, at that time (and still now!) I had serious difficulties to find out information about on of the most used and useful coding extensions: custom types. Some of you may had to work with PostgreSQL extensions like PostGIS (the simplest and most effective spatial extension that integrates spatial information into PostgreSQL) and wanted to extend or to provide similar functionalities so easy to use and comfortable. I was mentioning the user-friendly constructors for spatial objects. Custom Types for defining spatial objects are defined in the SQL language like that</p>
<pre class="brush: sql; collapse: false; light: false; title: ; toolbar: true; notranslate">POINT('37','-97');</pre>
<p style="text-align: justify;">(for more information, take a look to <a href="http://www.bostongis.com/postgis_quickguide.bqg">this</a> link)</p>
<p style="text-align: justify;">This type of syntax is only possible (as far as I know) if the type is defined using a C function, and for instance compiled into a .so shared object library provided to PostgreSQL. C PostgreSQL custom types are defined by two functions that translate the low level description of the type into SQL usable constructors. Here it follows the code  to define constructors for a Currency type, and attached into <a href="http://www.simonecampora.com/blog/wp-content/uploads/2009/05/fcur.c">this file</a>, there is the source code for other operations like equals, greater and exchange rate calculation (the source of this piece of code is PostgreSQL C Reference Documentation).</p>
<p style="text-align: justify;">
<pre class="brush: cpp; light: false; title: ; toolbar: true; notranslate">/*
**  Name: fcur_in()
**
**        Converts an fcur value from external form
**	  to internal form.
*/

PG_FUNCTION_INFO_V1(fcur_in);

Datum fcur_in(PG_FUNCTION_ARGS)
{
    char  * src     = PG_GETARG_CSTRING(0);
    char  * workStr = (char *)palloc( strlen( src ));
    char  * units   = NULL;
    char  * name    = NULL;
    char  * xrate   = NULL;
    fcur  * result  = NULL;
    char  * endPtr  = NULL;

    strcpy( workStr, src );

    units = strtok( workStr, &quot;(&quot; );
    xrate = strtok( NULL, &quot;/)&quot; );
    name  = strtok( NULL, &quot;)&quot; );

    result = (fcur *)palloc( sizeof( fcur ));

    memset( result, 0x00, sizeof( fcur ));

    result-&amp;gt;fcur_units = strtod( units, &amp;amp;endPtr );

    if( xrate )
    {
	result-&amp;gt;fcur_xrate = strtod( xrate, &amp;amp;endPtr );
    }
    else
    {
	result-&amp;gt;fcur_xrate = 1.0;
    }

    if( name )
    {
	strncpy( result-&amp;gt;fcur_name,
		 name,
		 sizeof( result-&amp;gt;fcur_name ));
    }
    else
    {
	strncpy( result-&amp;gt;fcur_name,
		 unknownCurrencyName,
		 sizeof( result-&amp;gt;fcur_name ));
    }

    PG_RETURN_POINTER( result );
}

/*
**  Name: fcur_out()
**
**        Converts an fcur value from internal form
**	  to external form.
*/

PG_FUNCTION_INFO_V1(fcur_out);

Datum fcur_out(PG_FUNCTION_ARGS)
{
    fcur  * src  = (fcur *)PG_GETARG_POINTER( 0 );
    char  * result;
    char    work[16+1+sizeof(src-&amp;gt;fcur_name)+16];

    sprintf( work, &quot;%g(%g/%s)&quot;,
	     src-&amp;gt;fcur_units,
	     src-&amp;gt;fcur_xrate,
	     src-&amp;gt;fcur_name );

    result = (char *)palloc( strlen( work ) + 1 );

    strcpy( result, work );

    PG_RETURN_CSTRING( result );

}
</pre>
<p><a class="a2a_button_google_bookmarks" href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a><a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Digg" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_button_myspace" href="http://www.addtoany.com/add_to/myspace?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="MySpace" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/myspace.png" width="16" height="16" alt="MySpace"/></a><a class="a2a_button_hotmail" href="http://www.addtoany.com/add_to/hotmail?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Hotmail" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/live.png" width="16" height="16" alt="Hotmail"/></a><a class="a2a_button_msdn" href="http://www.addtoany.com/add_to/msdn?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="MSDN" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/msdn.png" width="16" height="16" alt="MSDN"/></a><a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a><a class="a2a_button_orkut" href="http://www.addtoany.com/add_to/orkut?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Orkut" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/orkut.png" width="16" height="16" alt="Orkut"/></a><a class="a2a_button_yahoo_bookmarks" href="http://www.addtoany.com/add_to/yahoo_bookmarks?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Yahoo Bookmarks" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/yahoo.png" width="16" height="16" alt="Yahoo Bookmarks"/></a><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;linkname=PostgreSQL%20Custom%20Types" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.simonecampora.com/blog/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.simonecampora.com%2Fblog%2F2009%2F05%2F16%2Fpostgresql-custom-types%2F&amp;title=PostgreSQL%20Custom%20Types" id="wpa2a_20">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecampora.com/blog/2009/05/16/postgresql-custom-types/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

