Wednesday, June 10, 2009

Mesa To The Rescue

My thanks to the people that clarified for me where Qt and GL (Mesa) are used in Google Earth. The earth canvas itself is coming from GL. The first thing I did was try and install an updated version of Mesa built on OS 11. That made things even worse. I then installed the version that shipped with OS 11.1 and it's rock solid. No blinking, no font problems, no areas of the screen turning white.

That Mesa update, along with using newer Qt libraries has produced a very nice looking UI with anti-aliased fonts. Now all I need to do is QA the ability to launch Firefox and Evolution from within the software, and it's ready for deployment.



Update: Interestingly, using the trick to soft link in the new Qt libraries for anti-aliased fonts breaks printing and the edit >> copy image feature. I suspect that users will kind of need that. :) I have reverted back to the shipped Qt libraries and things are running well. I have not been able to figure out exactly what GE does when you click on the email button. It's supposed to pass the mailto: tag to Firefox, which it seems not to do. $BROWSER pointing to Firefox doesn't seem to help either. The File >> View In Google Maps option works fine and calls Firefox. Time to strace and see what it's doing.

[ Shot of GE with stock Qt libraries, sorry to see anti-aliasing gone]

Monday, June 08, 2009

Anti-Aliased Images In OpenOffice 3.1 Over NX

We just got a support call from a user at a remote site running NX at 20Mb. He reported that ever since OpenOffice 3.1 was installed, images are moving very slowing in Draw. 3.1 introduced anti-aliased images, so that was my first thought. I had him disable this new setting, and he said it immediately got faster. I just tested at 100mb, and it's doing the same thing. Slow scrolling and movement.



Thanks for all of the comments and ideas on the Qt/Google Earth 5 font rendering problems. Over the next few days, I'll be tinkering with libraries to see if I can make it work better.

Friday, June 05, 2009

Calling QT Gurus

I'm prepping Google Earth 5 for deployment, and found an issue that appears to be a bug/peculiarity in the QT libraries. When you first launch it, everything is working and nicely anti-aliased. But as you start navigating through the maps the fonts all blink and then turn into white blocks (shot below). If you go into preferences and pick another font, then it seems to repaint and fix itself. I haven't tinkered with QT stuff since we moved from KDE to GNOME, so if anyone has some ideas...drop a comment!


Firefox 3.0 Stable, Moving Live

Normally when I am staging an upgrade, I will use the latest release -- even if it's only in beta. I spent time off and on testing Firefox 3.1/3.5 and was never able to get it stable enough to deploy. It was crashing way too much, and the core problem seemed to be the interaction with the Flash 10 plugin. I know, I know....3.1/3.5 is still a beta release. But one hates to move out a version into production that is nearly obsolete.

Anyway, I have installed 3.0.10 and all of the plugins including Flash are extremely stable and working well. I'm getting fairly decent frame rates to the thin clients, and the pulse audio streams are working well. I also had good luck with the FoxTab 3D plugin and that too will be pushed live as part of the upgrade too.

I also have been spending time on Evolution 2.24/SLED 11. We have about 30 fulltime users on it, and it's slowly inching to the finish line. We have one more major feature to include (resend of a meeting from the Sent folder). Then comes bug hunting, crash reductions and then some valgrind/leak hunting.

Saturday, May 30, 2009

Evolution Picture Gallery Under Development

During the 2008 UI Summit, one of the things that I mentioned is that once people get a file manager in software, you lose them. They don't understand navigation and files and directories (right Sebastian Faubel?). The two most popular features in OpenOffice believe it or not are the email button which automatically attaches the current document to Evolution, and also the picture gallery. When you click on the picture gallery button, clipart and photos are displayed and they can drop and drag them right into OOo Writer.

Pepp and Mbarnes have hacked on a patch to integrate that feature into Evolution. The beauty of the patch is that it consumes no real estate for those that don't want to use it. We currently have an icon on the desktop that opens Nautilus with emoticons and city logos; once this patch is merged I'll be able to move all of those pictures directly into Evolution.

OpenOffice allows you to add your own Galleries, so in theory the two could be synced for consistency.

Thursday, May 28, 2009

New Impress Layouts Landed In Milestone 49

Our bountied OpenOffice change to add two new layout types landed in milestone 49. My thanks for Sun for accepting the patch and getting it merged so quickly. This will be a big help for our users.



Our other bounty, adding sentence case, is currently going through review and will require an OASIS file specification change. But it's getting attention, and moving.

Thanks Pepp!

Wednesday, May 20, 2009

Tuning For Evolution 2.24

Now that SLED 11 has been released and our server has arrived, I am in the process of prepping Evolution 2.24 for citywide deployment. The server has been built and configured, and today for the first time I started load testing. I am tuning for 300 concurrent, which Evo 2.6 on SLED 10 easily handles. With a user load of 21 people, I was getting the results below. Not good. Notification-daemon + dbus were chewing up tons of CPU.



With some tips in #evolution and poking around I made the following changes to the Evolution launch script:

/usr/bin/gconftool-2 --type Boolean --set /apps/evolution/eplugin/mail-notification/dbus-enabled False
/usr/bin/gconftool-2 --type Boolean --set /apps/evolution/eplugin/mail-notification/status-blink-icon False
/usr/bin/gconftool-2 --type Boolean --set /apps/evolution/eplugin/mail-notification/status-enabled False
/usr/bin/gconftool-2 --type list --list-type string --set /apps/evolution/eplugin/disabled "[org.gnome.evolution.sa_junk_plugin,org.gnome.evolution.mail_notification]"

This turns off all things blinking, dbus and calling the notification-daemon and now it's running much better. We already have a mail-notification popup applet running, and the alarms daemon will provide notification of meetings.

I will continue to tune over the coming weeks.

This is making me ponder how well newer versions of the GNOME desktop are going to scale on multi-user servers. Just a friendly reminder to people working on this code; keep those of us running hundreds of people in mind! :)

Update: Here is the same user load after the changes.

Tuesday, May 19, 2009

Hero Of The Week: Chen

No offense to my other heros, but the award this week goes to Chen. :) He just merged into Evolution the first set of patches to allow users to retract/resend meetings with the Groupwise backend. This is a HUGE thing for us, and we are very thankful.

Friday, May 15, 2009

PDFShuffler Is Wonderful

My thanks for the comment that pointed me to PDF Shuffler. What an awesome piece of software, and a big help for us. When I first tested it, it only supported 24 bit color. I submitted a bug report and within a few days it was already fixed to work in 16 bit as well.

You drop and drag PDF pages right into the UI, and all of the pages load as thumbnails. You can then shuffle them into any order you want, and you can delete individual pages with a right mouse click.

I have already taken some initial steps to possibly bounty out a few more features:

- Drop and drag of photos which insert as a PDF page
- Drop and drag of OpenDocument files which convert to PDF pages.
- Running total at the bottom to show total number of pages, and total file size of the resulting PDF.

Wednesday, May 13, 2009

OpenOffice 3.1 Stable, Thank You

On Monday night I installed and configured OpenOffice 3.1 for the whole City. Once again it was painless and I just had to make the change once. We didn't get ONE call about the upgrade and no bugs have been reported. I know that means that un-named people are QAing this behind the scenes. So my thanks to all of you.




The server is running as expected and user load rarely is going over 10%. The shot below is how it looks with 125 concurrent OpenOffice sessions running. I guess having a 4 CPU, Quad Core kind of helps. :)


Wednesday, May 06, 2009

Experimental GUI For Users

As a very "back burner" project I have been experimenting with some ideas to assist our users. It has not been successful to explain file types (pdf, odt, jpg), or concepts like megapixels to most of them.

Here is what they struggle with from their perspective:

1) Sending pictures to other people via email and not getting it rejected because their email system won't accept the file size. 10 megapixel? What's that? What is 2MB?

2) Having dissimilar files and wanting to put them together into one PDF. OpenOffice reads odt's great; but PDFs only kind of load into Draw, how do I merge that together? Ok, now I inserted my 10 megapixel picture into Openoffice and used the corner handles and have made it 1 inch by 1 inch. That makes it smaller right? Why after a photo resize is the document still so big?

3) I want to use licensed software like Adobe Acrobat Pro because it lets me merge pieces together, I don't care that it's expensive and I only want to use 1% of the features.

4) Our vendor shipped us a PDF and now I need to merge it with my own odt and create a new PDF.

I have been tinkering with an idea to create a simple GUI to let them just drop and drag files (OpenDocument, Pictures and PDFs) into 12 positions and then it makes certain sizing decisions automatically. It then allows them to build a merged PDF with one click. No file managers would be found, everything is drop and drag. Maybe this is an early prototype for a module that should be in OpenOffice? A document sorter screen for putting pieces together?

I don't get to hack all that often anymore and don't know python and GTK in the manner I wish I did. I built the screen in Glade-2, and am stuck at how to activate the Buttons to accept a drop and drag from Nautilus. I know this is super simple for someone that does this all the time. If you want to throw me a bit of code in the comments, it's appreciated. I want to detect the release of the file into the button area, and then load the file path that it sends into a field that I can use for processing. I'm going to then have it build a thumbnail of the first page of that piece, and then update the Total Pages and Total Size fields so they can see how big it is as they go.

I'll blog about this GUI further when I get it actually working and have tried it with users to see how it works.

PS: No GUI Nazis please :)


Thursday, April 30, 2009

Google Earth Look Bad?

While waiting for our Fedora ISO to download, I have been tinkering with some small-ish projects. There have been some calls about the font rendering in Google Earth 4. I brought down version 5 for testing and found the fonts were still not anti-aliased and looked terrible on our GNOME desktop. This post explains that Google seems to ship static QT libraries that do not render well. The post explains how to move the shipped libraries out of the way and then softlink into the QT libraries which exist in /usr/lib. Google Earth now looks wonderful. I'm going to come up with settings that work well with remote display and Compiz and push this all out to users in the coming weeks.


Prepping For OpenOffice 3.1

There are always multiple projects moving ahead concurrently. OpenOffice 3.1 is almost done, so this afternoon I have been prepping the dialog the users will see the first time they launch the newest release. Users won't navigate to web pages, won't read the release notes, and won't read a long message describing everything that has changed. This GUI just gives them a short overview, and hopefully a few people will scroll down and see the new features. It only runs once, and then puts a dot file in $HOME.

We also encourage users to run OpenOffice at home, so we give them a checkbox to request media for the latest version. We will then burn them a copy of the software for Windows and Mac and interoffice it to them. A shot of the dialog is below.



On another note, this blog concerning OpenDocument support in SP2 of Microsoft Office 2007 is a huge win for all of us. As organizations begin to upgrade, we will not longer have to train users to store in .odt here, and then always email as .doc to outside vendors and contacts. My thanks to everyone that worked hard to pressure Microsoft to add this feature. This issue seems to have been driven mostly outside the United States; so my thanks to everyone around the world.

Wednesday, April 29, 2009

Dear Adobe, Please Stabilize Flash

I continue to test Firefox 3.1 with Flash 10 and have found it to *extremely* unstable:

Program received signal SIGSEGV, Segmentation fault.
0xae6b610d in ?? () from /u/firefox_3100b3/firefox/plugins/libflashplayer.so
(gdb)

Frame rates and sound both seem better than 9, but it crashes constantly during testing. Right now there is no way I could deploy the most recent release.

Adobe: It's great that flash is so widely used, people must like using it for content development. But with this much content on the web, you always need to provide a quality player too. I understand that many companies have made cuts in staff, and I would be happy to help debug it for you. Please think about deploying bugzilla for Acrobat Reader and the Flash Player. Please, help us help you!

PS: Already tested swfdec, it's no where near ready for enterprise deployment.

Update: Having some better luck with FF 3.5B4, not crashing as much as B3; but still crashing more than it should.

Update2: Lots of ideas and things to try from the comments. I'm now testing older builds of Flash 10 to see if they provide better stability (current is r22, I have r15 here too). I'm also going to try using Firefox 3.0.X builds and see if that works better too. I had been using the 3.1/3.5 builds with the anticipation that it would be released the same time as this new server goes live. The video card we have is ATI 9250. I'll test over other video cards, and also test with a new version of pulseD.

Update3: OpenSuse 11.1 seems to have some GTK issues that are making the testing process difficult for me. Current plan is to blow the server and load with Fedora Core 10 and see if that works better. OpenSuse/Stable seems to still have some file manager bugs, with the GUI constantly bouncing around the screen and resizing.

Thursday, April 23, 2009

Flash On Flash With Pulse

I think that I have gotten Flash working with pulse now to our thin clients. Here are my work notes in case this helps anyone.

From our old system, this was what the daemon reported when playing Youtube videos:

I: client.c: created 27 "Native client (TCP/IP client from 128.222.233.233:53650)"
I: client.c: client 27 changed name from "Native client (TCP/IP client from 128.222.233.233:53650)" to "flashplayer"
I: module-volume-restore.c: Restoring volume for
I: module-volume-restore.c: Restoring sink for
I: sink-input.c: created 20 "playback" on oss_output.dsp with sample spec s16le 2ch 44100Hz
D: memblock.c: Memory block too large for pool: 1048576 > 16376
D: memblockq.c: memblockq requested: maxlength=132300, tlength=88200, base=4, prebuf=87318, minreq=882
D: memblockq.c: m
emblockq sanitized: maxlength=132300, tlength=88200, base=4, prebuf=87320, minreq=880

Here is the same page on OpenSuse 11.1

I: client.c: created 31 "Native client (TCP/IP client from 128.222.233.236:38065)"
I: client.c: client 31 changed name from "Native client (TCP/IP client from 128.222.233.236:38065)" to "flashplayer"
I: module-volume-restore.c: Restoring volume for
I: module-volume-restore.c: Restoring sin
k for
I: sink-input.c: created 22 "playback" on oss_output.dsp with sample spec s16le 2ch 44100Hz
D: memblock.c: Memory block too large for pool: 1048576 > 16376
D: memblockq.c: memblockq requested: maxlength=4194304, tlength=44100, base=4, prebuf=44100, minreq=8820
D: memblockq.c: memblockq sanitized: maxlength=4194304, tlength=44100, base=4, prebuf=44100, minreq=1
D: memblock.c: Pool full

D: memblock.c: Pool full
D: memblock.c: Pool full
D: memblock.c: Pool full
D: memblock.c: Pool full

The sound would play for a short while, and then get choppy. The browser would start to gray out and eventually freeze.

I then started looking around and found
that many people were mentioning that libflashplayer was no longer needed and to use the Alsa-Pulse "device" instead to increase browser stability. I straced aplay and could see that it was looking for /etc/asound.conf which it was not finding. I looked in the directory and noticed that asound-pulse.conf is what was loaded instead. I soft-linked it into asound.conf and aplay -Dpulse started to work as expected. I then removed libflashplayer.so and started up Firefox and it's working *much* better now. The pulse daemon is no longer getting hammered with spewage.

Things like this really make you want to put in a little classic Queen. :)


Wednesday, April 22, 2009

Staging Firefox 3.1 Again

The last few weeks have certainly kept me busy. I have been prepping and testing Evolution 2.24 and OpenOffice 3.1 for deployment here at the City.

My next major project is to get the new Firefox server finished and deployed for the whole City. I got some excellent feedback from people with some parameters to tune to lower the memory footprint of Firefox. I also am testing some new code that extracts out certain settings from the users prefs.js file and then merges those changes back into a global template. This will ensure that everyone is always given a working session each time they click on the icon and can't configure it in a manner which "breaks" it (i.e, disconnecting from the proxy server or whatever).

I also have globally installed FoxTab (shot below) which gives Firefox the features in Safari 4 for displaying thumbnails in 3D of opened pages. No flame wars please - I don't know who did it first. :) But regardless, it's cool and is working well even over remote display.

I also updated to the latest version of Flash, and am now starting to poke at the issue of Firefox crashing the PULSE daemon on the thin clients. It appears that there are some settings where you can tune the priority of applications pushing sound to the daemon, and I think possibly the stock OpenSuse 11.1 settings are anticipating PULSE to be running locally on the same computer; and not being pushed over the network. I'm certain I'll find it.

Anyway, this seems like it's going to be a good upgrade and that people will like it.

Friday, April 10, 2009

Pierre-Eric Rocks 2: Evolution PDF Drop And Drag

Being a Governmental agency, everything that we do is about record retention and long term storage. Citizens can request email messages at any time and we have to provide them in a format that can opened without cost based software. In other words, if someone wants email from 10 years ago we can't just simply give them a binary backup of the Groupwise 4.1 post office and expect them to get it loaded on SCO Unix and working. For ease of retention, we keep email messages in PDF format in project folders. More so in Evolution 2.6, but even in Evolution 2.24 there are a few steps and a requirement that users know how to navigate to the right folders in order to write out PDFs.

In order to make this easier, I starting poking at some ideas. I noted that currently Evolution drops and drags messages in mbox format only. I had some IRC conversations on #evolution with mbarnes, mcrha, chen and xkahn and created a scope of work and placed it on BGO here. Pierre-Eric (pepp_) was interested in the project and we agreed on the scope of work and we allocated some bounty money. An initial patch has landed. Default behavior of course will be to continue to write out mbox files, but with a gconf key change Evolution will now write out PDFs into Nautilus from a drop and drag.

I was only able to fund the areas required for our needs. I'm hopeful that in the future this functionality is expanded and moved into the UI of the Preferences screen.

This one small change will save our users countless hours of time (and frustration) in the future.

Obligatory screenshot

Wednesday, April 08, 2009

Having Problems With Acrobat Reader 9.1?

If you have started using Acrobat Reader 9.1 on Linux, there is a nasty little bug that took me a while to locate. It's leaking files into /dev/shm that don't delete, and cause problems on the next startup. We were getting calls from people that when they clicked on Reader, their whole Xserver would freeze until the stuck process was removed. After running strace, I was able to see that it was attempting to use /dev/shm right before the lockup; and found the leaking files.

I placed these lines into the script that calls Reader and things are working as expected:

rm /dev/shm/sem*$USER 2> /dev/null

Tuesday, March 24, 2009

Linux Motif Development Toolkit Update

Some of my coworkers have been busy testing new features and updating artwork for our development tool for custom applications. To this day, nothing else allows you to rapidly build business applications and everyone is pretty happy with it. Motif added anti-aliased fonts recently, and with some Tango artwork the programs really look much nicer. GNOME themes automatically set old X resources, so the applications are now coming up in the same colors that users have selected. Not a lot of time invested, and huge gains already in appearance.

The toolkit we use is called Panther, and is from a company called Prolifics.


Tuesday, March 17, 2009

Pierre-Eric Rocks

A while back I put out a blog entry about some bounty work with OpenOffice. I was contacted my new favorite hacker, and his name is Pierre-Eric. We built a machine with which to quickly compile OpenOffice, and he immediately started creating patches. We have been impressed with his professionalism, and his energetic approach to open source software. His first two patches were accepted by Sun and look to be merged into OOo 3.2.

The first patch creates a 2x2 picture layout for Impress:



The second creates a 3x2 picture layout for Impress.



He is currently working on a patch to add a "Sentence Case" option to Writer. We have a few more projects waiting in the wings, and are looking forward to continued bounty work.