Archive for the 'PHP' Category

PEAR DB 1.7.12

Friday, June 29th, 2007

It’s about a month later than I originally planned, but PEAR DB 1.7.12 has just been uploaded to a PEAR server near you. If you’re using DB with PostgreSQL and PHP 5.2.x, you’ll want this version, due to a backward compatibility break in PHP 5.2’s pg_escape_string. Otherwise, there’s not too much that’s exciting, although hopefully the Fedora Extras packaging guys will forgive me for screwing up the test suite slightly in 1.7.11!

Note that DB will no longer install with PEAR installers earlier than PEAR 1.4.0, as it now uses the newer package.xml format introduced in that version. That being said, if you’re still using PEAR 1.3, you really should upgrade per the instructions on the PEAR web site, since it’s no longer supported and all.

As per my usual plan, I’ll release 1.7.13 at the end of July (hopefully) if any bugs are reported.

What I Did With My Winter Holidays, Part 1

Thursday, June 28th, 2007

This is an edited version of the update on my Google Summer Winter of Code project that I’ve just sent to Derick, my project mentor. For those playing the home game, my project is to write a wxWidgets-based debugger frontend for PHP’s XDebug extension. This is a long (almost 1000 words) update and pretty dry, so you can read it after the jump if you’re particularly interested in the details. If not, the short version is that I started very late courtesy of my final TV scriptwriting project not being complete until the 15th, but reasonable progress has been made on the library that will talk to XDebug via the DBGp protocol.

(more…)

toggg

Monday, June 18th, 2007
Bertrand Gugger

Bertrand Gugger, better known to many as toggg, passed away on Saturday night from a heart attack. Bertrand was a contributor to PEAR, jQuery, TikiWiki and SPIP, who have compiled a tribute page to him.

He was a strong, valued member of the PEAR community who was always ready with an opinion, a joke, and helpful advice. Indeed, last year, Bertrand was the first person to help me when I was getting involved with PEAR development, and I always enjoyed chatting to him on #pear. Like many others, I’ll miss his company and experience.

Bertrand is survived by his wife and four children, and my condolences go to them on their loss.

(Image from Flickr; taken by Olivier Gendrin.)

You Like Me! You Really Like Me!

Thursday, April 12th, 2007

Well, I’ve been accepted into the Google Summer Winter of Code. My proposal is to build a GUI frontend for Xdebug’s debugging functionality — and to answer a question I’ve already been asked on IRC, I’m currently planning on using wxWidgets as the GUI toolkit.

For the record, the abstract is:

Xdebug [1] provides a range of useful functionality for PHP developers, including detailed error information, code coverage and profiling support, and support for remote debugging using the GDB or DBGp protocols. At present, there are several DBGp implementations available as part of larger IDEs [2], however there is currently no standalone GUI application that can be run to debug applications using DBGp without tying the developer to a particular IDE.

Under this proposal, a cross-platform GUI application will be developed that implements the DBGp protocol to allow PHP applications to be debugged using Xdebug in a development environment agnostic fashion. This application could then be further developed to include support for other run-time environments that support the DBGp protocol, which includes Python with Komodo [3] and may also include Ruby in the future [4].

[1] http://xdebug.org/
[2] http://xdebug.org/docs-debugger.php#clients
[3] http://aspn.activestate.com/ASPN/docs/Komodo/4.0/komodo-doc-debugpython.html
[4] http://dev.eclipse.org/mhonarc/lists/dltk-dev/msg00001.html

I’m really looking forward to working on this, and will doubtless blog about it as development gets going. Thanks to Google, the PHP developers who selected the projects, and Derick, who’s going to be the mentor on the project.

Future PEAR DB Release Schedule

Wednesday, March 28th, 2007

One of the problems with maintaining PEAR DB is that it’s a little hard to plan out future releases, given that it only gets bug fixes and no new features. The approach I’ve been using since the release of DB 1.7.8 (the last big catch-up release) is to push out new releases more or less as I fix stuff, which tends to result in numerous small releases, sometimes quite close together. This works, but I know that it would have annoyed me when I was wearing my sysadmin hat, so I’m going to try something different for the next little while.

What I’m going to do for now is to plan a release on the roadmap for the end of each calendar month. Non-critical bugs, instead of causing a full release, will instead be fixed in CVS and a release will be pushed out at the end of the month with that fix and any others that went in. Obviously, if there are no bugs reported during the month, then the release won’t occur and I’ll instead change the roadmap to push the release back a month.

Critical bugs will still get the immediate attention they need, and releases will be made as quickly as possible for them, rather than waiting for the end of the month. However, I think it’s important not to overload programmers, packagers and sysadmins with overly frequent releases, so we’ll give this a whirl for now.

Incidentally, you can assume that DB 1.7.11, which I’ve just released with a FrontBase-only fix, is the end of March release.

(Oh, side note I forgot to put in the initial post: I’ve re-enabled trackbacks on DB for now. If the spam starts annoying me again, then I’ll disable them once again. Here’s hoping.)

The Muse-Bone’s Connected to the Radiohead-Bone…

Friday, February 2nd, 2007

For some reason I still can’t quite fathom, people have been interested in my Hackfest entry at LCA. Specifically, the entry I put in for the Audioscrobbler question, which asked us to create a program that could interface with the Audioscrobber related artists API. I decided to write a buzzword compliant Web page. So, I’ve uploaded it to http://www.adamharvey.name/hackfest/ for your viewing pleasure. You’ll need a browser with decent XHTML and SVG support. Firefox 2 seems to handle it nicely.

It uses PHP 5 for the little bit of backend processing it requires, but most of the heavy lifting is in Javascript. The only other dependency is the HTML_AJAX PEAR package — I developed against a test release of 0.5.1, but 0.5.0 should work as well.

The files I actually wrote (be warned, they’re messy and undocumented):

  • index.php: The entry point for the user. It’s only in PHP so I can control the Content-Type header.
  • server.php: The AJAX server which pulls in the Audioscrobber related artists information.
  • audio.js: The Javascript that does the heavy lifting of getting the related artists information and spitting out SVG via the DOM to render it.

You can consider these files to be licensed under either the GPL (which was a condition of entering Hackfest) or the MIT License. HTML_AJAX is licensed under the LGPL.

Adventures in Databases

Friday, December 29th, 2006

Today’s the first day I’ve really gotten down and dirty with PEAR DB development. The important bug I wanted to jump on was bug #9599, which meant that error handling was broken in PHP 5.2 for people using DB with mSQL, SQLite or Sybase databases.

Although my earlier post indicated that I was going to try to have DB 1.7.7 out before the New Year with this fix, that now won’t happen, mostly because I can’t test the release to my satisfaction here at home. I’m back at the office on Tuesday, however, and hopefully the release should be out next week.

For the particularly adventurous, I’ve packaged up a 1.7.7 release candidate from CVS, which you can get here. I’m reasonably confident it’s OK, but I’m not going to release this through PEAR — there’s just too much that can go wrong, since I haven’t even looked at some of the drivers yet, nor have I done much testing with PHP 4.

The Future of PEAR DB: No, Really

Thursday, December 21st, 2006

A little while ago, Daniel Convissor announced on the PEAR developers mailing list that he was looking to step down from maintaining the PEAR DB package, due to a lack of available time. Out of pure self-interest (I work on projects that use PEAR DB every day), I offered to take over maintenance of the package, and Daniel was nice enough to agree to let me take the reins as of a few days ago.

DB is deprecated in favour of the shinier, newer and more featureful MDB2 package, and has only been receiving bug fixes and security updates for a while now. This policy won’t be changing. As a result, I’ve spent part of today sifting through the open bug reports and feature requests for DB in order to take out the requests which are no longer appropriate.

I should note at this point that I mean no offense to anyone whose ticket has been marked as Won’t Fix. Many of the feature requests were well thought through, good ideas, and often even included working code. I would have liked to see a couple of them myself. Unfortunately, including them would have meant that DB was undergoing fresh development, which is a risky proposition given how many people rely on PEAR DB behaving the way that it does — not to mention that, as noted before, MDB2 is really a better alternative now for new development. Many of those requests would be great to see in MDB2, and I’d encourage the people who suggested features and contributed patches to look into implementing their features for MDB2 and submitting them.

That doesn’t mean that DB will never be changed again, though. Bug #9599, which causes problems with error handling in PHP 5.2, will be fixed quickly after my CVS karma has been approved. There are also a number of other bugs that need to be dealt with at some point; I’ve spent a few hours today going through the open bug list, and those that remain open are likely to get more attention in the near future.

At this stage, my plan is as follows:

  • Release DB 1.7.7 as soon as possible with a fix for bug #9599.
  • Fix as many of the remaining open bugs as possible.
  • Release 1.7.8RC1 as a beta for DB users to check that none of the bug fixes have caused inadvertent regressions.
  • Release any further RCs that are required to deal with regressions, then release a 1.7.8 final with as many of the open bugs as possible fixed.

Karma permitting, 1.7.7 should be out before the new year. Beyond that, I’m not going to commit to any timeframes, but I’d certainly hope to have 1.7.8RC1 out in January or February — the exact timing will just depend on my work schedule. I’d rather take a little longer to get a good release ready than to rush it — the fact that DB is the second most downloaded PEAR package is somewhat intimidating!

Finally, I’d like to note that I’m quite happy to receive feedback, suggestions, bug reports, flames, patches and anything else DB users would like to send me. You can get me by e-mail at aharvey@php.net, or on EFnet/#pear, where my nick is LawnGnome.