Centralized computing makes it so difficult to upgrade hundreds of users to the latest release of the ever exploited Adobe Acrobat Reader. :)
browser:/u # ls -lad acro*
drwxr-xr-x 3 root root 4096 Jan 13 14:08 acrobat_9301
drwxr-xr-x 3 root root 4096 Feb 23 10:29 acrobat_9310
drwxr-xr-x 3 root root 4096 Apr 23 13:32 acrobat_9321
drwxr-xr-x 3 root root 4096 Jun 30 16:06 acrobat_9331
lrwxrwxrwx 1 root root 12 Apr 23 13:33 acrobat_9_live -> acrobat_9321
browser:/u # rm acrobat_9_live
browser:/u # ln -s acrobat_9331 acrobat_9_live
and then push the reader into Firefox
browser:/u/acrobat_9331/Adobe/Reader9/Browser/intellinux # cp nppdf.so /u/firefox3_sound/firefox/plugins/
browser:/u/acrobat_9331/Adobe/Reader9/Browser/intellinux # cp nppdf.so /u/firefox3_nosound/firefox/plugins/
browser:/u/acrobat_9331/Adobe/Reader9/Browser/intellinux # cp nppdf.so /u/firefox3_noflash/firefox/plugins/
All done. :)
Friday, July 02, 2010
Thursday, July 01, 2010
64bit Evolution Is Now Live
After that small hiccup with running Evolution on 32bit Linux and the memory limitations, we are now live on 64bit SLED 11 and the difference in speed is striking. The per user memory requirements have grown, but it's a small price to pay (and memory is cheap!). The top screen below is 220 concurrent Evolution sessions. CPU is barely used at all. Disks are configured RAID 1 which has proven to be the best for Evolution (RAID 5 is much slower). When using the Groupwise backend, hitting Send/Receive the dialog only appears for a split second. The server is has 4 CPUs, quad core and I think we could easily get 500 concurrent users on here with no performance penalty. I'll have a few days of tuning and minor issues. Next on deck for me: getting gdm fixed to allow XDMCP connections again, and starting to work on that new monster server to run Firefox.
Tuesday, June 29, 2010
OpenOffice, Evolution & Benchmarks
The week has been busy and it's only Tuesday. Here are updates on my current projects.
OpenOffice
Migration to 64bit Linux is complete and things are working pretty well. Even with 100 users, OOo opens in about 2-4 seconds, nice. I was able to confirm that indeed there is a nasty memory leak when using the Start Center and have submitted a bug report and valgrind information. The short term work around was just to install enough memory to cover the leak. Hopefully someone will be able to look at it soon.
Evolution
We migrated the rest of the users to SLED 11/SP1 and things appeared to be working well initially. We then started getting reports of Evolution crashing during peak loads. After some investigation it was determined that we are having the same problem that we did with OpenOffice -- having too many people to run the 32bit release. You basically run out of 'low' memory even though when viewing 'top' you perceive of no memory problem. When low memory is exhausted, it begins picking processes and zapping them with oom-killer. I have the servers configured to make them super easy to migrate, so we downloaded 64bit SLED 11 and it's already installed and working on another box. I'm testing Evolution and mime types, and all we have to do tomorrow is just backup /home for everyone and move it over and change IPs. Everyone then instantly is on a new server.
Benchmarks & New Server
The one area of our computing infrastructure that is growing the fastest is the use of Firefox/browsing. More than ever it's being used for data retrieval, videos and downloads. We also are purchasing some new software that might make heavy use of Java and we wanted to ensure the best possible performance; so using budgeted monies we ordered a new server.
The new server finally arrived this week. It's got 8 CPus each with 6 cores. I took a shot of 'top' below so you can see what it looks like. I had to pick 6 point font just to get the CPUs all to display. :)
One of the things that we do when these new servers arrive is hook up with our good friends working on OpenOffice and give them a chance to try and set a new compile world record. This is done before the server is placed into production and when they are finished we move it inside our firewalls and reload the operating system. So in the coming days, hopefully we will get some interesting information concerning just how fast this new server runs.
OpenOffice
Migration to 64bit Linux is complete and things are working pretty well. Even with 100 users, OOo opens in about 2-4 seconds, nice. I was able to confirm that indeed there is a nasty memory leak when using the Start Center and have submitted a bug report and valgrind information. The short term work around was just to install enough memory to cover the leak. Hopefully someone will be able to look at it soon.
Evolution
We migrated the rest of the users to SLED 11/SP1 and things appeared to be working well initially. We then started getting reports of Evolution crashing during peak loads. After some investigation it was determined that we are having the same problem that we did with OpenOffice -- having too many people to run the 32bit release. You basically run out of 'low' memory even though when viewing 'top' you perceive of no memory problem. When low memory is exhausted, it begins picking processes and zapping them with oom-killer. I have the servers configured to make them super easy to migrate, so we downloaded 64bit SLED 11 and it's already installed and working on another box. I'm testing Evolution and mime types, and all we have to do tomorrow is just backup /home for everyone and move it over and change IPs. Everyone then instantly is on a new server.
Benchmarks & New Server
The one area of our computing infrastructure that is growing the fastest is the use of Firefox/browsing. More than ever it's being used for data retrieval, videos and downloads. We also are purchasing some new software that might make heavy use of Java and we wanted to ensure the best possible performance; so using budgeted monies we ordered a new server.
The new server finally arrived this week. It's got 8 CPus each with 6 cores. I took a shot of 'top' below so you can see what it looks like. I had to pick 6 point font just to get the CPUs all to display. :)
One of the things that we do when these new servers arrive is hook up with our good friends working on OpenOffice and give them a chance to try and set a new compile world record. This is done before the server is placed into production and when they are finished we move it inside our firewalls and reload the operating system. So in the coming days, hopefully we will get some interesting information concerning just how fast this new server runs.
Friday, June 25, 2010
OpenOffice Gurus?
So this week we deployed OpenOffice on 64bit Linux for the first time. It's smoking fast and works great especially under user loads; however it's chewing up LOTS of memory. It seems to be using easily 3 times more memory. I have been using lsof to check the documents that the users have open and they are nothing out of the ordinary and some of them are just a few pages with no images.
Anyone have any thoughts on this matter? Could it be leaking this badly? This type of memory usage is not sustainable; so I guess that means I'll have to start looking for it by process of elimination. Possibly it's user settings of some type. Very odd.
(top shot below shows memory usage).
Anyone have any thoughts on this matter? Could it be leaking this badly? This type of memory usage is not sustainable; so I guess that means I'll have to start looking for it by process of elimination. Possibly it's user settings of some type. Very odd.
(top shot below shows memory usage).
Monday, June 21, 2010
Evolution 2.28 & 64 Bit OpenOffice Going Live Starting Today
Evolution 2.28
Those of you that have met me and communicate with me know that I'm pretty fair in describing good & bad experiences in working with technology. The road upgrading from Evolution 2.6 on SLED 10 to something newer has not been very fun and took 1.5 years, which is WAY too long. There were a few times in recent months where we had meetings and discussed moving to completely new solutions. We are using the Groupwise backend with very heavy calendaring and had a minimum level of features that we wanted to get included and working. Sometimes I still get the feeling that Linux vendors are somewhat caught off guard when you *REALLY* run desktop software not on MS Windows. Evolution is by far the best solution to deploy on Linux over the Groupwise Java client (which is absolutely horrid), and the web interface. I just wish that more resources were allocated to its advancement.
With SP1 of SLED 11 enough upstream patches have been merged that our features are working well enough to deploy. It's not perfect and some bugs remain, but users can perform their calendaring functions including meeting resends and retracts. I will be moving over the users to the new server and then doing a bit of QA testing on their accounts to ensure that everything is working.

OpenOffice 3.2.1 On 64 Bit Linux
We had an issue last week whereby hardware is failing on our production OpenOffice server. As luck would have it, the replacement computer had already arrived and was sitting on the loading dock. I did a review of all of the packages that we needed and determined that everything was available in 64 bit versions. The server was quickly built and will be put into production this week. Openoffice on this server is FAST. The composer UI of Writer is appearing fully rendered in about 2-3 seconds, and running so quickly that the splash page doesn't even appear at all. Very nice, and thank you to everyone involved with making my job easier. :)
Those of you that have met me and communicate with me know that I'm pretty fair in describing good & bad experiences in working with technology. The road upgrading from Evolution 2.6 on SLED 10 to something newer has not been very fun and took 1.5 years, which is WAY too long. There were a few times in recent months where we had meetings and discussed moving to completely new solutions. We are using the Groupwise backend with very heavy calendaring and had a minimum level of features that we wanted to get included and working. Sometimes I still get the feeling that Linux vendors are somewhat caught off guard when you *REALLY* run desktop software not on MS Windows. Evolution is by far the best solution to deploy on Linux over the Groupwise Java client (which is absolutely horrid), and the web interface. I just wish that more resources were allocated to its advancement.
With SP1 of SLED 11 enough upstream patches have been merged that our features are working well enough to deploy. It's not perfect and some bugs remain, but users can perform their calendaring functions including meeting resends and retracts. I will be moving over the users to the new server and then doing a bit of QA testing on their accounts to ensure that everything is working.

OpenOffice 3.2.1 On 64 Bit Linux
We had an issue last week whereby hardware is failing on our production OpenOffice server. As luck would have it, the replacement computer had already arrived and was sitting on the loading dock. I did a review of all of the packages that we needed and determined that everything was available in 64 bit versions. The server was quickly built and will be put into production this week. Openoffice on this server is FAST. The composer UI of Writer is appearing fully rendered in about 2-3 seconds, and running so quickly that the splash page doesn't even appear at all. Very nice, and thank you to everyone involved with making my job easier. :)
Friday, May 28, 2010
XDMCP & OpenSuse 11.3 Anyone?
I have been poking at getting indirect XDMCP working on OpenSuse 11.3 with gdm with no success. Has anyone gotten this working? I did see that recently gdm was rewritten and there were some complaints that not all features were brought over to the new version.
Firewall is off on the inside network, gdm.schemas was edited..which looks like it replaced the custom.conf file. I put the lines into custom.conf anyway just to be safe. Xaccess looks good for indirect connections (*), yast2 security has remote connections allowed.
If anyone got it working, step by step instructions are appreciated.
I hate to think that 1975 xdm is going to be greeting our users on shiny new OpenSuse 11.3. :)
Firewall is off on the inside network, gdm.schemas was edited..which looks like it replaced the custom.conf file. I put the lines into custom.conf anyway just to be safe. Xaccess looks good for indirect connections (*), yast2 security has remote connections allowed.
If anyone got it working, step by step instructions are appreciated.
I hate to think that 1975 xdm is going to be greeting our users on shiny new OpenSuse 11.3. :)
Wednesday, May 19, 2010
Ideas Welcome, Low Level Mouse Events
My current project is related to Accessibility. Certain parts of the accessibility modules will help me and are being tested.
One requested idea is to make use of a 5 button mouse. By default the 5 button mouse works per the defaults: Thumb1 does a Back, and Thumb2 does a Forward.
The special need that we have is to eliminate the need to use the keyboard in combination with the Left mouse button. I'm trying to map it like this:
Thumb1 = Hold_Shift_L + Regular_Left_Mouse_Button + Release_Shift_L
Thumb2 = Hold_Control_L + Regular_Left_Mouse_Button + Release_Control_L
This would let them make non-continuous selections and shifted selections without the keyboard. It seems like imwheel is the closest software package for this purpose, but it seems incapable of sending a physical mouse click after another mouse click. Can anyone confirm this is true?
What I tried in the .imwheelrc file is this:
".*"
#,Thumb1,H|E|L|L|O
,Thumb1, Shift_L|Left|-Shift_L
The commented line works great, click Thumb1 and the string appears in the current window. You also can issue a Control-A to select all, works great. But when you attempt to simulate a mouse click, it doesn't seem to understand how to do that. The line below the commented line above to me should work, but doesn't work. I also tried Button8 instead of Left and that also does not work.
Anyone know of another program or technique that could provide this functionality?
Thanks!
One requested idea is to make use of a 5 button mouse. By default the 5 button mouse works per the defaults: Thumb1 does a Back, and Thumb2 does a Forward.
The special need that we have is to eliminate the need to use the keyboard in combination with the Left mouse button. I'm trying to map it like this:
Thumb1 = Hold_Shift_L + Regular_Left_Mouse_Button + Release_Shift_L
Thumb2 = Hold_Control_L + Regular_Left_Mouse_Button + Release_Control_L
This would let them make non-continuous selections and shifted selections without the keyboard. It seems like imwheel is the closest software package for this purpose, but it seems incapable of sending a physical mouse click after another mouse click. Can anyone confirm this is true?
What I tried in the .imwheelrc file is this:
".*"
#,Thumb1,H|E|L|L|O
,Thumb1, Shift_L|Left|-Shift_L
The commented line works great, click Thumb1 and the string appears in the current window. You also can issue a Control-A to select all, works great. But when you attempt to simulate a mouse click, it doesn't seem to understand how to do that. The line below the commented line above to me should work, but doesn't work. I also tried Button8 instead of Left and that also does not work.
Anyone know of another program or technique that could provide this functionality?
Thanks!
Friday, May 14, 2010
Client Based RDP & GNOME Icon Launching
RDP Architecture Change
For many years we have integrated MS Windows applications into our GNOME desktop and delivered them to our thin clients. Various techniques have been used to do so, at first we used UIS (Unix Integration Services) which was wonderful but is no longer available. We used Citrix to deliver applications as well. Because the RDP protocol added high color support a few years ago, this now is becoming our primary delivery technique. It's always been our goal to run as little as possible on physical thin client hardware and keep as much on the server as possible. The more that you run at desktops, the greater the chance that you will have to touch them with updates. It also is harder to troubleshoot and resolve problems when it's offloaded from a server. So what we have done is run rdesktop on the server and this has worked great. Rdesktop talks with Windows and then the presentation is delivered to the thin clients with X. For most applications to date performance has been appropriate. But there are some things that are now making this design not work as well as we would like:

Rdesktop runs on the HP Thin clients fine, but obviously when you do so that then creates a more client/server environment and condition where if you want to make a change to that software package you are going to have to touch desktops. While rdesktop isn't changing heavily, an example of what might happen is the users finding a keysym problem after deployment that requires a change to the configuration files. When rdesktop is on the server, such a change takes 2 minutes.
The other problem is how to make an icon launched from the GNOME server initiate rdesktop running locally on the thin clients. The user account doesn't exist on the thin client and is simply running an X server and then using XDMCP to connect to the server.
What has been devised is a technique that seems like it will work well. The thin clients basically have 2 user accounts, 'root' and an account of 'user' with an ID of 1000. I set up an account called 'user' with ID of 1000 on both of the GNOME desktops and then have granted sudo permissions for all other users to have access to the rsh command as 'user'. When they click on the icon, it will sudo the rsh command and pass to the thin client instructions on all of the command line arguments to run and then initiate a local copy of rdesktop to display :0.
Performance is much faster running in this manner; X and PULSE are completely removed from the loop and the Windows servers now have a straight RDP hop right to the thin client as seen in the diagram below:

Full screen video works well with this design,sound is much less prone to breakups and applications are much faster. We continue to test this design, but it's showing promise.
GNOME Icon Launching
During the debugging stage of Evolution I have noticed certain user techniques which have been unknown to me and I have taken steps to improve the user experience. When a user clicks on an Evolution icon our launch script automatically kills any running sessions of that software and starts a new one. The reason it's designed this way is:
Users Click On Icons Multiple Times To "Speed It Up".
I guess the theory is that an icon is like a water pump. The harder you pump, the faster and more likely you are to get water? Users have been double and triple clicking on the icon. Each click was then halting and restarting Evolution. Nice. So what they see is Evolution blinking multiple times until they stop clicking and then finally it opens.
I installed a small script that I called 'gun slinger' that counts the number of seconds since the last click of certain icons and ignores repeated and quick clicking. Here is the popup they see :)

Users Use The Shortcut Icon To Replace The Window List GUI
Instead of finding an already running process in their window list, they just click on the shortcut icon again. If they have something maximized over the top of Evolution, they have no idea how to bring it to the front and have just been clicking on the shortcut again.
I installed a bit of code in the launch script for Evolution that if it detects an already running session, it uses wmctrl to give it a window manager hint. It comes to the front, un-minimizes and flips the cube to the right side to try and get them to run the already running session. They then get this dialog:

All of these techniques are being logged to a file and I'm seeing how many people have been doing this all along. I'm hoping these two steps will eliminate abnormally shutting down Evolution and also reduce the likelyhood of damaged files and perception of instability.
For many years we have integrated MS Windows applications into our GNOME desktop and delivered them to our thin clients. Various techniques have been used to do so, at first we used UIS (Unix Integration Services) which was wonderful but is no longer available. We used Citrix to deliver applications as well. Because the RDP protocol added high color support a few years ago, this now is becoming our primary delivery technique. It's always been our goal to run as little as possible on physical thin client hardware and keep as much on the server as possible. The more that you run at desktops, the greater the chance that you will have to touch them with updates. It also is harder to troubleshoot and resolve problems when it's offloaded from a server. So what we have done is run rdesktop on the server and this has worked great. Rdesktop talks with Windows and then the presentation is delivered to the thin clients with X. For most applications to date performance has been appropriate. But there are some things that are now making this design not work as well as we would like:
- More and more users are getting dual and triple screens to do wide screen work with lots of real estate. This is a lot of data to push over X.
- Certain CAD applications are becoming more sophisticated and are doing lots of movements and zoom that should deliver reasonable response times.
- More applications are starting to deliver sound and video from Windows.
- Products such as Aqua Connect allow you to deliver Mac OS X applications from servers which also require faster response times.

Rdesktop runs on the HP Thin clients fine, but obviously when you do so that then creates a more client/server environment and condition where if you want to make a change to that software package you are going to have to touch desktops. While rdesktop isn't changing heavily, an example of what might happen is the users finding a keysym problem after deployment that requires a change to the configuration files. When rdesktop is on the server, such a change takes 2 minutes.
The other problem is how to make an icon launched from the GNOME server initiate rdesktop running locally on the thin clients. The user account doesn't exist on the thin client and is simply running an X server and then using XDMCP to connect to the server.
What has been devised is a technique that seems like it will work well. The thin clients basically have 2 user accounts, 'root' and an account of 'user' with an ID of 1000. I set up an account called 'user' with ID of 1000 on both of the GNOME desktops and then have granted sudo permissions for all other users to have access to the rsh command as 'user'. When they click on the icon, it will sudo the rsh command and pass to the thin client instructions on all of the command line arguments to run and then initiate a local copy of rdesktop to display :0.
Performance is much faster running in this manner; X and PULSE are completely removed from the loop and the Windows servers now have a straight RDP hop right to the thin client as seen in the diagram below:

Full screen video works well with this design,sound is much less prone to breakups and applications are much faster. We continue to test this design, but it's showing promise.
GNOME Icon Launching
During the debugging stage of Evolution I have noticed certain user techniques which have been unknown to me and I have taken steps to improve the user experience. When a user clicks on an Evolution icon our launch script automatically kills any running sessions of that software and starts a new one. The reason it's designed this way is:
- Regular users cannot be expected to understand how to kill applications with a GUI or to look at process lists. People have no idea what this means or how to do it.
- Users understand reboots, and if they had a local computer would just reboot it. Obviously, they can't reboot the servers. Hundreds of other people would not be pleased. :)
- There are 15 hours of the day and weekends when someone from IT is not here to kill processes that are stuck or not responding.
- The regular GNOME dialog that comes up when an application is not responding very often does not halt all related processes. Yeah it might get evolution.bin, but it very likely will leave the data-server and alarm processes happy churning away.
- Very often users log off without closing Evolution correctly and sometimes just turn off their thin clients. This leaves processes behind on the server.
Users Click On Icons Multiple Times To "Speed It Up".
I guess the theory is that an icon is like a water pump. The harder you pump, the faster and more likely you are to get water? Users have been double and triple clicking on the icon. Each click was then halting and restarting Evolution. Nice. So what they see is Evolution blinking multiple times until they stop clicking and then finally it opens.
I installed a small script that I called 'gun slinger' that counts the number of seconds since the last click of certain icons and ignores repeated and quick clicking. Here is the popup they see :)

Users Use The Shortcut Icon To Replace The Window List GUI
Instead of finding an already running process in their window list, they just click on the shortcut icon again. If they have something maximized over the top of Evolution, they have no idea how to bring it to the front and have just been clicking on the shortcut again.
I installed a bit of code in the launch script for Evolution that if it detects an already running session, it uses wmctrl to give it a window manager hint. It comes to the front, un-minimizes and flips the cube to the right side to try and get them to run the already running session. They then get this dialog:

All of these techniques are being logged to a file and I'm seeing how many people have been doing this all along. I'm hoping these two steps will eliminate abnormally shutting down Evolution and also reduce the likelyhood of damaged files and perception of instability.
Tuesday, April 27, 2010
User Presentation Available
Today I'm having a quick meeting with interested users as I begin to look at using OpenSuse 11.3 to replace 10.2 as our desktop server. I built some quick glade mockups to kick around some ideas. The MIME bars that you get when you double-click have worked well for us, so I'm looking at ways to make improvements. I also am going to write a simple application to allow them to make Compiz changes which falls in between ccsm and simple-ccsm. The slides are cryptic, but might be interesting reading.
The presentation is here
The presentation is here
Thursday, April 22, 2010
What I'm Working On...
I haven't posted in a while, guess it's time. The days seem to go quickly and blend together. I sit in a cubicle listening to XM Radio with headsets most of the time, but am making steady progress on some projects.
Evolution Deployment
Still not live yet on SLED 11 :( , but in the last 3 weeks have made some progress. Our beta testers have been patient so far, and I really hope we are nearing the end of this process. All features that we need are now merged. We had a nasty performance problem that took a while to resolve. It turned out that a user had birthdays entered on a blackberry, and Groupwise gladly synced and uploaded them. The problem is that it uploaded them for 100 years. Our version of evolution-data-server doesn't play nicely with a calendar that goes out that far into the future. We found it, cleaned the users data and things are better. Now are awaiting the code to make bug-buddy launch so that I can get some backtraces from the users.
Thin Client Updates
All for of our thin client devices are synced and work with the same code and provide identical features. Our support group has started updating the thin clients around the City with the new code and for the most part is a nice upgrade. The one issue that I am tracking is that there seems to be an X crasher when using 3D effects in Debian Lenny on the ATI driver. It happens to me about once every 2 weeks and you lose all of your work. I need to get a bug report packed and hope that someone is interested in working on a fix. It doesn't seem to happen to 2D users.
Firefox Server Upgrade
With the explosion of Internet and Firefox usage we are going to be building a new server to hold us for the next few years. We also got word that we are buying a major new application that uses Java in the browser. Java has always proven not pleasant to deploy, so hopefully this server will meet our needs and provide adequate performance. It's an eight processor, six core machine. 'top' is going to report 48 CPUs, that's going to be interesting for sure. :)
Next Generation Desktop
I brought down OpenSuse 11.3 beta and have started poking at it and am going to be building a server for alpha testing it as part of a plan to upgrade our desktop (login) servers. These servers provide GNOME and 3D. XDMCP seems kind of broken and untested in the current betas. I'm going to see if updates exist. Gnome-shell was a no-go over remote display, so looks like we will be using Compiz for another upgrade cycle. I did some testing of compiz and performance was excellent. I'm doing a kickoff presentation for our users next week and will be showing them screen shots and mockups of ideas that I have to improve our current design. Of course, as things are deployed I'll post them here too.
Evolution Deployment
Still not live yet on SLED 11 :( , but in the last 3 weeks have made some progress. Our beta testers have been patient so far, and I really hope we are nearing the end of this process. All features that we need are now merged. We had a nasty performance problem that took a while to resolve. It turned out that a user had birthdays entered on a blackberry, and Groupwise gladly synced and uploaded them. The problem is that it uploaded them for 100 years. Our version of evolution-data-server doesn't play nicely with a calendar that goes out that far into the future. We found it, cleaned the users data and things are better. Now are awaiting the code to make bug-buddy launch so that I can get some backtraces from the users.
Thin Client Updates
All for of our thin client devices are synced and work with the same code and provide identical features. Our support group has started updating the thin clients around the City with the new code and for the most part is a nice upgrade. The one issue that I am tracking is that there seems to be an X crasher when using 3D effects in Debian Lenny on the ATI driver. It happens to me about once every 2 weeks and you lose all of your work. I need to get a bug report packed and hope that someone is interested in working on a fix. It doesn't seem to happen to 2D users.
Firefox Server Upgrade
With the explosion of Internet and Firefox usage we are going to be building a new server to hold us for the next few years. We also got word that we are buying a major new application that uses Java in the browser. Java has always proven not pleasant to deploy, so hopefully this server will meet our needs and provide adequate performance. It's an eight processor, six core machine. 'top' is going to report 48 CPUs, that's going to be interesting for sure. :)
Next Generation Desktop
I brought down OpenSuse 11.3 beta and have started poking at it and am going to be building a server for alpha testing it as part of a plan to upgrade our desktop (login) servers. These servers provide GNOME and 3D. XDMCP seems kind of broken and untested in the current betas. I'm going to see if updates exist. Gnome-shell was a no-go over remote display, so looks like we will be using Compiz for another upgrade cycle. I did some testing of compiz and performance was excellent. I'm doing a kickoff presentation for our users next week and will be showing them screen shots and mockups of ideas that I have to improve our current design. Of course, as things are deployed I'll post them here too.
Thursday, April 01, 2010
Thanks Pepp!
When you have an idea for a feature and do a bounty and finally get it back it's a wonderful thing.
Today we finally received just such a feature; Drop and drag from Evolution into PDF format. Being a Governmental agency, our users have to keep copies of hundreds of emails a day in project folders. Previously in order to keep them in PDF format, they would have to do them one at a time by "printing to PDF".
This feature will save us countless hours. Once it's been tested fully, I'll work with the Evo guys and get it merged into the community build too.
It's a good day.
Today we finally received just such a feature; Drop and drag from Evolution into PDF format. Being a Governmental agency, our users have to keep copies of hundreds of emails a day in project folders. Previously in order to keep them in PDF format, they would have to do them one at a time by "printing to PDF".
This feature will save us countless hours. Once it's been tested fully, I'll work with the Evo guys and get it merged into the community build too.
It's a good day.
Friday, March 26, 2010
Calling OpenSuse 10.3 Gurus
Yup, I now it's old. We have NFS server running on OpenSuse 10.3 and everything is working great. We now have a circumstance where we need detailed logging to this machine for a short period of time and the command line arguments for rpc.mountd don't seem to work as I expect them.
By appending --debug all (and optionally --foreground to run on the foreground) I was expecting to see lots of spewage and be able to monitor all NFS activity including reads, writes and deletes in realtime. But the only thing that is bring reported is when the initial mount comes from the client. All interaction with files creates no logging at all.
I thought maybe this was a syslog problem, and thus ran it in the foreground and expected to see this information displayed; yet I'm getting no logging at all.
Drop me a line in the comments area if I'm having a conceptual failure in this area. :) I also have been looking for a description of the debug levels (all, auth, call, general and parse)...yet no man pages seem to tell you exactly what they mean. I guess this might fall under 'read the source code'?
Happy weekend all.
By appending --debug all (and optionally --foreground to run on the foreground) I was expecting to see lots of spewage and be able to monitor all NFS activity including reads, writes and deletes in realtime. But the only thing that is bring reported is when the initial mount comes from the client. All interaction with files creates no logging at all.
I thought maybe this was a syslog problem, and thus ran it in the foreground and expected to see this information displayed; yet I'm getting no logging at all.
Drop me a line in the comments area if I'm having a conceptual failure in this area. :) I also have been looking for a description of the debug levels (all, auth, call, general and parse)...yet no man pages seem to tell you exactly what they mean. I guess this might fall under 'read the source code'?
Happy weekend all.
Wednesday, March 17, 2010
Why We Develop With Panther
People are pretty passionate about their development tools, we found something that works for us based on our needs. Maybe if you are in the Government or Business segments, this information will be useful.
The development tools on Linux most commonly in use are great for writing 'desktop applications'. Want an email client? Use C. Want a note taking package? Use Mono. But those tools are not a good fit for our needs. We want to quickly connect to a database, drop and drag fields out, give the users a simple grid and entry system; and then give them quick reports. We always say that the type of software that we write boils down to "enter, list, sort and print". When we get a request, they usually want it finished quickly, and we don't want our staff debugging garbage collection, threads, compilation and fighting every widget interaction. Our custom software isn't as complicated as Firefox or Evolution, and does not need low level languages. We also want it to run on Linux, and carry no runtime licenses.
The other big issue for us is portability and server upgrades. When an operating system or hardware becomes obsolete, you don't want to spend a time messing with stable software trying to get it to work correctly on a new box. It's much easier to just tar it all up and move it over and it just *works*. Sometimes too you move to new operating systems. All of our software started on SCO Unix and then moved to Linux, and we didn't want to have to recompile and debug working applications during that transition. Lastly, when database upgrades and changes come we didn't want to have to touch the software yet again and fight library interactions.
So how did we obtain these goals? We are using a software package called Panther from Prolifics. The way that it works in a nutshell is that when you develop, you are writing GUI layout instructions and logic code into the 'client.lib'. This file itself does not execute and is highly portable. You then get a 'prorun' binary from Prolifics for whatever platform you wish to deploy on, and it converts your UI instructions into native widgets of the current operating system. It's super fast, with a small memory footprint and serves us well.
This image shows how software is deployed with Panther. You develop your screens on any platform, and a runtime engine on other operating systems instantly convert your screens to that platform.

I built a very simple (blingless!) screen to demonstrate. Here is a shot of the development environment running on Linux/X.

Once your screen is finished all of your instructions are stored in client.lib. You can then pass it to the prorun binary for various platforms unmodified. I do want to be clear that you do of course have to make considerations for the real estate of the various platforms. But Panther does a good job of adding scroll bars to screens when they don't fit. Making this work becomes kind of a art form, and is elegant.
Here is the screen running in Linux/X

If you unset DISPLAY, it instantly runs in character mode. It replicates the widgets as closely as possible, and on a workstation with a mouse, you are able to click into fields and activate the pulldown menus.

They have a prorun (jserver) process that can go into the cgi-bin directory of your web server and once called converts the client.lib into HTML. Your screens are instantly on the web, unmodified. In theory you could NFS mount the client.lib file and run the same code on MS WIndows, Linux/X, Linux/Character and on the web. Any changes you made instantly were deployed to all users.
Here is the screen running in the webserver.

Here is the same screen running on Microsoft Windows.

So for the last few months I have been working with our Integration staff in making Panther fit better into the GNOME desktop. Artwork is being upgraded and all hard coded colors are being removed. GNOME themes automatically set old school X resources as closely as possible to the right colors, which Panther picks up nicely. These steps along with anti-aliased fonts in newer versions of Motif have allowed us to deliver better looking software. The shots below demonstrate a deployed screen, with colors picked up from GNOME theme.



Linux is a wonderful runtime environment for running custom in-house software, and maybe this post has given you some ideas for your own organization.
Update: Receiving and uploaded Microsoft Windows screenshot.
The development tools on Linux most commonly in use are great for writing 'desktop applications'. Want an email client? Use C. Want a note taking package? Use Mono. But those tools are not a good fit for our needs. We want to quickly connect to a database, drop and drag fields out, give the users a simple grid and entry system; and then give them quick reports. We always say that the type of software that we write boils down to "enter, list, sort and print". When we get a request, they usually want it finished quickly, and we don't want our staff debugging garbage collection, threads, compilation and fighting every widget interaction. Our custom software isn't as complicated as Firefox or Evolution, and does not need low level languages. We also want it to run on Linux, and carry no runtime licenses.
The other big issue for us is portability and server upgrades. When an operating system or hardware becomes obsolete, you don't want to spend a time messing with stable software trying to get it to work correctly on a new box. It's much easier to just tar it all up and move it over and it just *works*. Sometimes too you move to new operating systems. All of our software started on SCO Unix and then moved to Linux, and we didn't want to have to recompile and debug working applications during that transition. Lastly, when database upgrades and changes come we didn't want to have to touch the software yet again and fight library interactions.
So how did we obtain these goals? We are using a software package called Panther from Prolifics. The way that it works in a nutshell is that when you develop, you are writing GUI layout instructions and logic code into the 'client.lib'. This file itself does not execute and is highly portable. You then get a 'prorun' binary from Prolifics for whatever platform you wish to deploy on, and it converts your UI instructions into native widgets of the current operating system. It's super fast, with a small memory footprint and serves us well.
This image shows how software is deployed with Panther. You develop your screens on any platform, and a runtime engine on other operating systems instantly convert your screens to that platform.

I built a very simple (blingless!) screen to demonstrate. Here is a shot of the development environment running on Linux/X.

Once your screen is finished all of your instructions are stored in client.lib. You can then pass it to the prorun binary for various platforms unmodified. I do want to be clear that you do of course have to make considerations for the real estate of the various platforms. But Panther does a good job of adding scroll bars to screens when they don't fit. Making this work becomes kind of a art form, and is elegant.
Here is the screen running in Linux/X

If you unset DISPLAY, it instantly runs in character mode. It replicates the widgets as closely as possible, and on a workstation with a mouse, you are able to click into fields and activate the pulldown menus.

They have a prorun (jserver) process that can go into the cgi-bin directory of your web server and once called converts the client.lib into HTML. Your screens are instantly on the web, unmodified. In theory you could NFS mount the client.lib file and run the same code on MS WIndows, Linux/X, Linux/Character and on the web. Any changes you made instantly were deployed to all users.
Here is the screen running in the webserver.

Here is the same screen running on Microsoft Windows.

So for the last few months I have been working with our Integration staff in making Panther fit better into the GNOME desktop. Artwork is being upgraded and all hard coded colors are being removed. GNOME themes automatically set old school X resources as closely as possible to the right colors, which Panther picks up nicely. These steps along with anti-aliased fonts in newer versions of Motif have allowed us to deliver better looking software. The shots below demonstrate a deployed screen, with colors picked up from GNOME theme.



Linux is a wonderful runtime environment for running custom in-house software, and maybe this post has given you some ideas for your own organization.
Update: Receiving and uploaded Microsoft Windows screenshot.
Thursday, March 04, 2010
18 Second Boot
I have been working in between things on the hp 4410t thin client laptop based on ideas from some of users and IT staff. One thing that was important to me was making it work better than our fat PCs that are used to remotely log into the City network. One part of that goal is making so that it's ready to work as quickly as possible after it's powered on. I stripped out all services not required and have gotten the machine fully booted and networked in 18 seconds. I might be able to shave off a few seconds yet, but I think it's getting pretty close to the fastest possible experience with this hardware. Not bad.

When I'm finished with everything, I'll post a flowchart showing the design flow of network connections and features. I'm working to make this as simple as possible and want to reach a goal of users just having to know to push a single button and everything is networked and ready for their login.
Items left for me tinker with: Backlight issues when moving back and forth to battery, More intelligent WiFi logic to understand whether it's in our buildings to reduce boot times, resolve issue of very buggy x-server-xorg-video-intel (2.9.1-2) on Debian squeeze/sid, remove unneeded packages to try and reclaim a bit more flash drive space and resolve some pulseaudio problems at boot time.

When I'm finished with everything, I'll post a flowchart showing the design flow of network connections and features. I'm working to make this as simple as possible and want to reach a goal of users just having to know to push a single button and everything is networked and ready for their login.
Items left for me tinker with: Backlight issues when moving back and forth to battery, More intelligent WiFi logic to understand whether it's in our buildings to reduce boot times, resolve issue of very buggy x-server-xorg-video-intel (2.9.1-2) on Debian squeeze/sid, remove unneeded packages to try and reclaim a bit more flash drive space and resolve some pulseaudio problems at boot time.
Monday, March 01, 2010
Miserable Admin Things
Tuesday, February 23, 2010
Various Updates
I haven't posted any new information for a while, but the City has been keeping me busy. Here are the things that I have been working in no particular order.
OpenOffice
I upgraded the whole City to OpenOffice 3.2 this morning. As I have mentioned previously upgrades are very simple when they are deployed from a centralized server. All I do is point the launch scripts to the new version and it immediately goes live. So far, no major support issues.
Firefox 3.6
We went live with 3.6 and so far everything is working well. Performance is good over remote display on multi-user servers. I have already started beta testing 3.7.
Evolution
Migration to the new Evolution has been slower going than I would have liked. We were running a developer build and have now synced to the official release. We found a few regressions and issues, and I sent a document which contains our show stoppers. Hopefully we can get this project finished soon.
Thin Client OS 2.0
I finished our internal "2.0" thin client operating system release and it's starting to be pushed out into widespread use. Another week or so, and I'll be comfortable deploying to our other 550 thin clients. HP released Debian Lenny, and I made all of the modifications required to better support our design goals. The major changelog items: + Increased USB stick supported files + Click sound when USB stick is inserted and removed + Upgraded NX client for remote sites + Graphical first boot which requests information about how thin client will be used and desired resolution and color depth + Merged Intel Xorg drivers + Support for 5745 thin client + Hard code 5735 thin clients to only work in our cyber cafes + Custom Largo splashy at boot + Support for SmartBoard white boards + Removed Xinerama and moved to xrandr. + Automatic shutdown in 3 hours of inactivity + Faster startups and shutdowns.
I'm very pleased with this release, all of our thin clients work with an identical Linux OS.
5745 Thin Client
Our loaner t5745 HP thin client is working *great*. I have started to move it around to regular users who are testing it with their own monitor hardware and their own techniques. Reports are that it's 10-15% faster than the 5725. Nice.
SmartBoard (Electronic White Board)
The new IT conference is finished, and we have deployed an electronic white board. The drivers and software works 100% on Linux, so I installed it in the 2.0 thin client release. That means anyone in the City that wants to use this technology just has to buy the right hardware. The picture below is the smart board mounted to a wall, running off a thin client. You can export these documents into PDF with just a few clicks.

4410t Thin Client Laptop
I have gotten some time to work on the back burner project of adding a thin client laptop into our infrastructure. I'll blog about this in more detail in the coming days. I downloaded some bleeding edge Intel drivers which are buggy, but making progress in the design and work flow. I basically want to make it so that you just turn on the device and within a few seconds you are able to log into our network. I'm experimenting with how best to drop from wired to wireless to EVDO automatically. I'm not reinventing the wheel, just trying to eliminate applets and prompts and just work for our needs and network. Lots to think about.
The picture below is my testing of an EVDO modem, testing ideas on how to handle the phone number and when exactly it should dial. Our number one support issue on fat laptops is networking.
OpenOffice
I upgraded the whole City to OpenOffice 3.2 this morning. As I have mentioned previously upgrades are very simple when they are deployed from a centralized server. All I do is point the launch scripts to the new version and it immediately goes live. So far, no major support issues.
Firefox 3.6
We went live with 3.6 and so far everything is working well. Performance is good over remote display on multi-user servers. I have already started beta testing 3.7.
Evolution
Migration to the new Evolution has been slower going than I would have liked. We were running a developer build and have now synced to the official release. We found a few regressions and issues, and I sent a document which contains our show stoppers. Hopefully we can get this project finished soon.
Thin Client OS 2.0
I finished our internal "2.0" thin client operating system release and it's starting to be pushed out into widespread use. Another week or so, and I'll be comfortable deploying to our other 550 thin clients. HP released Debian Lenny, and I made all of the modifications required to better support our design goals. The major changelog items: + Increased USB stick supported files + Click sound when USB stick is inserted and removed + Upgraded NX client for remote sites + Graphical first boot which requests information about how thin client will be used and desired resolution and color depth + Merged Intel Xorg drivers + Support for 5745 thin client + Hard code 5735 thin clients to only work in our cyber cafes + Custom Largo splashy at boot + Support for SmartBoard white boards + Removed Xinerama and moved to xrandr. + Automatic shutdown in 3 hours of inactivity + Faster startups and shutdowns.
I'm very pleased with this release, all of our thin clients work with an identical Linux OS.
5745 Thin Client
Our loaner t5745 HP thin client is working *great*. I have started to move it around to regular users who are testing it with their own monitor hardware and their own techniques. Reports are that it's 10-15% faster than the 5725. Nice.
SmartBoard (Electronic White Board)
The new IT conference is finished, and we have deployed an electronic white board. The drivers and software works 100% on Linux, so I installed it in the 2.0 thin client release. That means anyone in the City that wants to use this technology just has to buy the right hardware. The picture below is the smart board mounted to a wall, running off a thin client. You can export these documents into PDF with just a few clicks.

4410t Thin Client Laptop
I have gotten some time to work on the back burner project of adding a thin client laptop into our infrastructure. I'll blog about this in more detail in the coming days. I downloaded some bleeding edge Intel drivers which are buggy, but making progress in the design and work flow. I basically want to make it so that you just turn on the device and within a few seconds you are able to log into our network. I'm experimenting with how best to drop from wired to wireless to EVDO automatically. I'm not reinventing the wheel, just trying to eliminate applets and prompts and just work for our needs and network. Lots to think about.
The picture below is my testing of an EVDO modem, testing ideas on how to handle the phone number and when exactly it should dial. Our number one support issue on fat laptops is networking.
Thursday, February 04, 2010
HP t5745 Externals And Internals
Of course one is always tempted to take apart something that is working fine and see what makes it tick. I have been running the new HP t5745 thin client at my desk for about a week now and it's working really well. Performance still feels about 10% faster than the older model. The Intel Xorg drivers are stable and fast, and I haven't seen any blinking or video problems. Looks like this one is a winner.
The inside is very clean. Memory, Apacer flash module and CPU take up the most space.

The front is well designed; microphone, headphone and two USB ports easily available to the users.

The back is clean, and offers all the ports we need. PS2 ports are appreciated to keep the USB ports clear for other devices.

If you are considering a move to thin clients, this is the best model I have seen to date. With a 400 dollar price point, and anticipated 10 year duty cycle it's certainly attractive. Our 5725s are proving to be solid work horses with very few failures even after 3 years.
The inside is very clean. Memory, Apacer flash module and CPU take up the most space.

The front is well designed; microphone, headphone and two USB ports easily available to the users.

The back is clean, and offers all the ports we need. PS2 ports are appreciated to keep the USB ports clear for other devices.

If you are considering a move to thin clients, this is the best model I have seen to date. With a 400 dollar price point, and anticipated 10 year duty cycle it's certainly attractive. Our 5725s are proving to be solid work horses with very few failures even after 3 years.
Tuesday, January 26, 2010
HP 5745 Thin Client Arrived
Yesterday we received our first HP 5745 thin client, and I'm pleased to say that it's working well so far. The onboard Intel video card supports 3D/Compiz and will not require us to add our own video cards; which will lower their price point by at least 75 dollars. Compiz is fluid and responsive and movement is crisp.
It was really perfect timing for the 5745 to arrive. I had just finished the Lenny update for the 5725s and 5735s and the build installed and booted with very few modifications. So for us, all three models will run the same operating system and have identical features. I just need to write a small amount of auto-detection code for first boot.
In the next few days, I'll take the new thin client apart and take photos of the internals. The new footprint and design is excellent; it's only 1.75 inches wide.
It was really perfect timing for the 5745 to arrive. I had just finished the Lenny update for the 5725s and 5735s and the build installed and booted with very few modifications. So for us, all three models will run the same operating system and have identical features. I just need to write a small amount of auto-detection code for first boot.
In the next few days, I'll take the new thin client apart and take photos of the internals. The new footprint and design is excellent; it's only 1.75 inches wide.
Wednesday, January 06, 2010
XrandR, No More Xinerama
This issue apparently is well documented on the Internet, but it was new to me. Quoted from Wikipedia:
XRandR 1.2
HP ports Debian Linux to our thin clients periodically, and I then take their builds and customize them for our needs. I was pretty excited to be able to deploy Lenny after it was finalized on our hardware. But it turns out that Xinerama support was dropped before xrandr (1.2) was feature complete. After lots of tinkering I was able to get dual screens working, but unfortunately it seems that VGA-0 is hard wired to be your left screen and DVI-0 is the right. When they are flipped, XDM authentication and the GNOME panel open on the right screen which doesn't work well at all. So the net result is that when we touch thin clients that are running two monitors, our support staff is going to have to move cables and move things around. We purposely put the DVI monitor on the left side because it offers a slightly better picture quality.
As was noted in the Wikipedia article, three monitors are not supported at all, so we are going to have to run Etch on users that need that many screens.
I guess the point I wanted to make is that I understand that things need to evolve and move ahead, but there are really people using features like Xinerama. I don't care if something replaces it, but please don't drop the old features until the new ones are working. It's embarrassing that our custom GUI when the thin clients boot the first time looks like this now (Three Monitors is disabled):
XRandR 1.2
XRandR 1.2 only permits one virtual screen per display device. It is not possible to assign each monitor on a device to a different screen (sometimes called "Zaphod" mode), or to combine monitors from multiple devices into a single screen.[3]
One practical limiting effect of this is that it is not possible to run a different WM on each monitor, since window managers are limited to one per screen.
These specific issues are resolved in XRandR 1.3[4], but the Xorg Foundation has been criticised for removing useful, and widely used[citation needed], functionality before an effective substitute is available
(end of Wikipedia snip)HP ports Debian Linux to our thin clients periodically, and I then take their builds and customize them for our needs. I was pretty excited to be able to deploy Lenny after it was finalized on our hardware. But it turns out that Xinerama support was dropped before xrandr (1.2) was feature complete. After lots of tinkering I was able to get dual screens working, but unfortunately it seems that VGA-0 is hard wired to be your left screen and DVI-0 is the right. When they are flipped, XDM authentication and the GNOME panel open on the right screen which doesn't work well at all. So the net result is that when we touch thin clients that are running two monitors, our support staff is going to have to move cables and move things around. We purposely put the DVI monitor on the left side because it offers a slightly better picture quality.
As was noted in the Wikipedia article, three monitors are not supported at all, so we are going to have to run Etch on users that need that many screens.
I guess the point I wanted to make is that I understand that things need to evolve and move ahead, but there are really people using features like Xinerama. I don't care if something replaces it, but please don't drop the old features until the new ones are working. It's embarrassing that our custom GUI when the thin clients boot the first time looks like this now (Three Monitors is disabled):
Monday, December 14, 2009
Etch Becomes Lenny
HP recently released a new thin client operating system based on Debian Lenny for the soon to be released 5745 model. They support the older 5735 as well. While they don't support our 5725s officially, I felt confident that it would work.
When HP released Etch, I made our custom modifications all self contained and easily linked into /etc/rc2.d. So it was easier than ever to accept this upgrade and prep it for release to our employees. Newer X.org and Mesa libraries should make it easier to test gnome-shell and Compiz upgrades. After just a few hours, it's already running and stable. The 5725s worked fine; just needed to install the SiS driver. I should be able to deliver this to additional testers in the next few days. The UI and login screens haven't changed, so they shouldn't even notice a difference.
I am introducing one new feature, which is going through my QA process at this time. We have had a digital smart/white board for a number of years that has been under utilized because it never had a permanent home. IT is getting a new conference room, so it's finally going to get the wall mount it deserves. It works just like a white board with magic markers, except it's done electronically. One picks up 'fake' colored pens, and as you write the 'ink' appears on the screen through a projector. You can then save your pages into PDF or image format, clear the board with a click and start adding more notes. The company (Smart Tech) fully supports Linux, and I am at this time loading their software on our thin clients. This is one of the rare exceptions where the software is better suited to be running locally. So what I did was create a custom XDMCP connection that once activated waits 60 seconds before launching the dashboard type interface used by the board. This gives you enough time to get logged into the GNOME server so the software doesn't sit over your authentication screen. I'll take some pictures of the board in operation once everything is tested and the room is finished.
The shot below is the chooser which is available on thin clients connected to the Smart Boards. This is the first thing you see after the thin clients are booted.

The shot below is the software which connects to the Smart board products. One can use a mouse or virtual pens to create output.

Update: The Smart Board is working on Linux and the thin client, pictures below.

When HP released Etch, I made our custom modifications all self contained and easily linked into /etc/rc2.d. So it was easier than ever to accept this upgrade and prep it for release to our employees. Newer X.org and Mesa libraries should make it easier to test gnome-shell and Compiz upgrades. After just a few hours, it's already running and stable. The 5725s worked fine; just needed to install the SiS driver. I should be able to deliver this to additional testers in the next few days. The UI and login screens haven't changed, so they shouldn't even notice a difference.
I am introducing one new feature, which is going through my QA process at this time. We have had a digital smart/white board for a number of years that has been under utilized because it never had a permanent home. IT is getting a new conference room, so it's finally going to get the wall mount it deserves. It works just like a white board with magic markers, except it's done electronically. One picks up 'fake' colored pens, and as you write the 'ink' appears on the screen through a projector. You can then save your pages into PDF or image format, clear the board with a click and start adding more notes. The company (Smart Tech) fully supports Linux, and I am at this time loading their software on our thin clients. This is one of the rare exceptions where the software is better suited to be running locally. So what I did was create a custom XDMCP connection that once activated waits 60 seconds before launching the dashboard type interface used by the board. This gives you enough time to get logged into the GNOME server so the software doesn't sit over your authentication screen. I'll take some pictures of the board in operation once everything is tested and the room is finished.
The shot below is the chooser which is available on thin clients connected to the Smart Boards. This is the first thing you see after the thin clients are booted.

The shot below is the software which connects to the Smart board products. One can use a mouse or virtual pens to create output.

Update: The Smart Board is working on Linux and the thin client, pictures below.

Subscribe to:
Posts (Atom)
