<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Postgres OnLine Journal - adodb</title>
    <link>http://www.postgresonline.com/journal/</link>
    <description>an In depth look at the PostgreSQL open source database</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Wed, 14 Jul 2010 08:02:09 GMT</pubDate>

    <image>
        <url>http://www.postgresonline.com/journal/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Postgres OnLine Journal - adodb - an In depth look at the PostgreSQL open source database</title>
        <link>http://www.postgresonline.com/journal/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>REST in PostgreSQL Part 2 B - The REST Server service with PHP 5</title>
    <link>http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html</link>
            <category>adodb</category>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=42</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;This is a continuation of our REST series.  The following topics have already been covered &lt;/P&gt;
&lt;OL&gt;&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL---The-PreQuel.html&quot; target=_blank&gt;Showcasing REST in PostgreSQL - The PreQuel&lt;/a&gt; we went over what REST is and isn&#039;t&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html&quot; target=_blank&gt;REST in PostgreSQL Part 1 - The DB components&lt;/a&gt; we loaded the Pagila database and created a db plpgsql search function that spits out XML to support our rest server service&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&lt;/a&gt; we demonstrated a REST web service using Mono.NET, MS.NET both in C#, VB.Net/Monobasic&lt;/LI&gt;
&lt;/OL&gt;
&lt;br /&lt;br /&gt;
Now in this Part 2B series, we shall demonstrate the same REST server service using PHP 
&lt;/P&gt;

&lt;h4&gt;Setting up the PHP application&lt;/h4&gt;
&lt;OL&gt;
	&lt;LI&gt;
		&lt;P&gt;PHP already has the PostgreSQL drivers available as a .so (on Linux) or .dll on Windows.  For windows users if you
			are running PHP under IIS and in ISAPI mode, you will not be able to dynamically load libraries, so you need to enable &lt;b&gt;php_pgsql&lt;/b&gt; in your PHP.ini file.
		&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;We tend to keep it enabled regardless of which platform we are on since a lot of our PHP development involves PostgreSQL.   The extension is &lt;i&gt;php_pgsql&lt;/i&gt; in the php.ini file&lt;/LI&gt;
	&lt;LI&gt;PHP has numerous database abstraction libraries to choose from.  We are using the adodb abstraction library for PHP which can be downloaded from &lt;a href=&quot;http://adodb.sourceforge.net/&quot; target=_blank&gt;http://adodb.sourceforge.net/&lt;/a&gt;.
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 2 B - The REST Server service with PHP 5&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 09 Apr 2008 22:28:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/42-guid.html</guid>
    
</item>
<item>
    <title>Serendipity Blogging Software</title>
    <link>http://www.postgresonline.com/journal/archives/12-Serendipity-Blogging-Software.html</link>
            <category>adodb</category>
            <category>mysql</category>
            <category>product showcase</category>
            <category>serendipity</category>
            <category>smarty</category>
            <category>sqlite</category>
    
    <comments>http://www.postgresonline.com/journal/archives/12-Serendipity-Blogging-Software.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=12</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;h4&gt;Choosing Blogging Software&lt;/h4&gt;
&lt;P&gt;When we started blogging, we had several criteria for the blogging software we would use.
&lt;UL&gt;
&lt;LI&gt;Easy to install&lt;/LI&gt;
&lt;LI&gt;Easy to use&lt;/LI&gt;
&lt;LI&gt;Couldn&#039;t be a service and the database structure needed to be fairly easy to understand because we needed to mesh it seamlessly with the rest of our site.&lt;/LI&gt;
&lt;LI&gt;Had to support PostgreSQL&lt;/LI&gt;
&lt;LI&gt;Preferably open source and based on technology we understood - that meant either ASP.NET or PHP&lt;/LI&gt;
&lt;LI&gt;As far as code goes we are pretty finicky about those things and for PHP we prefer the &lt;a href=&quot;http://smarty.php.net/&quot; target=_blank&gt;Smarty Templating system&lt;/a&gt; and &lt;a href=&quot;http://adodb.sourceforge.net/&quot; target=_blank&gt;PHP ADODB&lt;/a&gt; over other PHP paradigms.  Part of that, not to insult others, was that it was the first approach we found that worked really well for us, so we stuck with it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/P&gt;
&lt;P&gt;We immediately dismissed wordpress because it was MySQL centric, Blogger etc services were out the door as well.  There were not that many blogging applications in .NET and most were very SQL Server centric. 
&lt;/P&gt;
&lt;P&gt;We noticed other PostgreSQL bloggers use predominantly &lt;a href=&quot;http://www.s9y.org&quot; target=_blank&gt;Serendipity&lt;/a&gt;, so we thought we&#039;d give it a try.&lt;/P&gt;
&lt;P&gt;Serendipity met all our requirements except for the PHP ADODB part.  It has a database abstraction layer, but it appears to be a custom one.  This we could live with.  Below are the features we really liked about it.
&lt;/P&gt;
&lt;UL&gt;&lt;LI&gt;Works on both Linux and Windows  - IIS and Apache&lt;/LI&gt;
&lt;LI&gt;Easy installation.  Install process was literally 10 minutes or less&lt;/LI&gt;
&lt;LI&gt;Supports PostgreSQL, MySQL, and SQLite&lt;/LI&gt;
&lt;LI&gt;Underlying database structure was sane&lt;/LI&gt;
&lt;LI&gt;Its underlying templating system is PHP Smarty-Based&lt;/LI&gt;
&lt;LI&gt;At least it had a database abstraction layer.  For .NET development we&#039;ve built our own because all the ones out there went too far in their abstraction to the point of being counter-intuitive and .NET doesn&#039;t really have a pre-packaged database abstraction layer to speak of.  So this particular choice of decisions was one we could accept.&lt;/LI&gt;
&lt;LI&gt;Fairly intuitive.&lt;/LI&gt;
&lt;LI&gt;Plug-ins galore - in fact most of our time was spent figuring out which plug-ins we wanted to use.&lt;/LI&gt;
&lt;LI&gt;Ability to assign multiple categories to a blog post and threaded categories&lt;/LI&gt;
&lt;LI&gt;Fairly straight-forward theming system&lt;/LI&gt;
&lt;/UL&gt;
&lt;h4&gt;Choosing Plugins&lt;/h4&gt;
&lt;P&gt;There are some plugins enabled by default, but can&#039;t remember which ones.  For the most part they are the common ones people would choose if they chose them.  These get you pretty far at least to use the software before you realize hey there is other stuff you can turn on or off.  Below are some of the ones we found as must haves or things that should think about changing.&lt;/P&gt;

&lt;P&gt;Serendipity has plugins broken up into event plugins and side bar plugins.  Side bar plugins can be drag and dropped between the left right middle areas, which is a nice convenience.  Event plugins are triggered based on Serendipity system events such as blog posts or comment posts and some aren&#039;t really events so to speak but aren&#039;t side bar plugins either so they show under events.&lt;/P&gt;

&lt;h5&gt;Event Plug-ins&lt;/h5&gt;
&lt;OL&gt;
&lt;LI&gt;To WYSIWYG or Not?  Serendipity&#039;s WYSIWYG setting is set at the user level which is nice since some people like it and some don&#039;t and if you have a group blog this is very useful.  Personally we don&#039;t care for WYSIWYG especially for a site that shows coding snippets.  This is not to say that WYSIWYG in Serendipity is not adequate for a lot of people. Just not for us.  We never use the WYSIWYG in Visual Studio either. I blame being brought up  writing papers in LATEX for this frustration with WYSIWYG. &lt;/LI&gt;
&lt;LI&gt;Markup: NL2BR - If you are going to be writing your own HTML turn this off for blog body.  It screws up your nice formatting since it will literally turn each newline into a break when presented.  Should probably always have this turned on for comments otherwise people writing out carefully thought out comments will be frustrated when their paragraphs are squashed.&lt;/LI&gt;
&lt;LI&gt;[S]erendipity [P]lugin [A]ccess [R]epository [T]ool [A]nd [C]ustomization/[U]nification [S]ystem (SPARTACUS) - this is a plug-in that allows you to connect to the Serendipity plug-in and update your plug-in repository - kind of like a &lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Yellow_dog_Updater%2C_Modified&quot; target=_blank&gt;YUM&lt;/a&gt;&lt;/b&gt; for Serendipity.&lt;/LI&gt;
&lt;LI&gt;Announce Entries - this is a plug-in that does an XML-RPC ping post to places like technorati, google, ping-o-matic.  You can enable and disable which ones you want posted to by default when your entry is published.  Within the entry screen, you can selectively uncheck and check them as well for that particular entry&lt;/LI&gt;
&lt;/OL&gt;

&lt;H5&gt;Sidebar Plugins&lt;/H5&gt;
&lt;P&gt;We haven&#039;t played with these too much.  The standard default calendar, category, and search were pretty much what we needed starting off.  We liked the Wiki Finder and the links to publish to social bookmarking sites as a nice convenience.&lt;/P&gt;

&lt;H5&gt;Gripes&lt;/H5&gt;
&lt;P&gt;We also tried this on a virgin install of PostgreSQL 8.3 Beta 3 and it didn&#039;t work.  Seems to be some logic in the DB layer of serendipity that uses LIKE instead of = against ids and the fact that PostgreSQL 8.3 has taken out a lot of the default CASTS.  I think the serendipity code should be changed in this case since from a cursory glance, doesn&#039;t quite look right or efficient, but I&#039;m sure there is a good reason they chose to do things that way.
&lt;/P&gt;  
    </content:encoded>

    <pubDate>Mon, 10 Dec 2007 04:58:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/12-guid.html</guid>
    
</item>

</channel>
</rss>