Tough day today…

Today is my last working day at Novell.  Its my first company from campus and having spent 8.5 years at Novell, it is sad to part away. The last 6 years  with Nat, Miguel, Michael, JP,  Guy, Aaron, Fejj and many more was the best in my career and they all helped me  a lot while working in Evolution/OOo/GNOME and thanks a lot for them :-) .  I’m joining Intel tomorrow to work in the Moblin team and do Anjal/Evolution.  Happy that I would be still working with these people in some ways after moving to my new job.

Calendars for netbooks!!

Over the last weekend, I was bored and previous friday I had a talk my with nice mentor Michael on calendars for the netbooks. All that triggered me to spend some time during the weekend on this new stuff.  Basically I just hacked Evolution, to make it possible to write an external calendar application to fit well into a netbook space. Then I wrote some code to reuse that library and create this. Some screenshots below.

It has a very minimal UI. I have a working *lite*  calendar editor for creating/viewing meetings. I haven’t posted the code publicly yet. I would do that in the next week or so, once I get this to a better shape. Currently I can view, create meetings etc,  work/week/month/day views. Support for evo’s plugins/exchange calendars needs to be fixed.  The design approach is same as Anjal. Break Evolution’s calendar to reusable libraries. Don’t depend on any obsolete stuffs. No bonobo etc etc. Im planning to spend a night some time to commit of the patches that Evo needs before it is branched for 3.0. As of now, this is just 2500 lines of code. The UI is very new, and  It might change, once UI guys do a review. But the idea would remain the same.

This gets you Evolution’s calendar (CalDAV/Google, Exchange, Exchange MAPI(2007), webcal, etc etc) support,  very much usable on a netbook. Defaulted to a size 750×500, it can fit well to any good netbook available today. I’m hoping to spend good time on this, very soon, to make it in production quality to the  netbooks segment.

Oh, btw, I haven’t named it yet. Suggestions ? ;-)

Anjal – Moblin updates

Moblin 2.0 is announced, and I can be more open :-) now. Before I start with anything, one thing that I missed last time. The ‘new-ness’, ‘awesome-ness’ of Anjal’s UI, *FULL* credits of the UI design goes to the Intel UI Team, specially thanks Nick Richards, Hylke Bons, and Clarie Alexander. I really donno how many hours, its  Nick who discussed each and every page of it in detail in chat, and helped me create the UI from mock. Btw, don’t ask and compare his wireframe with the UI ;-) , it deviates a bit, due to feasibility, etc.

Now back to Anjal… screenshots…. descriptions. Here goes the main screen.

The main focus points on the main screen:-

  • Tabs – Every single thing is a tab.
    • Your mail, folder, settings, account details, etc.
    • Every thing is a unique tab. Meaning double click opened mail, you would be directed to the already opened tab.
    • Are you a keyboard power user? If so, you can live inside singe tab. Keyboard controls (ENTER) opens the message in the same tab of the folder and BACKSPACE takes you back to the folder view. You don’t have to worry with mouse.
  • Threads – I would call it smart threads, similar to gmailish.
    • Threads group them selves, and moves up the sort, as and when you get new mails to it.
    • The count says, how many messages you have in it. May be later, I would add how many new in it as well.
    • The live-preview, gets you approx ~200 chars from the latest message of the thread. Its picks unquoted text, leaves out headers etc and gets you the possible best of the message.
    • On the left, mark entire thread as read and on the right, mark all as junk/spam.
  • People – Its not yet implemented. Ideally it would add a tab of addressbook.

  • Thread Display – Everything inside a thread.
    • This is the message view, with in the same tab. Other would look no different, when in a new tab.
    • It just lists down the messages with in the thread.
    • Auto scrolls down, to the first unread message, and auto expands it.
    • Marks messages as read, as you scroll down the messages in the thread.
    • ’show details’ – hides most of the headers. Click that or Shift Left/right shows that.

Oh, you need to reply?

Click that ‘Reply to Andre Klapper’ button, opens you a inline composer, scrolled down well. Write up can and press Send. and continue reading rest of the thread. Next composing a new mail ?

‘To:’ – Auto completes from EDS. We just don’t have an addressbook UI.

Need to search for an email ?

Type and Enter to search. Instant apply message list. No regen etc. Thread in message list adpot to search automagically. Preview in message list too adpots to search. Fixed sorting options now,  instant apply when selected.

First time creating?

You will get a 1024×568 min welcome screen. It is intelligent than it appears.

  • Auto fills Full Name from user account
  • You just fill-in email-address. If its a popular service, it does the rest.
    • ‘rupert@gmail.com’ then it fills in the IMAP/SMTP configuration automatically.
    • Now just have GMAIL, Yahoo, MSN, AOL. In future, we would support more. I would like to do even region wise support.

Check up everything on the review page.

The setting page, now only provides an option to edit account. More preferences should be done down the lane. Its pretty usable now, though there are some random crashers and issue.

Anjal has a bugzilla in GNOME and should be easy to try out and report a bug.

Source code is maintained at http://git.gnome.org/cgit/anjal and Anjal need patched  Evolution/EDS and Webkit. Patches available as part of the source code itself for various versions.

GNOME 2.27.x would have the Evo/EDS patches merged in a week or so and I *must* soon push the webkit patches, been busy and didn’t have much time.

Want to try out? Bharath is actively maintianing OpenSUSE build service daily snapshots – http://download.opensuse.org/repositories/GNOME://Evolution://snapshots/ Try out Anjal on OpenSUSE 11.1 / Factory.

If you catch Bharath(abharath) on irc (GimpNet-#evolution/FreeNode-#opensuse-gnome), make him to build for GNOME 2.26. Easy buy him time or Chicken. Anything would do :-)

Or easier, find out how to try Moblin2 on OpenSUSE and see  http://en.opensuse.org/Moblin for screenshots etc . We have a *scary* (It will wipe off your disk and Install OpenSUSE/Moblin) iso as well as installable rpms.

Even easier, install from http://download.opensuse.org/repositories/Moblin://UI/openSUSE_11.1 or http://download.opensuse.org/repositories/Moblin://UI/openSUSE_Factory build service repositories. [I hope the build would complete before you try. If not, be patient for a few hours]

Ok, all those apart, its still not yet 0.1, which is gonna be very soon. It works well, reliable, but there some crashes, minor issue, ui glitches yet to be carved to perfection :-) which is on the way very soon.

On the whole, checkout everything, join us. Moblin rocks!!!

Announcing ‘Anjal’- the new mail for netbooks

What is Anjal?

Anjal is a new mail UI created on top of Evolution. It would have a very interesting UI & features, that would make it the very suitable for low memory/processor/resolution devices.  It is Evolution & EDS at the back of Anjal. We have broken down Evolution mail library to a smaller component and made a reusable shared library to be used by Evolution.

Anjal would be using WebKit for mail rendering and composing. It features a nice multi-line message list, with unquoted text-preview of the latest  messages in the thread.  Its configurable to make it even more lighter, by choosing a sqlite-cursor-based tree view, which would have the visible window of the message list on memory, very suitable for mobile environments. It supports tabbed browsing, a small preference window & new account setup. The project is ~20 days old and would go more changes as it grows, wrt features and UI, to make it a good mail-client for GNOME on Netbooks.

Message list

Message list

It would feature a nice conversation view, where you can open/view threads on the conversation view. Yeah, you would ideally see your messages also part of the thread.

I have some more screenshots at here.

The code is hosted in git://git.gnome.org/anjal You can check out, try use it  and ofcourse contribute to it. You probably have to patch EDS, Evolution and Webkit which adds some new apis. The patches are part of the source repository. We don’t have a bugzilla yet, but we are working hard for  a 0.1 pretty soon. Pour your feedback to me.

Update:

Andre asked me to explain the name for ‘Anjal’ :-) . Anjal means ‘Mail’ in Tamil

Evolution 2.24.4 released

It was Saturday morning 2:00 am when I published the tarball. So what’s special?

This is the first additional release past the regular stable of GNOME 2.24.3. We saw that the 2.24.x series brought regressions due to the disk summary work. With every stable release we made it better and we thought it might be good to continue this and add two more releases on stable branch. These are the dates and 2.24.4 is already out

2.24.4 on Jan 30
2.25.5 on Feb 25

Thx to “ever great” Milan Crha for hacking out sqlite/fsync/ext issue which hurt our performance a lot. He wrote an awesome piece of sqlite vfs similar to FF’s vfs but a lot simpler which improved performance by 75% atleast. And thanks to David Ronis (huey) for some fine bugs which saved 2.24.4 and thx to Srinidhi who gave me the ultimate NEWS generation script which just did everything automatically. It’s a bit buggy but should be better in sometime. I would push Srinidhi to share it somewhere , it would be useful for a lot of people.

Back to work from my vacation: Cockroaches on the Train

I just returned today after a 10 day vacation for Diwali. Reaaaly away from mails, blogs, code and now I must have a huuge back log and a release tomorrow ;-) . Oh, I took Mysore express  to reach bangalore, which is a 13 hour overnight train ride from my town to Bangalore. I got seats in the first cabin an air-conditioned coach and there were three other couple on the same cabin. Just in 10-15 minutes after the train started moving, my wife cautioned me of couple of cockroaches and I caught with a tissue and threw them off and the couple opposite to me was smiling at us and I didn’t realize it. Just a few mins later, we happen to see atleast 20-30 cockroaches roaming around the cabin and I now I understood why they laughed and they told me they too caught a couple of them out off the cabin and realised that there were too many to do so. We reached to a point, where we felt there are too many and can’t travel and we complained to the TTR [coach-maintainer] where he called some attender to pour some liquid [doubt, if it is a anti-insect chemical]. Just in a matter of 10 mins, we happen to see few hundreds of them out there of variying sizes coming out of the a/c duct on the first cabin. Sucks…  The only weapon we had was a rolled-newspaper with which we hit to kill them that comes towards us and tired of it, me and another couple with a sweet little girl ‘Tanisha’ almost surrendered our tickets and asked for a seating ticket and got one which was the same cabin, but 5feet away from our old one. Still the issue of cockroaches but better. It was almost 12.45 am when I could get a sleeping berth for my wife and around 2am I got one and I almost slept the entire day sleeping :( . WTF Indian Railways [supposed to be big/old org]  make it a must to pest-control train compartments. People with kids were always scared of insects roaming around to enter ears or over their heads. Anyways we had nice time that each and every one on my cabin was using that single rolled paper to pass around to hit the cockroaches and other idenifying the ones roaming near them… lots of fun though. Its not scary as ‘Snakes on the plane’  but definitely disgusting

Evolution 2.24 & Windows port

I have delayed my blog for Evolution 2.24, since I was waiting for Tor and Bharath to complete the Windows port. Yes, Evolution for Windows is available. Click here to download Evolution on Windows . Kudos to Tor (who intially ported base Evolution/friends to Windows) & Bharath for their  work. They also had a equivalent windows binary for most of the intermediate dot releases. We would  try hard to fix bugs reported on this build.

What’s new in Evolution 2.24?

  • Message Templates
  • WebDAV Contacts support
  • Google Contacts support
  • Custom header support while sending mails
  • Single Model view for Calendar
  • Sqlite Based message summary (aka Camel On-disk Summary)
  • New Bonobo-less composer for Evolution
  • Quota support to IMAP/POP accounts
  • Gtk+ Recent manager integration in Composer
  • Contact-list for Exchange

and 530 bugs and approximately 50 crashers fixed.

Camel/Disk summary has some regressions which I’m currently working to close it, so that 2.24.1 should be even more stable and bug-free.

Thanks a lot to every one who has contributed to Evolution.

Disk summary updates…

We released 2.23.5 with the basic merge of disk summary. Ever since, It has become a busy working week. Working more than 12 hours day and almost all 7 days of work for me. It happened that Sankar’s db search didn’t work well for us and I started writing a sexp to sql parser and completed that in almost 4 days. It feels so good, when you do things and that works awesome with out much issue. Now almost everything in search is completed. Except body-contains query, everything else is just searched on the db with out being loaded to the memory and results are shown. Now, Im going to rework search folders, to do it. Thanks to Milan, who fixed two serious issues in Disk summary.

I started fixing IMAP, to take advantage of disk summary. I just happen to uncover a excellent bug, which I myself hated to see. At times, you see an already read mail in Evolution, but the cache seems to be missing, though you are sure that you read that mail in Evolution. It was so annoying that you would be offline while seeing this. I finally found the core issue and fixed it in camel-imap-folder.c:imap_rescan. The main issue is

If client has uids 1,2,3,4,5,6… and server deletes uid 2 on auto-expiry  or some other way, then Evolution use to delete all summaries from 2 till end and its cache and redownload the summary. I have also seen that at times, Evolution take more time to download summaries, specially if Im back from a vacation or so. This is the reason. If at all you are using 2.22.x (where all mails not just RECENT are filtered) and you have a filter to archive mails, you endup downloading duplicate mails to your archive folder. Anyways, I fixed it finally. Im planning to do some more imap improvements during my free time. IMAP should be much better in 2.24.

We have created a tracker  Bug 543389 – Camel Disk summary bugs (Evolution). Add all disk summary bugs to this tracker. Try Evolution 2.23.6 and file bugs.

Back from Istanbul and a few updates

Pretty late blog, but really busy. I landed in Bangalore on July 14 8am to attend a 5 day out-door training starting at 10am. Lucky that the timezone difference isn’t very bad, I happened to manage with my training.

Guadec:

  • Nice parties and thanks to all their sponsors and GNOME.
  • Had nice discussions/talks with Michael, jpr, hpj, Miguel, Aaron, Scott and lot of other hackers
  • Announced about the Evolution licensing change
  • Had a couple of talks at GUADEC
  • Nice chats with Muelli, jrb, thomas, philip,  jorgen
  • Attended lots of talks

Post guadec:

  • Stuck in a training till friday on project management training.
  • Merged on-disk summary with trunk and guess what trunk must be broken for few/most cases. We will shape it well.Blame me/sankar if you see lots of warning on compilation, we explicitly added ‘#warnings’ for lots of stuffs to make sure we fix it instead of growing FIXMEs in the code. We ported most of the providers. Didnt do much for imap4 provider. But will do for it also post 2.23.5 which is on Monday. (Sorry fejj, too busy, so we delayed it). Any other camel provider like evolutin-brutus needs to be ported. I had a live demo at guadec on this and I have some graphs which I collected during my demo. I will attach at the end of the blog.

I had a fixed set of data for Evolution, couple of accounts and 2 vfolders which sort of fetches from all these folders. In total 200,000 mails.

Evolution 2.23.4 (before the merge)

before moving to disk summary

Evolution 2.23.5 (after the merge)

After the merge

Sankar already did a post on how it is done. I got these from massif, I know these arent exact but the comparison sort of shows difference/improvements.Evolution sort of releases unused memory over a period of time when you move away from folders and vfolders queries from db and loads counts. So nothing is loaded except what you see. But there are some issues lying around with the sqlite memory cache free, because of which at times it goes 100% cpu on to allocation of memory during sqlite commit. So Im sort of disabling all memory drop thread for 2.23.5 and would get them to shape during 2.23.6 or so. We have added lots of debug and g_assert(0) at few places to capture some important traces/issue so bear with us in 2.23.5 if it crashes more. File all your bugs to bugzilla and add to the tracker bug. All would be fixed and Evo 2.24 would be slim and rock solid.

Istanbul – GUADEC

I’m gonna start to Istanbul for GUADEC 2008 in another 2 hours. I should be there Sunday evening at Istanbul and would be staying till July 13. I’m gonna present two talks

These explains about some of the interesting things that we are working for Evolution, for GNOME 2.24 and GNOME 2.26/28. Me, Chenthil and Johnny are traveling together this time.

Bad Behavior has blocked 114 access attempts in the last 7 days.