Diesel:Development Notes
De Fiatpédia.
Sommaire
|
Introduction
Diesel is a client-server web application framework based on freely available and widely spreaded technologies: PHP and MySQL on server-side, HTML and JavaScript on client-side. Now in beta phase, Diesel is used on a very few projects.
Licence
Diesel is not yet publicly distributed.
"Experimental Collaborative Development" Licences are implicitly leased to owners of projects on which Diesel is currently being developped.
The first explicit private licence was produced in late 2008 for new projects.
Eventual release of an open licence distribution may occur within the next year.
Aims
...
Evolution
Origins
Diesel origins from the project of developing a custom CMS for Fiat+/-Lux Media. At the time, Fiat+/-Lux Media was involved in the Fiat Jam, and the organization's website was growing quite fast. It all relied on client-side scripting for layout templating (JavaScript).
The Fiat Jam Archive, a fastly growing collection of data, was also relying on manually edited JavaScript arrays for storing data.
A dynamic server-side solution was soon needed, and PHP obviously appeared to be the appropriate way to get throught this. Diesel was first sketched in 2004 (first identified as the "Mass NeoMedia Project"). Unfortunately, the manpower lacked for the realization of the project.
Version 0.1
The first effective 'occurence' of Diesel was a very basic PHP engine offering limited MySQL-handling classes, and a login functionnality (session.lib).
It was only used on one project, the Christiane Bélanger dance school website's online mailing list subscription form. Suscribers coordinates were stored in a database. An interface was provided to retrieve the list in CSV format.
Version 0.2 (unreleased)
Second version of Diesel has never led to effective results. The project didn't go any further for a while.
Improvements
- First diesel_object Object Model
- Messages system
Version 0.3.1 (aka Dx3, Beta 3)
It's only 2 years later, in 2006, that Diesel came back into 12939 Media Architecture's attention. A new framework was written, structurally based on 0.2, but using mostly code from 0.1 for session handling and database control.
New projects motivated the development of Diesel. These websites were created using Diesel 0.3.1:
Applications
- http://www.contesdefaits.com (now running version 0.3.3)
- http://www.lesproduitsduterroir.qc.ca (now running version 0.3.3)
Improvements
- Improved cookie-based login system
- The "include" directory model for layouts and site settings
- Datatypes, columns and headers with automatic form generation
Version 0.3.2 (aka Dx3/Engine2, Transitory Engine)
- Release date: 2007/04/05;
- Tested configurations
- Apache/1.3.33 (Win32) PHP/4.3.10;
- Apache/? (Linux) PHP/4.?;
- IIS/5.0 (WinNT) PHP/4.4.7;
The yet intensive development of Diesel on a practical case led to major enhancements that required structural changes.
Besides offering support for IIS (Windows) servers, this version results from an attempt to enhance the Diesel object model, into the "node registry" model. For some reason, some inter-server irregularities prevented the new implementation of diesel_object to be used and has been by-passed, leading to the "transitory" engine. The object model for Diesel 0.3.2 is referred as "diesel_node3" See registry.lib for further details.
Many structural changes had yet to be done, but the urge for immediate results in the actively developed project obliged fundamental updates to be post-poned.
Improvements
- New directory structure (DS2) to support Windows (IIS) servers
- ...
Applications
Version 0.3.3 (Dx3/xmeta)
Release date: 2007/12/18;
- Tested server configurations
- Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 (development);
- Apache/? (Linux) PHP/4.4.7 (production);
- Apache/1.3.33 (Win32) PHP/4.3.10 (development);
- IIS/5.0 (WinNT) PHP/4.4.7 (production);
- Tested client configurations
- Internet Explorer 6, 7
- Mozilla Firefox 2, 3
Improvements
- xmeta Object Model 1.0 (model x, July 2007)
- Improved directory and code modularity structure (DS3)
- Client-side Engine (JavaScript)
- Static client-side site package: Diesel Sparks for JavaScript
- SMTP Package (basic): Diesel_SMTP
- Base classes for Diesel_Wiki
xmeta object model
The xmeta object model has been developped on top of Diesel 0.3.2 as a (PHP) structural framework for Diesel 0.3.3. After 4 unsuccessful models were rejected, this model was implemented from it's experimental prototype (July 2007, that's what the x stands for) into Diesel in September 2007. Implementation of the xmeta Object Model for JavaScript started in October 2007, as part of the first Diesel client-side engine.
Applications
Version 0.3.4 (Dx3.4)
Release date: 2008/10/02;
- Tested server configurations
- Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 (development);
- Apache/? (Linux) PHP/4.4.7 (production);
- Apache/1.3.33 (Win32) PHP/4.3.10 (development);
- IIS/5.0 (WinNT) PHP/4.4.7 (production);
- Tested client configurations
- Internet Explorer 6, 7
- Mozilla Firefox 2, 3
Improvements
- xmeta 1.2
- Diesel_Wiki package
- Creole 1.0 support (partial) (Diesel_Wiki_Creole)
- Diesel-Data package
- Diesel-Mysql package
- Diesel-Media package
- Diesel-Smtp (Socket and Queue) and Diesel-Mime packages
- Diesel-Lang package (Translator and Locale)
- Diesel-Xhtml package (XHTML factory)
- Diesel-Form (XHTML form factory)
- xarg: a function parameter sweetener class
- callee: enhanced backtrace class
Applications
Version 0.3.5 (Dx3.5)
Release date: June 27, 2009 (Projected release date: July 2009)
Improvements
- Directory Structure & Workflow (DS5)
- Version control (SVN)
- Stabilized Engine/Project/Module model (end of "transitory" engine!)
- Diesel-Wiki-Creole: full support of WikiCreole/1.0 syntax
- Diesel-Auth package (definitely replacing outdated Session.php)
- Diesel-Mysql and Diesel-Data packages (definitely replacing outdated Mysql.php and Data.php)
- Diesel-Entity (Enhanced entity-relationship database engine, first prototype)
- Diesel-Xml (Xml parser/spitter)
- lib-mini: procedural library for relational algebra on arrays
Applications
- http://www.toursvoirquebec.com/
- http://radio.fiatlux.tk/ (from October 12, 2009)
Version 0.3.6 (Dx3.6)
Release date: June 1st, 2010
Improvements
- Consolidated Core
- Diesel-Entity (prototype 2)
- ...
Diesel 0.4 (Dx4, "dixie 4")
Projected release date: @abstract soon! (previously: October 2009)
Dixie 4, to be released under GNU GPL (or alike), introduces powerful Diesel-Entity, an expandable entity-relationship database model engine (currently in development). A lot of fine-tuning is still required before the framework is robust enough to takeoff as Open-Source.
Projected improvements
- xmeta abstraction layer v2.0
- Definite Module/Module Extension nomenclature and model (Composite Project Model)
- Multilingual support
- Uniform Data Types/Forms (Diesel-Data)
- Patchable Data Schemas (Diesel_Data_Schema)
- OO/SRDB mappings (Diesel-Data/Diesel-Mysql)
- Integrated application layer for expandable entity-relationship database model (Diesel-Entity)
- Publishing of a core distribution under a specific public licence (including xmeta 2.0)
- Public availability of PHPDoc Documentation (core)
- Concurrent development infrastructures (SVN, TinderBox or else)
- Extension Packages:
- Diesel-Desktop
- Diesel-Entity
- Diesel-Media
- Diesel-Mysql
- Diesel-Mime
- Diesel-Wiki
- Diesel-Xml
Applications
- Running Diesel version 0.3.6
- http://radio.fiatlux.tk (2009)
- Running Diesel version 0.3.6
- Running Diesel version 0.3.6
- http://www.belangerpoulinassociates.com (2009)
- Running Diesel version 0.3.4 (offline)
- http://www.ecocontact.ca (2008)
- Running Diesel version 0.3.5
- http://www.virtuose.tk (2008)
- Running Diesel version 0.3.6
- http://www.cact.qc.ca (2008)
- Running Diesel version 0.3.4
- http://www.contesdefaits.com (2006,2008,2009)
- Running Diesel version: 0.3.4
- http://www.lesproduitsduterroir.qc.ca ([[1]]) (2006-2008)
- Running Diesel version: 0.3.5
- http://www.e8p.biz (2007)
- Running Diesel version: 0.3.4
- http://www.peterpeter.ca (2007)
- Running Diesel version: 0.3.4
- Running Diesel version: 0.1 (offline)