Tuesday, June 27, 2006

Making Evolution Cool

I wanted to try and find a project that I could work on in my free time that would help the community, along with helping solve some of my own needs. We have had excellent success here at the City taking time and date material from manual systems and from our financial software and loading it into iCal files which then display in Evolution.

I have been poking at developing a method for downloading time and date related information from the web and then formatting that information into .ics files which then display in Evolution. At this early stage it's just developed with lynx --dump and then a ksh script does the formatting. But I would like to develop a simple scripting language for reading this content and formatting it easily to promote the development of lots of similar plugins.

I have been working on a few simple plugins to determine the scope of fields that need to stored, and also how the scripting language would work. I have been testing plugins to display movie times at local theaters, displaying the lowest rates for car rentals for a block of dates, displaying lowest prices for air travel for a block of dates, and displaying lowest prices for hotels for a block of dates. This would turn Evolution more into a portal, that watches the web automatically and updates itself as the prices change.

Wouldn't it be nice if a plugin system like this was built into Evolution? That would make Evolution very cool. Find me on the IRC or email me (flbeachlf at yahoo.com) if you have any suggestions. It's all at a very early stage, and I'll need some help with the scripting language development. There also would have to be a method to generate front ends very quickly to allow the entry of the basic criteria.

What is a blog without screen shots? The shots show the original source material as it appears in Firefox, and the resulting information that was brought down via the scripts.

Evolution displaying car rental rates:

Evolution displaying show times at a theater:

Monday, June 19, 2006

Benchmarks: Display Of Email Headers

I have been doing some testing for Harish, Sankar and Chen in regards to the time it takes for headers to display in Evolution using SOAP/GroupWise. I found a user that had 430 messages in their Mailbox and did some benchmark testing. The results are fairly flat, and seem to be roughly the same no matter what time of day they are performed. I timed from a cold start, from the point the UI fully displayed up to the time the messages appeared. The results are below:

I'm hoping that we can shave some time off these numbers because that would make Evolution appear to be running "faster". Right now our biggest issue is load time of calendar events, and we seem to be making progress in that area.

Tuesday, June 13, 2006

Guidance - GNOME Hurricane Tracker

The hurricane season started on June 1st, and Alberto already went right past us. I wrote a program last year to downoad images from Weather.com and our users were starting to run it again this year. It turns out that Weather.com had moved the images. I made a small change and it's working again. I'll pack up another release and move it over to Source Forge.

Here is a shot of the UI. All it does build a list of the hurricanes for the current year, and put them on tabs. It then puts the downloaded images into the appropriate area.

Monday, June 12, 2006

Benchmarks: Evolution Calendar Loading

Harish has been so kind as to put in some experimental Evolution code for testing purposes to resolve one of our issues. We have some users with thousands of appointments that go all the way out to 2008. The old version of Evolution would find all of the meetings and load them in reverse order from 2008. The power users were having to wait 2-3 minutes before the UI would load the current date.

I have configured a test of doing a preload of +- 21 days. This loads 3 weeks into the future and then 3 weeks into the past initially and then does the rest of the calendar after it's finished. The shot below shows how the new code loads appointments:

I tested with a stopwatch the user that has the most appointments in the entire City, easily thousands of them and got the following benchmarks:

I have been able to draw the following conclusions:
  • The normal load time should be approximately 6-7 seconds.
  • There is a latency/threading/timing issue between Evolution and Evolution-Data-Server which greatly alters the results. It seems like sometimes EDS is not quite ready for a query at startup and then Evolution waits a few seconds and tries again. This possibly could be because of the speed of our server and/or threading issues on 4 CPUs that isn't normally seen on a laptop or workstation. When the two are in sync, it loads in 6 seconds. When they are off, the timeout adds about 6 seconds.
  • It seems possible to drop into code which doesn't use the environmental variable for setting the 21 day PRELOAD. Sample #4 followed the old code logic and loaded the calendar in reverse order and took over a minute.
  • It seems possible for eds to never sync with Evolution in rare circumstances. In sample #10 data was never returned from GroupWise.
I think we are on the right path with this new code, once these issues are resolved.

Friday, June 09, 2006

GNOME Polish

This widget problem has been around forever, and falls under "GNOME Polish". For years now many applications have had option menus with white space that fills the entire screen and forces the users to scroll up in a very un-natural way. These little things irritate 'regular users'.

[Shot taken from Acrobat, many other apps do the same thing]

Thursday, June 08, 2006

Handheld Device Progress

Linux powers our desktop (GNOME), email (Evolution) and email backend (Groupwise). An ongoing project to allow our users to use handheld devices to access our network is nearly complete.

  1. Plugin for GroupWise must run on Linux and not require another server.
  2. Offline viewing of email/calendars must be supported via sync and download.
  3. Sync must happen over wireless, because we don't have want/have cradles.
  4. Installation to handheld devices must not require Microsoft Windows.
  5. Citrix client must allow real-time access to our applications in 802.11 hot spots.
We have selected Omni Mobile because they resolved requirements 1-4 very nicely.

We picked devices running PocketPC because it resolved issue 5, and is one of the supported platforms for Omni.

We are rolling this out into production in the next few weeks.


Omni Mobile syncing with and displaying my GroupWise Mailbox.

Omni Mobile syncing with and displaying my GroupWise calendar.

Citrix connection to GNOME & Evolution in 480x640, 16bit, Display Factor 2.

Citrix connection to GNOME/OpenOffice 2 in 480x640, 16bit, Display Factor 2.

Wednesday, June 07, 2006

Cairo Endian Fixes

After working with Rodo from Novell for about a week, he was able to resolve the issue where GTK applications would appear in the wrong colors when running in 8 bit depth. The issue apparently was related to fact that Metaframe for Unix runs on Solaris and it was having some endian problems. The screenshot indicates his excellent before and after work. Thanks!

I Moved In Too

Thanks to Harish for pointing me to this blog site. I have been wanting to post information for a while now about the City of Largo. Instead of focusing on the development process, I can speak of deployment issues.

I hope to provide information that is useful to other people.