<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://bongo-project.org/skins/common/feed.css?42"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Bongo - New pages [en]</title>
		<link>http://bongo-project.org/Special:Newpages</link>
		<description>From Bongo</description>
		<language>en</language>
		<generator>MediaWiki 1.9.0</generator>
		<lastBuildDate>Thu, 02 Sep 2010 20:02:34 GMT</lastBuildDate>
		<item>
			<title>Development/Format/JEvent</title>
			<link>http://bongo-project.org/Development/Format/JEvent</link>
			<description>&lt;p&gt;Summary: New page: == jEvent / jTodo format ==  Calendars within Bongo are stored as collections, with the individual events being documents within the collection. Relevant attributes of an event are attache...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== jEvent / jTodo format ==&lt;br /&gt;
&lt;br /&gt;
Calendars within Bongo are stored as collections, with the individual events being documents within the collection. Relevant attributes of an event are attached as properties on the document for the purposes of searching.&lt;br /&gt;
&lt;br /&gt;
jEvent / jTodo format is loosely based on [http://www.ietf.org/rfc/rfc2445.txt iCal / RFC 2445], representing the same data but within a UTF-8 JSON structure.&lt;br /&gt;
&lt;br /&gt;
=== Example representation ===&lt;br /&gt;
&lt;br /&gt;
There are a couple of examples given in the RFC. One of the VEVENTS stripped from a calendar is this one:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  BEGIN:VEVENT&lt;br /&gt;
  DTSTAMP:19970324T1200Z&lt;br /&gt;
  SEQUENCE:0&lt;br /&gt;
  UID:uid3@host1.com&lt;br /&gt;
  ORGANIZER:MAILTO:jdoe@host1.com&lt;br /&gt;
  ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com&lt;br /&gt;
  DTSTART:19970324T123000Z&lt;br /&gt;
  DTEND:19970324T210000Z&lt;br /&gt;
  CATEGORIES:MEETING,PROJECT&lt;br /&gt;
  CLASS:PUBLIC&lt;br /&gt;
  SUMMARY:Calendaring Interoperability Planning Meeting&lt;br /&gt;
  DESCRIPTION:Discuss how we can test c&amp;amp;s interoperability\n&lt;br /&gt;
  using iCalendar and other IETF standards.&lt;br /&gt;
  LOCATION:LDB Lobby&lt;br /&gt;
  ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/&lt;br /&gt;
  conf/bkgrnd.ps&lt;br /&gt;
  END:VEVENT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would be transformed into jEvent in the following manner:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {&lt;br /&gt;
  'jEvent' : 2.0,&lt;br /&gt;
  'dateStamp' : '1997-03-24 12:00',&lt;br /&gt;
  'sequence' : 0,&lt;br /&gt;
  'uid' : 'uid3@host1.com',&lt;br /&gt;
  'organizer' : 'mailto:jdoe@host1.com',&lt;br /&gt;
  'attendees' : [&lt;br /&gt;
    {&lt;br /&gt;
      'rsvp' : 'true',&lt;br /&gt;
      'mailto' : 'jsmith@host1.com'&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  'dateStart' : '1997-03-24 12:30',&lt;br /&gt;
  'dateEnd' : '1997-03-24 21:00',&lt;br /&gt;
  'categories' : ['meeting','project'],&lt;br /&gt;
  'class' : 'public', &lt;br /&gt;
  'summary' : 'Calendaring Interoperability Planning Meeting',&lt;br /&gt;
  'description' : 'Discuss how we can test c&amp;amp;s interoperability using iCalendar and other IETF standards.',&lt;br /&gt;
  'location' : 'LDB Lobby',&lt;br /&gt;
  'attachments' : [&lt;br /&gt;
    {&lt;br /&gt;
      'format' : 'application/postscript',&lt;br /&gt;
      'uri' : 'ftp://xyzCorp.com/pub/conf/bkgrnd.ps'&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 26 Jun 2010 14:15:16 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Format/JEvent</comments>		</item>
		<item>
			<title>Development/Format/JCard</title>
			<link>http://bongo-project.org/Development/Format/JCard</link>
			<description>&lt;p&gt;Summary: /* jCard Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== jCard Format ==&lt;br /&gt;
&lt;br /&gt;
Contacts are stored within Bongo as individual documents, one contact per document. Relevant attributes for searching are brought out of the document as attributes for searching.&lt;br /&gt;
&lt;br /&gt;
jCard is a JSON format based roughly on [http://tools.ietf.org/html/rfc2426 vCard aka RFC 2426]. The same attributes are used, albeit with more friendly names, and where-ever possible the data is decently structured. We're also following the work on the [http://tools.ietf.org/wg/vcarddav/draft-ietf-vcarddav-vcardrev/ update RFCs] as they are published.&lt;br /&gt;
&lt;br /&gt;
Oddly, although RFC 2426 requires that FN, N and VERSION attributes MUST be present, they're not in the examples. However, for our purposes, we will specify that the must be present.&lt;br /&gt;
&lt;br /&gt;
The version attribute will attempt to follow vCard. However, we will adjust as necessary to ensure forward compatibility: jCard 3.0 apps must be able to deal with jCard 3.1+ formats without breakage, although they may reject 4.0+.&lt;br /&gt;
&lt;br /&gt;
In order to achieve that, we may only extend the JSON structure in certain ways.&lt;br /&gt;
&lt;br /&gt;
=== Empty example ===&lt;br /&gt;
&lt;br /&gt;
A very basic JCard as stored:&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;jCard&amp;quot;:3,&amp;quot;fullName&amp;quot;:&amp;quot;Test contact&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:{&amp;quot;familyName&amp;quot;:[],&amp;quot;givenName&amp;quot;:[],&amp;quot;additionalNames&amp;quot;:[],&lt;br /&gt;
  &amp;quot;prefix&amp;quot;:[],&amp;quot;suffix&amp;quot;:[]},&amp;quot;email&amp;quot;:[{&amp;quot;address&amp;quot;:&amp;quot;test@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;:[&amp;quot;internet&amp;quot;]}]}&lt;br /&gt;
&lt;br /&gt;
=== Example representation ===&lt;br /&gt;
&lt;br /&gt;
The RFC for vCard gives the following contact for an author:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  BEGIN:vCard&lt;br /&gt;
  VERSION:3.0&lt;br /&gt;
  FN:Frank Dawson&lt;br /&gt;
  ORG:Lotus Development Corporation&lt;br /&gt;
  ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive&lt;br /&gt;
   ;Raleigh;NC;27613-3502;U.S.A.&lt;br /&gt;
  TEL;TYPE=VOICE,MSG,WORK:+1-919-676-9515&lt;br /&gt;
  TEL;TYPE=FAX,WORK:+1-919-676-9564&lt;br /&gt;
  EMAIL;TYPE=INTERNET,PREF:Frank_Dawson@Lotus.com&lt;br /&gt;
  EMAIL;TYPE=INTERNET:fdawson@earthlink.net&lt;br /&gt;
  URL:http://home.earthlink.net/~fdawson&lt;br /&gt;
  END:vCard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is expressed in jCard as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {&lt;br /&gt;
  'jCard': 3.0,&lt;br /&gt;
  'fullName' : 'Frank Dawson',&lt;br /&gt;
  'organisation' : 'Lotus Development Corporation',&lt;br /&gt;
  'addresses' : [&lt;br /&gt;
    {&lt;br /&gt;
      'type' : ['work', 'postal', 'parcel'],&lt;br /&gt;
      'pobox' : '', 'extended' : '',&lt;br /&gt;
      'street' : '6544 Battleford Drive',&lt;br /&gt;
      'locality' : 'Raleigh',&lt;br /&gt;
      'region' : 'NC',&lt;br /&gt;
      'postcode' : '27613-3502',&lt;br /&gt;
      'country' : 'U.S.A'&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  'telecoms' : [&lt;br /&gt;
    {&lt;br /&gt;
      'type' : ['voice', 'msg', 'work'],&lt;br /&gt;
      'number' : '+1-919-676-9515'&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      'type' : ['fax', 'work'],&lt;br /&gt;
      'number' : ':+1-919-676-9564'&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  'email' : [&lt;br /&gt;
    {&lt;br /&gt;
      'type' : ['internet', 'preferred'],&lt;br /&gt;
      'address' : 'Frank_Dawson@Lotus.com'&lt;br /&gt;
    }, &lt;br /&gt;
    {&lt;br /&gt;
      'type' : ['internet'],&lt;br /&gt;
      'address' : 'fdawson@earthlink.net'&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  'url' : [&lt;br /&gt;
    {&lt;br /&gt;
      'type' : ['personal'],&lt;br /&gt;
      'href' : 'http://home.earthlink.net/~fdawson'&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clearly this is a fair bit more verbose - mostly due to breaking out the address into a named structure rather than relying on position in array - but is more straightforward to use and parse.&lt;/div&gt;</description>
			<pubDate>Sat, 26 Jun 2010 13:39:49 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Format/JCard</comments>		</item>
		<item>
			<title>Guides/Secure Authentication</title>
			<link>http://bongo-project.org/Guides/Secure_Authentication</link>
			<description>&lt;p&gt;Summary: /* openSSL Commands and Utilities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Secure Authentication =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Public Key Encryption: Secure data transport utilizing public and private keys.&lt;br /&gt;
&lt;br /&gt;
* Private Key: Decrypts. Contains the public key data, First step before a certificate or certificate request is generated. File.&lt;br /&gt;
&lt;br /&gt;
* Public Key: Encrypts. Derived from the private key. Generally does not need to be generated separately. File.&lt;br /&gt;
&lt;br /&gt;
* Certificate Authority: A trusted third-party entity that issues and/or revokes digital certificates.&lt;br /&gt;
&lt;br /&gt;
*Root Certificate Authority: The top of a chain of certificate authorities. A trusted third-party entity that issues and/or revokes digital certificates.&lt;br /&gt;
&lt;br /&gt;
* Sub-CA Certificate Authority: A child certificate authority created by a parent certificate authority. A trusted third-party entity that issues and/or revokes digital certificates.&lt;br /&gt;
&lt;br /&gt;
* Root CA Certificate: A digital certificate granted to one certification authority (CA) by another certification authority. The root ca certificate will always be self-signed.&lt;br /&gt;
&lt;br /&gt;
* CA Certificate: A digital certificate granted to one certification authority (CA) by another certification authority. &lt;br /&gt;
&lt;br /&gt;
* Certificate: Certificate which has been authorized. Should contain the public key. Data may be encoded (pkcs7 or pkcs12, etc.). File.&lt;br /&gt;
&lt;br /&gt;
* Certificate Signing Request (CSR): A request for certificate. Certificate authority signs the request and hands it back as authentic certificate. File.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== openSSL Commands and Utilities ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generate Private Key (RSA ):&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl genrsa -out &amp;amp;lt;filename&amp;amp;gt; 2048&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generate Self-Signed Certificate From Private Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl req -new -x509 -days 365 -key &amp;amp;lt;filename&amp;amp;gt; -out &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generate Private Key and Self-Signed Certificate:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl req -new -x509 -days 365 -nodes -keyout &amp;amp;lt;filename&amp;amp;gt; -out &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generate Certificate Signing Request From Private Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl req -new -key &amp;amp;lt;filename&amp;amp;gt; -out &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generate Private Key and Certificate Signing Request:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl req -new -nodes -keyout &amp;amp;lt;filename&amp;amp;gt; -out &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Generate Signed Certificate From Signing Request:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl x509 -req -days 365 -CA &amp;amp;lt;filename&amp;amp;gt; -CAkey &amp;amp;lt;filename&amp;amp;gt; -CAcreateserial -in &amp;amp;lt;filename&amp;amp;gt; -out &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
View Details of Certificate:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl x509 -text -in &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bongo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Self-signed certificates ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Prerequisite =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* openSSL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following example will generate 2 files, a cert file (-out) and a key file (-keyout) valid for 365 days:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ openssl req -new -x509 -days 365 -nodes -keyout &amp;amp;lt;filename&amp;amp;gt; -out &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interactive Q/A ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The process of generating self-signed certificates leads you through a series of questions. The &amp;quot;Common Name&amp;quot; will be of most importance; it represents the host you are associating with.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== FQDN example answers: =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Country Name: &amp;lt;US&amp;gt;&lt;br /&gt;
* State or Province Name: &amp;lt;Utah&amp;gt;&lt;br /&gt;
* Locality Name: &amp;lt;Springville&amp;gt;&lt;br /&gt;
* Organization Name: &amp;lt;Unified Functions&amp;gt;&lt;br /&gt;
* Organizational Unit Name: &amp;lt;IT&amp;gt;&lt;br /&gt;
* Common Name: &amp;lt;www.unifiedfunctions.com&amp;gt;&lt;br /&gt;
* Email Address: &amp;lt;admin@unifiedfunctions.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Wildcard example answers: =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Country Name: &amp;lt;US&amp;gt;&lt;br /&gt;
* State or Province Name: &amp;lt;Utah&amp;gt;&lt;br /&gt;
* Locality Name: &amp;lt;Springville&amp;gt;&lt;br /&gt;
* Organization Name: &amp;lt;Unified Functions&amp;gt;&lt;br /&gt;
* Organizational Unit Name: &amp;lt;IT&amp;gt;&lt;br /&gt;
* Common Name: &amp;lt;*.unifiedfunctions.com&amp;gt;&lt;br /&gt;
* Email Address: &amp;lt;admin@unifiedfunctions.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== For Bongo ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bongo looks for the following files in the specified location. To replace the default certs, either replace the files with your own (retaining the same file names) or replace the contents of each file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* replace contents of &amp;lt;install location&amp;gt;/var/bongo/dbf/osslcert.pem with the generated cert&lt;br /&gt;
&lt;br /&gt;
*replace contents of &amp;lt;install location&amp;gt;/var/bongo/dbf/osslpriv.pem with the generated key&lt;br /&gt;
&lt;br /&gt;
== Mail Clients ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Thunderbird ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am not sure yet if Thunderbird 3 likes wildcard certs!&lt;/div&gt;</description>
			<pubDate>Wed, 02 Jun 2010 17:37:38 GMT</pubDate>			<dc:creator>Steve-o</dc:creator>			<comments>http://bongo-project.org/Talk:Guides/Secure_Authentication</comments>		</item>
		<item>
			<title>Releases/0.6.0</title>
			<link>http://bongo-project.org/Releases/0.6.0</link>
			<description>&lt;p&gt;Summary: /* Source installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bongo 0.6.0 Release notes =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warning-alpha&amp;quot; style=&amp;quot;margin-top: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
Bongo is currently alpha-quality software.  It is under active development and is not yet ready for production servers. &lt;br /&gt;
&lt;br /&gt;
However, we encourage you to try it out in a test environment and let us know what you think!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About Bongo ==&lt;br /&gt;
&lt;br /&gt;
Bongo is a project to create fun and simple mail &amp;amp; calendaring software. As well as providing a well-featured but extensible set of server software, it also comes with a user-friendly web interface.&lt;br /&gt;
&lt;br /&gt;
Although Bongo is a young project, the software itself has a long pedigree going back to commercial products many years old. The core code isn't new, but the ideas we have and the direction we're taking are: we aim to provide a compelling alternative to other systems out there, not to compete directly with them.&lt;br /&gt;
&lt;br /&gt;
We have a roadmap laid out to our 1.0 release, which we hope will appeal primarily to people who are interested in features which make email and calendars more useful, rather than those interested in &amp;quot;groupware&amp;quot; or &amp;quot;enterprise communication platforms&amp;quot;. We're particularly aiming 1.0 at power home users, small organisations/businesses, and people providing mail services for third parties.&lt;br /&gt;
&lt;br /&gt;
== What's In This Release? ==&lt;br /&gt;
&lt;br /&gt;
This is the sixth release on the Bongo roadmap. As a source-only release, it is intended only for developers and advanced users who understand they will probably experience bugs and/or rough edges. This is also a server-only release: the web UI is known to have serious faults and isn't included. &lt;br /&gt;
&lt;br /&gt;
However, we do intend that this release be usable for those brave users willing to try it: our previous releases, M4 and M5, have been used successfully by a number of people and has proved to be relatively stable.&lt;br /&gt;
&lt;br /&gt;
== What's New? ==&lt;br /&gt;
&lt;br /&gt;
Compared to 0.5, most of the changes will mainly interest developers. We have reworked the build system so that it is faster and easier to use, the libraries Bongo uses have been simplified and &amp;quot;imported&amp;quot; code has been removed, and various compiler warnings and errors have been found and fixed. &lt;br /&gt;
&lt;br /&gt;
== Download and installation ==&lt;br /&gt;
&lt;br /&gt;
With this release, we are making both source and binaries available. However, as the binaries are quite &amp;quot;new&amp;quot; we are still labelling this a source-only release. Please try the binaries first if you are able, and report any problems.&lt;br /&gt;
&lt;br /&gt;
=== Binary installation ===&lt;br /&gt;
&lt;br /&gt;
As mention above the binary creation is still in the infant stage so there are bound to be issues that we highlight. However we have been able to get the following distributions compiled.&lt;br /&gt;
&lt;br /&gt;
[[Installation/Fedora | Fedora 11]]&lt;br /&gt;
&lt;br /&gt;
[[Installation/RHEL | CentOS / RHEL]]&lt;br /&gt;
&lt;br /&gt;
[[Installation/Suse | SUSE]]&lt;br /&gt;
&lt;br /&gt;
Please install and test to let us know if there are any issues.&lt;br /&gt;
&lt;br /&gt;
=== Source installation ===&lt;br /&gt;
&lt;br /&gt;
You can download the 0.6 release from the GNA download page:&lt;br /&gt;
&lt;br /&gt;
http://download.gna.org/bongo/release/bongo-0.6.1.tar.bz2&lt;br /&gt;
&lt;br /&gt;
As a quick start, you once you've downloaded the release, you then:&lt;br /&gt;
&lt;br /&gt;
  tar -jxf bongo-0.6.1.tar.bz2&lt;br /&gt;
  cd bongo-0.6.1&lt;br /&gt;
  mkdir build&lt;br /&gt;
  cd build&lt;br /&gt;
  cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/bongo -DBONGO_USER=bongo&lt;br /&gt;
  make&lt;br /&gt;
  (as root from here)&lt;br /&gt;
  make install&lt;br /&gt;
  cd /usr/local/bongo&lt;br /&gt;
  ./sbin/bongo-config install&lt;br /&gt;
&lt;br /&gt;
We have instructions for compilation in our [[Installation/Source | source guide]] - you will need to fulfill various dependencies, but they are mostly pretty simple.&lt;br /&gt;
&lt;br /&gt;
After you have compiled and installed, you can then set about [[Configuration/Bongo | configuring Bongo]].&lt;br /&gt;
&lt;br /&gt;
Binary packages of Bongo are also being made available on an ongoing basis, but remember that this is still software under development.&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
The upgrade should be relatively simple, and it should be possible to install 0.6 &amp;quot;over&amp;quot; an existing 0.4 or 0.5 installation and have it continue to work in the same manner. However, you should backup your data before attempting this.&lt;br /&gt;
&lt;br /&gt;
To backup mail boxes, use a command such as:&lt;br /&gt;
&lt;br /&gt;
  bongo-storetool -u &amp;lt;user&amp;gt; -p &amp;lt;password&amp;gt; -h &amp;lt;bongo IP&amp;gt; sb&lt;br /&gt;
&lt;br /&gt;
Leave out the host option if you are on the localhost. This will create a file called &amp;lt;user&amp;gt;.backup, which can then be restored with:&lt;br /&gt;
&lt;br /&gt;
  bongo-storetool -u &amp;lt;user&amp;gt; -p &amp;lt;password&amp;gt; sr &amp;lt;user to restore&amp;gt; [&amp;lt;backup file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
See the bongo-storetool help for further options to store-backup (sb) and store-restore (sr). In particular, you only need to specific the backup file if the username has changed.&lt;br /&gt;
&lt;br /&gt;
Having used storetool to back up the system, you could then install over the existing installation or do a clean installation. If you prefer the clean route, you will need to re-create your users and domains configuration after installation, then you can restore your mailboxes.&lt;br /&gt;
&lt;br /&gt;
=== A 'semi-clean' install ===&lt;br /&gt;
&lt;br /&gt;
If you have an existing 0.4/0.5 installation, you can follow this method to do a &amp;quot;semi-clean&amp;quot; install. Essentially, we move the old installation out of the way, install the new one, and add back in the various configuration files. You may need to change the file paths to suit your local installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mv /usr/local/bongo /usr/local/bongo-old&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo rsync -av /usr/local/bongo-old/var/ /usr/local/bongo/var/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should then be ready to rock with all your old data still there.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
You may want to review the project bugs page to see a complete list of those issues discovered. At the time of release, the following bugs are known:&lt;br /&gt;
&lt;br /&gt;
* (major) the Dragonfly web UI is unusable for most users&lt;br /&gt;
* there are generic problems with bounce mail handling&lt;br /&gt;
* there are known problems with the queue sometimes &amp;quot;jamming&amp;quot;; usually a restart or 'bongo-queuetool flush' can fix this&lt;br /&gt;
* there are known problems talking to other SMTP servers using TLS encryption&lt;br /&gt;
&lt;br /&gt;
Because of the large number of changes in this release, we expect that there may be several bugs which will bite people testing 0.6. We do intend to support tester/developers with this release, and this branch will be actively maintained.&lt;br /&gt;
&lt;br /&gt;
== Next Release ==&lt;br /&gt;
&lt;br /&gt;
As a supported branch of Bongo, 0.6 will receive minor updates, and in due course we will make further releases for those people trying to use it in practice.&lt;br /&gt;
&lt;br /&gt;
The next major release will be 0.7. This will be in line with our new time-based release process, and will arrive at the start of October.&lt;br /&gt;
&lt;br /&gt;
We are in the process of updating the [[Roadmap]].&lt;/div&gt;</description>
			<pubDate>Sun, 23 Aug 2009 14:17:30 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Releases/0.6.0</comments>		</item>
		<item>
			<title>Documentation/Performance</title>
			<link>http://bongo-project.org/Documentation/Performance</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On October 25th 2008, I did some informal performance tests using a tool included in the postfix codebase (thanks guys!).  The tool is smtp-source.  It has lots of tuning options of which I only used a few.&lt;br /&gt;
&lt;br /&gt;
* -s X  Number of concurrent sessions or mail delivery threads&lt;br /&gt;
* -l X  Size of the email body in bytes&lt;br /&gt;
* -m X  Number of messages to deliver&lt;br /&gt;
* -c    Display a counter of messages&lt;br /&gt;
* -f X  Email address for the From: header&lt;br /&gt;
* -t X  Email address to deliver mail to&lt;br /&gt;
&lt;br /&gt;
The command line that I used for this testing was (run from the bongo server):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-s 40 -l 10120 -m 300 -c -f load@feltonline.com -t load@bongo-test.info localhost:25&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hardware for this test was a Xen VM running on an AMD 64 2.0Ghz single core with 256 MB Ram allocated to it.  The dom0 on the Xen provides ip routing functionality but was otherwise idle.  Bongo on this system was limited to bongostore (running in gdb), bongoqueue (running in gdb), bongosmtpd, and bongoimap.  This will have added overhead as well.&lt;br /&gt;
&lt;br /&gt;
There are two values reported here.  The first is the wall time smtp-source used to deliver all the emails.  The other is wall time until the queue reported that it was empty as determined by the 10s queue runner seen with debug turned on.  (Debug will have slowed delivery a tad).  This could also have added, at worst, 10 extra seconds to the wall time.  I ran the test 6 times and have averaged the results.&lt;br /&gt;
&lt;br /&gt;
* Dropoff: 62.96867 s&lt;br /&gt;
* Delivery: 78.33333 s&lt;br /&gt;
&lt;br /&gt;
I plan on updating these stats as we move along, and also updating them with no debug/gdb.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Oct 2008 21:50:35 GMT</pubDate>			<dc:creator>Pfelt</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Performance</comments>		</item>
		<item>
			<title>Releases/0.4.0</title>
			<link>http://bongo-project.org/Releases/0.4.0</link>
			<description>&lt;p&gt;Summary: /* Upgrading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bongo M4 (0.4.0) Release notes =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warning-alpha&amp;quot; style=&amp;quot;margin-top: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
Bongo is currently alpha-quality software.  It is under active development and is not yet ready for production servers. &lt;br /&gt;
&lt;br /&gt;
However, we encourage you to try it out in a test environment and let us know what you think!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About Bongo ==&lt;br /&gt;
&lt;br /&gt;
Bongo is a project to create fun and simple mail &amp;amp; calendaring software. As well as providing a well-featured but extensible set of server software, it also comes with a user-friendly web interface.&lt;br /&gt;
&lt;br /&gt;
Although Bongo is a young project, the software itself has a long pedigree going back to commercial products many years old. The core code isn't new, but the ideas we have and the direction we're taking are: we aim to provide a compelling alternative to other systems out there, not to compete directly with them.&lt;br /&gt;
&lt;br /&gt;
We have a roadmap laid out to our 1.0 release, which we hope will appeal primarily to people who are interested in features which make email and calendars more useful, rather than those interested in &amp;quot;groupware&amp;quot; or &amp;quot;enterprise communication platforms&amp;quot;. We're particularly aiming 1.0 at power home users, small organisations/businesses, and people providing mail services for third parties.&lt;br /&gt;
&lt;br /&gt;
== What's In This Release? ==&lt;br /&gt;
&lt;br /&gt;
This is the fourth release on the Bongo roadmap. As a source-only release, it is intended only for developers and advanced users who understand they will probably experience bugs and/or rough edges. This is also a server-only release: the web UI is known to have serious faults and isn't usable. &lt;br /&gt;
&lt;br /&gt;
However, we do intend that this release be usable for those brave users willing to try it: our previous release, M3, has been used by a small number and the faults found in it have been remedied for M4. We hope with M4, more people will be willing to take the plunge and try.&lt;br /&gt;
&lt;br /&gt;
== What's New? ==&lt;br /&gt;
&lt;br /&gt;
The main change in this release compared to M3 is an entirely re-worked Store underpinning Bongo; while this isn't very visible to the end user, people using Bongo via IMAP will notice speed and reliability improvements.&lt;br /&gt;
&lt;br /&gt;
The server-side parts of Bongo are now roughly feature-complete and will be changing little between now and 1.0, and we will be supporting people upgrading from version to version for the first time via our mailbox backup/restore system.&lt;br /&gt;
&lt;br /&gt;
== Download and installation ==&lt;br /&gt;
&lt;br /&gt;
You can download the M4 release from the GNA download page:&lt;br /&gt;
&lt;br /&gt;
http://download.gna.org/bongo/release/bongo-0.4.0.tar.bz2&lt;br /&gt;
&lt;br /&gt;
As a quick start, you once you've downloaded the release, you then:&lt;br /&gt;
&lt;br /&gt;
  tar -jxf bongo-0.4.0.tar.bz2&lt;br /&gt;
  cd bongo-0.4.0&lt;br /&gt;
  ./configure --prefix=/usr/local/bongo&lt;br /&gt;
  make&lt;br /&gt;
  (as root from here)&lt;br /&gt;
  make install&lt;br /&gt;
  cd /usr/local/bongo&lt;br /&gt;
  ./sbin/bongo-config install&lt;br /&gt;
&lt;br /&gt;
We have instructions for compilation in our [[Installation/Source | source guide]] - you will need to fulfill various dependencies, but they are mostly pretty simple.&lt;br /&gt;
&lt;br /&gt;
After you have compiled and installed, you can then set about [[Configuration/Bongo | configuring Bongo]].&lt;br /&gt;
&lt;br /&gt;
Binary packages of Bongo are also being made available on an ongoing basis, but remember that this is still software under development.&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
You cannot upgrade from Bongo 0.3 to 0.4 by simply installing the new software: the disk format has changed slightly. At the moment, the upgrade method is to backup existing mail boxes and restore them into the new system: however, you need to use the bongo-storetool from 0.4, ''not'' from 0.3!&lt;br /&gt;
&lt;br /&gt;
To backup mail boxes, use a command such as:&lt;br /&gt;
&lt;br /&gt;
  bongo-storetool -u &amp;lt;user&amp;gt; -p &amp;lt;password&amp;gt; -h &amp;lt;bongo IP&amp;gt; sb&lt;br /&gt;
&lt;br /&gt;
Leave out the host option if you are on the localhost. This will create a file called &amp;lt;user&amp;gt;.backup, which can then be restored with:&lt;br /&gt;
&lt;br /&gt;
  bongo-storetool -u &amp;lt;user&amp;gt; -p &amp;lt;password&amp;gt; sr &amp;lt;user to restore&amp;gt; [&amp;lt;backup file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
See the bongo-storetool help for further options to store-backup (sb) and store-restore (sr). In particular, you only need to specific the backup file if the username has changed.&lt;br /&gt;
&lt;br /&gt;
If you want to follow this procedure, as a whole you need to:&lt;br /&gt;
&lt;br /&gt;
* backup your mailboxes from 0.3 with the storetool from 0.4&lt;br /&gt;
* install bongo 0.4, and run 'bongo-config install' as usual - remembering to specify the right mail domains again&lt;br /&gt;
* either add the users again (remember passwords!) or copy your var/bongo/dbf/userdb.sqlite from the old install to the new install to bring back the user auth information&lt;br /&gt;
* only then start up bongo 0.4 and restore mailboxes&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
You may want to review the project bugs page to see a complete list of those issues discovered. At the time of release, the following bugs are known:&lt;br /&gt;
&lt;br /&gt;
* (major) the Dragonfly web UI is unusable for most users&lt;br /&gt;
* there are generic problems with bounce mail handling&lt;br /&gt;
* there are reports that large numbers of incoming e-mails can cause problems&lt;br /&gt;
&lt;br /&gt;
Because of the large number of changes in this release, we expect that there may be several bugs which will bite people testing M4. We do intend to support tester/developers with this release, and will actively maintain this branch of the software, though.&lt;br /&gt;
&lt;br /&gt;
== Next Release ==&lt;br /&gt;
&lt;br /&gt;
As a supported branch of Bongo, M4 will receive minor updates, and in due course we will make further releases for those people trying to use it in practice.&lt;br /&gt;
&lt;br /&gt;
The next major release will be M5. Coming in that release:&lt;br /&gt;
&lt;br /&gt;
* new, more reliable, web UI for mail and calendar&lt;br /&gt;
* complete Hawkeye web UI for administration&lt;br /&gt;
&lt;br /&gt;
There will also be numerous technical advances and bugfixes that may not immediately visible to users.&lt;br /&gt;
&lt;br /&gt;
For further information, see the [[Roadmap]].&lt;/div&gt;</description>
			<pubDate>Sun, 07 Sep 2008 19:00:54 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Releases/0.4.0</comments>		</item>
		<item>
			<title>Guides/Profiling Bongo</title>
			<link>http://bongo-project.org/Guides/Profiling_Bongo</link>
			<description>&lt;p&gt;Summary: New page: = Profiling Bongo =  In order to find out what's going on inside Bongo when stuff is going slow, the best tool to use is a profiler. This is a quick guide to using the &amp;quot;gprof&amp;quot; profiler wit...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Profiling Bongo =&lt;br /&gt;
&lt;br /&gt;
In order to find out what's going on inside Bongo when stuff is going slow, the best tool to use is a profiler. This is a quick guide to using the &amp;quot;gprof&amp;quot; profiler with Bongo.&lt;br /&gt;
&lt;br /&gt;
gprof is part of GNU binutils and will be installed on most developer systems. &lt;br /&gt;
&lt;br /&gt;
== A profiling build ==&lt;br /&gt;
&lt;br /&gt;
You will need to compile Bongo from source to profile, so you'll need to know how to do that or follow [[Installation/Source|this guide]] to compile from source.&lt;br /&gt;
&lt;br /&gt;
Additionally, you need to set two flags before calling autogen.sh (if you get your source from SVN) or configure (if you're using a tarball):&lt;br /&gt;
&lt;br /&gt;
  CFLAGS=-pg LDFLAGS=-pg ./autogen.sh [usual flags here]&lt;br /&gt;
&lt;br /&gt;
With all of Bongo compiled and linked this way, we now have a profiling build. The way that this works is that a gmon.out file is created in the working directory when any agent shutdowns down ''normally''.&lt;/div&gt;</description>
			<pubDate>Mon, 01 Sep 2008 14:23:58 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Guides/Profiling_Bongo</comments>		</item>
		<item>
			<title>Documentation/Bongo Query Language</title>
			<link>http://bongo-project.org/Documentation/Bongo_Query_Language</link>
			<description>&lt;p&gt;Summary: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bongo Query Language =&lt;br /&gt;
&lt;br /&gt;
A number of store commands can be supplemented with simple queries, which clients can use to get back more specific information than the standard commands and parameters allow.&lt;br /&gt;
&lt;br /&gt;
== Why a query language? ==&lt;br /&gt;
&lt;br /&gt;
It's relatively clear that a number of clients will need or desire data sets which are more specific than our standard commands can return, so this simple query language was put in place. It is also used internally, so many of the commands which seem to do equivalent things are actually translated &amp;quot;under the hood&amp;quot; as it were.&lt;br /&gt;
&lt;br /&gt;
By enabling this flexibility, the store can become a much richer source of information, and reduce the burden on client applications.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The query language has been designed to be parsed extremely efficiently, and is set-up so that it can be translated readily into SQL commands. As a consequence of this, it is rather less human-friendly than the rest of our protocol, but while it looks strange on the surface, it is extremely easy to use once you understand it.&lt;br /&gt;
&lt;br /&gt;
The language is formed of operators and functions, all of which take two arguments, and the notation is infix: the operator or function name comes first, followed by the two arguments.&lt;br /&gt;
&lt;br /&gt;
The operators are:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Operator &lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;&lt;br /&gt;
| Logical AND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |  |&lt;br /&gt;
| Logical OR&lt;br /&gt;
|-&lt;br /&gt;
| =&lt;br /&gt;
| Equivalency / equality&lt;br /&gt;
|-&lt;br /&gt;
| ^&lt;br /&gt;
| String contains / &amp;quot;is like&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| !&lt;br /&gt;
| Inequivalence / inequality&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;&lt;br /&gt;
| Less than (numeric expressions)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;gt;&lt;br /&gt;
| Greater than (numeric expressions)&lt;br /&gt;
|-&lt;br /&gt;
| ~&lt;br /&gt;
| Bitfield AND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The functions are:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Function&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| {&lt;br /&gt;
| Left-substring of, taking a length and property name argument&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
| Right-substring of, taking a length and property argument (to be implemented)&lt;br /&gt;
|-&lt;br /&gt;
| l&lt;br /&gt;
| Document Linked to/from, taking a direction (to/from) and a document guid&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Expressions are of the form:&lt;br /&gt;
&lt;br /&gt;
  [operator] [sub-expression] [sub-expression]&lt;br /&gt;
  [function] [constant] [constant]&lt;br /&gt;
&lt;br /&gt;
A constant could be an integer, a string, or a document property name (for example, nmap.guid being the guid of the document). &lt;br /&gt;
&lt;br /&gt;
These tokens are parsed thusly:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Token&lt;br /&gt;
! Format&lt;br /&gt;
! Regex&lt;br /&gt;
|-&lt;br /&gt;
| Operator / Function&lt;br /&gt;
| All operators/functions are single non-numeric characters&lt;br /&gt;
| ^[^0-9]$&lt;br /&gt;
|-&lt;br /&gt;
| Number&lt;br /&gt;
| Numbers are one or more digits&lt;br /&gt;
| ^[0-9]+$&lt;br /&gt;
|-&lt;br /&gt;
| String&lt;br /&gt;
| Strings are quoted, and contained quotes are \-escaped&lt;br /&gt;
| ^'.*'$ (escaping not represented)&lt;br /&gt;
|-&lt;br /&gt;
| Property name&lt;br /&gt;
| Properties are lower-case alpha-numeric, and may contain periods&lt;br /&gt;
| ^[a-z][a-z0-9]+(?:\.[a-z][a-z0-9]+)*$&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Because of these definitions, all tokens are unambiguous: they fall into none or exactly one of the above categories.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
In order to understand these examples, you may need to know a little bit about our store protocol already, and how the store operates. &lt;br /&gt;
&lt;br /&gt;
The context of these examples is a request to the store, for example via MESSAGES, and we are using the query to refine the documents returned to only those we are interested in.&lt;br /&gt;
&lt;br /&gt;
There are a couple of quoting issues to be careful of. Not only does BQL itself need quoting, but within the context of the store protocol additional quoting is usually required. For the most part, BQL uses single quotes for quoting, and the store protocol double quotes, so that the two are &amp;quot;compatible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Mail documents from Jim ===&lt;br /&gt;
&lt;br /&gt;
Mail documents have the store type 0x2, and Jim's address is 'jim@example.com', which will be stored in the 'bongo.from' property of any e-mail.&lt;br /&gt;
&lt;br /&gt;
The logic for this query is &amp;quot;(nmap.type = 2) AND (bongo.from = 'jim@example.com')&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In BQL, this becomes:&lt;br /&gt;
&lt;br /&gt;
  &amp;amp; = nmap.type 2 = bongo.from 'jim@example.com'&lt;br /&gt;
&lt;br /&gt;
As a store command you might run:&lt;br /&gt;
&lt;br /&gt;
  LIST /mail/INBOX &amp;quot;Q&amp;amp; = nmap.type 2 = bongo.from 'jim@example.com'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note especially that the whole argument is quoted with double-quotes, so that the store recognises the whole query as the argument.&lt;/div&gt;</description>
			<pubDate>Fri, 01 Aug 2008 09:59:07 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Bongo_Query_Language</comments>		</item>
		<item>
			<title>Installing Avocado</title>
			<link>http://bongo-project.org/Installing_Avocado</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Assuming you've already [[Installing_Crystal|installed Crystal]], you can follow this '''very''' simple guide (note that it does break any changes you make to the serve directory in SVN):&lt;br /&gt;
&lt;br /&gt;
 $ cd path/to/crystal/checkout&lt;br /&gt;
 $ cd serve/&lt;br /&gt;
 $ rm * -Rf &amp;amp;&amp;amp; rm .svn -Rf&lt;br /&gt;
 $ svn co http://svn.gna.org/svn/bongo/experiments/avocado ./&lt;br /&gt;
&lt;br /&gt;
Now we can start the server!&lt;br /&gt;
&lt;br /&gt;
 $ cd ../&lt;br /&gt;
 $ ./run-crystal.sh&lt;br /&gt;
&lt;br /&gt;
Great! We're done! Head over to http://localhost:8080/ and awe in the awesomeness of Crystal and Avocado working together. :)&lt;/div&gt;</description>
			<pubDate>Thu, 10 Jul 2008 11:02:38 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Installing_Avocado</comments>		</item>
		<item>
			<title>Installing Crystal</title>
			<link>http://bongo-project.org/Installing_Crystal</link>
			<description>&lt;p&gt;Summary: /* Running */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is it? ==&lt;br /&gt;
&lt;br /&gt;
Crystal is the new web backend for Bongo. It provides a simplified API and&lt;br /&gt;
is much more modular in design. It is invisaged that different services can be&lt;br /&gt;
hosted using the same core backend code (for example, AJAX frontend, admin).&lt;br /&gt;
&lt;br /&gt;
Crystal is released under the MIT/X11 license.&lt;br /&gt;
&lt;br /&gt;
== Installing dependencies ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* [http://werkzeug.pocoo.org/download Werkzeug] (latest stable version should work; cloning from Hg head is probably nicer however). Note that this may have its own internal dependencies.&lt;br /&gt;
&lt;br /&gt;
* [http://python.org Python 2.4+]. '''Note that if you're running 2.4, you will still need to install &amp;lt;code&amp;gt;python-wsgiref&amp;lt;/code&amp;gt;''' as a separate package to run the internal webserver.&lt;br /&gt;
&lt;br /&gt;
* SimpleJSON.&lt;br /&gt;
&lt;br /&gt;
Optionally, you may also want the [[Store|Bongo store]] installed.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
The following commands should install the required base dependencies to run Crystal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo apt-get install python-simplejson python2.5 python-setuptools&lt;br /&gt;
 $ sudo easy_install Werkzeug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting sources ==&lt;br /&gt;
&lt;br /&gt;
To get the latest version of Crystal, simply to a SVN checkout:&lt;br /&gt;
&lt;br /&gt;
 $ svn co http://svn.gna.org/svn/bongo/experiments/crystal crystal&lt;br /&gt;
&lt;br /&gt;
== Running ==&lt;br /&gt;
&lt;br /&gt;
 $ cd crystal/&lt;br /&gt;
 $ ./run-crystal.py&lt;br /&gt;
&lt;br /&gt;
and head over to http://localhost:8080 to see your installation working!&lt;br /&gt;
&lt;br /&gt;
You can also just use the sample data provided in demodata by disabling store altogether:&lt;br /&gt;
&lt;br /&gt;
 $ ./run-crystal.py --disable-store&lt;br /&gt;
&lt;br /&gt;
== More exciting things ==&lt;br /&gt;
&lt;br /&gt;
You'll probably want to [[Installing_Avocado|install Avocado]] then! Note that at the moment it currently depends on Crystal's Dragonfly module, but in the future it should work with any Dragonfly server.&lt;/div&gt;</description>
			<pubDate>Thu, 10 Jul 2008 10:58:19 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Installing_Crystal</comments>		</item>
		<item>
			<title>Documentation/Hawkeye</title>
			<link>http://bongo-project.org/Documentation/Hawkeye</link>
			<description>&lt;p&gt;Summary: /* Agents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hawkeye]][[Category: Documentation]][[Category: M3]]&lt;br /&gt;
&lt;br /&gt;
Bongo project has created many ways to manage users, domains and features, one of them is the '''Hawkeye Web Adminstration Interface'''.&lt;br /&gt;
&lt;br /&gt;
Here will be explained every option of this interface, the main purporse is to be used as cross-reference when needed.&lt;br /&gt;
&lt;br /&gt;
In this documentation we will use ''localhost'', as domain name, you have to change it to fit your needs, the nice thing is, if you're accessing this document from same computer where Bongos is installed, you will be directed to the right page (thanks to [[Guides/Dragonfly_URL_Schemes|REST architecture]]).&lt;br /&gt;
&lt;br /&gt;
== About the interface ==&lt;br /&gt;
&lt;br /&gt;
[[image:hawkeye_desktop.png|right|120px|thumb|Hawkeye interface]]The admin interface is made to be simple, clean and objective. It requires a &amp;quot;modern&amp;quot; web browser to work, because it was made with XHTML. Every page fits very well on screen, even in small displays (800x600), they are divided in 3 main sections.&lt;br /&gt;
&lt;br /&gt;
# Header&lt;br /&gt;
# Body&lt;br /&gt;
# Footer&lt;br /&gt;
&lt;br /&gt;
[[image:hawkeye_desktop_toggled.png|right|120px|thumb|Sidebar hidden]]On ''header'' you will find the Bongo logo on left side, and username on right side (with a logout button right aside), on ''footer'' there is the tool version and the GPL disclaimer), our main focus lies on ''body'' where we will find all options.&lt;br /&gt;
The ''body'' section is divided in two section the left one is the sidebar, where you can browse every subject (better explained later), on right side you will find the sub-sections from every subject choosen previously, if you select any sub-section, you will be taken to Bongo configuration options. You can also toogle the sidebar on/off clicking on label '''Toggle sidebar'''.&lt;br /&gt;
&lt;br /&gt;
== Login screen ==&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_login.png&lt;br /&gt;
| tab=Login&lt;br /&gt;
| set=N/A&lt;br /&gt;
| handler=N/A&lt;br /&gt;
| url=http://localhost:8080/admin/login&lt;br /&gt;
}}&lt;br /&gt;
This screen is very straight forward, we have just 3 objects, they are:&lt;br /&gt;
* Username - A valid username with administrative privileges (see [[Creating Users]]).&lt;br /&gt;
* Password - The username password.&lt;br /&gt;
* Language - Chooses the interface language.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_desktop.png&lt;br /&gt;
| tab=Desktop&lt;br /&gt;
| set=N/A&lt;br /&gt;
| handler=N/A&lt;br /&gt;
| url=http://localhost:8080/admin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The desktop window is the first window seen after login, it shows some information about Bongo itself and the system where it is installed.&lt;br /&gt;
&lt;br /&gt;
* Agent Status&lt;br /&gt;
* Bongo Updates&lt;br /&gt;
* System status&lt;br /&gt;
* Memory usage&lt;br /&gt;
* Load&lt;br /&gt;
* Last 5 actions&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
Not available on M3&lt;br /&gt;
&lt;br /&gt;
== Agents ==&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents.png&lt;br /&gt;
| tab=agents&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=N/A&lt;br /&gt;
| url=http://localhost:8080/admin/agents/&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
An agent is a subsystem responsible for a very specific task inside Bongo. In ''agents'' tab set, you will find handlers to manage every Bongo agent, there are 12 available agents. They are:&lt;br /&gt;
&lt;br /&gt;
* '''bongoqueue''' - controls the Bongo mail queue&lt;br /&gt;
* '''bongosmtp''' - receives e-mail via SMTP protocol&lt;br /&gt;
* '''bongosmtpc''' - sends e-mail smtpc via SMTP protocol (the C stands for client)&lt;br /&gt;
* '''bongoantispam''' - runs antispam in every message processed by smtp agent &lt;br /&gt;
* '''bongoavirus''' - runs antivirus in every message processed by smtp agent&lt;br /&gt;
* '''bongocollector''' - &lt;br /&gt;
* '''bongomailprox''' - &lt;br /&gt;
* '''bongopluspack''' - &lt;br /&gt;
* '''bongorules''' -&lt;br /&gt;
* '''bongoimap''' - allow users access bongo store via IMAP protocol&lt;br /&gt;
* '''bongopop3''' - allow users access bongo store via POP3 protocol&lt;br /&gt;
* '''bongostandalone'''  - &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_server.png&lt;br /&gt;
| tab=agents/global&lt;br /&gt;
| set=server&lt;br /&gt;
| handler=N/A&lt;br /&gt;
| url=http://localhost:8080/admin/server/&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page allows you to enable and disable specific agents during runtime for change at next restart.&lt;br /&gt;
&lt;br /&gt;
Please note that you must restart bongo-manager for these changes to take effect, since they're only to do with the agent list at startup, not dynamic starting and stopping.&lt;br /&gt;
&lt;br /&gt;
=== SMTP ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_smtp.png&lt;br /&gt;
| tab=agents/smtp&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=bongosmtp&lt;br /&gt;
| url=http://localhost:8080/admin/agents/bongosmtp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page allows you to manage how '''smtp''' and '''smtpc''' agents will behave. The options are:&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
!Parameter||Default value||Valid input||Description&lt;br /&gt;
|-&lt;br /&gt;
|SSL Port||465||1-65535||The TCP port where &amp;quot;bongosmtp&amp;quot; will listen for incoming secure connections.&lt;br /&gt;
|-&lt;br /&gt;
|Socket timeout||600||numeric||Value in seconds to wait in an idle connection&lt;br /&gt;
|-&lt;br /&gt;
|Port||25||1-65535||The TCP port where &amp;quot;bongosmtp&amp;quot; will listen for incoming connections (do not change, unless you really know what you're doing)&lt;br /&gt;
|-&lt;br /&gt;
|Maximum recipients||15||numeric||Max number of recipients per message, if number exceeds, the message will be dropped without any explanation&lt;br /&gt;
|-&lt;br /&gt;
|Message size limit||0||numeric||Maximum value in bytes allowed in a single message (0 for no limit)&lt;br /&gt;
|-&lt;br /&gt;
|Allow client SSL||False||Bool||Enable/Disable support to SSL clients&lt;br /&gt;
|-&lt;br /&gt;
|Maximum MX servers||20||numeric||?&lt;br /&gt;
|-&lt;br /&gt;
|Maximum threads||10000||numeric||Maximum number of threads spawned for bongosmtp/smtpc agents.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IMAP ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_imap.png&lt;br /&gt;
| tab=agents/imap&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=bongoimap&lt;br /&gt;
| url=http://localhost:8080/admin/agents/bongoimap&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page allows every configuration related with ''bongoimap'' handler.&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
!Parameter||Default value||Valid input||Description&lt;br /&gt;
|-&lt;br /&gt;
|Port||143||1-65535||The TCP port where &amp;quot;bongoimap&amp;quot; will listen for incoming connections (do not change, unless you really know what you're doing)&lt;br /&gt;
|-&lt;br /&gt;
|SSL Port||993||1-65535||The TCP port where &amp;quot;bongoimap&amp;quot; will listen for incoming secure connections.&lt;br /&gt;
|-&lt;br /&gt;
|Maximum threads||50||numeric||Maximum number of threads spawned for ''bongoimap'' agents.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Antivirus ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_antivirus.png&lt;br /&gt;
| tab=agents/antivirus&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=bongoantivirus&lt;br /&gt;
| url=http://localhost:8080/admin/agents/bongoavirus&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page allows you to manage how agent '''bongoavirus''' will handle anti virus checks, right now only [http://www.clamav.org ClamAV] is supported. The [[antivirus configuration]] is beyond of scope of this document, and it's covered on [[Documentation/Administration_Guide|Administration Guide]]&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
!Parameter||Default value||Valid input||Description&lt;br /&gt;
|-&lt;br /&gt;
|Timeout||15||numeric||Maximum time (in milliseconds) to connect to antivirus server.&lt;br /&gt;
|-&lt;br /&gt;
|Hosts||127.0.0.1:3310:1||HOST:PORT:?||Colection of hosts:port (one per line), where antivirus servers are configured&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== POP3 ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_pop3.png&lt;br /&gt;
| tab=agents/pop3&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=bongopop3&lt;br /&gt;
| url=http://localhost:8080/admin/agents/bongopop3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page allows every configuration related with ''bongopop3'' handler.&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
!Parameter||Default value||Valid input||Description&lt;br /&gt;
|-&lt;br /&gt;
|Port||110||1-65535||The TCP port where &amp;quot;bongopop3&amp;quot; will listen for incoming connections (do not change, unless you really know what you're doing)&lt;br /&gt;
|-&lt;br /&gt;
|SSL Port||995||1-65535||The TCP port where &amp;quot;bongopop&amp;quot; will listen for incoming secure connections.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Global ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_global.png&lt;br /&gt;
| tab=agents/global&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=global&lt;br /&gt;
| url=http://localhost:8080/admin/agents/global&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
=== Mail Proxy ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_mailproxy.png&lt;br /&gt;
| tab=agents/mail proxy&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=bongomailprox&lt;br /&gt;
| url=http://localhost:8080/admin/agents/bongomailprox&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
=== Queue ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_queue.png&lt;br /&gt;
| tab=agents/queue&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=bongoqueue&lt;br /&gt;
| url=http://localhost:8080/admin/agents/bongoqueue&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
=== Antispam ===&lt;br /&gt;
&lt;br /&gt;
{{Infobox URL&lt;br /&gt;
| image=hawkeye_agents_antispam.png&lt;br /&gt;
| tab=agents/antispam&lt;br /&gt;
| set=agents&lt;br /&gt;
| handler=bongoantispam&lt;br /&gt;
| url=http://localhost:8080/admin/agents/bongoantispam&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
== System ==&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
=== Backup and Restore ===&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
=== Domain ===&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
==== Creating a new domain ====&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
==== Removing a domain ====&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
==== Editing a domain ====&lt;br /&gt;
&lt;br /&gt;
skel&lt;br /&gt;
&lt;br /&gt;
== Help == &lt;br /&gt;
&lt;br /&gt;
Not available in M3&lt;/div&gt;</description>
			<pubDate>Wed, 28 May 2008 21:09:10 GMT</pubDate>			<dc:creator>Igormorgado</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Hawkeye</comments>		</item>
		<item>
			<title>Live CD</title>
			<link>http://bongo-project.org/Live_CD</link>
			<description>&lt;p&gt;Summary: /* LiveCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== LiveCD ====&lt;br /&gt;
Once you have started the livecd I know you are eager to start testing Bongo. &lt;br /&gt;
Unfortunately you will need to configure the system before you will be able to do that.&lt;br /&gt;
&lt;br /&gt;
Now don't run away it is not as hard as you think, No really.&lt;br /&gt;
&lt;br /&gt;
Use the following steps to configure the livecd so you can play. Just remember that this is a livecd so that really cool e-mail you sent to your special person will be gone once you reboot your machine.&lt;br /&gt;
&lt;br /&gt;
Right down to business.&lt;br /&gt;
&lt;br /&gt;
You should see the following screen once the system has booted&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDconsole.png]]&lt;br /&gt;
&lt;br /&gt;
In this screen you can see that we have given you a link to the initial configuration page. The URL looks something like this &lt;br /&gt;
https://IPADDRESS:8003 enter it into your favorite browser &lt;br /&gt;
&lt;br /&gt;
don't for get the https or it will error out.&lt;br /&gt;
&lt;br /&gt;
What you should see is this&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastage1.png]]&lt;br /&gt;
&lt;br /&gt;
On this page you will need to enter the following details&lt;br /&gt;
username admin &lt;br /&gt;
password password&lt;br /&gt;
&lt;br /&gt;
Then click on submit&lt;br /&gt;
&lt;br /&gt;
You will then be asked to click on OK, this will take you to the root password setting screen that looks like this&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastage3.png]]&lt;br /&gt;
&lt;br /&gt;
enter a password for the root user make sure you type it in the same both times and then click ok.&lt;br /&gt;
&lt;br /&gt;
You will then be presented with the next page looking like this&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastage4.png]]&lt;br /&gt;
&lt;br /&gt;
This is the password setting page for the rpath web admin user&lt;br /&gt;
&lt;br /&gt;
you need to enter password as the old password and a new password twice.&lt;br /&gt;
&lt;br /&gt;
Once you are sure you have typed the password in correctly then click change password&lt;br /&gt;
&lt;br /&gt;
The next page looks like this&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastage5.png]]&lt;br /&gt;
&lt;br /&gt;
This page allows you to set-up the system email account that will receive the update e-mails from the appliance when new bongo or system updates are released.&lt;br /&gt;
&lt;br /&gt;
Enter the following in the fields provided&lt;br /&gt;
Mail relay - localhost&lt;br /&gt;
Mail From - bongoserver@localhost&lt;br /&gt;
&lt;br /&gt;
Then click OK&lt;br /&gt;
&lt;br /&gt;
The next page will allow you to set-up the people who will receive these update notices.&lt;br /&gt;
in the field provided you can add an email address of the recipient. The page should look like this&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastage6.png]]&lt;br /&gt;
&lt;br /&gt;
you can add more than one person to the list or a mailing list if you want.&lt;br /&gt;
As this is not a live server we don't have to be to careful so in the field provided enter&lt;br /&gt;
bongouser@localhost and click add&lt;br /&gt;
&lt;br /&gt;
Once you have added the user you can click on the save button.&lt;br /&gt;
&lt;br /&gt;
You should then see this page&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastage8.png]]&lt;br /&gt;
&lt;br /&gt;
Don't do anything to this page just click on the Done button.&lt;br /&gt;
&lt;br /&gt;
Now we get to the interesting bit.&lt;br /&gt;
&lt;br /&gt;
You should now see the following page&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastage9.png]]&lt;br /&gt;
&lt;br /&gt;
This is where we configure the base bongo system. We can leave the defaults here and click save.&lt;br /&gt;
&lt;br /&gt;
You should now see the Configure Proxy page. This page allows you to add your network proxy server if you use one so that your Bongo appliance can get its updates from the web.&lt;br /&gt;
Once you have entered the proxy server information then you can click on the OK button.&lt;br /&gt;
&lt;br /&gt;
You should now see this page&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoLiveCDraastagefinish.png]]&lt;br /&gt;
&lt;br /&gt;
Congratulations you are finished.&lt;br /&gt;
&lt;br /&gt;
You can now open your browser and enter this link&lt;br /&gt;
http://IPADDRESS&lt;br /&gt;
&lt;br /&gt;
You will then see a login page. &lt;br /&gt;
&lt;br /&gt;
Enter the following information&lt;br /&gt;
Username – admin&lt;br /&gt;
password – bongo&lt;br /&gt;
&lt;br /&gt;
you are now logged in to the bongo server. have fun playing.&lt;/div&gt;</description>
			<pubDate>Tue, 06 May 2008 21:29:58 GMT</pubDate>			<dc:creator>Lhaig</dc:creator>			<comments>http://bongo-project.org/Talk:Live_CD</comments>		</item>
		<item>
			<title>Documentation/Store Property List</title>
			<link>http://bongo-project.org/Documentation/Store_Property_List</link>
			<description>&lt;p&gt;Summary: /* bongo namespace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Store Property List =&lt;br /&gt;
&lt;br /&gt;
This is intended to be a list of the various properties that the Bongo store automatically gives collections/documents, and also any properties that it otherwise recognizes or that the project has in some way standardised.&lt;br /&gt;
&lt;br /&gt;
== Name format ==&lt;br /&gt;
&lt;br /&gt;
Properties are simple text names, however, we use a simple dot notation to &amp;quot;namespace&amp;quot; them. For example:&lt;br /&gt;
&lt;br /&gt;
  nmap.mail.headersize&lt;br /&gt;
&lt;br /&gt;
.. is a valid property in the 'nmap' namespace.&lt;br /&gt;
&lt;br /&gt;
The Bongo Project reserves the 'nmap', 'store', 'bongo' and 'internal' namespaces, and third-party applications must not use them.&lt;br /&gt;
&lt;br /&gt;
== nmap namespace ==&lt;br /&gt;
&lt;br /&gt;
These core properties are effectively read-only, apart from those marked with an asterisk (*), and attempts to PROPSET them will be met with failure. &lt;br /&gt;
&lt;br /&gt;
Properties marked with a plus (+) are obsolete and may be removed in the future.&lt;br /&gt;
&lt;br /&gt;
=== Properties on all Store objects ===&lt;br /&gt;
&lt;br /&gt;
  guid&lt;br /&gt;
  collection&lt;br /&gt;
  name&lt;br /&gt;
  length&lt;br /&gt;
  type&lt;br /&gt;
  flags&lt;br /&gt;
  created&lt;br /&gt;
  lastmodified&lt;br /&gt;
  version +&lt;br /&gt;
  access-control *&lt;br /&gt;
&lt;br /&gt;
=== Mail document additional properties ===&lt;br /&gt;
&lt;br /&gt;
  mail.conversation&lt;br /&gt;
  mail.imapuid&lt;br /&gt;
  mail.sent&lt;br /&gt;
  mail.subject&lt;br /&gt;
  mail.messageid&lt;br /&gt;
  mail.parentmessageid&lt;br /&gt;
  mail.headersize&lt;br /&gt;
&lt;br /&gt;
=== Conversation document additional properties ===&lt;br /&gt;
&lt;br /&gt;
  conversation.unread&lt;br /&gt;
  conversation.count&lt;br /&gt;
  conversation.subject&lt;br /&gt;
  conversation.date&lt;br /&gt;
&lt;br /&gt;
=== Event document additional properties ===&lt;br /&gt;
&lt;br /&gt;
  event.alarm *&lt;br /&gt;
  event.calendars&lt;br /&gt;
  event.start&lt;br /&gt;
  event.end&lt;br /&gt;
  event.location&lt;br /&gt;
  event.summary&lt;br /&gt;
  event.uid&lt;br /&gt;
  event.stamp&lt;br /&gt;
&lt;br /&gt;
== bongo namespace ==&lt;br /&gt;
&lt;br /&gt;
These properties are generated from messages parsed, but are read/write.&lt;br /&gt;
&lt;br /&gt;
=== Mail document additional properties ===&lt;br /&gt;
&lt;br /&gt;
  bongo.from&lt;br /&gt;
  bongo.to&lt;br /&gt;
  bongo.sender&lt;br /&gt;
  bongo.cc&lt;br /&gt;
  bongo.inreplyto&lt;br /&gt;
  bongo.references&lt;br /&gt;
  bongo.xauthok&lt;br /&gt;
  bongo.listid&lt;br /&gt;
&lt;br /&gt;
=== Contact additional properties ===&lt;br /&gt;
&lt;br /&gt;
  bongo.contact.name&lt;br /&gt;
  bongo.contact.email&lt;br /&gt;
&lt;br /&gt;
Although a contact can have more than one e-mail set, we only store one in the properties at the moment - usually, the preferred email. Similarly, we don't store possible variations of names (although that is more of a corner case...)&lt;/div&gt;</description>
			<pubDate>Mon, 21 Apr 2008 15:06:57 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Store_Property_List</comments>		</item>
		<item>
			<title>Installable CD/DVD</title>
			<link>http://bongo-project.org/Installable_CD/DVD</link>
			<description>&lt;p&gt;Summary: /* Installable_CD/DVD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Installable_CD/DVD ====&lt;br /&gt;
Once you have written the ISO to disk insert it in the cdrom of your server.&lt;br /&gt;
When the server starts and boots you should see this screen&lt;br /&gt;
[[Image:BongoISOInstallStage1.png]]&lt;br /&gt;
Hit Enter on your keyboard.&lt;br /&gt;
&lt;br /&gt;
After a while you should see screen like this&lt;br /&gt;
[[Image:BongoInstallISOStage2.png]]&lt;br /&gt;
&lt;br /&gt;
Click on Next&lt;br /&gt;
&lt;br /&gt;
You should then see a screen like this&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoISOInstallStage3.png]]&lt;br /&gt;
&lt;br /&gt;
Select your language&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoISOInstallStage4.png]]&lt;br /&gt;
&lt;br /&gt;
Select your keyboard language&lt;br /&gt;
Then select Next&lt;br /&gt;
You should now see this screen&lt;br /&gt;
&lt;br /&gt;
[[Image:BongoISOInstallStage5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Appliance Notes&lt;br /&gt;
Initial console userid/password&lt;br /&gt;
root/&amp;lt;none&amp;gt; &lt;br /&gt;
Initial rAA userid/password&lt;br /&gt;
admin/password&lt;br /&gt;
To manage or update your appliance:&lt;br /&gt;
This appliance includes the rPath Appliance Agent (rAA), a web-based appliance management console. The rAA console allows you to:&lt;br /&gt;
 - retrieve an install updates for the appliance &lt;br /&gt;
 - configure the appliance's network settings&lt;br /&gt;
 - initially configure Bongo&lt;br /&gt;
 - reboot your appliance&lt;br /&gt;
In order to access the rAA console, enter:&lt;br /&gt;
https://&amp;lt;appliance-ip&amp;gt;:8003/&lt;br /&gt;
into your web browser. The default rAA user is 'admin' with password 'password&lt;/div&gt;</description>
			<pubDate>Sat, 19 Apr 2008 19:49:25 GMT</pubDate>			<dc:creator>Lhaig</dc:creator>			<comments>http://bongo-project.org/Talk:Installable_CD/DVD</comments>		</item>
		<item>
			<title>TryBongo</title>
			<link>http://bongo-project.org/TryBongo</link>
			<description>&lt;p&gt;Summary: /* Try Bongo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Try Bongo ==&lt;br /&gt;
&lt;br /&gt;
This page attempts to document the process of using our appliance install medium and Virtual machine images. Please use the links below to get information on your chosen install method.&lt;br /&gt;
&lt;br /&gt;
====[[Live CD]]====&lt;br /&gt;
Use this to try the bongo software before installing it anywhere.&lt;br /&gt;
====[[Installable CD/DVD]]====&lt;br /&gt;
This is a standard ISO image that you can burn to CD and use to install on hardware &lt;br /&gt;
====[[Mountable Filesystem (Xen Virtual Appliance)]]====&lt;br /&gt;
This is a Xen virtual Machine disk pre-installed and ready to configure&lt;br /&gt;
====[[VMware (R) Virtual Appliance]]====&lt;br /&gt;
This is a Vmware appliance you can use on the Free Vmware server pre-installed and ready to configure&lt;br /&gt;
====[[VMware (R) ESX Server Virtual Appliance]]====&lt;br /&gt;
This is a Vmware ESX server appliance pre-installed and ready to configure&lt;br /&gt;
====[[Microsoft (R) VHD Virtual Server]]====&lt;br /&gt;
This is a Microsoft Virtual disk pre-installed and ready to configure&lt;br /&gt;
====[[Amazon Machine Image (Xen Virtual Appliance)]]====&lt;br /&gt;
This is an image you can use at Amazon pre-installed and ready to configure&lt;/div&gt;</description>
			<pubDate>Fri, 18 Apr 2008 22:14:44 GMT</pubDate>			<dc:creator>Lhaig</dc:creator>			<comments>http://bongo-project.org/Talk:TryBongo</comments>		</item>
		<item>
			<title>Google Summer of Code/Application2008</title>
			<link>http://bongo-project.org/Google_Summer_of_Code/Application2008</link>
			<description>&lt;p&gt;Summary: /* Some Specific Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Google SoC Student application =&lt;br /&gt;
&lt;br /&gt;
This is our proposed application form for students applying to the Bongo Project.&lt;br /&gt;
&lt;br /&gt;
== Name &amp;amp; Contact Details ==&lt;br /&gt;
&lt;br /&gt;
Please provide your contact details: at the minimum, a name and e-mail address. &lt;br /&gt;
&lt;br /&gt;
Name:&lt;br /&gt;
&lt;br /&gt;
E-mail:&lt;br /&gt;
&lt;br /&gt;
Address/location:&lt;br /&gt;
&lt;br /&gt;
Phone:&lt;br /&gt;
&lt;br /&gt;
== A Short Bio ==&lt;br /&gt;
&lt;br /&gt;
Please tell us a little about yourself. In particular, what you're studying (and how far into your course you are), and detail any previous experience in the free software community or participation in a free software project.&lt;br /&gt;
&lt;br /&gt;
The Bongo Project prides itself on fun and friendliness: as well as technically adept students, we also want people who will fit our culture. So, remember, we're not just interested in your technical skills, but also your &amp;quot;people skills&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Your Proposal ==&lt;br /&gt;
&lt;br /&gt;
What would you like to do? Please give us a high-level description (what functionality and/or end-user use cases you're addressing) and a more detailed technical discussion (protocols that might be implemented, for example). Point out which areas you have existing knowledge and/or experience, and which areas will be novel either for you, for the Bongo Project, or present novel ideas/functionality in general. What technical skills would you use doing the project, and what skills would you gain?&lt;br /&gt;
&lt;br /&gt;
Outline a project plan as best you can. This should begin with a period of some research and/or planning, end with a brief project report, and have a number of stages in between by which progress can be measured. Goals should be simple and measurable: for example, having code reaching a certain point in terms of functionality. If you have specific dates in mind, please include them.&lt;br /&gt;
&lt;br /&gt;
Whereever possible, define the outputs you envisage, and how much effort each output would require in your estimation. Include time for writing status reports for the project, the final report, time spent with your mentor - particularly if you see specific points during the project where close mentorship would be especially important. Define the code output as clearly as possible: calculate the work effort for each feature, the supporting test suite, etc. If possible, include estimates of risk with each work product, to show how confident you are in your estimate.&lt;br /&gt;
&lt;br /&gt;
There is no right and wrong with a project plan: for example, saying that you are not confident with certain aspects of your plan is fine. We're much happier with a realistic and honest approach to planning, rather than one which tries to convince us of how successful you will be. Remember, success isn't just the avoidance of failure: success is anticipating and encountering failure, and making progress regardless - in many ways, we'll be more impressed by your plans for failure. You may also want to think about having some kind of &amp;quot;Plan B&amp;quot; where there is a risky part of your plan.&lt;br /&gt;
&lt;br /&gt;
== Some Specific Questions ==&lt;br /&gt;
&lt;br /&gt;
There are a number of questions we'd like all potential students to answer, to help form a picture of who you are, what you want to do, and why we might want to pick you.&lt;br /&gt;
&lt;br /&gt;
* Why should we pick this proposal? We want the best students and the best ideas - what makes your project the ideal combination?&lt;br /&gt;
* What impact would your project have on Bongo, and what (if any) impact would it have on free software more widely?&lt;br /&gt;
* How do you see your day-to-day work progressing, and how many hours do you estimate you will be working on your project per week? &lt;br /&gt;
* What other commitments on your time will you need to manage during the programme?&lt;br /&gt;
* Ideally, your participation in Bongo would begin before your project starts, and we hope that you would continue to participate well after your project finishes.  However, nothing is guaranteed - if your participation finished with the project, how would your contribution live on?&lt;/div&gt;</description>
			<pubDate>Sun, 09 Mar 2008 14:11:40 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Google_Summer_of_Code/Application2008</comments>		</item>
		<item>
			<title>Google Summer of Code/Ideas2008</title>
			<link>http://bongo-project.org/Google_Summer_of_Code/Ideas2008</link>
			<description>&lt;p&gt;Summary: /* A Python library for parsing natural dates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ideas for GSoC 2008 =&lt;br /&gt;
&lt;br /&gt;
These ideas represent merely a starting point. Bongo, right now, can be improved specifically in a number of key areas:&lt;br /&gt;
&lt;br /&gt;
* Contacts. Shared contacts at the moment are a pain for free software, and few clients agree on how to look up contacts. &lt;br /&gt;
* Synchronisation. There are some decent implementations of synchronisation software and protocols; it would be really useful to integrate one.&lt;br /&gt;
* Collaboration on the web. We have a number of ideas about how to collaborate on line; specifically, we want to move towards a point where you can collaborate freely with other people, whether or not they are Bongo users.&lt;br /&gt;
&lt;br /&gt;
Many of the ideas below address some of the problems in these areas, but they shouldn't be seen as a fixed list of the only things we're interested in, just a beginning.&lt;br /&gt;
&lt;br /&gt;
=== For people proposing ideas ===&lt;br /&gt;
&lt;br /&gt;
Each project should have some standard information:&lt;br /&gt;
&lt;br /&gt;
* what the specific outputs and objectives would be&lt;br /&gt;
* whether any work has already been done which can contribute to the project&lt;br /&gt;
* what skills would be necessary/desirable for the student to be able to complete the project&lt;br /&gt;
* how easy and important the project is, on a scale from 1-5 (1 being not very easy/not very important, 5 being very easy/important)&lt;br /&gt;
* who the mentor might be&lt;br /&gt;
&lt;br /&gt;
At some point we probably should split out this information into a specific page per-project, to expand on the information here.&lt;br /&gt;
&lt;br /&gt;
[[Google Summer of Code/Ideas2007|Ideas from 2007]] are also still valid.&lt;br /&gt;
&lt;br /&gt;
== General Projects ==&lt;br /&gt;
&lt;br /&gt;
These are things which Bongo could really use, but would be widely helpful outside of the Bongo project. These would suit someone who had experience of these libraries/etc. in general, and no knowledge of Bongo would be required.&lt;br /&gt;
&lt;br /&gt;
=== libical replacement ===&lt;br /&gt;
&lt;br /&gt;
Currently we use the libical library for reading/writing iCal files. However, it suffers from a number of problems: sketchy maintenance, memory leakage, potential buffer overflows. It has been forked a number of times over the years, and although it is embedded in a number of projects it is a painful code base to maintain.&lt;br /&gt;
&lt;br /&gt;
For Bongo, iCal data is often likely to be external - it will come from outside sources. Such data should be treated as potentially harmful, and the current libical is not the best framework for such an approach.&lt;br /&gt;
&lt;br /&gt;
What would be useful would be a library designed around a &amp;quot;proper&amp;quot; parsing framework, with strong guarantees to parsing safety, security and fault detection and handling. &lt;br /&gt;
&lt;br /&gt;
Skills required: C language, iCal knowledge, building safe parsers.&lt;br /&gt;
&lt;br /&gt;
Ease: 2/5&lt;br /&gt;
Importance: 1/5&lt;br /&gt;
Mentor: Alex&lt;br /&gt;
&lt;br /&gt;
=== SQLite ORM ===&lt;br /&gt;
&lt;br /&gt;
Bongo's use of SQLite is pretty straightforward and standard, but is complicated by the fact that a lot of code needs to be written to do things which should be easy, like caching queries, managing transactions and creating new queries. &lt;br /&gt;
&lt;br /&gt;
In particular, common code patterns (such as reading a line out of a database, updating the data, and then re-saving the data) is time-consuming.&lt;br /&gt;
&lt;br /&gt;
All these problems could be solved by using a code-generating ORM or ORM-like layer which takes a description of the database and creates a GObject-like API to the &amp;quot;objects&amp;quot; in the database, which handle all the details of actually reading and writing.&lt;br /&gt;
&lt;br /&gt;
The emphasis should be on utility, not the notional &amp;quot;purity&amp;quot; of OO database access. It is about saving work creating code, trusting the code to be more correct, and effectively having a higher-level API into the database. Thought should be given to how programmer time can be saved, and what common patterns there are (or, could be) in SQLite consumers. More &amp;quot;academic&amp;quot; concerns, such as forming query builders from OO data relationships, are of less interest since SQL WHERE clauses are easily written - it's the mechanics of access which is the problem.&lt;br /&gt;
&lt;br /&gt;
Skills required: Knowledge of SQL, the SQLite library, C language, OO.&lt;br /&gt;
&lt;br /&gt;
Ease: 3/5&lt;br /&gt;
Importance: 5/5&lt;br /&gt;
Mentor: Alex&lt;br /&gt;
&lt;br /&gt;
=== A Python library for parsing natural dates ===&lt;br /&gt;
&lt;br /&gt;
Ruby has an excellent little library called [http://chronic.rubyforge.org/ Chronic] which interprets English strings as dates. This is similar to the libcalcmd C library already integrated into Bongo.&lt;br /&gt;
&lt;br /&gt;
Both these solutions suffer from one large problem from our point of view: they're neither multi-cultural nor multi-lingual. For example, the English phrase &amp;quot;Let's meet a fortnight tomorrow&amp;quot; is parsed as the day after today, not fifteen days' time. &lt;br /&gt;
&lt;br /&gt;
Another substantial limitation is that they undertake to solve a problem exactly where often the answer will be ambiguous. For example, for some speakers &amp;quot;next Wednesday&amp;quot; may mean &amp;quot;Wednesday next week&amp;quot;, or &amp;quot;the Wednesday after the one coming&amp;quot; - both answers could be correct. Similarly, Japanese has a concept of &amp;quot;jun&amp;quot; which represents one third of a month - an ambiguous time range. By limiting themselves to a single date/time answer, the libraries reduce their usefulness, since they could offer the user a range of options.&lt;br /&gt;
&lt;br /&gt;
This would be a complex project to undertake, and certainly a student would have trouble completing a library which works for a single language, let alone several. This project should, therefore, take the approach of a prototype or research into how such functionality can be built.&lt;br /&gt;
&lt;br /&gt;
Outputs could include a study of a variety of language and calendar systems, with implemented parsers which can extract key pieces of data and have some notion of &amp;quot;time/date grammar&amp;quot;. It would also be useful to have some kind of representational system for date/times and ranges so that new parsers could be implemented and integrate into existing ones: for example, &amp;quot;Wednesday in Week 42&amp;quot; is a valid construct, and may be very useful for certain business users. &lt;br /&gt;
&lt;br /&gt;
Skills: Students who have knowledge of different languages, and especially calendar systems, would be best suited. Knowledge of parsing and Python is obviously also a huge advantage ;)&lt;br /&gt;
&lt;br /&gt;
Ease: 2/5&lt;br /&gt;
Important: 3/5&lt;br /&gt;
Mentor: ?Alex&lt;br /&gt;
&lt;br /&gt;
== Bongo-Specific Projects ==&lt;br /&gt;
&lt;br /&gt;
These projects are Bongo-specific, and will be of much less use to other projects.&lt;br /&gt;
&lt;br /&gt;
=== Make Bongo an OpenID provider and consumer ===&lt;br /&gt;
&lt;br /&gt;
Bongo has an auth subsystem, and creating an OpenID provider from that would be extremely simple. This would allow Bongo users to use their Bongo address as a log-in elsewhere. This would be the first milestone of this project.&lt;br /&gt;
&lt;br /&gt;
The second milestone is tougher: making Bongo an OpenID consumer. Primarily, this would involve altering the Bongo data store to recognise OpenID authentication tokens, and adding the ability to authenticate OpenID to the auth library.&lt;br /&gt;
&lt;br /&gt;
Skills required: Python, C, OpenID.&lt;br /&gt;
&lt;br /&gt;
Ease: 4/5&lt;br /&gt;
Importance: 4/5&lt;br /&gt;
Mentor: Lionel&lt;br /&gt;
&lt;br /&gt;
=== Create &amp;quot;Getting Things Done&amp;quot;-type tools for Bongo Web UI ===&lt;br /&gt;
&lt;br /&gt;
The GTD methodology is very popular, but their are few apps which provide tools for people using it - although there are various guides about how you can adapt the various features mail clients provide in order to do things according to GTD.&lt;br /&gt;
&lt;br /&gt;
This project would identify a small number of key tools which would make using GTD methods a lot easier with Bongo, and then write them as plugins to our webmail system. The main difficulty with this project will be adapting to web UI which isn't yet finished, so the student involved will have a strong influence on the development of this important part of Bongo.&lt;br /&gt;
&lt;br /&gt;
Skills required: GTD knowledge, Javascript, possibly some Python.&lt;br /&gt;
&lt;br /&gt;
Ease: 4/5&lt;br /&gt;
Importance: 3/5&lt;br /&gt;
Mentor: Lionel&lt;br /&gt;
&lt;br /&gt;
=== Renew the Bongo Python bindings ===&lt;br /&gt;
&lt;br /&gt;
Bongo currently has extensive Python bindings which give applications direct access to the store and queue, and which cover the large proportion of Bongo functionality. However, they could be improved.&lt;br /&gt;
&lt;br /&gt;
One problem is that they depend on Bongo's C libraries being available: there is no reason why these libraries couldn't be pure Python. This would give us the ability to package them separately, and release them separately, so that code for other projects could sensibly be written (sync. connectors, for example).&lt;br /&gt;
&lt;br /&gt;
Another problem is that they are very line-oriented rather than event-oriented. This makes it virtually impossible to use the out-of-band messaging from the Bongo store (since the OOB messages come at times when the Python is expecting a different response). The API should be adjusted to be more Twisted-like.&lt;br /&gt;
&lt;br /&gt;
A basic design and code for this API has already been completed, so the student will not be starting from ground zero. The student would also be expected to complete a test suite for the API.&lt;br /&gt;
&lt;br /&gt;
Skills required: Python, knowledge of networking sockets, asynchronous programming&lt;br /&gt;
&lt;br /&gt;
Ease: 5/5&lt;br /&gt;
Importance: 5/5&lt;br /&gt;
Mentor: Alex&lt;br /&gt;
&lt;br /&gt;
=== Integrate a Jabber server ===&lt;br /&gt;
&lt;br /&gt;
Instant messaging and e-mail messaging shouldn't be separate worlds; they should just be different sides of the same coin. In that vein, it would be interesting to see some possibilities of integrating an existing Jabber server into Bongo. &lt;br /&gt;
&lt;br /&gt;
This should include using the Bongo authentication system (or some authentication system which both Bongo and the Jabber server can access), taking buddy information from the user's addressbook (and/or merging with the Jabber service), and storing records of conversations over IM in the user's store so that they are able to archive and search over previous IM conversations in the same way as they can e-mails (use case: you know you spoke to Bob about the product launch, so you search all your conversations with Bob. That turns up two e-mails and a follow-up IM conversation, giving you the complete view).&lt;br /&gt;
&lt;br /&gt;
Additionally, it would be good to have a written document as an output, giving consideration to how the Jabber/IM concept of &amp;quot;Presence&amp;quot; could/should be integrated into Bongo, both at a user interface level and at a more technical level.&lt;br /&gt;
&lt;br /&gt;
Skills required: knowledge of Jabber, preferably C for the Jabber server, and some Bongo store knowledge.&lt;br /&gt;
&lt;br /&gt;
Ease: 4/5&lt;br /&gt;
Importance: 3/5&lt;br /&gt;
Mentor: Pat/Alex&lt;br /&gt;
&lt;br /&gt;
=== CardDAV support for Bongo ===&lt;br /&gt;
&lt;br /&gt;
CardDAV is the up-and-coming protocol to do server-side contacts read/write and sharing with other users. In many respects, it is very similar to CalDAV, so work on this project will probably mean that it isn't a ground-up project: the existing CalDAV code can be improved and adapted to provide CardDAV support.&lt;br /&gt;
&lt;br /&gt;
We would agree the outputs up front in addition to a CardDAV server. These outputs may include:&lt;br /&gt;
&lt;br /&gt;
* specific enhancements to the CalDAV system;&lt;br /&gt;
* a CardDAV test suite and/or exemplar CardDAV client;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Skills required: Python, knowledge of DAV, knowledge of the Bongo store&lt;br /&gt;
&lt;br /&gt;
Ease: 3/5&lt;br /&gt;
Importance: 4/5&lt;br /&gt;
Mentor: Jonny&lt;/div&gt;</description>
			<pubDate>Sun, 02 Mar 2008 09:58:53 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Google_Summer_of_Code/Ideas2008</comments>		</item>
		<item>
			<title>Documentation/Crystal/SessionInfo</title>
			<link>http://bongo-project.org/Documentation/Crystal/SessionInfo</link>
			<description>&lt;p&gt;Summary: New page: TODO  == Properties ==  === user === '''Type:''' String&amp;lt;br /&amp;gt; '''Default:''' null  Username associated with session.  === uid === '''Type:''' Integer&amp;lt;br /&amp;gt; '''Default:''' -1  Current sessi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== user ===&lt;br /&gt;
'''Type:''' String&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Username associated with session.&lt;br /&gt;
&lt;br /&gt;
=== uid ===&lt;br /&gt;
'''Type:''' Integer&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' -1&lt;br /&gt;
&lt;br /&gt;
Current session ID.&lt;br /&gt;
&lt;br /&gt;
=== authprovider ===&lt;br /&gt;
'''Type:''' String&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Authentication provider name associated with this session instance.&lt;br /&gt;
&lt;br /&gt;
=== cache ===&lt;br /&gt;
'''Type:''' [[Documentation/Crystal/Cache|Cache]]&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Current cache instance.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
&lt;br /&gt;
=== close () ===&lt;br /&gt;
&lt;br /&gt;
'''Returns:''' Boolean&lt;br /&gt;
&lt;br /&gt;
Does nothing for the moment. &amp;lt;code&amp;gt;:)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
 TODO!&lt;/div&gt;</description>
			<pubDate>Fri, 29 Feb 2008 10:54:09 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Crystal/SessionInfo</comments>		</item>
		<item>
			<title>Documentation/Crystal/HandshakeRequest</title>
			<link>http://bongo-project.org/Documentation/Crystal/HandshakeRequest</link>
			<description>&lt;p&gt;Summary: New page: HandshakeRequest manages and initialises a new remote session via the [[Documentation/Crystal/SessionInfo|SessionInfo]] object.  == Constructor ==   new HandshakeRequest (user, handler, [p...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HandshakeRequest manages and initialises a new remote session via the [[Documentation/Crystal/SessionInfo|SessionInfo]] object.&lt;br /&gt;
&lt;br /&gt;
== Constructor ==&lt;br /&gt;
&lt;br /&gt;
 new HandshakeRequest (user, handler, [password])&lt;br /&gt;
{|&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Required&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|user&lt;br /&gt;
|String&lt;br /&gt;
|Yes&lt;br /&gt;
|Username, email or similar field used to pass to the authentication provider.&lt;br /&gt;
|-&lt;br /&gt;
|handler&lt;br /&gt;
|String&lt;br /&gt;
|Yes&lt;br /&gt;
|Authentication provider on the server to use. Examples include 'store', 'openid', and so on.&lt;br /&gt;
|-&lt;br /&gt;
|Password&lt;br /&gt;
|String&lt;br /&gt;
|No&lt;br /&gt;
|Either plain-text or hashed password to be passed to the authentication provider along with the username. Not required by all authentication providers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== authSuccessful ===&lt;br /&gt;
'''Type:''' Function&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Function to run when the handshake has completed and run without fail. The function will be run with a single argument, the [[Documentation/Crystal/SessionInfo|SessionInfo]] object for the newly created session.&lt;br /&gt;
&lt;br /&gt;
=== authFailure ===&lt;br /&gt;
'''Type:''' Function&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Function to be run when the handshake failed on the server. This is generally ''not'' a web exception; use the &amp;lt;code&amp;gt;requestFailure&amp;lt;/code&amp;gt; property for that purpose. This function will be called with two arguments, the error code, followed by the error message (en_US only). Please base internationalisable error messages off the error code, rather than the message returned; it should only be used for debugging/testing.&lt;br /&gt;
&lt;br /&gt;
=== requestFailure ===&lt;br /&gt;
'''Type:''' Function&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Function to be run when the data query encounters an error. This can be assumed to be a web-related exception. The function will be called with the same arguments as run by MooTools's Request onFailure event. See http://docs12b.mootools.net/Request/Request#Request:events for more information.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
&lt;br /&gt;
=== run () ===&lt;br /&gt;
&lt;br /&gt;
'''Returns:''' nothing&lt;br /&gt;
&lt;br /&gt;
Runs the current HandshakeRequest instance asynchronously. Calls authComplete when the user has been successfully authenticated and a new session created, and authFailure if there was an authentication error.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
 var a = new HandshakeRequest (&amp;quot;rupert&amp;quot;, &amp;quot;store&amp;quot;, &amp;quot;mypassword&amp;quot;);&lt;br /&gt;
 a.authSuccessful = onAuthComplete;&lt;br /&gt;
 a.run ();&lt;/div&gt;</description>
			<pubDate>Fri, 29 Feb 2008 10:06:48 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Crystal/HandshakeRequest</comments>		</item>
		<item>
			<title>Google Summer of Code</title>
			<link>http://bongo-project.org/Google_Summer_of_Code</link>
			<description>&lt;p&gt;Summary: New page: == Summer of Code ==  === 2008 ===  We're currently working on this.  * [[Google Summer of Code/Ideas2008|Propose some ideas]] * [[Google Summer of Code/Application2008|Proposed applicatio...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summer of Code ==&lt;br /&gt;
&lt;br /&gt;
=== 2008 ===&lt;br /&gt;
&lt;br /&gt;
We're currently working on this.&lt;br /&gt;
&lt;br /&gt;
* [[Google Summer of Code/Ideas2008|Propose some ideas]]&lt;br /&gt;
* [[Google Summer of Code/Application2008|Proposed application form]]&lt;br /&gt;
&lt;br /&gt;
=== 2007 ===&lt;br /&gt;
&lt;br /&gt;
We weren't successful this year :( But, you can review [[Google Summer of Code/Ideas2007|the ideas]] and [[Google Summer of Code/Application2007|the proposed application form]].&lt;/div&gt;</description>
			<pubDate>Fri, 29 Feb 2008 09:23:24 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Google_Summer_of_Code</comments>		</item>
		<item>
			<title>Web Stack Todo</title>
			<link>http://bongo-project.org/Web_Stack_Todo</link>
			<description>&lt;p&gt;Summary: New page: * Split up mail stuff from mail views.py into separate module * Implement templating system into utils.py, so that plugins can use them later * Test cases (possibly auto-test cases/tools?)...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Split up mail stuff from mail views.py into separate module&lt;br /&gt;
* Implement templating system into utils.py, so that plugins can use them later&lt;br /&gt;
* Test cases (possibly auto-test cases/tools?)&lt;br /&gt;
* Docs, docs, docs!&lt;br /&gt;
* Create module loader stuff, so that we can have any module and get it to plug into the core and let it setup its URL routing (pathing), own modules, etc. See main 'Crystal' section (middle) on diagram: http://mediati.org/temp/more-avocado.png&lt;br /&gt;
* Implement mail-sending code&lt;br /&gt;
* Implement calendaring code&lt;/div&gt;</description>
			<pubDate>Tue, 26 Feb 2008 09:55:03 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Web_Stack_Todo</comments>		</item>
		<item>
			<title>Documentation/Crystal/DataQuery</title>
			<link>http://bongo-project.org/Documentation/Crystal/DataQuery</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DataQuery is basically a simple wrapper around a XMLHttpRequest, that handles URL structure, error handling and caching transparently.&lt;br /&gt;
&lt;br /&gt;
== Constructor ==&lt;br /&gt;
&lt;br /&gt;
 new DataQuery (handler, session, arguments, cacheable, ident)&lt;br /&gt;
{|&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Required&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|handler&lt;br /&gt;
|String&lt;br /&gt;
|Yes&lt;br /&gt;
|Describes the server handler that will take the request and run it.&lt;br /&gt;
|-&lt;br /&gt;
|session&lt;br /&gt;
|[[Documentation/Crystal/SessionInfo|SessionInfo]]&lt;br /&gt;
|Yes&lt;br /&gt;
|The current authenticated session to use requests with.&lt;br /&gt;
|-&lt;br /&gt;
|arguments&lt;br /&gt;
|Associative array&lt;br /&gt;
|Yes&lt;br /&gt;
|Describes the optional arguments to pass along with the web request to the server as JSON. There are a few parameters that are used directly by the DataQuery object itself. These include:&lt;br /&gt;
* &amp;lt;code&amp;gt;urlargs&amp;lt;/code&amp;gt;: URL to append to the end of the original request path. For example, if the original request path is http://mysite.com/sessionid/mail/, the value of &amp;lt;code&amp;gt;urlargs&amp;lt;/code&amp;gt; would be appended to that string and used as the URI when the request is run.&lt;br /&gt;
|-&lt;br /&gt;
|cacheable&lt;br /&gt;
|Boolean&lt;br /&gt;
|No&lt;br /&gt;
|Whether or not the result of the DataQuery should be cacheable or not.&lt;br /&gt;
|-&lt;br /&gt;
|ident&lt;br /&gt;
|String&lt;br /&gt;
|No&lt;br /&gt;
|Key used against the arguments parameter to uniquely identify the current DataQuery.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
=== dataComplete ===&lt;br /&gt;
'''Type:''' Function&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Function to run when data query has completed and has data. The function will be run with a single argument, the decoded JSON data.&lt;br /&gt;
&lt;br /&gt;
=== dataFailure ===&lt;br /&gt;
'''Type:''' Function&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' null&lt;br /&gt;
&lt;br /&gt;
Function to be run when the data query encounters an error. This can be assumed to be a web-related exception. The function will be called with two arguments, the error code, followed by the error message (en_US only). Please base internationalisable error messages off the error code, rather than the message returned; it should only be used for debugging/testing.&lt;br /&gt;
&lt;br /&gt;
=== cacheable ===&lt;br /&gt;
'''Type:''' Boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Default:''' false&lt;br /&gt;
&lt;br /&gt;
Whether or not the results from the data request should be cacheable.&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
&lt;br /&gt;
=== run () ===&lt;br /&gt;
&lt;br /&gt;
'''Returns:''' nothing&lt;br /&gt;
&lt;br /&gt;
Executes the current DataQuery instance asynchronously. Calls dataComplete when the data has been fetched, and dataFailure if there was an error.&lt;br /&gt;
&lt;br /&gt;
A HTTP GET request is performed by the browser's XMLHttpRequest object.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
 var q = new DataQuery (&amp;quot;mail&amp;quot;, [[Documentation/Crystal/SessionInfo|session]], { mailbox: &amp;quot;INBOX&amp;quot; };&lt;br /&gt;
 q.dataComplete = function (msg) { alert (msg); };&lt;br /&gt;
 q.dataFailure = function (code, msg) { alert (&amp;quot;Error occured: (&amp;quot; + code + &amp;quot;): &amp;quot; + msg); };&lt;br /&gt;
 q.run (); // run worker async&lt;/div&gt;</description>
			<pubDate>Tue, 26 Feb 2008 08:57:52 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Crystal/DataQuery</comments>		</item>
		<item>
			<title>Documentation/Crystal</title>
			<link>http://bongo-project.org/Documentation/Crystal</link>
			<description>&lt;p&gt;Summary: /* Server-side API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Client-side API ==&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
* [[Documentation/Crystal/DataQuery|DataQuery]]&lt;br /&gt;
* [[Documentation/Crystal/HandshakeRequest|HandshakeRequest]]&lt;br /&gt;
* [[Documentation/Crystal/DateFormatter|DateFormatter]]&lt;br /&gt;
* [[Documentation/Crystal/Gettext|Gettext]]&lt;br /&gt;
* [[Documentation/Crystal/Cache|Cache]]&lt;br /&gt;
* [[Documentation/Crystal/DataQueryParamRegister|DataQueryParamRegister]]&lt;br /&gt;
&lt;br /&gt;
=== Data types ===&lt;br /&gt;
&lt;br /&gt;
* [[Documentation/Crystal/SessionInfo|SessionInfo]]&lt;br /&gt;
&lt;br /&gt;
== Data Transport ==&lt;br /&gt;
&lt;br /&gt;
TODO.&lt;br /&gt;
&lt;br /&gt;
== Server-side API ==&lt;/div&gt;</description>
			<pubDate>Tue, 26 Feb 2008 08:44:01 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Crystal</comments>		</item>
		<item>
			<title>Future Ideas</title>
			<link>http://bongo-project.org/Future_Ideas</link>
			<description>&lt;p&gt;Summary: New page: Here are some ideas which we might be working on in the future:  * [[Avocado]] - our new web UI for Bongo users. * [[Flasher]]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some ideas which we might be working on in the future:&lt;br /&gt;
&lt;br /&gt;
* [[Avocado]] - our new web UI for Bongo users.&lt;br /&gt;
* [[Flasher]]&lt;/div&gt;</description>
			<pubDate>Sat, 19 Jan 2008 07:34:40 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Future_Ideas</comments>		</item>
		<item>
			<title>Avocado</title>
			<link>http://bongo-project.org/Avocado</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Currently in the planning stages, '''Avocado''' is the web UI, intended to replace [[Dragonfly]]. [[Crystal]] makes up the server backend, and the Javascript message transport API.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Code is currently under development. We're hoping to put this in the next major release. Basic read-only mail support is working. Some key features underway:&lt;br /&gt;
* Pagination&lt;br /&gt;
* Mail composition&lt;br /&gt;
* Setting properties on mail (eg read/unread, staring).&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the brave, you can try out Avocado [[installing Crystal]] and then moving on to [[installing Avocado]] on top of it.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
This section won't be complete until we finish a prelim release. :)&lt;br /&gt;
&lt;br /&gt;
=== Core plugins ===&lt;br /&gt;
&lt;br /&gt;
As Avocado is modular in design, the core of Avocado would only contain the interfaces and API, as well as a GUI skeleton. The following plugins would be available together with the core Avocado release to provide some sort of functionality to the end user:&lt;br /&gt;
&lt;br /&gt;
* [[/Mail|Mail]] (in progress)&lt;br /&gt;
* [[/Calendar|Calendar]]&lt;br /&gt;
* [[/Summary|Summary]]&lt;br /&gt;
* [[/Contacts|Contacts]]&lt;br /&gt;
* [[/Instant Messaging|Instant Messaging]]&lt;br /&gt;
&lt;br /&gt;
== Some planning stuff that needs cleanup ==&lt;br /&gt;
&lt;br /&gt;
=== Target userbase ===&lt;br /&gt;
&lt;br /&gt;
* Personal computers?&lt;br /&gt;
* Mobile devices?&lt;br /&gt;
* Non-Bongo users?&lt;br /&gt;
&lt;br /&gt;
=== Project aim ===&lt;br /&gt;
&lt;br /&gt;
To provide a clean, well thoughtout, accessible web interface for &amp;lt;target userbase&amp;gt;, solving some portion of the issues presented in the 'Problems' section below.&lt;br /&gt;
&lt;br /&gt;
=== Problems ===&lt;br /&gt;
&lt;br /&gt;
There are several problems associated with current email and calendaring clients. Design for these clients has not changed over the past few years, to keep up to user's changing demands. This section describes several of these issues.&lt;br /&gt;
&lt;br /&gt;
==== Information overload ====&lt;br /&gt;
&lt;br /&gt;
We need to provide a way to cut down the information displayed to the user to only the things he/she needs or wants.&lt;br /&gt;
&lt;br /&gt;
==== Keeping track ====&lt;br /&gt;
&lt;br /&gt;
Many users get lots of email everyday, and a majority of the time, they are not responded to immediately. This could be because the user is awaiting on something or somebody else, or need to attend to more important issues. It is common for the user to become 'lost' under the volume of mail they recieve and forget about the other emails they need to respond to. Other people have lots of calendar appointments, and it often becomes hard to manage all their appointments, especially when you need to co-ordinate things with others.&lt;br /&gt;
&lt;br /&gt;
==== Locating information ====&lt;br /&gt;
&lt;br /&gt;
It often becomes hard to track down information quickly. Email search is generally quite limited and slow, subjects aren't always useful, and email does not contain all that much context. Some users sort their mail into 'folders' as to make it easier to find some information in the future. However, this adds a management overhead to their day-to-day mail - some people spend an inordinate amount of time cleaning up their inbox into folders.&lt;br /&gt;
&lt;br /&gt;
==== Disjointed workflow ====&lt;br /&gt;
&lt;br /&gt;
Relationships between objects are almost non-existant in some email clients. Calendar items, emails and chats are seen as seperate objects, when they could quite easily relate to the same thing. Creating an appointment after discussing times and a location with your contacts via email and IM requires you to manually collate the information about possible times, decide what would be best for everyone, setup a calendar event, email everyone about the final date/time, and get them to confirm. This honestly requires a lot of work on the part of the user; possibly a reason eletronic calendaring is not utilised by many.&lt;br /&gt;
&lt;br /&gt;
==== Staying in sync ====&lt;br /&gt;
&lt;br /&gt;
Many people use mobile devices, as well as many new Web 2.0 websites. These all use slightly different sets of data. We should be able to share all this information, and collate this into something useful. For example, it takes a while for you to manually import all your contact information from your mobile phone; you might be able to gather data you don't currently have about your contact(s) - for example, if you only know the name of a representative from Yoyodyne Corp., you could sync with her contact information, and automatically fill in her work phone number, address etc.&lt;br /&gt;
&lt;br /&gt;
==== Overloading email ====&lt;br /&gt;
&lt;br /&gt;
Although email was originally designed as a asynchronus communication tool, it is now being used for other tasks, including information management, task management, contact management, record keeping and file transfer.&lt;br /&gt;
&lt;br /&gt;
=== Observations ===&lt;br /&gt;
&lt;br /&gt;
* Flags are useless.&lt;br /&gt;
* Users don't like automatic filing systems.&lt;br /&gt;
* Users can be classified as &amp;quot;No-filers&amp;quot;, &amp;quot;spring cleaners&amp;quot; or &amp;quot;frequent filers&amp;quot;.&lt;br /&gt;
* Users are often control freaks when it comes to displaying information.&lt;br /&gt;
* Programs should not force users into a particular way of organising emails, however, it can be allowed to nudge them in a particular direction (this should be editable as a setting if it could be coming annoying, however).&lt;br /&gt;
* Users often mistrust filters.&lt;br /&gt;
* If a message is out of sight, then the user is very likely to forget the message ever existed.&lt;br /&gt;
* Todos are very important, and should be linked to mail; with or without a due date.&lt;br /&gt;
* Almost all email in users' inboxes that are not classified as &amp;quot;frequent filers&amp;quot; can be deleted if it has been read.&lt;br /&gt;
&lt;br /&gt;
=== Ideas ===&lt;br /&gt;
&lt;br /&gt;
Feel free to jot down your ideas here!&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Component&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Helps solve&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Thread Arcs&lt;br /&gt;
|Thread arcs are a compact overview of the other messages in a thread and their relationships to each other. One can navigate to these other messages via the visualisation without having to go back to the Inbox list.&lt;br /&gt;
|Locating information&lt;br /&gt;
|-&lt;br /&gt;
|All&lt;br /&gt;
|Relation-based suggestive actions&lt;br /&gt;
|Allow objects (emails, calendar items, contacts) to have other, similar items linked together. Items created by automatic actions (eg clicking on a date in an email to make an appointment) should generally be automatically linked, so that the email and appointment are related. Provide a way to see other likely related objects by performing a search in the background and display related results.&lt;br /&gt;
|Locating information, keeping track, disjointed workflow&lt;br /&gt;
|-&lt;br /&gt;
|All&lt;br /&gt;
|Context-based suggestive actions&lt;br /&gt;
|Provide links to start actions based on the context of the link/sentence/object. Dates in emails and chats (eg &amp;quot;tomorrow&amp;quot;, &amp;quot;at 7PM&amp;quot;) should be clickable to make appointments (with the email referenced, see above); names of contacts should provide 'contact cards' with the ability to initiate chat, etc.&lt;br /&gt;
|Disjointed workflow&lt;br /&gt;
|-&lt;br /&gt;
|Mail, Calendar&lt;br /&gt;
|Object Sources&lt;br /&gt;
|Many applications use email as a notification mechanism. For example, changes in a collaborative web site (eg a wiki), or transaction confirmations (like an Amazon book purchase) trigger automatic email messages. It could be possible to integrate each of these sources into the message view, so that you could have your RSS feeds or purchase progess alongside your email, while still being to toggle these sources on and off without affecting mail. You can also search and sort through these seperately.&lt;br /&gt;
|Information overload, locating information, overloading email&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Weighted messages&lt;br /&gt;
|Emails could be weighted in three categories: contacts with/without a star; factor of whether or not the user has replied to the conversation (making it more important if he/she has); and weighting conversations in reverse proportion to the number of recipients the original email received (however, this shouldn't not change a message's weighting as much as the other two categories) - this enables removal of low content high noise conversations such as mailing list flames. This could be also be weighed contually on all new messages to the conversation? We could discuss the exact algorithm when the time comes to implement it.&lt;br /&gt;
|Information overload, keeping track&lt;br /&gt;
|-&lt;br /&gt;
|Search&lt;br /&gt;
|Instant filtered search&lt;br /&gt;
|Instant 'type-and-refine' search is quite often fast and useful to the end user, as it enables them to quickly navigate to whatever they need using the least amount of effort. They can instantly see whether a keyword is returning the right results, and if it is, it allows the user to not type more than is required to get the search results they need. Search should be provided by filtering both the current view, and searching the entire system; the option provided via a dropdown or radio button. The view should not change if filtering, merely removing non-matching items.&lt;br /&gt;
|Information overload, locating information&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Dual-mail view&lt;br /&gt;
|As many users primarily 'live' in their inbox, it makes sense to keep this the most relevant to the user. Only unread messages would ever live in the Inbox, read messages marked as done or archived live in Archived.  Messages can be in other states, such as Postponed, etc. See the Inbox Zero idea below for more information. &lt;br /&gt;
|Information overload, keeping track&lt;br /&gt;
|-&lt;br /&gt;
|Mail&lt;br /&gt;
|Inbox Zero&lt;br /&gt;
|Basically, provide mail to be in all the states (actions) he described. Marking as done makes it read (archived), deleted etc. I should probably fill this in and be more descriptive, but it's getting late.&lt;br /&gt;
|Information overload, keeping track&lt;br /&gt;
|}&lt;/div&gt;</description>
			<pubDate>Sun, 16 Dec 2007 07:09:44 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Avocado</comments>		</item>
		<item>
			<title>Development/Design/Agents/AgentIdeas</title>
			<link>http://bongo-project.org/Development/Design/Agents/AgentIdeas</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Agent Ideas ==&lt;br /&gt;
&lt;br /&gt;
This is a list of potential ideas that we might want to implement as Agents.&lt;br /&gt;
This is drawn from existing functionality, functions other people have, etc.&lt;br /&gt;
This should help us design new agents for the system which can meet many, but not all, needs.&lt;br /&gt;
&lt;br /&gt;
=== Bongo Agents ===&lt;br /&gt;
&lt;br /&gt;
==== Mail Management Agent / Assistant ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After reading Alex's mugshot post about &amp;quot;I want Sandy&amp;quot; We thought that it would be cool to have a similar type of agent in bongo that would do this for us.  http://www.boingboing.net/2007/11/14/i-want-sandy-perfect.html&lt;br /&gt;
&lt;br /&gt;
Alex mentioned some things in IRC which I will list here&lt;br /&gt;
* An assistant type widget aka &amp;quot;clippy&amp;quot; in Dragonfly that will alert you when you need it&lt;br /&gt;
* when not in Dragonfly you email yourself to get things added or deleted from your assistant&lt;br /&gt;
* Allow others to interact with your assistant&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
* Dragonfly&lt;br /&gt;
** While logged in to Dragonfly the assistant will notify you via a pop-up about upcoming appointments or events that are in your diary/ calendar&lt;br /&gt;
** When you create a new appointment in the calendar you can select to have the assistant monitor it and do things to it as specific times or dates&lt;br /&gt;
** When the assistant appears you have the ability to reschedule the appointment with all the invited people&lt;br /&gt;
&lt;br /&gt;
* Incoming e-mail&lt;br /&gt;
** When you receive a specially formatted e-mail via SMTP it is sent to your assistant and it deals with the request&lt;br /&gt;
** you can send your assistant e-mail to request information they control&lt;br /&gt;
*** Appointments&lt;br /&gt;
*** Anniversaries&lt;br /&gt;
** Auto responds when you are away as booked by your calender&lt;br /&gt;
** You can add or remove things from your diary be sending yourself an email&lt;br /&gt;
** You can manage appointments and events via email e.g. move, reschedule, etc.&lt;br /&gt;
&lt;br /&gt;
* Other Bongo users&lt;br /&gt;
** When other bongo users schedule appointments or events with yourself your Assistant can respond with your busy free schedule via e-mail.&lt;br /&gt;
** Other bongo users can query your Assistant to see if you are available via e-mail&lt;/div&gt;</description>
			<pubDate>Thu, 15 Nov 2007 13:39:29 GMT</pubDate>			<dc:creator>Lhaig</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design/Agents/AgentIdeas</comments>		</item>
		<item>
			<title>Bongo-config</title>
			<link>http://bongo-project.org/Bongo-config</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;bongo-config&amp;lt;/code&amp;gt;''' is a new Bongo utility that enables you to do several things:&lt;br /&gt;
&lt;br /&gt;
* User administration, up to and including:&lt;br /&gt;
** Adding and removing users&lt;br /&gt;
** Changing users passwords&lt;br /&gt;
* Install base Bongo data (used during inital setup and reinstalls)&lt;br /&gt;
* Generate cryptography information for Bongo&lt;br /&gt;
* Check versioning information of Bongo online&lt;br /&gt;
* Update timezone information on the local system&lt;/div&gt;</description>
			<pubDate>Mon, 29 Oct 2007 07:43:08 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Bongo-config</comments>		</item>
		<item>
			<title>Bongo-manager</title>
			<link>http://bongo-project.org/Bongo-manager</link>
			<description>&lt;p&gt;Summary: New page: {{Stub}}  bongo-manager is an application which is used by Bongo to launch the [[agent]]s as specified by the user. It is similar in a way to init as it starts all the daemons before provi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
bongo-manager is an application which is used by Bongo to launch the [[agent]]s as specified by the user. It is similar in a way to init as it starts all the daemons before providing you with a usable system.&lt;/div&gt;</description>
			<pubDate>Mon, 29 Oct 2007 07:40:00 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Bongo-manager</comments>		</item>
		<item>
			<title>Agent</title>
			<link>http://bongo-project.org/Agent</link>
			<description>&lt;p&gt;Summary: New page: An '''agent''' is a standalone piece of software in Bongo, similar to a Unix daemon. Agents in Bongo tend to be very specialised and light-weight compared to their Unix counterparts: for e...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An '''agent''' is a standalone piece of software in Bongo, similar to a Unix daemon. Agents in Bongo tend to be very specialised and light-weight compared to their Unix counterparts: for example, a Unix MTA may speak SMTP, run a mail queue and deliver mail. In Bongo, that is separated into three separate agents.&lt;br /&gt;
&lt;br /&gt;
== Bongo's agents ==&lt;br /&gt;
&lt;br /&gt;
Bongo comes with several agents. These include:&lt;br /&gt;
&lt;br /&gt;
* an [[SMTP]] agent&lt;br /&gt;
* an [[IMAP]] agent&lt;br /&gt;
* an antivirus agent&lt;br /&gt;
* a [[queue]] agent&lt;br /&gt;
* a [[store]] agent&lt;br /&gt;
* a [[POP3]] agent&lt;br /&gt;
&lt;br /&gt;
among others. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Writing your own ==&lt;br /&gt;
&lt;br /&gt;
Check out the 'generic' agent (in &amp;lt;code&amp;gt;src/agents/generic&amp;lt;/code&amp;gt;) for some information as to how you should write your agent.&lt;/div&gt;</description>
			<pubDate>Mon, 29 Oct 2007 07:18:51 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Agent</comments>		</item>
		<item>
			<title>Hawkeye</title>
			<link>http://bongo-project.org/Hawkeye</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
Hawkeye refers to the web administration component of Bongo. Development began around April, headed by Alex Hudson. Alex Hixon is now also currently a major contributer to the interface, providing a new layout and agent handlers.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
Hawkeye supports the following features:&lt;br /&gt;
&lt;br /&gt;
* Modifying agent configuration on-the-fly.&lt;br /&gt;
* Enabling and disabling agents.&lt;br /&gt;
* Viewing system status and possible updates.&lt;br /&gt;
* Backing up and restoring system data.&lt;br /&gt;
&lt;br /&gt;
The following features are planned but not yet implemented:&lt;br /&gt;
&lt;br /&gt;
* Ability to add/modify users, both normal users and administrators.&lt;br /&gt;
* Functionality to stop/start/restart Bongo from within the interface.&lt;br /&gt;
* Functions to change default Dragonfly configuration and constraints.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Hawkeye-desktop.png]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
No documentation for Hawkeye is available at this stage.&lt;/div&gt;</description>
			<pubDate>Mon, 29 Oct 2007 06:55:02 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Hawkeye</comments>		</item>
		<item>
			<title>Crystal</title>
			<link>http://bongo-project.org/Crystal</link>
			<description>&lt;p&gt;Summary: Nuke most content.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
Crystal is the codename for the core of the new web core for Bongo, which is currently in development. It is the intended successor of the [[Dragonfly]], working along together with [[Avocado]].&lt;/div&gt;</description>
			<pubDate>Mon, 29 Oct 2007 06:38:49 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Crystal</comments>		</item>
		<item>
			<title>Configuration/Bongo/Legacy</title>
			<link>http://bongo-project.org/Configuration/Bongo/Legacy</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Set-up Bongo ==&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;tt&amp;gt;bongo-setup&amp;lt;/tt&amp;gt; (this needs to be run with root privileges):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$prefix/sbin/bongo-setup&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bongo-setup&amp;lt;/tt&amp;gt; has a number of options. You can change the ports where services will be started and configure Bongo to run against a corporate directory. By default, Bongo will be configured to run SMTP, IMAP, and POP3 on their standard ports.&lt;br /&gt;
&lt;br /&gt;
#If &amp;lt;tt&amp;gt;bongo-setup&amp;lt;/tt&amp;gt; terminates after the main introduction, with the message &amp;quot;''ERROR: A possibly stale bongo-manager pid file has been found.''&amp;quot;, then this means that Bongo is already started. To stop Bongo, follow the relevant instructions below depending on how you installed Bongo:&lt;br /&gt;
#:;Compiled from source:&lt;br /&gt;
#::&amp;lt;pre&amp;gt;sudo killall bongo-manager&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:;Debian or Ubuntu packages:&lt;br /&gt;
#::&amp;lt;pre&amp;gt;sudo /etc/init.d/bongoproject stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:;Fedora, CentOS or Redhat Enterprise Linux packages:&lt;br /&gt;
#::&amp;lt;pre&amp;gt;sudo service bongo stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:;SUSE packages:&lt;br /&gt;
#::&amp;lt;pre&amp;gt;sudo /etc/rc.d/init.d/bongo stop&amp;lt;/pre&amp;gt;&lt;br /&gt;
#When asked &amp;quot;''Which driver would you like to use for the directory?''&amp;quot;, although there is a &amp;lt;tt&amp;gt;file&amp;lt;/tt&amp;gt; option, to allow running without an LDAP server, it's advised to use the &amp;lt;tt&amp;gt;managed-ldap&amp;lt;/tt&amp;gt; option: that works much better, and you may encounter odd bugs otherwise. '''Note''': This needs the &amp;lt;tt&amp;gt;slapd&amp;lt;/tt&amp;gt; package installed.&lt;br /&gt;
#You should accept the default for the question &amp;quot;''Enter file for importing objects:''&amp;quot; unless you know what you're doing here.&lt;br /&gt;
#When asked ''Enter the hostname for the mail server hosting Bongo [localhost.localdomain]:'' one should probably accept the default unless you know what you are doing.&lt;br /&gt;
#When asked ''Enter the domain name that Bongo will host [localhost.localdomain]:'' one should enter a single domain without any prefixes like &amp;lt;tt&amp;gt;www.&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;mail.&amp;lt;/tt&amp;gt;. Examples of correct domain names are: &amp;lt;tt&amp;gt;bongo-project.org&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;debian.org&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;berlios.de&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#When asked ''Enter IP address on which to run Bongo [127.0.0.1]:'' one should probably accept the default.&lt;br /&gt;
#You should not be alarmed at the &amp;quot;''ERROR: Could not add attribute BongoDomain''&amp;quot; message. This always occurs.&lt;br /&gt;
&lt;br /&gt;
== Install Bongo Configuration ==&lt;br /&gt;
&lt;br /&gt;
Simply execute:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$prefix/sbin/bongo-config install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Change admin password and add a user ==&lt;br /&gt;
&lt;br /&gt;
Firstly, you should change the password of the admin user. It defaults to &amp;quot;&amp;lt;tt&amp;gt;bongo&amp;lt;/tt&amp;gt;&amp;quot;. This can be changed by executing (as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$prefix/sbin/bongo-admin user-passwd admin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will now need to add a new user to continue. Execute the following command (as root) to add a demo user with username &amp;quot;rupert&amp;quot;, password &amp;quot;bongo&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$prefix/sbin/bongo-admin demo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Users can be added/removed/edited later on by using the &amp;lt;tt&amp;gt;bongo-admin&amp;lt;/tt&amp;gt; command later. [[Command/bongo-admin|Click here for more information]].&lt;br /&gt;
&lt;br /&gt;
== Start Bongo ==&lt;br /&gt;
&lt;br /&gt;
If you compiled Bongo from source, follow the ''Source'' section, otherwise follow the ''Packages'' section:&lt;br /&gt;
&lt;br /&gt;
==== Source ====&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;tt&amp;gt;bongo-manager&amp;lt;/tt&amp;gt; (as root), which takes no arguments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$prefix/sbin/bongo-manager&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bongo is now running! '''Note''': This will run in the current terminal- to run it as a daemon, add an ampersand after the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$prefix/sbin/bongo-manager &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
&lt;br /&gt;
;Debian or Ubuntu : &amp;lt;pre&amp;gt;sudo /etc/init.d/bongoproject start&amp;lt;/pre&amp;gt;&lt;br /&gt;
;Fedora, CentOS or Redhat Enterprise Linux : &amp;lt;pre&amp;gt;sudo service bongo start&amp;lt;/pre&amp;gt;&lt;br /&gt;
;SUSE : &amp;lt;pre&amp;gt;sudo /etc/rc.d/init.d/bongo start&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 27 Oct 2007 23:21:41 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Configuration/Bongo/Legacy</comments>		</item>
		<item>
			<title>Documentation/Architecture</title>
			<link>http://bongo-project.org/Documentation/Architecture</link>
			<description>&lt;p&gt;Summary: /* Core binaries */ speiling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
Bongo is made up of several components:&lt;br /&gt;
&lt;br /&gt;
* Core libraries (msgapi, etc)&lt;br /&gt;
* Core binaries/utilities (bongo-manager, bongo-config, ...)&lt;br /&gt;
* Agents (bongosmtp, bongoimap, ...)&lt;br /&gt;
* [[Dragonfly]], the email/calendar web interface&lt;br /&gt;
* [[Hawkeye]], the web administration interface&lt;br /&gt;
&lt;br /&gt;
A diagram showing the relationship between these components would be awesome here.&lt;br /&gt;
&lt;br /&gt;
== Core binaries ==&lt;br /&gt;
&lt;br /&gt;
The core binaries that come with Bongo include:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;[[bongo-manager]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[bongo-config]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[bongo-backup]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[bongo-standalone]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[bongo-storetool]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are others, but they are generally un-used or deprecated.&lt;/div&gt;</description>
			<pubDate>Sat, 27 Oct 2007 01:19:16 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Architecture</comments>		</item>
		<item>
			<title>Welcome to Bongo!</title>
			<link>http://bongo-project.org/Welcome_to_Bongo%21</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;welcome-msg&amp;quot;&amp;gt;&lt;br /&gt;
''&amp;quot;Bongo is an easy-to-use mail and calendar system, offering a simple yet powerful user interface. The goal is to make sharing, organisation, and communication simpler, quicker, and more useful.&amp;quot;''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Welcome_boxes}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;splits&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;split-half&amp;quot; style=&amp;quot;width:60%;&amp;quot;&amp;gt;&lt;br /&gt;
=== What is Bongo? ===&lt;br /&gt;
We're creating fun and simple e-mail &amp;amp; calendaring software. We want our inboxes to be usable again: e-mail should be a useful tool, not a productivity killer. We want to be able to use our calendars to organise our lives, and we want other people to be able to interact with us through it whether they use Bongo or not. &lt;br /&gt;
&lt;br /&gt;
=== Sounds good? ===&lt;br /&gt;
&lt;br /&gt;
You're welcome to download Bongo, try it out, let us know what you think. We'd like you to get more involved, though! We welcome all feedback, and you don't need to be able to hack on code to talk to us. &lt;br /&gt;
&lt;br /&gt;
We have an [[FAQ]], of course, and a guide on how to [[installation|install]] - then you can find out about [[Getting Involved|getting involved]] and how to become part of the community!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;split-half&amp;quot; style=&amp;quot;width:25%&amp;quot;&amp;gt;&lt;br /&gt;
{{Planet}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</description>
			<pubDate>Mon, 22 Oct 2007 10:13:15 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Welcome_to_Bongo%21</comments>		</item>
		<item>
			<title>Releases/0.3.0-blockers</title>
			<link>http://bongo-project.org/Releases/0.3.0-blockers</link>
			<description>&lt;p&gt;Summary: /* Accepted blockers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== M3 Release blockers ==&lt;br /&gt;
&lt;br /&gt;
=== Accepted blockers ===&lt;br /&gt;
&lt;br /&gt;
Please don't move stuff to this list unless you were given permission by so_solid_moo :)&lt;br /&gt;
&lt;br /&gt;
* bongocollector segfaults [FIXED]&lt;br /&gt;
* hawkeye must be useful, get rid of the Javascript&lt;br /&gt;
* backup configuration set should be possible&lt;br /&gt;
* bongo-config should be scriptable and/or load backup sets&lt;br /&gt;
* bongosmtp dies with 'threads outstanding' messages&lt;br /&gt;
* e-mail bounces get eaten (confirm? may be fixed)&lt;br /&gt;
* dragonfly doesn't handle attachments well (#10247)&lt;br /&gt;
* antivirus configuration isn't right (#10239)&lt;br /&gt;
* zero-byte files in bongo queue (#10009)&lt;br /&gt;
&lt;br /&gt;
=== Proposed blockers ===&lt;br /&gt;
&lt;br /&gt;
* bongocalcmd cannot connect to the queue&lt;br /&gt;
* running under Apache requires certain files to be apache-readable&lt;br /&gt;
* logging in key agents&lt;/div&gt;</description>
			<pubDate>Fri, 12 Oct 2007 08:28:57 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Releases/0.3.0-blockers</comments>		</item>
		<item>
			<title>Releases/0.3.0</title>
			<link>http://bongo-project.org/Releases/0.3.0</link>
			<description>&lt;p&gt;Summary: /* Bongo M3 (0.3.0) Release notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Bongo M3 (0.3.0) Release notes =&lt;br /&gt;
&lt;br /&gt;
'''Further updates: 0.3.1'''&lt;br /&gt;
&lt;br /&gt;
This release has received a minor update, and you are advised to use that version instead of the original. These notes still apply, but the links to download have been updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warning-alpha&amp;quot; style=&amp;quot;margin-top: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
Bongo is currently alpha-quality software.  It is under active development and is not yet ready for production servers. &lt;br /&gt;
&lt;br /&gt;
However, we encourage you to try it out in a test environment and let us know what you think!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About Bongo ==&lt;br /&gt;
&lt;br /&gt;
Bongo is a project to create fun and simple mail &amp;amp; calendaring software. As well as providing a well-featured but extensible set of server software, it also comes with a user-friendly web interface.&lt;br /&gt;
&lt;br /&gt;
Although Bongo is a young project, the software itself has a long pedigree going back to commercial products many years old. The core code isn't new, but the ideas we have and the direction we're taking are: we aim to provide a compelling alternative to other systems out there, not to compete directly with them.&lt;br /&gt;
&lt;br /&gt;
We have a roadmap laid out to our 1.0 release, which we hope will appeal primarily to people who are interested in features which make email and calendars more useful, rather than those interested in &amp;quot;groupware&amp;quot; or &amp;quot;enterprise communication platforms&amp;quot;. We're particularly aiming 1.0 at power home users, small organisations/businesses, and people providing mail services for third parties.&lt;br /&gt;
&lt;br /&gt;
== What's In This Release? ==&lt;br /&gt;
&lt;br /&gt;
This is the third release on the Bongo roadmap. As a source-only release, it is intended only for developers and advanced users who understand they will probably experience bugs and/or rough edges. Originally, we had planned this to be a release that end-users could effectively test: however, we've done an awful lot since M2. So, this release will be a developer only release, and the next will be a more formal alpha release.&lt;br /&gt;
&lt;br /&gt;
M3 represents a huge amount of work done over our M2 release, and provides a working e-mail and calendaring system, the web user interface for e-mail and calendaring, and a web administration system. There are basic command line tools available to configure the system. &lt;br /&gt;
&lt;br /&gt;
== What's New? ==&lt;br /&gt;
&lt;br /&gt;
The headline features in this release are:&lt;br /&gt;
&lt;br /&gt;
* localisation/internationalisation&lt;br /&gt;
* builds on a wider range of distributions&lt;br /&gt;
* configuration now based in Store, and not dependent on a custom LDAP setup&lt;br /&gt;
* proper syslog logging&lt;br /&gt;
* a powerful mail address aliasing/rewriting system&lt;br /&gt;
* support for multiple domains and hosted user accounts&lt;br /&gt;
* new, more performant, disk storage system&lt;br /&gt;
* initial support for CalDAV&lt;br /&gt;
* wider range of administrative tools for configuration, backup and restore&lt;br /&gt;
&lt;br /&gt;
There are numerous under-the-bonnet changes which will interest developers listed above. We have simplified the system for loading configuration, and have completely reworked several structural parts of Bongo.&lt;br /&gt;
&lt;br /&gt;
== Download and installation ==&lt;br /&gt;
&lt;br /&gt;
You can download the M3 release from the GNA download page:&lt;br /&gt;
&lt;br /&gt;
http://download.gna.org/bongo/release/bongo-0.3.1.tar.bz2&lt;br /&gt;
&lt;br /&gt;
As a quick start, you once you've downloaded the release, you then:&lt;br /&gt;
&lt;br /&gt;
  tar -jxf bongo-0.3.1.tar.bz2&lt;br /&gt;
  cd bongo-0.3.1&lt;br /&gt;
  ./configure --prefix=/usr/local/bongo&lt;br /&gt;
  make&lt;br /&gt;
  (as root from here)&lt;br /&gt;
  make install&lt;br /&gt;
  cd /usr/local/bongo&lt;br /&gt;
  ./sbin/bongo-config install&lt;br /&gt;
&lt;br /&gt;
We have instructions for compilation in our [[Installation/Source | source guide]] - you will need to fulfill various dependencies, but they are mostly pretty simple.&lt;br /&gt;
&lt;br /&gt;
After you have compiled and installed, you can then set about [[Configuration/Bongo | configuring Bongo]].&lt;br /&gt;
&lt;br /&gt;
Binary packages of Bongo are also being made available on an ongoing basis, but remember that this is a developer release.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
You may want to review the project bugs page to see a complete list of those issues discovered. At the time of release, the following bugs are known:&lt;br /&gt;
&lt;br /&gt;
* (major) the Dragonfly web UI is unreliable and buggy for many users&lt;br /&gt;
* e-mails without a subject may be incorrectly grouped into a single conversation&lt;br /&gt;
* some mail headers are sometimes incorrectly parsed.&lt;br /&gt;
* we recommend not installing to system locations (e.g., /usr), as our CLucene library will conflict with an installed version&lt;br /&gt;
* the web interfaces expect to be on their own domain, and the URLs cannot be configured to be different places&lt;br /&gt;
* running under Apache currently requires some work-arounds for file permission issues&lt;br /&gt;
* there are generic problems with bounce mail handling&lt;br /&gt;
&lt;br /&gt;
Because of the large number of changes in this release, we expect that there may be several bugs which will bite people testing M3. We do intend to support tester/developers with this release, and will actively maintain this branch of the software, though.&lt;br /&gt;
&lt;br /&gt;
== Next Release ==&lt;br /&gt;
&lt;br /&gt;
As a supported branch of Bongo, M3 will receive minor updates, and in due course we will make further releases for those people trying to use it in practice.&lt;br /&gt;
&lt;br /&gt;
The next major release will be M4. Coming in that release:&lt;br /&gt;
&lt;br /&gt;
* new, more reliable, web UI for mail and calendar&lt;br /&gt;
* complete Hawkeye web UI for administration&lt;br /&gt;
* server-side rules support&lt;br /&gt;
* support for shared calendars/address books&lt;br /&gt;
&lt;br /&gt;
There will also be numerous technical advances and bugfixes that may not immediately visible to users.&lt;br /&gt;
&lt;br /&gt;
This will be our first preview release: we will be asking non-developers to try this software for the first time, and we think it will be mostly feature-complete. As such, there will be fewer new features in M4 compared to M3, but hopefully a lot more stability and reliability. M4 will only be released when we're happy it's useful for people to test, but we are aiming for April.&lt;br /&gt;
&lt;br /&gt;
For further information, see the [[Roadmap]].&lt;/div&gt;</description>
			<pubDate>Fri, 12 Oct 2007 08:25:48 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Releases/0.3.0</comments>		</item>
		<item>
			<title>Development/Design/Flasher/Calendar Sharing</title>
			<link>http://bongo-project.org/Development/Design/Flasher/Calendar_Sharing</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calendar Sharing Storyboard ==&lt;br /&gt;
&lt;br /&gt;
Bongo users will probably also want to share their calendar(s) with other people, some of whom ''may'' be running Bongo. They will probably want to do this so other people can give people permanent updates as to what they're up to, their status, or simply to aid event organisation.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the images and stuff I've got on here aren't really storyboards as such, sadly. However, as example images, they '''do not in any way represent what the final product should look like'''!&lt;br /&gt;
&lt;br /&gt;
=== Use Cases ===&lt;br /&gt;
&lt;br /&gt;
# Lukas often needs to have meetings with his co-workers. By viewing his co-workers' shared calendars, he can work out when the best time to have a meeting is, by checking who will be available at what time, and if not, what they are doing (ie if Lukas can see Harry is doing a relatively non-important task at that time, and the time fits well with everybody else, Lukas might still want to have the meeting during that time period). Lukas will only be able to see events planned during work hours, which means that he won't be able to see what Sarah is up to later that evening.&lt;br /&gt;
# Jenny wants to organise something with a bunch of her friends, who aren't running Bongo. She has a quick look at her calendar to see what her best friends are up to, and notices two are going to a party the weekend after. Jenny clicks on the party event, and clicks 'Join'. She types in a quick message requesting if she can come. Jenny also adds her other friends to the invitation request, and clicks OK. A preformatted email is sent to the event organiser, who isn't running Bongo either, and she/he clicks on the 'accept' link, which brings up Flasher. Jenny receives a response a bit later, and the event now appears on her calendar, with the current attendees. Too similar to RSVP?&lt;br /&gt;
&lt;br /&gt;
We would want the ability to share calendars so that the above use cases aren't completely fictional. This should be done by being able to click on a calendar that you currently own, and simply selecting Share. You should then be able to select who you share/don't share the calendar with, what times are viewable, and whether or not it requires a password to view.&lt;br /&gt;
&lt;br /&gt;
Viewing shared calendars from within Flasher (not ICS-shared calendars) will probably involve just using a read-only version of the Bongo calendar interface, which may or may not be based on Flasher itself.&lt;br /&gt;
&lt;br /&gt;
=== Sharing a calendar ===&lt;br /&gt;
&lt;br /&gt;
[[Image:sharing-calendar-flasher.png]]&lt;br /&gt;
&lt;br /&gt;
=== Viewing shared events ===&lt;br /&gt;
&lt;br /&gt;
Probably just a read-only version of the Bongo calendaring interface.&lt;br /&gt;
&lt;br /&gt;
=== Joining somebody else's event ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Calendar-sharing-joining-event.jpg]]&lt;br /&gt;
&lt;br /&gt;
If the user doesn't have Bongo, they see the following in their Inbox, asking them to login to Flasher and accept/decline the request:&lt;br /&gt;
&lt;br /&gt;
[[Image:Calendar-sharing-joining-event-emailreq.png]]&lt;br /&gt;
&lt;br /&gt;
As per the RSVP page, we probably need some login hash in the URL or something.&lt;br /&gt;
&lt;br /&gt;
=== Other screens ===&lt;br /&gt;
&lt;br /&gt;
* How would we summarise what's happening; which invites do you have, etc? Would we have this as a separate bar? Is this even Flasher material?&lt;br /&gt;
&lt;br /&gt;
=== Ideas up for discussion ===&lt;br /&gt;
&lt;br /&gt;
* Is there really a need for the ability to edit others' calendars from within the interface itself? When sharing, I guess we can make it accessible from CalDAV, if necessary - I only really see this as being useful if you're working mobile, and need to edit your events without having to go into Flasher (eg using your desktop thick-client application, or using your mobile device such as a Blackberry, etc)&lt;/div&gt;</description>
			<pubDate>Sun, 07 Oct 2007 00:47:38 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design/Flasher/Calendar_Sharing</comments>		</item>
		<item>
			<title>Development/Design/Flasher/RSVP</title>
			<link>http://bongo-project.org/Development/Design/Flasher/RSVP</link>
			<description>&lt;p&gt;Summary: New page: == RSVP Storyboard==  Bongo users will want to use Bongo to arrange meetings, parties, or other types of event. To do this, they will need to contact people who don't use Bongo. We want Bo...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RSVP Storyboard==&lt;br /&gt;
&lt;br /&gt;
Bongo users will want to use Bongo to arrange meetings, parties, or other types of event. To do this, they will need to contact people who don't use Bongo. We want Bongo to offer these external people useful features so that it eases the life of the Bongo user in arranging the event.&lt;br /&gt;
&lt;br /&gt;
=== Use cases ===&lt;br /&gt;
&lt;br /&gt;
# Adrian is holding a party, and wants to invite his friends, who are all using e-mail. From within Bongo, he sets up the event and sends an invitation e-mail to his friends. The e-mail contains the link to Flasher. He wants his friends to be able to mark on his calendar whether or not they are able to come, and also would like Flasher to offer his friends useful features: e.g., a printable invite with all the information on it, perhaps a link to Google Maps, and the ability to invite other people Adrian originally missed.&lt;br /&gt;
# Adrian also wants to meet up with some old friends for dinner. He doesn't know what their schedule is, though, so sends them an e-mail asking them to let him know when they are free. They will then be able to access Flasher and mark the days that they are free, so Adrian can attempt to find a time when everyone is available. After a date has been found, they will all be sent a full invitation e-mail, but this time with RSVP pre-set to whatever they marked their availability as being (as that may change later).&lt;br /&gt;
&lt;br /&gt;
In all cases, Flasher presents basically a single page which has all the event information on it. Users interact with the page, and can bookmark it.&lt;br /&gt;
&lt;br /&gt;
=== Main RSVP ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Flasher-Storyboard-RSVP.png]]&lt;br /&gt;
&lt;br /&gt;
=== Arrange a time ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Flasher-Storyboard-arrange.png]]&lt;br /&gt;
&lt;br /&gt;
=== Possible other screens ===&lt;br /&gt;
&lt;br /&gt;
Where privacy has been set on a page, we may need an authentication page before those two screens. Possibilities include:&lt;br /&gt;
&lt;br /&gt;
* protecting the event with a single password;&lt;br /&gt;
* allowing contacts to login via OpenID;&lt;br /&gt;
* allowing contacts to e-mail themselves a login link.&lt;br /&gt;
&lt;br /&gt;
In general, the login token should probably be encoded in the URL. The downside here is that we can't really authenticate individual users, just those who have been given access to the page. That's likely good enough though: we assume these people are probably friends :)&lt;br /&gt;
&lt;br /&gt;
=== Open features ===&lt;br /&gt;
&lt;br /&gt;
Some things I thought about, but didn't build into the screens:&lt;br /&gt;
&lt;br /&gt;
* being able to invite others. We might say on the invitation that people are free to bring partners or even other friends we don't know, we should have a box where someone can put in an e-mail address and forward an invitation to that person. Problem here is spam potential.&lt;/div&gt;</description>
			<pubDate>Sat, 06 Oct 2007 14:39:46 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design/Flasher/RSVP</comments>		</item>
		<item>
			<title>Development/Design/Flasher/Rationale</title>
			<link>http://bongo-project.org/Development/Design/Flasher/Rationale</link>
			<description>&lt;p&gt;Summary: [[Development/Design/Flasher/Rationale]] moved to [[Flasher]]: Yay, more wiki like.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Flasher? ==&lt;br /&gt;
&lt;br /&gt;
Flasher is the web GUI that we make available to users who aren't on the Bongo system. We want to be able to interact with them, share events etc., without having to register them.&lt;br /&gt;
&lt;br /&gt;
Primarily, people will gain access to Flasher in two ways: either by having a link sent to them via e-mail (e.g., an invitation), or by following a link from a website.&lt;br /&gt;
&lt;br /&gt;
Flasher will not offer the same features as Dragonfly; Flasher users will tend to be inexperienced with Bongo and will not have time to &amp;quot;learn&amp;quot; the software - they may only ever use it once.&lt;br /&gt;
&lt;br /&gt;
Flasher will be designed with specific use cases in mind, and will allow people to perform specific tasks.&lt;/div&gt;</description>
			<pubDate>Sat, 06 Oct 2007 14:27:47 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design/Flasher/Rationale</comments>		</item>
		<item>
			<title>Glossary</title>
			<link>http://bongo-project.org/Glossary</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==== Agent ====&lt;br /&gt;
&lt;br /&gt;
A standalone piece of software in Bongo, similar to a Unix daemon. Agents in Bongo tend to be very specialised and light-weight compared to their Unix counterparts: for example, a Unix MTA may speak SMTP, run a mail queue and deliver mail. In Bongo, that is separated into three separate agents.&lt;br /&gt;
&lt;br /&gt;
==== Dragonfly ====&lt;br /&gt;
&lt;br /&gt;
The web user interface for mail and calendaring.&lt;br /&gt;
Also known as &amp;quot;DF&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Hawkeye ====&lt;br /&gt;
&lt;br /&gt;
The web user interface for administration and configuration.&lt;br /&gt;
Also known as &amp;quot;HE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== MDB ====&lt;br /&gt;
&lt;br /&gt;
The initial releases of Bongo used a system called MDB to authenticate users, store software configuration, and for other tasks. This is now removed, but may still be referred to in places.&lt;br /&gt;
&lt;br /&gt;
==== NMAP ====&lt;br /&gt;
&lt;br /&gt;
An old name for the protocol that Bongo used to speak. NMAP is still referred to in the documentation and code in places. What was NMAP is now split between two separate agents, the Store and Queue.&lt;br /&gt;
&lt;br /&gt;
==== Ninja ====&lt;br /&gt;
&lt;br /&gt;
Ninja is a experimental store alternative for Bongo. It is also destined to be used to test Bongo's flexibility regarding modularisation, as well as testing both the official implementation and Ninja for bugs.&lt;br /&gt;
&lt;br /&gt;
==== Flasher ====&lt;br /&gt;
&lt;br /&gt;
A web calendaring interface for non-Bongo users.&lt;br /&gt;
&lt;br /&gt;
==== Crystal ====&lt;br /&gt;
&lt;br /&gt;
Codename for what will become the new modular web interface for Bongo users. It will include modules for mail and calendaring, primarily.&lt;/div&gt;</description>
			<pubDate>Wed, 19 Sep 2007 21:26:31 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Glossary</comments>		</item>
		<item>
			<title>Dragonfly Technical Stuff</title>
			<link>http://bongo-project.org/Dragonfly_Technical_Stuff</link>
			<description>&lt;p&gt;Summary: New page: Various technical issues with the current Dragonfly implementation. Where sizes are mentioned, I've tried to ascertain the correct size for what we use, but may be mistaken (it may be we d...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various technical issues with the current Dragonfly implementation. Where sizes are mentioned, I've tried to ascertain the correct size for what we use, but may be mistaken (it may be we don't use an entire library, or for some other reason I got the size wrong ;)&lt;br /&gt;
&lt;br /&gt;
== Concerns ==&lt;br /&gt;
&lt;br /&gt;
# Size! 'Packed' final.js is 560Kb. We need to be a much lighter download by default; the core needs to be under 100K really. And we haven't really implemented contacts and other important features.&lt;br /&gt;
# Related to size, speed - login speed now much better that it was, but still room for improvement.&lt;br /&gt;
# Reliance on a number of external libraries: prototype (80Kb), script.aculo.us (200Kb?!), and MochiKit (120Kb packed). Adds to our size (400Kb in total?), probably making up at least 60% of our size. Many of these libraries do much of the same thing.&lt;br /&gt;
# Riffing on size still: many people will want to access their mail over https. This limits cacheability. Dragonfly needs to be usable accessing it remotely over a slow connection (100Kbps-1 up?) over https, as a target. Usable doesn't mean &amp;quot;amazing&amp;quot;, but live-able.&lt;br /&gt;
# Concern on the manageability of these dependencies going forward. Will they continue to be developed (Mochi and script.* both seem to be slowing at best), and be compatible (e.g., $ ownership)? Is this sustainable, and will browser compatibility suffer? &lt;br /&gt;
# Failure modes are silent and often killer. Can we at least detect errors and let the user know something bad has happened?&lt;br /&gt;
# Mail processing happens on the client side; wasteful. Client side shouldn't need to know about formats / character sets / MIME etc., that should all happen server-side. &lt;br /&gt;
# Builds a lot of HTML in the code, not wonderful.&lt;br /&gt;
# Current src/www/ is very dragonfly-oriented, not terribly well separated.&lt;br /&gt;
&lt;br /&gt;
== Future stuff we want ==&lt;br /&gt;
&lt;br /&gt;
# We want to be able to have 3rd party plugins. If the core isn't fast, core + plugins will be horrific.&lt;br /&gt;
# Some pieces aren't terribly well separated. Makes it difficult to have a consistent plugin architecture. Perhaps the core should be built from default plugins.&lt;br /&gt;
# Flasher should be buildable out of the same pieces as dragonfly. Maybe flasher is dragonfly, maybe not... ?&lt;br /&gt;
# We have vague l10n, but not i18n. Particularly not RTL and script languages. &lt;br /&gt;
# How on earth do we i18n calcmd? Maybe forget about it for now?&lt;/div&gt;</description>
			<pubDate>Wed, 19 Sep 2007 21:13:30 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Dragonfly_Technical_Stuff</comments>		</item>
		<item>
			<title>Guides/Webserver Optimisation</title>
			<link>http://bongo-project.org/Guides/Webserver_Optimisation</link>
			<description>&lt;p&gt;Summary: /* Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
A few pointers:&lt;br /&gt;
* Setup ETags;&lt;br /&gt;
* Add an expires header; and most importantly,&lt;br /&gt;
* '''GZip components!'''&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
&lt;br /&gt;
Apache2: Install mod_deflate and you should be good to go. Make sure the mimetype is setup for .css and .js&lt;br /&gt;
Apache: Install mod_gzip and setup mimetypes if necessary&lt;br /&gt;
&lt;br /&gt;
FIXME: Expand this, a lot.&lt;/div&gt;</description>
			<pubDate>Tue, 14 Aug 2007 07:35:42 GMT</pubDate>			<dc:creator>Halex</dc:creator>			<comments>http://bongo-project.org/Talk:Guides/Webserver_Optimisation</comments>		</item>
		<item>
			<title>Development/Design/ImportExport/Addressbook</title>
			<link>http://bongo-project.org/Development/Design/ImportExport/Addressbook</link>
			<description>&lt;p&gt;Summary: /* Implementation Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Being an e-Mail/Calendaring application, Bongo needs to be able to store and share contact information for users.  The idea is to allow users the ability to share their contacts using the most common and accepted formats.  To date the main ones appear to be VCF, LDIF and CSV.&lt;br /&gt;
&lt;br /&gt;
=== Basic Ideas ===&lt;br /&gt;
&lt;br /&gt;
By using the above formats we should be able to share contacts with the majority of desktop clients on all platforms - Thunderbird, Outlook, Evolution, Outlook Express and Claws-Mail being the initial focus.&lt;br /&gt;
&lt;br /&gt;
Initially we need an export of each client's supported format, but only if it is complete e.g., if Outlook exports csv and ldif, but the ldif doesn't have all the info of the contacts, then we don't care too much for it's ldif support.  This way each client should have at least one supported format.&lt;br /&gt;
&lt;br /&gt;
=== Supported formats by clients ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;client-format&amp;quot;&lt;br /&gt;
!Client&lt;br /&gt;
!Import Format&lt;br /&gt;
!Export Format&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;yes&amp;quot;| [http://www.mozilla.com/thunderbird/ Thunderbird]&lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| LDIF, TAB, CSV, TXT&lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| LDIF&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;yes&amp;quot;| [http://www.gnome.org/projects/evolution/ Evolution] &lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| LDIF, TAB, CSV, VCF&lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| NONE&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;yes&amp;quot;| [http://www.claws-mail.org/ Claws-Mail] &lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| LDIF, MUTT, PINE&lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| LDIF, HTML&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;yes&amp;quot;| [http://www.microsoft.com/outlook/ Outlook] &lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| WAB, TAB, CSV, VCF, PST&lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| NONE&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;yes&amp;quot;| [http://www.microsoft.com/windows/oe/ Outlook Express] &lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| LDIF, WAB, CSV, VCF, TXT, PST &lt;br /&gt;
|class=&amp;quot;planned&amp;quot;| WAB, VCF, TXT, PST&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Implementation Ideas ===&lt;br /&gt;
&lt;br /&gt;
Initially all import/export work is done via the commandline with &amp;lt;tt&amp;gt;bongostore-tool&amp;lt;/tt&amp;gt;, but hopefully a Dragonfly interface will enable users to do it in a friendly environment.  There will need to be several options with little hints so users know which file type is best to use:&lt;br /&gt;
* If exporting to Thunderbird, please select LDIF or CSV formats.&lt;br /&gt;
* If importing from Outlook Express, please select CSV or VCF.&lt;br /&gt;
&lt;br /&gt;
=== Complexity ===&lt;br /&gt;
&lt;br /&gt;
One of the biggest problems is that each of the clients handle the fields of a contact differently on an import and export.  This leads to garbled contact information when moving contacts from client&amp;lt;--&amp;gt;client or even client&amp;lt;--&amp;gt;bongo.&lt;/div&gt;</description>
			<pubDate>Thu, 02 Aug 2007 17:16:21 GMT</pubDate>			<dc:creator>Forcev</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design/ImportExport/Addressbook</comments>		</item>
		<item>
			<title>Documentation/Administration Guide/User Creation</title>
			<link>http://bongo-project.org/Documentation/Administration_Guide/User_Creation</link>
			<description>&lt;p&gt;Summary: New page: =Creating your own users= &amp;lt;pre&amp;gt;(a) Login to the server (b) Enter the following command to create a user     bongo-admin ua &amp;lt;username&amp;gt; --given=&amp;lt;FirstName&amp;gt; --surname=&amp;lt;LastName&amp;gt;       and hit...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating your own users=&lt;br /&gt;
&amp;lt;pre&amp;gt;(a) Login to the server&lt;br /&gt;
(b) Enter the following command to create a user&lt;br /&gt;
    bongo-admin ua &amp;lt;username&amp;gt; --given=&amp;lt;FirstName&amp;gt; --surname=&amp;lt;LastName&amp;gt;&lt;br /&gt;
      and hit return&lt;br /&gt;
(c) Enter the admin password you set earlier&lt;br /&gt;
(d) bongo-admin up &amp;lt;username&amp;gt; &lt;br /&gt;
(e) Enter the admin password you set earlier&lt;br /&gt;
   you should get a response saying added user:&lt;br /&gt;
(f) If you want to know more about the bongo-admin functions enter/&lt;br /&gt;
    bongo-admin on its own and hit return. this will produce a list of/&lt;br /&gt;
    options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 21 Jul 2007 19:21:26 GMT</pubDate>			<dc:creator>Lhaig</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Administration_Guide/User_Creation</comments>		</item>
		<item>
			<title>Development/Design/Dragonfly/Plugins</title>
			<link>http://bongo-project.org/Development/Design/Dragonfly/Plugins</link>
			<description>&lt;p&gt;Summary: New page: == Plugin Overview ==  Dragonfly, being web-based, needs to be as slim as possible in order to maximise speed and stability. However, users demand crack, so to fulfil some wishes, the idea...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plugin Overview ==&lt;br /&gt;
&lt;br /&gt;
Dragonfly, being web-based, needs to be as slim as possible in order to maximise speed and stability. However, users demand crack, so to fulfil some wishes, the idea is to allow extra features to be inserted as plugin. This system would be designed to make most things possible in some way, not to allow users to alter absolutely everything.&lt;br /&gt;
&lt;br /&gt;
=== Basic Ideas ===&lt;br /&gt;
&lt;br /&gt;
Key parts of the user interface will effectively be built by the plugin management system. They would include:&lt;br /&gt;
&lt;br /&gt;
* the navigation bar on the left&lt;br /&gt;
* horizontal tool bars&lt;br /&gt;
* popup boubles&lt;br /&gt;
* maybe the small links at the top-left&lt;br /&gt;
* ability to provide complete new views&lt;br /&gt;
&lt;br /&gt;
Plugins would be able to place bespoke UI in those widgets mentioned. &lt;br /&gt;
&lt;br /&gt;
=== Implementation Idea ===&lt;br /&gt;
&lt;br /&gt;
The user will be able to turn plugins and and off, from a server-provided list. Plugins will be loaded in order, and the user can set that order - that would control the order of widgets in the UI.&lt;br /&gt;
&lt;br /&gt;
Plugins will provide the system with a JSON structure describing them, and what they provide. So, for example, if a plugin provides navigation bar UI, this would happen:&lt;br /&gt;
&lt;br /&gt;
* Dragonfly loads the plugin into it's system effectively as a single object;&lt;br /&gt;
* Dragonfly asks for its description, and sees it provides nav bar UI;&lt;br /&gt;
* the description points at an object method, and Dragonfly constructs an array holding all the methods which want to provide navbar UI;&lt;br /&gt;
* when constructing the nav bar, Dragonfly calls each object method in order, and they return a DOM object which is appended to the nav bar&lt;br /&gt;
&lt;br /&gt;
In more detail, it seems that we have a need for some standard views: mail view, calendar view, etc., and we would ship default plugins to handle those. Perhaps we would allow them to be overridden, though, or missing entirely.&lt;br /&gt;
&lt;br /&gt;
=== Complexity ===&lt;br /&gt;
&lt;br /&gt;
* How could/should this interact with zones? Should plugins be zone aware? Can they setup zones?&lt;br /&gt;
* Plugins cannot depend on other non-standard plugins, for now. That makes it too complex.&lt;br /&gt;
* Plugin order would dictate position in UI. If the plugin provides navbar and toolbar UI, you can't have the navbar UI come last and the toolbar first. Tough.&lt;br /&gt;
&lt;br /&gt;
=== Outstanding Questions ===&lt;br /&gt;
&lt;br /&gt;
What framework do we need to provide to plugins? Ideally, we'd maintain Dragonfly as a framework plus a set of plugins, so we'd have:&lt;br /&gt;
&lt;br /&gt;
* Dragonfly UI framework, which understands plugins,&lt;br /&gt;
* Dragonfly plugin manager, to load the plugins,&lt;br /&gt;
* various helpful libraries in a common API: e.g., JSON, effects, server protocol, etc.&lt;br /&gt;
&lt;br /&gt;
The various helpful libraries need to be broad enough to allow different types of plugin, and encompass common needs, but not too broad: in general, it would be better to offload work to the server and have more brains over there, and keep the Javascript slim.&lt;br /&gt;
&lt;br /&gt;
=== Use Case Personas ===&lt;br /&gt;
&lt;br /&gt;
Here are a few personas outlining use cases that we want to make work, and are the raison d'etre for all this extra effort. If you can think of other ones, add them, and at some point we'll pick the three or four which make most sense.&lt;br /&gt;
&lt;br /&gt;
==== Brian, the small business IT administrator ====&lt;br /&gt;
&lt;br /&gt;
Brian already has a successful IT setup, which includes mail. However, his users are demanding calendaring sharing features, and he wants to use Bongo in that capacity. He might be willing to migrate to Bongo at a later date to get better integration, but for now he wants to stick with his current mail system and offer web-based calendaring. He'd like to be able to remove the mail and contacts UI parts for now, and have simply the calendaring experience. With the extra space on the summary page, Brian wonders if he can offer users more information there - perhaps a local weather summary, an RSS feed of company news, and links to the intranet.&lt;br /&gt;
&lt;br /&gt;
==== Joe, the third-party developer ====&lt;br /&gt;
&lt;br /&gt;
Joe offers a web-based document management system, which is great at managing content, but doesn't have many workflow features. Users are asking if they can integrate it into their calendaring systems, and Joe would like to offer something for Bongo. He thinks it would be nice to be able to summarise recently edited documents for users, and also link documents into events - for example, deadlines. To do this, he envisages a summary view widget that displays recent documents, and a widget in event pop-ups to which to the user can add document references.&lt;br /&gt;
&lt;br /&gt;
==== Paula, the Bongo community member ====&lt;br /&gt;
&lt;br /&gt;
As a community member, Paula often sees people come into the chat room asking if Bongo has such-and-such feature in the web UI. She decides that she'd like to try her hand at creating a plugin for some of the better ideas she sees, and she knows a little about how Bongo works already.&lt;/div&gt;</description>
			<pubDate>Sat, 21 Jul 2007 14:18:08 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design/Dragonfly/Plugins</comments>		</item>
		<item>
			<title>Development/Design/Dragonfly/PluginIdeas</title>
			<link>http://bongo-project.org/Development/Design/Dragonfly/PluginIdeas</link>
			<description>&lt;p&gt;Summary: New page: == Plugin Ideas ==  This is a list of potential ideas that we might want to implement as plugins. This is drawn from existing functionality, functions other people have, etc. This should h...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plugin Ideas ==&lt;br /&gt;
&lt;br /&gt;
This is a list of potential ideas that we might want to implement as plugins. This is drawn from existing functionality, functions other people have, etc. This should help us design a plugin system which can meet many, but not all, needs.&lt;br /&gt;
&lt;br /&gt;
=== Bongo Plugins ===&lt;br /&gt;
&lt;br /&gt;
==== Rules control ====&lt;br /&gt;
&lt;br /&gt;
We could ship two rules controls, a simple one and an advanced one. The simple one might be:&lt;br /&gt;
* ability to click on a sender and select &amp;quot;Create rule..&amp;quot; to create a rule based on that sender;&lt;br /&gt;
* a prefs window to create a simple linear list of rules, with simple conditions and results;&lt;br /&gt;
&lt;br /&gt;
The advanced one could extend this by adding support for more complex rules within the prefs window (which it effectively re-implements), allowing e.g., ability to filter by mail header, or regex, or something.&lt;br /&gt;
&lt;br /&gt;
==== Sync control ====&lt;br /&gt;
&lt;br /&gt;
Some kind of control to synchronise content to a PDA/etc. Would consist of:&lt;br /&gt;
* a navbar control to initiate a sync;&lt;br /&gt;
* possibly some kind of prefs panel to configure the sync.&lt;br /&gt;
&lt;br /&gt;
=== Mail Plugins ===&lt;br /&gt;
&lt;br /&gt;
==== Starred mail ====&lt;br /&gt;
&lt;br /&gt;
The ability to star conversations,  already in Dragonfly, could/should be a plugin. This consists of:&lt;br /&gt;
* a star against conversations in a list;&lt;br /&gt;
* a toolbar control to star/unstar in mail list view and conversation view&lt;br /&gt;
&lt;br /&gt;
==== Tags ====&lt;br /&gt;
&lt;br /&gt;
The ability to tag mail with keywords. Not totally sure how this might work, but maybe:&lt;br /&gt;
* a toolbar control in mail list and conversation view to add tags, maybe based on a drop down, or text entry control, or combination;&lt;br /&gt;
* a navigation bar tag cloud, possibly, to present a mail view filtered by tag;&lt;br /&gt;
* a search filter, possibly, to filter a search by tag (or not tag);&lt;br /&gt;
&lt;br /&gt;
==== Avatar support ====&lt;br /&gt;
&lt;br /&gt;
The ability to put avatars into mail views. This would consist of:&lt;br /&gt;
* putting the user's picture in the conversation view (based on the picture held for them by Bongo);&lt;br /&gt;
* new button in Contact bouble to allow the user to look for Gravatar pictures, etc., and set them on the contact;&lt;br /&gt;
* perhaps something which looks at mail headers for avatar info?&lt;br /&gt;
&lt;br /&gt;
==== Composer ====&lt;br /&gt;
&lt;br /&gt;
Our composer will likely not suit everyone. We could offer the ability to replace it.&lt;br /&gt;
&lt;br /&gt;
==== Spam support ====&lt;br /&gt;
&lt;br /&gt;
The ability to mark mail as spam/not spam, and potentially train a server-side filter based on that. This would consist of:&lt;br /&gt;
* an icon in the mail view signifying whether or not the mail was spam;&lt;br /&gt;
* toolbar buttons to mark as spam / not spam;&lt;br /&gt;
&lt;br /&gt;
==== Mail proxy support ====&lt;br /&gt;
&lt;br /&gt;
A prefs dialog to setup mail proxy settings. This would be a plugin so that admins could remove it, preventing users setting up mail proxies directly.&lt;br /&gt;
&lt;br /&gt;
==== RSS Feeds ====&lt;br /&gt;
&lt;br /&gt;
Ability to consume RSS/Atom and put a small overview on the summary page, plus a full feed view&lt;br /&gt;
&lt;br /&gt;
=== Calendar Plugins ===&lt;br /&gt;
&lt;br /&gt;
?&lt;/div&gt;</description>
			<pubDate>Sat, 21 Jul 2007 09:32:21 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design/Dragonfly/PluginIdeas</comments>		</item>
		<item>
			<title>Development/Design</title>
			<link>http://bongo-project.org/Development/Design</link>
			<description>&lt;p&gt;Summary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Flasher Design ==&lt;br /&gt;
&lt;br /&gt;
* [[Flasher | What is Flasher?]]&lt;br /&gt;
* [[Development/Design/Flasher/RSVP | RSVP Storyboard]]&lt;br /&gt;
* [[Development/Design/Flasher/Calendar Sharing | Calendar Sharing]]&lt;br /&gt;
&lt;br /&gt;
== Dragonfly Plugin Architecture ==&lt;br /&gt;
&lt;br /&gt;
* [[Development/Design/Dragonfly/Plugins | Plugin Overview]]&lt;br /&gt;
* [[Development/Design/Dragonfly/PluginIdeas | Plugin Ideas]]&lt;br /&gt;
&lt;br /&gt;
== Import/Export ==&lt;br /&gt;
&lt;br /&gt;
* [[Development/Design/ImportExport/Addressbook | Importing/Exporting the addressbook]]&lt;br /&gt;
&lt;br /&gt;
== Agents ==&lt;br /&gt;
&lt;br /&gt;
* [[Development/Design/Agents/AgentIdeas | Ideas for Agents]]&lt;/div&gt;</description>
			<pubDate>Sat, 21 Jul 2007 09:06:29 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Design</comments>		</item>
		<item>
			<title>Bongo Love/Import mail into folders</title>
			<link>http://bongo-project.org/Bongo_Love/Import_mail_into_folders</link>
			<description>&lt;p&gt;Summary: /* Import mail into folders */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Thu, 19 Jul 2007 20:15:12 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Bongo_Love/Import_mail_into_folders</comments>		</item>
		<item>
			<title>Development/Wishlist</title>
			<link>http://bongo-project.org/Development/Wishlist</link>
			<description>&lt;p&gt;Summary: /* Dragonfly */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wishlist ==&lt;br /&gt;
&lt;br /&gt;
What things should we consider developing on bongo?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Dragonfly ===&lt;br /&gt;
Some items moved to [[Development/Todo/Dragonfly]], or already completed.&lt;br /&gt;
&lt;br /&gt;
* In tandem with the above include a column in the &amp;quot;All&amp;quot; view that indicates what folder a piece of mail is in. (Main Feature)&lt;br /&gt;
* GPG Signature support (difficult to do as it requires the keychain on the server but would be wicked cool, likely too impractical though as it gives the server admin explicit access to the private keys of all users using this feature even if he or she doesn't have the associated passwords) (Plugin Candidate, *not* main feature)&lt;br /&gt;
* S/MIME Certificate support (Plugin Candidate, *not* main feature)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rules Agent ===&lt;br /&gt;
* Should be rewritten to allow users to set their own rules without needing to enter the admin ui.&lt;br /&gt;
&lt;br /&gt;
=== SMTP Agent ===&lt;br /&gt;
* Support for antispam mechanisms which require training, such as DSPAM, CRM114, etc.&lt;br /&gt;
* Support chained certs (usually catted together in the same file)&lt;br /&gt;
&lt;br /&gt;
=== IMAP Agent ===&lt;br /&gt;
* Support chained certs (usually catted together in the same file)&lt;br /&gt;
&lt;br /&gt;
=== POP Agent ===&lt;br /&gt;
* Support chained certs (usually catted together in the same file)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Hawkeye ===&lt;br /&gt;
* Once [[IMAP]], [[POP]] and [[SMTP]] [[agent]]s are configurable through [[Hawkeye]] make sure to include support for installing certificates through the UI, having to do it on the filesystem is silly.&lt;br /&gt;
* Do the same for installing certs for [[bongo-standalone]]&lt;br /&gt;
* Mimic the [[Hula]] capability to join certs by feeding in a intermediate and primary certs (if needed for POP/IMAP/SMTP etc.)&lt;br /&gt;
* Implement user administration - do we really want to bother with a user [[agent]], or can we get away with shoving more commands into [[store]]?&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</description>
			<pubDate>Thu, 19 Jul 2007 19:28:29 GMT</pubDate>			<dc:creator>Alexhudson</dc:creator>			<comments>http://bongo-project.org/Talk:Development/Wishlist</comments>		</item>
		<item>
			<title>Documentation/Administration Guide/USer Creation</title>
			<link>http://bongo-project.org/Documentation/Administration_Guide/USer_Creation</link>
			<description>&lt;p&gt;Summary: /* Creating your own users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Thu, 19 Jul 2007 16:09:44 GMT</pubDate>			<dc:creator>Lhaig</dc:creator>			<comments>http://bongo-project.org/Talk:Documentation/Administration_Guide/USer_Creation</comments>		</item>
	</channel>
</rss>