April 2001 Meeting Notes

Submitted by usda_organic on Wed, 04/11/2001 - 1:00am.

1. PHP Triad:

PHP Triad is an installation of PHP, Apache and MySQL for Windows that J. Wynia created to make installation easy.  And it is truly easy.  It includes PHP myadmin, a web based database administration tool  and PHP IDE, a web based PHP editor.  It is available from SourceForge or from http://www.phpgeek.com

J. discussed the open source installer program he used with PHP Triad:  Nullsoft's NSIS.  Nullsoft's NSIS is easy to use and only ads 38k to the entire application package that you are installing.  It also is able to perform several actions at the end of the install (for example, open browser, edit text file, start apache) as opposed to others on the market that only allow a single action at end of install.  The development pace of this product is rapid right now with new functionality being added constantly by the development community.   Read about and download from http://www.nullsoft.com/free/nsis/ .

2. The Horde Project

Brent Nordquist gave a stunning presentation on the PHP Horde project.  I cant recreate his presentation here, only repeat the coolest parts and point people to the www.Horde.org page.

Horde is an open source suite of web applications.  More than a function library, Horde has an abstracted object oriented framework that allows customization and tailoring to be used in building your applications so that you don’t have to recreate some of the basic tools.  The applications include an email solution called IMP, a calendar solution called Kronolith, a CVS viewer called Chora, a web based bug tracker called WHUPS and a contacts manager called Turba. 

Horde is written in PHP

Horde relies on the classes contained in PEAR

Horde is open source.

Horde is in need of developers, documenters, testers,

Horde 1.2 (IMP 2.2x) is current stable release:  it has frames, uses PHPLib for sessions, does not have groups for the email app, IMP.

Horde 1.3 (IMP 2.3)  is the development version.  It has no frames within applications, uses PEAR for sessions and has groups for IMP.

Horde is completely configurable including the layout (HTML).

Horde is committed to XHTML compatibility.

The Horde applications are being documented using DocBook, and very good documentation exists for IMP.  The Horde framework is not well documented yet, but “read the code”.

New Distributions will not erase users modifications and customizations.  The changes are in .dist files and updates functionality without overwriting changes.

Horde is at once:

1.       An "out of the box" suite of web applications such as Email, Calendar, address book, web portal, help desk, graphic CVS and

2.       A development framework completely abstracted for use with building applications. 

The entire room oohed and aahed when Brent demonstrated Chora, a web based graphical CVS browsing tool.   It has a color coded chart of the history of CVS commits, updates and diffs.   You can look at your color coded CVS diffs side by side in the web browser.

Some of the Horde applications including the calendar system, Kronolith, take advantage of JavaScript if it is enabled but "degrades gracefully" if JavaScript is not enabled and handles all the validation and screen clearing on the server side.

Horde also degrades gracefully when cookies are turned off and reverts to get and post transfers of session information.

If you don’t like the names IMP, Kronolith, Chora, etc, you can rename them for your installation.  The HTML layout code is enclosed in .inc files so that a maintainer familiar with HTML can change and maintain the look and feel of the application without delving into the PHP code.

Another cool thing is a "Problem" link where users can click and report difficulties.  Users in organizations using Horde for intranet applications, the help desk was getting plenty of problem notices from this help system.  This enabled the help desk to handle problems that would otherwise go unreported.  Wouldn't be that hard to add a general problem reporting function to any email program for any organization.  Provides an alternative to users to calling tech support and waiting on hold or waiting 4 days to get a call back.

WHUPS is a bug tracking application similar to Bugzilla

Another great feature is test.php, a small PHP script that ships as part of the Horde framework. It can sniff out problems before technical support gets involved.  The program detects the version, browser, OS, checks the installation configuration files, and compares the error to a list of common errors.  Then spits back a recommendation.  This makes dealing with repeat problems much easier because common problem responses are automated as the first line of defense.  The application can say "We noticed your server is configured wrong" and describe how to fix it.  

Horde started out closely tied to IMP.  The big breakthrough that makes it a valuable tool is the abstraction that allowed it to break free of IMP and stand alone as a completely abstracted and full of reusable code.

SESSION HANDLING: PHP4 implements sessions with cookies and if cookies are turned off, resorts to attaching session info to the end of a URL.  The point was made that the most efficient and secure way to use cookies to manage sessions is to use the cookie to store an encrypted token or key that is matched with information in a database on the server side instead of trying to cram real information into the cookie.

PEAR

The discussion of Horde had to be prefaced with a discussion of PEAR.  PEAR is a collection of classes available for use with PHP scripts.  It includes stuff like database abstraction.  PEAR comes with PHP4 but to use these classes, you need to add the library directory (usr/local/lib/php or something) to the PHP path.  If you don’t have access to the class path information, you can still use the classes by hard coding include commands pointing to the PEAR files into your .php files

BROWSER HAWK  

Browser Hawk is an ASP thing, it uses a database of browser versions and what each one supports with a browser detection script that allows you to branch your code according to browser type and version.  This database and application is proprietary but there is a text file out there that contains the same info and is free.  The set of data about browser versions is called browscap.ini and is licensed.  A free text version was created and is available:

---------------------------------------------------------------------------- -------------- This browscap configuration file is maintained by Juan T. Llibre. Last revision : July 25, 2000 E-mail comments to : j.llibre@codetel.net.do Please include a link to : http://asptracker.com/ , where the latest update is always available, free. -----------------------------------------------------------------------

OS-X:   Allie spoke a little about OS-X  (pronounced OS TEN).  It combines the friendly Mac user interface with the stability of the BSD flavor of Unix.  So now in the latest operating system from apple, you can open up the hood and use Unix commands and shell scripting to do stuff.  Apache comes with it.

http://www.oreillynet.com/mac/

http://www.salon.com/tech/review/2000/10/25/os_x1/

 

PHP Class at U of M:

Warren has an opportunity to teach a class at the University of Minnesota in PHP and MySQL.  They want to be sure there is a market for this course first and so we need to let people know about this class.  Contact him to learn more about it (whjwhj@yahoo.com)

PHP PRO BONO

I think we resolved some of the unease members were feeling with PHP Pro Bono.  Members were concerned that the group was too loose to be in a position to be doing jobs for people, even for free.  Other members did not want to work for free, citing the fact that work often is valued in direct proportion to the amount paid for that work.  What we figured out is that at least some of us want to develop some open source tools that could be used by developers of non-profit and/ or business web sites.  We would not and could not offer to implement any web site as a group.  What we can do is develop these tools and act as a referral list for potential workers who would use the tools we develop.  It could be for money, for free, for food or for a donation by that group to another group.  That way the group can avoid money issues, not have to elect officers and open a bank account and not have people contacting us at 3:00 am saying that their site is down.  But it would be a good way to expose more organizations to PHP and funnel work to PHP developers.   It would be a powerful draw to say, "we don’t care what platform you are on, what web server you are using, what database you are using, we have tools that run anywhere"

AmyQ, or Ask Me Your Question has been spec-ed out and J. has begun to work on it.  He will post the code to SourceForge as soon as he has some working code.

 FUN STUFF:

Wondering WTF this 'all your base are belong to us' is about?

This will help: http://www.timco.freeserve.co.uk/AYB.swf

FUTURE MEETINGS:

This meeting was a successful combination of a structured presentation and a random wide ranging discussion.  

Ideas for future meeting presentations are:

An application called  "Code Charge"  which generates code in PERL, ASP, PHP etc.  It is available for a 30 day trial download and costs $150.00.

Also  a demonstration of how to use Scalable Vector Graphics, SVG

Also a demonstration of mapserver, an open source GIS tool for the world wide web that is scriptable in PHP.  If you can't wait for the demonstration, visit the home site at http://mapserver.gis.umn.edu/

A Canadian company that uses mapserver with PHP for its contract work with Canadian government agencies is http://www.dmsolutions.on.ca/home.html

16. Tim volunteered to write up minutes. Contact him for any corrections.

17. TO DO: 

  1. Sign up as a developer with Pro Bono PHP
  2. Submit requests for future meeting topics.