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.


QuLogic said...
This comment has been removed by the author.
QuLogic said...

You can actually tell convert to use a certain file type using type:filename like so:

convert txt:input png:output

Dave Richards said...

qulogic: That's awesome. I looked all over for a way to do that and couldn't figure it out. That will come in handy.

Steven said...
This comment has been removed by a blog administrator.
Donnie said...

@Dave Richards: This is unrelated to your original post but I would like to discuss the possibility of interviewing you for a future college project. The topic would be primarily about business communication though I must admit I am also a big fan of open-source software and its use in business/government so some of those questions may slip in as well. I do apologize, in advance, that I was unable to find another way to contact you.