msvc builds on the buildfarm

Thanks to Dave, we now have a couple of machines on the buildfarm that build with msvc - a definite requirement for using the msvc build for the main binary distribution of 8.3. Today had my first msvc-specific patch that the buildfarm found for us - a trivial overlook, but the buildfarm certainly helped. And even the Unix folks seem to like it - diversity is good for portability.

Pginstaller with msbuild

As of yesterday, msys/mingw is no longer used to build the CVS tip of pginstaller. Instead, it builds completely using the tools of Visual Studio 2005. This includes both the actual installer, and the custom actions written in C. There is no change to the actual installer, it's still built using WiX based on the same files, and the DLLs are built from the same source code (except for a few compatibility fixes).

The build system for the pginstaller is fairly complex. Or at least, it's fairly weird. Mainly because of the need to deal with the translations, which are applied by first generating complete installers in different languages (which in turn is done by rewriting the whole source code and replacing translatable strings) and then doing a "binary diff" between them, which is finally embedded in the main installer.

The drug of choice for this rewrite is msbuild. While primarily geared for building managed code (that's Microsoft-speak for .Net code), it can be a pretty good Makefile replacement. While it can't do everything that your typical unix makefile can do (given that it can't run arbitrary commands), it has some good features for dealing with just the situation we have with our language code. Check it out - it's all in the pginstaller cvs. It's always a matter of taste which is cleaner - I personally find the msbuild code a bit more readable.

The best news is definitely that there is no need for a msys/mingw installation to build it anymore. And if it's used to create an installer for the msvc build of the backend, there's no need for msys/mingw at all anymore.

Remembering the download mirror

As a final step to my updates to the download code on www.postgresql.org, I've added code so the server remember which mirror was last used to download. When you download a second file, this mirror will be automatically picked for your download, saving you a whole click. Enjoy!

Support for http downloads

I've just committed code to the website that finally allows http downloads. This has been a much requested feature for quite a long time, mainly from those users that are behind firewalls that don't work well with ftp. Most often a http download of a single file will also be faster than ftp download of the same file, since there are less roundtrips. Though for large files that difference shouldn't be noticeable.

The mirror checking script will poll the same mirrors we already have and figure out which ones support http download as well as ftp. Therefor, all mirrors listed will always support ftp, but some (currently about a third of them) will also support ftp. There will be no http-only mirrors.

Messing with the website

I finally got around to committing the code that I've been sitting on for the website. Hopefully, it shouldn't have much visible results for the end user (it's designed to look just the same), but it fixes several of the issues that used to be in the code:

  • Instead of including pages all over the place, each page is now it's own class, which is auto-loaded. It consists of a couple of virtual methods, that make it possible to actually use return in the code, instead of having to build insane if-else-ladders

  • Uses proper exception handling to deal with errors. So now we actually output http error codes when things break, instead of outputing a status code of ok with a text of "error: this or that". This is very important given that the mirror script will now not overwrite the entire site with empty pages in case things break - instead, it'll just leave the last working version alone.

  • Language code for translating news, events, quotes etc is fixed and appears to actually work now. It's a much-talked-about feature that it seems pretty much nobody has been using. But at least it's not broken anymore.

  • Loads and loads of code cleanup and minor bug fixes.

Given that it's a huge commit, I'm sure I managed to break something. If you spot something that's obviously broken and that used to be ok, please drop me a line so I can fix it.

Linuxforum roundup

So I'm back home from Linuxforum in Copenhagen. As usual, a very good conference, with many interesting talks. And we were well isolated from the riots that took place in parts of the city - barely noticed them. If you have a chance to go next year, you definitely should! It's not even expensive...

Noticeably absent from the whole thing, both talk and booth-wise, was MySQL. I have no idea why. Nice to see that Ingres had a talk, now that they're open sourced - and a very interesting one regarding open vs closed source in enterprise environments.

My talk was Saturday afternoon, and went pretty well I think. The room was more or less full - which was a good thing given that it meant a lot of people were interested, and a bad thing because there was pretty much zero ventilation in the room. My chairman almost fell asleep, but at least I didn't notice anybody else doing so.

The questions aside from the actual talk were mostly the usual one. One interesting thing to notice is that both me and the Ingres guy got a question about CONNECT BY. And neither of our databases have it (yet). It's possible they were from the same guy though - I didn't get a look at him during the Ingres talk.

Anyway, a big thanks to the coord team for having me over again this year - I had a great experience! And thanks to the other speakers with whom I spent a lot of time. Hope to see you all again next year!

Thank you JPUG!

The JPUG conference yesterday here in Tokyo went really well, I think. As I've come to expect, a well arranged conference, and a lot of interested people there to listen.

For me the day started when I realized I had not finished my slides(!) The slides themselves were finished, but I had some highlighting to do (on the screen shot slides), and I had to polish a few minor things. So the time after breakfast was well spent on that. Around 11:30, Ishikawa-san came to pick me up at the hotel and we went to the SGI conference room where the talks were.

The conference itself started with Hiroshi-san doing a presentation on npgsql. He also showed a video of Francisco giving a welcome speak (originally Fransisco was supposed to be at the conference, but he was unfortunately not able to make it). Some minor technical issues, such as the video playback hanging and repeating one word over and over again, but still nice... Can't say much for Hiroshis talk, given that I didn't understand a word (other than the code slides), but as usual he was very persuasive...

After that, it was my turn. It was a pretty big crowd, about 100 people according to the numbers I heard (see picture, as seen from where I was standing). I think the talk went pretty well, and people did seem interested. I had a translator who translated everything I said into Japanese. I'm was quite impressed by her - she knew nothing about PostgreSQL (or really about technology in general), just the language. But the way she was able to remember a set of three to four sentences and then translate it all, with just a few very quick notes, was very impressive. And from what I heard, the translation was good - can't verify that myself, of course. Last time I spoke here (with Dave and Andreas) we were talking from transcripts that were translated beforehand. This time, the translation was live.

Once my talk was over, I had an interview with a reporter from Nikkei Business Publications about PostgreSQL on Windows in particular and some general things about PostgreSQL. Hopefully, it will turn into a nice article.

The rest of the day was spent with talks by Enomoto Atsushi (from Ximian/Novell) about ADO.NET in Mono, and by Jun Kuwamura about using PostgreSQL for LDAP on Windows. (picture as seen from my position in the back of the room, during the LDAP talk. I confess to checking my email during the talk) Again, I can't really speak for the contents of the talk, as I didn't understand much. But there were pretty screen shots...

Once we packed up after the conference, we went for a JPUG dinner at a place called something-or-other Beer Station. In English! I understood what it said on the door. And given that it said Beer station, what could I do but approve... We had a nice dinner, and many interesting people from JPUG to talk to. It's very interesting to hear about PostgreSQL usage here in Japan - in some ways, it's way ahead of Europe. Also had the chance to do some more specific troubleshooting with a couple of guys who had specific problems. After that we were off to a sake-bar in the evening for some further drink and food. Good times were had by all...

Finally, no post about this conference and the surrounding activities would be complete without a picture of the guys who made it happen, so here it goes. There were a lot of people involved in making this a great conference for the people visiting, and a great trip in general for me, but these were AFAIK the main guys arranging it - Hiroshi Saito and Toshiyuki Ishikawa. So to you, and to all the others who helped out with it, a very big thank you! I've had a great time so far, and I'd certainly love to come back another time

With that, i have a meetup with Michael Glaesemann tonight, and then it's off to the airport tomorrow for one of those lovely way-too-long flights back home. I hope there are no unnecessary delays this time...

Hello JPUG

It wasn't without minor issues (FinnAir pilots got ill, had to replace crew, hello 2 hour delay. Missed bus at the airport, hello to another 45 minutes. Turned out the hotel was big enough to have three separate receptions - naturally, I didn't go to the right one), I managed to meet up with Hiroshi Saito at my hotel. It wasn't even too late for a quick lunch with him before he had to leave.

Got some email done, and some final polishing on my slides. Now I just need to figure out what to say...

Had dinner and a beer at the skybar. The Tokyo skyline is really impressive at night - especially for someone who lives in a country that has extremely few highrisers. And yes, I forgot my camera. Maybe another day.

The jetlag is starting to take it's toll now - I need to head to bed. It's about 28 hours ago since I got up [HTML_REMOVED]this morning[HTML_REMOVED]...

Tomorrow's the big day. See you in the reception, Ishikawa-san :-)

Google analytics makes pretty graphs

A couple of days ago, we enabled Google Analytics on the postgresql.org website (possibly temporary, haven't decided on that yet) to collect some statistics primarily about the languages our visitors have configured in their browsers. The method google uses (client-side javascript) makes it very easy to integrate in our distributed platform with 4 different mirrors handling the main site, spread across the world.

And I have to say, it certainly makes for some pretty graphs that I'm sure would impress the hell out of a lot of PHBs and market analysts. Take this, for example:

It shows the languages of people visiting the postgresql.org website, with a highlight on the people who prefer Japanese.

The statistics themselves are also very interesting - only (and I do think this is only) just over half the visitors have english configured as their primary language. No other languages are very big, but there are a lot of them (107 combinations in total). The most common other languages (German, Brazilian Portuguese, Japanese, Spanish, French) are not very surprising either, given how our community looks.

One interesting piece of statistics around the languages is that for the mailinglist archives, it's very different - English is of course even more common, almost all other languages are less common, but Spanish increases up to about 10%25. I have no explanation for this, but it's interesting..

When you instead look at the top URLs, there's some further interesting stuff going on:

Not surprising, the frontpage is the most loaded page. And the main docs page is second, with a couple of different download links following that. However, in 7th place with 1.6%25 of the total pagehits is the download for 8.2.3 win32 binaries. That's more than the people browsing for source, let alone those who download it. And this does not include the people who just grab it from their local mirror. Interesting.

The final piece of statistics today will be browsers and platforms used. First, browser:

Not really surprising, Firefox is the big leader, with well over 50%25. Internet Explorer has about a third of our visitors. Most other browsers are very small.

Now, moving on to platforms:

Slightly more surprising here. Even though PostgreSQL is very Unix-centric, we still have almost three quarters of our visitors using Windows. Unlike many other sites, though, we have a lot more Linux users than Mac - but that comes with the usage pattern.

We've also got NTT DoCoMo showing up as a top browser, which is also interesting. I beleive that's a mobile phone browser used in Japan. Our site is definitly not mobile-adapted, but obviously good enough for some.

That ends todays list of (possibly meaningless) statistics and pretty graphs.

Todays funny quote from the lists

This one was just so good I had to put it here - if you're already reading the pgsql-general list, just ignore this post. On a thread about stupid benchmarks (comparing databases with default settings without changing anything, comparing MyISAM with a transactional engine, etc), Tom Lane gave us this gem:

I think it's a fine analogy, precisely because they're both good in their respective problem domains. Try to carry 500 people from Los Angeles to Tokyo in an F-15. No? Try to win a dogfight in a 747. No? But they both fly, so it must be useful to compare them... especially on the basis of the most simplistic test case you can think of. For extra points, use only one test case. Perhaps this paper can be described as "comparing an F-15 to a 747 on the basis of required runway length".

That's a good one, Tom! And can we please have proper benchmarks instead of this kind. (I'm intentionaly not linking to the actual benchmark in question)

Conferences

I speak at and organize conferences around Open Source in general and PostgreSQL in particular.

Upcoming

PGConf.Asia 2018
Dec 10-12, 2018
Tokyo, Japan
FOSDEM+PGDay 2019
Feb 1-3, 2019
Brussels, Belgium
Nordic PGDay 2019
Mar 19, 2019
Copenhagen, Denmark

Past

DC PostgreSQL Users Group
Nov 14, 2018
Washington DC, USA
New York City PostgreSQL User Group
Nov 13, 2018
New York City, NY, USA
Driving IT 2018
Nov 2, 2018
Copenhagen, Denmark
PGConf.EU 2018
Oct 23-26, 2018
Lisbon, Portugal
Day of the Programmer
Sep 13, 2018
Jönköping, Sweden
More past conferences