Wednesday, September 29, 2010

Lockdowns, Flash & Text Files

Work continues on getting GNOME 2.30 ready for our employees and making great progress. One of the benefits of this project is that we will be able to save some money and resources by reducing our server count. Right now we have two identical GNOME servers and users log into one or the other. Both servers can run our highest concurrent load (350 users), and are in place so that if we have a failure the other server is always ready to go. We have to have a backup of some type -- You can't have hundreds of people sitting around because of hardware problems. But the fact is that in all of these years, the hardware hasn't had a single failure.

Our goal on the next upgrade is to only have one server on a nice multi-core, multi-CPU server with 64bit Linux. We then will create a physical-to-virtual copy once a week and have it ready to go. If the physical machine fails, we will put the users on the VM server until the problem can be resolved. As I an designing the desktop, I'm going to write code so that if it's running on VMware certain features will disable so as to provide the best possible speed. An example will be compiz, when running virtually, that feature will disable and drop back into 2D. Another example might be to turn off thumbnailing and so on. Hopefully the VM server will never need to be used, but we will be ready and save a good amount of money by reducing one physical server replacement every 3-5 years.


Very often you find a great piece of open source software to use, but it allows the users to tinker too much and change settings. Often these settings will cause the software to fail or work in a manner that we don't want. Such was the case with using gnubiff. It works great, but one bad click while tinkering and it will no longer connect to the post office. Or another issue is where users think it's wonderful to check for new email every 1 second; which does wonderful to your post office. :) So what I do is get everything working as expected and then create a template and replace the things that are specific to users with variables. In this case their account name and password are the only two things that need to be unique. The shot below shows how I then implement this design. Grab from their current .gnubiffrc the stuff I need, and then use sed and merge it into my template and give them a fresh working configuration file before the software launches.

Flash & Firefox
There are days when you feel that all of your bug reports and efforts will never advance and then suddenly you start getting updates that actually work. Such was the case yesterday when I installed Firefox beta 6 running 64bit with the just released preview 2 of 64bit Flash. Preview 1 and the earlier 10.1 64bit beta were really pretty bad on our configuration. Frames and sound were choppy, playback would block the browser from scrolling. I was actually getting better results with a wrapped 32bit Flash release, but that's so clunky to me and I'm trying to run 100% 64bit. I'm happy to report that preview 2 is working MUCH better now. Sound is strong and frames are better, even with remote display and remote sound. This gave me a chance to test the volume control. It's working detects the sound card on the remote thin client from the GNOME server and has no idea it's running over the network. Excellent.

In the shot below, you can see the video playing along with a zoom of the volume slider. SiS is the sound card on the thin clients.

Text Files
One of the things that users loved on the last desktop release was the use of thumbnails for all of their documents. It really does aid in finding what you are seeking. I have an eye for consistency, and always hated that text files (.txt, .ics and .csv) have never really been appealing in Nautilus. So it turns out that 'convert' very nicely can change a text file into a picture. I created a new schema for text/plain and pointed it to 'convert' and thought it would work. It turns out that Nautilus sends %o without a PNG file extension. So convert has no clue what file type to convert into, and it didn't work. So I whipped up a quick script called text-thumbnailer. This script also takes care of the issue that if the file does not end with .txt, convert doesn't understand the file type. The script softlinks a .txt file in /tmp and generates a PNG and then passes it back to Nautilus as expected.

In the shot below, you can see the thumbnail schema, the text-thumbnail script, and a Nautilus window which contains the resulting thumbs. Scrolling through the folders now is much cleaner and consistent.

So along with various other projects, this development will continue. I'm getting positive feedback on the results and am looking forward to the coming weeks and ongoing improvements.

Friday, September 24, 2010

Beta Testers On GNOME 2.30, Making Progress

Lots of things keeping me busy, but making excellent progress on building a new server to run 64bit OpenSuse 11.3 and GNOME 2.30. Now that gdm is working with XDMCP, I was able to get the logins working. Halfline (thanks!) once again helped me with turning off the animations that were displaying when the authentication screen appears and also then as it goes away and the users wallpaper appears. This type of animation is too slow over remote display, and caused you to have to wait while the screen blinked multiple times. I'm sure it looks great on a local video card, but not suitable for here and not needed in a business/work environment.

Very nice to see enable_esd no longer required. PulseAudio is hooked right into GNOME and once I selected a sound theme with a login clip, it worked immediately. The pulseaudio volume slider bar is working great, even though the sound daemon is running remotely on the thin client. Excellent.

I was able to get beta testers logged in Wednesday and they are using this server fulltime. It's obviously not fully functional, but enough icons and applications are working to do their work.

Previously we were using 3 different techniques to connect to the various Microsoft applications around the City. Some where using Citrix, some were using RDP/Rdesktop and others were using an old product (UIS, Unix Integration Services) that has been discontinued for years. The other System Administrator has been working magic and working on standardizing everything around RDP. This makes it easier for him...just one connection package. It also allows us to fully deploy the new connection method that I had blogged about previously. This has some disadvantages, but is MUCH faster and provides much better sound.

The old technique had rdesktop running on the GNOME server itself. Connection would then be made to Windows. Windows would communicate with rdesktop via RDP, and then we used X11 and Pulse to provide the screen and sound. 100% centralized, stable, easy to upgrade and make changes (blue boxes below). The way we are deploying on the new server, the GNOME server signals the thin client to start a rdesktop session and that session then talks to Windows with RDP. The user presentation is probably at least twice was fast (green boxes below).

So as he continues to get applications ready for RDP, I'll add more and more icons and get them to the beta testers. This is providing the same integrated Linux/Windows desktop we had previously, but with lowered network usage and far better user experience.

Always have to give a screenshot, right? So here is a shot of the current status. MIME handlers are working great for the various file types. Application-browser is starting to fill in nicely with our various City applications. And I launched Internet Explorer to demonstrate how cleanly Windows apps integrate and work right off the standard GNOME icons.

Huh? You are probably wondering why we run Internet Explorer. 99% of all Internet usage is done on Firefox/Linux. But many other Governmental agencies (state and federal mostly) designed pages that are hard coded to only work with Internet Explorer. Our tax dollars at work. :)

Thursday, September 16, 2010

Thanks For Ideas Guys

Yesterday when I posted the MIME bar prototype, I was given some ideas to make the dialog easier to use and fit better into current UI designs. I was mostly thinking about the desktop flow, but UI ideas are always welcomed. I whipped up a new version in Glade and connected the signals to the existing code and it's already working. It's not something that I could release because it's hard coded for our software packages, but might be a good idea for a GNOME project in the future. I guess in theory some more X-Categories could be added so it knows where to place these items. I'll be creating similar ones now for word processing files and for Pictures.

Shot below, I like that it has a similar appearance to the main-menu.

Update: A quick dupe of the screen and change of the thumbnails and the Picture and Audio/Video dialogs are starting to work. Thanks again Kevin for the awesome 'nailer' program for the videos.

Wednesday, September 15, 2010

MIME Ideas Continue, Fulltime GNOME 2.30

Many things are happening at once, but I have made some changes to the new MIME bars to test ideas with our users. I'm now logging on GNOME 2.30 (OpenSuse 11.3) fulltime from a thin client. I have gotten all basic applications (Evolution + Firefox + OpenOffice) running. I can start the other applications manually easily. After I installed another group of icons for our beta testers, I'll start getting feedback.

I have always wished that Nautilus gave you a hover mouse page preview larger than the thumbnails that currently appear. If you have hundreds of thousands or millions of documents many of them are very similar, especially those on letterhead. So experimentally I have created a tabbed dialog that appears when you double-click on a file. The "Options" tab allows you to select your next step. (shot below):

The Details tab shows you a big preview of the first page of the document, along with the owner of the document and the file size. Very few people discovered the "properties" found in the right-mouse of nautilus. They call all the time to find out the owner of files; so hopefully this will help. And believe it or not, but a lot of people don't understand K, MB and GB acronyms; so I'm testing the idea of displaying the file size fully expanded with lots of zeros. :)

I'm looking forward to getting feedback, and think these minor tweaks of the UI will make the system easier than ever for our employees.

Tuesday, September 14, 2010

Testing GNOME 2.30 & Updates

One of the benefits of starting to poke at a desktop upgrade to GNOME 2.30 is being able to take what I learned the last time and making improvements. Certain types of specialized launch scripts that were developed are being merged into a core library which will run when any icons are triggered. One such example is the gnome-panel, which still apparently treats a double-click as two single-clicks. I thought this was changed at some point, but it's still working in this manner. Users tend to double-click (or more!) on icons and are launching multiple occurrences of the same application. So I brought over and improved the code from the old desktop. Gnome-panel now detects that someone is repeatedly clicking and disregards them for a few seconds. The popup below displays:

The MIME bars that were deployed on the previous desktop release have worked well. When users double-click on files in the file manager, it asks them what step they want to perform. The previous bars had buttons that were stacked left to right, and on certain monitor resolutions we were running out of real estate. I also wanted to better categorize them into middle level functions (Edit/View, Save, Print & Email). The screen below is my first attempt and I'm installing the MIME types this very second.

This design might seem odd at first glance, but think of this situation: You get a PDF file and you know you aren't going to read it online and for sure are going to print. With a single click, it's queued and already finished. Users like having steps 1-2-3 that are consistent and simple.

I hope to have some early beta testers on this server by Thursday or Friday of this week.

Still poking at the slow printer dialog on SLED 11/Evolution to figure out what's happening. My attempts to hack out certain polling areas of the code were not successful. I'm also looking at f-spot for use in a multi-user environment, working on making it easier to pass files back and forth to USB sticks, beta testing OpenOffice 3.3 and checking into connectivity between OpenOffice and the Oracle database.

Thursday, September 09, 2010

Gnome 2.30 & main-menu

It's good to see GNOME 2.30 running on our thin clients (below). My thanks to those that helped me get this working and squash a few bugs. I have been removing all of the software that is automatically installed on OpenSuse and won't be used by our users. Next up will be connecting our core group of applications (Firefox, Evolution, OpenOffice) so that I can get some beta testers logged in. I also have been pondering some updated MIME bars based on feedback and things we learned from the last upgrade. These bars will launch when you double-click on a file in the file manager and ask you what task you want performed. Everyone has gotten used to them and people really like the desktop to flow in this manner. Sure would be nice to be able to put these into Nautilus as a single click.

One very interesting usability issue that I found when reviewing how we currently have the main-menu grouped is that most of the regular users never figured out that they can type software applications into the Filter....even though the cursor focus is there when it opens and it's blinking waiting for you to type. :| The users also didn't really figure out that you can click on the Groups on the left edge to reduce the number of packages displayed. Instead, most of them are scrolling down the entire list of software and looking for what they want. I really need to ponder this more, but sure sounds like an improvement area in the design.

I'm also excited to see NX 4.0 is coming out soon, and will allow you to log into our desktop servers from an iPad. How cool is that?

Tuesday, September 07, 2010

Project Updates

Just back to the office after a long weekend and I thought that I would create an update on the various projects.

Recreation System
The developer and business analyst are making progress on new recreation system. Now that IT got a signoff on the receipts, the final design has been implemented. A screen was designed to allow them to add coupons on the far right side of the printout. Following our internal goal of never having users obtain a file manager, this step is performed inside the GUI itself. All available coupons display and the user just has to click on it and hit the arrow which loads it into the printout page. They are beginning the process now of implementing more robust accounting principles at this time.

(shot below, sorry Steve Perry isn't coming to Largo) :)

Evolution Print Dialog
We have had some problems with libgnomeprint which will require me to change the source. We have about 60 printers, all HP using JetDirect. They are always in various states of function; paper jams, paper outages, toner shortages, waiting on paper tray, etc. Some of them are turned off, and some of them have latency from the Internet. When you hit the print button in Evolution the dialog will very frequently gray out and then block Evolution which grays out too. After a few seconds the dialog returns and everything works. Jeff Steadfast happened to be on IRC and gave me a few areas to try to improve this situation. I'm going to comment out the call for it to poll the printers. We don't really care about their statuses and users will just send the print jobs and await their completion. Sounds like a nice gconf key idea to me for future releases.

Debian Crashes
Does anyone want to backport some packages for me? This bug is really causing us some grief. It's causing our thin clients to crash for 3D/Compiz users and some people have gone back to 2D because they are annoyed by losing the Xserver. The last instruction was to upgrade Mesa, which will require an extensive upgrade of all of the X packages too which would take a lot of QA work. If anyone has any ideas, feel free to hang them on the bug report.

Halfline XDMCP Hero
XDMCP really hasn't worked for a while now in the latest OpenSuse releases and Halfline cooked a patch which I was able to get compiled and it's working! It's been submitted to Suse/Novell and Vincent already classified the bug report (thanks!). The production "Desktop" server is running Gnome 2.16 so there are many new things for me to test over remote display since that release. I also see the wallpapers now transition/animate with a .xml file and I need to check performance over the network. I built Compiz 0.9.0 and it's crashing the Xserver a good amount of the time (See Debian Crashes) above. There is a lot to review before I can get beta testers on here; but it's very encouraging.

Yup, the final login screen will be a bit more professional. When I am hunting down configuration files, I always change them so radically to leave no doubt that I found the right settings.