Wednesday 2 November 2005

A jolly in Tokyo

So, as part of our work porting Slony-I to Windows, and adding full support to pgAdmin, Andreas, Magnus and I were invited to present our work at a seminar in Tokyo, organised by Hiroshi Saito and his employer, SKC. We met in the departure lounge at London Heathrow from where we flew to Narita, Tokyo on Wednesday last week. Hiroshi met us at the airport, and brought us back to our hotel in Shimbashi.


The first evening we attended a welcome party with various members of the Japan PostgreSQL Users Group or JPUG for short. After a good meal and plenty of food it was off to bed to recover from the 30 hour first day!


On Friday we travelled by train to the seminar, and after an Italian lunch(!!) proceeded to give our talks to around 70 JPUG members. I spoke first on replication in general, and then on the Slony porting project and how we worked. An hour later, Magnus took to the stage and discussed the details of porting slon in more depth, and then gave a perfectly executed demonstration of Slony-I running on Windows. Finally, Andreas discussed the new management features added to pgAdmin.


[From left to right, Andreas Pflug, Magnus Hagander, myself and Hiroshi Saito]


After the presentation, we headed down to the restaurant in the building for and evening reception with beer, buffet and even a little bingo. Lot's of business cards were exchanged with a variety of PostgreSQL users and developers, and even one of the Firebird team!!


On Saturday, we spent a day sight-seeing, mainly in Kamakura where we visted a couple of temples and a very large cast iron Buddha. Lunch was Korean barbeque, following which we took a trip back to Tokyo station on the Shinkansen, or Bullet Train. A few beers in the 'Victorian Pub' across the courtyard from the hotel entrance, and it was off to bed before the journey back to the UK, Sweden and Germany in the morning.


All told, an excellent trip on which we were welcomed by our extremely hospitable Japanese friends. Many thanks in particular to Hiroshi Saito and SKC, not to mention the rest of the JPUG members.

Friday 16 September 2005

Slony-I on Windows

Magnus pinged me last night and was kind enough to point out how neglected my blog had become recently, so I figured I'd better write a new entry before the cobwebs become too thick to see through. In my defence, I've been incredibly busy recently with upcoming releases of psqlODBC, pgInstaller, pgAdmin and PostgreSQL, not to mention being busy in my day job as well!

So, in order to put things write I figured I'd mention the 'other' project I've been working on recently, the Windows port of Slony-I. A bunch of us (well, myself, Magnus Hagander and Andreas Pflug) were assembled into a team by Hiroshi Saito to port Slony-I to Windows, update the documentation, sort out the regression tests, and add full support to pgAdmin. Just before lunch, I posted the final patch (the documentation) of that little lot to the Slony mailing list for review, and finally, the end is in sight! Bar a couple of minor improvements to make, thats pretty much the project completed - so come the next major Slony release, you'll be able to replicate you PostgreSQL databases to and from your Windows boxen.


So, effort now moves to our presentation. Part of the deal with Hiroshi is that we present our work to the Japan PostgreSQL Users Group (JPUG), so at the end of October the three of us will be jetting off to Tokyo for a few days of trains, sushi and sake. I can't wait to get there :-)

Monday 29 August 2005

Hello Solaris, I'm pgAdmin III....

For a while now we've had anecdotal reports of people compiling and running pgAdmin III on Solaris systems, a few successfully and a few unfortunately not. I was recently given the use of a Sparc box running Solaris 10 and asked to sort things out properly, so being the eager-to-please kind of chap that I am decided to do just that. The owner of the box had tried numerous combinations of configure options for wxWidgets (the cross platform API pgAdmin is built on), but had only managed to build an executable that crashed whenever a modal dialogue was closed.

So, after some investigation by myself and Andreas Pflug, I produced a reproduceable test case of the problem using the wxWidgets 'dialogs' sample, and emailled it to the wx developers list, along with details of some linking problems I'd also found. After some discussion, and speculation that the problems might have been caused by GTK being compiled by Sun's compiler and everything else by GNU's GCC, the problem was solved by Mike Wetherell, who committed a fix to the wxWidgets CVS, along with further fixes to resolve the linking issues.

So, using a wxWidgets snapshot, coupled with the latest pgAdmin snapshot (containing a couple of other compilation and linking fixes), pgAdmin sprang to life both on the Sparc box, and the x86 Solaris box I built in the office :-)

'Enough of the yacking' I hear you cry, and 'how do I build it then'? Well, simple - here's what I installed:


PostgreSQL 8.0.3 configured with:

./configure --enable-thread-safety --with-openssl --without-readline

wxWidgets CVS snapshot from 2005-09-26 (or later, use the 'All' version) configured with:

./configure --with-gtk --enable-gtk2 --enable-unicode --enable-mimetype=no

pgAdmin SVN snapshot from 2005-09-27 (or later), configured with:

./configure

There you have it - enjoy :-)

Friday 22 July 2005

psqlODBC grows up

If you've been following the development of psqlODBC at all, you'll probably know the Anoop Kumar from Pervasive Postgres has been working hard to update the PostgreSQL ODBC driver to use the standard libpq interface to communicate with PostgreSQL. The first version of the driver was released as a snapshot version about a week ago, and has been put through it's paces since then. A few memory leaks and other bugs have been fixed, and things are looking pretty darn good so far, considering how large these changes are.


There are immediate benefits to this change. First, psqlODBC now supports the v3 wire protocol now used by PostgreSQL, and when v4 is produced as it inevitabley will be, we'll automatically be able to support that as well. Second, we now benefit from other features that libpq provides - for example, support for environment variables like PGUSER and PGDATABASE and support for password files. It should also support authentication methods like Kerberos with little or no extra work.


One of the most requested features of psqlODBC is SSL support. Thanks to Anoop's hard work, I was able to add support for SSL to the driver in a little over an hour today - that will be included from the next snapshot release, 08.01.0003, which will probably be produced sometime next week.

Anyhoo, if you get a minute, grab the latest snapshot, and give it a whirl. Bug reports to pgsql-odbc@postgresql.org please!

Wednesday 25 May 2005

It's Alive!

Finally, after 2 weeks of frantic hacking between paid work, pgAgent is ready for testing! Anyone who follows the pgAdmin development work will already know this, however for those that don't, pgAgent is a job scheduler for PostgreSQL. Running as a service on windows and a daemon on *nix systems, it allows you to schedule jobs consisting of one or more SQL or shell/batch steps which run in sequence. Multi threading allows multiple jobs to run in parallel, and a nifty connection pooling mechanism ensures efficient resource usage on your server. Each job defined may have one or more schedules attached to it, each of which is based on an enhanced cron-style format. Management is from the pgAdmin console (of course), and the agents themselves can run on one or more machines at once.

Anyhoo, if you wanna give it a try, grab a snapshot from http://developer.pgadmin.org/snapshots/ and schedule away! Feedback is welcome of course - please send any to pgadmin-hackers@postgresql.org.

Thursday 5 May 2005

pgAdmin moves to Subversion

So there I am, committing a whole heap of changes to the pgAdmin build system when Andreas Pflug emails me and suggest that whilst I'm at it, we could restructure the source tree to fix various issues that have cropped up since the project started. Good idea I think, however as anyone who has used it knows, you cannot move files and directories in CVS without losing the continuity of the history.

Subversion kept getting lots of good recommendations, and as it happens I was also replacing the main developement server, so after discussion and some playing with a test installation of Subversion for a while, we decide to migrate to it at the same time as we migrate to the new machine.

I won't write a full howto here, but I will include a warning about a gotcha that caught me out - to get the ViewCVS web interface runnng you need to install SWIG first, and then build and install the Subversion Python bindings - instructions for which are hidden away in subversion/bindings/swig/INSTALL in the Subversion source tarball. You will also need to use ViewCVS 1.0-dev, straight from the CVS.

So, yesterday it all went live, and so far, so good. I've made a heap of commits updating documentation and build scripts etc. and Andreas got in on the act with some source restructuring this afternoon. The only problems so far have been in ViewCVS. The first was my fault - diff's weren't working, and after 30 minutes or so of Googling and trying to understand the Python code (I don't speak Python yet), I realised it was because I hadn't installed GNU diffutils on the new dev box. D'oh! The second problem still needs investigation - the CVS Graph buttons are not showing up. It seems this is a known problem though.

Anyway, if you wanna take a look, head over to http://svn.pgadmin.org, or point your Subversion client at svn://svn.pgadmin.org/

By strange coincidence I see that the old "let's move to a new source control program" discussion is resurfacing on pgsql-hackers.... I wonder where it'll go this time?

Tuesday 19 April 2005

Support rant - Dave goes 'off on one'!!!

Warning: The following rant is not aimed at anyone in particular. It applies to a very small minority of the people I deal with on a daily basis who have unfortunately found a great way to cheese me off. I have been very careful to try not to make it sound like I don't respect end-users in general, however, if any of it does sound that way, it is entirely unintentional and I apologise in advance!

It's a fact of life that if you publically contribute to an Open Source project, then your inbox is going to bloat. Google currently has around 2000 hits for my primary email address in the web and groups databases, which means that that address is probably on a fair percentage of the spam address lists in the world- certainly it seems that way given that I can receive 200 or more junk messages on a bad day! 

That's not what this rant is about though - I've long since given up complaining about spam and setup various filters instead that keep the majority of it from hitting my inbox at all. This rant is about support. Like many other people involved on OSS projects, I spend a great deal of time writing code and documentation, fixing bugs and helping users out, all for the fun of working on the project. What really irks me though, are the few users that cannot be bothered to take the time to help themselves and simply send a private email demanding immediate help with their 'problem'. Consider the following email, typical of a dozen or more I might receive in a week:

Dear Save,

I need Postgre for my prject. Tell me where I can download the Postgre and how to set it up for my project.

I expect you immediate attention in this matter.

Sincerly xyz

OK, first off, my name is Dave. Not Save but Dave with a 'D' for doughnut. Why should I be bothered to help you (for free) if you can't be bothered to get my name right? You would be amazed how often people do this - and it's not like Dave is a particularly unusual name.

Second, you got the project name wrong. OK, I'll grant you that we in the Open Source business have an annoying habit of giving projects cryptic names, but c'mon, Google has 5.75 million pages with PostgreSQL in them - surely that's a clue?

Right, third. Spelling & grammar. It's one thing if you're not an English speaker - heck, your English is probably far better than I'll ever manage to speak your language - but if you're going to demand help from someone, then it wouldn't hurt to check for at least the most glaring errors before hitting send. There really is no reason to spell the same word 14 different ways in the same message!

Next up, why are you mailing me directly? I'm one of a hundred or more people working on PostgreSQL, and nowhere is my email address listed as a support resource. OK, so I could maybe understand this more if it was a pgAdmin query given that I started the project (not that that makes it OK), but this is a PostgreSQL query.

Next one - downloading PostgreSQL. Really, how hard is it to go to the website and click 'Download'? A very wise PostgreSQL hacker recently said to me 'if someone cannot figure out that for themselves, what hope do they have of running a DBMS?'. 

OK, number 6. 'Tell me how to set it up for my project'. WTF? I really do see this one quite often. How on earth am I expected to tell you anything about your project - and even if you had remembered to tell me what it was, why would I want to provide free consultancy? Bug fixing and a little guidance is one thing, but I'm not about to do your job as well as mine!

Finally, number 7. My immediate attention is expected? Yup, I'll give it my immediate attention - click, drag, drop, empty trash. Done. Next please.

OK, so it probably sounds like I've got a downer on everyone that asks for help - that is absolutely not the case. Although Eric Raymond puts it best in his paper How To Ask Questions The Smart Way, here's a few simple hints to avoid cheesing off the people you want a little help from:


  1. Try to help yourself first. Check the website, the docs, Google Web/Google Groups. Above all, make sure you don't end up asking questions that are answered in easily accessible places such as FAQs, or worse, the project homepage.

  2. Ask in the right place. Check the website for the project - there will almost certainly be support forums or other resources listed somewhere. Only contact the author directly as an absolute last resort.

  3. Describe your problem clearly, and simply. Include system configuration details such as OS and software versions. If reporting a bug, try to include a procedure with which the bug may be reproduced.

  4. Don't demand help. I personally take great exception to that, and I'm sure most other people do as well. Taking that sort of tone with me is a privilege reserved solely for my wife and my boss!

  5. Don't expect your task to be done for you. Hackers and other users will usually help with problems, but not lazyness!

So there you go. How to piss off a hacker and how to get help in one simple rant! 

This blog entry has been checked by an independent PostgreSQL hacker. Please send any objections to the sentiments held within to /dev/null

Sunday 10 April 2005

Err, OK then - a blog

So there I am on a Saturday afternoon having just sent the kids off on a brief holiday with the in-laws, helping my brother sort out a DNS snafu with one of his sites (Endurance Life), when Devrim GUNDUZ pings me on ICQ. 

"Morning Dave" 

he says, followed by 

"do you want to start a blog on PlanetPostgreSQL?". 

My instant reaction is along the lines of: 

"what's the point? Who'd want to read my drivel?" 

and well, I'm still not convinced that anyone would! Still, Devrim pointed out that as one of the PostgreSQL webmasters, pgAdmin lead developer and a pgInstaller developer I might actually have something vaguely interesting to say, so for some reason that still completely escapes me, I said "OK, why not". I'm damn sure I'll get the mickey taken out of me by the anti-bloggers at work but who cares? So, anyway; I'm Dave Page and well, I guess this is my shiny new blog!