<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    
    <link href="http://blog.hagander.net/feeds/atom.xml" rel="self" title="Magnus Hagander's PostgreSQL blog" type="application/atom+xml" />
    <link href="http://blog.hagander.net/"                        rel="alternate"    title="Magnus Hagander's PostgreSQL blog" type="text/html" />
    <link href="http://blog.hagander.net/rss.php?version=2.0"     rel="alternate"    title="Magnus Hagander's PostgreSQL blog" type="application/rss+xml" />
    <title type="html">Magnus Hagander's PostgreSQL blog</title>
    <subtitle type="html"></subtitle>
    
    <id>http://blog.hagander.net/</id>
    <updated>2012-01-30T17:25:35Z</updated>
    <generator uri="http://www.s9y.org/" version="1.5.4">Serendipity 1.5.4 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://blog.hagander.net/archives/203-Finding-gaps-in-partitioned-sequences.html" rel="alternate" title="Finding gaps in partitioned sequences" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2012-01-27T16:53:52Z</published>
        <updated>2012-01-30T17:25:35Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=203</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=203</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/203-guid.html</id>
        <title type="html">Finding gaps in partitioned sequences</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>There are an almost unlimited number of articles on the web about how to find gaps in sequences in SQL. And it doesn't have to be very hard. Doing it in a "partitioned sequence" makes it a bit harder, but still not very hard. But when I turned to a window aggregate to do that, I was immediately told "hey, that's a good example of a window aggregate to solve your daily chores, you should blog about that". So here we go - yet another example of finding a gap in a sequence using SQL.</p>

<p>I have a database that is very simply structured - it's got a primary key made out of <i>(groupid, year, month, seq)</i>, all integers. On top of that it has a couple of largish text fields and an fti field for full text search. (Initiated people will know right away which database this is). The sequence in the seq column resets to zero for each combination of <i>(groupid, year, month)</i>. And I wanted to find out where there were gaps in it, and how big they were, to debug the tool that wrote the data into the database. This is really easy with a window aggregate:</p>


<pre><code><div class="geshi" style="text-align: left"><br /><span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #66cc66;">&#40;</span><br />&#160; &#160;<span style="color: #993333; font-weight: bold;">SELECT</span><br />&#160; &#160; &#160; gropid,<br />&#160; &#160; &#160; year,<br />&#160; &#160; &#160; month,<br />&#160; &#160; &#160; seq, <br />&#160; &#160; &#160; seq-lag<span style="color: #66cc66;">&#40;</span>seq,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> OVER <span style="color: #66cc66;">&#40;</span>PARTITION <span style="color: #993333; font-weight: bold;">BY</span> groupid, year, month <span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> seq<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> gap <span style="color: #993333; font-weight: bold;">FROM</span> mytable<br /><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> t<br /><span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #66cc66;">&#40;</span>t.gap=<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><br /><span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> groupid, year, month, seq<br />&#160;</div></code></pre>

<p>One advantage to using a window aggregate for this is that we actually get the whole row back, and not just the primary key - so it's easy enough to include all the data you need to figure something out.</p>

<p>What about performance? I don't really have a big database to test this on, so I can't say for sure. It's going to be a sequential scan, since I look at the <i>whole</i> table,and not just parts of it. It takes about 4 seconds to run over a table of about a million rows, 2.7Gb, on a modest VM with no actual I/O capacity to speak of and a very limited amount of memory, returning about 100 rows. It's certainly by far fast enough for me in this case.</p>

<p>And as a bonus, it found me two bugs in the loading script and at least one bug in somebody elses code that I'm now waiting on to get fixed...</p>

 
            </div>
        </content>
        <dc:subject>postgresql</dc:subject>
<dc:subject>sql</dc:subject>
<dc:subject>window aggregates</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/202-www.postgresql.org-brand-new,-yet-old-and-familiar.html" rel="alternate" title="www.postgresql.org - brand new, yet old and familiar" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-12-21T13:33:00Z</published>
        <updated>2011-12-22T17:41:58Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=202</wfw:comment>
    
        <slash:comments>6</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=202</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/202-guid.html</id>
        <title type="html">www.postgresql.org - brand new, yet old and familiar</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Most of the visitors to <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/']);"  href="http://www.postgresql.org/" onclick="window.open(this.href, '_blank'); return false;">www.postgresql.org</a> probably never noticed that a couple of weeks back, the entire site was replaced with a new one. In fact, we didn't just change the website - just days before, we made large changes to our ftp network as well (more about that in another post, from me or others). So in fact, we <strong>hope</strong> that most people didn't notice. The changes were mainly a technical refresh, and there hasn't been much change to the contents at all yet. We did sneak in a few content changes as well, that have been requested for a while, so I'm going to start with listing those:</p>


<ul>
    <li>The <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/docs/devel/']);"  href="http://www.postgresql.org/docs/devel/" onclick="window.open(this.href, '_blank'); return false;">developer version of the documentation</a> (updated serveral times per day from the tip of the HEAD branch that will eventually become the next version of PostgreSQL) now live on the main website, and will use the same stylesheets to look a lot nicer than before.</li>
    <li>Anybody who submits content to our site (news, events, professional services, products, etc) will notice there is now a new concept of an <i>Organisation</i>. This means that it will finally be possible to have more than one person manage the submissions from a single company or group.</li>
    <li>Again for those that submit content, it is now possible to view which of your submissions are still in the moderation queue, and it's also possible to edit something after it's been submitted. In fact, you can edit your items even after they've been approved. Any such editing will be <i>post-moderated</i>, and if this is abused that organization will be banned from post-moderation - but we don't expect that to ever be necessary.</li>
    <li>And finally, for those that submit content again, we've switched to markdown to format your submissions, instead of a very random subset of allowed HTML tags.</li>
</ul>

The rest of the changes are under the hood, and it's mostly done for two reasons:
<ul>
    <li>The technology powering the site was simply very old</li>
    <li>The frameworks used were quite obscure, which severely limited the number of people who could (or wanted to) work with them</li>
</ul>

<p>Hopefully these two changes will make it easier to contribute to the website, so if you're potentially interested in doing that, please read on!</p>

 <br /><a href="http://blog.hagander.net/archives/202-www.postgresql.org-brand-new,-yet-old-and-familiar.html#extended">Continue reading "www.postgresql.org - brand new, yet old and familiar"</a>
            </div>
        </content>
        <dc:subject>django</dc:subject>
<dc:subject>intrastructure</dc:subject>
<dc:subject>pgweb</dc:subject>
<dc:subject>postgresql</dc:subject>
<dc:subject>python</dc:subject>
<dc:subject>varnish</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/201-PGConf.EU-2011-the-speakers-and-the-presentations.html" rel="alternate" title="PGConf.EU 2011 - the speakers and the presentations" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-11-06T16:36:00Z</published>
        <updated>2011-11-08T10:57:09Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=201</wfw:comment>
    
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=201</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/201-guid.html</id>
        <title type="html">PGConf.EU 2011 - the speakers and the presentations</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>This part of the feedback is almost turning into a repost year from year. But it's a good thing to be reposting if any, so I'm doing it anyway. To start with, just take a look at these graphs:</p>

<p><img src="http://photos.smugmug.com/photos/i-Bs8mPP7/0/O/i-Bs8mPP7.png" width="400" height="200" alt="i-Bs8mPP7.png" /> <img src="http://photos.smugmug.com/photos/i-LjQPx85/0/O/i-LjQPx85.png" width="400" height="200" alt="i-LjQPx85.png" /></p>

<p>Those are pretty fantastic ratings. A full 84% rated the content quality as 4 or 5, and only 1% rated it as less than 3. That basically comes down to there being no talks of bad quality. This confirms the feeling that we had when we tried to pick out the talks for this year - the number of great submissions where just huge. We had to reject around half the talks submitted, and there were only a few of those that we rejected because we thought they weren't very good. Most were simply rejected because we didn't have the time and space to accept them all.</p>

<p>The ratings people have given our speakers confirm what we have always thought to be one of the reasons people like the conference - and many other PostgreSQL conferences as well: you get to listen to and talk to the people who <i>really</i> know what they are talking about. Often because they are the very people who wrote the software in question. A whole <i>96%</i> of all the ratings gave our speakers a score of 4 or 5 for their knowledge of the topic. And <i>nobody</i> scored lower than 3. These truly are the experts you get to meet!</p>

<p>Most of our speakers also scored very high on the Speaker Quality metric. Our top speakers this year were:</p>



<table>
    <tr>
        <td><strong>Speaker</strong></td>
        <td><strong>Rating</strong></td>
        <td><strong>Vote count</strong></td>
        <td><strong>Standard deviation</strong></td>
    </tr>
    <tr>
        <td>Bruce Momjian</td>
        <td>4.8</td>
        <td>31</td>
        <td>0.4</td>
    </tr>
    <tr>
        <td>Ram Mohan</td>
        <td>4.7</td>
        <td>36</td>
        <td>0.5</td>
    </tr>
    <tr>
        <td>Selena Deckelmann</td>
        <td>4.7</td>
        <td>38</td>
        <td>0.5</td>
    </tr>
    <tr>
        <td>Magnus Hagander</td>
        <td>4.6</td>
        <td>52</td>
        <td>0.6</td>
    </tr>
    <tr>
        <td>Simon Riggs</td>
        <td>4.6</td>
        <td>43</td>
        <td>0.6</td>
    </tr>
    <tr>
        <td>Stephen Frost</td>
        <td>4.6</td>
        <td>18</td>
        <td>0.5</td>
    </tr>
    <tr>
        <td>Peter van Hardenberg</td>
        <td>4.5</td>
        <td>11</td>
        <td>0.7</td>
    </tr>
    <tr>
        <td>Gavin M. Roy</td>
        <td>4.5</td>
        <td>10</td>
        <td>0.5</td>
    </tr>
    <tr>
        <td>Greg Smith</td>
        <td>4.5</td>
        <td>68</td>
        <td>0.7</td>
    </tr>
    <tr>
        <td>Harald Armin Massa</td>
        <td>4.4</td>
        <td>10</td>
        <td>0.5</td>
    </tr>
    <tr>
        <td>Steve Singer</td>
        <td>4.4</td>
        <td>10</td>
        <td>0.7</td>
    </tr>
    <tr>
        <td>Gianni Ciolli</td>
        <td>4.4</td>
        <td>32</td>
        <td>0.8</td>
    </tr>
    <tr>
        <td>Dave Page</td>
        <td>4.3</td>
        <td>25</td>
        <td>0.8</td>
    </tr>
    <tr>
        <td>Heikki Linnakangas</td>
        <td>4.3</td>
        <td>12</td>
        <td>0.9</td>
    </tr>
    <tr>
        <td>Ed Boyajian</td>
        <td>4.2</td>
        <td>13</td>
        <td>1.0</td>
    </tr>
    <tr>
        <td>Marc Balmer</td>
        <td>4.1</td>
        <td>12</td>
        <td>0.7</td>
    </tr>
    <tr>
        <td>Dimitri Fontaine</td>
        <td>4</td>
        <td>11</td>
        <td>0.8</td>
    </tr>
</table>

<p>This really is the reason why people come to the conference, and keep coming back the next year - our outstanding speakers! Thank you all for showing up this year to give your presentations, and we hope to see you again next year!</p>

<p>That concludes the posts I'm going to make about pgconf.eu feedback this year. Some of you have already asked about next year, and I'm not going to post any information about the feedback we got there - yet. We are reviewing the feedback we received, and are soon going to start looking for a good venue for next year. We have made the mistake before of announcing a location before we had a venue secured, and we're not going to do that again. We are going to announce it as soon as we know, but that will not be until we have actually decided on an exact venue. But we are absolutely planning to do it again next year, and sometime around the same time of the year. Exactly where we don't know yet...</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/200-PGConf.EU-2011-the-feedback-is-in.html" rel="alternate" title="PGConf.EU 2011 - the feedback is in" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-11-04T09:53:00Z</published>
        <updated>2011-11-04T12:07:47Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=200</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=200</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/200-guid.html</id>
        <title type="html">PGConf.EU 2011 - the feedback is in</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Almost exactly a week later than what we said, I have finally closed down the feedback system for <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/']);"  href="http://2011.pgconf.eu/" onclick="window.open(this.href, '_blank'); return false;">PostgreSQL Conference Europe 2011</a>. I think we all needed slightly more time than we expected to recover and catch up properly...</p>

<p>The detailed feedback for each speaker will be sent out during the day today, unless we run into any unforeseen technical issues, and I will try to summarize the conference-wide feedback here. If any particular note that you posted is not referred here, don't worry - we read them all, but there are far too many of them to post here.</p>

<p>Starting with the conference organization itself and it's venue, I'm really happy to see that we have managed to deliver something that the majority of our attendees really like:</p>

<p><img src="http://photos.smugmug.com/photos/i-kpsz6c3/0/O/i-kpsz6c3.png" width="400" height="200" alt="i-kpsz6c3.png" /> <img src="http://photos.smugmug.com/photos/i-N5rCKq7/0/O/i-N5rCKq7.png" width="400" height="200" alt="i-N5rCKq7.png" /></p>

<p>Not a single vote less than 4, on a scale of 1-5, for the overall impression. And only one below 4 for the programme. I can only say a huge thanks to the big group of volunteers who ran this conference, and made it what it was. Clearly you did a good job!</p>

 <br /><a href="http://blog.hagander.net/archives/200-PGConf.EU-2011-the-feedback-is-in.html#extended">Continue reading "PGConf.EU 2011 - the feedback is in"</a>
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/199-Stockholm-PUG-finally-off-the-ground.html" rel="alternate" title="Stockholm PUG finally off the ground" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-10-05T08:54:00Z</published>
        <updated>2011-10-05T08:58:38Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=199</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=199</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/199-guid.html</id>
        <title type="html">Stockholm PUG finally off the ground</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Last night, we <i>finally</i> got a PostgreSQL User Group in Stockholm started. We've discussed this for <i>years</i>, but never got around to making it actually happen. Well, with big thanks to Claes who took care of the main organization tasks, we finally did - and I'll happily declare it a big success. It was our first meeting, and we actually didn't promote it very well (so bad that at least one fairly well-connected PostgreSQL community guy didn't realize it was on until registration was already closed - I'm sure others missed it too), and we still managed to get more than 30 people there! Awesome!</p>

<p>Hopefully we can keep the numbers at this level. For now, we are planning to meet around once every three months or so, which means we'll be looking at the next meeting sometime in January. Exact date, and also location, yet to be decided upon.</p>

<p>Claes is supposed to be setting us up with a website (we have plenty of domains already...) and an associated mailinglist, and I guess a registered IRC channel as well. Hopefully soon. But given that he set us up with a room, a projector, pizza and beer last night (thanks, btw, and thanks to Glue for picking up the bill), I think we can give him a couple of hours before we start complaining...</p>

<p>So - see you at the next Stockholm PUG meeting!</p>

<p><img src="http://mha.smugmug.com/photos/i-D9twsjx/0/M/i-D9twsjx-M.jpg" width="600" height="450" alt="i-D9twsjx-M.jpg" /></p>

 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/198-pgconf.eu-schedule-keynote-announced.html" rel="alternate" title="pgconf.eu schedule &amp; keynote announced" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-09-19T16:57:00Z</published>
        <updated>2011-09-19T16:57:43Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=198</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=198</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/198-guid.html</id>
        <title type="html">pgconf.eu schedule &amp; keynote announced</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>A little bit later than we hoped, we have now finally published the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgconfeu2011/']);"  href="http://www.postgresql.eu/events/schedule/pgconfeu2011/" onclick="window.open(this.href, '_blank'); return false;">schedule</a> for pgconf.eu. Three days full of presentations to choose from - and of course also the always popular lightning talk sessions. The schedule listed now is what we consider the final version, but we obviously reserve the right to make last-minute modifications both to which talks are included and exactly when they are scheduled, if necessary.</p>

<strong>Keynote speaker</strong><p>We are also happy to announce that the conference <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgconfeu2011/session/215-keynote-afilias-winning-bet-on-open-source/']);"  href="http://www.postgresql.eu/events/schedule/pgconfeu2011/session/215-keynote-afilias-winning-bet-on-open-source/" onclick="window.open(this.href, '_blank'); return false;">keynote</a> will be presented by by Ram Mohan, CTO of Afilias, who will be talking about how Afailias has built their company on open source solutions, and how this has turned into a great success. Afilias as a company has been deeply involved with PostgreSQL for a long time, including employing former Core Team member Jan Wieck and leading the development of the Slony replication system.</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>keynote</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>postgresql</dc:subject>
<dc:subject>schedule</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/197-pgconf.eu-training-announced,-call-for-papers-deadline-extended.html" rel="alternate" title="pgconf.eu training announced, call for papers deadline extended" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-08-21T20:45:00Z</published>
        <updated>2011-08-21T20:45:52Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=197</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=197</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/197-guid.html</id>
        <title type="html">pgconf.eu training announced, call for papers deadline extended</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p><strong>Training</strong></p>

<p>We are happy to announce that our training schedule is now available at <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/training/']);"  href="http://2011.pgconf.eu/training/" onclick="window.open(this.href, '_blank'); return false;">http://2011.pgconf.eu/training/</a>. These trainings are full or half day sessions on the day before the regular conference sessions, and come at an extra cost. The available trainings are:</p>


<ul>
    <li>Performance From Start to Crash by Greg Smith, 2ndQuadrant</li>
    <li>Mastering PostgreSQL Administration by Bruce Momjian, EnterpriseDB</li>
    <li>Building business applications for Cloud with Servoy by Robert Ivens, ROCLASI</li>
    <li>Slony, a still useful replication tool by Guillaume Lelarge, Dalibo</li>
</ul>

<p>Seats are limited at these trainings, so we advise you to book as soon as possible. Training is booked as additional options on the standard conference <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/registration/']);"  href="http://2011.pgconf.eu/registration/" onclick="window.open(this.href, '_blank'); return false;">registration form</a>.</p>

<p><strong>Call for papers</strong></p>

<p>Since we are still in vacation period for a lot of people, we have decided to extend the deadline for our call for papers. The new deadline for submitting talks is midnight, Sep 2nd.</p>

<p>We will, however, start approving talks that have already been submitted as soon as possible, and announce them as soon as we have decided. That means that if you want to be sure that we will have time to review your talk, you should submit as soon as possible!</p>

<p>Full call for paper details are available <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/callforpapers/']);"  href="http://2011.pgconf.eu/callforpapers/" onclick="window.open(this.href, '_blank'); return false;">on the site</a>.</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/196-Get-your-talks-in-for-pgconf.eu-2011.html" rel="alternate" title="Get your talks in for pgconf.eu 2011" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-08-16T14:13:00Z</published>
        <updated>2011-08-16T14:13:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=196</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=196</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/196-guid.html</id>
        <title type="html">Get your talks in for pgconf.eu 2011</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>The call for papers for PGConf.EU 2011 in Amsterdam will close at the end of this week. Now is the time to get your talk submissions in!</p>

<p>We are interested in all kinds of talks - from deep technical ones, to novice oriented advise and case studies of interesting things done with PostgreSQL. We expect a wide range of different skillsets amongst our visitors, so we want a good spread of the talk topics as well!</p>

<p>Of course, all speakers get free entrance to the conference on all days (training sessions not included).</p>

<p>If you have any questions for us, don't hesitate to <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/contact']);"  href="http://2011.pgconf.eu/contact" onclick="window.open(this.href, '_blank'); return false;">contact us</a>.</p>

<p>So, there is nothing to wait for. Head over to the <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/callforpapers/']);"  href="http://2011.pgconf.eu/callforpapers/" onclick="window.open(this.href, '_blank'); return false;">call for papers site</a> and submit your ideas! And please help us spread the word to potential speakers in other communities as well, who may not have seen our posts yet!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/195-PGConf.EU-open-for-registration!.html" rel="alternate" title="PGConf.EU open for registration!" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-07-14T21:23:00Z</published>
        <updated>2011-07-14T21:23:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=195</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=195</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/195-guid.html</id>
        <title type="html">PGConf.EU open for registration!</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>PostgreSQL Conference Europe is now accepting <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/registration/']);"  href="http://2011.pgconf.eu/registration/" onclick="window.open(this.href, '_blank'); return false;">registrations</a> for conference attendance.</p>

<p>The Early Bird special price will be available until September 5th, but that's no reason not to get your registration in early! Should you for some reason want to register for just a part of the conference, single day rates are also available at this time.</p>

<p>If you are planning to attend one of our training sessions, the schedule has not yet been published for that, and it is therefor not yet possible to register for trainings. However, do not worry: the early bird rate will be available for <i>all</i> attendees who register for the trainings - all the way until right before the conference.</p>

<p>And don't forget - the <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/callforpapers']);"  href="http://2011.pgconf.eu/callforpapers" onclick="window.open(this.href, '_blank'); return false;">call for papers</a> is still open! If you have already submitted a talk, or are planning to submit one, we suggest you wait to register until you have received a confirmation on if the talk was accepted or not. The early bird rate will be available long enough for you to register after you have received this notification - and if your talk is accepted, attendance is of course free!</p>

<p>As usual, if you have any questions, don't hesitate to <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/contact/']);"  href="http://2011.pgconf.eu/contact/" onclick="window.open(this.href, '_blank'); return false;">contact us</a>.</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/194-Call-for-papers-PGConf.EU-2011.html" rel="alternate" title="Call for papers - PGConf.EU 2011" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-05-30T07:49:00Z</published>
        <updated>2011-05-30T07:49:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=194</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=194</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/194-guid.html</id>
        <title type="html">Call for papers - PGConf.EU 2011</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>PostgreSQL Conference Europe 2011 will be held on Ocober 18-21 in the Casa 400 Hotel in Amsterdam, The Netherlands. It will cover topics for PostgreSQL users, developers and contributors, as well as decision and policy makers. For more information about the conference, please see the website at <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/']);"  href="http://2011.pgconf.eu/" onclick="window.open(this.href, '_blank'); return false;">http://2011.pgconf.eu/</a>.</p>

<p>We are now accepting proposals for talks. Please note that we are looking for talks in English, Dutch, German and French.</p>

<p>Each session will last 45 minutes, and may be on any topic related to PostgreSQL. Suggested topic areas include:</p>


<ul>
    <li>Developing applications for PostgreSQL</li>
    <li>Administering large scale PostgreSQL installations</li>
    <li>Case studies and/or success stories of PostgreSQL deployments</li>
    <li>PostgreSQL tools and utilities</li>
    <li>PostgreSQL hacking</li>
    <li>Community &amp; user groups</li>
    <li>Tuning the server</li>
    <li>Migrating from other systems</li>
    <li>Scaling/replication</li>
    <li>Benchmarking &amp; hardware</li>
    <li>PostgreSQL related products</li>
</ul>

<p>Of course, we're happy to receive proposals for talks on other PostgreSQL related topics as well.</p>

<p>We also have a limited number of longer, 90-minute, slots available. Please indicate clearly in your submission if you wish to make a 90-minute talk.</p>

<p>Finally, there will be a session of five minute lightning talks. A separate call for proposals will be made for them further on.</p>

<p>The submission deadline is August 21st, 2011. Selected speakers will be notified before Sep 5th, 2011.</p>

<p>Please submit your proposals by going to <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/callforpapers']);"  href="http://2011.pgconf.eu/callforpapers" onclick="window.open(this.href, '_blank'); return false;">http://2011.pgconf.eu/callforpapers</a> and following the instructions.</p>

<p>If your proposal is in a non-english language, please include a single-sentence description of the presentation in English as well in the field for submission notes.</p>

<p>The proposals will be considered by committee who will produce a schedule to be published nearer the conference date. If your proposal has been accepted, you will be informed by email within two weeks of the submission deadline.</p>

<p>This call for papers is also available on the web at <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/callforpapers']);"  href="http://2011.pgconf.eu/callforpapers" onclick="window.open(this.href, '_blank'); return false;">http://2011.pgconf.eu/callforpapers</a></p>

<p>We look forward to hearing from you, and seeing you in Amsterdam in October!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/193-Extensions-in-PostgreSQL-9.1-fixes-another-pet-peeve.html" rel="alternate" title="Extensions in PostgreSQL 9.1 fixes another pet-peeve" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-05-16T07:58:00Z</published>
        <updated>2011-05-16T07:58:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=193</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=193</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/193-guid.html</id>
        <title type="html">Extensions in PostgreSQL 9.1 fixes another pet-peeve</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>One thing I've really disliked is the fact that contrib modules had installation scripts that enforced the schema to public for the installation. In my opinion, for no useful reason at all.</p>

<p>For example, I often install the <i>pgcrypto</i> contrib module. And I install this in the <i>pgcrypto</i> schema, that I then either add to the <i>search_path</i> variable or just explicitly use in my queries, with things like <i>pcrypto.crypt('foobar','barfoo')</i>. For versions prior to 9.1, being able to do this required me to manually edit the installed pgcrypto.sql file, to remove the <i>SET search_path = public;</i> command.</p>

<p>Extensions in 9.1 makes this so much nicer. To get pgcrypto into it's own schema, I now just need to do:</p>


<pre><code>postgres=# CREATE SCHEMA pgcrypto;
CREATE SCHEMA
postgres=# CREATE EXTENSION pgcrypto SCHEMA pgcrypto;
CREATE EXTENSION</code></pre>

If I happen to create it in public by mistake, I can even move it after the fact!
<pre><code>postgres=# ALTER EXTENSION pgcrypto SET SCHEMA pgcrypto;
ALTER EXTENSION</code></pre>

<p>You still need to create the schema manually - in theory we could auto-create that, but the work is still a lot easier than before. And fully supported!</p>

 
            </div>
        </content>
        <dc:subject>9.1</dc:subject>
<dc:subject>extensions</dc:subject>
<dc:subject>pgcrypto</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/192-Remote-log-reading-in-PostgreSQL-9.1.html" rel="alternate" title="Remote log reading in PostgreSQL 9.1" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-05-02T19:05:00Z</published>
        <updated>2011-05-02T20:37:14Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=192</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=192</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/192-guid.html</id>
        <title type="html">Remote log reading in PostgreSQL 9.1</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>PostgreSQL 9.1 beta1 <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/about/news.1313']);"  href="http://www.postgresql.org/about/news.1313" onclick="window.open(this.href, '_blank'); return false;">now available</a> - now is a great time to start testing it, and trying out all the great new features.</p>

<p>There have always been a number of ways to read your PostgreSQL logs remotely, over a libpq connection. For example, you can use the <i>pg_read_file()</i> function - which is what pgadmin does. PostgreSQL 9.1 adds a new and more convenient way (in some ways) to do this - using SQL/MED.</p>

<p>PostgreSQL 9.1 comes with SQL standard SQL/MED functionality. The MED in is short for "Managemend of External Data", and as the name sounds, it's about accessing data that's external to the PostgreSQL server. The SQL/MED functionality is not (yet) complete, but it's already very useful in it's current state.</p>

<p>In SQL/MED, there is something called a <i>Foreign Data Wrapper</i>, that can be compared to a driver. Using this <i>FDW</i>, we can create one or more <i>Foreign Servers</i>, which is a definition of how to connect to a specific instance of the service - if any. Finally, we can create one or more <i>Foreign Tables</i> on each of the <i>Foreign Servers</i>, giving us direct access to the remote data using SQL.</p>

 <br /><a href="http://blog.hagander.net/archives/192-Remote-log-reading-in-PostgreSQL-9.1.html#extended">Continue reading "Remote log reading in PostgreSQL 9.1"</a>
            </div>
        </content>
        <dc:subject>9.1</dc:subject>
<dc:subject>extensions</dc:subject>
<dc:subject>fdw</dc:subject>
<dc:subject>logging</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/191-Joining-the-PostgreSQL-Core-Team.html" rel="alternate" title="Joining the PostgreSQL Core Team" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-04-27T19:02:00Z</published>
        <updated>2011-04-29T10:49:29Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=191</wfw:comment>
    
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=191</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/191-guid.html</id>
        <title type="html">Joining the PostgreSQL Core Team</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>As has just been announced <a onclick="_gaq.push(['_trackPageview', '/extlink/archives.postgresql.org/pgsql-hackers/2011-04/msg01643.php']);"  href="http://archives.postgresql.org/pgsql-hackers/2011-04/msg01643.php" onclick="window.open(this.href, '_blank'); return false;">here</a>, I was recently invited to join pgsql-core, and have accepted.</p>

<p>I guess the guys <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/community/contributors']);"  href="http://www.postgresql.org/community/contributors" onclick="window.open(this.href, '_blank'); return false;">currently on it</a> finally got tired of all my complaints, and figured out the way to make me stop was to suck me into the organization. The future will tell if their strategy will be successful or not...</p>

<p>For those who don't know (this hopefully doesn't include my readers on <a onclick="_gaq.push(['_trackPageview', '/extlink/planet.postgresql.org/']);"  href="http://planet.postgresql.org/" onclick="window.open(this.href, '_blank'); return false;">Planet PostgreSQL</a>), pgsql-core is the "steering committee" for the PostgreSQL project. Exactly what they do seem to be somewhat up for debate both outside and inside of the group itself, but it at least has something to do with the leadership of the project...</p>

<p>Anyway, I'd like to thank the guys in the group for showing this trust in me, and shall do my best not to screw it up!</p>

 
            </div>
        </content>
        <dc:subject>core</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/190-PGConf.EU-2011-will-be-held-in-Amsterdam-in-October.html" rel="alternate" title="PGConf.EU 2011 will be held in Amsterdam in October" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-04-12T08:13:00Z</published>
        <updated>2011-04-12T08:13:40Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=190</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=190</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/190-guid.html</id>
        <title type="html">PGConf.EU 2011 will be held in Amsterdam in October</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>It's time to mark your calendars: <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/']);"  href="http://2011.pgconf.eu/" onclick="window.open(this.href, '_blank'); return false;">PostgreSQL Conference Europe 2011</a> (formerly known as PGDay.EU) will be held on October 18-21 at the Casa400 Hotel in Amsterdam, The Netherlands.</p>

<p>Like last year, the conference will be held in a hotel venue, combining both the conference rooms and guest rooms, so you don't have to waste any time finding your way around the city. As in previous years, the conference will include full catered coffee breaks and lunches, to make the most of the time. The first day of the conference will be a training day, and the following three days will be regular conference tracks. The conference will accept talks in English, Dutch, German and French, to benefit those attendees who prefer talks in their native language.</p>

<p>We are just starting our search for <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/sponsors/']);"  href="http://2011.pgconf.eu/sponsors/" onclick="window.open(this.href, '_blank'); return false;">sponsors</a> - if you are interested in sponsoring the conference, or know someone who is, please take a look at our <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu/becomesponsor']);"  href="http://2011.pgconf.eu/becomesponsor" onclick="window.open(this.href, '_blank'); return false;">sponsorship opportunities</a> and don't hesitate to contact us if you have any questions or would like to propose an alternative arrangement.</p>

<p>We will also follow up with a call for papers later, and in due course open for registration and post a conference schedule. For now, mark the dates, and follow the news on <a onclick="_gaq.push(['_trackPageview', '/extlink/2011.pgconf.eu']);"  href="http://2011.pgconf.eu" onclick="window.open(this.href, '_blank'); return false;">our website</a> and on our twitter stream <a onclick="_gaq.push(['_trackPageview', '/extlink/twitter.com/pgconfeu']);"  href="http://twitter.com/pgconfeu" onclick="window.open(this.href, '_blank'); return false;">@pgconfeu</a>.</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgconfeu</dc:subject>
<dc:subject>pgconfeusite</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/189-Training-at-the-increasingly-misnamed-PgEast.html" rel="alternate" title="Training at the increasingly misnamed PgEast" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-03-14T12:20:00Z</published>
        <updated>2011-03-14T12:20:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=189</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=189</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/189-guid.html</id>
        <title type="html">Training at the increasingly misnamed PgEast</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Next week it's time for <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresqlconference.org/']);"  href="http://www.postgresqlconference.org/" onclick="window.open(this.href, '_blank'); return false;">PgEast: 2011</a>, this time in New York City.</p>

<p>I've already <a href="http://blog.hagander.net/archives/166-Heading-west,-going-east,-better-schedule,-and-more.html" onclick="window.open(this.href, '_blank'); return false;">outlined</a> why the East part of "PostgreSQL Conference East" (as it was called at the time) is incorrect: as is obvious to anybody with a basic knowledge of geography, the conference is to the <i>west</i>. From what I can tell, it's approximately 74 degrees west of zero, which means it's more than 20% <i>of the world</i> to the west.</p>

<p>In expanding this scope, it seems JD has this year decided to get the rest of the name wrong as well, in a bid to get more people. Just like it's 20% of the world wrong in location, it's no longer a PostgreSQL conference. Instead it's more of a cross-database conference, with an entire track dedicated to MongoDB (incidentally, approximately 20% of the tracks, it seems). Is that bad? Absolutely not - I'm looking forward to sneaking in on one or two of those MongoDB talks. But I think it means we have to go back to the proper name for the conference - <i>JDCon-East</i>!</p>

<p>And I'm sorry JD, but whatever numbers you get, you will not be the biggest <i>PostgreSQL conference</i> around. We are going to have to leave that title where it belongs - with the Brazilians (for now).</p>

<p>This year, the conference is also running a full <i>7 parallel training sessions</i> the day before the actual conference. As part of this, I'm giving a half-day training on <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresqlconference.org/content/streaming-replication-and-hot-standby']);"  href="https://www.postgresqlconference.org/content/streaming-replication-and-hot-standby" onclick="window.open(this.href, '_blank'); return false;">Streaming Replication and Hot Standby</a>. If you haven't <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresqlconference.org/register']);"  href="https://www.postgresqlconference.org/register" onclick="window.open(this.href, '_blank'); return false;">registered</a> for it already, there are still seats open! And tell your friends - since this is how my trip there gets funded, I'd really like to get a full session...</p>

<p>I will also be giving a talk during the regular conference, <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresqlconference.org/content/data-driven-cache-invalidation']);"  href="https://www.postgresqlconference.org/content/data-driven-cache-invalidation" onclick="window.open(this.href, '_blank'); return false;">Data Driven Cache Invalidation</a>.</p>

<p>There's plenty of PostgreSQL - and MongoDB - around for everybody at this conference, so if you're anywhere nearby New York City, there is no reason not to be there!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>jdcon</dc:subject>
<dc:subject>pgeast</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/188-New-host-for-planet.postgresql.org.html" rel="alternate" title="New host for planet.postgresql.org" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-02-18T16:34:49Z</published>
        <updated>2011-02-18T16:34:49Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=188</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=188</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/188-guid.html</id>
        <title type="html">New host for planet.postgresql.org</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>This post is to confirm that planet.postgresql.org is now running off a new host.</p>

<p>If you clicked a link a while ago and got an error, and can now see this, that just means your DNS has now refreshed...</p>

 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/187-Yes,-the-mailinglists-are-down.html" rel="alternate" title="Yes, the mailinglists are down" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-01-30T10:37:00Z</published>
        <updated>2011-01-30T10:37:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=187</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=187</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/187-guid.html</id>
        <title type="html">Yes, the mailinglists are down</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>and along with them, a few other services.</p>

<p>From what we can tell, what has happened is that the datacenter that <i>hub.org</i> hosts most of their servers in, in Panama, dropped completely off the Internet several hours back. The PostgreSQL mailinglists are managed by hub.org, and is tied into their main infrastructure. For this reason, there is nothing the rest of the sysadmin team can do other than wait for the situation to resolve, and we unfortunately have no chance to bring up any backup servers anywhere.</p>

<p>As an added unfortunate bonus, it seems at least one of the hub.org nameservers is still running an incorrectly configured DNS zone file. This means that while this server is geographically hosted elsewhere, like it should be, email will get delivered to that host and then bounce saying that the postgresql.org domain does not exist. This is incorrect - the domain itself exists and works perfectly well, and if it wasn't for this incorrect zone file mail would be queued up and delivered once the main datacenter is back up.</p>

<p>Along with the lists, a few other services hosted with hub.org are currently unavailable - pgfoundry.org, pugs.postgresql.org, the developer documentation, jdbc.postgresql.org and possibly some other minor services.</p>

<p>All other infrastructure services are operating properly, including the website and the download mirrors.</p>

<p>Please be patient as we wait for hub.org to resolve this issue. For any up-to-date status information your best bet is the #postgresql IRC channel on FreeNode - but people are unlikely to be able to provide any information beyond "it's down, and we're waiting for hub.org".</p>

 
            </div>
        </content>
        <dc:subject>intrastructure</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/186-Another-step-towards-easier-backups.html" rel="alternate" title="Another step towards easier backups" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-01-23T12:46:00Z</published>
        <updated>2011-01-23T17:54:57Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=186</wfw:comment>
    
        <slash:comments>5</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=186</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/186-guid.html</id>
        <title type="html">Another step towards easier backups</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Today I committed the first version of a new PostgreSQL tool, <i>pg_basebackup</i>. The backend support was committed a couple of weeks back, but this is the first actual frontend.</p>

<p>The goal of this tool is to make <i>base backups</i> easier to create, because they are unnecessarily complex in a lot of cases. Base backups are also used as the foundation for setting up <i>streaming replication slaves</i> in PostgreSQL, so the tool will be quite useful there as well. The most common way of taking a base backup today is something like (don't run this straight off, it's not tested, there are likely typos):</p>


<pre><code>psql -U postgres -c &quot;SELECT pg_start_backup('base backup')&quot;
if [ &quot;$?&quot; != &quot;0&quot; ]; then
   echo Broken
   exit 1
fi
tar cfz /some/where/base.tar.gz /var/lib/pgsql/data --exclude &quot;*pg_xlog*&quot;
if [ &quot;$?&quot; != &quot;0&quot; ]; then
   echo Broken
   psql -U postgres -c &quot;SELECT pg_stop_backup()&quot;
   exit 1
fi
psql -U postgres -c &quot;SELECT pg_stop_backup()&quot;
if [ &quot;$?&quot; != &quot;0&quot; ]; then
   echo Broken
   exit 1
fi</code></pre>

<p>And when you're setting up a replication slave, it might look something like this:</p>


<pre><code>psql -U postgres -h masterserver -c &quot;SELECT pg_start_backup('replication base', 't')&quot;
if [ &quot;$?&quot; != &quot;0&quot; ]; then
   echo Broken
   exit 1
fi
rsync -avz --delete --progress postgres@masterserver:/var/lib/pgsql/data /var/lib/pgsql
if [ &quot;$?&quot; != &quot;0&quot; ]; then
   echo Broken
   psql -U postgres -c &quot;SELECT pg_stop_backup()&quot;
   exit 1
fi
psql -U postgres -c &quot;SELECT pg_stop_backup()&quot;
if [ &quot;$?&quot; != &quot;0&quot; ]; then
   echo Broken
   exit 1
fi</code></pre>

<p>There are obvious variations - for example, I come across a <i>lot</i> of cases where people don't bother checking exit codes. Particularly for the backups, this is <i>really</i> dangerous.</p>

<p>Now, with the new tool, both these cases become a lot simpler:</p>


<pre><code>pg_basebackup -U postgres -D /some/where -Ft -Z9</code></pre>

<p>That simple. -Ft makes the system write the output as a tarfile (actually, multiple tar files if you have multiple tablespaces, something the "old style" examples up top don't take into account). -Z enables gzip compression. The rest should be obvious...</p>

In the second example - replication - you don't want a tarfile, and you don't want it on the same machine. Again, both are easily handled:
<pre><code>pg_basebackup -U postgres -h masterserver -D /var/lib/pgsql/data</code></pre>

<p>That's it. You can also add -P to get a progress report (which you can normally not get out of tar or rsync, except on an individual file basis), and a host of other options.</p>

<p>This is not going to be a tool that suits everybody. The current method is complex, but it is also fantastically flexible, letting you set things up in very environment specific ways. That is why we are absolutely not <i>removing</i> any of the old ways, this is just an additional way to do it.</p>

<p>If you grab a current snapshot, you will have tool available in the bin directory, and it will of course also be included in the next alpha version of 9.1. Testing and feedback is much appreciated!</p>

There are obviously things left to do to make this even better. A few of the things being worked on are:
<ul>
    <li>Ability to run multiple parallel base backups. Currently, only one is allowed, but this is mainly a restriction based on the old method. Heikki Linnakangas has already written a patch that does this, that's just pending some more review.</li>
    <li>Ability to include all the required xlog files in the dump, in order to create a complete "full backup". Currently, you still need to set up log archiving for full Point In Time Recovery, even if you don't really need it. We hope to get rid of this requirement before 9.1.</li>
    <li>Another option is to stream the required transaction logs during the backup, not needing to include them in the archive at all. This is less likely to hit until 9.2.</li>
    <li>The ability to switch WAL level as necessary. For PITR or replication to work, <i>wal_level</i> must be set to <i>archive</i> or <i>hot_standby</i>, and changing this requires a restart of the server. The hope is to eventually be able to bump this from the default (<i>minimal</i>) at the start of the backup, and turn it back down when the backup is done. This is definitely not on the radar until 9.2 though.</li>
</ul>

 
            </div>
        </content>
        <dc:subject>backup</dc:subject>
<dc:subject>commit</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/185-pgindent-vs-dash.html" rel="alternate" title="pgindent vs dash" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2011-01-18T12:13:00Z</published>
        <updated>2011-01-18T17:27:53Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=185</wfw:comment>
    
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=185</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/185-guid.html</id>
        <title type="html">pgindent vs dash</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>For those who don't know, <i>pgindent</i> is the tool used to indent the source code of PostgreSQL. <i>dash</i> is the shell that ships as <i>/bin/sh</i> on at least Ubuntu.</p>

<p><i>pgindent</i> requires <i>indent</i> from BSD (we use a patched version from NetBSD, the source is available on the PostgreSQL ftp site), and specifically does <strong>not</strong> work with GNU indent. Guess what Ubuntu ships with.</p>

<p>The solution is of course a small script that runs BSD indent from a different directory, and also points out the typedefs.list file from the PostgreSQL git repo. Something like this:</p>


<pre><code>#!/bin/sh

export PATH=src/tools/pgindent:$PATH
src/tools/pgindent/pgindent src/tools/pgindent/typedefs.list $*</code></pre>

<p>Spot the error? Yeah, that calls <i>/bin/sh</i>, which is dash. Which gives some <strong>really</strong> interesting results with pgindent, none of which are what you expect.</p>

<p>So if you run <i>pgindent</i> through a script like this, be sure to use <strong>/bin/bash</strong> and not <i>/bin/sh</i>!</p>

 
            </div>
        </content>
        <dc:subject>pgindent</dc:subject>
<dc:subject>postgresql</dc:subject>
<dc:subject>ubuntu</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/184-Feedback-from-PGDay.EU-the-final-part-the-venue-and-registration.html" rel="alternate" title="Feedback from PGDay.EU the final part - the venue and registration" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-12-28T11:57:00Z</published>
        <updated>2010-12-28T16:14:09Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=184</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=184</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/184-guid.html</id>
        <title type="html">Feedback from PGDay.EU the final part - the venue and registration</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>The big change for <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">PGDay.EU</a> this year really was the switch from a university venue (first Monash University in Prato, then ParisTech in Paris) to a hotel venue (The Millennium Hotel in Stuttgart). We believe that much of the rest of the conference was an improvement over previous years - but it was an incremental improvement, whereas the change of venue was rather drastic. Looking at the feedback on this, I think we can conclude that this change was in general a positive one:</p>

<p><img src="http://photos.smugmug.com/photos/1139387658_2VXMu-O.png" width="400" height="200" alt="1139387658_2VXMu-O.png" /></p>

<p>We're seeing a total of 75% who rate the venue as a 4 or a 5. Looking at the freetext comments, a large majority of them are very positive, but there are a few ones that stand out:</p>


<ul>
    <li>Several people mentioned it was bad that the two sets of rooms (Berlin vs non-Berlin rooms) were very far apart. This is definitely something that we noted, and will attempt to avoid next year.</li>
    <li>A few people mentioned that it would be nice if the hotel was closer to the city center. This is definitely true - unfortunately, closer to the city center means higher prices. We hope to find something closer to a city center at a reasonable price next year - by making sure we start to look and book early enough.</li>
    <li>A few people commented that we shouldn't hold this in northern/central Europe in December due to weather (snow anyone?). Our goal is to move the conference back to an earlier date during the autumn - again, the main reason we ended up in December this year was that we started looking for a venue too late.</li>
    <li>A couple of people commented that the hotel room rates were too high at the Millennium. There were cheaper hotels around to use - but of course, those aren't as convenient. This wasn't helped by the fact that the hotel group rate dropped off the hotel website twice, causing some people to get their reservations at a higher rate.</li>
    <li>Isolated people commented that they did not like the hotel - "too big, unpersonal" and "feels like a prison".</li>
</ul>

<p>Amongst the positive ones we find a large number of comments saying that the "integrated venue" or "all inclusive" venue was a great step up.</p>

<p>Closely related to the venue, is the food. Unlike the big north American conferences <a onclick="_gaq.push(['_trackPageview', '/extlink/www.pgcon.org/']);"  href="http://www.pgcon.org/" onclick="window.open(this.href, '_blank'); return false;">PGCon</a> and  <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresqlconference.org/']);"  href="http://www.postgresqlconference.org/" onclick="window.open(this.href, '_blank'); return false;">PG-East/West</a>, we have for the past two years tried to provide proper lunches and not just sandwiches/boxed lunches. This obviously costs more money, but we believe it's worth it, and we think our visitors do. Last year we had a catering firm bring us assorted food, mainly cold cuts, at the conference venue, and this year we got proper lunch buffets (including multiple choices for dessert, of course..) at one of the hotel restaurants. I think the ratings speak for themselves - I would encourage those other conferences to look into improving their lunches as well!</p>

<p><img src="http://photos.smugmug.com/photos/1139387657_HLpDJ-O.png" width="400" height="200" alt="1139387657_HLpDJ-O.png" /></p>

<p>A full 82% rated the food as 4 or 5. In the end, the cost for paying for a lunch "on ones own bill" would probably have cost more than half the conference fee - so we think we managed to provide some very good value. In fact, several people rated the food as being the best part of the conference(!)</p>

<p>There was, however, one person who said the food was one of the <i>worst</i> things about the conference - if you recognize that was you, we would very much like to know exactly why (no details were included) - please send me an email or write a comment here!</p>

<p>A few people commented on the large amount of food left over from lunch on at least one of the days - it is up to the hotel to decide what to do about that, but it is our belief that they do something "reasonable" with it - and not just throw it away. We know that the caterers last year delivered all leftovers to a nearby homeless shelter, for example. For next year, we will attempt to again get a specification from the catering/restaurant as to what happens to leftovers.</p>

<p>We feel that the overwhelming majority of our visitors found the changes an improvement, and we will therefor pursue something similar as our primary option for next year. We are always interested in improving further, of course, so if you have any other ideas - let us know! The final question we asked about the venue was where to hold the conference next year. Many were quite ambiguous in their suggestions ("big city in Europe" is in, "Hawaii" is out because we want to stick to Europe). Summarizing what we could gave us the following:</p>

<p><img src="http://photos.smugmug.com/photos/1139392945_EeBeh-O.png" width="697" height="469" alt="1139392945_EeBeh-O.png" /></p>


<ul>
    <li>Obviously, we see a bias towards Germany - since we were in Germany this time. However, we are only going back to Germany next year as a last resort - we want to move around. We will eventually come back to Germany of course - but not next year.</li>
    <li>Some people commented that they will not be able to attend in a country other than Germany because they wouldn't understand the language of the talks. To deal with this, we are considering adding non-local-or-english talks as well for next year independent of where it is - where German talks (along with French and maybe Spanish) would be included even if the conference isn't in Germany.</li>
    <li>Our <a onclick="_gaq.push(['_trackPageview', '/extlink/www.pgug.de/']);"  href="http://www.pgug.de/" onclick="window.open(this.href, '_blank'); return false;">Germany community</a> is also looking into creating a specific <i>PGDay Germany</i> next year, which will be a smaller event focused on the local market - something we as PostgreSQL Europe will help and encourage.</li>
    <li>I'm surprised to find Stockholm so high up on the list - I promise I didn't put any of those votes in there myself!</li>
    <li>It's good to note that all the cities having 2 or more suggestions were already on our list of places to look at for next year.</li>
    <li>We will consider this input and start looking for venues. This time we will not attempt to decide and announce a city first and find a venue later, we'll do it in the other order.</li>
</ul>

<p>The final part of our evaluation was considering the conference website and registration:</p>

<p><img src="http://photos.smugmug.com/photos/1139387653_s4bHN-O.png" width="400" height="200" alt="1139387653_s4bHN-O.png" /> <img src="http://photos.smugmug.com/photos/1139387651_Yoeab-O.png" width="400" height="200" alt="1139387651_Yoeab-O.png" /></p>

<p>In general these are very good rates. I'm happy to see that more than 50% rate the website overall experience as 4 or 5 - that's a much better rating than it's being given by the people who edit the content on it! Same for registration, with very few people rating it really low. There's clearly some room for improvement though:</p>


<ul>
    <li>A few people commented they wanted non-paypal registration options. While the paypal system we use actually allow you to do a credit card payment without the need to sign up for paypal (which some people did not realize and thus sent us an email before registering asking about it), not everybody has a credit card (this is not America - or Sweden). We'd be very happy to hear suggestions for what to do here though - we've looked at many different options, and paypal turned out to be by far the best one. We need something that supports automation and is reasonably fast. We did also support bank transfer in extraordinary cases - but that's not something that can be automated (unless you are a <i>much</i> bigger customer to the bank than we are), and it takes a long time for some payments, since they have to cross borders. So - any suggestions are welcome, and our core registration system is designed to support multiple payment methods.</li>
    <li>Nobody actually wrote in the conference feedback that we lack a good interface for bulk registration, but we are aware of this - we had a few (less than 10 in total) entities wanting to register more than 2-3 persons at the same time for a single invoice, and our current system does not provide a reasonable way of dealing with this. This is definitely something we need to work on for next year.</li>
    <li>It's been suggested we add a "skill level" entry to each talk, to make it easier for an attendee to know if it's a beginner or advanced talk. This is definitely something we'll look at doing for next year.</li>
    <li>One suggestion is we include a full list of all attendees including their email address in the conference handouts, to make it easier to contact each other. This is not something we're going to do as a general thing, since we don't want to go distributing such lists. But we may consider adding it as an opt-in feature, where you can choose on registration if you want to be included in such a list.</li>
    <li>Several people suggested adding videos of the talks - either as realtime streaming or as downloadables. We're not likely to add a real-time streaming, but we are considering doing talk recording. It does add a fairly large amount of work though, so we'll be needing more volunteers to cope with it...</li>
    <li>We need to make it more clear that 5 is the best and 1 is the worst on the feedback forms. We know a few people filled them in wrong (we hope it meant they gave us bad rates when they meant good, but we don't know that), and it was also mentioned in the feedback.</li>
</ul>

<p>In summary, here are some reasons in graphical and textual forms why you should already put attendance to next years <i>PostgreSQL Conference Europe</i> in your budget:</p>

<p><img src="http://photos.smugmug.com/photos/1139387650_axwxQ-O.png" width="400" height="200" alt="1139387650_axwxQ-O.png" /></p>

Freetext comments:
<ul>
    <li>"The overall organization of that event was excellent."</li>
    <li>"Very good organization, great people, interesting talks, vibrant community in general. Lots of core dev presents, high level of knowledge."</li>
    <li>"Great organization from beginning (registration at the website, information prior to the event), arriving and registering (internet access already available, great t-shirt and backpack) to the conference itself (sessions, warning speakers about how much time is left), good food and drinks at the breaks and at lunch. Kudos to the organizers and everyone who helped make this happen."</li>
    <li>"I think the organisation was perfect. There where many people and all know where they had to go to."</li>
    <li>"The huge amount of information, inspiration and positive energy. Actually I hacked my first patch on the way back."</li>
    <li>"The people especially the staff <img src="http://blog.hagander.net/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> Both keynotes were stimulating good dsicussions with my peers"</li>
    <li>"Very good conference. I felt really cosy there. As a noob to PG, I got a lot of information and I lost the fear of asking the experts (either on the mailing list or on IRC)."</li>
    <li>"The organization was really great. Maybe the best PostgreSQL conference I've attended so far."</li>
</ul>

<p>That concludes my summaries of the feedback from this years <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">PGDay.EU</a> conference. If your specific comments haven't been called out here, don't worry - we still read them all and will consider them all for next year!</p>

<p>Finally, thanks again to all who helped make this conference great!</p>

<p><strong>See you again next year!</strong></p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/183-Feedback-from-PGDay.EU-the-speakers.html" rel="alternate" title="Feedback from PGDay.EU - the speakers" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-12-22T15:37:00Z</published>
        <updated>2010-12-22T11:44:14Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=183</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=183</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/183-guid.html</id>
        <title type="html">Feedback from PGDay.EU - the speakers</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>The next issue of my "pie-chart-overflow blog posts about PGDay feedback" is about our speakers. The speakers are, if that's not obvious, the reason that people come to the conference. Having good speakers is an absolute requirement if we want to keep up the quality of the conference. Other things like venue and price are certainly important, but nothing compares to the actual content of the conference - which is provided by our speakers.</p>

<p>I'm very happy to say that we seem to have manage to keep the very high numbers for Speaker Quality that we had from last year (differing less than 3% which is well within the margin of error). The same goes for the scores our speakers got on their knowledge of the topic - indicating that we've managed to attract some of the most skilled speakers in the world. Which is not surprising given that in many cases, we the person speaking about a feature is actually the guy <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/66-rapid-upgrades-with-pg_upgrade/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/66-rapid-upgrades-with-pg_upgrade/" onclick="window.open(this.href, '_blank'); return false;">who</a> <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/55-managing-postgresql-replication/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/55-managing-postgresql-replication/" onclick="window.open(this.href, '_blank'); return false;">wrote</a> <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/76-embedded-sql-fur-postgresql/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/76-embedded-sql-fur-postgresql/" onclick="window.open(this.href, '_blank'); return false;">it</a>. What is more surprising is that these same people are rated as very good speaker - which we all know isn't always true about your stereotypical developer.</p>

<p><img src="http://photos.smugmug.com/photos/1134342926_xzhmk-O.png" width="400" height="200" alt="1134342926_xzhmk-O.png" /> <img src="http://photos.smugmug.com/photos/1134342924_gbA6T-O.png" width="400" height="200" alt="1134342924_gbA6T-O.png" /></p>

<p>Just like <a href="http://blog.hagander.net/archives/157-Feedback-from-pgday.eu.html" onclick="window.open(this.href, '_blank'); return false;">last year</a>, we're not going to post the complete list of speaker ratings, given that they are easy to read wrong. But here is a list of our top speakers, excluding any that had less than 5 ratings. Any speakers who have fewer than 10 should be considered a very uncertain number, and I've again included the standard deviation to determine the uncertainty. We had a lot more speakers this year, so I have only included those scoring 4 or above this time around. Each speaker has received his own detailed score, of course.</p>



<table>
    <tr>
        <td><strong>Place</strong></td>
        <td><strong>Speaker</strong></td>
        <td><strong>Quality Score</strong></td>
        <td><strong>Standard deviation</strong></td>
        <td><strong>Number of votes</strong></td>
    </tr>
    <tr>
        <td>1</td>
        <td>Dimitri Fontaine</td>
        <td>4.8</td>
        <td>0.5</td>
        <td>8</td>
    </tr>
    <tr>
        <td>2</td>
        <td>Mason Sharp</td>
        <td>4.7</td>
        <td>0.9</td>
        <td>11</td>
    </tr>
    <tr>
        <td>2</td>
        <td>Magnus Hagander</td>
        <td>4.7</td>
        <td>0.7</td>
        <td>29</td>
    </tr>
    <tr>
        <td>4</td>
        <td>Simon Riggs</td>
        <td>4.6</td>
        <td>0.7</td>
        <td>52</td>
    </tr>
    <tr>
        <td>4</td>
        <td>Simon Phipps</td>
        <td>4.6</td>
        <td>0.9</td>
        <td>45</td>
    </tr>
    <tr>
        <td>6</td>
        <td>Andreas Scherbaum</td>
        <td>4.5</td>
        <td>0.7</td>
        <td>34</td>
    </tr>
    <tr>
        <td>6</td>
        <td>Ed Boyajian</td>
        <td>4.5</td>
        <td>1.1</td>
        <td>33</td>
    </tr>
    <tr>
        <td>8</td>
        <td>Bruce Momjian</td>
        <td>4.4</td>
        <td>0.9</td>
        <td>54</td>
    </tr>
    <tr>
        <td>8</td>
        <td>Gianni Ciolli</td>
        <td>4.4</td>
        <td>0.8</td>
        <td>38</td>
    </tr>
    <tr>
        <td>8</td>
        <td>Tim Bunce</td>
        <td>4.4</td>
        <td>1.0</td>
        <td>10</td>
    </tr>
    <tr>
        <td>11</td>
        <td>Jan Aleman</td>
        <td>4.2</td>
        <td>1.0</td>
        <td>11</td>
    </tr>
    <tr>
        <td>12</td>
        <td>Tim Child</td>
        <td>4.1</td>
        <td>0.8</td>
        <td>9</td>
    </tr>
    <tr>
        <td>12</td>
        <td>Michael Meskes</td>
        <td>4.1</td>
        <td>1.2</td>
        <td>10</td>
    </tr>
    <tr>
        <td>14</td>
        <td>Bernd Helmle</td>
        <td>4.0</td>
        <td>0.6</td>
        <td>6</td>
    </tr>
    <tr>
        <td>14</td>
        <td>Heikki Linnakangas</td>
        <td>4.0</td>
        <td>0.8</td>
        <td>30</td>
    </tr>
    <tr>
        <td>14</td>
        <td>Linas Virbalas</td>
        <td>4.0</td>
        <td>0.9</td>
        <td>10</td>
    </tr>
</table>

<br /><p>The list based on Speaker Knowledge looks slightly different, but not very much. Given that our speaker knowledge has been rated even higher than speaker quality, I've only included those who scored 4.6 or higher (which is a fantastically high cutoff)</p>



<table>
    <tr>
        <td><strong>Place</strong></td>
        <td><strong>Speaker</strong></td>
        <td><strong>Knowledge Score</strong></td>
        <td><strong>Standard deviation</strong></td>
        <td><strong>Number of votes</strong></td>
    </tr>
    <tr>
        <td>1</td>
        <td>Tim Child</td>
        <td>5</td>
        <td>0</td>
        <td>9</td>
    </tr>
    <tr>
        <td>2</td>
        <td>Joe Conway</td>
        <td>4.9</td>
        <td>0.3</td>
        <td>10</td>
    </tr>
    <tr>
        <td>3</td>
        <td>Simon Riggs</td>
        <td>4.8</td>
        <td>0.7</td>
        <td>52</td>
    </tr>
    <tr>
        <td>3</td>
        <td>Linas Virbalas</td>
        <td>4.8</td>
        <td>0.4</td>
        <td>9</td>
    </tr>
    <tr>
        <td>3</td>
        <td>Magnus Hagander</td>
        <td>4.8</td>
        <td>0.8</td>
        <td>29</td>
    </tr>
    <tr>
        <td>3</td>
        <td>Dimitri Fontaine</td>
        <td>4.8</td>
        <td>0.5</td>
        <td>8</td>
    </tr>
    <tr>
        <td>7</td>
        <td>Andreas Scherbaum</td>
        <td>4.7</td>
        <td>0.8</td>
        <td>34</td>
    </tr>
    <tr>
        <td>7</td>
        <td>Bruce Momjian</td>
        <td>4.7</td>
        <td>1.0</td>
        <td>53</td>
    </tr>
    <tr>
        <td>9</td>
        <td>Mason Sharp</td>
        <td>4.6</td>
        <td>1.2</td>
        <td>11</td>
    </tr>
    <tr>
        <td>9</td>
        <td>Heikki Linnakangas</td>
        <td>4.6</td>
        <td>0.8</td>
        <td>30</td>
    </tr>
    <tr>
        <td>9</td>
        <td>Simon Phipps</td>
        <td>4.6</td>
        <td>1.0</td>
        <td>45</td>
    </tr>
    <tr>
        <td>9</td>
        <td>Gianni Ciolli</td>
        <td>4.6</td>
        <td>0.8</td>
        <td>38</td>
    </tr>
    <tr>
        <td>9</td>
        <td>Tim Bunce</td>
        <td>4.6</td>
        <td>1.3</td>
        <td>10</td>
    </tr>
    <tr>
        <td>9</td>
        <td>David Fetter</td>
        <td>4.6</td>
        <td>0.6</td>
        <td>16</td>
    </tr>
</table>

<p>A great big thanks to all our speakers - you did a fantastic job.</p>

<p>We will need to work hard to keep up our recruiting of speakers for next years. If you were considering but decided not to submit a talk for some reason - please let us know why, so we can improve! Or if you have any ideas in general on our processes around this. For example, we had no female speakers at all this year - we know you're out there, and we certainly want you there, so what do we need to change to make this more interesting for you as a potential speaker? The same goes for other groups that we were missing of course: now is the time to let us know so we have the time to change things before next year!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/182-Feedback-from-PGDay.EU-the-contents.html" rel="alternate" title="Feedback from PGDay.EU - the contents" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-12-22T09:53:00Z</published>
        <updated>2010-12-22T10:01:47Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=182</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=182</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/182-guid.html</id>
        <title type="html">Feedback from PGDay.EU - the contents</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>This blog seems to be turning into a PGDay blog rather than a general PostgreSQL blog. But I promise I'll get back to some more technical content soon - or at least that I'll try.</p>

<p>A couple of days ago we closed the feedback system from <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">PGDay.EU 2010</a>, and have been busy tallying the result. It turns out that my constant nagging on people to please fill out the feedback worked - we got a lot more feedback this year than last year. That also means there's a lot more work in going through mainly all the freetext comments - that's the price I have to pay, I guess. In total we had around 60 people who left "full conference feedback", which is almost double from last year. It's still only just over 25% of the attendees, so it could certainly be even better yet. We also had 86 people who left session feedback (this is around 40% and a much better number of course) for a total of 570 session feedback entries.</p>

<p>So what did the feedback say - time for some pie charts! We've actually seen a slight decrease in the ratings for <i>topic importance</i>. This may well be because we've broadened the topics more. We're still seeing very good grades for content quality, which reinforces my feeling that our speakers deliver very valuable content to the attendees, and that the conference is well worth attending. (As a note to readers - I've had several people point out to me that german people are used to rating <i>1</i> being the highest and <i>5</i> being the lowest, so there may be some skewing in the voting because of this. Even though the pages very clearly stated that <i>5</i> is the highest, this is something we need to make even more clear for next year)</p>

<p><img src="http://photos.smugmug.com/photos/1134327279_P3NvS-O.png" width="400" height="200" alt="1134327279_P3NvS-O.png" /> <img src="http://photos.smugmug.com/photos/1134331393_Gk3nY-O.png" width="400" height="200" alt="1134331393_Gk3nY-O.png" /></p>

<p>We spent a lot of time trying to put together the puzzle that is the schedule for so many talks over so short time. It turns out that we did a good job in general, but there was a large amount of overlap where people wanted to go to many talks at the same time. We also received a lot of comments in the freetext fields about this, and this is definitely something that we will consider for next year. It would probably have been better content-wise to have three tracks spread over three days (maybe not entirely complete) rather than four tracks over two days, but that would also have increased many of the costs with 33% which is a lot of money...</p>

<p><img src="http://photos.smugmug.com/photos/1134332171_UQHa3-O.png" width="400" height="200" alt="1134332171_UQHa3-O.png" /> <img src="http://photos.smugmug.com/photos/1134332230_n5q7E-O.png" width="400" height="200" alt="1134332230_n5q7E-O.png" /></p>

<p>Of course, the "Hallway track" is a very important part of any conference like this, and this year we collected specific feedback on this side. I'm very happy to see that more than two thirds of our attendees rated the learning part of the hallway track as 4 or 5, and well over half found it a good way to connect with other people in the community!</p>

<p><img src="http://photos.smugmug.com/photos/1134329207_QMR5T-O.png" width="400" height="200" alt="1134329207_QMR5T-O.png" /> <img src="http://photos.smugmug.com/photos/1134329160_XnGKu-O.png" width="400" height="200" alt="1134329160_XnGKu-O.png" /></p>

<p>If these numbers don't make you interested in next years <i>PostgreSQL Conference Europe</i> then, really, you're reading them wrong...</p>

<p>That's enough pie-charts for one post. I will follow this up with more feedback summary on our speakers and on our venue once it's ready.</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/179-Make-your-picks-PGDay.EU-2010.html" rel="alternate" title="Make your picks - PGDay.EU 2010" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-11-22T20:00:00Z</published>
        <updated>2010-11-27T12:52:11Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=179</wfw:comment>
    
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=179</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/179-guid.html</id>
        <title type="html">Make your picks - PGDay.EU 2010</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p><a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">PGDay Europe 2010</a> is drawing closer - only two weeks until kickoff! Some of the training is filled up, but we still have space for some more people on the general conference (and some of the training sessions). It's not too late - <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/register']);"  href="http://2010.pgday.eu/register" onclick="window.open(this.href, '_blank'); return false;">go register</a>!</p>

<p>I'll be spending much of the time working with the conference administration, hopefully making things flow. But with a schedule like <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/schedule']);"  href="http://2010.pgday.eu/schedule" onclick="window.open(this.href, '_blank'); return false;">this</a>, there are some sessions that I'm definitely not going to miss:</p>


<ul>
    <li>The <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/41-keynote-back-to-the-future-of-open-source/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/41-keynote-back-to-the-future-of-open-source/" onclick="window.open(this.href, '_blank'); return false;">keynote</a>, of course. <a onclick="_gaq.push(['_trackPageview', '/extlink/www.webmink.org/']);"  href="http://www.webmink.org/" onclick="window.open(this.href, '_blank'); return false;">Simon Phipps</a> is a well known and very experienced Open Source speaker and worker. He'll be talking about "Back to the Future of Open Source", and it will be very interesting to hear his perspective on this, having been on the inside of for example Sun.</li>
    <li><a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/54-play-chess-against-postgresql-and-get-beaten/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/54-play-chess-against-postgresql-and-get-beaten/" onclick="window.open(this.href, '_blank'); return false;">Play chess against PostgreSQL (and get beaten)</a> with Gianni Colli. You just need to read the title, of course I have to see it <img src="http://blog.hagander.net/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> Unfortunately it's up against PgOpenCL, but that's what happens when you have so many good talks.</li>
    <li>I think I can skip out of <a onclick="_gaq.push(['_trackPageview', '/extlink/2ndquadrant.co.uk/about/']);"  href="http://2ndquadrant.co.uk/about/" onclick="window.open(this.href, '_blank'); return false;">Simon Riggs</a> talk about replication - I need to have my class for Wednesday ready before this anyway. But I highly recommend it to anybody who is planning to deploy the 9.0 replication features.</li>
    <li>That afternoon I'll be busy with the conference, and won't get to go to any of the talks... I'll definitely miss the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/67-concurrency-postgresql/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/67-concurrency-postgresql/" onclick="window.open(this.href, '_blank'); return false;">Concurrency talk</a>, the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/71-postgresql-clustering-with-red-hat-cluster-suite/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/71-postgresql-clustering-with-red-hat-cluster-suite/" onclick="window.open(this.href, '_blank'); return false;">clustering</a> and the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/72-advanced-postgresql-access-from-python-with-psycopg/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/72-advanced-postgresql-access-from-python-with-psycopg/" onclick="window.open(this.href, '_blank'); return false;">psycopg</a> one.</li>
    <li>Tuesday, I can't quite decide between <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/73-developing-postgresql-performance/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/73-developing-postgresql-performance/" onclick="window.open(this.href, '_blank'); return false;">Developing PostgreSQL performance</a> or <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/74-graph-constraints-and-why-you-care/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/74-graph-constraints-and-why-you-care/" onclick="window.open(this.href, '_blank'); return false;">Graph Constraints, and Why You Care</a>. But we put two such great talks early in the morning to make sure everybody gets up!</li>
    <li>Next I'd go to <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/79-benchmarking-und-performancetesting-von-und-mit-postgresql/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/79-benchmarking-und-performancetesting-von-und-mit-postgresql/" onclick="window.open(this.href, '_blank'); return false;">Stefans talk about benchmarking</a>, but it's in German, so I think I'm better off not doing that. It'll be the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/77-how-a-large-organisation-moved-its-critical-application-toward-postgresql/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/77-how-a-large-organisation-moved-its-critical-application-toward-postgresql/" onclick="window.open(this.href, '_blank'); return false;">case-study of the large deployment</a> that Bull did for the French social services instead.</li>
    <li>Before lunch, I think it'll be <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/speaker/55-mason-sharp/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/speaker/55-mason-sharp/" onclick="window.open(this.href, '_blank'); return false;">Postgres-XC</a>. I've been to a lot of conferences now where Mason has held a talk about this, and never actually managed to see one...</li>
    <li>After lunch, I'm again stuck at doing work (sheesh). If you haven't seen it already, I recommend Bruce's <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/92-mvcc-unmasked/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/92-mvcc-unmasked/" onclick="window.open(this.href, '_blank'); return false;">MVCC talk</a>. There are other good ones as well, of course, but Bruce does a very good "deep introduction" to PostgreSQL's implementation of MVCC.</li>
    <li>Obviously there's no skipping out on the closing <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/session/51-closing-keynote-postgresqls-time-to-shine-the-most-disruptive-force-in-open-source-since-linux/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/session/51-closing-keynote-postgresqls-time-to-shine-the-most-disruptive-force-in-open-source-since-linux/" onclick="window.open(this.href, '_blank'); return false;">keynote</a>. <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/events/schedule/pgday2010/speaker/33-ed-boyajian/']);"  href="http://www.postgresql.eu/events/schedule/pgday2010/speaker/33-ed-boyajian/" onclick="window.open(this.href, '_blank'); return false;">Ed</a> usually does a good job - I expect no less this time.</li>
</ul>

<p>With this much great content, it's hard to choose - but those are my choices for PGDay. (I of course reserve the right to change my mind, depending on how late the speaker left from the party the day before)</p>

<p>What are yours?</p>

<p>And if you haven't registered yet, you still have a few more days. Don't miss your chance to attend the biggest PostgreSQL event in Europe this year! Registering is <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/register']);"  href="http://2010.pgday.eu/register" onclick="window.open(this.href, '_blank'); return false;">easy and quick</a> - not to mention cheap!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/181-pgday.eu-registration-deadline-extended.html" rel="alternate" title="pgday.eu registration deadline extended" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-11-26T15:18:00Z</published>
        <updated>2010-11-27T12:49:43Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=181</wfw:comment>
    
        <slash:comments>13</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=181</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/181-guid.html</id>
        <title type="html">pgday.eu registration deadline extended</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>The registration deadline for pgday.eu has been extended. Instead of ending today, the new deadline is <strong>Saturday, December 4, 17:00 CET</strong>. There are, however, a few restrictions with this extension:</p>


<ul>
    <li>After today, November 26th at midnight, we will <i>only</i> be able to process creditcard/paypal payments, or cash payments at the registration desk.</li>
    <li>After 17:00 CET today, November 26, the pre-paid discounted <i>internet access for people not staying at the hotel</i> will no longer be available. Internet access is still included in your room rate if you book with the PGEUROPE group rate.</li>
</ul>

<p>Once this second deadline expires on the December 4th, you are still welcome to attend the conference - but in this case, you have to pay the higher price for a <i>pay at the door</i> registration. Even if you choose this, we do appreciate if you register online first (choosing that rate), so we can prepare a badge and conference pack for you.</p>

<p>If you have any further questions, please contact us at contact@pgday.eu.</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/180-PGDay.EU-wheres-your-country.html" rel="alternate" title="PGDay.EU - where's your country?" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-11-25T10:25:02Z</published>
        <updated>2010-11-27T12:49:37Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=180</wfw:comment>
    
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=180</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/180-guid.html</id>
        <title type="html">PGDay.EU - where's your country?</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Initial numbers from our registration database for <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">PGDay.EU 2010</a> is showing that we are expanding our international reach more than last year. In 2009, 60% of the attendees were from France, which is where the conference was held. This year the number of attendees from Germany is "down" to about 50%, meaning we have more people from other countries. The total number of countries is down one though - we have no registration from Nicaragua this year! Even our attendance from the US is up to three more people.</p>

<p>Pardon my horrible openoffice.org chart, but here is the current spread of attendees. Where does your country stack up? If it's not Germany, then it's not high enough - time to suggest/encourage/force/trick your friends and colleagues to register and attend! (And if it's Germany - hey, can you really let the French get to 60% last year and not beat them this year?)</p>

<p><img src="http://photos.smugmug.com/photos/1104143452_62Zze-O.png" width="873" height="499" alt="1104143452_62Zze-O.png" /></p>

<p><a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/register']);"  href="http://2010.pgday.eu/register" onclick="window.open(this.href, '_blank'); return false;">Registration</a> for PGDay.EU 2010 closes soon! Don't miss out on the biggest PostgreSQL event in Europe this year, and all the great presentations!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/178-Back-to-conferencing-PGWest.html" rel="alternate" title="Back to conferencing - PGWest" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-11-02T23:13:00Z</published>
        <updated>2010-11-02T23:15:22Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=178</wfw:comment>
    
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=178</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/178-guid.html</id>
        <title type="html">Back to conferencing - PGWest</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Today is the first day of <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresqlconference.org/']);"  href="http://www.postgresqlconference.org/" onclick="window.open(this.href, '_blank'); return false;">PG-West</a>, also known as JDCon-west. After having about a week off to visit places and visit friends, I'm now back up in San Francisco for this conference, which will cover most of this week. It's a bigger conference than JDCon has been before - in most measures. It as more sessions than ever before - but you have to wonder who thought it was a good idea to have <i>five</i> parallel sessions. That's almost a guarantee that there will be more than one session you really want to go do. I'd rather have seen it in fewer tracks and spread over more time.</p>

<p>It's also bigger in attendees than before. Last I heard it was at 203 or something like that - just over 200. That means that for the first time, JDCon is actually larger than a <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">PGDay.EU</a> (that had just over 190 last year) - I'm sure  being in a great location in central San Francisco helps with that, along with the fact that the economy is in a better place now than a year ago. We're still in the lead over time (we were well over 200 a couple of years back), but we're also both well beaten by the Brazilians. It' sets a good target for us to work towards!</p>

<p>The set of sessions looks really good, but as usual the hallway track is the one where much of the <i>really</i> good things happen. I missed this mornings tutorial sessions completely due to very interesting discussions outside. Hopefully the slides and notes and/or video will be available to look over once we're done. If you're tracking this from away, the <a onclick="_gaq.push(['_trackPageview', '/extlink/search.twitter.com/search?q=%23pgwest']);"  href="http://search.twitter.com/search?q=%23pgwest" onclick="window.open(this.href, '_blank'); return false;">twitter stream</a> has some interesting comments - and will hopefully have more!</p>

<p>Speaking of conferences - if you haven't already, now's a good time to <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/register']);"  href="http://2010.pgday.eu/register" onclick="window.open(this.href, '_blank'); return false;">register for pgday.eu</a>. Particularly if you are planning to attend one of the training sessions - at least one of the sessions is already more than half sold out!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>jdcon</dc:subject>
<dc:subject>pgwest</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/177-PGDay-Europe-2010-Registration-Open.html" rel="alternate" title="PGDay Europe 2010 Registration Open" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-10-19T13:10:00Z</published>
        <updated>2010-10-19T13:15:46Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=177</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=177</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/177-guid.html</id>
        <title type="html">PGDay Europe 2010 Registration Open</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>It's finally time - we've opened up for registrations for <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/register']);"  href="http://2010.pgday.eu/register" onclick="window.open(this.href, '_blank'); return false;">PGDay Europe 2010</a>.</p>

<p>We are not finished with the schedule yet, so if you are looking for a specific talk, you'll have to wait a while longer. Work is in progress though - we've already notified some of our speakers that they are approved. However, if you submitted a talk and have not heard from us yet, it's not yet time to panic. The reason we haven't published a schedule yet is that we're working on ways to include more talks!</p>

<p>So why would you want to go register now, even though the schedule isn't posted yet? Well, first of all, the schedule is looking like it'll be at least as good as last year. We have several well known good speakers from the community showing up again, and also some fresh faces with interesting topics!</p>

<p>But more importantly, this year, we've added training for the first time. Training will run on the wednesday (the main conference being monday and tuesday). This training is *limited availability* (25 seats per session), and *extra cost*. You pay this at registration. And the seats are handed out on a first come/first serve basis. So if you want to attend the training, now is the time to register! The training schedule *is* final, so be sure not to pick two training sessions that run at the same time.</p>

<p>The conference this year will be held at the <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/hotels']);"  href="http://2010.pgday.eu/hotels" onclick="window.open(this.href, '_blank'); return false;">Millennium Hotel</a> in Stuttgart. We do recommend that you reserve a room with that hotel, as we have a group rate there, and it's conveniently located (hint: no need to go outside to get from A to B). But using this hotel is not mandatory - you can book your room anywhere you like. However, it should be noted that *wireless internet* is only included if you booked a room *using our group rate*. If you don't, you can pre-purchase the access when you register, or you can solve it yourself for example using 3G data. We will *not* have the ability to provide or sell you wireless access unless you pre-purchase it!</p>

<p>With all that said, head off and <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/regsiter']);"  href="http://2010.pgday.eu/regsiter" onclick="window.open(this.href, '_blank'); return false;">register</a>!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgday</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/176-Monitoring-streaming-replication-lag.html" rel="alternate" title="Monitoring streaming replication lag" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-09-27T14:26:00Z</published>
        <updated>2010-09-27T14:26:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=176</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=176</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/176-guid.html</id>
        <title type="html">Monitoring streaming replication lag</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Once you've set up the great new <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/docs/9.0/static/warm-standby.html#STREAMING-REPLICATION']);"  href="http://www.postgresql.org/docs/9.0/static/warm-standby.html#STREAMING-REPLICATION" onclick="window.open(this.href, '_blank'); return false;">Streaming Replication</a> with <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/docs/9.0/static/hot-standby.html']);"  href="http://www.postgresql.org/docs/9.0/static/hot-standby.html" onclick="window.open(this.href, '_blank'); return false;">Hot Standby</a> in <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/docs/9.0/static/release-9-0.html']);"  href="http://www.postgresql.org/docs/9.0/static/release-9-0.html" onclick="window.open(this.href, '_blank'); return false;">PostgreSQL 9.0</a>, you need to somehow monitor it. I've created a simple <a onclick="_gaq.push(['_trackPageview', '/extlink/www.munin-monitoring.org/']);"  href="http://www.munin-monitoring.org/" onclick="window.open(this.href, '_blank'); return false;">Munin</a> plugin to graph the lag between the master and the slave, and also the lag between receiving and applying on the slave. It's <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/mhagander/munin-plugins/blob/master/postgres/postgres_streaming_.in']);"  href="http://github.com/mhagander/munin-plugins/blob/master/postgres/postgres_streaming_.in" onclick="window.open(this.href, '_blank'); return false;">available</a> on my <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/mhagander/']);"  href="http://github.com/mhagander/" onclick="window.open(this.href, '_blank'); return false;">github page</a>, and will likely also be included in the next Munin version. If you are using SR and Munin (or just SR and want to graph it), please try it out and let me know if there are issues with it - it could certainly do with some more testing.</p>

 
            </div>
        </content>
        <dc:subject>hot standby</dc:subject>
<dc:subject>munin</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/174-A-busy-week-for-PostgreSQL-hello-9.0!.html" rel="alternate" title="A busy week for PostgreSQL - hello 9.0!" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-09-20T14:15:00Z</published>
        <updated>2010-09-24T08:28:52Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=174</wfw:comment>
    
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=174</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/174-guid.html</id>
        <title type="html">A busy week for PostgreSQL - hello 9.0!</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>In case you missed it (I'm certainly not the first on Planet PostgreSQL to blog about this, but there are supposedly other aggregators), PostgreSQL 9.0 <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/']);"  href="http://www.postgresql.org/" onclick="window.open(this.href, '_blank'); return false;">has been released</a>. Comes with spiffy things like Streaming Replication, Hot Standby and Exclusion Constraints! If you aren't up to speed on all the news already, go check out the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/docs/9.0/static/release-9-0.html']);"  href="http://www.postgresql.org/docs/9.0/static/release-9-0.html" onclick="window.open(this.href, '_blank'); return false;">release notes</a>.</p>

<p>Second, I yesterday committed Thom Browns changes to the stylesheets for the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.org/docs/9.0/static/']);"  href="http://www.postgresql.org/docs/9.0/static/" onclick="window.open(this.href, '_blank'); return false;">documentation</a>. So not only do you get the documentation for the new version, it also looks a lot better than the old one - nicer formatting for tables and highlighting examples and code in a better way. This is also changed in the old version of the docs.</p>

<p>Finally, tonight we start the second attempt to move the authoritative PostgreSQL source tree to <a onclick="_gaq.push(['_trackPageview', '/extlink/git-scm.org/']);"  href="http://git-scm.org/" onclick="window.open(this.href, '_blank'); return false;">git</a>. It didn't end well last time and we reverted back to cvs, but given the large amount of work put into it by many people, I have much higher hopes this time. Stay tuned...</p>

 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/175-PostgreSQL-now-on-git!.html" rel="alternate" title="PostgreSQL - now on git!" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-09-21T11:14:00Z</published>
        <updated>2010-09-22T03:05:02Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=175</wfw:comment>
    
        <slash:comments>10</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=175</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/175-guid.html</id>
        <title type="html">PostgreSQL - now on git!</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>So it finally happened. The official PostgreSQL master source tree is now managed in <a onclick="_gaq.push(['_trackPageview', '/extlink/git.postgresql.org/gitweb?p=postgresql.git;a=summary']);"  href="http://git.postgresql.org/gitweb?p=postgresql.git;a=summary" onclick="window.open(this.href, '_blank'); return false;">git</a>, instead of cvs. This means, amongst other things, that the worlds most advanced open source database now has a version control system with.. eh. atomic commits!</p>

<p>Like the <a onclick="_gaq.push(['_trackPageview', '/extlink/rhaas.blogspot.com/2010/09/so-why-isnt-postgresql-using-git-yet.html']);"  href="http://rhaas.blogspot.com/2010/09/so-why-isnt-postgresql-using-git-yet.html" onclick="window.open(this.href, '_blank'); return false;">first run</a>, this one had some issues with it, but it was smaller and resolved in time not to have to roll back. This time, it turned out that the cvs version that ships in Debian GNU/Linux comes with patches that change the default date format to the ISO standard. But since one of our main requirements on the conversion was to be able to faithfully represent the old versions of the code, this broke every single file - since we used CVS keyword expansion in the old tree. Once we found this, it was a simple case of adding the DateFormat=old parameter to the CVS config file and re-run the whole conversion - which took several hours.</p>

<p>A lot of work went into making the repository conversion correct. Some of this was due to issues in the toolchain used - many thanks to Michael Haggerty and Max Bowsher for getting those fixed and explaining some of the behaviors of the software for us. In the end, a number of things needed to be changed in our existing CVS repository to make it migrate properly. Tom Lane provided a big patch to apply to the CVS repository itself prior to the conversion that cleaned most of those up - you can find a copy of it <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/mhagander/pggit_migrate/blob/master/repository_fixups']);"  href="http://github.com/mhagander/pggit_migrate/blob/master/repository_fixups" onclick="window.open(this.href, '_blank'); return false;">my github page</a> if you're interested.</p>

<p>With this patch applied, we managed a conversion that was <strong>very</strong> close to the original repository. I personally think this is only because the PostgreSQL project has been very careful about how it deals with it's CVS repository - using it in a fairly simple way. And even with that, we had a number of issues - such as tags moved "after the fact", and branches created off partial checkouts. A fair number of the issues were simply because CVS doesn't have ways to represent everything in a reasonable way, such as issues when a file was deleted, re-added, deleted again, and mix this over different branches.</p>

<p>Git obviously deals with this better, and hopefully we'll have no such issues creeping into the new repository. However, the PostgreSQL project will be sticking with our "conservative approach" to source control - at least for the time being. For this reason, we are <i>restricting</i> what committers can use within git. We still allow any developers (and committers) to use whatever parts of git they want as they develop, but for commits going into the main tree, we are making a number of restrictions:</p>


<ul>
    <li>We will not allow merge commits. The PostgreSQL project doesn't follow the "git workflow" - we generally develop our patches on the master branch, and then back-patch to released stable branches for important bugs. We will continue doing this as separate commits and not using merges, thus keeping history linear.</li>
    <li>We will not use the author field in git to tag it with the patches original author (even in the few cases when the patch is actually authored by a single person). Instead, we will require that author and committer are always set to the same thing, and we will then credit the author(s) (along with the reviewer(s)) in the commit message, just like we've done before.</li>
    <li>As a follow-on to that requirement, we will require that all committers are the ones registered with the project, using the same name and address on all commits. So even if a patch is developed on a topic branch on say <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/postgres']);"  href="http://github.com/postgres" onclick="window.open(this.href, '_blank'); return false;">github</a>, it will get collapsed into a single commit (or maybe a couple, depending on size) tagged with the committers name on that.</li>
</ul>

<p>There has been a lot of discussion around this, and this is how the PostgreSQL project has worked and wants to continue working. We may change this sometime in the future, but not now - we are only changing the tool, and not the workflow.</p>

<p>To enforce these requirements, I've developed a policy hook for our git server that makes sure we don't make the mistake. It's up on <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/mhagander/pg_githooks']);"  href="http://github.com/mhagander/pg_githooks" onclick="window.open(this.href, '_blank'); return false;">my github page</a>, along with the script we use to generate commit mails to the <a onclick="_gaq.push(['_trackPageview', '/extlink/archives.postgresql.org/pgsql-committers/']);"  href="http://archives.postgresql.org/pgsql-committers/" onclick="window.open(this.href, '_blank'); return false;">pgsql-committers</a> list that look just the way we want them to.</p>

<p>What does this mean for you as a PostgreSQL user? Really, nothing at all.</p>

<p>What does this mean for you as a PostgreSQL patch developer? Not much. If you did your work off the cvs-to-git mirror, you need to do a new clone. This repository is converted from scratch, so the old one is not valid anymore. We still encourage you to use for example github if you want to do your development there, but the patch submission process remains the same - send a context style diff to the <a onclick="_gaq.push(['_trackPageview', '/extlink/archives.postgresql.org/pgsql-hackers/']);"  href="http://archives.postgresql.org/pgsql-hackers/" onclick="window.open(this.href, '_blank'); return false;">pgsql-hackers</a> mailinglist.</p>

<p>What does this mean for you as a buildfarm-animal maintainer? You need to reconfigure it to use git. I expect <a onclick="_gaq.push(['_trackPageview', '/extlink/people.planetpostgresql.org/andrew/']);"  href="http://people.planetpostgresql.org/andrew/" onclick="window.open(this.href, '_blank'); return false;">Andrew</a> to post instructions on exactly what to do, and keep track of who hasn't done it <img src="http://blog.hagander.net/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" /></p>

<p><strong>Thanks</strong> and <strong>Well done</strong> to all the people involved in making this happen!</p>

 
            </div>
        </content>
        <dc:subject>cvs</dc:subject>
<dc:subject>git</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/173-PGDay.EU-announced-and-call-for-papers.html" rel="alternate" title="PGDay.EU announced and call for papers" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-07-22T17:57:00Z</published>
        <updated>2010-07-22T17:57:00Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=173</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=173</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/173-guid.html</id>
        <title type="html">PGDay.EU announced and call for papers</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p><a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">PGDay.EU 2010</a> has finally been announced. It will be in Stuttgart, Germany, on December 6th to 8th. More details available on the <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/']);"  href="http://2010.pgday.eu/" onclick="window.open(this.href, '_blank'); return false;">conference website</a>.</p>

<p>We have also sent out our <a onclick="_gaq.push(['_trackPageview', '/extlink/2010.pgday.eu/callforpapers']);"  href="http://2010.pgday.eu/callforpapers" onclick="window.open(this.href, '_blank'); return false;">call for papers</a>. If you have done something interesting with PostgreSQL, please go ahead and submit a talk! We are currently looking for talks in both English and German!</p>

 
            </div>
        </content>
        <dc:subject>conferences</dc:subject>
<dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/172-Robotic-moderation-duties.html" rel="alternate" title="Robotic moderation duties" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-07-08T20:06:00Z</published>
        <updated>2010-07-08T20:50:17Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=172</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=172</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/172-guid.html</id>
        <title type="html">Robotic moderation duties</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Every now and then, the discussion about why it takes too long for messages to get approved when posted to some of the PostgreSQL mailinglists comes up, and it goes around a couple of laps. Maybe we get a new moderator. But eventually it comes back down to not enough people. Personally, I've usually just found myself not having the time to keep up with moderation. So when I needed a project to learn some <a onclick="_gaq.push(['_trackPageview', '/extlink/www.android.com/']);"  href="http://www.android.com/" onclick="window.open(this.href, '_blank'); return false;">Android</a> development on, I figured this could be an interesting (probably) and useful (maybe) topic.</p>

<p>So, meet <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/mhagander/mailinglistmoderator']);"  href="http://github.com/mhagander/mailinglistmoderator" onclick="window.open(this.href, '_blank'); return false;">Mailinglist Moderator</a>. A tiny android application that helps with the daily moderation chores for anybody moderating Mailman or Majordomo2 mailinglists (should be easy enough to add more list managers if there is any that people actually use).</p>

<p>The application will simply enumerate all unmoderated items and let you set them to accept or reject either one by one or in batch. Personally, I've found it makes it a *lot* more likely I will do moderation - it's literally down to 30 seconds while waiting for a bus or train, or something like that. And once the hurdle is gone, it's a lot more likely I'll end up actually moderating. I found it useful - hopefully others will as well.</p>

<p>Here are a couple of screenshots showing what the application looks like.</p>

<p><img src="http://photos.smugmug.com/photos/927951521_j4Ri8-L.png" width="360" height="600" alt="927951521_j4Ri8-L.png" /> <img src="http://photos.smugmug.com/photos/927951506_ruNHt-L.png" width="360" height="600" alt="927951506_ruNHt-L.png" /> <img src="http://photos.smugmug.com/photos/928007508_KJHqf-L.png" width="360" height="600" alt="928007508_KJHqf-L.png" /></p>

<p>The app is available as an APK for download on my <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/mhagander/mailinglistmoderator/downloads']);"  href="http://github.com/mhagander/mailinglistmoderator/downloads" onclick="window.open(this.href, '_blank'); return false;">github page</a>. It hasn't been published to the market now, but I'll do that if enough people find it useful and ask me for it...</p>

<p>And of course, this is all BSD licensed open source, so any contributions are welcome!</p>

 
            </div>
        </content>
        <dc:subject>android</dc:subject>
<dc:subject>lists</dc:subject>
<dc:subject>mail</dc:subject>
<dc:subject>mailman</dc:subject>
<dc:subject>majordomo</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/171-PostgreSQL-Europe-Marchandise-Store.html" rel="alternate" title="PostgreSQL Europe Marchandise Store" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-07-03T17:02:00Z</published>
        <updated>2010-07-08T20:40:06Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=171</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=171</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/171-guid.html</id>
        <title type="html">PostgreSQL Europe Marchandise Store</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>We've finally opened the merchandise store for <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/']);"  href="http://www.postgresql.eu/" onclick="window.open(this.href, '_blank'); return false;">PostgreSQL Europe</a>. It's a chance for everybody who haven't had the chance to attend one of the many PostgreSQL events where we've been selling mugs and shirts for a long time, as well as a chance to get some stuff that we haven't previously had available.</p>

<p>There's close to zero earnings for PostgreSQL Europe off these purchases - we're trying to make it as cheap as we can for everybody. You are of course most welcome to <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/donate/']);"  href="http://www.postgresql.eu/donate/" onclick="window.open(this.href, '_blank'); return false;">donate</a> some extra to the project, should you wish.</p>

 
            </div>
        </content>
        <dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/170-Planet-integration-update.html" rel="alternate" title="Planet integration update" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-06-19T13:54:10Z</published>
        <updated>2010-06-19T13:54:10Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=170</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=170</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/170-guid.html</id>
        <title type="html">Planet integration update</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>This post is one of those seriously annoying ones that's just here to verify that the updates I've made to the twitter integration of planet works. Since Twitter are <a onclick="_gaq.push(['_trackPageview', '/extlink/blog.twitter.com/2010/06/switching-to-oauth.html']);"  href="http://blog.twitter.com/2010/06/switching-to-oauth.html" onclick="window.open(this.href, '_blank'); return false;">terminating</a> the type of authentication we were using, I had to change it. It is a change to a better method, but still somewhat annoying.</p>

<p>If you're interested in looking at the code, it's up on <a onclick="_gaq.push(['_trackPageview', '/extlink/github.com/mhagander/hamn']);"  href="http://github.com/mhagander/hamn" onclick="window.open(this.href, '_blank'); return false;">github</a> and on <a onclick="_gaq.push(['_trackPageview', '/extlink/git.postgresql.org/gitweb?p=hamn.git;a=summary']);"  href="http://git.postgresql.org/gitweb?p=hamn.git;a=summary" onclick="window.open(this.href, '_blank'); return false;">git.postgresql.org</a>.</p>

 
            </div>
        </content>
        <dc:subject>planet</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/167-PostgreSQL-infrastructure-updates.html" rel="alternate" title="PostgreSQL infrastructure updates" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-03-27T13:53:00Z</published>
        <updated>2010-06-06T14:59:42Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=167</wfw:comment>
    
        <slash:comments>13</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=167</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/167-guid.html</id>
        <title type="html">PostgreSQL infrastructure updates</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>At <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresqlconference.org/']);"  href="http://www.postgresqlconference.org/" onclick="window.open(this.href, '_blank'); return false;">PG-east</a>^H^H^H^H^H^H^HJDCon here in Philly yesterday, <a onclick="_gaq.push(['_trackPageview', '/extlink/pgsnake.blogspot.com/']);"  href="http://pgsnake.blogspot.com/" onclick="window.open(this.href, '_blank'); return false;">Dave</a> announced the infrastructure changes that we decided on late last year, and have been working on and off to get the groundwork done for over the past months (mostly off, or we'd be done already). Since I've had a number of questions around it, I'm going to post a summary here.</p>

<p>The bottom line is, we're changing - over time - how we're going to run and manage the infrastructure behind the postgresql.org services. Things like website, source code repositories, etc. The reason is simple - the way we are doing it now has become too hard to maintain, and just requires too much manual work.</p>

<p>There are several parts to these changes. For one, we are building automated methods for a lot of things that previously required a little manual work. But even a little manual work rapidly becomes very time-consuming when you have a lot of machines - and the number of machines we have have been increasing fast over the past couple of years.</p>

<p>The biggest change is that we will be moving our services off FreeBSD, that we use now, onto Debian GNU/Linux. At the same time, we will switch virtualization solution from FreeBSD Jails to KVM. FreeBSD jails have served us very well over time, but now that we have access to a well working KVM product that uses hardware virtualization, the gains of having full virtualization are much easier to get at.</p>

<p>One of the main drivers for the change is that maintaining ports-based installs are just taking way too much time. The new system will be based heavily around using Debian packages and the apt system, to the point that everything being installed will always be done using "meta-packages" that will ensure that all our machines look the same way. This also plugs into our monitoring systems very well, making applying (security) updates across the many machines much easier. In particular, it should get rid of what's sometimes a multi-day operation to get everything security patched, due to dependencies and the slowness of updating ports.</p>

<p>It is quite possible - in fact, I'd say probable - that there are perfectly fine ways of doing this on FreeBSD. But this outlines another big reason for this change - it's simply a lot easier to find people who can do these things on a Linux based system today. Our efforts are entirely volunteer based, and in the end we just don't have people who know enough FreeBSD volunteering to do this work. In fact, we have had several people retire from the sysadmin team over the years specifically because they refuse to work with FreeBSD. We don't expect this change to magically create more volunteers, but it will make it easier to recruit in the future.</p>

<p>The system will also automate a lot of the configuration work that needs to be done manually today, as well as automatically configure our monitoring systems (primarily Nagios and Munin) and backups. And finally, the system will automatically provision (and un-provision) users and access permissions across all machines from a central repository.</p>

The code is not entirely done yet, but we do have enough in place to automatically provision and configure basic virtual machines in just minutes, as well as much<p>of the configuration. We have prototype deployments online, but we haven't started moving production services yet. We'll hope to get started on that shortly. It will obviously take a long time before we have migrated all services - in fact, we may never migrate <strong>all</strong> services. The focus will obviously be on the most manpower-intensive ones first.</p>

<p>As usual the code that's used to build these services will be published under the PostgreSQL licence once it's finished. Some security sensitive parts may be removed, but the bulk of it is very generic and should be re-usable as a whole or in parts.</p>

<p>Another issue that's going to delay some changes is the fact that a few of our infrastructure servers are currently not VT-capable, and thus cannot run KVM. In the short term these machines will continue to run FreeBSD Jails, but eventually we want to replace these machines with more modern ones. So if you are sitting on one or more VT-capable machines with enough RAM to run a number of virtual machines, hosted in a datacenter somewhere that can provide us with multiple IP addresses and a decent availability of network and services, that you would like donate to the PostgreSQL project, please get in touch with our sysadmins team to see if this is something we can work with!</p>

 
            </div>
        </content>
        <dc:subject>intrastructure</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/169-PostgreSQL-Europe-election-results.html" rel="alternate" title="PostgreSQL Europe election results" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-05-24T17:54:05Z</published>
        <updated>2010-05-31T16:50:44Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=169</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=169</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/169-guid.html</id>
        <title type="html">PostgreSQL Europe election results</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>The elections for PostgreSQL Europe are now closed, and the full results are published on <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/elections/2/']);"  href="http://www.postgresql.eu/elections/2/" onclick="window.open(this.href, '_blank'); return false;">http://www.postgresql.eu/elections/2/</a>.</p>

<p>The PostgreSQL Europe Board would like to welcome our new board members Dave Page and Guillaume Lelarge, as well as welcome back Andreas Scherbaum who was re-elected.</p>

<p>I would also like to personally thank Gabriele Bartolini, member of our original board and one of the initiators for PostgreSQL Europe, who will now be leaving the board. Gabriele has been instrumental in getting PostgreSQL Europe off the ground, and I'm sure we will see much of him within our community in the future as well, even if he is not serving on the board.</p>

<p>A total of 20 persons voted in the elections, out of the 39 that were eligible.</p>

<p>Thanks to all who participated in the elections!</p>

<p>If you have any further questions around this, please feel free to contact me or any of the other board members (old or new) directly.</p>

 
            </div>
        </content>
        <dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>
    <entry>
        <link href="http://blog.hagander.net/archives/168-PostgreSQL-Europe-get-your-nominations-in.html" rel="alternate" title="PostgreSQL Europe - get your nominations in" />
        <author>
            <name>Magnus Hagander</name>
                    </author>
    
        <published>2010-04-20T10:15:24Z</published>
        <updated>2010-04-22T00:41:24Z</updated>
        <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=168</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.hagander.net/rss.php?version=atom1.0&amp;type=comments&amp;cid=168</wfw:commentRss>
    
            <category scheme="http://blog.hagander.net/categories/1-PostgreSQL" label="PostgreSQL" term="PostgreSQL" />
    
        <id>http://blog.hagander.net/archives/168-guid.html</id>
        <title type="html">PostgreSQL Europe - get your nominations in</title>
        <content type="xhtml" xml:base="http://blog.hagander.net/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>We have now opened the nominations period for the upcoming elections to the board of PostgreSQL Europe. It's simple - anybody who is a member of PostgreSQL Europe (if you're in Europe and doing PostgreSQL stuff, as a developer, consultant or just a user, you really should be. It's <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/about/membership/']);"  href="http://www.postgresql.eu/about/membership/" onclick="window.open(this.href, '_blank'); return false;">easy</a>!) can be a candidate to be elected. You just need to be nominated by one member (who can be yourself, just to let people know you are interested in being a candidate) and seconded by one other member - that's all.</p>

<p>So if you're interested in this, or know somebody who should be, post your nominations to the <a onclick="_gaq.push(['_trackPageview', '/extlink/www.postgresql.eu/community/lists/']);"  href="http://www.postgresql.eu/community/lists/" onclick="window.open(this.href, '_blank'); return false;">pgeu-general</a> mailinglist. For full details about the procedure, see <a onclick="_gaq.push(['_trackPageview', '/extlink/archives.postgresql.org/pgeu-general/2010-04/msg00002.php']);"  href="http://archives.postgresql.org/pgeu-general/2010-04/msg00002.php" onclick="window.open(this.href, '_blank'); return false;">this email</a>.</p>

 
            </div>
        </content>
        <dc:subject>pgeu</dc:subject>
<dc:subject>postgresql</dc:subject>

    </entry>

</feed>
