Friday, November 16, 2012

WOW Microsoft! Windows 8 is Windows Upgrade Done Right


Most people that know me are probably surprised to see me post something positive about Microsoft or Windows. I am a believer in, and advocate of, GNU/Linux and open source. That has not changed. I still use open source systems almost all the time.

However, I am not, and never have been, anti-Microsoft. And I believe in giving credit where credit is due. I still have many clients that use Microsoft operating systems all the time. And, I still have systems that run versions of Windows going back to Windows 2 on an original IBM PC/XT. I have done upgrades, on at least one of my systems and many client systems, to every version of Windows that has been released.

Recently, I bought a new Toshiba laptop to take a primary place in my daily use systems. The laptop came with Windows 7, which I also have on a desktop system, and offered a low cost upgrade to Windows 8 Pro when it was released. Since I already had a system with Windows 7, I intended to use the new laptop to get acquainted with the Windows 8 upgrade procedure and the Windows 8 operating system.

Having been through Windows upgrades that have gone, let's say, far short of smoothly, I kept two days open in my schedule to devote to the upgrade. On the designated day, I went to the Windows 8 upgrade site and began the procedure.

The online upgrade adviser program recommended that I uninstall a couple of programs and then directed me to Toshiba's site to get other recommendations. I followed the recommendations and began the process, fully expecting to have issues. I removed the recommended programs and downloaded and ran the install files for Windows 8. Then I used the Toshiba Upgrade Assistant to reinstall the programs and drivers that had been removed prior to the upgrade.

Total time from start to having the system ready to use: 2 hours and 43 minutes. And, it only needed input from me about 30 minutes! To say that I was impressed would be a major understatement.

But, I still had not configured or tested the external devices that I often need. I was not ready to give the upgrade a green light yet. Experience has shown that very often the external items; like USB drives, printers, scanners, projectors, and so forth; are where the real trouble starts. Many of the items that I have are no longer in production and the drivers have not been updated for new operating systems.

I will just tell you, to keep this from getting too long, of the 40+ items that I tried only 12 needed drivers that I had to search for. That is a record! Better yet, there were only 3 that I was not successful with that same day.

Less than 10 hours after I started, I was done with the upgrade and with installation of most of my devices.

I have to admit that I was surprised at how easy the overall process was. This is as close to an ideal upgrade as I have seen in a commercial operating system. Well done Microsoft!

With all that said, I will have some comments about the Windows 8 user experience in a future post. For now, I will say that there are things I really like and things I really do not like. So far, the things I like outnumber the things I do not like.

Friday, September 11, 2009

How Long Should It Take To Load A System?

Last week I had an opportunity to load two systems with two different operating systems. The hardware was identical, older Celeron 1Ghz CPUs, 256Mb ram, new 250Gb hard drives, DVD/CD +-RW. Both had on-board; video, Ethernet, and sound.

The first system got WinXP Pro. The second system was Debian GNU/Linux. Both systems were loaded with OpenOffice, Firefox, and drivers for an HP Officejet printer. These systems had been sitting in a storage room and were being put back in service. I loaded the operating systems, applied all upgrades, and installed the base software. I thought it would be an ideal chance to compare the time each took.

System one took 9 hours 23 minutes and a total of 37 reboots.

System two took 3 hours 17 minutes and 2 reboots.

Anyone care to guess how much disk space was taken on each system?

Thursday, March 12, 2009

Linux Has Worse Device Support Than Windows...I Don't Think So

I was cleaning a virus out of a Windows XP system for a client when the UPS driver showed up with my latest gadget. The virus was one of the fake Anti-Virus viruses, you know, the kind that pops up all kinds of warnings that your system is infected or you are being attacked from some random IP address even when you are not connected to the Internet. We should be able to start a class action suit against these folks for the money they cost our clients. Anyhow, the gadget was a new MP4 watch. I am a sucker for watches that do other things.

The package showed that the watch software required Windows 2000, XP or Vista. I had a computer close by that runs XP so I decided to test the watch on it. The only printed paper inside the package was a list, in several languages, of the contents of the box.

I hooked the cable up to the watch, then to the computer. A box popped up that said new hardware was found. Then a box popped up asking where I wanted to search for the drivers. I put the CD in and told the system to search everywhere. After a while, I got a message that no driver was found. Next, I checked the CD and saw a setup program so I ran that. After a while, and with several clicks to accept EULAs, I got a message telling me to connect the watch and click next. The watch was still connected, so I clicked next. The same message came back up. I thought that maybe disconnecting the watch and then plugging it back in might work. No go, same message. Time to try a restart.

I unplugged the watch and restarted the system. When I ran the setup program this time, I got a message that the software was already installed. I plugged the watch in and up popped the new device message. This time, I did not get a box to search for a driver. No new drive showed up in Explorer and there was no new program group for the software. So, I unplugged the watch, opened Add/Remove Software and removed the watch software. Reboot and try again.

This time, I left the watch unplugged and started setup. The message to plug the watch in came up. I plugged the watch in and pressed next. Same message. Uninstall the software again. I checked Device Manager and sure enough there was the watch as a USB storage device. I removed the device and unplugged the watch. Reboot again.

Time to try running setup and keeping fingers crossed. When it got to the message to plug the watch in, I did and clicked next. No message and a lot of activity from the CD. I finally got a message that the installation was complete. The watch showed up in Explorer and the software was in the Start Menu.

It only took 4 1/2 hours to get to this point but everything was working. I can upload files to the watch and they play fine. By this time, I have also finished my clients computer and have it ready to return.

When I got back, I decided to see what would happen if I plugged the watch into one of my Debian GNU/Linux computers. As soon as I plugged it in, two new USB storage device icons showed up on my desktop. I right clicked them and clicked mount. I opened Konqueror and there in /media were the drives. I copied files to the watch then closed Konqueror. I right clicked one of the watch icons and clicked Safely Remove and then unplugged the watch. The new files were there and played fine.

Total time to get the watch working in Linux, 1/4 hour.

Which system is it easier to get devices working in?

By the way, I love the watch. I will do a review of the watch when I finish the BASIC series.

Monday, March 2, 2009

BASIC, The Language of Simplicity, Power, and Change Part 4

Now that BASIC is no longer included with most computers or operating systems, it must be obtained from other sources. Fortunately, there are several ways to get BASIC that are both easy and quick.

A good list of BASICs can be found at The Basics Page. This site offers links to about 90 BASIC programming languages with a brief overview and, in some cases, a review and rating.

The Microsoft Visual Basic packages are not included in the list at the above site. If your operating system is Windows and you want to learn BASIC programming using the .NET framework, Microsoft offers Visual Basic 2008 Express Edition free download HERE. The Microsoft Beginner Developer Learning Center offers a lot of excellent resources. The Kid's Corner is a great place to start a youngster off.

FreeBasic is a QBasic/QuickBasic compatible programming package. The site has many links that will be helpful to new programmers. If your interest is in writing software that is usable on Windows, Linux, and DOS, this is a good place to start. FBEdit is an excellent code editor for FreeBasic. Both are open source software programs.

Another multi-platform BASIC is KBasic. This package uses the Qt toolkit for compatibility across platforms. KBasic is available for Windows, Linux, and OS X. Code may be writen in QBasic, Visual Basic 6, or Visual Basic .NET style. This is the package I use for most BASIC projects. Here is a screen shot of the KBasic IDE running on a Debian GNU/Linux system:


KBasic, as with most alternative BASICs, is constantly being improved. It is an easy language for programmers that have some prior experience with BASIC. Beginning programmers will find many resources to assist them with learning and using the package. The only major area that I feel needs work is documentation. It can be a little difficult to find specific information due to things being spread out over several different HTML files. I recommend downloading the Qt documentation, and referring to it, for functions that are not well documented in the KBasic information. Note that to generate standalone executable programs, or to develop commercial software, you have to register KBasic. Registration, as of the last time I checked, cost about $35US, a real bargin compared to many programming languages.

Another interesting, and free, BASIC compiler is Jabaco. The development environment runs on Windows XP. The output files are Java bytecode and will run on any system that has the Java Runtime. The language is very similar to Visual Basic 6 so programmers who are familiar with VB6 will be right at home.

This series is intended to give a little background on the BASIC language with some suggestions on how to obtain the language for those interested in getting started with BASIC programming. There are many other programming languages and, at least as many, opinions that it is better to start with one of them. I believe in using the best tool for the job. For me, BASIC is the fastest and easiest way to do some tasks.

What types of programs can be written in BASIC? Pretty much anything you want to write! From programs to generate simple reports, to games with complex graphics. Todays BASICs are up to the challenge.

Custom reports, using data from multiple sources, and data conversions are two tasks that I often use BASIC for. The string manipulation functions available make these jobs quick and easy. Using output from one program as input to another program is another place where BASIC can save time. For example; generating GL entries that can be imported from standalone inventory programs, is a common tasks for many small businesses. This is the type of job where BASIC can often be the fastest language to use.

BASIC was not the first programming language that I learned. I started with machine language and then progressed to Assembly. The need to create a quick terminal program, for a new computer that included BASIC, was what prompted me to learn it. Today, I write programs using many languages. But, BASIC will always be a big part of my toolbox.

Saturday, February 21, 2009

BASIC, The Language of Simplicity, Power, and Change Part 3

With the release of programs like QBasic, Turbo Basic, and QuickBASIC, things got much better for programmers. A lot of things changed in these new BASICs. The change that was easiest to see, was the elimination of the need for numbers on each line, although they could still be used if desired. BASIC could now use plain name labels for GOTO or GOSUB points.

Our simple program to say HELLO could look like this:


















The "GetName:" line is a label for a subroutine that is called with a GOSUB statement.

The other change that was easy to notice was the user interface. A mouse could now be used in the programming interface. Break points could be set to help debug a program. An immediate window was available to test code or to check the values of variables during breaks. The user interface for QBasic looks like this:


Programmers now had a much easier, and more powerful, interface. Skills learned with QBasic were easily transferred to more powerful BASIC compilers, such as QuickBASIC, where programs could be compiled to an executable and run on systems without the need for BASIC.

Using libraries, most with assembly language routines, programs had access to advanced hardware features. Libraries were also available for building graphic user interfaces to be included in a finished program. BASIC was not just for beginning programmers any more. Many commercial programs were being developed with the new BASICs.

Because BASIC was still included with most computers and operating systems, people were still learning to write their own programs with it. QBasic was included with operating systems from Microsoft through, at least, some versions of Windows 98.

As graphical user interfaces and multi-tasking operating systems, such as Microsoft Windows, became dominant, BASIC programmers wanted to be able to write software that took advantage of them. Microsoft released Visual Basic as the replacement for QuickBASIC. Visual Basic changed the game, once again, for BASIC programming. Programs can now be event driven and object oriented. User interfaces can be created by using drag and drop to place elements, such as command buttons, on forms. This is a shot of the IDE for Visual Basic 5:



Using Visual Basic, programmers were able to use features of the Windows API. They were also able to create large portions of their programs without writing any code at all. Visual Basic is able to access many database files using ODBC and/or DAO. From 1995 to 2002, Visual Basic became the preferred language for BASIC programmers writing software for the Windows platform. Even today, a lot of programs are still being written with Visual Basic versions 4, 5, and 6.

In 2002 Microsoft introduced Visual Basic .NET. This language uses the .NET framework and has significant changes from the earlier Visual Basics. Microsoft has since gone back to using the name Visual Basic without the .NET. However, all versions, since Visual Basic 6, use the .NET framework.

Visual Basic has been used for many commercial software packages. At one time, in 2006 according to Wikipedia, 59% of the programmers working on .NET applications were using Visual Basic as their only language. BASIC is not a hobbyist toy anymore.

No operating systems, that I know of, include a BASIC language by default any more. But, there are still many options available for programmers and those who want to write their own software. A lot of these are available at little to no cost. The next article in this series will look at some of these options. It will also show how BASIC can be used to perform some tasks without having to learn a lot of programming or write a lot of code.

Tuesday, February 17, 2009

BASIC, The Language of Simplicity, Power, and Change Part 2

In Part 1 I mentioned that as hardware changed, BASIC changed with it. The biggest change was in the way BASIC programs flowed.

BASIC programs were a lot like the assembly instructions for things like model airplanes or furniture. Every step was numbered and, with some exceptions, each step was done in numerical order. Programmers controlled the flow of their programs by the numbers placed at the start of every line. For example, a simple program might be something like this:

10 PRINT "Hello"
20 PRINT "Have A Great Day"
30 PRINT "Goodbye"
40 SYSTEM

The system would run each line in order until it got to line 40 and then it would return to the operating system. This simple program would just print 3 lines on the screen and then end. The screen would look like this:


Not really a very useful program, unless you wanted to greet a user with a generic greeting when they start the computer. More often you want to get some input from the user. Here is a BASIC program that gets the users name:

10 PRINT "What is your name? "
20 LINE INPUT A$
30 PRINT "Hello "+A$
40 END

This one asks the user for their name, waits for the ENTER key to be pressed, then greets them by name. The screen output is:


Did you notice the difference in the last line of this screen shot compared to the last line in the one before? In this one the C:\> is not there. The last line is "OK" instead. That is because the last line of code in this program is "END" instead of "SYSTEM". The program ended with the BASIC interpreter still running. That allows a programmer to test a program from the command line and then make changes to it without having to restart the interpreter.

BASIC runs each line in numeric order. But, numbers can be skipped and that leaves some space in case a programmer finds that something needs to be added later. The short programs above use only line numbers that are multiples of 10. This is a common practice. Line numbers higher than the number of the line that contains an "END" or "SYSTEM" are also allowed. Often, subroutines exist in a program and the line numbers are well above the end of the normal program. This makes understanding the program much easier.

GOTO and GOSUB give BASIC a way to respond to things like user input. Using those statements, a programmer can do things like branching to different operations based on user input. Many of the programs that were very popular used the GOTO statement to make menu systems that made commands easier for users. To show how these statements work, I like to go back to the model airplane assembly instructions. In this case, the airplane is a fighter jet with four rockets:

20 Glue top half to bottom half of right wing
21 Glue top half to bottom half of left wing
22 Glue right wing to fuselage
23 Glue left wing to fuselage
24 Go to subassembly step 2000 (This is a GOSUB instruction)
25 Glue assembled rockets to wings

2000 Number Of Complete Rockets = 0 (No rockets have been assembled yet)
2001 Glue one rocket top to one rocket bottom
2002 Number Of Complete Rockets = Number Of Complete Rockets + 1
2003 If Number Of Complete Rockets < 4 then repeat from step 2001 (GOTO)
2004 Return to one step after the step that called this subassembly (RETURN)

If you would like more information on the early BASICs, the BASIC page at the Open Directory Project has many good links.

So what changed that gave BASIC more power. Around 1985 new BASICs from Microsoft (QuickBASIC) and Borland (Turbo BASIC) dropped the need to use line numbers. Labels were used to define subroutines and branch entry points. It also became easier to interface to machine language or assembly language programs by the use of libraries. A new industry sprang up that supplied libraries of routines for things like advance graphics, communications, and complex calculations. BASIC programmers, many of whom started with the BASIC that came with their computers, were able to write more complex applications without having to learn a new language. They were also able to compile their programs to executable format so they did not have to release source code.

While these two BASICs were not free, like most BASICs were prior to this, they were very resonable when compared to other languages available at the time.

PCs had become the dominant platform by this point. When Microsoft released MS-DOS 5.0, GW-BASIC was replaced with QBasic. QBasic is a scaled down version of QuickBASIC 4.5 without the compiler or linker. QBasic was included with Microsoft operating systems, at least through Windows 98. Since it came with the operating system, many new programmers started with QBasic. Even today, there are many web sites that provide information and support for QBasic programmers.

Part 3 will show some of the features of the QuickBASIC and QBasic languages. Then it will introduce the next major shift for BASIC, Visual Basic.

Saturday, February 14, 2009

BASIC, The Language of Simplicity, Power, and Change Part 1

Many things affected the evolution of computers as they went from the massive systems, that occupied entire buildings and required very large cooling systems, to the systems that now fit in the palm of our hands. Programming languages that made it simpler to create applications played a big role in that evolution.

BASIC (Beginners All-purpose Symbolic Instruction Code) is, in my opinion, the language that fueled the explosive growth of computer usage by medium and small businesses, as well as use by individuals.

Most early small computers, such as the Apple II, Commodore PET, TRS-80 and IBM PC, included a BASIC language. At the time, software available for these systems was limited, modems were slow and expensive, and most data storage was done with audio tape drives. Most, if not all, Mini and Micro computers, as well as some calculators, included a BASIC programing language as part of the package until very recently. History has shown that when something is available, we humans are driven to find ways to make use of it. BASIC is a good example of this. Curiosity, need, desire, and a thirst for knowledge, all played a part in the rapid growth in the number of people using BASIC to tell their computers to do something.

People, often seeking uses for these computers to justify having them, started writing their own programs, using the included BASIC, to address the needs of their business or for their own entertainment. Given the limited hardware resources available on these early systems, some of these programs were remarkable. Games with incredible graphics, business applications that performed very complex calculations, and typewriter replacements that allowed corrections and changes to be made prior to putting anything on paper, were some of the programs being written in BASIC.

Magazines and books targeting these new small computers flourished. These publications started printing basic programs that readers could type in and run on their systems. Some of these readers came to realize that BASIC programing was not hard. They began using pieces of code and adding to it to satisfy their own needs. A new generation of programmers was born.

Computer hardware advanced rapidly, driven in large part by the demand created by all the applications which had become available. Faster processers , more memory, disk drives, and better graphic capabilities allowed programs to become larger and more complex. Programing languages evolved along with the rest of the industry. While most commercial software was being written in more complex languages, such as Assembly or C++, there were still a lot of programmers working with BASIC.

The next article in this series will explore the changes to BASIC that allowed programmers to continue using it with the new hardware. Without having to give up the skills they developed using the language that came with their computers, these changes allowed for more complex programs that took advantage of the new hardware.

Wednesday, June 25, 2008

Plastic Welding for Fun and Savings

Sometimes a hobby can be more than just fun. It can be a great way to save money.

Plastic welding is that type of hobby. I started welding plastic about 10 years ago. Over the years, I have used plastic welders to build and repair enclosures, mounting brackets, car parts, kids toys, and many other items. It is fun and the results are useful.

There are two basic types of plastic welders; hot air and airless. I started with an airless Mini-Weld by Urethane Supply Company. It is similar to a soldering iron but with a temperature control and tips designed for the job. Since then, I have added three hot air type welders. The Mini-Weld is still the one I use most of the time. It is the "goto" tool for repairs and quick jobs.

The project for today was to repair torn out mounting holes in a plastic guard for a mini-van. The guard also provides mounting for the bumper cover. With the holes torn the cover was flexing.

This is what the holes looked like:

The torn diameter is almost 1" the hole should be 1/4". There were four holes like this in the guard.


This is how I repaired the guard;


1. Identify the type of plastic. The repair technique will vary depending on the type of plastic involved. Most plastics have identifiers stamped on them. This is the stamp on the guard:

It is Thermoplastic Olefin, TPO, which can be repaired with FiberFlex welding rod.

If you are not sure of the type of plastic, Urethane Supply Co. has a page that can help here.


2. Gather the need materials. For this job, I will use the Mini-Weld, FiberFlex Rod, and Stainless Reinforcing Mesh.



3. Clean the part. I use Dawn Ultra to remove heavy dirt and grease. Then rinse with plenty of warm water. Next I clean with a plastic cleaner and follow by wiping with alcohol to get the last traces of oil. Then, sand the area of the repair with 80 grit sandpaper to give the repair something to grab.


4. Put reinforcing mesh on the back side of the repair.

Notice that I put the mesh along the sides of the cavity as well. That is because this part will get stressed as the guard drags on the steep driveways we have here. I want it to have the extra strength.


5. Melt the mesh into the plastic, then cover with FiberFlex.




6. Fill hole on outside with FiberFlex overlapping the hole by at least 1/4".



7. Smooth and let repair cool. Then drill hole for bolt.


Repairing all four torn out holes in this guard, took about 45 minutes and used about $4.00 of supplies. Quite a saving.

For more information on Plastic Welding and Plastic Welders check out Urethane Supply Company. They have a very informative web site with a lot of pages on specific repairs. They also have a PDF, The Book of Plastic Repair, that is packed with how to information.

An extra benefit of plastic welding is the recycling of plastic materials. The items that you repair save landfill space. And, you will find yourself saving scraps of plastic from other items to use as fill material. Unlike metal welding where you have to have special rod to use for filler, with plastic you can use any scraps of the same material as filler. I often use the cut off ends of nylon wire ties as filler. Plastic welding is an Earth friendly hobby.

Tuesday, June 17, 2008

PEAR...A GEM In Disguise for Database Jobs

Have you ever needed to document a very large database that:
  1. Contains more than 3000 tables.
  2. Was created over many years by at least 20 different people.
  3. None of the programmers provided documentation for.
  4. Has uncommented source code for the applications.
  5. Uses variables with names like, $ab100.
  6. Has table names like, table203, with fields such as, field4001.

That was the position I found myself in recently. A new client needed to add an application to generate a report from data in the database. But, they had no idea which tables contained the data they needed. And, the server was running so slow that just trying to look at an existing report was an exercise in patience. They called me in to document the tables, fields and views. Then they wanted to delete any items that were not being used by the current applications. They had another consulting company standing by to clean up the existing code and write the new application. However, that company did not want to tackle trying to document the database.

I have done this type of thing many times before. However, never on a database this large and never one that had no documentation for a starting point. I needed to find tools that could help with the schema. I use PHP for much of my programming and find it to work great with MySQL databases, but this was a MSSQL database. Clearly something else was going to be needed for this job.

A quick search on the PHP website turned up PEAR::DB a database abstraction layer. The main things that I needed for this project were; a list of tables, fields within the tables, and properties of the fields. PEAR::DB has a getListOf() function that gives a list of tables. It also has a tableInfo() function that gives the fields and properties of the fields for a table.

Using the functions provided by this extension, I was able to:
  • Connect to the database.
  • Get the list of tables.
  • Use a for() loop to get the table info.
  • Use a foreach() loop to extract the field info from the table info.
Using this info, I was able to generate a list of the tables that were not being used, there were about 1200 of those, and tables that were being used for duplicated data. Then I generated a cross reference to tables and fields used by each program with key fields, indexes and relationships.

PEAR::DB and PHP turned a job that would have taken weeks to do by hand, into days. Definitely a GEM for this job.

For more info on PEAR, the "PHP Application and Extension Repository," go HERE.

For more info on PHP go HERE.

Wednesday, June 11, 2008

Saving Flooded Electrical and Electronic Equipment

The recent flooding in many areas of the United States reminded me that I wanted to address this issue.

I lived in South Louisiana, an area very prone to flooding, for most of my life. I worked in the electronic systems business there for more than thirty years. Spending time on the water is a big part of life in Louisiana. As a result, I have seen several thousand pieces of equipment that have flooded.

I also have seen, and heard, many very bad recommendations for drying equipment out. I can say, without hesitation, any suggestion that involves heating the unit to dry it out, without disassembling and rinsing, is a very bad idea. Putting the unit in an oven, clothes dryer, under heat lamps, in front of a hair dryer, and so on, is not the proper way to save expensive electronic or electrical equipment. None of these methods address the fact that most water has chemicals and minerals that are conductive and/or corrosive. If not properly removed they will cause damage.

Before considering having a flooded item repaired by any shop, ask how they will handle the job of initial drying. A shop that is planning on using any method of heating, prior to disassembly and cleaning, should not be given the job. Do not consider any shop that is not going to flush the unit with clean water while taking it apart. These are important questions to ask, I have seen very expensive equipment, taken to otherwise excellent repair shops, destroyed by improper drying techniques.

Some equipment will not be cost effective to save. Some equipment will not be able to be saved. But, I have found that many items can be saved if handled properly and promptly.

What should be done to improve the chances of saving equipment?


As soon as the item is removed from the water:
  • Take out any batteries that are accessible.
  • Do not let it dry out, even a little bit, if you can help it.
  • Flush with plenty of clean water.
  • Put the item in a container of clean water keeping the item completely submerged. If clean water is not available, use the water that the item was in until clean water is available.
  • Start the recovery process as fast as possible.

Just those steps will improve the chances of saving the equipment.


If you are going to try to dry the items out.

This is the method that I have used to dry out items ranging from pagers and cell phones to laptops and marine electronics.

Note: See the section below for special notes about battery packs and hard drives.

Plan to work at a sink or in a location where the unit can be flushed with clean warm water while it is being taken apart.

Gather these items prior to taking the unit out of the container of water:
  • Clean warm water supply and, if possible, distilled water for final rinse.
  • Proper tools to disassemble unit.
  • Good quality contact cleaner.
  • Soap, I use Dawn Ultra. Mix this ahead of time, 1 tablespoon to 1 gallon warm water.
  • Light machine oil.
  • WD-40.
  • Silicon spray.
  • Hair dryer.
  • Dry compressed air.
  • Soft nylon brushes.
  • Brass brush.
  • Plenty of soft towels and rags.
  • Static controlled work station.

Once you have everything ready:

Work fast! Disassemble the item as much as you can. Items that can not be cleaned within a few minutes should be placed back in a container of fresh water.

Rinse each piece with clean warm water then look for any deposits. Pay close attention to areas that could trap minerals, like the area between an IC and circuit board. These should be cleaned with a soft nylon brush dipped in the soap. Follow with another rinse to get all traces of soap off. Run clean water into any controls and switches. Use distilled water for final rinse.

Place each item on a soft towel and begin drying as you finish rinsing. Pat dry all parts that you can get to. Then use dry compressed air to blow out any water that you could not get by hand. Use a hair dryer on low heat to be sure all traces of water are dried out.

Spray controls, switches and connectors with WD-40 and follow with contact cleaner. Be sure that the contact cleaner is compatible with any plastic parts before using it.

Metal parts should be wiped then examined for corrosion. If light rust is found, use the brass brush to remove it. Follow up, if the part is not stainless or aluminum, by wiping with a soft cloth and a light machine oil. Items, like hinges, should be sprayed with WD-40 then allowed to dry. Follow this with silicon spray.

Leave all parts, at least overnight, on dry soft towels.

Before reassembly, check for any signs of corrosion, rust, and overheating. Pay attention to circuits around the battery or power connections. Also, look closely at things like displays for any sign of moisture remaining in them.

Once reassembled, check for short circuits prior to putting power on the item. When powered up, watch closely for several hours to be sure there are no signs of overheating.


What about battery packs and hard drives?

These two items need special attention.

Battery packs should be replaced. With that said, I normally dry them out the same way as the rest of the circuits. Then I test them to see if they will still work. Most of the time, they do. However, I never give a warranty on them. If I am working on an item for a client, I always replace the batteries.

Hard drives should never be powered up except by a professional hard drive recovery facility! They must be replaced always.

If a hard drive has data that must be recovered, these are the steps that I use:

  • Remove from the equipment.
  • Rinse with clean warm water only.
  • Place in sealed container of clean water.
  • Send, overnight, to recovery facility.

Contact a recovery facility ahead of time and make sure they are equipped to handle flooded drives and experienced with them. They will tell you how to package the drive for shipping to them.

Saturday, April 5, 2008

Using GNU/Linux Tools to Recover DVD Video

Have you ever recorded an important video on a home DVD recorder? Do you use a camcorder that records directly on DVD disks? If you have had a recording fail to finalize properly, rendering it unusable, this post may help you.

I bought a DVD recorder from Walmart a few years ago. For the first several months, I used it to record many shows with no problems. I came to trust it to replace my VHS recorder. Then, I started to have problems. The recordings were not always completing properly. The unit would look normal while the show was recording, but when it stopped, the display would show, "Bad Disk." I could not do anything with the disk. It would not play, it would not finalize, it was a coaster. This recorder was an ILO DVDR05/ZU. I understand that this model was also sold as a CyberHome 1600 and the problems were the same. Technical support was non-existent and Walmart had discontinued that model. There were stories, similar to mine, all over the internet.

After losing several one shot shows, mostly news clips, I started recording on both VHS and DVD just to be sure I got important shows recorded. I soon replaced the recorder with a new one from a different manufacturer. I later found and repaired the problem with the ILO recorder. But, I was still left with several bad DVDs that contained video clips that I really wanted to keep. These were things that I could not get again. That is what prompted me to find a way to recover the video from these disks.


Caution:
This procedure uses GNU/Linux programs that must be run from a command line. While the commands used are not difficult, you should feel comfortable in a command console if you are going to try this. I have not attempted to do this type of recovery in any other operating system, such as Microsoft Windows. It may be something that can be done easily in other operating systems or with other GNU/Linux tools. I have used this basic procedure to recover video from more than sixty DVDs.


Note:
This is not a procedure to copy data from commercial DVDs that use CSS or other content protection systems. If you are looking for that, this will not help you. This method will not decrypt or rip video from protected DVDs.


These are the programs I use with links to their home pages:

dvdisaster Used to recover the data from the bad disk into a file. This is not the normal or intended use of dvdisaster. However, it does the best job of all the programs and tools that I have attempted to use to extract the data.

KDE DVD Authoring Wizard To create the new DVD image.

Konqueror Useful to preview parts of the file prior to reassembly.

K9Copy Not required but handy for shrinking the final files to fit on a single disk.

K3b Used to burn the new DVD.

FFmpeg Formats the video for DVD.

KHexEdit (Optional but very useful for advanced editing of the data files)

Split, cat and rm, from the GNU/Linux command set Used for file management.


In the typed commands that I show, the # sign shows that it is a terminal command. Do not type the # sign, just the line following it.


The first step is to get the data that exists on the DVD into a file where we can work with it. Even though it was not written for this job, dvdisaster is the tool that is easiest to use. It does a great job of extracting the raw data from a disk that would otherwise be a decoration.

To prepare for the data, create a directory on a drive that has at least twice as much space available as the DVD contains. If the DVD is a normal single side, single layer, you should have at least 10Gb available on the drive. In that directory, create two sub-directories to put files in while you work. I normally use ~/tempdvd for the base and ~/tempdvd/tmp1 and ~/tempdvd/tmp2 for the work areas.

Put the bad disk in a drive and start dvdisaster;


Select the drive that contains the bad DVD. Fill in the path and file name for the .iso image. The .ecc file will not be used for this step so you can disregard that field. Then click the "Read" icon on the right to start reading.

You will get a dialog that looks like;


Click "Skip RS02 test".

The recovery will start;


The chart on the left side displays the current read speed for the operation. The graphic on the right, shows the success or failure for areas of the disk as the operation proceeds. It is normal for the first blocks to be unreadable.

When the read operation completes, the display will look like this;


Just below the graph on the left, it will say, "Reading finished:" and will give the number of sectors that were not able to be read.

Konqueror should show the .iso image file in the tempdvd directory;

Open a terminal window and change into the tempdvd directory. Type the command;
#split -a6 -b1048576 -d filename.iso dvd
replacing the "filename" with your actual file name.

The only indication you will get that the command is finished, will be when the command prompt returns. Be patient, it will take some time for the file to be split.

If you have limited space available on the drive you are using, you can delete the .iso file now.

You will have a lot of 1Mb files in the directory. Most of them should have a type of "MPEG Video" if the extraction and split worked properly. In Konqueror, you can hover the cursor over a file name and see a preview of the video. You can use this to get an idea of which pieces you want to combine for the final video. This gives you some rough editing capability. Want to get rid of commercials? Just leave those files out at the next step.



Move the files for the first clip that you want to keep to the tmp1 directory. Just skip any files that you do not want in the clip and move the ones that you do want.

Now go back to the command terminal and change to the tmp1 directory. use the following commands to prepare the first clip:

#cat dvd* > vin.mpg

#rm dvd*

#ffmpg -i vin.mpg -target dvd ../tmp2/clipNNN.mpg
(replace NNN with a different number for each clip)

#rm vin.mpg

When you finish you will have an empty tmp1 directory and the first video clip in the tmp2 directory. Repeat the steps, starting with moving the files to tmp1, for each additional clip that you want to recover.

When you have all the clips in the tmp2 directory, you can delete the remaining files from the tempdvd directory.

The rest of the programs are being used for their intended tasks, so I will not go over the steps inside each program from here.

Use KDE DVDAuthor Wizard to turn the clips back into a properly structured DVD format.


If the final video file is too large to fit on one disk, use K9Copy to shrink it to fit.


Use K3b to burn the image to a disk.


Test your DVD and take pride in having saved your video.


This procedure has recovered many video files from DVDs that were otherwise useless. This is not intended to be an in depth how to article, it should be used as a starting point. There are other techniques that I employ to improve the quality of the final videos. Anyone who wishes to get better quality video, should do further research. I use KHexEdit to get more precise splitting and editing of the video data. I also use other options of FFmpeg to improve the final video quality.

Note Added 04/12/2008: It seems that I did not make it clear what the procedure is written for. I keep getting suggestions that all I need to do is mount the .iso or burn it to a new blank disk to get the video files. So, this is for cases where the session does not close properly or, the disk does not finalize. When that happens, the control data, which normally would tell the drive what type of disk it is and where the files are located, does not get written to the proper sectors at the beginning of the data track. The .iso does not contain that data and will not mount even if you specify the type with the -t option to the mount command. Writing the .iso to a new blank will create another disk with the missing data.

Wednesday, March 19, 2008

Follow Up to "Linux Not Ready For the Masses...BULL"

Since this article generated so many comments and emails, I want to clear up a few points here instead of trying to respond to each of them.

First, for those of you who seem to be concerned about my mental health, I am fine, I do not sit in a padded room with only a GNU/Linux computer to keep me company.

Next, I do not "HATE" Microsoft or Bill Gates. In fact, I have a lot of respect for what they have accomplished and what they have done for the computer industry. But, that does not mean that I am willing to give them a lot of money to accomplish things that can be done for less.

Finally, I do not and have not ignored any of the issues that were raised. If I ignored or did not consider these issues, I would not be any better than a lot of the "experts" that I addressed the article to. Contributing to the number of stories about failed conversions is never my goal.

Now, with some of those items out of the way, I will address some of the issues that have been brought up. These are all things that I feel must be considered by anyone thinking about a conversion or upgrade to an existing installation. I did not write the original article with the thought that it would be viewed by people who were considering a change. However, from the emails I received, it seems that many of the readers are in that position. I hope this follow up will give them some additional help with evaluating such a change.

I have decided that my next blog post will be a story of an actual conversion from a mini computer running MP/M to a system that now operates on, mostly, GNU/Linux.

If anyone is looking to change to a system that includes FOSS including GNU/Linux please consider these points in your evaluation. And, if you are working with a consultant, be sure these things are addressed before any changes are made. Doing so will increase the chances of a smooth transition. In addition, I want to point out that these are only some of the items that must be considered for any change to succeed and be cost effective.

One item that continues to be brought up, proprietary file formats, I addressed in the original article briefly. However I will be glad to cover it again. For as long as computers have existed, data has been stored in a huge variety of formats. And, data has been converted from one format to another. Even upgrading to a new version of the same software you have been using often requires conversion of data files. While this conversion must be considered, it is hardly a reason not to change things. How much data existed in Wordperfect 5.1, dBase III, or Lotus 123, formats? I bet most of that data has been converted to other formats now.

On the same general topic, many people continue to bring up the need to have their data in formats that can be shared with others. Some point out that users outside their organization insist on getting data in formats that their applications support. I use FOSS applications for every document that I create. I support many clients that use Microsoft Office. We exchange documents every day. Yes, sometimes I get data in a format that I can not open directly. When that happens, I either convert them or contact the sender and ask them to resend it in another format. Sometimes, I have to tell them how to save the document in another format. But, I have never lost a client because I could not open a document, or because I did not send one in a Microsoft Office native format. File formats that exist today, will likely not be the standard in 5 years. So again, while data formats, and the need to convert them, should be considered, they are not a reason for not considering a change.

Applications for Windows will not run on GNU/Linux systems directly. I do not understand why so many people think I do not know this or that I ignore this. As I said in the article, so what! Mac software does not run on Windows and, without some effort, Windows software does not run on a Mac. If you like to play games that only work in Windows, you should leave Windows on your computer. There are still ways that you can benefit from FOSS, OpenOffice for example. But, don't think that all users are just like you. Also, have you bothered to look at the huge base of applications available for GNU/Linux systems today? There are thousands of applications out there. Some of them are as good or better than their Windows equivalent. This segment will continue to grow as GNU/Linux systems take a greater share of the user market.

Many companies use vertical applications that only run on Windows. Yes they do, but that is nothing new. Many companies had vertical applications that only ran on dBase or that only ran under CP/M on a mini or mainframe. Again, this is an item that has to be addressed in a conversion. In a lot of cases, these applications can be replaced easily. In other cases, it requires more effort or expense than it is worth. In that case, a total conversion may not be justified. Yep, I said that! There are cases where it is not cost effective to make a change to your entire system. Keep this point in mind, future computers may not even be able to run many of the applications being used today. How many applications from DOS, Win3.1, Win95, or Win98 do not work on Vista without major effort or a costly upgrade?

Users come in many shapes and forms. I believe, from years of contact with computer users, that most users needs can be addressed with GNU/Linux systems today. I address the software needs of my clients when I am advising them on a considered change. In fact, one of the first things that I do is a complete inventory of their existing software. I also gather a list of applications that they expect to need or want in the future. Making sure that the conversion strategy includes a plan to replace those applications or to keep them available to users is a major issue. There are many ways to address this without giving up on conversion.

Another item related to software still seems to be the number one thing that people bring up. They insist that it is hard to install software on a GNU/Linux system and easy on a Windows system. They are repeating the same old arguments that have been around for years. I suggest that anyone who wants to find out what it takes to install software on a GNU/Linux system learn for themselves. Download a live CD or DVD distribution and boot it on your own computer. You do not have to install the operating system or anything else on your computer to do this. The system will run from the CD or DVD. This will not affect your hard drive unless you tell the system to save something there. I suggest either Knoppix or Ubuntu as both have typical software managers. Synaptic use could not be easier, and I would challenge anyone to show me how installing a product like Microsoft Office on Vista is easier than installing OpenOffice on a GNU/Linux system. Of course, this is ignoring the fact that most modern distributions come with OpenOffice, and a few hundred other popular and useful programs, pre-installed.

A quick lesson in Synaptic for those who have not seen or used it before.


1. Open Synaptic;


2. Click Search, put terms in box and click Search;


Please Note the Time in the Lower Right Corner; 23:31:39

Also, note that I am searching using a name of a program, Corel Draw, that I want to find an equivalent GNU/Linux program for.

3. A list of programs that match the search will come up;


4. Right click on the program that you want to install and click Mark for installation;


5. Click Apply;


6. Confirm the changes and hit Apply;


7. The file will be downloaded and installed, usually with no other user input;



8. Click close and close Synaptic;


9. Program has been added to the menu;


10. Program up and running on the desktop;


Again, Please Note the Time; 23:43:33

That is it! No reboot, no license terms to accept, no CD or DVD involved, no compiling from a command line, and no cost. Notice that it took 12 minutes from starting the search to having the application open on the desktop. That time includes taking and saving the screen shots. This is not a trick, most major GNU/Linux distributions today include Synaptic or something similar. You will be hard pressed to convince me that finding and installing software on any other platform is easier than this. I have done it on most platforms, including all versions of Windows. They are not even close to this simple.

There are high quality FOSS applications available to perform most of the tasks that computer users require today. But again, I would point out that it is very important that any potential change to GNU/Linux include a plan for replacing applications that are critical to the user. That plan should be very specific about programs that will be loaded and the users should have a chance to try those programs before their existing programs are taken from them.

Driver support seems to be one of the things that is always brought up as a reason that users will not move to GNU/Linux systems. It is another of the tired arguments that some people just can not let go of. Think about this, how many devices have been abandoned by Windows upgrades? For that matter, if you upgrade to a new version of Windows, how many of your devices will be usable without having to locate and load drivers for them? Devices come and go. Yes, some devices are not currently supported by Linux but there are a lot of devices not supported by Vista as well. Most of the time, devices plugged in to a GNU/Linux system just work without the need to install drivers. The drivers for a lot of devices are compiled into the Linux kernel and loaded automatically when needed. As with everything else, if you are considering upgrading, peripheral devices must be considered. If drivers are not included, a search should be done to see if they are available. I have found very few devices that I could not locate a driver for. Again, if you are not sure, find out. It cost nothing to test devices with a Live CD or DVD. If devices will have to be replaced, that should be part of the plan for a conversion.

While we are talking about hardware, I want to bring up another point again. If you have older computers running versions of Windows prior to Vista, you have another major cost to consider. Staying with the Windows platform could require you to upgrade or replace the hardware when you are no longer able to get support for those earlier versions. That can be a big part of your IT budget. GNU/Linux runs fine on older hardware and with limited memory or disk space requirements. In many cases, existing hardware can run GNU/Linux with no changes and very little configuration.

If that is not enough, consider this final point for this post. Any consideration of future needs for computer users should take into account the cost of licensing, hardware needs, software upgrades and additions and support. A consultant that does not address all of these items is not doing himself or his client any favors. He is also generating potential bad press that none us need. I firmly believe that GNU/Linux is up to the challenge today. It can save money and decrease down time while increasing security.

Saturday, March 15, 2008

Internet On The Go With Nokia's N800... Part 2

Ok, it has been quite a while since Part 1. Work has kept me busy for the past few months.

Since I wrote the first part of my review based on daily use of the Nokia N800, several things have changed. All for the better.

Nokia released OS2008 for the N800. Since the new operating system was released, I am finding the N800 even more useful. In fact, I find that very seldom do I have a need for my laptop while working or traveling any more.

I have used my N800 every day for about a year now. I use it for many things but reviewing PDF documents at customer sites is the primary reason I bought it. This use was also one of the two main reasons that I continued to carry my laptop with me when I traveled. I have about 250Gb of PDF files that I have created over the past 30 years. I keep these PDF files on a USB hard drive and load the files that I think I will need for a job on the N800 memory cards. Since the card size is limited, I need to have the USB drive available when I am traveling. Accessing the drive was the main thing making me keep my laptop available.

The other reason I carried my laptop was for those times when I had to connect to a wired Ethernet network, or had to use a dial up connection. The N800 worked great on wireless networks, much better than my laptop. But, it lacked a means of connecting to a wired Ethernet network. It also had no modem or serial port.

The release of OS2008 had many new features. For details on OS2008 goto Nokia's official site. The new feature that I find most useful is; USB host mode is now available. You do need either a special cable, or to enable USB host mode in the operating system. For me, since I do not mind heating up a soldering iron, making a cable was the easy thing to do.

I can now use most of my USB devices on the N800. My roll up keyboard, hard drives, flash drives, Ethernet adapter, serial adapter, GPS, CD-ROM, and card readers, all are working perfectly. I have connected digital cameras, and my MP4 watch and the files pop up right away. I no longer need my laptop to look at PDF files on my hard disk. Now, I do not have to use my laptop to access networks via wired Ethernet.

When I need to take notes at the library, I use N800 with the USB keyboard. If I need to dial into a customers system, I hook a modem up to the N800. I type my notes from the day into the N800 while they are fresh on my mind. Then I transfer them to OpenOffice using sshfs over a wired Ethernet connection to create a PDF file when I get back home.

I am comfortable with the N800 for most of the daily tasks that I had carried the laptop for. The only time I use the laptop in the field now is when I have to write a program for the client. And, I expect to be able to do most of that on the N800 soon. I am writing many of my interfaces in PHP now. That can be done on the N800 today. I am working on porting some of my other programing tools to the N800.

I have also eliminated the need for a separate GPS system when I travel. The mapping software in the N800 is very complete and accepts input from my USB GPS module. I have no trouble entering addresses and planing routes on the tablet.

Other new features that I find useful; Skype works great, multimedia applications are much improved, battery life is about 20 percent better, larger SD cards are accepted, and most software applications are easier to port.

The only thing that I do not like, compared to OS2007, is the method of placing applets on the desktop. I find that it is too easy to move items by accident. Some, the rss applet in particular, are very difficult to reposition. I prefer the old way of having to select a menu item in order to reposition or resize items.

One item I added, and that I find invaluable, was not part of the OS2008 upgrade. I strongly recommend that anyone with an N800 consider adding this to their tablet. It is the ability to boot from an SD card or a USB device. This one comes courtesy of Fanoush and is one of the most useful things that you can do to your tablet. Booting from the SD card opens up a lot more space for installed software on the tablet.

In summary, I find that, for most situations, the N800 is now very capable of filling in for a laptop, pda, and mobile GPS. I suspect that Nokia had no idea that this would become such a useful device. I did not envision, when I bought mine, that I would come to count on it for so many things. After one year of living with the N800, I believe it is the best gadget purchase I ever made. That is saying a lot considering what a gadget freak I am! Many thanks to Nokia for making a good system great.

Thursday, March 13, 2008

Linux Not Ready For the Masses...BULL

One more rant then I will get back to the N800 and other gadgets.

I am tired of hearing and reading that GNU/Linux is not ready for the "regular" or "normal" user. Self proclaimed experts and pundits insist that these users can not, or will not, use GNU/Linux. They give all kinds of reasons for this. I say that most of these reasons exist only in the minds of these experts and pundits.

My first computer was a Tandy TRS-80 Model I. Since then, I owned many different computers prior to the first IBM PC that I bought. I have worked with Mini, Micro, and Mainframe computers and their users since 1976. I have written and installed software, designed, built and installed hardware, and trained users on many products over the years.

When I first started working with computer users, most of them were using dumb terminals attached to a Mini or Mainframe computer. The computers were used for accounting and process jobs not for personal productivity. Word processing was done with typewriters.

When PC's started gaining ground in the business environment, they were used as replacement terminals that had word processing, and spreadsheet capability. About this time some of the products that my employer supplied to clients started having the capability of being interfacing to computers. One company, Kronos, came out with computerized employee time clocks that could be tied to PC's for reports and management of the database. PC's ran DOS, a command line operating system.

As PC use increased in the corporate world, standards were established for software and hardware within branches and divisions. Most of our clients used DOS 3.3, Novell Netware, Wordperfect, Lotus 123 and dBase as their standard products. A lot of training was done on these products and users were encouraged to learn as much as they could about them. Keep in mind that the command line was the only way to interact with these programs.

Upgrades were common and frequent for both hardware and software. Kronos was no exception to this. They went from stand alone clocks that interfaced to the computers to PC based systems that did all processing and calculations on the computer. We did more upgrades than new installs.

With every upgrade, users had to learn new techniques for accomplishing their daily tasks. I always learn as much as I can about new and upgraded applications. I do this so I can develop training materials that focus on making the transition easier for users. I highlight things that are easier and features that are new. This keeps the user interested in learning instead of having them thinking about things that no longer work the way they have become accustomed to.

A few years ago my corporate clients started upgrading their hardware and software to new standards. Windows 95 and Microsoft Office were replacing the old standard platform. This meant that users were having to be trained all over again since these products were very different from what they were used to. Kronos software, at this point, was still DOS based and had to be installed on the Win95 machines.

Users, many of whom I had been working with for 10 years or more, would ask me if I thought they were going to like the new systems. I always told them that once they got used to it, they would wonder how they ever got anything done without it. That, combined with training that made tasks seem easier with the new system, kept my customers happy with the upgrades. I never had a user complain that things were worse with the upgrade than before.

But, not everyone that was doing these upgrades had the same views I did. I was called in to a site that someone else had done the upgrade at. This user was very unhappy with the upgrade and was very vocal about her displeasure. Many of the other sites owned by this corporation were holding off on the upgrade because of this. This user was known for being very computer savvy and was often called on for assistance by users at other sites. I made an appointment to see if I could solve the problem. She only agreed on the condition that if I could not solve the problems within 2 weeks, we would put her old system back in place. Needless to say, the pressure was on because that would put a stop to the other sites upgrading.

When I went to the site, I first went through the software configuration and found that everything was setup properly. I then sat down with the user and discussed the upgrade process to see if I could determine what went wrong and what needed to be done to get it right. The first thing she told me was that the person doing the upgrade had a lot of trouble getting the software to run on her new machine. It seems that was the first time this tech had tried to install software on Win95 and he was not familiar with the operating system at all. He spent most of his time on the phone with his boss trying to get the software installed, then his boss wound up having to meet him on site to get it working. That was a bad start and planted the idea in the users mind that Win95 was going to be hard to use. The next thing she told me was the real root of her displeasure with the upgrade. She had spent many hours of her personal time learning to write macros in Lotus 123. She had several custom macros that generated custom reports using the data from Kronos Timekeeper Central. She had come to count on these reports to do her job. Those macros would not run in Excel and 123 was not installed on her new computer.

Armed with this information, I met with her boss and the IS director to outline a strategy. I proposed starting over with one of the computers that had not been deployed yet. We would put it on her desk and let her see that installing the Kronos software was not difficult. Then we would install her copy of Lotus 123 on that computer and I would train her in using the new systems. At first they were hesitant to install 123 since that was no longer the corporate standard. I convinced them that once she was trained on Excel, and had time to learn how to generate her reports in it, she would probably be willing to give up 123. I also suggested that they make Win95 and Microsoft Office available to her on her home computer since she seemed to be the type of person that liked to learn new things at her on pace. They agreed and we setup the new system the next day.

Two weeks later, she abandoned 123 and started using Excel for all her reports. She also became one of the biggest advocates and a great reference account for our upgrades. I was soon swamped with requests from other sites for the upgrade.

The Important Points:

Ok, that was long and probably meaningless for most readers. But, the important points are easy.

  • Users have been changing operating systems, software and hardware for as long as computers have been around.
  • Users do not mind learning new things if they see an advantage to it in the long run.
  • Most users love to learn new things and really like it if they are one of the first in their group to learn something.
  • Training and perception are the keys to successful change.
  • The person installing and training on new systems and software must know it so well that they make it look easy.
  • If there are problems, they should be resolved without making it look like it is difficult to overcome issues.

Am I saying that GNU/Linux can be used in every situation? No, I realize that there are some applications that can not be replaced by FOSS software today. But, I think that these are the exception not the rule. Most desktop users could run GNU/Linux without issues today. In fact, I suspect that most users would not think it was anything more than an upgrade if their system were running GNU/Linux and OpenOffice tomorrow. I have helped switch many users to GNU/Linux and, so far, I have had only one who insisted on switching back to Windows. In cases where a need exists for a Windows application that will not run under Wine, I set up a machine running Windows with VNC server and create links that open VNC viewer to that machine.

So, why are companies still not willing to lower the cost of software for their users? I believe the major reason is that we have far too many "EXPERTS" telling them that GNU/Linux is not ready for their users. Those folks are getting the press. These are some of the things they say and my response to them:

  • They say that users are familiar with Windows, and accustomed to doing things within the graphical environment. They further claim that GNU/Linux would make users go to the command line far too often. Remember that all computers had to use the command line not so long ago and users worked with it just fine. But, with the excellent window managers available for GNU/Linux systems today there is no need for most users to go to the command line for the tasks they do in most cases.
  • They say that Windows software will not run on GNU/Linux systems. So what! Software written for Macs will not run on Windows systems. Software written for GNU/Linux will not run on Windows systems or Macs, for the most part. Most applications can be replaced by FOSS applications and many Windows applications will run under Wine. For those few apps that do not fall in either of those groups, run a system with Windows and access it by VNC.
  • They say that installing software on a GNU/Linux system is difficult. In fact, this is the one I saw today that made me want to address this issue. An "EXPERT" claimed that you have to compile software yourself to add anything to a GNU/Linux system. I think the people saying this spend way too much time indoors and have not seen a real GNU/Linux distribution in far too long. In Windows, you usually have to run an installer to load new software. Even autostart CDs usually require some user input, even if it is just to accept the license terms. With most modern GNU/Linux distributions, you select the application in a graphical software management program, tell it to install and it does it with minimal user intervention. As a bonus, installing new software very seldom requires the machine be rebooted. How many times have you done that in Windows? Then there are operating system and software upgrades. With GNU/Linux, you tell the same software management program to upgrade your distribution and it does it while you continue working. No reboot or interruption of work required. How many Windows users can say that they did an major upgrade to Windows without having to reboot several times?
  • They say that hardware support is lacking in GNU/Linux. Ok, so some hardware is not supported. Most hardware used in a corporate environment is supported. And there is alternative hardware available that is supported for most of those items that are not, yet, supported. Use some of the money saved on license fees to replace hardware. While we are there, hardware requirements are much lower for a GNU/Linux system so there is money to be saved on replacement computers as well.

With all the advantages of GNU/Linux, why are companies not flocking to it en masse? I think that it is because they are scared off by all the press that tells them it is not ready for that environment. I find no other reason for them to continue to ignore the benefits of the platform.

To overcome that, we need to stop highlighting the reasons not to change. All advocates for GNU/Linux need to stress the positive benefits of the platform. We should point out the improved security, the reduced problem of lockups and reboots, the availability and ease of installation of software. Some other items to bring up are; lower cost of hardware, easier upgrades to software and the operating system, fewer virus threats and less damage from them, and software that is peer reviewed by thousands of programmers who are quick to point out any security risk or flaws.

I believe that any multiple site corporation that works with a GNU/Linux professional to convert a test site, will soon convert all of their sites. In the process I think most of them will find the savings to be larger than they ever imagined.

If you are the professional called in to help a company decide if GNU/Linux is right for them, please take the time to do a complete evaluation of their current software and hardware. Suggest a strategy for upgrading that provides everything that the users need to continue doing their work with minimal down time and training. Instead of telling them that they can not do things they have become accustomed to, teach them to accomplish the same results with the replacement systems. If proper surveys and planning are done prior to installing, I think that GNU/Linux systems will thrive on the desktops of many more users. As that base grows, users will start wanting GNU/Linux systems at home. That will lead to more supported hardware and software for the growing market.

What we do not need are quick installs with no user training. That leads to more bad press about how GNU/Linux was tested and failed. Lets do it right and be sure that the stories getting published are the success stories.

For a follow up added on 3/20/08 click HERE.

Thursday, April 26, 2007

Internet On The Go With Nokia's N800... Part 1

I have to be able to get online fast when a client has a problem. I support several mission critical applications. I could stay in my office all the time. Or, I can make sure that I have a means of getting on the Internet when I am out of the office. Since I get cabin fever if I am inside for long, I prefer the second option.

Over the years, I have used many methods to get online from remote locations. I have carried laptops and notebooks. I have used Pocket PC's and Palm Pilots. I have used several different cell phones. I have used libraries, Kinko's, and cyber cafe's. I have even checked into hotels just to use the phone line in the room for a couple of hours.

Some time in the future I will write a detailed account of the good and bad points of each of these methods. For now, let's just say that I was less than happy with any of them. So, I was still looking for a better means of getting connected.

I have watched several gadgets, touted as the perfect solution for remote access to the Internet, over the years. They all had issues that I felt would make them no more acceptable than the methods that I had already tried.

When Nokia introduced the N770 Internet Tablet, I was very interested. There were many things that caused me to take a hard look at the N770. First, it was made by Nokia. I have always had good luck with their cell phones. I still prefer them to most other brands. I find them to be rugged, well made, have a good feel, and in general to be excellent quality for a fair price. Then there was the operating system. The Tablet is based on Linux, an operating system that I have used on my computers for years. It also has Wi-Fi 802.11b/g and Bluetooth connection capability. But the thing that really got my attention was the screen. An 800 X 480 touch screen with 65536 colors. After using small screens with low resolution, that seemed like it was perfect for me.

Why didn't I ever buy one? I have learned that first generation products are often little more than a test bed. While they may be good, companies use them to find out what needs to be done to make the later generations better. That seemed to be the case with the N770. There is one memory slot that can only use RS-MMC cards up to 1Gb according to the specs on the Nokia web site. That did not seem like nearly enough for me. I sometimes need to download client files that could fill up 1 Gb pretty fast. Also, I was not seeing any really positive reviews by people who were using the N770 daily for remote Internet access. There were plenty of reviews out there, but most were based on a day or two with a sample unit, as opposed to weeks of using the Tablet daily. I never base a purchase decision on that type of review. I want to know what people who have used the unit regularly for at least a few weeks have to say. So I decided to wait for the next release. That is a decision that I do not regret.

On January 8, 2007 Nokia introduced the N800. It is the successor to the N770 and thus the second generation Internet Tablet. This one really grabbed my attention. The physical design was much improved. Did I mention that the looks of the N770 did not impress me? The new model has a built in web cam. There are now two memory slots that accommodate up to 4 Gb cards and accept SD or MMC full and reduced sizes. The N800 also has stereo speakers built in. The list goes on and on. But, the thing that made up my mind? I found several reviews written by people who used it regularly for several days before reviewing it.

I have had my N800 for four weeks now. I will start by saying that it gets better every day. The ever growing list of applications are really filling all gaps fast. I have never been as happy with a product as I am with this. This unit has already paid for its self many times over.

Let's see what the N800 is not:

  1. The Nokia name is almost always associated with cell phones. That is not what the N800 is. It does not have the ability to make or receive phone calls using the cellular network.
  2. It is not intended to be a Pocket PC or Palm Pilot type device. It does not come with PIM type applications like a calender or to-do list.
  3. Even though the operating system is based on a Linux distribution, it is not a PC replacement. It has no hardware keyboard, no hard disk, and cannot easily be connected to external drives.
  4. While it has media playing capability, the battery life is too short to consider it a real replacement for your iPod or MP3 player.

So what is the N800 Internet Tablet? For me, it is a little bit of all of the above. More important, it is freedom from most of the things that have plagued the other methods of connecting to the Internet when away from the office. To address the items from the list above:

  1. Voice, text and video communications are possible even though the N800 is not a cell phone. It comes with an application called Internet Call that supports Google Talk and Jabber as well as Nokia Internet Call Invitation which supports video calls. I used Google Talk and tested Nokia Internet Call Invitation and both worked very well on both Wi-Fi and Bluetooth connections. In addition Gaim Internet Messenger and Gizmo Project have both been ported to the N800 and both worked well. I used Gaim on AIM and MSN with no issues. Rumors have been around for some time that Skype will also soon be available.
  2. I do not use PIM functions on any of the electronic gadgets that I own. I prefer to use a paper based day planner for that purpose. I take detailed notes when I am working and have always found it quicker and easier to do so on paper. That said, I have noticed that there are several calender and to do list applications available for the N800. I don't think using the N800 would be any more difficult for these functions than using a pocket computer. YMMV.
  3. I have found that with the applications that are available for the N800, I use my laptop less and less. I don't think it will ever eliminate my need for a full computer but it does fill many of the functions very well. The storage, screen size, input methods and processor speed are the main reasons I will continue to use laptops and desktop systems.
  4. Media playing capabilities on the N800 are acceptable even though they are not spectacular. I do like the fact that it has speakers built in. I have always disliked having to use a headset when I just want to listen to a quick MP3 track or watch a video. The speaker quality is ok for that. They lack some of the richness of a quality set of headphones, but are as good as some of the ear bud type headsets that are included with some devices. The ear buds that come with the N800 are much better than the built in speakers. In fact, I was surprised when I tried them, they sound as good as some of the very expensive earbuds. Full motion video using the media player that comes with the N800 was jerky and it was obvious that frames were being dropped. I installed Mplayer and KMplayer and found they do not have that problem. Watching videos on the N800 is not bad. I have watched 2 hour videos without running out of battery power.

So, the N800 Internet Tablet is somewhat like all of the above mentioned devices without really being any of them. What it is intended to be, is a way to use the Internet when you are away from your other computers. It does do that very well.

Connection options with the N800 are Wi-Fi 802.11b/g and Bluetooth. I have used both of these for many hours since I got the Tablet.

I am very impressed by the wireless module in the N800. Without having tested the actual sensitivity, I can say that it is more than twice as good as any other wireless device that I own. From my office, my laptop only sees the wireless access points in my office and home. From the same location, the N800 sees 7 other wireless systems in the area. I have not found a parking lot where it does not see at least 3 wireless access points. To compare, I took my laptop and the N800 to my local Panera Bread parking lot. I then connected to their router and started moving away from the building. I was able to keep the connection on the N800 for more than 1/4 mile after the laptop lost it. I might mention also that when I first got there, the laptop only saw the Panera Bread router, while the N800 saw two other systems in the same shopping center. Nokia has really accomplished something to get this sensitivity without using an external antenna.

Bluetooth connections with the N800 are just as impressive. I have never been able to tether my laptop to any Bluetooth phone for more than a few minutes without having it disconnect. I have tried several laptops and several cell phones and the results have been similar. Some will hold for 20 to 30 minutes but that is rare. Most often, it has dropped within 15 minutes. I have used the N800 with 3 different cell phones and have only had one disconnect out of 13 connections. Some of these have lasted as much as an hour and a half. To me, that is great. I prefer not to use that method of connecting since it is slower than Wi-Fi, at least where I travel, but it is great to know that it is available if Wi-Fi is not. I had no trouble setting up the connections for any of the phones. I went to the Connection Manager, after turning Bluetooth on the phone on. Went to Tools, Phone. Clicked New and the system found the phone. Then I paired it and setup the connection using the Mobile Operator Setup Wizard in the Tools menu of the Connection Manager. Worked all 3 times with no problems at all.

The N800 does not have built in modem or Ethernet options. However, I have been able to use a Zoom Bluetooth modem for dial up connections. I also always carry a wireless router with me, usually a Linksys WRT45G running DD-WRT. I use this for two reasons. Some hotels do not yet have wireless but do have wired Ethernet in the rooms. In that case, I setup the router in a normal configuration to give me wireless and wired connections to their Ethernet. Other times, I need to connect wired Ethernet devices to the wireless network in the hotel. In those cases, I setup the router as a client bridged connection. In effect, using the router as a wireless adapter for multiple wired Ethernet connections. I do not find the lack of modem or Ethernet a problem with the N800.

The web browser in the N800 is Opera 8 and it includes Flash 7. I have run into sites where Flash 7 will not load the content. Most of those sites redirect to a page to load Flash 9. I have not tried to load Flash 9 yet. Overall, the browser works fine for most of the sites that I need. The thing that I really like is the full screen mode that the N800 has. Press one button and the web site is presented on the full 800 X 480 screen. That means very little horizontal scrolling is needed. There are also keys on the top of the unit, on either side of the full screen key, that allow zooming the page. That comes in handy for someone like me who has eyesight that is showing signs of age. Small fonts can be a pain to read. With the zoom keys, Nokia has overcome that problem. I wish zooming was as easy on my laptop. The zoom range runs from 80% to 300% more than enough for me. The browser has all of the normal functions that I expected.

This would be a good time to mention a surprise that the N800 had. I like to listen to the radio when I am working. Nokia included a undocumented FM radio module in the N800. It is now documented and a software applet is available to make use of it. You do have to plug in the headset to use the radio but that is only because the headset cable is used for the antenna. Once you have the radio application running, you have an option to turn the speakers on. That was a nice addition to the unit. It also does not seem to make much difference on the battery life to have the FM radio on.

The included RSS feed reader application is one of the best that I have ever tried. Adding feeds is as simple as clicking the feed link on a web page. You can also add feeds manually by typing the address or using copy and paste. The feeds update based on the connection type available, a very nice feature if you have to pay based on data use when connected by Bluetooth, and according to a schedule that you setup. A summary applet is available to place on the desktop that shows the latest items from your selected feeds. I watch several feeds and really like having the applet handy.

More details coming in the next part. Meanwhile you can find more details about the N800 here.