Nice move from my past employer, pushing me out of our free (?) software mailing list.
I guess helping people without getting anything in return does not comply with the new rules... http://obm.org/doku.php?id=tools:ml:charte
Saturday, November 06, 2010
Thursday, August 19, 2010
minig 2.3.10.1545
Few things fixed in this release :
This should fix opush problems as opush & minig IMAP lib are shared.
- login with complicated characters in password
- html email was not correctly indexed
This should fix opush problems as opush & minig IMAP lib are shared.
Friday, August 13, 2010
Thursday, August 12, 2010
Singleton for dummies
While searching for some coding practices, I realized some people are wondering how to do a singleton in Java (I know, this is considered an anti-pattern when badly used) :
That's the _only_ way to do it correctly in Java. Your static block is protected by the classloader lock, so everything is fine. This implementation _can_ bug, but that supposes you know how to subclass/implement a ClassLoader. In a webapp it's fine if you're wondering (well tomcat will leak your singleton memory if you abuse hot deploy).
I made this post as I'm reviewing some opush contributed code. What you can find on the net about java & singleton is quite fun. Nice article by someone who didn't know what are static blocks. Static blocks are "Java approved" since 2000.
public class Controller {
private static final Controller ctrl;
static {
ctrl = new Controller();
}
private Controller() {
}
public static Controller get() {
return ctrl;
}
}
That's the _only_ way to do it correctly in Java. Your static block is protected by the classloader lock, so everything is fine. This implementation _can_ bug, but that supposes you know how to subclass/implement a ClassLoader. In a webapp it's fine if you're wondering (well tomcat will leak your singleton memory if you abuse hot deploy).
I made this post as I'm reviewing some opush contributed code. What you can find on the net about java & singleton is quite fun. Nice article by someone who didn't know what are static blocks. Static blocks are "Java approved" since 2000.
Wednesday, August 04, 2010
Leaving my current job
I'll switch to another job in october. My work on MiniG & OPush will continue. I created those projects and I'm proud of them. tcataldo@minig.org is a working email to reach me.
I'll have some time to fix flawed things in MiniG with my next assignment ;-)
I'll have some time to fix flawed things in MiniG with my next assignment ;-)
Saturday, July 17, 2010
Tuesday, April 06, 2010
New minig feature
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.
Tuesday, March 30, 2010
Monday, March 22, 2010
BigG, GrosG, MaxiG, you name it....
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.
It does not do a lot for now, just outputs some logs while doing the LMTP dialog:
Postfix is happy with that:
Next step is to parse the mail with mime4j before giving it to CassandraAgent. The agent will push everything to a cassandra node.
Coming soon to BigG (mostly empty) website.
It does not do a lot for now, just outputs some logs while doing the LMTP dialog:
2010-03-22 22:49:59,458 RunnableExtensionLoader INFO - DeliveryFactory loaded.
2010-03-22 22:49:59,462 RunnableExtensionLoader INFO - ValidatorFactory loaded.
2010-03-22 22:49:59,462 RunnableExtensionLoader INFO - Loaded 2 implementors of org.obm.lmtp.lmtpbackendfactory
2010-03-22 22:49:59,499 LMTPDaemon INFO - Starting LMTP daemon...
2010-03-22 22:49:59,565 MinaServer INFO - mina lmtp server created
2010-03-22 22:49:59,578 MinaCodecFactory INFO - mina codec factory created
2010-03-22 22:49:59,589 MinaLmtpServer INFO - Starting listener. active: true h: org.obm.mina.MinaIoHandler@128ae45a
2010-03-22 22:49:59,589 LmtpServer INFO - server started
2010-03-22 22:49:59,589 LMTPDaemon INFO - LMTP daemon started.
2010-03-22 22:50:17,969 BiggLmtpBackend INFO - addressStatus(sga@zz.com)
2010-03-22 22:50:17,969 LdapValidator INFO - validating sga@zz.com
2010-03-22 22:50:18,039 BiggLmtpBackend INFO - deliver(org.obm.lmtp.backend.LmtpEnvelope@7a19a37a, blob: Blob: { path=/tmp/blob2739528671992765153.bin, size=null }
2010-03-22 22:50:18,040 CassandraAgent INFO - delivering to a cassandra node... in the near feature :/
2010-03-22 22:50:18,043 MinaIoHandler INFO - session closed
Postfix is happy with that:
Mar 22 22:50:17 obm23 postfix/pickup[6601]: E27B85E82: uid=0 from=
Mar 22 22:50:18 obm23 postfix/cleanup[6827]: E27B85E82: message-id=<20100322215017.E27B85E82@lenny.buffy.kvm>
Mar 22 22:50:18 obm23 postfix/qmgr[1996]: E27B85E82: from=, size=284, nrcpt=1 (queue active)
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)
Mar 22 22:50:18 obm23 postfix/qmgr[1996]: E27B85E82: removed
Next step is to parse the mail with mime4j before giving it to CassandraAgent. The agent will push everything to a cassandra node.
Coming soon to BigG (mostly empty) website.
Saturday, February 13, 2010
Jabber in minig
Tuesday, February 09, 2010
Filters in MiniG for 2.3.2
After 6 month with filters code disabled in MiniG, I finally took the last steps to enable them : vacation & forward handling using OBM infos.
The finishing touch was pretty boring :
Well it's done and will be available with all 2.3.2+ obm installs.
Everything is not perfect : obm vacation & 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 & filter rules.
The finishing touch was pretty boring :
- adding APIs to OBM sync for updating forward and vacation infos in the UserObm table.
- Completing the vacation ui in MiniG
- Adding an interface to set email forwarding
Well it's done and will be available with all 2.3.2+ obm installs.
Everything is not perfect : obm vacation & 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 & filter rules.
Friday, January 29, 2010
Back in Toulouse
Just spent one month in Paris to meet few customers and give some training to our Paris "obm core team".
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.
While in Paris, Thomas Chemineau gave Sylvain & 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 simple diagram on how we could implement minig sso using lemon.
This week I'll work on finishing MiniG sieve filtering code :
- handle vacation settings from obm
- use email forwarding infos from the obm database
Subscribe to:
Posts (Atom)