<?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>An Ingres Blog &#187; ingres</title>
	<atom:link href="http://blogs.planetingres.org/grant/category/ingres/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.planetingres.org/grant</link>
	<description>(Other blogs about Ingres are available...)</description>
	<lastBuildDate>Mon, 05 Jul 2010 12:29:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ingres VectorWise Webinars</title>
		<link>http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars</link>
		<comments>http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars#comments</comments>
		<pubDate>Mon, 05 Jul 2010 12:23:51 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>
		<category><![CDATA[vectorwise]]></category>
		<category><![CDATA[webcast]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=332</guid>
		<description><![CDATA[(Picked up from the forums). Ingres are broadcasting live webinars for Ingres VectorWise, starting this week. The first is entitled &#8216;Welcome to Ingres VectorWise&#8221; Join our Ingres System Engineers as they share a high-level overview of the Ingres VectorWise technology including a demonstration of the product. Find out more about this new feature and to [...]]]></description>
			<content:encoded><![CDATA[<p>(Picked up from <a href="http://community.ingres.com/forum/vectorwise-discussion/12286-ivw-webinar-series.html">the forums</a>).</p>
<p>Ingres are broadcasting live webinars for Ingres VectorWise, starting this week. The first is entitled &#8216;Welcome to Ingres VectorWise&#8221; </p>
<blockquote><p>Join our Ingres System Engineers as they share a high-level overview of the Ingres VectorWise technology including a demonstration of the product. Find out more about this new feature and to understand how to increase the performance of your analytic workloads using Ingres VectorWise with your existing hardware.
</p></blockquote>
<p>Duration will be approximately 40 mins.</p>
<p>Presenter: Joel Brunger<br />
Date: Friday, July 8, 2010<br />
Time: 10am ET / 2pm GMT / 3pm BST / 4pm CET<br />
Register &#8211; <a href="http://info.ingres.com/g/?BGGYOVT4OJ">http://info.ingres.com/g/?BGGYOVT4OJ</a></p>
<p>Presenter: Mary Schulte<br />
Date: Friday, July 8, 2010<br />
Time: 4pm PT / 11pm GMT / 9 am EST (July 9)<br />
Register &#8211; <a href="http://info.ingres.com/g/?PCGJ51KY29">http://info.ingres.com/g/?PCGJ51KY29</a></p>
<p>Presenter: Stephane Padique (Presentation will be in French/En français)<br />
Date: Vendredi, July 23, 2010<br />
Time: 1pm GMT / 2pm BST / 3pm CET<br />
Register &#8211; <a href="http://info.ingres.com/g/?UX1J8X7Y71">http://info.ingres.com/g/?UX1J8X7Y71</a></p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video" title="IUA VectorWise Demo Video">IUA VectorWise Demo Video</a></li>
<li><a href="http://blogs.planetingres.org/grant/302-pecl-ingres-2-2-2-released" title="PECL ingres-2.2.2 released">PECL ingres-2.2.2 released</a></li>
<li><a href="http://blogs.planetingres.org/grant/280-simplifying-an-openapi-trace-log" title="Simplifying an OpenAPI trace log">Simplifying an OpenAPI trace log</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=332&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F332-ingres-vectorwise-webinars&amp;linkname=Ingres%20VectorWise%20Webinars"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IUA VectorWise Demo Video</title>
		<link>http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video</link>
		<comments>http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video#comments</comments>
		<pubDate>Fri, 25 Jun 2010 11:44:36 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>
		<category><![CDATA[vectorwise]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[fosslc]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=308</guid>
		<description><![CDATA[Thanks to Andrew Ross and FOSSLC, the Ingres VectorWise demo from this year&#8217;s UK IUA conference can be seen below or via Vimeo.com (Flash is required). Related Posts Ingres VectorWise Webinars PECL ingres-2.2.2 released Simplifying an OpenAPI trace log]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://www.fosslc.org/drupal/blog/4">Andrew Ross</a> and <a href="http://www.fosslc.org/drupal/">FOSSLC</a>, the <a href="http://www.ingres.com/vectorwise/">Ingres VectorWise</a> demo from this year&#8217;s <a href="http://iua.org.uk/">UK IUA</a> conference can be seen below or via <a href="http://vimeo.com/12831282">Vimeo.com</a> (Flash is required).</p>
<p><center><object width="640" height="480" type="application/x-shockwave-flash" data="http://vimeo.com/moogaloop.swf?clip_id=12831282&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=&amp;color=&amp;fullscreen=1" ><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12831282&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=&amp;color=&amp;fullscreen=1" /></object></center></p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars" title="Ingres VectorWise Webinars">Ingres VectorWise Webinars</a></li>
<li><a href="http://blogs.planetingres.org/grant/302-pecl-ingres-2-2-2-released" title="PECL ingres-2.2.2 released">PECL ingres-2.2.2 released</a></li>
<li><a href="http://blogs.planetingres.org/grant/280-simplifying-an-openapi-trace-log" title="Simplifying an OpenAPI trace log">Simplifying an OpenAPI trace log</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=308&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F308-iua-vectorwise-demo-video&amp;linkname=IUA%20VectorWise%20Demo%20Video"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ingres 10.0 &#8211; &#8220;sql -history_recall&#8221; now enabled by default</title>
		<link>http://blogs.planetingres.org/grant/296-ingres-10-0-history_recall-now-enabled-by-default</link>
		<comments>http://blogs.planetingres.org/grant/296-ingres-10-0-history_recall-now-enabled-by-default#comments</comments>
		<pubDate>Fri, 30 Apr 2010 07:35:15 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>
		<category><![CDATA[ingres 10.0]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[terminal monitor]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=296</guid>
		<description><![CDATA[History what? For some time the Ingres terminal monitor has had the, slightly cryptic (to me at least), flag &#8220;-history_recall&#8221;. This flag allows you to use the cursor keys within a terminal monitor session to scroll through previous queries and edit them in-line. Users of Ingres on Windows have been able to do this by [...]]]></description>
			<content:encoded><![CDATA[<p><em>History what?</em></p>
<p>For some time the Ingres terminal monitor has had the, slightly cryptic (to me at least), flag &#8220;-history_recall&#8221;. This flag allows you to use the cursor keys within a terminal monitor session to scroll through previous queries and edit them in-line. Users of Ingres on Windows have been able to do this by default, without any special flags, by virtue of Microsoft Windows <a href="http://msdn.microsoft.com/en-us/library/ms682087(v=VS.85).aspx">Console API</a>. As of change <a href="http://bugs.ingres.com/changeset/2911">2911</a> this feature is now active by default on UNIX/Linux and should be part of Ingres 10.0 when it gets released.<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/290-ingres-10-0-escaping-from-the-ingres-terminal-monitor" title="Ingres 10.0 &#8211; Escaping from the Ingres terminal monitor">Ingres 10.0 &#8211; Escaping from the Ingres terminal monitor</a></li>
<li><a href="http://blogs.planetingres.org/grant/236-what-blob-tables-do-i-have" title="What BLOB tables do I have?">What BLOB tables do I have?</a></li>
<li><a href="http://blogs.planetingres.org/grant/88-logging-ingres-jdbc-connections-under-tomcat" title="Logging Ingres JDBC connections under tomcat">Logging Ingres JDBC connections under tomcat</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=296&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F296-ingres-10-0-history_recall-now-enabled-by-default&amp;linkname=Ingres%2010.0%20%26%238211%3B%20%26%238220%3Bsql%20-history_recall%26%238221%3B%20now%20enabled%20by%20default"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/296-ingres-10-0-history_recall-now-enabled-by-default/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ingres 10.0 &#8211; Escaping from the Ingres terminal monitor</title>
		<link>http://blogs.planetingres.org/grant/290-ingres-10-0-escaping-from-the-ingres-terminal-monitor</link>
		<comments>http://blogs.planetingres.org/grant/290-ingres-10-0-escaping-from-the-ingres-terminal-monitor#comments</comments>
		<pubDate>Thu, 29 Apr 2010 07:19:07 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[ingres 10.0]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[terminal monitor]]></category>
		<category><![CDATA[tm]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=290</guid>
		<description><![CDATA[For new users to Ingres quitting from the Ingres terminal monitor, tm or sql, just got easier. With change 2901 the terminal monitor has gone from this: $ sql iidbdb INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation Ingres Linux Version II 10.0.0 (int.lnx/2863)NPTL login Thu Apr 29 08:46:38 2010 continue * to: $ sql iidbdb [...]]]></description>
			<content:encoded><![CDATA[<p>For new users to Ingres quitting from the Ingres terminal monitor, tm or sql, just got easier. With change <a href="http://bugs.ingres.com/changeset/2901">2901</a> the terminal monitor has gone from this:</p>
<pre class="brush: plain;">$ sql iidbdb
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (int.lnx/2863)NPTL login
Thu Apr 29 08:46:38 2010

continue
*
</pre>
<p>to:</p>
<pre class="brush: plain;">$ sql iidbdb
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (int.lnx/2903)NPTL login
Thu Apr 29 09:16:40 2010
Enter \g to execute commands, &quot;help help\g&quot; for help, \q to quit

continue
*
</pre>
<p>No more ninja skills needed for executing a query or to escape from the terminal monitor.<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/296-ingres-10-0-history_recall-now-enabled-by-default" title="Ingres 10.0 &#8211; &#8220;sql -history_recall&#8221; now enabled by default">Ingres 10.0 &#8211; &#8220;sql -history_recall&#8221; now enabled by default</a></li>
<li><a href="http://blogs.planetingres.org/grant/236-what-blob-tables-do-i-have" title="What BLOB tables do I have?">What BLOB tables do I have?</a></li>
<li><a href="http://blogs.planetingres.org/grant/88-logging-ingres-jdbc-connections-under-tomcat" title="Logging Ingres JDBC connections under tomcat">Logging Ingres JDBC connections under tomcat</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=290&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F290-ingres-10-0-escaping-from-the-ingres-terminal-monitor&amp;linkname=Ingres%2010.0%20%26%238211%3B%20Escaping%20from%20the%20Ingres%20terminal%20monitor"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/290-ingres-10-0-escaping-from-the-ingres-terminal-monitor/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Simplifying an OpenAPI trace log</title>
		<link>http://blogs.planetingres.org/grant/280-simplifying-an-openapi-trace-log</link>
		<comments>http://blogs.planetingres.org/grant/280-simplifying-an-openapi-trace-log#comments</comments>
		<pubDate>Wed, 14 Apr 2010 09:09:12 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[openapi]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=280</guid>
		<description><![CDATA[Ingres&#8217;s OpenAPI C interface can be challenging at times especially when it comes to debugging or reading an API trace. For example, right now I&#8217;m trying to debug a problem in the PHP driver for Ingres. For some reason during the tear-down of the request the driver is unable to close a statement. Turning to [...]]]></description>
			<content:encoded><![CDATA[<p>Ingres&#8217;s OpenAPI C interface can be challenging at times especially when it comes to debugging or reading an <a href="http://docs.ingres.com/Ingres/9.3/OpenAPI%20User%20Guide/creatinganapplicationwithopenapi.htm#o1470">API trace</a>. For example, right now I&#8217;m trying to debug a problem in the <a href="http://pecl.php.net/ingres">PHP driver</a> for Ingres. For some reason during the tear-down of the request the driver is unable to close a statement. Turning to a level 5 API trace I get <a href='http://blogs.planetingres.org/grant/files/2010/04/api.log'>this</a>. Which, to be honest has information in there that I don&#8217;t exactly need. Specifically I&#8217;m not too interested in the calls to <a href="http://docs.ingres.com/Ingres/9.3/OpenAPI%20User%20Guide/IIapi_wait.htm">IIapi_wait()</a> <a href="#1">[1]</a> or the lower level <i>Dispatch()</i> functions. With this in mind using grep I can filter out this &#8220;chaff&#8221;, and produce a more concise log file:</p>
<pre class="brush: plain;">grep -v &amp;quot;IIapi_wait\|Dispatch&amp;quot; api.log</pre>
<p>Turning <a href='http://blogs.planetingres.org/grant/files/2010/04/api.log'>this</a> into:</p>
<pre class="brush: plain;">
!IIapi_initAPI: initializing API.
!IIapi_initialize: INGRES API initialized, envHndl = 090F9308
!IIapi_initialize: startup API
!IIapi_initialize: version = 6
!IIapi_initialize: INGRES API initialized, envHndl = 09078018
!IIapi_connect: connect to DBMS Server
!IIapi_connect: envHndl = 09078018, connHndl = 00000000, tranHndl= 00000000
!IIapi_connect: target = @server,tcp_ip,ii[user:secret]::dbname
!IIapi_thread(-1226205472): allocated local storage 091A5E78
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_setEnvParam: set environment parameter
!IIapi_setEnvParam: envHndl = 09078018
!IIapi_setEnvParam: paramID = 24.
!IIapi_autocommit: set autocommit state
!IIapi_autocommit: connHndl = 091A5960, tranHndl = 00000000
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_query: starting a query
!IIapi_query: connHndl = 091A5960, tranHndl = 091A69B8, queryType = 0
!IIapi_query: queryText = set session with description='hello'
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_close: closing a query
!IIapi_close: stmtHndl = 091A8070
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_query: starting a query
!IIapi_query: connHndl = 091A5960, tranHndl = 091A69B8, queryType = 0
!IIapi_query: queryText = set lockmode session where readlock=nolock
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_close: closing a query
!IIapi_close: stmtHndl = 091A6580
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_cancel: cancelling a query
!IIapi_cancel: invalid handle
!IIapi_appCallback: request completed, status = INVALID_HANDLE
!IIapi_close: closing a query
!IIapi_close: invalid statement handle
!IIapi_appCallback: request completed, status = INVALID_HANDLE
!IIapi_autocommit: set autocommit state
!IIapi_autocommit: connHndl = 091A5960, tranHndl = 091A69B8
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_disconnect: disconnecting a connection
!IIapi_disconnect: connHndl = 091A5960
!IIapi_appCallback: request completed, status = SUCCESS
!IIapi_releaseEnv: Release Environment
!IIapi_releaseEnv: envHndl = 09078018
!IIapi_terminate: shutdown API
!IIapi_releaseEnv: Release Environment
!IIapi_releaseEnv: envHndl = 090F9308
!IIapi_terminate: shutdown API
!IIapi_termAPI: shutting down API completely.
!IIapi_termAPI: API shutdown.
</pre>
<p>A lot simpler to read &#8211; Now I can see that a bad statement handle has been passed to <a href="http://docs.ingres.com/Ingres/9.3/OpenAPI%20User%20Guide/IIapi_cancel.htm">IIapi_cancel()</a> and <a href="http://docs.ingres.com/Ingres/9.3/OpenAPI%20User%20Guide/IIapi_close.htm">IIapi_close()</a>. Now I know what the problem is it&#8217;s time to find where the statement handle is coming from.</p>
<p><a name="1"></a>[1] It should be noted that you cannot always discount IIapi_wait() calls. A number of years ago I hit a weird timing issue due to a missing IIapi_wait() call.<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars" title="Ingres VectorWise Webinars">Ingres VectorWise Webinars</a></li>
<li><a href="http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video" title="IUA VectorWise Demo Video">IUA VectorWise Demo Video</a></li>
<li><a href="http://blogs.planetingres.org/grant/302-pecl-ingres-2-2-2-released" title="PECL ingres-2.2.2 released">PECL ingres-2.2.2 released</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=280&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F280-simplifying-an-openapi-trace-log&amp;linkname=Simplifying%20an%20OpenAPI%20trace%20log"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/280-simplifying-an-openapi-trace-log/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ingres and Apache on Redhat Enterprise Server</title>
		<link>http://blogs.planetingres.org/grant/253-ingres-and-apache-on-redhat-enterprise-server</link>
		<comments>http://blogs.planetingres.org/grant/253-ingres-and-apache-on-redhat-enterprise-server#comments</comments>
		<pubDate>Wed, 14 Apr 2010 07:22:12 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[drivers]]></category>
		<category><![CDATA[ingres]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=253</guid>
		<description><![CDATA[Introduction Getting web applications to connect to Ingres via Apache on UNIX/Linux can be quite fiddly. Here is a simple guide on the setup steps needed to allow the Ingres PHP, Python and Ruby drivers to work with Apache on RedHat Enterprise Linux, CentOS and Fedora Linux. I&#8217;ve also published articles on doing the same [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>Getting web applications to connect to Ingres via Apache on UNIX/Linux can be quite fiddly. Here is a simple guide on the setup steps needed to allow the Ingres PHP, Python and Ruby drivers to work with Apache on RedHat Enterprise Linux, CentOS and Fedora Linux. I&#8217;ve also published articles on doing the same for <a href="http://community.ingres.com/wiki/Ingres_with_Apache_on_Debian_and_Ubuntu">Debian/Ubunutu</a> and <a href="http://community.ingres.com/wiki/Ingres_with_Apache_on_SUSE_Linux">Novell SLES/OpenSUSE</a> in the Ingres <a href="http://community.ingres.com/wiki">Community Wiki</a>.</p>
<h2>Pre-requisites</h2>
<p>It is assumed that you have the following installed:</p>
<ul>
<li>Ingres 2006 or newer ( Ingres &gt;= 9.0.4 )</li>
<li>RedHat Enterprise Linux 5.4, CentOS 5.4 and Fedora Linux 11
<ul>
<li>These steps might apply to earlier releases as well</li>
</ul>
</li>
<li>Apache 2.2.8
<ul>
<li>The steps here apply to other releases of Apache from 1.3 onwards</li>
<li>mod_env &#8211; An Apache module which modifies the environment which is passed to CGI scripts and SSI pages</li>
</ul>
</li>
</ul>
<h2>Disabling SELinux</h2>
<p>As of writing this Ingres and SELinux do not interact very well. To use Ingres on an SELinux enabled system, SELinux needs to be placed in <i>permissive</i> or <i>disabled</i> modes. To determine the current state of SELinux run the following:</p>
<pre class="brush: bash;">
sestatus
</pre>
<p>sample output:</p>
<pre>$ sudo /usr/sbin/sestatus
SELinux status:                 disabled
</pre>
<p>If the status is <code>enforcing</code> then SELinux must be disabled using the command:</p>
<pre class="brush: bash;">
setenforce 0
# or to disable SELinux but log exceptions to policy to /var/log/secure
setenforce Permissive
</pre>
<p>This will only disable SELinux until the next reboot of the server. To make the change permanent edit <code>/etc/sysconfig/selinux</code>, changing <code>SELINUX</code> to <code>disabled</code> or <code>permissive</code>.</p>
<h2>Enabling Ingres for Apache</h2>
<p>Any user that connects to Ingres must be a known (defined) user. Specifically a user account must be created within Ingres using <code>CREATE USER ...</code>. In the case of web applications served by Apache, Tomcat or whatever, the server process owner is the user that Ingres will initially see. To determine the process owner for Apache execute the following:</p>
<pre class="brush: bash;">
ps -fe | grep httpd | grep -v grep
</pre>
<p>On my system I get the following:</p>
<pre>[grant@uksl-grant-rhel64 ~]$ ps -fe | grep httpd | grep -v grep
root      3331     1  0 Apr08 ?        00:00:02 /usr/sbin/httpd
apache   23356  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
apache   23357  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
apache   23358  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
apache   23359  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
apache   23360  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
apache   23361  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
apache   23362  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
apache   23363  3331  0 Apr11 ?        00:00:00 /usr/sbin/httpd
</pre>
<p>Which shows two user accounts for Apache. The <i>root</i> account can be ignored since it is a monitor/control process that starts up and shuts down servers as required. The processes run under the <i>apache</i> account will be used to connect to Ingres. </p>
<p>To add <i>apache</i> to Ingres run the following, as the <i>ingres</i> administrator:</p>
<pre>
sql iidbdb &lt;&lt;EOSQL
create user apache\g
commit\g
\q
EOSQL
</pre>
<p>You should see something similar to:</p>
<pre>
ingres@esva-suse:~&gt; sql iidbdb &lt;&lt;EOSQL
&gt; create user apache\g
&gt; commit\g
&gt; \q
&gt; EOSQL
INGRES TERMINAL MONITOR Copyright 2008 Ingres Corporation
Ingres Linux Version II 9.2.0 (a64.lnx/143)NPTL login
Tue Apr 13 23:33:18 2010

continue
* Executing . . .

continue
* Executing . . .

continue
* Ingres Version II 9.2.0 (a64.lnx/143)NPTL logout
Tue Apr 13 23:33:18 2010
</pre>
<p>Now the Ingres DBMS is setup for the Apache web server.</p>
<h2>Enabling Apache for Ingres</h2>
<ol>
<li>Edit, (as root), <code>/etc/sysconfig/httpd</code> to include the following:
<pre class="brush: bash;">
 II_SYSTEM=/opt/Ingres/IngresII
 LD_LIBRARY_PATH=/opt/Ingres/IngresII/ingres/lib:/opt/Ingres/IngresII/ingres/lib/lp32
 ODBCSYSINI=/opt/Ingres/IngresII/ingres/files
 export II_SYSTEM LD_LIBRARY_PATH ODBCSYSINI</pre>
<p><strong>Note</strong> &#8211; <code>ODBCSYSINI</code> is only needed for the Python driver or applications based on ODBC</li>
<li>Create a new config file (as root), <code>/etc/httpd/conf.d/ingres.conf</code>, adding the following:</li>
<pre class="brush: bash;">PassEnv II_SYSTEM LD_LIBRARY_PATH ODBCSYSINI</pre>
<li>Restart apache (as root):
<pre class="brush: bash;">service httpd restart</pre>
</li>
</ol>
<h2>Verifying the setup</h2>
<p>To see that the environment variables are visible the following code snippets can be executed through Apache through <a href="http://php.net/">PHP</a> and <a href="http://www.modpython.org/">mod_python</a>.</p>
<h3>PHP</h3>
<ul>
<li>Code:
<pre class="brush: php;">
&lt; ?php
  echo &quot;II_SYSTEM is :&quot; .$_SERVER[&quot;II_SYSTEM&quot;] . &quot;&lt;br/&gt;\n&quot;;
  echo &quot;LD_LIBRARY_PATH is :&quot; .$_SERVER[&quot;LD_LIBRARY_PATH&quot;] . &quot;&lt;br /&gt;\n&quot;;
?&gt;</pre>
</li>
<li>Sample Output:
<pre>
II_SYSTEM is :/opt/Ingres/IngresII
LD_LIBRARY_PATH is :/opt/Ingres/IngresII/ingres/lib:/opt/Ingres/IngresII/ingres/lib/lp32
</pre>
</li>
</ul>
<h3>Python</h3>
<ul>
<li>Code, save as <code>python_env.py</code>:</li>
<pre class="brush: python;">
from mod_python import apache

def environment(req):
    req.content_type = &quot;text/html&quot;
    req.add_common_vars()
    env_vars = req.subprocess_env.copy()

    req.write('&lt; !DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;')
    req.write('&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; lang=&quot;en&quot; xml:lang=&quot;en&quot;&gt;')
    req.write('&lt;head&gt;&lt;title&gt;mod_python.publisher&lt;/title&gt;&lt;/head&gt;')
    req.write('&lt;body&gt;')
    req.write('&lt;h2&gt;Environment Variables&lt;/h2&gt;')
    req.write('&lt;table border=&quot;1&quot;&gt;')
    req.write('&lt;tr&gt;&lt;td&gt;%s&lt;/td&gt;&lt;td&gt;%s&lt;/td&gt;&lt;/tr&gt;' % (&quot;II_SYSTEM&quot;, env_vars['II_SYSTEM']))
    req.write('&lt;tr&gt;&lt;td&gt;%s&lt;/td&gt;&lt;td&gt;%s&lt;/td&gt;&lt;/tr&gt;' % (&quot;LD_LIBRARY_PATH&quot;, env_vars['LD_LIBRARY_PATH']))
    req.write('&lt;/table&gt;')
    req.write('&lt;/body&gt;')
    req.write('&lt;/html&gt;')
</pre>
<li>Ouput from http://localhost/env.py/environment:
<pre>
 Environment Variables
 II_SYSTEM	/opt/Ingres/II
 LD_LIBRARY_PATH	/lib:/usr/lib:/usr/local/lib:/opt/Ingres/II/ingres/lib:/opt/Ingres/II/ingres/lib/lp32
</pre>
</li>
</ul>
<p>If you have any comments feel free to post them below.</p>
<p><strong>Updated Apr 14, 2010 9:50</strong> to include SELinux information</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars" title="Ingres VectorWise Webinars">Ingres VectorWise Webinars</a></li>
<li><a href="http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video" title="IUA VectorWise Demo Video">IUA VectorWise Demo Video</a></li>
<li><a href="http://blogs.planetingres.org/grant/302-pecl-ingres-2-2-2-released" title="PECL ingres-2.2.2 released">PECL ingres-2.2.2 released</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=253&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F253-ingres-and-apache-on-redhat-enterprise-server&amp;linkname=Ingres%20and%20Apache%20on%20Redhat%20Enterprise%20Server"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/253-ingres-and-apache-on-redhat-enterprise-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>List of Ingres functions per release</title>
		<link>http://blogs.planetingres.org/grant/248-list-of-ingres-functions-per-release</link>
		<comments>http://blogs.planetingres.org/grant/248-list-of-ingres-functions-per-release#comments</comments>
		<pubDate>Thu, 25 Feb 2010 15:57:00 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>
		<category><![CDATA[ima]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=248</guid>
		<description><![CDATA[Yesterday Ray Fan published an article that shows IMA queries that allow you to see the list of functions available for different Ingres releases. I&#8217;ve now taken these queries an generated a list of functions for Ingres 9.2.0 with the added functions for 9.3.0 and 10.0.0 (a recentish build). I&#8217;ve not looked at earlier releases [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday <a href="http://blogs.planetingres.org/notnull/">Ray Fan</a> published an <a href="http://blogs.planetingres.org/notnull/2010/02/23/useful-or-useless-follow-on-post/">article</a> that shows IMA queries that allow you to see the list of functions available for different Ingres releases. I&#8217;ve now taken these queries an <a href="http://community.ingres.com/wiki/Ingres_DBMS_function_list">generated a list of functions</a> for Ingres 9.2.0 with the added functions for <a href="http://community.ingres.com/wiki/Ingres_DBMS_function_list#Ingres_9.3.0">9.3.0</a> and <a href="http://community.ingres.com/wiki/Ingres_DBMS_function_list#Ingres_10.0.0">10.0.0 </a>(a recentish build). I&#8217;ve not looked at earlier releases as the SQL did not work with my 9.1.0 installation. When I get the time I&#8217;ll update the page going back to 9.0.4, or you could do the same <img src='http://blogs.planetingres.org/grant/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars" title="Ingres VectorWise Webinars">Ingres VectorWise Webinars</a></li>
<li><a href="http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video" title="IUA VectorWise Demo Video">IUA VectorWise Demo Video</a></li>
<li><a href="http://blogs.planetingres.org/grant/302-pecl-ingres-2-2-2-released" title="PECL ingres-2.2.2 released">PECL ingres-2.2.2 released</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=248&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F248-list-of-ingres-functions-per-release&amp;linkname=List%20of%20Ingres%20functions%20per%20release"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/248-list-of-ingres-functions-per-release/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What BLOB tables do I have?</title>
		<link>http://blogs.planetingres.org/grant/236-what-blob-tables-do-i-have</link>
		<comments>http://blogs.planetingres.org/grant/236-what-blob-tables-do-i-have#comments</comments>
		<pubDate>Tue, 23 Feb 2010 12:39:22 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[blob]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=236</guid>
		<description><![CDATA[The following is SQL code was published in the #ingres IRC channel on freenode in response to a question about the best method to determine which iietab_xx_yy table belongs to which table: select r1.relid as base_table, c.attname as column_name, r2.relid as extend_table from iirelation r1,iirelation r2,iiattribute c,iiextended_relation e where r1.reltid=e.etab_base and r2.reltid=e.etab_extension and r1.reltid=c.attrelid and [...]]]></description>
			<content:encoded><![CDATA[<p>The following is SQL code was published in the <a href="http://community.ingres.com/wiki/IRC">#ingres</a> IRC channel on freenode in response to a <a href="http://irc.planetingres.org/%23ingres.2010-02-18.log.html#t2010-02-18T01:58:08">question</a> about the best method to determine which <em>iietab_xx_yy</em> table belongs to which table:</p>
<pre class="brush: sql;">
select r1.relid as base_table,
       c.attname as column_name,
       r2.relid as extend_table
from iirelation r1,iirelation r2,iiattribute c,iiextended_relation e
where r1.reltid=e.etab_base and r2.reltid=e.etab_extension
  and r1.reltid=c.attrelid
  and c.attid=e.etab_attid
  and r1.reltidx=0
  and c.attrelidx=0
order by base_table,column_name
</pre>
<p>Running this against my <em>demodb</em> database I get the following:</p>
<pre>┌────────────────────────────────┬────────────────────────────────┬────────────────────────────────┐
│base_table                      │column_name                     │extend_table                    │
├────────────────────────────────┼────────────────────────────────┼────────────────────────────────┤
│nclob                           │ntext                           │iietab_367_368                  │
│nclob2                          │ntext                           │iietab_369_36a                  │
│nclob2                          │ntext2                          │iietab_369_36b                  │
│nclob3                          │ntext                           │iietab_3c0_3c1                  │
│user_profile                    │up_image                        │iietab_f5_f6                    │
└────────────────────────────────┴────────────────────────────────┴────────────────────────────────┘
(5 rows)
</pre>
<p>Extending the above query we can also determine the size of each <em>iietab_xx_yy</em> table:</p>
<pre class="brush: sql;">
select r1.relid as base_table,
       c.attname as column_name,
       r2.relid as extend_table,
	   t.allocated_pages * float4(t.table_pagesize) / 1024 / 1024
       as megabytes
from iirelation r1, iirelation r2,
     iiattribute c, iiextended_relation e,
     iitables t
where r1.reltid=e.etab_base
  and r2.reltid=e.etab_extension
  and r1.reltid=c.attrelid
  and c.attid=e.etab_attid
  and r1.reltidx=0
  and c.attrelidx=0
  and t.table_reltid = e.etab_extension
  order by megabytes desc;
</pre>
<p>For example:</p>
<pre>┌────────────────────────────────┬────────────────────────────────┬────────────────────────────────┬───────────┐
│base_table                      │column_name                     │extend_table                    │megabytes  │
├────────────────────────────────┼────────────────────────────────┼────────────────────────────────┼───────────┤
│nclob2                          │ntext2                          │iietab_369_36b                  │      1.258│
│nclob2                          │ntext                           │iietab_369_36a                  │      0.258│
│nclob                           │ntext                           │iietab_367_368                  │      0.258│
│nclob3                          │ntext                           │iietab_3c0_3c1                  │      0.258│
│user_profile                    │up_image                        │iietab_f5_f6                    │      0.258│
└────────────────────────────────┴────────────────────────────────┴────────────────────────────────┴───────────┘
</pre>
<p>Useful if you want to know how much space your BLOB/CLOB data is taking up. Thanks to Kristoff, Paul and Gerhard for working out the SQL.</p>
<p><em>Updated to recognize Kristoff Picards&#8217; contribution</em><br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blogs.planetingres.org/grant/88-logging-ingres-jdbc-connections-under-tomcat" title="Logging Ingres JDBC connections under tomcat">Logging Ingres JDBC connections under tomcat</a></li>
<li><a href="http://blogs.planetingres.org/grant/332-ingres-vectorwise-webinars" title="Ingres VectorWise Webinars">Ingres VectorWise Webinars</a></li>
<li><a href="http://blogs.planetingres.org/grant/308-iua-vectorwise-demo-video" title="IUA VectorWise Demo Video">IUA VectorWise Demo Video</a></li>
</ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=236&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F236-what-blob-tables-do-i-have&amp;linkname=What%20BLOB%20tables%20do%20I%20have%3F"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/236-what-blob-tables-do-i-have/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>UK IUA 2010 Call for Papers Now Open</title>
		<link>http://blogs.planetingres.org/grant/231-uk-iua-2010-call-for-papers-now-open</link>
		<comments>http://blogs.planetingres.org/grant/231-uk-iua-2010-call-for-papers-now-open#comments</comments>
		<pubDate>Tue, 16 Feb 2010 16:36:53 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/?p=231</guid>
		<description><![CDATA[It&#8217;s that time of the year again &#8211; the call for papers for the UK IUA June conference: UK Ingres User Association Conference 2010 10th June 2010, London www.iua.org.uk Outlines or abstracts for presentations on Ingres, OpenROAD, open source, or any other Ingres-related topics are welcome. The theme for this year&#8217;s event is &#8220;Open Source [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s that time of the year again &#8211; the call for papers for the UK IUA June conference:</p>
<blockquote><p>UK Ingres User Association Conference 2010<br />
10th June 2010, London<br />
<a href="http://www.iua.org.uk">www.iua.org.uk</a></p>
<p>Outlines or abstracts for presentations on Ingres, OpenROAD, open source, or any other Ingres-related topics are welcome.  The theme for this year&#8217;s event is &#8220;Open Source Innovation&#8221; so any papers relating to Ingres and Open Source tools and products would be particularly welcome.</p>
<p>The UK IUA Committee invites anyone working with Ingres or OpenROAD, or related technologies to submit ideas for papers to be presented at this year&#8217;s annual conference.  The conference will take place on 10th June 2010 in Central London (venue to be confirmed). </p>
<p>A sell-out crowd attended the high quality presentations at last year&#8217;s event, and with your assistance and contribution, we aim to make this year&#8217;s IUA Conference an even bigger success.</p>
<p>Outlines and abstracts can be submitted in any reasonable format (e.g. Word, plain text, Powerpoint, PDF, etc.).   Please submit your ideas for papers via email to Ray Collins (<a href="mailto:ray.collins@iua.org.uk">ray.collins@iua.org.uk</a>) by Monday, 12 April 2010 for evaluation by the conference paper selection committee. Note that you need only send an outline or proposal at this stage.  You do not need to provide a complete presentation to be considered.</p>
<p>Notification of whether your paper has been selected or rejected will be sent by Friday 14 April 2010. </p>
<p>Topics we are particularly interested in hearing about this year:</p>
<ul>
<li>VectorWise</li>
<li>Hardware and software consolidation, and virtualization</li>
<li>Applications developed with Open Source</li>
<li>Migrations to Open Source</li>
<li>Ingres Community Projects</li>
<li>Open Source economics</li>
<li>Management issues in Open Source</li>
<li>Productivity Tools</li>
<li>Security</li>
<li>Improving Performance</li>
</ul>
<p>If you have any questions regarding this year&#8217;s 2010 Conference, the committee members are happy to assist. Please send all questions and queries to <a href="mailto:info@iua.org.uk">info@iua.org.uk</a>.</p>
<p>Thank you to all who have supported the IUA by presenting at our previous Meetings, Special Events and the Annual Conference in the past, and for your continued interest and support of the UK IUA.</p></blockquote>
<h3>Some random posts</h3>
<ul class="related_post"></ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=231&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F231-uk-iua-2010-call-for-papers-now-open&amp;linkname=UK%20IUA%202010%20Call%20for%20Papers%20Now%20Open"><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/231-uk-iua-2010-call-for-papers-now-open/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best Facebook Updates ever.</title>
		<link>http://blogs.planetingres.org/grant/220-best-facebook-updates-ever</link>
		<comments>http://blogs.planetingres.org/grant/220-best-facebook-updates-ever#comments</comments>
		<pubDate>Thu, 26 Nov 2009 16:33:31 +0000</pubDate>
		<dc:creator>Grant Croker</dc:creator>
				<category><![CDATA[ingres]]></category>

		<guid isPermaLink="false">http://blogs.planetingres.org/grant/2009/11/26/best-facebook-updates-ever/</guid>
		<description><![CDATA[See and download the full gallery on posterous Posted via email from Idle thoughts Some random posts]]></description>
			<content:encoded><![CDATA[<p>        <a target="_new"><br /> </a>
<p><img src="http://posterous.com/getfile/files.posterous.com/grantc/7U281pMQ8KO827Qud30C4gsLAPqskZBzftTjoYqNboKbLgLi8ETESDJB45De/unknownname.jpg"/> <img src="http://posterous.com/getfile/files.posterous.com/grantc/pxg2vEXvEwhzruEovMOjwvYKqc4Pyh9LCuE9KGCyVWNfPJflbSdlwB2ZaJyk/0unknownname.jpg"/> <img src="http://posterous.com/getfile/files.posterous.com/grantc/silnYFKuATWnUoR8WGTyhzUYFOYOC3gPDs09Bwu7lvmXEGzHTJPsBY9NQoiQ/1unknownname.jpg"/> <img src="http://posterous.com/getfile/files.posterous.com/grantc/970UIMONfctnObz5Qb69wlbsQ6A37LY2lKt2k0IhxGn1D4LbnF6iXPtgehP0/2unknownname.jpg"/> <img src="http://posterous.com/getfile/files.posterous.com/grantc/cStVkVzCjo4wIt2Se05fBJJuqWyqzLmagKeAC8eLUxkzwK4oiFOwzLM73fPk/3unknownname.jpg"/>
<div><a href='http://blog.croker.net/best-facebook-updates-ever'>See and download the full gallery on posterous</a></div>
</p>
<p style="font-size: 10px">  <a href="http://posterous.com">Posted via email</a>   from <a href="http://blog.croker.net/best-facebook-updates-ever">Idle thoughts</a>  </p>
<h3>Some random posts</h3>
<ul class="related_post"></ul>
<img src="http://blogs.planetingres.org/grant/?ak_action=api_record_view&id=220&type=feed" alt="" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblogs.planetingres.org%2Fgrant%2F220-best-facebook-updates-ever&amp;linkname=Best%20Facebook%20Updates%20ever."><img src="http://blogs.planetingres.org/grant/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blogs.planetingres.org/grant/220-best-facebook-updates-ever/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
