<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.taadeem.net/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Taa Deem ! A few words about PostgreSQL and other things - Mot-clé - planet-postgresql</title>
  <link>http://blog.taadeem.net/index.php?</link>
  <atom:link href="http://blog.taadeem.net/index.php?feed/tag/planet-postgresql/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Mon, 29 Apr 2013 04:41:01 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>pgBadger 3 : How to use the parallel mode</title>
    <link>http://blog.taadeem.net/index.php?post/2013/03/12/pgBadger-3-%3A-How-to-use-the-parallel-mode</link>
    <guid isPermaLink="false">urn:md5:a326862088404382c844c5f62c87a795</guid>
    <pubDate>Tue, 12 Mar 2013 22:49:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>pgBadger</category><category>planet-postgresql</category><category>postgres</category><category>postgreSQL</category>    
    <description>    &lt;p&gt;Just like I said in a previous blog post&amp;nbsp;: the &lt;a href=&quot;http://blog.taadeem.net/index.php?post/2012/11/12/pgBadger-is-moving-fast&quot;&gt;pgBadger projet is moving fast&lt;/a&gt;&amp;nbsp;! Version 3 was released a few days ago with a major improvements&amp;nbsp;: With the new parallel mode, you can now launch mutiple pgBagder process at once&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.taadeem.net/public/badgers-4.jpg&quot; alt=&quot;Beware !&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Beware !&quot; /&gt;&lt;/p&gt;


&lt;p&gt;In others word, pgBadger is not bound to one cpu anymore. If you have multiple cores, you can now uses them to give more power and decrease the processing time. All you have to do is add the &quot;-j N&quot; option in the command line, where N is the number of cores you want to use. For instance&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;code&gt;$ pgbadger -j 4 /var/log/postgresql/postgresql-2013-02-*&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Quick benchmark&amp;nbsp;:  We had 5 log files with a total volume of 9.5 GB. Here's the results&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;-j 1&amp;nbsp;:  1h41m18s&lt;/li&gt;
&lt;li&gt;-j 2&amp;nbsp;:  50m25s&lt;/li&gt;
&lt;li&gt;-j 4&amp;nbsp;:  25m39s&lt;/li&gt;
&lt;li&gt;-j 8&amp;nbsp;:  15m58s&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pgbadger_benchmark.png&quot; alt=&quot;pgbadger_benchmark.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;However it's important to note that the parallel mode has a little drawback. With this method, some queries may be truncated. If you enable N cores, then result may differ in a maximum of N queries per log file.&lt;/p&gt;


&lt;p&gt;However, this is a minor issue: parallel mode is interesting if you have millions of queries to analyze. And if you have millions of queries in a log file, you can afford to loose a few as it's quite unlikely that the lost queries would have changed the overall results.&lt;/p&gt;


&lt;p&gt;However, to avoid this problem, you can use the pgBadger &quot;per-file parallel mode&quot; to analyze your logs but with lower performance than the standard parallel mode. To enable this behaviour, you have to use the &quot;-J N&quot; option instead of &quot;-j N&quot;. In per-file mode, the performances start being really interesting when there's hundreds of small log files (e.g. 10MB rotation size limit) and with at least 8 cores.&lt;/p&gt;


&lt;p&gt;We believe this new improvement will be a significant change for pgBadger users. If you have used the parallel mode, please send us feed back on our &lt;a href=&quot;https://listes.dalibo.com/cgi-bin/mailman/listinfo/pgbagder&quot; title=&quot;mailing list &quot;&gt;mailing list&lt;/a&gt; or via the &lt;a href=&quot;https://twitter.com/intent/follow?screen_name=pgbadger&quot; title=&quot;pgBadger Twitter account&quot;&gt;pgBadger twitter account&lt;/a&gt;&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;And by the way, this is not the only big feature in pgBadger v3&amp;nbsp;!  For the complete list of changes, please checkout the release note on &lt;a href=&quot;https://github.com/dalibo/pgbadger/blob/master/ChangeLog&quot;&gt;github&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;And of course stay tuned.... because version 4 is coming fast :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.taadeem.net/index.php?post/2013/03/12/pgBadger-3-%3A-How-to-use-the-parallel-mode#comment-form</comments>
      <wfw:comment>http://blog.taadeem.net/index.php?post/2013/03/12/pgBadger-3-%3A-How-to-use-the-parallel-mode#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.taadeem.net/index.php?feed/atom/comments/60</wfw:commentRss>
      </item>
    
  <item>
    <title>pgBadger HTML5 overhaul : preview</title>
    <link>http://blog.taadeem.net/index.php?post/2013/01/02/pgBadger-HTML5-overhaul-%3A-preview</link>
    <guid isPermaLink="false">urn:md5:6a2ba0b7daa32c37d5c27601151a499d</guid>
    <pubDate>Thu, 03 Jan 2013 10:18:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>pgBadger</category><category>planet-postgresql</category><category>postgres</category><category>postgresql</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://dalibo.github.com/pgbadger/&quot;&gt;pgBadger&lt;/a&gt; is a powerful tool to optimize your PostgreSQL servers. Using your server log files,  pgBadger will analyze the SQL traffic and produce a profusion of statistics (longest queries, read/write ratio, etc.). This is very helpful but the amount of data generated is so big that the pgbadger reports are hard to read and useful stats are often drown in the flood...  Check out this&lt;a href=&quot;http://dalibo.github.com/pgbadger/example.html&quot;&gt; sample pgBadger report&lt;/a&gt; to see the mess !&lt;/p&gt;


&lt;p&gt;Since my &lt;a href=&quot;http://blog.taadeem.net/index.php?post/2012/11/12/pgBadger-is-moving-fast&quot;&gt;previous blog post&lt;/a&gt;, we've been working hard to &lt;a href=&quot;https://github.com/dalibo/pgbadger/wiki/HTML5-overhaul&quot;&gt;redefine the pgBadger user experience&lt;/a&gt; and create a new report template.&lt;/p&gt;


&lt;p&gt;Here's the first draft of this new prototype (For now the draft is just static HTML code, we hope we'll have a live demo in the forthcoming weeks).&lt;/p&gt;


&lt;p&gt;As you can we followed a few basic principles :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Split the big HTML tables in smaller tables and use tab navigation to switch&lt;/strong&gt; :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.taadeem.net/public/pgbadger_proto_1.png&quot; title=&quot;pgbadger_proto_1.png&quot;&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pgbadger_proto_1.png&quot; alt=&quot;pgbadger_proto_1.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;pgbadger_proto_1.png, janv. 2013&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Leave some blank spaces to make the report easier to read&lt;/strong&gt; :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.taadeem.net/public/pgbadger_proto_2.png&quot; title=&quot;pgbadger_proto_2.png&quot;&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pgbadger_proto_2.png&quot; alt=&quot;pgbadger_proto_2.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;pgbadger_proto_2.png, janv. 2013&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hide big tables behind graphs, when possible&lt;/strong&gt; :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.taadeem.net/public/pgbadger_proto_3.png&quot; title=&quot;pgbadger_proto_3.png&quot;&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pgbadger_proto_3.png&quot; alt=&quot;pgbadger_proto_3.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;pgbadger_proto_3.png, janv. 2013&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Put &quot;full details&quot; in popup windows that can you can hide/show when you need it&lt;/strong&gt; :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.taadeem.net/public/pgbadger_proto_4.png&quot; title=&quot;pgbadger_proto_4.png&quot;&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pgbadger_proto_4.png&quot; alt=&quot;pgbadger_proto_4.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;pgbadger_proto_4.png, janv. 2013&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Emphasize &quot;key values&quot; using a bigger font size&lt;/strong&gt; :&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.taadeem.net/public/pgbadger_proto_5.png&quot; title=&quot;pgbadger_proto_5.png&quot;&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pgbadger_proto_5.png&quot; alt=&quot;pgbadger_proto_5.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;pgbadger_proto_5.png, janv. 2013&quot; /&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;As you can see, there's nothing either out of the ordinary or very original here. But this new design will surely be easier to read and be more insightful. We hope it will  attract new users, while being more helpful for the existing user base.&lt;/p&gt;


&lt;p&gt;If you have any comment or ideas, please join the &lt;a href=&quot;https://listes.dalibo.com/cgi-bin/mailman/listinfo/pgbadger&quot;&gt;pgBadger mailing list&lt;/a&gt; and get involved !&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.taadeem.net/index.php?post/2013/01/02/pgBadger-HTML5-overhaul-%3A-preview#comment-form</comments>
      <wfw:comment>http://blog.taadeem.net/index.php?post/2013/01/02/pgBadger-HTML5-overhaul-%3A-preview#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.taadeem.net/index.php?feed/atom/comments/56</wfw:commentRss>
      </item>
    
  <item>
    <title>pgBadger is moving fast</title>
    <link>http://blog.taadeem.net/index.php?post/2012/11/12/pgBadger-is-moving-fast</link>
    <guid isPermaLink="false">urn:md5:5fbcbac202415635f375d86d54de31e7</guid>
    <pubDate>Wed, 14 Nov 2012 14:44:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>pgBadger</category><category>planet-postgresql</category><category>postgreSQL</category><category>PostgreSQL</category>    
    <description>    &lt;p&gt;When the pgBadger project started 6 month ago, our primary goal was to build a better performance tool for PostgreSQL. We also wanted it to be an open and dynamic project, built with the help of the Postgres community. So far  the result is beyond our expectations&amp;nbsp;: we've received dozens of user requests, bug reports and contributions.&lt;/p&gt;


&lt;p&gt;Thanks to this community support, the project goes at a very fast pace&amp;nbsp;! Today Gilles Darold released &lt;a href=&quot;http://www.dalibo.org/pgbadger_2.2_released&quot;&gt;pgBadger 2.2&lt;/a&gt;. This new version comes with a bunch of exciting new features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://tsung.erlang-projects.org&quot;&gt;Tsung&lt;/a&gt; support&amp;nbsp;: This means you can now create benchmark scenarios based on the queries contained in your PostgreSQL logs&lt;/li&gt;
&lt;li&gt;New parameters&amp;nbsp;:  For instance with &lt;code&gt;--exclude-user&lt;/code&gt; you can now ignore a user in the generated reports. With  &lt;code&gt;--select-only&lt;/code&gt; you generate a report about the read queries...&lt;/li&gt;
&lt;li&gt;Faster CSV log parsing (thanks to David Fetter)&lt;/li&gt;
&lt;li&gt;Improved log format detection&lt;/li&gt;
&lt;li&gt;And many bugfixes....&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And there's more come&amp;nbsp;! We're currently working on two major enhancements&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-threading is on it's way&lt;/strong&gt;&amp;nbsp;: The last limitations have been removed and there's now a clear path to implement parallel parsing of the log files. pgBadger is already quite fast, but this will make it even faster. Especially on servers with many CPUs.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HTML5 Overhaul&lt;/strong&gt;&amp;nbsp;: For now pgBadger reports look pretty much like the ones produces by &lt;a href=&quot;http://pgfouine.projects.pgfoundry.org&quot;&gt;pgFouine&lt;/a&gt;&amp;nbsp;: i.e. it's just basic HTML aimed for a desktop screen. This was fine in 2005, but now we need a responsive design&amp;nbsp;! Reports must be more interactive and readable on any devices. This is a tough job and as DBAs we have limited design skills :-) So we decided to hire a professional web design company to help us with&amp;nbsp;: the French company &lt;a href=&quot;http://www.artiscode.net/&quot;&gt;art is code&lt;/a&gt; will work with us to build a smarter report.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, we will involve the community while working on these two major improvements. If you want to participate and just keep in touch with the project, please join the &lt;a href=&quot;https://listes.dalibo.com/cgi-bin/mailman/listinfo/pgbadger&quot;&gt;pgBadger mailing list&lt;/a&gt;. In a few week, we will submit the first draft of the new report design.&lt;/p&gt;


&lt;p&gt;In a nutshell&amp;nbsp;: If you don't know what pgBadger is, give it a try&amp;nbsp;! If you already use it, please upgrade to version 2.2&amp;nbsp;! And if you've already installed v2.2, stay tuned because version 3 is coming fast&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;By the way, we're not alone... The whole postgres community seems to be buzzing with brand new performance tools&amp;nbsp;! Over the past few weeks, at least 3 interesting projects popped up&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://datascope.herokuapp.com/&quot;&gt;datascope&lt;/a&gt; is a nice tool to visualize pg_stat_statements data&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.2ndquadrant.com/en/pg_stat_plans/&quot;&gt;pg_stat_plans&lt;/a&gt; allows you to lists SQL statements by execution plan, not just by query.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/omniti-labs/pgOtter&quot;&gt;pgOtter&lt;/a&gt; is yet another small mammal trying to parse your PostgreSQL logs ;-)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At a personal level, I'm quite happy to see this happening and I bet this is just the beginning of a great move of the community toward better user-friendly tools for the PostgreSQL user base.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PostgreSQL Session #4 : From Oracle to PostgreSQL</title>
    <link>http://blog.taadeem.net/index.php?post/2012/10/12/from_oracle_to_postgresql</link>
    <guid isPermaLink="false">urn:md5:a08cc1d7a6758ba6dc2125d0a374c032</guid>
    <pubDate>Fri, 12 Oct 2012 10:06:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>migration</category><category>ora2pg</category><category>oracle</category><category>pgBadger</category><category>planet-postgresql</category><category>postgres</category><category>PostgreSQL</category>    
    <description>    &lt;p&gt;As a nice coincidence the 4th &lt;a href=&quot;http://www.postgresql-sessions.org/en/4/start&quot;&gt;PostgreSQL Session&lt;/a&gt; held Thursday, October 4 which was also the last day of Oracle Open World conference. Suffice to say that the two events didn't share the same definition of the word &quot;Open&quot;!&lt;/p&gt;


&lt;p&gt;As for the previous sessions organized by Dalibo, the room was full to listen to the various speakers.&lt;/p&gt;


&lt;p&gt;The morning speeches were devoted to migration tools themselves with three main methods: ora2pg, ETL or Foreign Data Wrapper:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jean-Paul Argudo opened the conference with a keynote to remind thechallenges of RDMS migrations.&lt;/li&gt;
&lt;li&gt;Guillaume Lelarge began with a brief presentation of the &lt;a href=&quot;http://wiki.postgresql.org/wiki/What&amp;#039;s_new_in_PostgreSQL_9.2&quot;&gt;new features of PostgreSQL 9.2 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gilles Darold continued with a zoom on &lt;a href=&quot;http://ora2pg.darold.net/&quot;&gt;ora2pg &lt;/a&gt;, the Oracle to PostgreSQL migration tool&lt;/li&gt;
&lt;li&gt;Marc Cousin described how to use  &lt;a href=&quot;http://kettle.pentaho.com/&quot;&gt;Kettle &lt;/a&gt; (an open source ETL)&lt;/li&gt;
&lt;li&gt;Laurenz Albe, from Vienna, Austria, presented &lt;a href=&quot;http://oracle-fdw.projects.postgresql.org/&quot;&gt;oracle_fdw &lt;/a&gt;, a data wrapper that can read Oracle tables from PostgreSQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The afternoon was an overview of the alternatives to traditional Oracle tools, including&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gabriele Bartolini, founder of &lt;a href=&quot;http://www.2ndquadrant.com/it/&quot;&gt;2ndQuadrant Italy&lt;/a&gt;, presented &lt;a href=&quot;http://www.pgbarman.org/&quot;&gt;Barman &lt;/a&gt;, a backup tool that follows RMAN's footsteps&lt;/li&gt;
&lt;li&gt;Jehan-Guillaume De Rorthais described the new features of &lt;a href=&quot;http://dalibo.github.com/pgbadger/&quot;&gt;pgBadger &lt;/a&gt;, a fast PostgreSQL log analyzer&lt;/li&gt;
&lt;li&gt;Finally Julien Rouhaud concluded with a presentation of &lt;a href=&quot;https://github.com/postgres-xc/postgres-xc&quot;&gt;PGXC &lt;/a&gt;, a solution for symmetric replication (&quot;Master-Master&quot;) which is a serious alternative for Oracle RAC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All presentations are available in PDF format here. Most the slides are in French, except Jean-Paul, Gabriele and Laurenz talks: &lt;a href=&quot;http://www.postgresql-sessions.org/en/4/&quot;&gt;http://www.postgresql-sessions.org/en/4/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;For my part, I presented the following conclusions during the closing keynote:&lt;/p&gt;


&lt;p&gt;1 - There are &lt;strong&gt;multiple ways to migrate from Oracle to PostgreSQL&lt;/strong&gt;: according to your needs and the complexity of your database schema, you can use different tools. ora2pg is specialized and easy to implement. Kettle and  other ETL are very powerful and useful if you need to transform the data. And finally oracle_fdw is an original solution to migrate smoothly.&lt;/p&gt;


&lt;p&gt;2 - There's still some &lt;strong&gt;missing features in the PostgreSQL ecosystem&lt;/strong&gt;: including comprehensive tools for partitioning or free alternatives to OEM. This leads many observers to judge that «Oracle is ahead of PostgreSQL». For my part, rather than looking at the position of each RDBMS at a given moment, I prefer to look at the innovation rate and the dynamic of each project ... And this 1-day conference showed us that the PostgreSQL community is currently in an extremely fertile and creative period. This extraordinary growth is the assurance that PostgreSQL will be a dominant RDBMS in the years to come. In other words: the PostgreSQL project is perhaps behind Oracle right now, but given its current speed it will quickly reach and surpass the competition.&lt;/p&gt;


&lt;p&gt;3 - As stated by Jean-Paul during the opening keynote, a DBMS migration is &lt;strong&gt; 10% about tools and 90% about human&lt;/strong&gt;. The good news is that open source  is all about putting users above technology. Indeed, when moving from a proprietary database to PostgreSQL, the total cost of ownership (TCO) changes its nature: you no longer pay expensive licenses to a monopolistic giant. Instead your budget is redirected to &quot;real services&quot; (support, training, consulting) provided by local companies that are close to you. Switching to free software is not only a technical change, it is also (and above all) a revolution in the business relationships.&lt;/p&gt;


&lt;p&gt;Finally, I would like to warmly thank all those who made this conference possible especially Laurentz Albe and Gabriele Bartolini.&lt;/p&gt;


&lt;p&gt;The next PostgreSQL session will take place in early 2013. We are currently considering the theme of the day. Do not hesitate to submit your ideas and suggestions at &lt;a href=&quot;http://blog.taadeem.net/index.php?post/2012/10/12/contact@postgresql-sessions.org&quot;&gt;contact@postgresql-sessions.org &lt;/a&gt;. And &lt;a href=&quot;http://blog.taadeem.net/index.php?post/2012/10/12/https :/ /twitter.com/intent/follow?screen_name=Pgsession&quot;&gt;Follow us on twitter &lt;/a&gt;!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PostgreSQL Magazine needs you !</title>
    <link>http://blog.taadeem.net/index.php?post/2012/03/18/PostgreSQL-Magazine-needs-you-%21</link>
    <guid isPermaLink="false">urn:md5:379f07146d45323ec872f0bff726f09e</guid>
    <pubDate>Sun, 18 Mar 2012 23:03:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>planet-postgresql</category><category>postgresql</category>    
    <description>    &lt;p&gt;The first official issue of PostgreSQL Magazine is on its way !&lt;/p&gt;


&lt;p&gt;If you want to help us, now is the time ! We need reviewers. Proof-reading takes only a few minutes and it's a
great way of contributing. It's an important job that gives the magazine its quality.&lt;/p&gt;


&lt;p&gt;The review process based on a quite simple wiki. Each article is a wiki page. As a reviewer you just have to click &quot;edit&quot; and correct as many errors you can spot :-)&lt;/p&gt;


&lt;p&gt;There are currently &lt;a href=&quot;http://pgmag.org/wiki/01/reviewing&quot;&gt;4 articles waiting for review&lt;/a&gt; and few more to come by the end of the month.&lt;/p&gt;


&lt;p&gt;If you're interested, please read the &lt;a href=&quot;http://pgmag.org/wiki/reviewer_guidelines&quot;&gt;reviewer guidelines&lt;/a&gt; and subscribe to the &lt;a href=&quot;https://groups.google.com/group/pgmag/&quot;&gt;pgmag mailing list&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;We plan to release PostgreSQL Magazine #01 in April. And second issue is already scheduled for october 2012. Stay tuned !&lt;/p&gt;


&lt;p&gt;For more details, please check : http://pgmag.org/&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Write a Foreign Data Wrapper in 15 minutes (Part 1/2)</title>
    <link>http://blog.taadeem.net/index.php?post/2012/01/31/Write-a-Foreign-Data-Wrapper-in-15-minutes-Part-1/2</link>
    <guid isPermaLink="false">urn:md5:872d161b7cbc0f54404592fa8155bf5c</guid>
    <pubDate>Tue, 31 Jan 2012 22:49:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>planet-postgresql</category><category>postgresql</category>    
    <description>    &lt;p&gt;Among the &lt;a href=&quot;http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.1&quot;&gt;long list of new features of PostgreSQL 9.1&lt;/a&gt; the new SQL/MED implementation is probably of the most underrated. &lt;a href=&quot;http://en.wikipedia.org/wiki/SQL/MED&quot;&gt;SQL/MED&lt;/a&gt; is an extension of the SQL standard defines foreign data wrappers (FDW) that allow you to reach data located outside of your database, with regular SQL request (MED stands for Management of External Data). In a nutshell, &lt;a href=&quot;http://rhaas.blogspot.com/2011/01/why-sqlmed-is-cool.html&quot;&gt;SQL/MED is cool&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;As far as i know, PostgreSQL and DB2 are the only major RDBMS providing an implementation of this standard. The beauty with  PostgreSQL is that you can write your own data wrappers to connect your database to any storage you want ; other RDBMS, NoSQL storages, web services,  whatever system that holds data and can deliver it.&lt;/p&gt;



&lt;p&gt;Basically to &lt;a href=&quot;http://www.postgresql.org/docs/9.1/static/fdwhandler.html&quot;&gt;Write a Foreign Data Wrapper&lt;/a&gt; you need to code &lt;a href=&quot;http://www.postgresql.org/docs/9.1/static/fdw-callbacks.html&quot;&gt;six callback routines in C&lt;/a&gt; to explain how to plan and execute queries toward your new source of data.&lt;/p&gt;


&lt;p&gt;PostgreSQL 9.1 has been released a few month ago, but there's already a bunch of FDW available (even though most of them are still beta). At the time, I'm writing this we already have &lt;a href=&quot;http://wiki.postgresql.org/wiki/Foreign_data_wrappers more than 15 wrappers&quot; title=&quot;http://wiki.postgresql.org/wiki/Foreign_data_wrappers more than 15 wrappers&quot;&gt;http://wiki.postgresql.org/wiki/For...&lt;/a&gt;, so you can connect your PostgreSQL server to ; &lt;a href=&quot;http://pgfoundry.org/projects/oracle-fdw/&quot;&gt;Oracle&lt;/a&gt;, &lt;a href=&quot;http://github.com/dpage/mysql_fdw&quot;&gt;MySQL&lt;/a&gt;, &lt;a href=&quot;http://multicorn.org/foreign-data-wrappers/#sqlite-foreign-data-wrapper&quot;&gt;SQLlite&lt;/a&gt;, &lt;a href=&quot;https://github.com/ZhengYang/odbc_fdw&quot;&gt;anything providing an ODBC driver&lt;/a&gt;, &lt;a href=&quot;https://github.com/guedes/ldap_fdw&quot;&gt;LDAP&lt;/a&gt;, &lt;a href=&quot;https://github.com/ZhengYang/couchdb_fdw&quot;&gt;couchdb&lt;/a&gt;, &lt;a href=&quot;https://github.com/dpage/redis_fdw&quot;&gt;redis&lt;/a&gt;, &lt;a href=&quot;https://github.com/umitanuki/s3_fdw&quot;&gt;Amazon S3 storage&lt;/a&gt;, &lt;a href=&quot;http://www.postgresql.org/docs/9.1/static/file-fdw.html&quot;&gt;CSV files&lt;/a&gt;, &lt;a href=&quot;https://github.com/umitanuki/twitter_fdw&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;https://github.com/Kozea/Multicorn/blob/master/python/multicorn/googlefdw.py&quot;&gt;Google Search&lt;/a&gt;, &lt;a href=&quot;https://github.com/cyga/www_fdw/&quot;&gt;HTML pages&lt;/a&gt;, &lt;a href=&quot;http://multicorn.org/foreign-data-wrappers/#rss-foreign-data-wrapper&quot;&gt;RSS feeds&lt;/a&gt;, ....&lt;/p&gt;


&lt;p&gt;For an almost complete list, check out the PostgreSQL wiki ;
&lt;a href=&quot;http://wiki.postgresql.org/wiki/Foreign_data_wrappers&quot; title=&quot;http://wiki.postgresql.org/wiki/Foreign_data_wrappers&quot;&gt;http://wiki.postgresql.org/wiki/For...&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;And of course these wrappers are packaged as extension and most of them are available on PGXN and quite easy to install :
&lt;a href=&quot;http://pgxn.org/tag/fdw/&quot; title=&quot;http://pgxn.org/tag/fdw/&quot;&gt;http://pgxn.org/tag/fdw/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;But there's more ! Among these FDW there's one called &lt;a href=&quot;http://multicorn.org/&quot;&gt;Multicorn&lt;/a&gt;. This particular extension allows you to write FDW in Python. A wrapper over another wrapper. Basically this means you don't have to know C to write your own FDW and you can use high-level libraries from the Python world.&lt;/p&gt;


&lt;p&gt;Ok let's take a simple example. I'd like to query data contained in a web calendar like Google Calendar. Those data are available in ical files, with a specific format called iCalendar. So want i need to do is explain PostgreSQL how to reach and parse the files.&lt;/p&gt;


&lt;p&gt;With Python and Multicorn, this is done with 20 lines of code : see  &lt;a href=&quot;https://github.com/daamien/Multicorn/blob/80e2ac7650d0a125b1eebb77c03cc77489cd134d/python/multicorn/icalfdw.py&quot;&gt;icalfdw.py&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;And that's it.&lt;/p&gt;


&lt;p&gt;Of course this is a basic implementation. We can do better with some optimizations and a few log handling. It's also important to keep in mind that  foreign data wrappers have strong limitations... I'll talk about all that and other things in my next blog post.&lt;/p&gt;


&lt;p&gt;In the meantime, if you're in Brussels this week-end for &lt;a href=&quot;http://fosdem.org/2012/&quot;&gt;FOSDEM&lt;/a&gt; you can come to the &lt;a href=&quot;http://fosdem.org/2012/schedule/track/postgresql_devroom&quot;&gt;PostgreSQL Devroom&lt;/a&gt;, I'll make a presentation of Multicorn along with its creator.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PG Conf Europe : Don't miss the party tonight !</title>
    <link>http://blog.taadeem.net/index.php?post/2011/10/19/PG-Conf-Europe-%3A-Dont-miss-the-party-tonight</link>
    <guid isPermaLink="false">urn:md5:848b80e017aefa53d2d65797ddd15ea9</guid>
    <pubDate>Wed, 19 Oct 2011 08:32:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>postgresql</category>
        <category>planet-postgresql</category><category>postgresql</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://2011.pgconf.eu&quot; hreflang=&quot;en&quot;&gt;PostgreSQL Conference Europe 2011&lt;/a&gt; is now entering in its second day. If you're one of the lucky attendees, in addition to the tremendous &lt;a href=&quot;http://www.postgresql.eu/events/schedule/pgconfeu2011/&quot; hreflang=&quot;en&quot;&gt;schedule&lt;/a&gt; of Day2  you are also invited to the traditional social event sponsored by Dalibo and OpenSCG. The party will start at 6:30 PM inside the Hotel Casa 400.&lt;/p&gt;


&lt;p&gt;And thanks to Heroku, another party is planned for tomorrow&amp;nbsp;! This time, the event will happen in a bar close to the hotel.&lt;/p&gt;


&lt;p&gt;More details on the conference website&amp;nbsp;:
&lt;a href=&quot;http://2011.pgconf.eu/party/&quot; title=&quot;http://2011.pgconf.eu/party/&quot;&gt;http://2011.pgconf.eu/party/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Enjoy&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PostgreSQL Magazine #00 is out</title>
    <link>http://blog.taadeem.net/index.php?post/2011/05/20/PostgreSQL-Magazine-00-is-out</link>
    <guid isPermaLink="false">urn:md5:01fde4f5ae7d794bf2ff5c2e99ce208e</guid>
    <pubDate>Fri, 20 May 2011 19:11:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>postgresql</category>
        <category>planet-postgresql</category>    
    <description>    &lt;p&gt;I'm very pleased to announce the release of the demo version of the
so-called &quot;PostgreSQL Magazine&quot;. The issue #00 is available in both online and paper versions.
You can either :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read it Online: &lt;a href=&quot;http://pgmag.org/00/read&quot; title=&quot;http://pgmag.org/00/read&quot;&gt;http://pgmag.org/00/read&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Buy the Print Edition: &lt;a href=&quot;http://pgmag.org/00/buy&quot; title=&quot;http://pgmag.org/00/buy&quot;&gt;http://pgmag.org/00/buy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;or Download the PDF: &lt;a href=&quot;http://pgmag.org/00/download&quot; title=&quot;http://pgmag.org/00/download&quot;&gt;http://pgmag.org/00/download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please consider this first issue as a &quot;beta&quot;. Our goal is to get
feedback and see if there's a public for such a magazine.&lt;/p&gt;


&lt;p&gt;So if you've read the magazine and have some time to write an e-mail,
we'd love to know what you think of this first attempt. More precisely,
let us know :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you would buy such a magazine on a regular basis ?&lt;/li&gt;
&lt;li&gt;If you would recommend it to your friends or colleagues ?&lt;/li&gt;
&lt;li&gt;If you would offer it to your clients as advocacy material ?&lt;/li&gt;
&lt;li&gt;If you would write or help the magazine in any way ?&lt;/li&gt;
&lt;li&gt;If you would be ok to see advertisement in the magazine ?&lt;/li&gt;
&lt;li&gt;If you would like to have more pages in it ?&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please send your comments, suggestions and critics at contact@pgmag.org.
A global recap of all the feedbacks will be published on
http://www.pgmag.org in a few days.&lt;/p&gt;


&lt;p&gt;Once again i'd like to tell my most sincere thanks to all the people
involved in this project !&lt;/p&gt;


&lt;p&gt;And to you, future readers of PostgreSQL Magazine : Enjoy !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Predicting Postgres 9.0 final release date...</title>
    <link>http://blog.taadeem.net/index.php?post/2010/08/31/Predicting-Postgres-90-final-release-date</link>
    <guid isPermaLink="false">urn:md5:b11f220ad978be5cba76494baa8fffb4</guid>
    <pubDate>Wed, 01 Sep 2010 20:10:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>planet-postgresql</category><category>postgresql</category>    
    <description>&lt;p&gt;While the first candidate release of &lt;a href=&quot;http://www.postgresql.org/about/news.1230&quot; hreflang=&quot;en&quot;&gt;PostgreSQL 9.0 RC1 is just coming out &lt;/a&gt;, impatience increases and the question comes again and again : &quot;When can we use version 9.0 in production ? &quot; . Obviously, it is impossible to give a precise answer to this question because the delivery process of PostgreSQL versions is not based on a strict schedule (like Ubuntu for example) but on the quality and quantity of tests ...&lt;/p&gt;    &lt;p&gt;So the best answer is: &quot;Please &lt;a href=&quot;http://www.postgresql.org/developer/beta&quot; hreflang=&quot;en&quot;&gt;test PostgreSQL 9.0 RC PostgreSQL &lt;/a&gt; yourself.  Now !  And in case of problems, submit a bug report to developers. It is a simple way to participate to the community effort : the more testers we have, the sooner the stable version will be released !&lt;/p&gt;


&lt;p&gt;However, this answer is not always satisfactory for the more impatient.
So now, let's try to predict the release date, not with a crystal ball, but by analyzing the statistics of the release dates of the last 5 versions (8.0 to 8.4). I looked for the release dates for every  beta and RC versions since August 9, 2004. This gives me the following graph :&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pg_releases_stats.png&quot; alt=&quot;pg_releases_stats.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;We can see striking similarities between the 8.0 and 9.0: for both versions the period between beta1 and RC1 lasts about 118 days (116 for the 8.0, 120 for the 9.0), whereas the versions 8.1, 8.2, 8.3 and 8.4, this period lasts between 60 and 90 days ... Nothing very surprising about all this! Change in the first digit indicates a new generation and the arrival of features that have a strong impact on Postgres usage (eg: a port for windows version 8.0, the Hot Standby / streaming replication for the 9.0) . So it seems pretty logical that we need way more tests and bug fixes when we go  from 7 to 8 and from 8 to 9 ....&lt;/p&gt;


&lt;p&gt;Now we can use the data we have collected, especially the dates of the 8.0 release to predict the output of PostgreSQL 9.0 final version: It took 47 days between the release of version 8.0.0 and version 8.0RC1 final. If we follow the rhythm correlation with version 8.0, then for Postgres 9.0 the RC period should last 49 days. Then the final release date would be &lt;strong&gt;October 18&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Of course, this is an abstract and naive approach... The delivery process of PostgreSQL is far too complex to be mathematically modeled in this way and I do not pretend to read the future :)&lt;/p&gt;


&lt;p&gt;However this little exercise of statistics shows that the PostgreSQL project has a certain constancy in its progression and in its operation.&lt;/p&gt;


&lt;p&gt;Moreover, we may also note that the test periods of PostgreSQL are very short (between 75 and 160 days). For such a big software (500,000 lines of code) this is exceptional! For example, the test period of Oracle 11g lasted over 10 months (September 2006 -&amp;gt; July 2007) ... Again, the explanation is quite logical: the Postgres source code is open and the beta-testers are numerous and very active !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>PG Day Europe 2009 : One week later</title>
    <link>http://blog.taadeem.net/index.php?post/2009/11/17/PG-Day-Europe-2009-%3A-One-week-later</link>
    <guid isPermaLink="false">urn:md5:744342a45e40641204c79e5b6eedb564</guid>
    <pubDate>Tue, 17 Nov 2009 13:01:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>postgresql</category>
        <category>planet-postgresql</category>    
    <description>    &lt;p&gt;One full week has passed since the end of &lt;a href=&quot;http://2009.pgday.eu&quot;&gt;PG Day Europe 2009&lt;/a&gt; and yet it's still hard to describe the intensity of these 2 days of meeting.
Everything went so fast ! Here's some figures to  :  &lt;a href=&quot;http://wiki.postgresql.org/wiki/PGDay.EU%2C_Paris_2009&quot;&gt;25 talks&lt;/a&gt;, 32 speakers, 200 PostgreSQL fanboys and fangirls...&lt;/p&gt;


&lt;p&gt;I had the chance to be part of the organization, so here's a bunch of lessons learned during this fantastic experience :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://mha.smugmug.com/Conferences/PostgreSQL/PGDayEU-2009/10262763_bg6oF#708211822_hZ6By&quot;&gt;Feeding 200 persons&lt;/a&gt; during 2 days is a real challenge !&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Against all odds, the French visitors were likely to attend English lectures.  About 80% of the audience consisted of French and despite my fears, language was not a barrier.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Participate in organizing such an event is a simple and easy way to contribute to the PostgreSQL project. There's nothing better to understand and help this community.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Whatever you do there will always be someone to take a &lt;a href=&quot;http://mha.smugmug.com/Conferences/PostgreSQL/PGDayEU-2009/10262763_bg6oF#708211606_cgw6u&quot;&gt;compromising photo&lt;/a&gt;  of you.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;We still have a long way to go to achieve what the &lt;a href=&quot;http://www.postgresql.jp/events/pgcon09j/e/pgcon2009j/view&quot;&gt;JPUG&lt;/a&gt; is doing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, I take this opportunity to thank  all the people that made this adventure possible: the staff, sponsors, speakers, ...  The list is too long.&lt;/p&gt;


&lt;p&gt;I do not know if I can participate in the organization PGDay Europe 2010 but I already cannot wait to be there !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Should PostgreSQL Europe organisation settle down in France ?</title>
    <link>http://blog.taadeem.net/index.php?post/2007/09/16/Should-PostgreSQL-Europe-organisation-settle-down-in-France</link>
    <guid isPermaLink="false">urn:md5:33aca310be147a219207aade9451d2fa</guid>
    <pubDate>Sun, 16 Sep 2007 16:17:00 +0000</pubDate>
    <dc:creator>damien</dc:creator>
        <category>postgresql</category>
        <category>planet-postgresql</category>    
    <description>    &lt;p&gt;hi folks !&lt;/p&gt;


&lt;p&gt;Over the last few days, I've met almost every &quot;key members&quot; of the PostgreSQLFr association and asked if they would be OK to transform the association into an European purpose one.&lt;/p&gt;


&lt;p&gt;The response is unanimous : they are not comfortable with the idea that the french association would &quot;disappear&quot;. It represents for them 3 years of work : Lots of time and energy to build this user group from scratch. Changing the name and goal of the association would somewhat mess things up. Besides the association aims to provides help to **french speaking** users, which includes Canada, West Africa, etc. etc. Obviously this is out of the scope of an European user group.&lt;/p&gt;


&lt;p&gt;By the way we still consider that the PostgreSQL Europe is a great project, but we think it would be better to have two separate entities.&lt;/p&gt;


&lt;p&gt;Furthermore some of the member of the french &quot;crew&quot; are OK to provide help to create an European non-profit association under the french law. As i said previously it's a very common thing in France and i think this could be done within a few months.&lt;/p&gt;


&lt;p&gt;However there are two things that seems important to us. First we'll need help from you :-) Once the association is declared we hope that people from every major country will get into the &quot;administration board&quot; and get involved into the association life. Our main concern is that managing this new organisation alone would only divide by two our time and energy. The second point is that the purpose of this new organisation has to be defined clearly and precisely before creating the association. Speaking with each other french members, we noticed that for the moment this purpose was pretty &quot;blur&quot; to us :-)&lt;/p&gt;


&lt;p&gt;Based on these two things (involvement and clear purpose) we would be very happy to create an European association based on the french law.&lt;/p&gt;


&lt;p&gt;Before going any further let me present the advantages of the french law association : not only is it very simple to create but it's also very strict about the &quot;non-profit&quot; aspect .Of course this doesn't mean that the association cannot earn money, sell goodies, pay people and such ... but it's clearly defined ( and also checked by the authorities ) that the money earned must be used only for the project. Any kind of commercial activities and any personal earning is firmly prohibited. I guess this is not unique, most of European countries may have such kind of laws . But my point of is that the french version fits perfectly our need.&lt;/p&gt;


&lt;p&gt;Here's the text of law ( in English ) for those of us who are familiar with legal vocabulary : http://web.archive.org/web/20040615054216/www.justice.gouv.fr/anglais/europe/aassoc.htm&lt;/p&gt;


&lt;p&gt;Now to answer to Andreas question about the next steps, here's my point of view :&lt;/p&gt;


&lt;p&gt;1/ We need to make some kind of poll to see if creating PostgreSQL Europe under the french law is OK for every one, or if there are others possibilities.&lt;/p&gt;


&lt;p&gt;2/ If the &quot;french association&quot; proposition is accepted then we'll have to write together the legal statutes in English ( i have samples of generic statutes we can adapt to our need ). Once the statutes are written, we can translate them in every languages and propose them for acceptance. A wiki could be a good tool for all that stuff, imho.&lt;/p&gt;


&lt;p&gt;3/ Once the statutes are accepted, we'll have to decide what will be the address of the association. I think the best idea is to locate the association in Paris . We'll also have to name 3 persons that will constitute the &quot;temporary Administration Board&quot; of the association and make the official declaration to french authorities. This declaration will take a least one month to be &quot;fully official&quot; as french administration is not a very fast machine.&lt;/p&gt;


&lt;p&gt;4/ Once the the declaration is fully done, we can open membership.&lt;/p&gt;


&lt;p&gt;5/ In February 2008, we meet at FOSDEM to make the first&quot;General Assembly&quot; and replace the temporary Administration Board with a brand-new democratically elected one.&lt;/p&gt;


&lt;p&gt;6/ After that the administration board meetings can be made via teleconference or IRC... However i think that meeting each other &quot;in real life&quot; once in a year is mandatory.&lt;/p&gt;


&lt;p&gt;These 6 steps are based on my experience, on PostgreSQLFr members advices and on my interview with Tristan Nitot. Surely there are other ways to do this and some of them might be better than the one i exposed. What i like with this one is that it gets us on track and focused on a deadline : FOSDEM in February. That leaves us 5 months to build this thing up :-)&lt;/p&gt;


&lt;p&gt;Any suggestions, critics or addendum to this proposition are more than welcome !&lt;/p&gt;


&lt;p&gt;Regards,&lt;/p&gt;


&lt;p&gt;--
damien clochard
http://dalibo.org | http://dalibo.com&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>