"Ole-Henrik Jakobsen" <[EMAIL PROTECTED]> writes:

Hej Ole-Henrik,

Thanks you very much for giving me some feedback!  I've looked at it a
bit and I guess you're right about the documentation: I should have
tried to write more carefully what changes are necessary with PEL 0.9.

The problem for me is just that I've made them incrementally over the
last year (0.8 came out in February 2005) and so I haven't really
noted them.  That is why it is so important that users sometimes test
the CVS code.

Anyway --- its good that we've found the problems now, for then we can
make a 0.9.1 release to try and fix them! :-)

> I tried to upgrade PEL from 0.8, and yes, I got problems:p I tried
> to figure it out without success, and reading INSTALL, README, NEWS,
> TODO, CHANGELIST, the API Documentation.

I agree that it is somewhat confusing and I haven't thought so much
about it.  My idea with those documents is as follows (this should
probably be part of the README):

README explains what PEL is and explains the other documents.

INSTALL lists basic installation requirements and instructions and
gives pointers to further documents on how to use PEL.

NEWS gives a cronological overview of the changes to PEL.  It is
intended to be smaller than the full ChangeLog and especially intended
to help people to see what has changed between each release.  For 0.9
it says that

* Changed PelIfd::getSubIfd() to take an IFD type as argument instead
  of a PelTag.  Added PelIfd::addSubIfd().

and this is precisely why your code no longer works.

I think it would be a good idea to have a section before 'Changes'
which lists such API incompatibilites:

----

API incompatible changes:

* Changed PelIfd::getSubIfd() to take an IFD type as argument instead
  of a PelTag.  The IFD types are constants in PelIfd.  So please use

    $exif = $ifd0->getSubIfd(PelIfd::EXIF);

  instead of

    $exif = $ifd0->getSubIfd(PelTag::EXIF_IFD_POINTER);

  in your code.

* Added support for the GPS IFD.  This API break compatibility with
  version 0.8.  The problem is that the GPS related tags have the same
  value as some other tags, and so the function PelTag::getName(),
  PelTag::getTitle(), and PelTag::getDescription() has been changed to
  take an extra argument specifying IFD type of the tag.

  This might change very well further in the future.

----

I hope this will help in the future.  Furthermore, I can make
getSubIfd() accept the old constants too (with a warning) and so make
a more fluid transition.

But PEL is in a somewhat strange situation in that it works quite
well, but I still have some plans for major API changes... to
complicate things even more, then I don't have something which relies
on PEL myself, so changing the code is easy! :-)  That is why it is
very valuable when people like you complain about these things!

> I like the project, but I don't like the documentation. It's -way-
> to hard to figure out how to use things.

You're right.  We need more code examples and better guides.

> In the very first script I made to get the EXIF tags and print them
> to a site, I used over 24 hours to create. And yes, it looks very
> simple and ugly. Btw. I didn't know that it had a multilanguage
> support, so I just added my own language directly in the script:p

> I will put the script in attachment, it works for 0.8 and not the
> 0.9. But  of course, it had been very cool if someone having a
> wonderful script  would share it too.

Yes, I hope that as more and more people try PEL that we will see some
cool code with it and maybe some documentation to go with it.

> It may look like I hate the 0.9 release or the documentation, but no
> I don't. It's late and I'm scratching my head of soon to get this to
> work.

No problem!  I'm glad for your mail since it highlighten some problems
which I hadn't thought of.

> Well, I have switched back to 0.8 and will upgrade when my head is
> ready for it. Well I don't hate the documentation, but it REALLY
> needs some more explainations to get different stuff to work.

Right again :-)

-- 
Martin Geisler                                     GnuPG Key: 0x7E45DD38

PHP Exif Library      |  PHP Weather             |  PHP Shell
http://pel.sf.net/    |  http://phpweather.net/  |  http://mgeisler.net/
Read/write Exif data  |  Show current weather    |  A shell in a browser

Attachment: pgp31IGVTstOl.pgp
Description: PGP signature

Reply via email to