<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet OBM</title>
	<link rel="self" href="http://planet.obm.org/atom.xml"/>
	<link href="http://planet.obm.org/"/>
	<id>http://planet.obm.org/atom.xml</id>
	<updated>2010-08-01T06:24:02+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry>
		<title type="html">Bigger than free software</title>
		<link href="http://tcataldo.blogspot.com/2010/07/bigger-than-free-software-or-buying.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-6497151563008199042</id>
		<updated>2010-07-16T22:24:00+00:00</updated>
		<content type="html">Having fun with all our co-workers&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_FrEZyE0A1YA/TEDc9voi4FI/AAAAAAAACcs/kEbdKi9N6Gw/s1600/team_building.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_FrEZyE0A1YA/TEDc9voi4FI/AAAAAAAACcs/kEbdKi9N6Gw/s320/team_building.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5494634498708660306&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-6497151563008199042?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">bye bye David</title>
		<link href="http://sylvaingarcia.blogspot.com/2010/06/bye-bye-david.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-5065449538752245418</id>
		<updated>2010-06-03T07:38:00+00:00</updated>
		<content type="html">This week, own chinese has left the team, David Phan going to new job, new challenge.&lt;br /&gt;I wished him good luck for the futur, and thank your for all work on OBM, in particulary on your new calendar on 2.3 en 2.4 release.&lt;br /&gt;Perhaps David will continue to commit on OBM on his freetime...&lt;br /&gt;&lt;br /&gt;Bye bye david&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_joHBHX-xH-0/TAdbsUR31WI/AAAAAAAAFMY/_lEQNbsNVGQ/s1600/david01.jpg&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;http://2.bp.blogspot.com/_joHBHX-xH-0/TAdbsUR31WI/AAAAAAAAFMY/_lEQNbsNVGQ/s400/david01.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-5065449538752245418?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">New minig feature</title>
		<link href="http://tcataldo.blogspot.com/2010/04/new-minig-feature.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-187734845218521126</id>
		<updated>2010-04-06T20:13:00+00:00</updated>
		<content type="html">MiniG can now handle email priority in its conversation list. Threads with a high priority email are shown in red. They can be found using is:important.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_FrEZyE0A1YA/S7uWI2Fi2fI/AAAAAAAACbo/F2IGyUqSOlk/s1600/mail_priority.png&quot; /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-187734845218521126?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Working late</title>
		<link href="http://tcataldo.blogspot.com/2010/03/working-late.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-2561247194268054872</id>
		<updated>2010-03-30T01:26:00+00:00</updated>
		<content type="html">Answered flag is now handled by minig (on conversations &amp;amp; messages).&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_FrEZyE0A1YA/S7FTabCa7WI/AAAAAAAACbE/7AbfHcuG_wc/s1600/answeredEmail.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_FrEZyE0A1YA/S7FTabCa7WI/AAAAAAAACbE/7AbfHcuG_wc/s320/answeredEmail.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5454232337121996130&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-2561247194268054872?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">BigG, GrosG, MaxiG, you name it....</title>
		<link href="http://tcataldo.blogspot.com/2010/03/bigg-grosg-maxig-you-name-it.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-1719845964232668981</id>
		<updated>2010-03-22T21:54:00+00:00</updated>
		<content type="html">First step is complete : BigG now has an ltmp compliant daemon. At least it's compliant with postfix lmtp client which is sufficient for my needs.&lt;br /&gt;&lt;br /&gt;It does not do a lot for now, just outputs some logs while doing the LMTP dialog: &lt;pre&gt;2010-03-22 22:49:59,458 RunnableExtensionLoader INFO - DeliveryFactory loaded.&lt;br /&gt;2010-03-22 22:49:59,462 RunnableExtensionLoader INFO - ValidatorFactory loaded.&lt;br /&gt;2010-03-22 22:49:59,462 RunnableExtensionLoader INFO - Loaded 2 implementors of org.obm.lmtp.lmtpbackendfactory&lt;br /&gt;2010-03-22 22:49:59,499 LMTPDaemon INFO - Starting LMTP daemon...&lt;br /&gt;2010-03-22 22:49:59,565 MinaServer INFO - mina lmtp server created&lt;br /&gt;2010-03-22 22:49:59,578 MinaCodecFactory INFO - mina codec factory created&lt;br /&gt;2010-03-22 22:49:59,589 MinaLmtpServer INFO - Starting listener. active: true h: org.obm.mina.MinaIoHandler@128ae45a&lt;br /&gt;2010-03-22 22:49:59,589 LmtpServer INFO - server started&lt;br /&gt;2010-03-22 22:49:59,589 LMTPDaemon INFO - LMTP daemon started.&lt;br /&gt;2010-03-22 22:50:17,969 BiggLmtpBackend INFO - addressStatus(sga@zz.com)&lt;br /&gt;2010-03-22 22:50:17,969 LdapValidator INFO - validating sga@zz.com&lt;br /&gt;2010-03-22 22:50:18,039 BiggLmtpBackend INFO - deliver(org.obm.lmtp.backend.LmtpEnvelope@7a19a37a, blob: Blob: { path=/tmp/blob2739528671992765153.bin, size=null }&lt;br /&gt;2010-03-22 22:50:18,040 CassandraAgent INFO - delivering to a cassandra node... in the near feature :/&lt;br /&gt;2010-03-22 22:50:18,043 MinaIoHandler INFO - session closed&lt;/pre&gt;&lt;br /&gt;Postfix is happy with that: &lt;pre&gt;Mar 22 22:50:17 obm23 postfix/pickup[6601]: E27B85E82: uid=0 from=&lt;br /&gt;Mar 22 22:50:18 obm23 postfix/cleanup[6827]: E27B85E82: message-id=20100322215017.E27B85E82@lenny.buffy.kvm&gt;&lt;br /&gt;Mar 22 22:50:18 obm23 postfix/qmgr[1996]: E27B85E82: from=, size=284, nrcpt=1 (queue active)&lt;br /&gt;Mar 22 22:50:18 obm23 postfix/lmtp[6829]: E27B85E82: to=, relay=10.0.0.1[10.0.0.1]:2400, delay=0.48, delays=0.21/0.05/0.15/0.07, dsn=2.1.5, status=sent (250 2.1.5 Delivery OK)&lt;br /&gt;Mar 22 22:50:18 obm23 postfix/qmgr[1996]: E27B85E82: removed&lt;/pre&gt;&lt;br /&gt;Next step is to parse the mail with mime4j before giving it to &lt;a href=&quot;http://code.google.com/p/bigg/source/browse/trunk/plugins/org.obm.delivery.cassandra/src/org/obm/delivery/cassandra/CassandraAgent.java&quot;&gt;CassandraAgent&lt;/a&gt;. The agent will push everything to a cassandra node.&lt;br /&gt;&lt;br /&gt;Coming soon to &lt;a href=&quot;http://code.google.com/p/bigg/&quot;&gt;BigG (mostly empty) website&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-1719845964232668981?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Jabber in minig</title>
		<link href="http://tcataldo.blogspot.com/2010/02/jabber-in-minig.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-3435173845588480457</id>
		<updated>2010-02-13T13:47:00+00:00</updated>
		<content type="html">After a first experiment, we are now committed to complete chat support in minig.&lt;br /&gt;&lt;br /&gt;Here is a screenshot showing what already works.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/S3atww8AydI/AAAAAAAACac/4mqhlUpQKfY/s1600-h/jabber.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/S3atww8AydI/AAAAAAAACac/4mqhlUpQKfY/s320/jabber.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5437724653378390482&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-3435173845588480457?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Filters in MiniG for 2.3.2</title>
		<link href="http://tcataldo.blogspot.com/2010/02/filters-in-minig-for-232.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-1657489638022219945</id>
		<updated>2010-02-09T20:53:00+00:00</updated>
		<content type="html">After 6 month with filters code disabled in MiniG, I finally took the last steps to enable them : vacation &amp;amp; forward handling using OBM infos.&lt;br /&gt;&lt;br /&gt;The finishing touch was pretty boring : &lt;ul&gt;&lt;li&gt;adding APIs to OBM sync for updating forward and vacation infos in the UserObm table.&lt;/li&gt;&lt;li&gt;Completing the vacation ui in MiniG&lt;/li&gt;&lt;li&gt;Adding an interface to set email forwarding&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Well it's done and will be available with all 2.3.2+ obm installs.&lt;br /&gt;&lt;br /&gt;Everything is not perfect : obm vacation &amp;amp; forward modules must be disabled as they have no knowledge of the filters stored in minig private database. A quick fix is possible as making an HTTP POST to minig-backend/regenerateSieve.do (login/password required) will generate a correct sieve script with forward, vacation &amp;amp; filter rules.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-1657489638022219945?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Openjdk or sunjdk for OBM part1</title>
		<link href="http://sylvaingarcia.blogspot.com/2010/02/today-i-had-bad-relation-with-openjdk.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-1833095420248036756</id>
		<updated>2010-02-04T20:51:00+00:00</updated>
		<content type="html">&lt;div&gt;Today i had a bad relation with openjdk. I'm in charge of minig packaging, which is full java webmail in two parts, eclipse product for the backend, gwt for the frontend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On redhat, i can't build minig with openjdk because the build crash because of openjdk, so i use jpackage (so sun-jdk) to build. To run minig, today there is a &quot;require&quot; on openjdk, but i think, and thomas also that we must use sun-jdk. If the build crash with openjdk, the run can be unstable with this...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, on debian. Cool!! there is sun jdk which is available on debian. But by my mistake i had build minig with &quot;javac&quot; from openjdk, and the build don't crash!!!! But on install, with the use of sun-jdk minig crash with strange, and ramdom error on multiple build...&lt;/div&gt;&lt;div&gt;So, I built a minig with sun-jdk and now, works like a charm!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SO what is the moral of the story? openjdk is doesnt ready for production for us, and I will review rpm packaging to force to use sun-jdk instead of openjdk in rpm package, this is my next task for rpm packaging.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;And now how use sun-jdk on centos or redhat?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;an extarct of &lt;a href=&quot;http://wiki.centos.org/HowTos/JavaOnCentOS&quot;&gt;http://wiki.centos.org/HowTos/JavaOnCentOS&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&quot;The Sun license concerning distribution of Java (through to Java 6) contains clauses, the terms of which, the CentOS team have concluded they cannot meet. Conversations with Sun's representatives on a modified distribution license were underway in August 2008 but they did not yield fruit. Seemingly Sun was looking forward to the more free, later, Java releases (on the horizon, upstream) in our upstream's Fedora project.&quot;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Grr isn't a simple a &quot;yum install sun-jdk&quot; like a debian ( i loveeeeee redhat!! ). and it seems that they don't have official yum repository too intall sun-jdk on centos or redhat.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; use jpackage?&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;No because i can't propose to user to sign DLJ on rpm before rpm installation.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;No because it seems that the last update is very old(and maybe not maintain). The latest version of jpackage is jdk 1.6.0 update 11 (&lt;a href=&quot;http://mirrors.dotsrc.org/jpackage/1.7/generic/SRPMS.non-free/&quot;&gt;http://mirrors.dotsrc.org/jpackage/1.7/generic/SRPMS.non-free/&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt; use binary of sun-jdk dlj version, like jpackage?&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;No because i can't propose to user to sign DLJ on rpm before rpm installation.&lt;/div&gt;&lt;div&gt;No because i don't want repackage and become a maintener of a package like a jpackage for obm....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;So what???&lt;/span&gt;&lt;/div&gt;&lt;div&gt;I think that the best solution is to use rpm version of official sun jdk from SUN. But There are at big constraint, all java component require a manual download and installation on each install.&lt;/div&gt;&lt;div&gt;I will test installation of this package and all JAVA path on obm's java components  next weeks.&lt;/div&gt;&lt;div&gt;The result will be in future post.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;If anyone has a solution i'm here&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-1833095420248036756?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Back in Toulouse</title>
		<link href="http://tcataldo.blogspot.com/2010/01/back-in-toulouse.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-6968568702745718880</id>
		<updated>2010-01-29T20:47:00+00:00</updated>
		<content type="html">Just spent one month in Paris to meet few customers and give some training to our Paris &quot;obm core team&quot;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some projects are now on track : Gilles Blanc is working on a BES (Blackberry Enterprise Server) connector for OBM. Nicolas Chauvet is deploying OBM+MiniG servers and should soon work on improving our redhat packages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While in Paris, Thomas Chemineau gave Sylvain &amp;amp; I a big training session on LemonLDAP. While I hate having all my code proxied by some perl crap, LemonLDAP is pretty cool. At least it is the only SSO solution that works as a proxy and gives you clean single sign out. I did a &lt;a href=&quot;http://minig.googlecode.com/svn/wiki/sso/lemon_obm.png&quot;&gt;simple diagram on how we could implement minig sso using lemon&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This week I'll work on finishing MiniG sieve filtering code :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;handle vacation settings from obm&lt;/li&gt;&lt;li&gt;use email forwarding infos from the obm database&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-6968568702745718880?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Brown paper bag release</title>
		<link href="http://tcataldo.blogspot.com/2009/12/brown-paper-bag-release.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-9002775471599181300</id>
		<updated>2009-12-01T23:51:00+00:00</updated>
		<content type="html">For the first time in minig history, x.y.z.1166 seems ok. Two new bug reports so far, one of them being that minig requires 1280x1024 for real use. The other one relates to &quot;whole folder actions&quot;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Biggest known bug in my list is &quot;body part selection&quot; : identify which part of an email is the body that must be shown to the user. Separating an email sent as &quot;send as text and html&quot; from a &quot;text email with an html attachment&quot;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-9002775471599181300?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OBM community</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/11/obm-community.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-1068588538689160869</id>
		<updated>2009-11-27T12:59:00+00:00</updated>
		<content type="html">From one week, i make rpm repository to test all trunk OBM's components, this repository is available at:&lt;div&gt;&lt;a href=&quot;http://packages.obm.org/&quot;&gt;http://packages.obm.org/rpm/daily&lt;/a&gt;  is updated each night.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Remender: there is also debian daily repository at &quot;&lt;a href=&quot;http://deb.obm.org/daily&quot;&gt;deb http://deb.obm.org/daily obm obm&lt;/a&gt;&quot;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From few weeks some OBM 2.3.0rc has been released, to make tests, fix some bugs. Soon, the first stable version of OBM 2.3 will be released, and we hope that this release will give satisfaction to all people who use OBM.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More of new release , now we think how improve relation between OBM core developers and community, how improve the OBM's Community.&lt;/div&gt;&lt;div&gt;OBM like many other opensource project is sponsored by a Company. Is very difficult for us to make big community around OBM. This is a problem of each opensource project made by a company.&lt;/div&gt;&lt;div&gt;So we are open to all suggestion to improve this.&lt;/div&gt;&lt;div&gt;Do you need tools to contribute? ( forum, an other mailling list,...)&lt;/div&gt;&lt;div&gt;Do you want more docs? what are the subjects of the documentation you want? give me example...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-1068588538689160869?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">All your folders are belong to us</title>
		<link href="http://tcataldo.blogspot.com/2009/11/all-your-folders-are-belong-to-us.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-2096284578065259716</id>
		<updated>2009-11-25T20:02:00+00:00</updated>
		<content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;My hate for a folder tree in MiniG never was a secret :&lt;div&gt;&lt;ul&gt;&lt;li&gt;It requires lot of screen real estate&lt;/li&gt;&lt;li&gt;very hard to mana&lt;a href=&quot;http://minig.googlecode.com/svn/wiki/screenshots/barafolder.png&quot;&gt;&lt;/a&gt;ge in a web context&lt;/li&gt;&lt;li&gt;a tree helps for mail triage. When I began using internet, altavista was becoming a leader and yahoo was loosing marketshare. Google didn't exist. At this time yahoo was trying to &quot;categorize&quot; the web while altavista understood that trying to create a tree on top of internet-scale data was a lost fight.&lt;/li&gt;&lt;li&gt;Displaying a tree is the easy solution : first thing I learned while attending Algorithm101 was that in computer science, everything can be represented with a tree.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;A tree was clearly not the way I wanted to go. It's fine for a small bunch of data. It's also fine when you don't have any other way to do the triage of your data.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To make things short, folder tree is out of minig, for good. As I have to live with IMAP servers, I still had to find an efficient replacement. The replacement has the following features :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;dynamic displays that only shows folders with unread emails by default&lt;/li&gt;&lt;li&gt;incremental search : a text field on top pushes the search paradigm of minig to your folders. Just type &quot;m&quot; in the field and you'll get your &quot;MiniG&quot; &quot;Mini Me&quot; &quot;foo/mmm/bar&quot; folders&lt;/li&gt;&lt;li&gt;dynamic color assignment : each folders gets a color. This color is used when showing search results to easily identify where they are stored (in your inbox, in a shared folder, in your sent messages)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Even some of my users that felt in the &quot;A folder tree on the left of a mail client is mandatory&quot; category are saying some nice things about the new display.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BaraFolder (internal name of the new folder widget) (lot's of private jokes around that name) is available in the latest stable MiniG release we did today (2.2.15.1166). This release will hit about 1500 customer's mailboxes next week. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A release candidate of this minig version was shown to one of our customers last week and he said &quot;no, I don't need the calendar demo, I want this&quot; (ok, he was an easy target as we deployed horde/imp for him years ago). Given the time me, david and others dedicated into this release, I hope users will enjoy it.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next steps are not set in stone, but big minig deployments (as in 8000 mailboxes) are planned. My work items should be :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;clustered deployement : N-frontend, M-backend&lt;/li&gt;&lt;li&gt;bugfixes&lt;/li&gt;&lt;li&gt;showing the filter feature in the UI. MiniG can write sieve filters, but it's disabled in released build as it conflicts with some obm features (vacation, forwarding, etc)&lt;/li&gt;&lt;li&gt;bugfixes&lt;/li&gt;&lt;li&gt;composer. this part of minig really needs some love. Even more when you see what google wave can do (no, the plan is not to be able to insert a &quot;poll widget&quot; in your signature)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;PS : MiniG is free software, released as GPLv3. No paying-customers-only-crap-for-the-others version.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-2096284578065259716?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Random links of the weekend</title>
		<link href="http://tcataldo.blogspot.com/2009/11/random-links-of-weekend.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-4215953621904431944</id>
		<updated>2009-11-01T16:06:00+00:00</updated>
		<content type="html">Still exploring what Cassandra could provide as a clustered mail storage.&lt;br /&gt;&lt;br /&gt;Easy read on cassandra data model : &lt;a href=&quot;http://arin.me/code/wtf-is-a-supercolumn-cassandra-data-model&quot;&gt;http://arin.me/code/wtf-is-a-supercolumn-cassandra-data-model&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using this article, I drafted an early data model :&lt;br /&gt;&lt;pre&gt;Conversations : { // CF&lt;br /&gt;    INBOX/123-1 : { // Row key is the conv id&lt;br /&gt; timeuuid_1 : messageId1&lt;br /&gt; timeuuid_2 : messageId2&lt;br /&gt;    }      &lt;br /&gt;    INBOX/123-2 : { // Row key is the conv id&lt;br /&gt;         timeuuid_3 : messageId3&lt;br /&gt;         timeuuid_4 : messageId4&lt;br /&gt;    }       &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Folders : { // CF&lt;br /&gt;     INBOX : {&lt;br /&gt;           timeuuid_1 : INBOX/123-1&lt;br /&gt;           timeuuid_3 : INBOX/123-2&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Messages : { // CF&lt;br /&gt;   messageId1 : { // row key&lt;br /&gt;       subject: bla bla&lt;br /&gt;     to: xx&lt;br /&gt;     cc: yy&lt;br /&gt;     bcc: zz&lt;br /&gt;     preview : hello world&lt;br /&gt;                   body: hello world ! qdqsd&lt;br /&gt;                   hasAttach: true&lt;br /&gt;                   hasInvitation: false&lt;br /&gt;                   attachments: attach_123, attach_456&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Attachments : {&lt;br /&gt;    attch_123 : {&lt;br /&gt;        filename: fileName1&lt;br /&gt; size: 123456&lt;br /&gt;        content: xazeqsdqdqsd_base_64&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Article on lucene/solr + cassandra : &lt;a href=&quot;http://nicklothian.com/blog/2009/10/27/solr-cassandra-solandra/&quot;&gt;http://nicklothian.com/blog/2009/10/27/solr-cassandra-solandra/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I wanted to store my tests on those technologies somewhere, I created the &lt;a href=&quot;http://tcataldo.blogspot.com/feeds/posts/bigg.googlecode.com&quot;&gt;BigG project&lt;/a&gt; on googlecode.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-4215953621904431944?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">My (not so) secret plan</title>
		<link href="http://tcataldo.blogspot.com/2009/10/my-not-so-secret-plan.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-5169818079164090982</id>
		<updated>2009-10-28T21:15:00+00:00</updated>
		<content type="html">Did some work on re-packing Cassandra as an OSGi based daemon. The secret plan is to have 3 eclipse products :&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Cassandra node&lt;/h2&gt;&lt;br /&gt;Cassandra is the clustered DB. This kind of databases are designed with high availability in mind and operates in &quot;multi-master&quot; mode by default. Optimal configuration starts at 3 nodes : set your database to &quot;validate transactions&quot; when at least 2 nodes have a copy of the data, read your data from any node and routing of your requests will happen magically (well, multicast, versionning of data, but let's call it &quot;magic&quot;). &lt;br /&gt;Want more performance ? add a node and reads will hit multiple nodes &amp;amp; use some map-reduce. Cassandra was benchmarked to out-perform mysql at 8 nodes. Yes, it means 8 1U low-cost servers to outperform a single mysql. But now you can scale easily, without requiring expensive hardware. &lt;br /&gt;Want more availability ? add a node and set your &quot;transaction safety level&quot; to more nodes than 2.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;LMTP over tcp daemon&lt;/h2&gt;&lt;br /&gt;This one would be the second daemon. It would handle lmtp, apply advanced filtering, interrogate cassandra for similar data to perform conversation grouping.&lt;br /&gt;This one doesn't store anything and would be completly stateless. Deploy as much as needed to handle your postfix load. Just hide those behind some basic DNS round-robin.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;IMAP connector&lt;/h2&gt;&lt;br /&gt;This one is needed to keep thunderbird in the loop. Reads cassandra data. IMAP client was a 20days job, so this one shouldn't be too hard. Just deploy some of them with DNS round-robin.&lt;br /&gt;MiniG backend would hit cassandra nodes directly.&lt;br /&gt;&lt;br /&gt;No code available on the net yet, but I want to try a messaging system built this way. This is just a personnal &quot;will try&quot; project. PostgreSQL, Cyrus+Murder &amp;amp; Heartbeat are not out of the loop... yet :D&lt;br /&gt;&lt;br /&gt;Edit : to give some obm relevance to this blog entry, Adrien added email support to o-push. Works fine on Win Mobile, very slow on Nicolas's Android 2.x (htc magic with custom firmware for native exchange support), very fast on my iPhone, mixed results on Mehdi's Nokia E71. Expect a blog entry dedicated to that once first round of fixes hits googlecode.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-5169818079164090982?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Innovation from mozilla team</title>
		<link href="http://tcataldo.blogspot.com/2009/10/innovation-from-mozilla-team.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-9082395413583825082</id>
		<updated>2009-10-22T22:44:00+00:00</updated>
		<content type="html">&lt;a href=&quot;http://labs.mozilla.com/raindrop/&quot;&gt;Mozilla raindrop project&lt;/a&gt; just appeared on the web.&lt;br /&gt;&lt;br /&gt;Like it or not, but at least Google with GMail &amp;amp; Wave is not the only one trying to innovate in email business any more.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-9082395413583825082?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Status update</title>
		<link href="http://tcataldo.blogspot.com/2009/10/status-update.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-2103405968698815347</id>
		<updated>2009-10-21T21:48:00+00:00</updated>
		<content type="html">OBM 2.3 freeze mode is on.&lt;br /&gt;&lt;br /&gt;MiniG isn't branched, so I'm trying to add small features without destroying mail reading.&lt;br /&gt;&lt;br /&gt;obm sync receives lots of performance related commits. We tweaked most of our sql queries to get good performance on both mysql &amp;amp; pg.&lt;br /&gt;&lt;br /&gt;MySQL &amp;amp; PostgreSQL do not require the same kind of tuning. MySQL prefers 2 queries with select a from b ... and select c from b where b.id in (). PostgreSQL performs better with select c from b inner join a where... If we do the one query version postgresql wins &amp;amp; mysql crawls to death. If we do the 2 query version, mysql outperforms postgresql a little on low-cost hardware benchmarks.&lt;br /&gt;&lt;br /&gt;We (re)did o-push tests on Nokia E71 with MailForExchange. The calendar part of o-push is working very well. We still need to take a look at contacts. We expect to release obm-2.3 rc0 with contacts &amp;amp; calendar working in o-push. Adrien is working on the mail part of o-push and discovered that microsoft has an alternative to locales. Forget iso-8859-1, let's call it 28591. utf-8 is 65001. o-push just won a new mapping table.&lt;br /&gt;&lt;br /&gt;Still wondering if obm new contact screen will be ready for prime time. As it is, I don't like it. Knowing Mehdi &amp;amp; David skills with CSS &amp;amp; Javascript, I think we can still have a new killer module for OBM 2.3. Right now, removing MiniG contact screen to use the OBM one would get the &quot;Over my dead body&quot; response. But as we're all inspired by Snow Leopard Addressbook, Google Contacts and mobile me, we'll find a UI that satisfies everyone, including users ;-)&lt;br /&gt;&lt;br /&gt;MiniG seems in a pretty good shape (lot's of people use it as their only mail software, including me). People on the obm mailing seems to have a hard time installing it. I need to figure out why :/&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-2103405968698815347?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">New round of MiniG changes</title>
		<link href="http://tcataldo.blogspot.com/2009/10/new-round-of-minig-changes.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-3490129109589666863</id>
		<updated>2009-10-11T13:12:00+00:00</updated>
		<content type="html">Hottest topic for minig was thread grouping. I did all the modifications to make it use Cyrus support for &lt;a href=&quot;http://tools.ietf.org/html/rfc5256&quot;&gt;RFC5256&lt;/a&gt;. This is slower than the algorithm I came out with, but well my code was faster because it ignored the case that forces you to work with the &quot;References&quot; header.&lt;br /&gt;&lt;br /&gt;&quot;Slower&quot; is something that should be taken with care. The load on minig backend JVM is greatly reduced. The &quot;UID THREAD REFERENCES UTF-8 ALL&quot; imap command forces cyrus to do the hard work. The new code replaces MiniG JVM load by Cyrus I/O load. As most sysadmins are OK to dedicate their SAN resources to cyrus, but tends to hate JaveVM, this ok : they will see a waiting JVM not sucking any resource and a cyrus crawling the SAN mounts to death :-)&lt;br /&gt;&lt;br /&gt;I also fixed MiniG backend memory usage. MiniG works with conversations, IMAP servers with messages. MiniG needs to maintain a mapping between Conversation's identifiers and IMAP messages UIDs. This mapping was sucking lot of memory. MiniG already has an on-disk version of this mapping. Easy solution : Java SoftReference. A SoftReference is a Java reference that the JVM is allowed to collect when it is under memory pressure. Most of the time, minig will use the in-memory mapping. When memory pressure is to high, to cache will be evicted &amp;amp; rebuilt on demand. After 11years of Java programming, this was the first time I used &lt;a href=&quot;http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ref/SoftReference.html&quot;&gt;SoftReference&lt;/a&gt;. I knew how strong/weak/soft/phantom references work in Java, but it's the first time my code cannot work without using them.&lt;br /&gt;&lt;br /&gt;As it was &quot;optimisation week-end&quot;, I also worked on MiniG bandwidth consumption. MiniG was already very good for remote access with limited bandwidth, but things could be made better.&lt;br /&gt;&lt;br /&gt;When you display your inbox, every 20sec, minig javascript polls the backend for changes. This AJAX call downloaded the current page of messages &amp;amp; redrawn the grid. This transfer is in the 2KB range. I introduced versioning to minig caches. The AJAX call now sends its last know version to the frontend. Frontend relays it the backend. The backend answers with http 304 when no change occurs. Frontend sends a &quot;UseCachedData&quot; RuntimeException the javascript. The most common case &quot;nothing changed&quot; goes from a 2KB transfer to a 81byte transfer. Quite nice improvement.&lt;br /&gt;&lt;br /&gt;For now this is only done for IMAP folders, not for search results. But I as bought the &quot;SOLR 1.4 Enterprise Search Server&quot; book (very good investment for solr users), their number one recommandation for solr performance is to enable &quot;proxy support&quot; which will make solr respond with http 304 when your last search gives the same result. That's why I started implementing support of HTTP 304 in minig backend &amp;amp; frontend. Adding 304 support to minig search will give a big performance boost to &quot;Unread&quot; mail fans.&lt;br /&gt;&lt;br /&gt;Upcoming release also adds a user visible feature : when you read a conversation, all unread emails are auto-expanded. &lt;br /&gt;&lt;br /&gt;Next bug on my list is about composer, iframes in design mode &amp;amp; cut'n'paste. After 2 years of minig work, I tend to hate those &quot;browser dependent&quot; bugs.&lt;br /&gt;&lt;br /&gt;I'm still hoping to do a stable minig release this week with obm 2.2.14, the composer bug being the last known release blocker.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-3490129109589666863?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Status of my OBM parts before oct 15th freeze</title>
		<link href="http://tcataldo.blogspot.com/2009/10/status-of-my-obm-parts-before-oct-15th.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-2303422809951746049</id>
		<updated>2009-10-09T22:26:00+00:00</updated>
		<content type="html">Worked 4/5 days on making sure that obm-sync was performing correctly on a 13GB OBM 2.3 PostgreSQL database. I must thank again yourkit.com for the license they granted me for MiniG. Their software is not free (as in speech), but they give away licences for free softwares. This kind of ubber cool software just tells you when your code is shit.&lt;br /&gt;&lt;br /&gt;Small commit on obm-caldav to prevent it from fetching all calendar permissions from database. Yourkit helped on this one too.&lt;br /&gt;&lt;br /&gt;MiniG thread grouping still needed some work. Slashdot article from Cyrus most active contributors (fastmail.fm) gave me some hints. Answer &quot;UID THREAD REFERENCES UTF-8 ALL&quot;. This simple IMAP command forces cyrus to do all the threading calculation for you. The minig part is still complicated but from a performance pov, it's a win.&lt;br /&gt;&lt;br /&gt;Ok, I really depend on cyrus features. For today deadlines, that's fine. But the architecture I want to have for minig is :&lt;br /&gt;&lt;br /&gt;incoming mail -&gt; ironport (or any other _efficient_ spam filtering solution) -&gt; minig_lmtp -&gt; cassandra clustered db&lt;br /&gt;&lt;br /&gt;Solr would be plugged into cassandra (cassandra is the big table implementation that facebook released to the apache group as free software).&lt;br /&gt;&lt;br /&gt;Yes cyrus does not exist in the architecture I'm hoping to get minig to. (s|l)mtp connector to clustered db with full text indexer is google architecture. This architecture seems like the right one to me. murder + heartbeat seems pretty fragile when you compare it to cassandra/big table reliability.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-2303422809951746049?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Release often, Release early</title>
		<link href="http://tcataldo.blogspot.com/2009/10/release-often-release-early.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-3042409379736338223</id>
		<updated>2009-10-04T21:16:00+00:00</updated>
		<content type="html">Very early in some cases... We had to prepare a demo of o-push with obm 2.3 trunk (bleeding egde) and minig.&lt;br /&gt;&lt;br /&gt;I had to stop working on minig temporarily to get o-push in a demo-able state.&lt;br /&gt;&lt;br /&gt;OPush work was stalled by higher priority tasks, but after working on it all the week-end, it's in a pretty cool shape. I've just committed true push support for calendars.&lt;br /&gt;&lt;br /&gt;Here is a demo video I did with my test setup : every modification in obm 2.3 calendar appears in the pda few seconds later.&lt;br /&gt;&lt;br /&gt;(Yes, it's not perfect, I still don't know why I add to go back to the activesync application while recording)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: I had to convert the video to xvid as youtube seems to do shit with ogv's from gtk-recordMyDesktop&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-3042409379736338223?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OBM Barcamp</title>
		<link href="http://tcataldo.blogspot.com/2009/09/obm-barcamp.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-522390472679127136</id>
		<updated>2009-09-27T11:33:00+00:00</updated>
		<content type="html">We spent friday afternoon &amp;amp; saturday on a barcamp dedicated to OBM with some co-workers from Paris.&lt;br /&gt;&lt;br /&gt;At the end of the first afternoon, I was pretty dissapointed : &lt;ul&gt;&lt;li&gt;Lots of talking&lt;/li&gt;&lt;li&gt;No actions&lt;/li&gt;&lt;/ul&gt; My first impression was that I lost an afternoon of minig bugfixing. The second day changed my opinion.&lt;br /&gt;&lt;br /&gt;Mehdi &amp;amp; Guillaume merged most of the patches we maintained for our main production setup.&lt;br /&gt;&lt;br /&gt;Sylvain worked with Erwan to figure out the best way to make LemonLDAP + OBM + MiniG work out of the box.&lt;br /&gt;&lt;br /&gt;David &amp;amp; Vincent did some improvements on 2.3 calendar.&lt;br /&gt;&lt;br /&gt;Tony worked on obm-automation improvements to allow running update.pl at login time for auto-provisionning of mailboxes &amp;amp; ldap entries.&lt;br /&gt;&lt;br /&gt;I worked with Michel &amp;amp; Guillaume to figure out how to handle really big mailboxes in MiniG. Michel mailbox is a 20GB one. To give you an idea, our cyrus setup in Toulouse is only 35GB for 44 mailboxes &amp;amp; lots of mailshares.&lt;br /&gt;&lt;br /&gt;Michel's mailbox was a very interesting test-case. It triggered a &quot;too many open files&quot; pretty rapidly. We identified a very old bug : the class that read minig configuration files left a file descriptor open.&lt;br /&gt;&lt;br /&gt;This jumbo mailbox has other properties : it is big enough to trigger bugs that only occured on Toulouse production setup after more than 24h. As we are still unsure if the deadlock timeout that occurs on some jdbc transactions is derby's fault or minig's fault, I just committed the switch from a derby internal database to an external PostgreSQL instance. This change will permit one thing: identify if the bug was in derby.&lt;br /&gt;&lt;br /&gt;Some easier to fix bugs were also identified : &lt;ul&gt;&lt;li&gt;Advanced search misshandled searches on subject with two keywords&lt;/li&gt;&lt;li&gt;Tony helped me fix the filter that was used for autocomplete when ldapContacts.pl is active&lt;/li&gt;&lt;/ul&gt; Some decision were taken: &lt;ul&gt;&lt;li&gt;We confirmed that OBM feature &amp;amp; ui freeze will be effective on Oct 15th.&lt;/li&gt;&lt;li&gt;Contact search in OBM &amp;amp; MiniG will move from SQL queries to a SOLR core (we're not sure yet if it will meet the 2.3 freeze date). We will also try to do the same for events.&lt;/li&gt;&lt;li&gt;We are going to integrate a real LemonLDAP sso provider in minig. One that will not require OBM sso subsystem&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;If I consider the complete barcamp session, It was needed &amp;amp; productive.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-522390472679127136?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Spinner of death (tm) Improvement</title>
		<link href="http://tcataldo.blogspot.com/2009/09/spinner-of-death-tm-improvement.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-5967455551656953630</id>
		<updated>2009-09-23T18:21:00+00:00</updated>
		<content type="html">Sometime things can go wrong in MiniG, even with legitimate reasons :&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;You suspended your laptop and your minig session is expired when your browser comes back to life&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Your beloved administrator restarted a tomcat server without notifying anybody&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Your network was down more than 3 minutes (MiniG frontend session duration)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;This case will be handled in a next releases.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_FrEZyE0A1YA/SrpouXuvxKI/AAAAAAAACWk/TK2d2f-8jE4/s1600-h/tartiflette.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_FrEZyE0A1YA/SrpouXuvxKI/AAAAAAAACWk/TK2d2f-8jE4/s320/tartiflette.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5384731450328204450&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yes, the texts are temporary and TartifletteMode is only how an expired session is called in the code.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-5967455551656953630?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">obm team news</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/09/obm-team-news.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-2190319097798298525</id>
		<updated>2009-09-22T15:28:00+00:00</updated>
		<content type="html">Hi,&lt;div&gt;i wrote a mail on OBM mailinglist to announce new debian repository. One people (Tim Verhoeven) reply that he would like see rpm trunk repository also.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since few month, we try to distribute more and more OBM and OBM components trough obm wiki,  obm planet and blogs. New debian repository is a step on this, we also publish all GPL sources on svn.obm.org.&lt;/div&gt;&lt;div&gt;OBM team are working on many way to,  make OBM the first opensource (really opensource) groupware solution:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;  David are working on new calendar, minig,...&lt;/li&gt;&lt;li&gt;  Mehdi  are working on new calendar, contacts, and...............&lt;/li&gt;&lt;li&gt;  tom works on Minig, o-push, caldav server, improve funambol synchronisation&lt;/li&gt;&lt;li&gt;  Adrien works on Minig, o-push, caldava server&lt;/li&gt;&lt;li&gt;  Nico works on obm thunderbird and outlook connector, improve obm-sync&lt;/li&gt;&lt;li&gt;  Anthony works on new obm-satellite, improve perl automate&lt;/li&gt;&lt;li&gt;  Pierre drive OBM project and works on list module ;) (also other obm modules)&lt;/li&gt;&lt;li&gt;  Ronan works on packaging, and new module to drive samba server&lt;/li&gt;&lt;li&gt;  Sylvain(Me) looks Tv&lt;/li&gt;&lt;li&gt;  Raphael crawl under babyfoot&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are also many other people who works on OBM, and try to make OBM like the best choice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, don't worry Tim Verhoeven we work on ;)&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-2190319097798298525?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">(Temporary) Epic Fail</title>
		<link href="http://tcataldo.blogspot.com/2009/09/temporary-epic-fail.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-8716703179260254437</id>
		<updated>2009-09-17T20:00:00+00:00</updated>
		<content type="html">Changing MiniG mail grouping is more tricky than expected. &lt;br /&gt;&lt;br /&gt;The previous algorithm worked like this :&lt;br /&gt; - read the subject&lt;br /&gt; - compute its root, &quot;Fwd: Re: Hello sent the 2009-08-07&quot; becomes &quot;hello sent the xxxx-xx-xx&quot;&lt;br /&gt; - simply use an equality comparison on the subject roots.&lt;br /&gt;&lt;br /&gt;First version with real threads used an hacked version of subject grouping. It was just a hack on the &quot;equality comparison&quot;. Instead of comparing suject roots, it used lists of Message-ID headers and was doing comparisons on the differences between those 2. It worked. For mailboxes  1000 messages. Sylvain's 100k mails Junk folder took more than 1hour to process. We needed a linear algorithm to do the thread grouping.&lt;br /&gt;&lt;br /&gt;The new algorithm works on other headers : Message-ID and In-Reply-To.&lt;br /&gt;&lt;br /&gt;It works this way. We maintain a ThreadRoot list which holds known conversations with the message-id's in them&lt;br /&gt;&lt;br /&gt;When we detect that messages are added/changed or deleted to a folder, we first process removals. When a ThreadRoot has no more messages, we mark it as dead and flag it for removal.&lt;br /&gt;&lt;br /&gt;Then we process updates, this is the tricky part.&lt;br /&gt;&lt;br /&gt;We have 2 lists : &lt;br /&gt; - List&amp;lt;ThreadRoot&amp;gt;, all the known thread roots not flagged as dead.&lt;br /&gt; - a List&amp;lt;RawMessage&amp;gt; called leafCandidates where we have all the not yet processed messages.&lt;br /&gt;&lt;br /&gt;We then run :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;unmerged = 0;&lt;br /&gt;merged = -1;&lt;br /&gt;while (merged &amp;lt; unmerged) {&lt;br /&gt;    unmerged = leafCandidates.size();&lt;br /&gt;    doMerge();&lt;br /&gt;    merged = leafCandidates.size();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then doMerge() does all the job :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;for (RawMessage r : leafCandidates) {&lt;br /&gt;    if rootsIds.contains(r.messageId) {&lt;br /&gt;       flagUpdate(threadRoot, r);&lt;br /&gt;    } else if (r.inReplyTo == null) {&lt;br /&gt;       createThreadRoot(r);&lt;br /&gt;    } else {&lt;br /&gt;       ThreadRoot tr = rootIds.get(r.inReplyTo);&lt;br /&gt;       if (tr) {&lt;br /&gt;         tr.merge(r);&lt;br /&gt;       } else {&lt;br /&gt;         // corner cases, most problems are not here&lt;br /&gt;         // exemple : a mail with an In-Reply-To and the father mail is deleted&lt;br /&gt;       }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This algorithm is mostly linear... Its real complexity depends X, Y, Z where X is how much new mail you receive, Y how much you receive replies to existing emails and Z, how much the user changes flags on existing emails. It can easily process Sylvain 100k spams in 20sec, so let's assume the complixity is OK.&lt;br /&gt;&lt;br /&gt;Most MiniG problems on our trunk version are in the &quot;flagUpdate(threadRoot, r)&quot; process. This creates all kind of strange bugs : conversations that still look read, mark as read/unread that only work &quot;sometime&quot;.&lt;br /&gt;&lt;br /&gt;Flags are still broken, but the new algorith is pretty promising. The load on our test &amp;amp; production mail server is lighter, really lighter. Some tuning of the last corner cases will make it a very good change. In fact the new code while still buggy is so fast that it exposed race conditions in the indexing code ;-)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-8716703179260254437?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Long time no blog</title>
		<link href="http://tcataldo.blogspot.com/2009/09/long-time-no-blog.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-817302506159660065</id>
		<updated>2009-09-13T15:52:00+00:00</updated>
		<content type="html">Massive changes are coming to minig. Real thread sorting, by message actions, etc.&lt;br /&gt;&lt;br /&gt;We added a second minig installation to our test setup. We now have a MiniG setup running on our production mail server, and another one running on a lenny 64bit kvm. Both are using our production mail server.&lt;br /&gt;&lt;br /&gt;The one running in kvm allows a first round of testing on live mailboxes. Performance testing is easier on this one, as the IMAP load and the java load are cleanly splitted on two servers. &lt;br /&gt;&lt;br /&gt;With this new setup I already identified an easy optimisation : the select imap command forces Cyrus to write a log line. Storing the selected imap folder in the org.minig.imap lib might provide sensible speed improvements to initial mailbox indexing.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-817302506159660065?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Big minig bug hunt</title>
		<link href="http://tcataldo.blogspot.com/2009/09/big-minig-bug-hunt.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-1630989050073655898</id>
		<updated>2009-09-08T21:56:00+00:00</updated>
		<content type="html">I'm focused on chasing minig bugs. &lt;br /&gt;&lt;br /&gt;We clearly improved our testing flow. Releases are tested everyday by ff3 users, ff3.5 users and chromium users (Sylvain &amp;amp; me dropped firefox now that 64bit builds are available). IE8 is often tested on our TSE server. I still need to find an easy way to do IE6 testing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What's coming into minig :&lt;br /&gt;&lt;br /&gt; - real thread grouping. User testing shown that &quot;subject+ignore numbers&quot; is only manageable to technical people.&lt;br /&gt;&lt;br /&gt; - composer improvements (I'm fighting with GWT RichTextArea, and learning things I didn't want to know about browsers differences).&lt;br /&gt;&lt;br /&gt; - by email actions. Delete one, Star one, Print one. Add sender to contacts, etc.&lt;br /&gt;&lt;br /&gt; - next/previous buttons. I don't read my email like that, but a lots of people seems to think that when you read a conversation, next has a meaning.&lt;br /&gt;&lt;br /&gt; - folder management improvents. Rename &amp;amp; move.&lt;br /&gt;&lt;br /&gt;And lots of needed bugfixes......&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-1630989050073655898?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">New calendar on OBM 2.3</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/08/new-calendar-on-obm-23.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-3337892787595563002</id>
		<updated>2009-08-14T09:39:00+00:00</updated>
		<content type="html">After new freebusy interface on 2.2, David is working on new calendar to OBM 2.3 and rewrite the code&lt;br /&gt;* New UI,&lt;br /&gt;* scroll in calendar&lt;br /&gt;* improve month view&lt;br /&gt;*...&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;Some preview&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;screenshots:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_joHBHX-xH-0/SoUySPYewvI/AAAAAAAAEjY/65uJb1ba0Ng/s1600-h/week.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_joHBHX-xH-0/SoUySPYewvI/AAAAAAAAEjY/65uJb1ba0Ng/s320/week.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5369753419657429746&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_joHBHX-xH-0/SoUybhI1EiI/AAAAAAAAEjg/wfQmYvhHowE/s1600-h/month.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_joHBHX-xH-0/SoUybhI1EiI/AAAAAAAAEjg/wfQmYvhHowE/s320/month.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5369753579042443810&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;new week view:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;new month view:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-3337892787595563002?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Something's broken in JNDI ?</title>
		<link href="http://tcataldo.blogspot.com/2009/08/somethings-broken-in-jndi.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-1190853061353816034</id>
		<updated>2009-08-05T15:53:00+00:00</updated>
		<content type="html">Consider the following unit test :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;package ldapcrap;&lt;br /&gt;&lt;br /&gt;import java.util.Hashtable;&lt;br /&gt;&lt;br /&gt;import javax.naming.NamingException;&lt;br /&gt;import javax.naming.directory.DirContext;&lt;br /&gt;import javax.naming.directory.InitialDirContext;&lt;br /&gt;&lt;br /&gt;import junit.framework.TestCase;&lt;br /&gt;&lt;br /&gt;@SuppressWarnings(&quot;unchecked&quot;)&lt;br /&gt;public class CrapTest extends TestCase {&lt;br /&gt;&lt;br /&gt; private Hashtable env;&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; protected void setUp() throws Exception {&lt;br /&gt;  super.setUp();&lt;br /&gt;&lt;br /&gt;  env = new Hashtable();&lt;br /&gt;&lt;br /&gt;  env.put(&quot;java.naming.factory.initial&quot;,&lt;br /&gt;    &quot;com.sun.jndi.ldap.LdapCtxFactory&quot;);&lt;br /&gt;  env.put(&quot;java.naming.provider.url&quot;, &quot;ldap://10.0.0.5&quot;);&lt;br /&gt;  env.put(DirContext.SECURITY_AUTHENTICATION, &quot;simple&quot;);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void testJNDIisCrap() throws NamingException {&lt;br /&gt;  DirContext ctx = null;&lt;br /&gt;  try {&lt;br /&gt;   ctx = new InitialDirContext(env);&lt;br /&gt;  } catch (Throwable t) {&lt;br /&gt;   fail(&quot;test failed&quot;);&lt;br /&gt;  } finally {&lt;br /&gt;   ctx.close();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void testInALoop() throws NamingException {&lt;br /&gt;  long time;&lt;br /&gt;  int COUNT;&lt;br /&gt;   &lt;br /&gt;  COUNT = 1000;&lt;br /&gt;  time = System.currentTimeMillis();&lt;br /&gt;  for (int i = 0; i  COUNT; i++) {&lt;br /&gt;   testJNDIisCrap();&lt;br /&gt;  }&lt;br /&gt;  time = System.currentTimeMillis() - time;&lt;br /&gt;  System.out.println(&quot;did &quot;+COUNT+&quot; in &quot;+(time/1000)+&quot;second(s).&quot;);&lt;br /&gt;&lt;br /&gt;  COUNT = 10000;&lt;br /&gt;  time = System.currentTimeMillis();&lt;br /&gt;  for (int i = 0; i  COUNT; i++) {&lt;br /&gt;   testJNDIisCrap();&lt;br /&gt;  }&lt;br /&gt;  time = System.currentTimeMillis() - time;&lt;br /&gt;  System.out.println(&quot;did &quot;+COUNT+&quot; in &quot;+(time/1000)+&quot;second(s).&quot;);&lt;br /&gt;&lt;br /&gt;  COUNT = 100000;&lt;br /&gt;  time = System.currentTimeMillis();&lt;br /&gt;  for (int i = 0; i  COUNT; i++) {&lt;br /&gt;   testJNDIisCrap();&lt;br /&gt;  }&lt;br /&gt;  time = System.currentTimeMillis() - time;&lt;br /&gt;  System.out.println(&quot;did &quot;+COUNT+&quot; in &quot;+(time/1000)+&quot;second(s).&quot;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; protected void tearDown() throws Exception {&lt;br /&gt;  super.tearDown();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here's what it shows when openldap is running on 32bit debian etch:&lt;br /&gt;did 1000 in 2second(s).&lt;br /&gt;did 10000 in 28second(s).&lt;br /&gt;did 100000 in 441second(s).&lt;br /&gt;&lt;br /&gt;Something sounds wrong with those results as the unit test is linear : open/close, open/close. As long as we do not get 2, 20, 200 or something approaching, either my test code is wrong, or some server configuration is wrong.&lt;br /&gt;&lt;br /&gt;The results on 64bit lenny are:&lt;br /&gt;did 1000 in 2second(s).&lt;br /&gt;did 10000 in 19second(s).&lt;br /&gt;&lt;br /&gt;No third result, it broke and the test failed with some useless null pointer. Let's &quot;strace -f&quot; the slapd process on lenny :&lt;br /&gt;did 1000 in 13second(s).&lt;br /&gt;did 10000 in 382second(s).&lt;br /&gt;&lt;br /&gt;Ok, will take too long and seems stalled. Will write strace output to a file &quot;strace -f -o slapd.log&quot;.&lt;br /&gt;&lt;br /&gt;Starts good : &lt;br /&gt;did 1000 in 6second(s).&lt;br /&gt;did 10000 in 61second(s).&lt;br /&gt;&lt;br /&gt;But then...&lt;br /&gt;did 100000 in 1049second(s).&lt;br /&gt;&lt;br /&gt;I expected between 500 &amp;amp; 620 seconds (I hoped the jvm JIT will do its job). I used my computer in the meantime, but not that much.&lt;br /&gt;&lt;br /&gt;Still analysing the strace output, but if someone knows what is wrong in my test...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-1190853061353816034?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Deliver MiniG on cd-rom ?</title>
		<link href="http://tcataldo.blogspot.com/2009/07/deliver-minig-on-cd-rom.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-3555860718078179195</id>
		<updated>2009-07-30T00:25:00+00:00</updated>
		<content type="html">&lt;b&gt;The problem&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;MiniG interface is built with GWT, that's common knowledge. GWT compiles java to javascript and generates &lt;em&gt;permutations&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;A permutation is a static javascript compilation unit for a given browser and a given locale. MiniG supports 2 locales (french &amp;amp; english). GWT 1.7 supports six browser flavours, so the compiler generates 12 javascript files (all the ABCD123.cache.html in the gwt build). &lt;br /&gt;&lt;br /&gt;When a GWT application is loaded, a bootstrap file runs (the minig.nocache.js). This file runs checks on the user browser and determines which permutation should be used. The bootstrap javascript is only 6.2K and is similar for allmost all gwt applications. Once the correct permutation is determined, minig.nocache.js instructs the browser to load the abcd123.cache.html for your browser. &lt;br /&gt;&lt;br /&gt;Most of the time, this file is already cached by your browser, but when a new version is deployed... the complete minig interface is downloaded. &lt;br /&gt;&lt;br /&gt;With GWT compiler 1.7.0, the minig interface stands between 472K and 481K. Now you obviously begin to understand why this blog post is named &quot;Deliver on cd-rom ?&quot;.&lt;br /&gt;&lt;br /&gt;Ok, 500K is... half a second on a low cost end-user internet connection. As a french provider commercial says : &quot;il a free, il a tout compris&quot;. But sometime, users do not even have an 8MB dsl connection. That's the case for the MiniG install running on my work mailbox. The 500K are a pain in the (insert joke about the G in MiniG) to download, as our work connection often uploads at 10K/s during work hours. This means that you cannot log into MiniG in less than 50 seconds.&lt;br /&gt;&lt;br /&gt;Apart from getting correct network connectivity, I must have a look at what can be done on the MiniG side. &lt;br /&gt;&lt;br /&gt;If you got me correctly, the localized messages are copied into javascript permutations. So if I add a 20K piece of text for online help in MiniG, the download size will go from 500K to 520K.&lt;br /&gt;&lt;br /&gt;How can this be solved ?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution 1&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here is an easy one : a2enmod deflate&lt;br /&gt;&lt;br /&gt;Run this command on the reverse proxy serving minig files and restart apache : gzip compression on static data files.&lt;br /&gt;&lt;br /&gt;Before :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-rw-r--r-- 1 tom tom 479K 2009-07-30 00:41 DCEC18F66460AB2A6CB58F4EF8A75E70.cache.html&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;After :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-rw-r--r-- 1 tom tom 139K 2009-07-30 00:41 DCEC18F66460AB2A6CB58F4EF8A75E70.cache.html.gz&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Just adding an apache module turned a 479K download to a 139K download. If the previous one was a 50sec download with our crappy bandwidth, this one is now 14sec. Pretty nice ?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Other solutions&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;MiniG is a pretty big application, but imagine something like Google Wave. You can guess they had to solve the same problem. They talked about it and provided &lt;a href=&quot;http://code.google.com/events/io/sessions/GoogleWavePoweredByGWT.html&quot;&gt;solutions&lt;/a&gt; at the last Google I/O conference.&lt;br /&gt;&lt;br /&gt;Let's summarize (or emphasize...) what the upcoming solutions are.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Compiler cut points&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Even if minig never loads a page, all screens are not visible at the same time. There's no need to load the composer code when the frontpage only shows a list of message.&lt;br /&gt;&lt;br /&gt;before :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    addTab(Webmail.COMPOSER, new MailComposer());&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;after :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    GWT.runAsync(new RunAsyncCallback() {&lt;br /&gt;        public void onSuccess() {&lt;br /&gt;           addTab(Webmail.COMPOSER, new MailComposer());&lt;br /&gt;        }&lt;br /&gt;    });&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This tells the compiler that adding the composer to the UI is not &quot;top priority&quot;. If this is the first usage of the MailComposer class (in MiniG case it is), all its code will be generated in a separate javascript file. The composer code will be loaded later, when the INBOX was already shown to the user.&lt;br /&gt;&lt;br /&gt;Same applies for the progress bar shown on minig loading. We show the progress bar and can &quot;runAsync&quot; the XmlHttpRequest that fetches user settings on startup. Using this gives us :&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Instant progress bar display&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The main download is done with the progress bar on screen&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The 500K become 50K and then 450K&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;With some runAsync added, I managed to display inbox with only a 170k download.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Class metadata&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;GWT obfuscates a lot of things (renames all your variables to a, b, c, z, a1, z26 instead of their original names). But it keeps the name of your java classes in the code. The &lt;em&gt;-XdisableClassMetadata&lt;/em&gt; forces obfuscation of that to. MiniG uses fr.aliasource.webmail.*. This compile option gives more than 5% improvement. Easy win :-)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SOYC : Story Of Your Compile&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is a reporting tool designed to tell you which parts of your code contributes to the final JS size. This is really helpful to understand where runAsync and code refactoring are most needed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;All those improvements are available in GWT compiler trunk. I tried them all on MiniG code. It is pretty unstable right now, but the solutions are coming. Situation is not critical (500K for a complete application is nothing), but as MiniG will gain features, we had to investigate this. Other optimizations are coming in the compiler, &lt;a href=&quot;http://dl.google.com/io/2009/pres/T_0230_Google_Wave_Powered_by_GWT.pdf&quot;&gt;Google I/O presentation&lt;/a&gt; is a very interesting read.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-3555860718078179195?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Mobile device provisionning with o-push</title>
		<link href="http://tcataldo.blogspot.com/2009/07/mobile-device-provisionning-with-o-push.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-6866266213884705720</id>
		<updated>2009-07-16T18:32:00+00:00</updated>
		<content type="html">I just commited mobile device provisionning to the &lt;a href=&quot;http://code.google.com/p/o-push/&quot;&gt;o-push ActiveSync server&lt;/a&gt;. We tested it with an iPhone 3.0 and it allows pretty cool things.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What is mobile device provisionning :&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;When a device starts its dialog with the ActiveSync server, it sends an header &quot;X-MS-PolicyKey : 0&quot;. The server can either ignore it or choose to enforce a security/enterprise policy. It (the server) does so by refusing the sync request and sending back a 449 http error code.&lt;br /&gt;&lt;br /&gt;Of course you need a device that supports security policies, but the iPhone 3.0 does.&lt;br /&gt;&lt;br /&gt;The device, when receiving the 449 error, starts a provisionning dialog :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;it asks for the server policy&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;the server returns one with a temporary policy id&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;the device acknowledges the id by sending it back to server&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;the server respond with a &quot;final policy id&quot; for the device&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;the device will now use the &quot;X-MS-PolicyKey: &amp;lt;final policy id&amp;gt;&quot; in all its future communications&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;normal sync dialog will occur, except if the server administrator changes the policy (the servers sends another 449 error if the &quot;final policy id&quot; is no longer valid)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What can the administrator enforce in the policy :&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Well, pretty much everything, but as the policy document is pretty explicit, lets reproduce it here :&lt;br /&gt;&lt;br /&gt;&amp;lt;EASProvisionDoc&amp;gt;&lt;br /&gt;  &amp;lt;DevicePasswordEnabled&amp;gt;0&amp;lt;/DevicePasswordEnabled&amp;gt;&lt;br /&gt;  &amp;lt;AlphanumericDevicePasswordRequired&amp;gt;0&amp;lt;/AlphanumericDevicePasswordRequired&amp;gt;&lt;br /&gt;  &amp;lt;PasswordRecoveryEnabled&amp;gt;0&amp;lt;/PasswordRecoveryEnabled&amp;gt;&lt;br /&gt;  &amp;lt;DeviceEncryptionEnabled&amp;gt;0&amp;lt;/DeviceEncryptionEnabled&amp;gt;&lt;br /&gt;  &amp;lt;AttachmentsEnabled&amp;gt;1&amp;lt;/AttachmentsEnabled&amp;gt;&lt;br /&gt;  &amp;lt;MinDevicePasswordLength&amp;gt;4&amp;lt;/MinDevicePasswordLength&amp;gt;&lt;br /&gt;  &amp;lt;MaxInactivityTimeDeviceLock&amp;gt;900&amp;lt;/MaxInactivityTimeDeviceLock&amp;gt;&lt;br /&gt;  &amp;lt;MaxDevicePasswordFailedAttempts&amp;gt;8&amp;lt;/MaxDevicePasswordFailedAttempts&amp;gt;&lt;br /&gt;  &amp;lt;MaxAttachmentSize/&amp;gt;&lt;br /&gt;  &amp;lt;AllowSimpleDevicePassword&amp;gt;1&amp;lt;/AllowSimpleDevicePassword&amp;gt;&lt;br /&gt;  &amp;lt;DevicePasswordExpiration/&amp;gt;&lt;br /&gt;  &amp;lt;DevicePasswordHistory&amp;gt;0&amp;lt;/DevicePasswordHistory&amp;gt;&lt;br /&gt;  &amp;lt;AllowStorageCard&amp;gt;1&amp;lt;/AllowStorageCard&amp;gt;&lt;br /&gt;  &amp;lt;AllowCamera&amp;gt;1&amp;lt;/AllowCamera&amp;gt;&lt;br /&gt;  &amp;lt;RequireDeviceEncryption&amp;gt;0&amp;lt;/RequireDeviceEncryption&amp;gt;&lt;br /&gt;  &amp;lt;AllowUnsignedApplications&amp;gt;1&amp;lt;/AllowUnsignedApplications&amp;gt;&lt;br /&gt;  &amp;lt;AllowUnsignedInstallationPackages&amp;gt;1&amp;lt;/AllowUnsignedInstallationPackages&amp;gt;&lt;br /&gt;  &amp;lt;MinDevicePasswordComplexCharacters&amp;gt;3&amp;lt;/MinDevicePasswordComplexCharacters&amp;gt;&lt;br /&gt;  &amp;lt;AllowWiFi&amp;gt;1&amp;lt;/AllowWiFi&amp;gt;&lt;br /&gt;  &amp;lt;AllowTextMessaging&amp;gt;1&amp;lt;/AllowTextMessaging&amp;gt;&lt;br /&gt;  &amp;lt;AllowPOPIMAPEmail&amp;gt;1&amp;lt;/AllowPOPIMAPEmail&amp;gt;&lt;br /&gt;  &amp;lt;AllowBluetooth&amp;gt;2&amp;lt;/AllowBluetooth&amp;gt;&lt;br /&gt;  &amp;lt;AllowIrDA&amp;gt;1&amp;lt;/AllowIrDA&amp;gt;&lt;br /&gt;  &amp;lt;RequireManualSyncWhenRoaming&amp;gt;0&amp;lt;/RequireManualSyncWhenRoaming&amp;gt;&lt;br /&gt;  &amp;lt;AllowDesktopSync&amp;gt;1&amp;lt;/AllowDesktopSync&amp;gt;&lt;br /&gt;  &amp;lt;MaxCalendarAgeFilter&amp;gt;0&amp;lt;/MaxCalendarAgeFilter&amp;gt;&lt;br /&gt;  &amp;lt;AllowHTMLEmail&amp;gt;1&amp;lt;/AllowHTMLEmail&amp;gt;&lt;br /&gt;  &amp;lt;MaxEmailAgeFilter&amp;gt;0&amp;lt;/MaxEmailAgeFilter&amp;gt;&lt;br /&gt;  &amp;lt;MaxEmailBodyTruncationSize&amp;gt;-1&amp;lt;/MaxEmailBodyTruncationSize&amp;gt;&lt;br /&gt;  &amp;lt;MaxEmailHTMLBodyTruncationSize&amp;gt;-1&amp;lt;/MaxEmailHTMLBodyTruncationSize&amp;gt;&lt;br /&gt;  &amp;lt;RequireSignedSMIMEMessages&amp;gt;0&amp;lt;/RequireSignedSMIMEMessages&amp;gt;&lt;br /&gt;  &amp;lt;RequireEncryptedSMIMEMessages&amp;gt;0&amp;lt;/RequireEncryptedSMIMEMessages&amp;gt;&lt;br /&gt;  &amp;lt;RequireSignedSMIMEAlgorithm&amp;gt;0&amp;lt;/RequireSignedSMIMEAlgorithm&amp;gt;&lt;br /&gt;  &amp;lt;RequireEncryptionSMIMEAlgorithm&amp;gt;0&amp;lt;/RequireEncryptionSMIMEAlgorithm&amp;gt;&lt;br /&gt;  &amp;lt;AllowSMIMEEncryptionAlgorithmNegotiation&amp;gt;2&amp;lt;/AllowSMIMEEncryptionAlgorithmNegotiation&amp;gt;&lt;br /&gt;  &amp;lt;AllowSMIMESoftCerts&amp;gt;1&amp;lt;/AllowSMIMESoftCerts&amp;gt;&lt;br /&gt;  &amp;lt;AllowBrowser&amp;gt;1&amp;lt;/AllowBrowser&amp;gt;&lt;br /&gt;  &amp;lt;AllowConsumerEmail&amp;gt;1&amp;lt;/AllowConsumerEmail&amp;gt;&lt;br /&gt;  &amp;lt;AllowRemoteDesktop&amp;gt;1&amp;lt;/AllowRemoteDesktop&amp;gt;&lt;br /&gt;  &amp;lt;AllowInternetSharing&amp;gt;1&amp;lt;/AllowInternetSharing&amp;gt;&lt;br /&gt;  &amp;lt;UnapprovedInROMApplicationList/&amp;gt;&lt;br /&gt;  &amp;lt;ApprovedApplicationList/&amp;gt;&lt;br /&gt;&amp;lt;/EASProvisionDoc&amp;gt;&lt;br /&gt;&lt;br /&gt;As you see, you can completly &quot;enterprise lock&quot; the phone :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;You can lock wifi, infrared or bluetooth usage&lt;/li&gt;&lt;br /&gt; &lt;li&gt;No photos (we tested this one, the iPhone supports it)&lt;/li&gt;&lt;br /&gt; &lt;li&gt;No text messaging&lt;/li&gt;&lt;br /&gt; &lt;li&gt;No phone unlock without password (we tested this one too on the iPhone), with a strict password policy&lt;/li&gt;&lt;br /&gt; &lt;li&gt;No mail/groupware account except the enterprise/ActiveSync one&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Only allow sending SMIME signed emails&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Force storage of email/groupware data in an encrypted storage&lt;/li&gt;&lt;br /&gt; &lt;li&gt;etc&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Right now, the policy sent to the phones is harcoded in the o-push server, but will probably develop an interface to manage those policies ;-)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-6866266213884705720?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">We had it first ;-)</title>
		<link href="http://tcataldo.blogspot.com/2009/07/we-had-it-first.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-7409873192935133939</id>
		<updated>2009-07-03T00:34:00+00:00</updated>
		<content type="html">MiniG had drag &amp;amp; drop of conversations into folder before GMail. But my implementation clearly sucked (which was not a problem as I find drag&amp;amp;drop an inefficient way to move mail around).&lt;br /&gt;&lt;br /&gt;Gmail did it better, so I mimiced their user interface for dnd.&lt;br /&gt;&lt;br /&gt;No screenshot, but a small video ;-)&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-7409873192935133939?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">obm, minig, packaging and the future</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/06/obm-minig-packaging-and-future.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-793760970196721894</id>
		<updated>2009-06-03T00:13:00+00:00</updated>
		<content type="html">OBM 2.2.4 is out. I published debian and rpm package on obm.org.&lt;br /&gt;After a discussion with thomas, we must create new package to install more easly standalone minig version.  Currently we have minig-conf, mini-frontend and minig-backend, it must add minig-obm which will include just jar to activate minig-obm capabilities. Many people wouldlike use minig without obm and one of the goal of thomas is this. But there are also many people we must use Dovecot or othe imap server, this is'nt tested. Furthermore Tom recently add vacation script and other filter on minig. This feature use sieve script and we must have a meet about this because some sieve feature require cyrus 2.3, and i don't know if  dovecot support sieve script.&lt;br /&gt;&lt;br /&gt;So, once i have some time i will create minig-obm to cut minig and minig integration in OBM&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-793760970196721894?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Vacation in MiniG</title>
		<link href="http://tcataldo.blogspot.com/2009/06/vacation-in-minig.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-7670175874143358549</id>
		<updated>2009-06-02T22:32:00+00:00</updated>
		<content type="html">Now that filters and sieve scripts can be managed from MiniG, vacation is the next step.&lt;br /&gt;&lt;br /&gt;Here's what the form looks like :&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_FrEZyE0A1YA/SiWrhxCnikI/AAAAAAAACO8/9MpnINW8cz0/s1600-h/vacation.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_FrEZyE0A1YA/SiWrhxCnikI/AAAAAAAACO8/9MpnINW8cz0/s320/vacation.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5342865129533311554&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-7670175874143358549?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">You asked for it...</title>
		<link href="http://tcataldo.blogspot.com/2009/05/you-asked-for-it.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-8969419251910107973</id>
		<updated>2009-05-25T20:09:00+00:00</updated>
		<content type="html">And here they come : filters in MiniG :-)&lt;br /&gt;&lt;br /&gt;Cyrus sieve client API is fully functionnal. The UI to define the filters is being implemented right now.&lt;br /&gt;&lt;br /&gt;Mandatory screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_FrEZyE0A1YA/Shr7aFDYYTI/AAAAAAAACOk/h36FpebCdiM/s1600-h/Screenshot-MiniG+Webmail+.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_FrEZyE0A1YA/Shr7aFDYYTI/AAAAAAAACOk/h36FpebCdiM/s320/Screenshot-MiniG+Webmail+.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5339856733652672818&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-8969419251910107973?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">o-push updates and minig status</title>
		<link href="http://tcataldo.blogspot.com/2009/04/o-push-updates.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-8667906177688522237</id>
		<updated>2009-04-24T23:36:00+00:00</updated>
		<content type="html">Just did some updates on the o-push website to reflect its status. To sum it up, it's going pretty well.&lt;br /&gt;&lt;br /&gt;The bad thing about server side software is you cannot show a screenshot. Will try to make a screencast of a working synchronisation.&lt;br /&gt;&lt;br /&gt;Next o-push task is storage implementation : storing device ids, client and server mappings (obm database id to pda identifier). Right now this is stored in memory, but as we plan to integrate o-push in OBM 2.3, I'll use PostgreSQL tables for the persistent storage implementation.&lt;br /&gt;&lt;br /&gt;On the MiniG front, Adrien just committed lots of work on iCalendar invitations. When you receive an event invitation, you can accept it and the event will be created in OBM (or updated if it was already coming from obm). In my opinion, one the nicest minig feature with event invitations is the &quot;has:invitation&quot; search tip to find your pending event invitations.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-8667906177688522237?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">2.2.1 is out, minig integration</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/04/221-is-out-minig-integration.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-6270244593388140840</id>
		<updated>2009-04-21T21:14:00+00:00</updated>
		<content type="html">new release is out: 2.2.1 with minig integration. You can test this with debian packages or rpm packgages.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-6270244593388140840?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OBM 2.1.16-1 deb package is out</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/04/obm-2116-1-deb-package-is-out.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-2286774290347830988</id>
		<updated>2009-04-10T08:14:00+00:00</updated>
		<content type="html">New version of old stable is out, please see the changelog on &lt;a href=&quot;http://www.obm.org&quot;&gt;obm.org&lt;/a&gt;. 2.1.16 fix some bug on UI and sync server.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-2286774290347830988?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">connector up and down</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/04/connector-up-and-down.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-1528096418290018073</id>
		<updated>2009-04-03T07:35:00+00:00</updated>
		<content type="html">of course OBM connector up and down was an april fool..&lt;br /&gt;Perhaps,one day,  this will be reality...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-1528096418290018073?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Connector up and down with Exchange and lotus</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/04/connector-up-and-down-with-exchange-and.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-3083737506933356207</id>
		<updated>2009-04-01T07:43:00+00:00</updated>
		<content type="html">OBM team works on new connector in order to interconnect with Exchange or Lotus Notes. The goal is to use OBM like an exchange server or Lotus server.&lt;br /&gt;One day, a men says!! : &quot;it's simple, you have your Exchange server, you have an OBM server and now... OBM's users can make event with users of exchange server, and users of Exchange can make event with users of OBM&quot;.&lt;br /&gt;&lt;br /&gt;This, now works with &quot;OBMUpAndDownConnector&quot;...&lt;br /&gt;&lt;br /&gt;For debian etch and lenny (or ubuntu),you can add this entry to test the first release in your sources.list:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;deb http://ppa.launchpad.net/sylvain-garcia/ppa/ubuntu intrepid main&lt;/li&gt;&lt;/ul&gt;then:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;aptitude update&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;aptitude install obm-connectorupanddown&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;For rpm user, we work on rpm release...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-3083737506933356207?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Create domain in OBM 2.2.0</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/03/you-can-see-here-tutorial-to-learn-how.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-1402779920515997603</id>
		<updated>2009-03-27T15:29:00+00:00</updated>
		<content type="html">you can see here tutorial to learn how create domain in OBM 2.2, now it's very easy ;)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.obm.org/doku.php?id=obmmail:createdomain22&quot;&gt;http://www.obm.org/doku.php?id=obmmail:createdomain22&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-1402779920515997603?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">O-Push, ActiveSync protocol implementation</title>
		<link href="http://tcataldo.blogspot.com/2009/03/o-push-activesync-protocol.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-7466857629007846827</id>
		<updated>2009-03-27T13:21:00+00:00</updated>
		<content type="html">MiniG is doing fine, so I am working on something else : an ActiveSync protocol implementation to replace OBM PDAs synchronisation layer.&lt;br /&gt;&lt;br /&gt;The O-Push project is hosted on google code : &lt;a href=&quot;http://code.google.com/p/o-push/&quot;&gt;http://code.google.com/p/o-push/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some things allready works : read-only calendar sync from OBM to the iPhone. O-Push can also send mail folder and test emails to the mobile device.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-7466857629007846827?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">New freebusy interface</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/03/new-freebusy-interface.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-4378250736870681466</id>
		<updated>2009-03-25T13:33:00+00:00</updated>
		<content type="html">OBM 2.2.0 is just out and David Phan working on new UI for OBM freebusy in full ajax, just look this. This new feature will be on future release ....&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-4378250736870681466?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OBM 2.2.0 aka &quot;beertender&quot; release is out with deb and rpm package</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/03/obm-220-aka-beertender-release-is-out.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-7579745621631060007</id>
		<updated>2009-03-17T22:08:00+00:00</updated>
		<content type="html">it's done!!&lt;br /&gt;The new major version of OBM is out (2.2.0), you can see changelog (if pierre update it ) on &lt;a href=&quot;http://www.obm.org/&quot;&gt;http://www.obm.org&lt;/a&gt;. what is the news on packaging? there are (like all release) debian package, but now rpm package.&lt;br /&gt;Now OBM team recommends installation with posgresql (8.3). I'm not an expert on SGBD but we had many bugs because of Mysql. For old OBM installation you can use obm mydql upgrade script.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;About debian package:&lt;/li&gt;&lt;/ul&gt;I reorganize repository, because there was one news on debian world: the Lenny release and now OBM 2.2.0. Now the codename of repository is &quot;stable&quot; or &quot;oldstable&quot; instead of debian codename release. So, with this we have now two repositories:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;code&quot;&gt;deb http://deb.obm.org stable obm&lt;br /&gt;deb http://deb.obm.org oldstable obm&lt;br /&gt;&lt;/pre&gt;with &quot;oldstable&quot; repository we can install 2.1.x and with &quot;stable&quot; 2.2.x.&lt;br /&gt;&lt;br /&gt;Altought we recommend to use posgresql you can install OBM package with mysqlserver. Be careful, ist more easy to choose postgres installation. To use mysql-server you must install mysql-server, perllib and phplib for mysql (libdbd-mysql-perl and php5-mysql) before install obm package.&lt;br /&gt;&lt;br /&gt;New package release can upgrade your old obm package installation&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;About rpm package for Redhat 5 and Centos 5:&lt;/li&gt;&lt;/ul&gt;For this release I worked with Ronan and Fabien to make rpm package. This has been start by Xavier Lamien and me  5-6 month ago. Rpm package aren't stable and Ronan and me woking on. you can test packages and find all instruction on &lt;a href=&quot;http://www.obm.org/doku.php?id=docs:admindocs:yumconfigure&quot;&gt;obm.org&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-7579745621631060007?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OBM 2.1.15-2 package.</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/03/obm-2115-2-package.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-7095024911566843482</id>
		<updated>2009-03-02T19:06:00+00:00</updated>
		<content type="html">OBM debian package 2.1.15-2 is out, thanks to AkaZelZer for a patch on 2.1.15-1 about sql ;).&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-7095024911566843482?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">update of OBM debian package 2.1.14</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/02/update-of-obm-debian-package-2114.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-5792597633242071252</id>
		<updated>2009-02-11T19:28:00+00:00</updated>
		<content type="html">There are new packages of OBM, the new release of OBM 2.1.14 is out. you can try it and install it on Debian Etch with this &lt;a href=&quot;http://www.obm.org/doku.php?id=debian_etch&quot;&gt;how to. &lt;/a&gt;&lt;br /&gt;Perhaps the next release will be for Debian Lenny.. if i can work for this, and if Lenny i ready, but it's an other history... :D&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-5792597633242071252?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">All your calendar are belong to us</title>
		<link href="http://tcataldo.blogspot.com/2009/01/all-your-calendar-are-belong-to-us.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-4033518339421751169</id>
		<updated>2009-01-21T10:54:00+00:00</updated>
		<content type="html">&lt;a href=&quot;http://1.bp.blogspot.com/_FrEZyE0A1YA/SXb-_h3WInI/AAAAAAAACMM/i4YEwxOQqDU/s1600-h/Screenshot-MiniG+Webmail+-1.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_FrEZyE0A1YA/SXb-_h3WInI/AAAAAAAACMM/i4YEwxOQqDU/s320/Screenshot-MiniG+Webmail+-1.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5293698779396317810&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-4033518339421751169?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Screenshot day</title>
		<link href="http://tcataldo.blogspot.com/2009/01/screenshot-day.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-1169874329448031914</id>
		<updated>2009-01-20T20:57:00+00:00</updated>
		<content type="html">This time with the separate grid, always correctly sized, for dates labels &amp;amp; all day events ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/SXY680rUpyI/AAAAAAAACMA/0Gqp_W1NeUA/s1600-h/Screenshot-MiniG+Webmail+-+Iceweasel.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/SXY680rUpyI/AAAAAAAACMA/0Gqp_W1NeUA/s320/Screenshot-MiniG+Webmail+-+Iceweasel.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5293483228627511074&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-1169874329448031914?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Better mockup with calendar view</title>
		<link href="http://tcataldo.blogspot.com/2009/01/better-mockup-with-calendar-view.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-829148327714286761</id>
		<updated>2009-01-20T17:23:00+00:00</updated>
		<content type="html">It is not visible on the screenshot, but everything resizes correctly : not outer scrollbar, vertical space is occupied, the columns scale correctly.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/SXYKWpHF8II/AAAAAAAACL4/J2E96t2fPoY/s1600-h/Screenshot-MiniG+-+Contacts+.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/SXYKWpHF8II/AAAAAAAACL4/J2E96t2fPoY/s320/Screenshot-MiniG+-+Contacts+.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5293429796129599618&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-829148327714286761?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Calendar mockup</title>
		<link href="http://tcataldo.blogspot.com/2009/01/calendar-mockup.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-1534695751438436300</id>
		<updated>2009-01-19T21:18:00+00:00</updated>
		<content type="html">As I'll probably never be OK with MiniG interface fitted into OBM, I'm experimenting on calendar integration into MiniG.&lt;br /&gt;&lt;br /&gt;I'm just gathering infos for now, taking screenshots of Google Calendar, OSX iCal and Outlook Web Access. But as you can see on the following screenshot, MiniG looks nice with its iCal like portlet :D&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/SXTu-Y4w1ZI/AAAAAAAACDQ/5uvLP1YKBtI/s1600-h/Screenshot-MiniG+Webmail+.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_FrEZyE0A1YA/SXTu-Y4w1ZI/AAAAAAAACDQ/5uvLP1YKBtI/s320/Screenshot-MiniG+Webmail+.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5293118217667007890&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can also see on the screenshot that french i18n is available in current svn ;-)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-1534695751438436300?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">How to create a good domain in OBM 2.1.X</title>
		<link href="http://sylvaingarcia.blogspot.com/2009/01/how-to-create-good-domain-in-obm-21x.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-4124525900013465388</id>
		<updated>2009-01-18T10:39:00+00:00</updated>
		<content type="html">In mailing list of OBM we can see many people who ask how to create domain in OBM. I had start &quot;how to&quot; with screenshots to explain this, but it's very &quot;difficult&quot; to order many screenshot and text in dokuwiki of obm.org. So I decided to use gtk-recordmydesktop to make avi. &lt;a href=&quot;http://tcataldo.blogspot.com/&quot;&gt;Thomas&lt;/a&gt; already use this to produce some avi of minig, and he is very enthousiast about  gtk-recordmydesktop.&lt;br /&gt;&lt;br /&gt;So i installed &quot;flowplayer2&quot; a small plugin to stream &quot;flv&quot;, and uploaded video on &lt;a href=&quot;http://www.obm.org/doku.php?id=obmmail:createdomain&quot;&gt;www.obm.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I hope that with this, there will be less post about &quot; Help me!! i can't create domain on my fresh install of obm!! but i used the &lt;a href=&quot;http://www.obm.org/doku.php?id=debian_etch&quot;&gt;debian package &lt;/a&gt;of obm.org!!&quot;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-4124525900013465388?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">MiniG slow down; OBM 2.2 deadline coming soon</title>
		<link href="http://tcataldo.blogspot.com/2008/12/minig-slow-down-obm-22-deadline-coming.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-970507710390734233</id>
		<updated>2008-12-04T21:44:00+00:00</updated>
		<content type="html">As you may have noticed, MiniG development is stalling. Last commits were a major feature : reading emails forwarded as attachments.&lt;br /&gt;&lt;br /&gt;OBM 2.2 database model will be frozen on monday, we are working pretty hard on fixing most schema glitches.&lt;br /&gt;&lt;br /&gt;Lots of things are coming in OBM in 2.2 :&lt;br /&gt;&lt;br /&gt; - MySQL won't be the default database, PostgreSQL 8.3+ will be (if you wonder why, give us 64bit timestamps, jdbc compliant driver _by default_, predictable optimizer choices and we will reconsider. A fix for yesterday's mysql busy lockup on a simple query at one of our biggest production site would be a plus).&lt;br /&gt;&lt;br /&gt; - Unicode support (ok, as I'm working on the java parts of the solution, this one makes me laugh)&lt;br /&gt;&lt;br /&gt; - Improved contact model &amp;amp; revamped sync servers to provide a &quot;smartphones compliant&quot; model&lt;br /&gt;&lt;br /&gt; - Usable mozilla lightning support, with asynchronous synchronisation and greatly improved response times !&lt;br /&gt;&lt;br /&gt;In my next post, I'll probably give information on how our sync servers went from 5/sync per sec (single threaded benchmark, mysql) on empty database to something like 30sync/sec (postgresql, single thread, no optimisation (full logs &amp;amp; timing on pg)).&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-970507710390734233?l=tcataldo.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Chat in MiniG, Jabber in OBM</title>
		<link href="http://tcataldo.blogspot.com/2008/11/chat-in-minig-jabber-in-obm.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-2472258046952996135</id>
		<updated>2008-11-18T23:11:00+00:00</updated>
		<content type="html">As jabber integration is important (think lotus sametime, online meetings, etc), I did some prototyping on jabber support in MiniG ala GTalk.&lt;br /&gt;&lt;br /&gt;I did a little &lt;a href=&quot;http://minig.googlecode.com/files/minig-xmpp.avi&quot;&gt;screencast of what OBM+MiniG can do with an Openfire jabber server&lt;/a&gt; tonight. &lt;br /&gt;&lt;br /&gt;Of course jabber integration is OBM 2.3 stuff, I'm just investigating what would be possible.&lt;br /&gt;&lt;br /&gt;The MiniG / Jabber video is also available in poor quality on youtube: &lt;br /&gt;&lt;br /&gt;     &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-2472258046952996135?l=tcataldo.blogspot.com&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Aliasource Team moved from toulouse to toulouse</title>
		<link href="http://sylvaingarcia.blogspot.com/2008/11/aliasource-team-moved-from-toulouse-to.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-5993086219990962448</id>
		<updated>2008-11-14T21:11:00+00:00</updated>
		<content type="html">This week, Aliasource (Linagora GSO), moved. The old work space was became very  small for all Aliasource Team, so we moved to a new building next to our previous location. Now there is 40 employee at Linagora GSO. There is a reorganization of office, and no OBM Team are in same space, in a BIG openspace.&lt;br /&gt;The atmosphere is very happy, we laugh all the time and we have (or i have :D ) many gadget to play... and work.&lt;br /&gt;I hope that this move and reorgaization will improve OBM development.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-5993086219990962448?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Drag'n'drop support in MiniG</title>
		<link href="http://tcataldo.blogspot.com/2008/11/dragndrop-support-in-minig.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-5755766872407756163</id>
		<updated>2008-11-11T14:45:00+00:00</updated>
		<content type="html">Well title says it all : you can move you conversations by drag'n'dropping them from the list to the folder tree. &lt;br /&gt;&lt;br /&gt;It works for one or multiple conversations. My preferred way to move conversations is still with the actions combo-box, as I find it less error-prone.&lt;br /&gt;&lt;br /&gt;As a screenshot does not really work for this kind of features, you can download an &lt;a href=&quot;http://minig.googlecode.com/files/minig-dnd-xvid.avi&quot;&gt;xvid screencast&lt;/a&gt; or watch the youtube version :&lt;br /&gt;&lt;br /&gt;     &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-5755766872407756163?l=tcataldo.blogspot.com&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">End of obm summit</title>
		<link href="http://poudreverte.blogspot.com/2008/11/end-of-obm-summit.html"/>
		<id>tag:blogger.com,1999:blog-6084305113921781249.post-3146189864790125388</id>
		<updated>2008-11-06T09:01:00+00:00</updated>
		<content type="html">The obm summit , which was more an obm coding party, has ended. It was a good experience, for all of us (Pierre Baudracco, Thomas Cataldo, Sylvain Garcia, Nicolas Lascombes, Anthony Prades and myself (Mehdi Rande)). It's time for a little feedback, but first let's start with the basics.&lt;br /&gt;When I take a look at the posts in this blog,  I see that I didn't even introduce the aim of this blog. It's not to late.&lt;br /&gt;My name is Mehdi Rande, I'm french, and I'm part of the development team of OBM, a groupware/crm free software. I'm in charge of the web interface of the software (there must be a link somwhere on the right of the screen to have more informations about OBM).&lt;br /&gt;Last week, the more involved members of the OBM development team (what we call OBM core team) went to Agde, to have a one full week coding party.&lt;br /&gt;The result was quite good, of course a lot of commit was made, but most important we were able to freely discuss about OBM next features, implementation, and development. &lt;br /&gt;Oh I know you might think &quot;Well you can discuss about that every day...&quot;, that's not true, in every working day life, a big part of my time is used for team management, project support, co-worker assistance... The other part is used for OBM coding, so it's quite hard to find time to discuss with the whole core team.&lt;br /&gt;&lt;br /&gt;Of course everything is not perfect, in the last days of the week everyone was very tired, we had some violents flames about coding, and so.&lt;br /&gt;But the conclusion is good,  and I hope I will enjoy once again a obm summit.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6084305113921781249-3146189864790125388?l=poudreverte.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Mehdi Rande</name>
			<email>noreply@blogger.com</email>
			<uri>http://poudreverte.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The Green powder power</title>
			<subtitle type="html">Computer science and magic power, an obm story</subtitle>
			<link rel="self" href="http://poudreverte.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-6084305113921781249</id>
			<updated>2010-07-27T16:37:06+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OBM debian package and easy installation</title>
		<link href="http://sylvaingarcia.blogspot.com/2008/11/obm-debian-package-and-easy.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-8980425497361902944</id>
		<updated>2008-11-05T23:24:00+00:00</updated>
		<content type="html">Tonight i'm very happy to annouce the first public release of OBM debian package. Why am I happy?&lt;br /&gt;  - My main contribution to OBM is packaging ( I work on packaging with all OBM Team and particulary thomas for java package who is the author)&lt;br /&gt;  - It's very important for me that all people can use my work, it's the goal of opensource...&lt;br /&gt;  - With package many people can test OBM and report on &lt;a href=&quot;http://bugzilla.obm.org/&quot;&gt;OBM bugzilla&lt;/a&gt; about all components.&lt;br /&gt;  - I hope that package can diffuse easily OBM around the World !!!&lt;br /&gt;&lt;br /&gt;I wish you a good installation.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-8980425497361902944?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Turned 11</title>
		<link href="http://tcataldo.blogspot.com/2008/11/turned-11.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-4169284239844056200</id>
		<updated>2008-11-05T23:09:00+00:00</updated>
		<content type="html">Now linagora GSO, previously Aliasource and Aliacom, the company I worked with for 7 years turned 11, cheers !&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-4169284239844056200?l=tcataldo.blogspot.com&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">planet.obm.org</title>
		<link href="http://tcataldo.blogspot.com/2008/11/planetobmorg.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-5678906784632865148</id>
		<updated>2008-11-05T22:43:00+00:00</updated>
		<content type="html">Thanks to Sylvain, my blog is now federated on planet.obm.org. It's quite cool to have a central place to report OBM and MiniG progress.&lt;br /&gt;&lt;br /&gt;As I am working on MiniG (and bdf12) most of my time, let's report what happened in the last days :&lt;br /&gt; - we switched to gmail sorting of conversations&lt;br /&gt; - David fixed lots of ui bugs&lt;br /&gt; - search results are now ordered by date desc (David too)&lt;br /&gt; - email (un)starring is coming soon (the \Flagged imap tag)&lt;br /&gt;&lt;br /&gt;Another good news : debian packages of obm &amp;amp; minig will be available soon. Installation nightmare is over. By the way, Obama got elected.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-5678906784632865148?l=tcataldo.blogspot.com&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">OBM technical integration</title>
		<link href="http://tcataldo.blogspot.com/2008/11/obm-technical-integration.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-6956815386175005601</id>
		<updated>2008-11-04T10:07:00+00:00</updated>
		<content type="html">While in Agde, at OBM developpers summit, I did the first steps of technical integration of MiniG with OBM :&lt;br /&gt;&lt;br /&gt;  * Private &amp;amp; public contacts from OBM are visible as contact groups, used for email address autocompletion&lt;br /&gt;  * Email address gathering : recipients of emails sent through MiniG are automatically added as private contacts in OBM. They will be available for autocompletion next time the MiniG composer is used.&lt;br /&gt;  * OBM user settings are pushed to the MiniG ui, to avoid redundent preferences (language, timezone, etc)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-6956815386175005601?l=tcataldo.blogspot.com&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The End of ODS</title>
		<link href="http://sylvaingarcia.blogspot.com/2008/11/end-of-ods.html"/>
		<id>tag:blogger.com,1999:blog-7350707314640812784.post-3140185611974248220</id>
		<updated>2008-11-02T13:02:00+00:00</updated>
		<content type="html">The Agde ODS (OBM developper Summit) is now finished, and much work has been done to improve your favorite Groupware/CRM, &lt;a href=&quot;http://www.obm.org&quot;&gt;OBM&lt;/a&gt;, and also the webmail killer, &lt;a href=&quot;http://minig.org&quot;&gt;MiniG&lt;/a&gt;.&lt;br /&gt;The new stable 2.1.11 was tagged during ODS, and team was worked on the OBM's future version, 2.2.0.&lt;br /&gt;Monday, OBM team return to their normal job at Toulouse (France), to develop OBM.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7350707314640812784-3140185611974248220?l=sylvaingarcia.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Sylvain Garcia</name>
			<email>noreply@blogger.com</email>
			<uri>http://sylvaingarcia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Sylvain Garcia's Blog</title>
			<subtitle type="html">An OBM blog</subtitle>
			<link rel="self" href="http://sylvaingarcia.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-7350707314640812784</id>
			<updated>2010-07-31T04:36:07+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The game is over</title>
		<link href="http://tcataldo.blogspot.com/2008/10/game-is-over.html"/>
		<id>tag:blogger.com,1999:blog-5811557.post-4765706976365735840</id>
		<updated>2008-10-31T18:45:00+00:00</updated>
		<content type="html">OBM developper summit is now over. Week summary :&lt;br /&gt; - lots of commits&lt;br /&gt; - a lot of fun&lt;br /&gt; - some wine, some beers&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5811557-4765706976365735840?l=tcataldo.blogspot.com&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Thomas Cataldo</name>
			<email>noreply@blogger.com</email>
			<uri>http://tcataldo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The G in MiniG does not stand for Gmail</title>
			<link rel="self" href="http://tcataldo.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-5811557</id>
			<updated>2010-07-31T20:48:03+00:00</updated>
		</source>
	</entry>

</feed>
