Wednesday, January 26, 2011

MIME Helper Interfaces & Opt Outs

A few people commented to me when I blogged about our MIME helper interfaces that this intermediate step would drive them crazy. As those of you know that follow our work, when you double-click on a file a dialog comes up and then offers you several options on what exactly you want to do with the file.

What's interesting is that we just deployed a new Firefox server a week ago, and there were a few file types that were not configured to open these helper interfaces and we got calls from some users that had no idea what to do when a download manager opens and asks them where to save a file. I then added those file types to the mimetypes file and they were content. So, I know that a vast majority of our users have benefited from this module being in place. Instead of having to worry about WHERE, they can focus on WHAT.

But, there are a few advanced users that want a traditional interface on the new desktop. When they double-click on a file, they want the default application to just open. They are perfectly content with moving the files around manually and do not like the additional step in the middle. So after some conversation with my Director, I wrote a quick Glade/Python UI that allows people to opt out of the helper interfaces and to just launch an application.

I broke this down into three different settings. One of them is for the Desktop, which is defined as interaction of files with Nautilus. The second is Evolution, which is defined as the interaction with files that are attached in email. The third is with Firefox, and defines how to handle files that are downloaded from the Internet. This offers a great deal of flexibility and those users that wish a more traditional approach to file management is able to work in this manner.

In the shot below is the opt out UI, along with a view of the current helper interface that opens when you double-click a file. Changing the setting to "No" disables this feature.

Friday, January 21, 2011

We're Hiring

This job opening is not in my division, and I'm not involved with the hiring process. But I wanted to pass it along to anyone interested. The City is hiring a Programmer to write business software. Currently most in-house applications are written with a toolkit called Panther. It doesn't get much simpler than this tool; connect to the database and drop and drag the fields to a screen and then hook up the SQL queries, buttons and logic.

There are pros and cons to working on Government, but it's a very stable work environment and it's fun to be a part of working outside the box with Linux and save lots of money in the process. The job would require living in the area. Largo is located close to Tampa/St Pete Florida.

Here is the job posting, and good luck to anyone that wishes to apply.

Thursday, January 20, 2011

64Bit Firefox Deployment Complete

There is always an unknown when you deploy new software to hundreds of people. All of your testing never simulates their techniques and a full load. But yesterday the cutover to 64bit Firefox 4 on the new server went beautifully. We announced the upgrade and at noon I just killall'd their processes on the old 32bit server and moved the binary out of the way to halt it from running. I then tar'd up all of their .mozilla directories, and extracted them on the new 64bit replacement server. I changed the global launch scripts and was done. The total process took about 15 minutes.

The shots below are the 'top' windows with about 65 users with Firefox sessions running. Watching the load split on the threads is a thing of beauty and scrolling is as crisp as it was with just our beta testers. There are a few spikes in the 5-8% busy area, but the bulk of the time it sits under 1-3%. I believe this server could easily get 300-400 users on it concurrently. Very nice. Another item off my list. :)

Here is the link to the server.

Tuesday, January 18, 2011

Firefox Goes Live + Thanks + Possible Job Opening

As I have mentioned previously, lots of technology has been awaiting the new year when we are fully staffed in order to deploy. Tomorrow we are going live with the new 8 CPU, 6 Core server for deploying Firefox sessions. Everything is all compiled cleanly and natively on 64bit OpenSuse 11.3, stable and fast. Between noon and 1pm when the users are lunch, I'll do a backup of all $HOME/.mozilla directories and push them over to the new server. Then I just change the launch scripts to point to the new server and everybody is live. This technique works out well; if we have an issue that requires a rollback, all we do is change the launch scripts back to the old server. Today I'm giving the new Internet circuit and the plugins a good shakedown. Frame rates are good and sound quality over PULSE is excellent.

I'm expecting an afternoon tomorrow of minor tuning issues and helping people that didn't read the announcement message; but no major problems. In the shot below you can see I'm giving FF a good Flash test with Youtube.

Many thanks for Vincent Untz who has been working with me on getting a few upstream patches merged into OpenSuse 11.3 to fix a few showstoppers on our GNOME desktop upgrade project. A few more patches to GDM, Nautilus/GIO and avant-window-navigator and we will be ready to move the desktop into wider beta testing. Right now I have about 20 people testing and using it fulltime, and feedback is very positive. I've spent a good amount of time squeezing every second of time from our customized Xsession login script. I'm firing some of the code into background processes as appropriate to allow the script to get to the point that gnome-session starts as quickly as possible.

There is a chance that we will be hiring one programming position in the next few weeks. When I have an exact job description and notification, I'll post it here in case anyone is interested.

Wednesday, January 12, 2011

Finalizing USB Sticks & Cameras

I have blogged about parts of this topic in the past, but the project has developed and I wanted to update the status.

I have been working with management and end users to come up the best way to handle USB sticks around the City. One wants to allow users to upload their photos. However, using USB sticks as a 'sneakernet' needs to be discouraged. The whole point of having a centralized environment and using thin clients is so that the data remains on the server. Some people still fight the concept of centralized files and want to squirrel their data away. This usually ends up with disaster. Drop the USB stick in the parking lot and it's gone! We also want to avoid the situation where someone lassos entire sections of City documents and puts them on a USB stick and walks out the door.

In regards to word processing documents, we are a proponent in keeping them in OpenDocument format to try and ensure that they can always be opened in the future. There also is the issue that when Microsoft file formats are used, it's a downgrade format when used with OpenOffice. If a certain feature is used that has no comparable feature in MS Office, the information is not retained. So we always tell people to use odt,ods,odg formats when not collaborating with people on the outside. And now that OpenDocument is starting to be included in MS Office, the case for using this format is even stronger.

So with all of these things in mind, we have developed our first release of the new design. I'm sure there is a better UI design, but for right now we continue to focus on the work flow. In the shot below the UI on the right side opens for all City employees when they insert a USB stick or camera. It does a quick scan of the device and generates thumbnails of the most recent 36 photos. To insert these into any City applications, all they do is click on the photo; this places it into the clipboard at 1024x768. On the right side you can see Draw, and the right-mouse Paste command has inserted the photo. No file management skills required, no lassos and all they can do is move the pictures upstream to the server. This eliminates the need of having to give USB access to employees that might want to take a few pictures a month for posters or flyers.

If the software detects any Microsoft Office documents, the button [ Convert To OpenDocument ] lights up. If the user clicks on it, their documents are sent to the Linux server in a non-privileged user account and converted to OpenDocument on the command line (pyuno) and then copied back to the stick in a separate folder and without touching the original documents. The red arrow indicates the button was pressed, and then all MS Office docs are converted. Those users with USB stick access can then use Nautilus to bring them over to the server. The original MS Office are hidden from view so no chance of them grabbing the wrong files.

Our Director is going to take this approach to the other Directors and then we will get this code into the hands of end users for testing and feedback.

One last bit of information: All of this is unrelated to the users ability to send and receive MS Office documents via email as part of collaboration and sharing information with outside people. These steps are being done with USB sticks to protect our data; and try and break their habit of working using 1980s and 1990s file handling skills.

Thursday, January 06, 2011

Project Updates

The New Year is here and lots of technology was waiting in the wings for our staff levels to be back to normal levels now that the Holidays are complete.

I finished the software module that allows our support group to support remote users. We also can obtain information about their Xserver (depth, dimensions) from this UI too. It's been live for a few days now and they are reporting that's been very helpful and saving us valuable time. The software it replaced took far more steps.

Support staff types in part of the users name into the Filter area and then a search is performed. Once they find the right user, they click on the user and it displays technical information about their session.

If Support clicks on the [ Request Remote Control ] button, the other users receives the dialog below. This allows them to grant permission before the session is viewed. Instead of running VNC on the end device, I'm using x11vnc which is just an excellent approach. We have users logging in with thin clients, NX/Windows and NX/Mac and x11vnc works no matter what end device is used. It's also 100% host based and can be upgraded and altered once instead of having to touch individual devices. If we attempted to put VNC on Linux, Windows and Mac there would be operating system nuances to deal with as well. The other positive thing that I discovered is that x11vnc is much faster on the new 64bit server. Support gets quicker UI responses and repaints; very nice indeed.

Here is what the remote user sees when we send them a remote control request:

The new MIME bars that we have been testing for many months are stable and working well, so I have backported them to some of our production servers and will be integrating them into our technology. In the shot below, opening a PDF from Evolution opens the new UI. Our Firefox upgrade is nearly ready to go live too, and this UI is used there as well. They also will see them when the new GNOME desktop server goes live later this year.

LibreOffice installed cleanly on our production server without disrupting OpenOffice, so I added an icon to the desktop for some beta tester users to "kick the tires". No decision has been made to transition at this time, but it's prudent to monitor this issue with an eye to the future.