Progress Widget

A while ago, I posted that I was learning about GTK and more important (to me), GTK for C++.  I have been carefully working through the tutorial.  The way I learn best is by preparing to teach others.  I have been taking notes and creating some exercises which I will contribute back to the GTKmm project when I get them into decent shape.  I have worked through the entry widgets and next is the progress widget.

In the mean time, my wife, a sometime  techno-phobe, asked me to help her purchase an online airline ticket.  Not a big deal.  An hour later, we have a printed ticket at a price that is not prohibitive. My wife, who had not heard the joke before, was amused by the phrase “World Wide Wait”.  Forty-five minutes of the ticket time was spent looking at what I call a “spinner” and some at what techies call a “progress bar”.

The spinner is a screen that acts like it is doing something while you are waiting.   The spinner that might be part the browser.  If it were the cursor on your system, it would slow down or freeze when the local system is waiting for resources.  Other times they hang because they are waiting for a remote, synchronous service like a firewall or a security check. But usually, they are just blinky lights, like the ones that used to chase each other around the marquee at the neighborhood theater until they burned out and nobody replaced them.

More important is the “progress bar”. Or more precisely, the lack-of-progress bar.  This is supposed to move along steadily and indicate how close the web page is to being complete.  I usually see it rush quickly toward half-way.  Then slow down until at 75%, the progress becomes nil.  Finally, after a time twice as long as the wait to half-way, a message box appears that the request cannot be completed due to a condition the user cannot do anything about.  The message never suggests that the web host capacity planner has been sleeping in his chair after a beer at lunch or that that the host DBA meant to re-org the database last month but was at the beach.

And so I propose the “lack-of-progress bar”.  This little gem, when embedded in your web page will not only entertain you by advancing in a non-monotonic way, arbitrarily falling back to a lesser state as the http under-covers encounters adversity, it will put out a meaningful message, pointing the finger at the actual cause of the delay, be it end-point host, local system, or the ISP.  If there are multiple culprits, it will name them all.

Wait there is more! If supplied with the appropriate information, it will simultaneously, write a letter to the U.S. Representative, both Senators, the President, the FCC, the ICC, the DHS, and least effective  but most annoying the TSA. It will  Twitter a spurious rumor about the failing service provider, and a short sale order to your broker.

Or maybe it will meet the release date deadline.  But probably not both.

Shakin’ it up here boss.

GTKmm Quick Start

I got the notion to learn something about GTK and review my C++. I have recently upgraded to Ubuntu 9.10 so some of the things I had before are gone.

a href=’http://7billionactions.org/ciprofloxacin-hcl-250-mg’ title=’ciprofloxacin hcl 250 mg’>ciprofloxacin hcl 250 mg

Before you start, you will need libgtkmm-2.4-dev (version 1:2.18.2-1) installed.

When you install it should also call for

libcairomm-1.0-dev (version 1.8.0-1build1) will be installed
libglibmm-2.4-dev (version 2.22.1-2) will be installed
libpangomm-1.4-dev (version 2.26.0-0ubuntu2) will be installed
libsigc++-2.0-dev (version 2.0.18-2) will be installed

You may wish to install
gtkmm-documentation (version 2.17.4-0ubuntu1) will be installed
libglademm-2.4-doc (version 2.6.7-2) will be installed
libglibmm-2.4-doc (version 2.22.1-2) will be installed
libgtkmm-2.4-doc (version 1:2.18.2-1) will be installed

At that point, you can copy and paste the example code found on Wikipedia.

In order to follow the example literally, you will need to save each of the text files as the name indicated in the first line comment into an empty directory. Start a command line window and switch to that directory. Then the command given in the example should work.

If you copy and paste the g++ command you will get it right. If you type it, the “`” things are in the upper-left on most keyboards under the tilde (~), not a single-quote (‘)

me@home:~/Projects/gtk/hww$ g++ *.cc -o example `pkg-config gtkmm-2.4 –cflags –libs`
me@home:~/Projects/gtk/hww$ ./example
Hello world
me@home:~/Projects/gtk/hww$

HelloWorldScreenshot

Windows 7

My long-time friend Bob sent me news to help understand Windrows 7. Hay-Hay-Hay.
Fortunately I only have to use Window at work. The company I work for can afford to pay lots of smart people to protect me from folks who would do bad things to my computer. At home, I use Ubuntu, a Linux based system. Much less worry about invasive software problems.

Windows 7 Available

I have heard that Windows 7 became generally available today.  As I have said elsewhere, no version of Windows is safe to use on the average home computer.  Be warned. 
I have also heard that it is difficult (impossible) to upgrade from Windows XP to Windows 7.  Fortunately, I do not have to worry about that. My machine came with Windows 2000 Professional and is too small to run XP, Vista, or 7.  I have developed a tool that I call the Windows Upgrade Advisor.  It works with any version of Windows, even 3.1!  I hope that you find this tool useful.
I heard something on the radio this morning that went something like this:
“Last night I set my bed to Microsoft Sleepnumber 7. Now it’s full of bugs and has no support.”

Lost II

The Microsoft PR machine has swung into gear over the Danger data loss.  Now the lost data is for the most part recovered.  And the truth comes out that the Microsoft management decided that the technicians did not need to make a backup because it would take too long and the maintenance company (not the hardware vendor) assured them a backup was unnecessary.  Of course, everybody knows, “backups are for sissys”.  I have been a systems type for about 35 years.  I think I know what I am doing.  And I always make a backup.  And keep it until somebody says. “Yeah, this is working fine”.

My advice: Do Not Trust Anything Microsoft.

Lost

With today’s news, it becomes apparent that Microsoft not only cannot produce an operating system for consumers that is safe and reliable but is also incapable of running a data center.  Admittedly, the data center they were running was not Microsoft but rather Oracle  based.  But sound data center management does not depend on technology.  Backup and recovery are religion, not add-ons. Other companies do quite well with Oracle. And Oracle does quite well for other companies.  Microsoft lost data for T-Mobile users of Sidekick.  If you outsource, be careful of the company that acquires your outsourcer.  When you put your eggs in the cloud basket, be careful of who is watching the basket.

Cracks in Windows

I have said a number of times to a number of people that “Windows, any flavor, is unsafe for use in a home environment”.  I use Windows at work where there are numerous, certified, compensated, experts to deal with the numerous and well-known security problems with Microsoft Windows.  These experts along with significant capital investment create a network with sufficient additional protection that my employer can trust that the Windows computers connected to the company network will be safe.

But at home, I only boot Windows when not connected to the Internet.  I only use Windows to play games that only run in Windows, most particularly Flight Simulator.  This way I can avoid catching some dread virus or trojan.  I use Ubuntu now and previously used Debian unstable.  Keeping these systems safe is a relatively easy matter with System Update or apt.

Now comes news from New South Wales that one should not use Windows for on-line banking.  Hmm.

Jamcleat has moved

If you have been getting here via http://jamcleat.toasterlogic.com please update your bookmark to point to http://jamcleat.com.  Jamcleat has a host of its own thanks to Phillip Calvin.

PHP and CICS

CICS or Customer Information Control System as it was once known, now pronounced “kicks” is a transaction delivery platform for the mainframe.  I have been working with it for 30 years or so.  Recently it has been extended again, this time to support requests from PHP programs.  Wow.

http://www.youtube.com/watch?v=GtyHRAQROnw

http://tinyurl.com/phpOnCICS

Pretty exciting.

YouTube offers some related videos at the end of each video. The choice below was offered.

Unrelated to CICS or PHP (or perhaps I do not really grok either one). But you may recognize parts of it:

http://www.youtube.com/watch?v=kQFFW-wBG3c

The scene from Pi is especially well remembered.  One of our favorite movies here.