Greetings and Salutations!

------------------------------------------------------------------------
Table of Contents
------------------------------------------------------------------------

 - Editors Notes
 - Developer Tools Overview
 - German Midgard Installation Tutorial (Mandrake Linux) available
 - New Modules in the Midgard CVS
 - Bugtracker Summary
 - Mailinglist Summary

------------------------------------------------------------------------
Editors Notes
From: Torben Nehmer <[EMAIL PROTECTED]>
------------------------------------------------------------------------

Another week with a special: Henri Bergius created a introduction in
the available tools for developing Midgard Applications. It gives a
good overview what you can use if you want to develop more advanced
Midgard Applications, including thoughts about Code Version Control.

Also I have decided to do another more-or-less regular topic, The CVS
Modules Update, which will take you up to speed about new Midgard
Add-Ons that made it into CVS.

------------------------------------------------------------------------
Developer Tools Overview
From: Henri Bergius <[EMAIL PROTECTED]>
------------------------------------------------------------------------

The Midgard development environment

In the last year the development tools for Midgard have matured quite
nicely. Although they could be a more integrated package, with easier
installation and better documentation, the most important tools exist
and are usable.

Let us take a look at what we have available.

Integrated Development Environment

Alan Knowles' PHPmole application provides a nice desktop IDE for
Midgard developers. PHPmole has its own HTTP-based connectivity
protocol, and can talk with a Midgard server. It also supports
Midgard's data models (articles, snippets, etc) natively.

The good point in a desktop IDE when compared to web-based interfaces
is that it is much easier to provide user-friendly tools for
developers. PHPmole uses this to its advantage, supplying users with
many nice features:

  * Syntax highlighting
  * PHP class browser
  * Autocompletion and context-sensitive help for PHP functions
  * WYSIWYG HTML editor
  * Drag and Drop file uploads
  * Image modifications (rotates, thumbnail generation)
  * Interactive debugger (using APD)
  * DevHelp documentation browser

PHPmole has been written in PHP using the PHP-GTK bindings. It
requires the PHPmole connector installed on your Midgard server.

 PHPmole:
  http://www.akbkhome.com/Projects/Phpmole-IDE/

 Connecting PHPmole with Midgard:
 
http://www.akbkhome.com/Projects/Phpmole-IDE/FAQ/midgard%20connection.h
tml

MidCOM component model

Torben Nehmer's MidCOM provides a standardized framework for reusable
and configurable Midgard components. Traditionally the problem with
Midgard applications has been that they have been mostly written for a
single implementation, and have been very difficult to deploy or share
between a larger number of installations.

MidCOM overcomes this problem by defining a generally binding API for
Components as well as providing a framework for accessing and managing
them. It represents the first standard for globally reusable and
deployable Midgard applications, web site modules and libraries.

Every MidCOM application is contained within a Component with an
explicitly defined interface to the world. Controlling infrastructure
is the topic tree not the page tree giving you a far greater
flexibility. The code itself is completely encapsulated in snippets,
making packaging very easy.

A framework is used to manage the components, both for public and
private sites such as a web site and its administrative site. In
theory this could even automate the building of administration
interfaces by traversing every active component.

The MidCOM framework is now in version 0.3, which is already being
used on some production sites by the German Midgard solution provider
Link-M. Version 1.0 of MidCOM is expected by the end of 2002.

The MidCOM download package includes the framework itself and some
example components.

 MidCOM specification:
  http://users.nehmer.net/~classic/midcom-doc/html/

 MidCOM framework 0.3:
  http://users.nehmer.net/~classic/MidCOM-0.3.0-1.tar.bz2

Repligard and YAMP for packaging

Midgard provides a built-in solution for distributing applications and
data between Midgard servers, the Repligard system. Repligard can be
used to import and export selections of Midgard objects using a XML
format.

Making applications replication-safe requires some considerations in
their design. For example, the Midgard database IDs usually used when
referring to objects inside applications are specific to a Midgard
installation. GUIDs or object names should be used instead.

The Midgard Manual includes quite good guidelines on Repligard usage
and making applications replication-safe.

To make Midgard application packaging even easier, Link-M has created
the YAMP utility. YAMP provides an easy way for definining and
exporting Midgard application packages for distribution. The YAMP
package also has several tools for cleaning up the Repligard files for
easier data handling in version tracking and other systems.

 Introduction to Repligard:
  http://www.midgard-project.org/manual/en/x1335.php

 Notes on writing Repligard-safe applications:
  http://www.midgard-project.org/manual/en/x1414.php

 YAMP, Yet Another Midgard Packager:
  http://users.nehmer.net/~classic/yamp-1.0.1.tar.gz

CVS for collaborative development

Version control and handling collaborative development have
traditionally been big headaches with Midgard applications. The RCS
revision control system supported by Nadmin Studio, Aegir CMS and the
NemeinRCS library provides a partial solution by bringing object-level
version control capabilities to Midgard data.

However, this doesn't help managing different development branches or
simultaneous development on multiple systems. However, the recent
improvements in the Repligard packaging system and the YAMP tool have
finally made developing Midgard applications using CVS possible.

Using CVS all change information needs to be submitted from the
Midgard server into the CVS repository, where it is stored in the RCS
revision control format. This is handled by first exporting the
Midgard application into Repligard XML files, and then committing
those to the repository.

Fetching latest versions of applications or libraries from the
repository is handled using the CVS update command, and then importing
the new files into Midgard using Repligard.

This way application can be simultaneously developed on multiple
Midgard installations while keeping latest developments synchronized
between the systems. CVS can also be configured to send email
notifications on all changes in the repository to developers.

YAMP can be used to make this process even easier by utilizing its
toolset to keep the exported Repligard files in a common
format. Future versions of YAMP will include commands for
automatically committing and updating modules with CVS.

Several Midgard application projects have already migrated to
coordinating their development in CVS, including MidCOM, Nemein.Net
and the Nemein* libraries.

 CVS Manual:
  http://www.cvshome.org/docs/manual/

 A good third-party Manual:
  http://cvsbook.red-bean.com/
  http://cvsbook.red-bean.com/cvsbook.html.gz

 NemeinNavBar library in Midgard CVS:
 
http://cvs.midgard-project.org/cgi-bin/cvsweb.cgi/contrib/NemeinNavBar/

NemeinLocalization for international applications

Providing applications in users' native language is important part of
usability. The PHP programming language already provides localization
support in the form of GNU Gettext bindings. The problem with gettext
has been that the localization libraries have to be distributed as
files in the filesystem, making it impossinle to deploy the complete
application from Repligard packages.

To help making Midgard applications internationalized, the Finnish
Midgard solution provider Nemein has developed the NemeinLocalization
library. NemeinLocalization provides an easy web-based translation
interface for language libraries, and stores all libraries as Midgard
snippets.

With NemeinLocalization, application writers only need to replace all
strings outputted from their application with NemeinLocalization
calls:

  Replace:
    echo "Save";
  With:
    echo localize_string("Save","/my/localization/snippetdir/library");

After adding the localization calls, the library editor can then be
added by creating an active page where you call the following:

  $locLibPath="/my/localization/snippetdir";
  mgd_include_snippet("/NemeinLocalization/String editor");

NemeinLocalization ships with some premade language libraries,
including Midgard error messages and some generic terms like "Save"
and "Edit". The Nemein.Net package provides more examples on how to
make the application international.

NemeinLocalization is available under the GNU LGPL license, but can't
yet be downloaded as its own package. Developers interested in using
the library can get it by downloading the Nemein.Net package. 

 Nemein.Net download page:
  http://www.nemein.com/download/   

Nemein.Net Support for issue tracking

Issue and bug tracking is important part of any larger development
project. While any available issue tracking system including Bugzilla
and Mantis can be used for tracking bugs and enhancement requests in
Midgard applications, there is also a Midgard-based issue tracker
available, Nemein.Net Support.

Nemein.Net Support is part of the Nemein.Net suite of professional
services automation applications. It provides a configurable trouble
ticket format and easy interfaces for adding request submission forms
to Midgard-based web sites. The package also includes comprehensive
reporting on different types of requests received and handling times.

While Nemein.Net Support is a commercial application it can be
downloaded for free 30-day evaluation from Nemein's web
site. Nemein.Net Support saves all data using standard Midgard
interfaces, allowing for easy access for additional reports and
views. There is also a public demo server available.

 Nemein.Net Support screenshots:
  http://www.nemein.com/Nemein.Net/Applications/Support/

 Nemein.Net download page:
  http://www.nemein.com/download/

 Nemein.Net demo server:
  http://trial.nemein.net/

Missing links

Looking at the list of available developer tools, the situation is now
quite good for Midgard application developers. However, some links are
still missing from the developer toolchain.

  * Code documentation system (like PHPCodeDoc or JavaDoc)
  * Easy user documentation authoring and publishing solution
    (preferably with multichannel capabilities)
  * WebDAV support for easy importing of design templates from
    DreamWeaver and other systems
  * Standardized Web Services interfaces to MidCOM components

It will be interesting to see how the Midgard development environment
evolves in near future. There is now clear momentum in making the
tools better and more generic from several companies deploying or
developing larger Midgard applications.

------------------------------------------------------------------------
German Midgard Installation Tutorial (Mandrake Linux) available
From: Christopher Kohlert <[EMAIL PROTECTED]>
Editor: Torben Nehmer <[EMAIL PROTECTED]>
------------------------------------------------------------------------

Christopher Kohlert wrote up a Midgard installation tutorial for
Mandrake Linux systems. Unfortunalety it is in English, as we still
seek some volunteer who could translate it into English. Until then you
can find the German one here:

  http://www.3rd-evolution.de/docs/misc/midgard/

------------------------------------------------------------------------
New Modules in the Midgard CVS
From: Torben Nehmer <[EMAIL PROTECTED]>
------------------------------------------------------------------------

Several new modules have made it into CVS in the last couple of weeks,
in Alphabetical Order:

Midgard SOAP Interface, /contrib/soap
  A simple interface that lets you access Midgard using SOAP.

Mod_Midgard for Apache 2 - Experimental, /dev/mod-apache2
  The Midgard Module for Apache 2, not extensivly tested yet

Nemein Authentication, /contrib/NemeinAuthentication:
  An advanced Midgard Authentication System

Nemein Backup, /contrib/NemeinBackup
  A script collection for backing up Midgard

Nemein NavBar, /contrib/NemeinNavBar:
  A library for creating Navigation Bars

Nemein RCS, /contrib/NemeinRCS:
  A Version Management Library for Midgard

Yet Another Midgard Packager (YAMP), /contrib/yamp:
  A simple wrapper for using Repligard in a CVS and Release Management
  Environment.

------------------------------------------------------------------------
Bugtracker Summary
Editor: Torben Nehmer <[EMAIL PROTECTED]>
------------------------------------------------------------------------

Not much to report here, we are in the final preparation for 1.4.4,
most of the important Bugs are out, some minor ones are still open. I
think that I will make a cut at the end of this week or so. What goes
into Midgard till that day, will go into 1.4.4, so far no show stoppers
are there. I will skip the RC this time, since there are only bugfixes
no new features this time, as we did all development on a separate CVS
branch of Midgard.

Some new Bugs have been reported these days: Apart from some feature
requests there is more trouble around mgd_auth_midgard, which is a old
companion in the Bugtracker. This time its around mgd_auth_midgard
resetting the active sitegroup if it fails.

------------------------------------------------------------------------
Mailinglist Summary
Editor: Torben Nehmer <[EMAIL PROTECTED]>
------------------------------------------------------------------------

Currently -dev is more or less quite, the usual small buzz around new
bugs or so.

More important is the huge traffic we had on -user, which is mostly
around the Aegir system. Aegir is in the last steps before the final
release, and the community is big in finding all those nifty little
problems. If you have a Aegir related problem, take a minute to browse 
-user before actually asking there, it might very well be, that your
problem is already solved.

Apart from Aegir we have the old familiars about installing Midgard on 
-user. Nothing special.

------------------------------------------------------------------------

Want to continue reading MWS? Please help us create this newsletter.
Currently, it's mostly a one-man show, which is anticipated to fail in
the long term. We urgently need volunteer writers who prepare items.
Please see the contributing page to find out how to help. We're looking
forward to receiving your mail at [1].

Midgard is an Open Source Content Management System, visit our Homepage
[2] for further Information.

 [1]: [EMAIL PROTECTED]
 [2]: http://www.midgard-project.org


Live long and prosper!
Torben Nehmer

--
Torben Nehmer, Munich, Germany
http://www.nathan-syntronics.de, mailto:[EMAIL PROTECTED]
PGP Public Key: https://www.link-m.de/pgp/t.nehmer.asc






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to