Wednesday, December 22, 2010

Some Project Updates

I wanted to blog one more update before the Holidays. I'll be off the next week enjoying time with friends and family.

We received a patch from Barracuda that allows our web filter to work in a manner better suited for our network design (all users coming from the same IP address). This was the last hurdle before deploying our new 64bit Firefox server. It will be nice to see the 48 hyper-threading CPUs in production. It should be a nice upgrade for our users and make their sessions more responsive. We also got a circuit upgrade and more bandwidth. This should go live the second week in January.

Now that my iPad prototype login is finished, I spent time bringing over more shortcut icons from the production GNOME server and testing them on the new one. Mostly all that remains is Windows apps now, and they are being QA'd as we move from using Citrix to RDP. My coworker has also been experimenting with running them in seamless windows, which would be a nicer user experience.

We had a utility on the old GNOME server to allow people to share their desktops with one another using VNC (x11vnc). What I saw when lingering in the support area is that they spent as much time showing people how to initiate this request as they did actually solving their issue. Users have a hard time finding new icons. So in my new design, the originator sends a vnc request and once accepted their desktop remotely displays. All the users have to do now is wait for a popup window, accept it and then get their support from our staff. I have also experimentally added a few more options to the UI, and having a fun time learning to use Glade and Python. The shot below shows the screen. You perform a search for the user, it matches their name and alerts you that they are online (green button) and then gives you options to take over their screen. It also gives you information about their resolution, color depth and thin client OS release number.

Nomachine released a preview of NX 4 last night, and being that this will be used for several of our projects I took the time today to get it installed and test it. The install process was quick and easy, and I simply typed in the URL and authenticated and the GNOME desktop appears right inside Firefox. I am waiting for some networking to be altered to allow my iPad to connect to the City network so that I can test this from that device using Safari. This technology seems to be working pretty well and promise. I really need to give this all a good shakedown (and maybe read a few manuals ;) ), and will report further as it's deployed. In the shot below, I'm logged into GNOME and then using Firefox opened another session with a different account name.

Friday, December 10, 2010

First Tablet UI And Work Flow Nearly Finished

This week went quickly, along with my various projects I have been improving my python skills so that the language wasn't a hindrance to creating the ideas that were in my head.

When logged into the new GNOME desktop, the MIME bars were updated to offer another selection to Save 'To MobileDocuments'. While this is a simple concept to computer people, moving files around the network is very difficult to regular users. With a single click, the document that is being displayed will now appear on the iPad/Tablet device.

The first iteration of the user interface that displays when you log into the network in portrait mode from an iPad is finished (below). All of the documents in your MobileDocuments folder display on the lower panel as thumbnails. When you click on them once, the drop shadow changes color and the status line displays information about the file. Touching the thumbnail button again or hitting the [ Open ] button opens the document in the appropriate software application. I'm designing with the consideration that users will be holding a stylus pen. I'm not sure how easy a right mouse click will be with a pen, so I'm coding with this limitation in mind. The UI supported PDFs and OpenOffice documents, and I just added photos. There might be circumstances where employees need to take photos with them into the field, and it only took a few minutes to add this feature. Being that everything is running on the server, if the iPad is lost, stolen or fails, no City documents are ever lost.

When I am sure that we are feature complete for the first release, I'll spend some time on the UI. Focus was on work flow, eye candy can come later. Here is a shot of a 768x1024 window, displaying documents and pictures and then opening a photo with eog.

With the coding nearly complete, I'll be at a stand-still now until NX 4 is released. Right now it's impossible to log in from the iPad. With this sub-project nearly finished, I'll focus on delivering the rest of the software packages on the new GNOME desktop and await patches to fix the last of our show stoppers.

Up next: Expanding use on the new desktop/GNOME server, putting the new Firefox server live, testing the new thin client changes and creating a large NFS drive for our documents. December is looking to be very busy.

Wednesday, December 08, 2010

Already A Good Morning

Yesterday I blogged about some ideas we are experimenting with to reduce printing costs. It was one of those days where you walk out the door knowing that pieces are just about ready to work.

I wrote a few python lines of code for the Glade UI to copy a pdf template from a skel directory into the MobileDocuments folder of the individual user and then fire Xournal against that document. The results are below. I then simulated the stylus pen being used for note taking.

The documents created are 100% on the server and never on the local iPad/tablet (simulated) and immediately show up in the users full GNOME desktop. Double-clicking on the file brings up the PDF MIME bar which shows the document already available on the network.

I just have to learn a little about using the paste clipboard signal in python and that feature should be working here pretty quickly. That will allow Dragon Naturally Speaking documents to be pasted and immediately placed on the City servers.

Then I just need to write some code to create a listing of files in MobileDocuments and generate thumbnails. Not a bad start to my Wednesday.

Tuesday, December 07, 2010

Tablet Footprint & Cost Savings

Sometimes it's very hard to pack many months of conversations and needs analysis into blogs. My current project is just such an issue; I could type paragraphs describing the specifications but will try and be concise. We have tried to close up a number of open requests with one design.

There is a growing demand for mobile solutions that allow users to move around the building and gain access to their files. Our centralized design makes this easier, and many different concepts were discussed. The first inclination is to move in the direction of getting a laptop footprint device. Those of you that have seen my previous posts know that we already have a mobile laptop thin client that is being tested. The laptop footprint is not the best for meetings. Sitting in a room with 10 screens flipped up is not really ideal, and then you have to consider power needs, cords and batteries. They also are not suited for what people want to do most: annotate over the top of previously created documents. It would be wonderful if regular users worked as we do in the computer field with Wikis and sharing information, but that's not how they work at this time. They still want to annotate over the top of document with their own notes. Currently this is being done pen to paper. Technology changes are sometimes done in baby steps.

So if your IT department is like ours, you are not as staffed as you would like and the hours of the day are filled. So how do you add a new type of technology and still maintain a quality design? Replacing the thin clients at the users desktops with something they can pick up doesn't make sense. Our desktop cost is 600 dollars (400 thin client + 200 monitor) with a projected 10 year duty cycle. Annual costs are minimal. Laptop footprint devices (even thin client laptops) would then have lots of docking and undocking, snapping of wires, cords being moved, monitors plugged in, USB devices plugging and unplugging...all very expensive to support and problematic. Why change one of the most stable parts of your network? It was clear that our efficiency and cost savings should then be obtained from our printing infrastructure. We don't have desktop printers which are very expensive to maintain, but instead run departmental laser printers. Our printing costs and printed page counts are still too high in my view. There are people that print pages during document construction and then hand write notes on the pages; and some people print email messages in order to read them. Nearly every meeting involves pages being printed and handed out to employees. There has got to be better ways of working, and this for sure is the area that needs attention.

So what I am developing now with the IT Director is a way to integrate an iPad footprint device into our design as a way to reduce printing costs. The goal is to give them the power of the devices, but not allow them to store documents locally.

In prototype form I have accomplished the design below. I'm simulating this work flow on a thin client until NX 4.0 is relased. NX/Nomachine 4 will allow you to log into our servers with Safari directly from an iPad. The server will then detect your Xserver is 768x1024 and know that you are on a tablet and then bypass starting GNOME in favor of a UI designed just for this footprint. This will allow you to be logged into the server with a full GNOME desktop and also a tablet device at the same time. The UI opens in a split second, and will offer much faster response time than waiting for a desktop to start. The image below shows Xsession passing you to the two environments based on Xserver size criteria.

The workflow that we have worked out so far is: When users log into GNOME they always have the following icon on their desktop. This opens a Nautilus folder into which they can drop and drag PDF and OpenDocument files. Anything in this folder is staged then for the iPad devices.

The shot below shows the current UI that is displayed in the 768x1024 footprint, exactly what will be seen on iPads. The panel at the bottom appears and thumbnails are generated of everything in $HOME/MobileDocuments sorted in reverse order newest to oldest. Clicking once on the document will display information about the document on the status line. Pressing Open will open it in either Xournal or OpenOffice. Xournal will allow them to use a stylus pen and mark up the meeting notes in their own handwriting. These documents are always on the server, and when they return to their desks they are available for immediate reference and further editing.

The iPad also has Dragon Naturally Speaking, and I have created a small multi-line text widget that will accept a paste from the local device. Once pasted, the button "Save Dragon Document" will become active. When they click this button, the text will be converted into OpenDocument (with perl modules) and a unique date stamped file name auto generated. The document will then display on the left of the panel as a thumbnail and be available for editing.

To answer the questions that I think will be coming :) -- ** Yes other tablets will be reviewed and the market is always monitored. This design is elegant in that it does not lock you into a certain vendor. ** Yes the UI is very basic and will evolve and probably sux. I'm more focused right now on this work flow. ** Yes iPads are $500 a piece, but even buying 10-20 of these would be but a small dent in our printing budget. A 10-20% reduction in printing might pay for the hardware in the first year.

I'm looking forward to testing this workflow and it's proceeding as a back burner project along with my primary projects.

Wednesday, November 24, 2010

Portrait Feature Merged Into Thin Clients

A conversation that has taken place over the last few months is the idea of adding portrait mode as a supported thin client workstation feature. This is being done for two reasons: 1) to promote electronic document construction and review for those users that do this often as part of their jobs. We still have a good number of employees that use paper as part of the construction process. They print the document, hand write their notes on the paper and then submit it back and someone re-types their changes. (sigh!). One bad thing we have done in the technology arena is widen our screens for beautiful landscape views....and yet continued to design documents in portrait mode for printing on paper. From this perspective we kind of have promoted not working electronically. Hopefully this change will reduce these older techniques. 2) With tablet devices getting more popular this footprint needs to be tested and accounted for in design. Note: I'll be blogging about an offshoot of issue number 2 in the next week or two.

Since I was updating the thin client operating system anyway to make picture management easier (see earlier blogs), I decided to use the short week to just get this feature deployed. After a few mods to our standard xorg.conf file, our ATI cards are working great with xrandr -o and rotating cleanly with no artifacts. Nice.

gdm on GNOME 2.30 plays nicely with rotated screens and I'm happy with the results. Authentication cleanly worked, GNOME started and avant is working well in this mode. In the shot below you can see 1050x1680 in all of its beauty. OpenOffice looks great and for the most part everything is working as anticipated.

One issue that is being discussed is whether or not we will allow users to flip their monitors day to day or if this will be a setting that is locked down. As anyone knows that supports lots of users: anything that moves or can change will have failures and increases support. Something as simple as a power cord popping out produces calls to our help desk.

I made a quick change to our login chooser (below), and will get get this out to a few beta testers in the coming weeks. Initially we will allow the users to flip the screen on their own, and see how it works.

In my next blog (probably week of December 6th), I'll write about some tablet/mobile ideas that are a part of this portrait project. We have some ideas on how to save money in this regard.

Friday, November 19, 2010

Another Week, More Progress

The weeks go very quickly around here, and I have made lots of progress on my projects.

The Firefox 4 sever is basically all done and ready to deploy. There are some policy issues related to content blocking that are being resolved. I'm not really involved in that decision, and it's being handled at an Administrative level. Once that is settled, I'll create a script to backup all of the users $HOME/.mozilla directories and move them over. We have done this before and it's very simple and easy. 800 users moved to a new version of Firefox with just a tarball and script change. :)

I finished writing the first release of our USB stick user interface idea. The beauty of this design is that we will be able to give this to employees and they will be able to insert a USB stick with photos (or camera) and the photos will display and once clicked go into the clipboard. This will allow us to eliminate the need for many users to have full access to the sticks. Those employees that do need full access to read and write USB sticks will use Nautilus to transfer files, just as they did before.

Regardless of the megapixel size used on the camera, the UI converts them to 1024x768 before placing the pictures into the clipboard. Currently we have a lot of people that shoot 10 megapixel and then insert that photo into a document and resize it to 1 inch by 1 inch with the resize handles of OpenOffice and then wonder why their resulting PDFs are so big. For many documents and email messages around here, 1024 is plenty big. The shot below shows the thumbnail screen that comes up when you insert a stick. It loops through the files and summarizes the file types and then sorts the photos into reverse date order and displays thumbnails of the newest pictures. The black lines demonstrate the thumbnail being pressed, and then a control-v in OpenOffice and Evolution and the photo is inserted. I gave the UI a nice icon (green line) which then displays in the lower panel cleanly.

The functionality of the MIME bars is pretty well locked now and finalized so I have been adding the final changes to make them look nicer. I found a nice script that allows you to use convert to dynamically create a drop shadow for any thumbnail. So now all of the bars look like the shot below. I just need to give the UI an icon and do some final spacing changes...but I'm pleased with how they work.

One of my ongoing projects is to try and get as much speed as possible running Microsoft Windows applications over RDP. In the last few months we moved the RDP client off of the server and made it run locally on the thin client. We also have started to trickle in the new HP t5745 thin client to the users that use graphics heavy Windows applications because its Gig networking and faster CPU is yielding about a 20% speed increase. Running RPD locally on the thin client also got us about 20% increase in speed, nice.

One other technique that can be used is to use cache to increase performance. On a computer with a hard drive, this works well and does in fact make things run faster. However, the thin clients have solid state Apacer flash memory in place of a physical hard drive. The write time of these drives was not a fit for trying to use it to hold cache from running software. Also, whenever the thin clients would perform a disk flush (sync) the software would sometimes slow for a few seconds. What I did in the new release of our thin client OS is make a 50MB ram drive, and then mount it to $HOME/.rdesktop of the 'user' account. This will allow cache to be sitting in memory and should yield better performance. I'll be pushing this change to beta testers later today.

The shot below shows the RAM file system which is then mounted into the cache directory.

Got a nice comment concerning the Rdesktop fork called FreeRDP. I'll be doing QA work on that in the coming weeks and see how it works. Very nice to see patches being merged and new releases.

Friday, November 12, 2010

Happy Friday Updates

I have been busy working on various projects and making progress. Our architecture group also had a meeting and have made some decisions about some open design goals.

Compiz No More

At this time we are going to not bring over Compiz to the new GNOME desktop that I am building. This technology will probably be tested in a back burner type project, but is not on the design goals that must be met before we go can go live. There are users that love Compiz and I too used it every day, but a few issues were taken into consideration. 1) In order to have a consistent thin client build on all HP models (5725, 5735, 5745) we upgraded to HPs Debian Lenny build. On our ATI cards, the 3D desktop is crashing the Xserver periodically. For some people it never happens, and for others it happens often. I haven't gotten any updates to my bug report and don't expect that anyone will fix this issue. When HP releases a Squeeze update, I'll review the updates and try again. 2) We wanted to have a consistent desktop now on all devices. If you enabled Compiz here at City Hall it worked great. If you went to a remote site on lower bandwidth the regular GNOME desktop appeared by design. Sometimes people had been on Compiz so long, they didn't remember how the other desktop works. 3) We are anticipating a future where people will be on more and more mobile devices and carrying devices with them; so a simple, fast and consistent interface is desired. You aren't going to be pinching your fingers and turning a cube on an iPad type device right? :)

On a technical note, I compiled Compiz 0.9.0 on the 64bit server and the speed was excellent. With some patches from Debian on the thin clients and more time I am confident it would have worked great. Sadly, time is my biggest enemy sometimes.

Firefox 4 Updates

We have about 15 people using Firefox 4 (64bit) fulltime and all plugins are working and the server looks great. Pages are loading faster than ever and scrolling is crisp and fast. I'm very pleased with the results. Having 48 CPUs kind of helps too. :) I expect this server to run for a good 4-5 years and it's the most cost effective way to deploy browser and video technology to our users and our thin clients. Adobe Acrobat, Flash and Firefox are touched once and the updates go to everyone instantly. This server should go into wider deployment in the coming weeks...almost done.

Desktop MIME UI Status

As I have been adding users to the beta desktop, I have been hearing consistently that they really like MIME UI bars that open when you double-click on files. It's as simple as it can be to move files around the network while sheltering them from the physical processes. I have said many times that a file picker that opens in any application is the kiss of death for productivity. Navigation even in 2010 is one of the hardest concepts for regular users to understand.

We have been working on promoting the usage of the insert link/file:// technique in Evolution to email a link of a document to other employees instead of doing a physical attach. This reduces the instances of duplicated documents and also helps with quota space in the post office. I experimentally added a feature to do this automatically from the GUI and it's working well. When they double-click on a PDF for instance, one of the options is [ Link To Evolution Message ] (below). This builds a small HTML file which is attached to a new email message and contains a bit of href "magic".

Below is the resulting Evolution message generated. This eliminates them having to use the Insert Link feature, and mess around with spelling things correctly and understanding where documents are stored. Feedback was positive on this feature. I think once we have more people using this feature, it will be used often.

The other feature that I added was a checkbox to help resolve one of our improvement areas: users don't understand how big the pictures are that are coming from their cameras. Shooting 10 megapixel is great, right? :)

When [X] Email Friendly Size is pressed the picture is reduced to 800x600 and compressed into JPG.

USB Sticks, Viruses And Functionality

Those users with permissions are able to gain access to USB sticks on our current deskop and it's working well. A ftp daemon is running on the thin client and allows the GNOME server to gain access to the device. FTP is jailed into /media and also certain types of files are disallowed from view. Pictures and OpenDocument files can be moved to/from the sticks. Microsoft Office and PDFs can be moved TO the sticks, but not FROM the sticks. This is because of their virus risk, and also the fact that this work flow is not in our business practice. Documents should not be constructed off network and especially with non-City standard software packages. All of our software writes documents into open document format. If documents are to be received from the outside, they should be emailed whereby they are fully checked for viruses. It also is not a good practice to use USB sticks to house data. The risk of data loss (loss, theft, physical failure) is very high.

A review of the logs indicates that primarily users are using USB sticks to upload pictures, and very often just a few pictures at a time for inclusion into documents and presentations. I have designed a mockup of a dialog that will come up when a USB stick is inserted into the thin client. For many users, this will provide a simple UI to handle their needs with no file managers. The UI will build thumbnails of the last 32 photos taken along with a summary of files contained on the stick. If the user clicks on the image it puts it into their copy buffer at which time it can be pasted into any other application. This also will allow me to shrink the image to 1024x768 prior to putting it into the clipboard and reduce the huge pictures that are being taken on the cameras. The UI also gives them the option of emailing PDF and MS Office documents to their email account.

Of course the users will continue to have access to the full file manager to manually drop and drag files as they did previously. But at least now a simple interface which covers 80% of our needs will open automatically when usb insertion is detected.

Coming up for me next week:
- Begin moving services live on the new Firefox 4 server.
- Continue testing the new GNOME server, and installing updates and patches.
- Await the next avant-window-navigator tarball to fix a few issues.
- Experiment with making the USB process easier
- Begin testing some ideas to speed up rdesktop/xfreerdp with the use of a RAM file system on the thin clients.
- Being engineering the replacement for the server that holds the bulk of our documents and pictures. Use beagle again or try and install Zeitgeist?

Thursday, November 04, 2010

Desktop Progress Continues

Problems can be solved, they just need time. :)

I had been kind of putting off a few technical issues while I explored options to see if better solutions existed. Our online friend "Pepp" has been poking at getting Helix/Real Player to compile natively in 64bit. The 32bit version runs, but the problem is that I was having problems getting padsp working to redirect the sound to PULSE. This is because you cannot wrap a 32bit application with 64 bit pulse libraries (padsp). I used cpio to extract the 32bit version of from the i586 RPMs and installed it into /usr/lib and created a padsp & padsp.64 to run both types of applications. Everything is working as it should now. Circled in purple below is real player running seamlessly from 64 bit Firefox. CPU usage is excellent, and sound and video are synced well. Seems like it's going to work just fine. I still would love a native port however! :)

I also was having some problems with the mail-notification popup applet, it apparently is still expecting the icons to be in the layout of older versions of GNOME and certain pieces of art were not displaying (stock_unknown and stock_mail and others). I went into the source code and forced it to read these icons from /usr/share/mail-notification/ as a quick hack and now everything is working. I also wrote a few lines of code to always force working settings into the mailboxes.xml file which houses the email account information to ensure it's working each time users log into the server. The ability to get popups when email arrives has proven very popular with the end users and it was important to bring this over to the new server.

The last major piece of testing is with our Microsoft Windows applications. I mentioned in an earlier blog that on the production desktop we were using three different connection methods to launch Windows, and we are standardizing them all now with RDP/Rdesktop. So some QA and testing days ahead for me.

Thursday, October 28, 2010

Weather Applet Re-Wrapped

For a number of years we have used a global weather applet which has become very popular. The reason why this application is worth the time to develop is because otherwise you have hundreds of people during the day navigating around the Internet to look for information; this is especially true during inclement weather. Instead just one daemon runs and downloads all of this information ONCE and saves it to a shared directory. Then when users activate this applet, they load in these pictures and get current information. This greatly reduces Internet usage and helps our bandwidth.

I re-wrapped this application with greater flexibility and made it consistent with the new desktop helper MIME bars that I wrote. One of the biggest problems that users have is getting information around the network, "I'm looking at this image, but I have no idea how to get it to email or to print it". So there are now options to take the currently displayed image and save it, copy it to the clipboard for later paste, print it or email it directly from the UI.

I just pushed this live and bound it to the Super-F9 key, let's see what my early beta testers say. :)

Up next: Cleaning up other dialogs and screens from the older desktop, installing patches and poking for bugs and installing more icons with links to our internal software. Still on target for wider beta deployment in November.

Monday, October 25, 2010

Desktop Cleanups Continue

Still working on prepping GNOME 2.30 to replace our very aged GNOME 2.16 server and also on getting Firefox 4 ready. I have been testing different cache lockdowns in gnome-mplayer to find a good middle ground between the clip starting and having enough cache to play without interruptions. Obviously this depends greatly on the remote server, but testing it to find a good sane setting that will work most of the time. I don't want users tinkering with these settings; because they will randomly increase and decrease values and then wonder why things are broken. :)

In testing the workflow of the new Picture Options bar that comes up when you double-click on a picture, I decided to add two very basic features. EOG doesn't have a way to put the image into the clipboard, and it's a shame to have to wait for GIMP to start in order to perform this step. So I added a feature to send the image to the clipboard. It's very common for users to want to rotate pictures they have taken, and having to start EOG to perform this step was clunky. Since EOG doesn't copy to the clipboard, after rotating the photo they then have to save the photo and then double-click on it again. A simple 90 degree clock-wise rotation was added and works great. (seen in screenshot below). The python Image library is awesome and easy to manipulate photos. Did I mention something about clipboards twice? :)

With some help from the avant guys, I was able to get software to better sit under their corresponding launcher icon. This combines the launcher icon with the window list functionality nicely and provides more space on the panel. Next up is pondering the fact that all rdesktop instances come back with a WM_CLASS of "rdesktop". (current panel seen in shot below).

At this point the functionality is mostly in place and it's time to bring over the rest of the software packages and create artwork and icons.

I had to do something clunky to application-browser to get around a bug. In previous versions of GNOME if the user selected this software process again, it would connect to the already running process and reuse it. In the current release there is a bug and it keeps adding another instance to the process list. If a user clicks on this menu system 20 times during the day, they would have 20 processes. :| So the code below resolved that issue. Hopefully a patch is forthcoming; this is some serious nastiness.

Current desktop screenshot:

Tuesday, October 19, 2010

Panel, Browser Stress Test & Thanks

With some tinkering of lockdowns and gconf settings, I have gotten avant-window-navigator working well enough to push to some early beta testers. Very nice applets and a clean modern look. Let's see what kind of feedback I get back tomorrow. :)

Thanks to Kevin for your help with understanding that xrdb is a g-s-d plugin. Testing Motif applications right now to see how the themes are working.

So with that in place I'm giving mplayer, Firefox/Flash and Pulse Audio a stress test to try and get them to crash. So far sound is strong even running remotely over the network, frame rates are excellent. I think the user community will be pleased with these upgrades.

Monday, October 18, 2010

64 Bit Firefox + GNOME 2.30 Continues

Happy Monday,

Work continues on the new servers and things are making nice progress. I brought down the latest release of avant-window-navigator along with Extras to see how the project has advanced in the last few years. One of the cool things is that it now works on a regular 2D desktop. I'm testing the bare minimum of applets we need to go live and will push it to some beta testers later this week. One possibility is using it as replacement for the regular gnome-panel. I'll see what kind of feedback that I get in the coming days from the 'regular users'. (screenshot follows)

Sadly one possibility is that we won't be bringing the 3D (Compiz) configurations with us to the new server. 3D has helped users conceptually understand how to use multiple desktops to avoid opening and closing windows all the time. However my initial tests indicate that it's crashing the Xserver on the thin clients a great deal, and being that I have gotten no feedback whatsoever on my Debian bug report...I'm not sure that anything is coming in that regards. Trying to upgrade Mesa and all of its hooks into X doesn't seem pleasant. I'll continue to tinker and see if I have some ideas in this area. This is not a high priority feature; users can certainly work fine with the 2D desktop.

It seems like someone pulled out the code in GNOME that set traditional X resources to match your theme. I'm sure the thinking was that very few applications were still running in this regard, but actually we still use them heavily. The Citrix manager uses Motif, and our in-house applications still run this way too. I hacked a quick ksh script to try and read your current theme and get the *background and *foreground colors; but it's not pretty and the themes don't store these colors consistently. If someone wants to hack a little C app to dump the colors of the current theme to standard out, that would really help a great deal.

One idea that came up was to use the five seconds during login to display current calendar information about City events. So I built a quick mockup that displays during authentication. In theory we could cron the City global calendars to dump an image once a day with updated information and lay it over the top of this wallpaper. (shot below)

I finished the MIME helper applications on the GNOME desktop and have copied them over to the new Internet server and hooked them into Firefox. So the users get a consistent interface when interacting with content on the Internet. This helps them quickly and easily print, save and view such content. (shot below).

Since it seems like 32bit Acrobat Reader isn't going to wrap inside 64bit Firefox well, I have once again pulled it out and made it a helper application again. I have been testing those (nasty!) 3D PDF animations to ensure that a few of them being opened concurrently isn't going to clobber our server. Thankfully Reader doesn't seem to be using multiple-CPUs at once. In the shot below, the video is playing (propellers are spinning) and it's only using one of the cores.

Lots of progress and very happy with the results. A few more pieces being finished and I can widen the beta program and solicit more feedback.

Wednesday, October 06, 2010

Dear Adobe

Dear Adobe:

Thank you for the 64bit beta of the Flash player, it's starting to work better. Thank you too for the just released 9.40 version of Reader. But unfortunately it didn't put a smile on my face; the lack of 64bit support for Reader is absolutely making server upgrades miserable. As you can see from the message below, there is no ETA on making 32bit Reader work on 64bit Firefox 4.0. The Mozilla developers don't have the resources to debug it, nor should they have to. Your help in this matter is appreciated.

Disclaimer: Yup, I know about the open source readers...they aren't robust enough to use at this time.

Monday, October 04, 2010

MIME Update, Work Continues

I got a quiet day in today (no meetings!) to work on the new desktop design. I feel like the last major pieces are falling into place and once a good work flow is finalized, I can install the rest of the icons and increase the number of beta testers.

I'm testing some new ideas on the MIME bars that launch when you double-click on files. I wanted to try a "one stop shop" type approach. Everything you need to perform your task is on one screen. No further dialogs or hidden screens. I added a gtkcombobox with system printers. Once a printer is selected it 'sticks' each time a new document is double-clicked. This lets the user clearly see which printer will get their documents. With nearly 60 printers, people send things to the wrong printers *all* the time. I also have added a gtkentry widget to house a quick technique to send the file directly to the email post office. Very often we have users that have to email files to the same people over and over again. One click, and it's delivered; without having to wait for the Evolution composer and enter all of the details. I also connected the areas at the bottom that indicate the size of the file as a visual cue of file sizes.

I'm testing this dialog right now, and hope to have the rest (Pictures, Documents, Video) all finished by tomorrow.

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.

Thursday, August 19, 2010

Photo Taking Hardware

In a previous blog I had described the security camera that we selected for taking pictures of our citizens for recreation cards. We found a low sitting tripod for around $15, which pivots the camera at a 90 degree angle. The pictures are taken sideways and then corrected via the 'convert' command line utility in scripts to rotate back 90 degrees and appear correct on the IDs. These cameras are completely self reliant and don't need any attached hardware or PCs to run them. Total cost including tripod + camera should come in less than $150.

Recreation System, Milestone 1

Our IT/Integration division was able to go live with the first milestone of changes to the recreation system on a new server. I haven't been working on the coding on this project, but have been helping with some technical aspects including cameras, mockups, printing and ideas.

The old recreation system used older Motif widgets and was first built in the mid-1990s. We already had thin clients at that point. In the mid 90s the remote sites were in 8 bit color, 800x600 and only had limited bandwidth. The screens were built with those limitations in mind.
(shot below)

For the first milestone the front page was changed to a 'portal' which displays a lot more information. Motif was upgrade to 2.3 which gave us anti-aliased font. The theming system was upgraded as best as possible to allow GNOME colors to alter the look and feel of the software and match the rest of the applications. All of the code from the old system came over without modification; the screens just had to be touched in order to accommodate the new font metrics.

(shot below, no GUI nazis please :) )

The developers are now starting to alter the code of the screens and add functionality. The biggest new features being implemented are membership cards with photos and bar codes, and better accounting integration. If you are a citizen of Largo, these milestones will slowly increase the quality of your experience at our recreation sites. Be assured that all of this technology is being developed with costs and long term impact in mind.

Tuesday, August 03, 2010

Java & Sun/Oracle Blaze The Way :)

I never thought that I would such high marks to anything related to Java, but as it stands right now this is the only piece of the puzzle working natively and well on 64bit Firefox 4.0. I wanted to draw myself a picture of the pieces (below) so that I could work out in my head how this will all work. There are 4 main areas where I need to run embedded plugins based on our users requirements. 4 of the 5 plugins have caveats and are not deployed in the clean manner that I would like. Some of them are still only 32 bit, some of them don't natively use PULSE and some of them are missing features when built natively 64bit.

Green indicates satisfactory techniques, red indicates problems.

I guess for now we tell our parents and grandma to keep installing the 32bit flavors.