Bugs and User Interface Design

Friday, 13 March 2009 at 07:18 | In Journal, Technobabble | Leave a Comment

I’ve been dealing with bugs a lot, lately. Not the living insect variety, but the computer bug sort. It is my job. Yes, I’m a missionary, and I do “missionary-like” stuff like living in a remote area in an exotic nation, preach in another language, and continually have faith in God to supply the needs of my family, my ministry, and myself, because I get no salary. My 40-hour-a-week job, though, is IT support and custom programming for a mission aviation organization with 7 aircraft. I support Bible translation work by supporting the people who get the Bible translators in and out of their villages, and who keep supplies coming in a land with very few roads.

In combating computer software bugs, I have learned to recognize some really common ones. I have also learned some things about writing software to avoid them. Just like bugs in the animal kingdom, there is a taxonomy that can be used to describe them. One major distinction is the source of the bug: bad design, bad implementation of a good design, or both. The bad implementation side is the one people usually focus on. I have seen several lists of common errors, like stack overflows, arrays with indexes out of bounds, improper validation of input (especially if that input is going to be interpreted by another process like a SQL server), etc. Such things are important to pay attention to, but those are like miller moths (the kind of bug found in a relay of one of the first computers, and for which all computer bugs are named). They can’t bite you, don’t normally carry diseases, and as long as you keep them from laying eggs in your stored clothing or wedging their bodies into your relays, it takes a lot of them to really do much damage. Design problems, however, are more like centipedes, scorpions, and poisonous spiders. They can be lethal to a project.

One particular design problem that I have seen too much of is in the form of bad user interface design. Human interaction with machines is very complex, because humans are extremely complex and the machines they use tend to be a little complex, too. I enjoy the computers on Star Trek, because they are so speedy, recognize natural speech in almost any language in the galaxy, can store the collected information from multitudes of civilizations and search and analyze it all in seconds, and can produce any kind of food or beverage on command. They always seem to just understand what the user wants. Not so with the computer I’m typing this article on. I could name at least two projects that had serious user interface (UI) problems in the world of Bible translation and Bible translation support software, but I won’t, at least here. One of those is basically irrelevant except as a how-not-to lesson, as it is essentially dead, killed by lack of use. The other has credible hope of being resurrected with a UI make-over in at least the most critical areas.

Rather than detailing all that is wrong with the UI designs I have seen, I prefer to be a little more positive, and focus on what is good and right about the best UI designs that I have seen. Here are some things to keep in mind when designing a new program or program suite that may save you some grief:

  • Before writing a single line of code, design at least the basics of the user interface. What are the inputs, outputs, and interactions? How do they fit with the work flow of your customers? Is this the same as what they do, now, or better? (If it is not the same or better, then scrap the idea and start over.) To really do this right, you need a good understanding of what problem(s) you are trying to solve, and good lines of communication with your customers. (Yes, you have customers, even if you write free software.)
  • Know your customer base. Know their education level range, their familiarity with computers, other programs, and operating systems. Know what kinds of computers they use and are likely to use. Know why they would want to use your new and/or improved program. Talk with them frequently before, during, and after design and development of the program. If the entire user base is too daunting and could consume all of your time, talk to a few truly representative users, and make some way for others to send feedback (i. e. bug reports, feature requests, etc.).
  • Make your UI intuitive. That means make it so obvious how things should be used that someone who has never used it before can use it. In reality, the only way you will get this done is to copy the good ideas and behaviors of other common programs that users have likely used, before.
  • Read up on good UI design. Microsoft and GNOME both have good things to say in this regard. Even if you don’t like all of their ideas, you need to use most of them or your interface will seem strange to people, because it is different.
  • Use a good UI design toolkit/library. Not only does this save you from “re-inventing the wheel,” it makes it easier to both be consistent and be more like other programs (and therefore more intuitive).
  • Do not get too “creative” with your UI. Sometimes even something that is arguably better is much less intuitive, because people aren’t expecting whatever you are throwing at them. Choose a “normal” way of doing things. Read Microsoft’s Common User Interface guidelines and the Gnome project’s user interface guidelines for some good ideas that you should probably stick to unless you have a good reason not to.
  • Match the UI to the task. For example, if it is a control system for a physical system with fluid or material flows, lay out your UI in an easy schematic diagram of that system. If is a calendar, make it look like one. If it is a recipe book, make sure it is easy to find the recipe “cards,” and once you present them, they look like what cooks are used to seeing. If it is a flight simulator, make it look like a cockpit. I once visited a business web site that was programmed like a video game, but the business had nothing to do with video games. Match the form to the function.
  • Make the common stuff easy to do and easy to find. Minimize the number of mouse clicks and keystrokes it takes to do stuff that is done frequently.
  • De-emphasize the more esoteric or “advanced” stuff, lest it confuse the beginners and casual users of only the basic functions.
  • In de-emphasizing the advanced or infrequently-used features, take care not to hide things too well. Make such things reasonably obvious to find, too. Sometimes it is better to have a larger set of options shown at once, and sometimes you need to show just a few. Knowing when to do which is a matter for experience and wisdom. Usually, this balance has to do with putting “advanced” features on a separate dialog box, or having a less/more button on a dialog box. It also explains the partially-hidden menus in some programs, although I never liked that feature myself. So, if you do that, make sure the users that are annoyed by that can turn the menu-hiding off.
  • Be consistent. This includes layouts of dialogs (i. e. normal locations of OK and Cancel buttons) as well as when and how things get saved. Some programs automatically save everything you do instantly, with no “save” button needed, but some require an explicit “save” function. Try to do it the same way within the same program.
  • Give the user good feedback. When something happens, make it look like it happened. Users are ALWAYS confused if you don’t do this. Better yet, give feedback of exactly what happened, visually, audibly, or both. Make it obvious what is going on.
  • Provide an “undo” function where appropriate. People goof. Often, they recognize immediately that they goofed (especially if you give good feedback), and they want a way to repent, undo, and avoid disaster. Make it possible.
  • “Are you sure you want to launch a nuclear missile?” messages are no substitute for a good undo function. Choose wisely where you put “Are you sure?” prompts, and don’t over-use them. Otherwise, they will be ignored when they are really needed.
  • Avoid overusing modalism, or the shifting of controls into different modes. Computer interfaces are inherently modal. Different menus, buttons, controls, etc., appear on your screen at different times in different situations. This is both flexible and annoying. It is both powerful and non-intuitive. Consistency is intuitive and easy. Consider the automobile. The accelerator pedal is on the right. The brake is to the left of it. Turning the steering wheel clockwise turns the car to the right when moving forward. It is always the same, in all cars, all over the world. I like that. When practical, keep the same kinds of controls in the same places.
  • Keep it SIMPLE! This is probably the most important suggestions. It takes careful balance. Don’t bedazzle & befuddle the user with too many things at once, but don’t make it too tedious to find all of the things that the user wants to do. Group things together that logically go together in the user’s normal work flow.
  • Make the program forgiving. I detest programs that you have to press 3 buttons exactly once, in order, exactly one time per month, or things get messed up. If one of the buttons doesn’t work, programmer intervention is required. Don’t do that. If a button can be pressed, make it do something safe and useful. If not, disable or hide it. If something has to be done exactly once a month, reconsider the design.
  • Write clear, concise, indexed, illustrated instructions. If you can’t write well, find someone who can to help you. Include the instructions with the program and keep them up to date with the program.
  • Keep the design of the over-all program simple. If you have trouble explaining to someone how to use it, chances are that it really is too hard to use, and needs to be changed.
  • Keep the number of controls to the minimum needed to accomplish the task efficiently. Remember that for each control you add, you raise the minimum I. Q. of the operator by 3 points.

Now I’ve reminded myself of what I’m shooting for as I redesign some software. I hope it helps you, too.

The Great Technician

Sunday, 2 November 2008 at 10:51 | In Journal, Technobabble | Leave a Comment

I was really happy to have succeeded at fixing a satellite relay station of the Papua New Guinea Christian Broadcasting Network (Wantok Radio Light) in Kainantu. The man in the picture is smiling because I just gave him a solar-powered fix-tuned radio, playing Wantok Radio Light. That nice little Galcom radio is really good for PNG, because batteries cost lots of money relative to people’s income, and people don’t always have access to electrical power. The thrill of victory turned to the agony of defeat quickly when I got back to Aiyura, and the station had gone off the air, again, then drifted on and off rapidly enough to make the station pretty useless. I had done all I knew to do. I just turned to the Lord, and asked Him to either fix it Himself, send an angel to fix it, send someone else to fix it, or show me how to fix it. That evening, the radio station came back on. And stayed on. I’m listening to it, now. Glory be to GOD! He is a better electronics technician than I am. He is the master architect, engineer, designer, and Creator of all that is used to make anything electronic.

Missionary Rocket Science

Sunday, 4 November 2007 at 04:27 | In Journal, Technobabble | Leave a Comment

In a land where only about 10% of the people have electrical power in their houses, you might wonder what good such technology as electronics, satellites, radio, and cell phones might be. Actually, such technology is very useful, indeed. Technology is no substitute for living and proclaiming the Word of God. It can, however, make it easier to reach people with the Word of God and make the logistics of getting the Word of God to new people groups much easier.

We rely heavily on communication satellites. All of our telephone calls from Ukarumpa to anywhere farther than Kainantu are carried by satellite, no matter which way we make them. The Papua New Guinea Christian Broadcasting Network (also known as Wantok Radio Light) uses a satellite channel to distribute its programming to FM radio stations scattered all over the country. Our Internet connection is via satellite. In a country consisting of about 600 islands, including the very large and mountainous island of New Guinea, satellite links are the most practical way to communicate in many cases. Running cables all over the place is way too expensive, and far to vulnerable to damage by vandals, earthquakes, and other problems. We also make heavy use of HF and UHF radio links.

A few weeks ago, the local Wantok Radio Light station in Kainantu stopped working. Its receiver (shown in the picture) apparently suffered damage to its RF front end in a lightning storm. The station manager sent a replacement up via an SIL flight, and I put the new one in place. Many people were happy to be able to hear their favorite Christian programming, again.

Although few people have electrical power in their houses in Papua New Guinea, there are many battery-operated radios listening in. We have distributed about 700 fix-tuned, solar powered radios to people in Wantok Radio Light’s service area, so far.

Yes, the Good News of Jesus Christ is simple enough for a child to believe. Rocket science can help deliver that good news.

Mobile Telephone Service in Ukarumpa!

Sunday, 4 November 2007 at 00:28 | In Technobabble | Leave a Comment

Our last field term in Ukarumpa, there was no mobile phone service at all in Ukarumpa, except for bulky and expensive hand-held satellite phones. Now, there is service from two different companies! One of those (B-Mobile) has excellent signal strength in Ukarumpa but high airtime prices. The other (Digicel) has better coverage most places in PNG and better prices, but weak signal strength in Ukarumpa. It is interesting to watch the culture changes that happen when technology like this comes to where it wasn’t available, before. The introduction of competition for telephone service has been resisted by the existing telephone company (Telikom and B-Mobile) and some people in government. Therefore, the newer and larger mobile phone network (Digicel) has been blocked from interconnecting with the existing telephone company, so far. Because of this political state of affairs, it takes two telephones to be able to talk to anyone with a telephone in the country. Both networks connect internationally, but there is a significant price difference ($1.97/minute for Telikom vs. $0.36/minute for Digicel). Fortunately, accepting inbound calls is free on both networks. I hope that Telikom wakes up, lowers prices, and makes an interconnect agreement with Digicel and Green Communications (the other licensed mobile phone service provider) before everyone cancels their B-Mobile and Telikom service and just goes with Digicel because of better service and lower prices.

Having these additional telephone services has significantly increased our communication reliability from Ukarumpa. In the last week or so, the “land line” service of Telikom from Ukarumpa to the outside world has gone out of service twice for about a day at a time, but mobile phone service was available at those times. (Telikom has had significant difficulties maintaining service due to theft and vandalism of their lines and equipment.)

The expansion of mobile telephone service in Papua New Guinea is a valuable additional communication option for many people, including Bible translators.

Missionary Email Security in Sensitive Areas

Thursday, 4 October 2007 at 06:19 | In Technobabble | Leave a Comment

When doing Christian mission work, it is often necessary to consider the effects of email and the Internet when going into areas with opposition. Much mission work goes on in technologically advanced, developed countries. (That isn’t a good description of where I work, but I did take this picture within about 200 meters of a mobile phone sales booth.) Although I work in a country where I can be open about what I do, some don’t. One brother asked me for advice on email security in his country, which is less friendly than mine to Christians. Here is my answer to him and brothers and sisters like him:

* Be like Jesus. He doesn’t lie, but He doesn’t tell everyone everything, and often uses parables. Choose wisely what you reveal to whom and how.

Don’t say things that attract terrorist attention. Avoid saying things that sound like blasphemy or illegal activities. Avoid using religious key words that a terrorist might look for, or at least be very careful of the context of that use. Keeping the text clear of incendiary comments and personally identifying information and exact locations is a good practice when operating in some areas, but that should never be all that you do. It isn’t enough.

Be anonymous. Don’t get real specific about identifying information of individuals and locations. Maybe a common first name, pseudonym, or initial is enough to talk about a person. Use large geographic units (like “Southeast Asia” or “North Africa”) instead of precise addresses. Use of a specific country name may or may not be OK, depending on the country. Consider carefully what pictures to send, and how to crop or selectively blur them. If someone with murder in his heart intercepted your email and decided that he hated you and what you do, but couldn’t identify or find you or your brothers and sisters, then that email leak did no actual harm.

Use generic email addresses. There should be nothing to capture unwanted attention or reveal too much identity in either the user name part of an email address or in the domain name. There should be nothing incendiary that pops up if you visit http://www.networksolutions.com/whois/index.jsp with the domain name or surf to the corresponding web site. Something like imaketents@gmail.com or languagestudent@yahoo.com is much better than something like Joseph_David_Smith@name-of-disliked-organization-here.org.

* Use link encryption. For most people, that means requiring TLS or SSL connections between their email server and their email client. Galacticomm.org addresses and FirstClass mail clients automatically use link encryption, but they aren’t the cheapest solution, and not as easy to integrate with GnuPG. With standard email clients, like Thunderbird, Outlook Express, Eudora, etc., there is usually a little non-default setup that needs to be done. Link encryption is supported by all good email providers and email programs. If yours doesn’t, get another one that does. You can get free email accounts supporting encryption at gmail.com and other places, and high-quality free email software that supports encryption, so this need not cost money. Exactly how you set it up depends on your ISP and your email program. Thunderbird, in the account settings box, the “SSL” or “TLS” radio buttons should be checked, depending on what your ISP supports. Another option is to use SSH or VPN tunneling instead of or in addition to SSL or TLS, but that most likely requires some expert help to set up. Note that link encryption just protects the privacy of the email from your computer to the server and back, and does nothing to protect it on the server, on your local computer, in transit between the server and your correspondents, or on their computers. That might not seem like it is worth much, until you consider that it probably covers the portion of the email route where the worst threats are.

* Use a mail server in friendly territory, preferably in the country where most of your email correspondents live. There is no guarantee that email between your server and others will not pass through an enemy’s server, but the odds of that happening are lower than if you choose a mail server in a land populated primarily by the kinds of people you would least like reading your email.

* Use secure web mail. Web mail access is great on the road. Make sure the connection is secure, however, with https, not http. Don’t use web mail from untrusted cybercafes and stranger’s computers. Using your own notebook computer at a wireless hotspot is better.

* Use GnuPG where practical. Unfortunately, that isn’t in very many cases, unless you set it up for people… but if you really want to pour your heart out in an email, it may be just the thing if your intended recipient also is set up to handle GnuPG mail. This takes planning ahead, and it probably means having at least one GnuPG expert per working group. Once set up, it is really easy to use, if you use GnuPG with Enigmail and Thunderbird. (If you are using an email solution that doesn’t have OpenPGP integration, you should consider getting another account and email client for this task.) There are some other similar combinations that work, too, but I like Thunderbird + Enigmail + GnuPG, because it works for me on Windows, Linux, and Mac OS, and because it is really easy to use once set up. GnuPG is not a realistic thing to expect all of your partners to use, though.

* Practice safe computing. Enable a firewall. Protect yourself from viruses. Don’t install unnecessary software on your working computer. Don’t leave sensitive information unencrypted on your computer. Sensitive information is anything that would cause you significant concern if your computer was stolen and you were thinking about the thieves looking at it, like maybe bank account information and passwords, personal correspondence, etc. Scan for spyware and viruses regularly. Your email can be perfectly secure, but if you have a keystroke logger reporting your passwords and email contents to someone else, someone else can get it all, anyway.

* Encrypt the email (and other sensitive documents) stored on your disk. The easiest way I have found to do that is to use TrueCrypt (http://www.truecrypt.org) to create an encrypted volume, then install the PortableApps version of Thunderbird in that volume. The encrypted volume can be on a large capacity USB memory stick, if you like. See http://portableapps.com/ for more about portable applications. All of the care protecting the transmission of your email isn’t worth much if your computer (or memory stick) is suddenly stolen, and the data isn’t encrypted. Do this before you need to do it. (In other words, shut the barn door before the cattle stampede across the highway, even if you don’t see the kid with firecrackers hiding in the barn.) Some versions of Microsoft Windows allow you to encrypt certain directories with your login credentials. This feature is easier to use than Truecrypt, but I prefer to use Truecrypt for several practical reasons, including the ability to backup and recover from disk disasters in a more straight-forward manner. (There are other disk encryption programs, but Truecrypt is free, uses sound cryptography, and I know how to use it.)

* Separate your sensitive and non-sensitive data. Make a habit of keeping your sensitive data in an encrypted volume on your computer, and backing it up to an encrypted volume on a memory stick that you keep in a separate place. Most of your non-sensitive data is also probably worth backing up, but you don’t have to keep it encrypted.

* Use good passwords/passphrases. Don’t use things that are easy to guess, things that are in any dictionary, etc. Use first letters of a long phrase. Throw in some special characters. Make it long. Make it easy for you to remember and very hard for others to guess, even if they have automated help guessing. Longer passwords are usually better (as long as you don’t forget them). Even long passwords that you use regularly aren’t all that hard to remember.

* Keep remote backups in a safe place. If you have some really important data, make sure you back it up and store it in a separate place, preferably in another country. If it is sensitive data and you have any doubts about if it will be intercepted in transit or stolen from its destination, encrypt it. Remember the password to decrypt it.

Ask correspondents not to forward or post newsletters. There are things you might like to tell your partners in your home country that might not be appropriate to share with all of your neighbors. One forward to a mailing list with a public list archive that gets indexed by search engines could drastically increase the potential readership of your newsletter.

* Protect home and office networks. Use encryption (WPA or WPA2) on wireless networks. Don’t share more than you intend to via network. Turn off file sharing if you don’t need it. If you do, only share specific directories for specific purposes.

* Be careful what you publish to the world via the Internet. Make sure what you say is appropriate for your current situation, especially if you have a personal web site, blog, or photo-sharing site. Consider carefully how your near neighbors may view what they find out about you on the World-Wide Web. Google finds some amazing things.

*Items marked with an asterisk are good advice for missionaries even if they are not in places where terrorist attacks are likely.

Behind the Scenes

Monday, 3 September 2007 at 11:10 | In Journal, Technobabble | Leave a Comment

My Linux computerAnother missionary working in Papua New Guinea (and currently on another island) told my wife that they only got a newsletter out about once or twice a year. It is hard, and they just can’t “whip one out like [Michael] does.” I have a confession. I don’t just “whip out” a newsletter. OK, maybe a quick photo of the week email with no major content is pretty quick, but the “official” newsletter that we archive on our web site, email to our partners, and have printed and mailed to our email-less partners takes about two days of labor to produce. It would take less time if we made it longer, actually. We know that people are busy, so we endeavor to keep the newsletters short; no more than one sheet of 8.5 x 11 inch paper, printed on both sides, using type that most people won’t need a magnifying glass to read. In addition, we know that people like pictures. We like them, too. Pictures aren’t just fun to take, they are also effective tools to communicate a lot in a little time. Pictures tell stories. Of course, pictures bring to mind stories, too— usually more stories than I tell. Actually, one of the best things about our web site is that it gives me a place to put the overflow from stuff that didn’t make it into the newsletters. It also is a nice place to be able to post pictures without a really small size limit on the captions. Of course, I realize that not nearly as many people will read all that I post or enjoy the pictures as read our newsletters, but that is OK.

The richness of the full-color range of experiences and adventures with God here and in our travels just flat-out won’t fit in two pages every month or three. There are many significant things going on, times where God has gotten glory by protecting and healing His people, trials and victories over trials great and small, all mixed in with cross-cultural salsa and sprinkled with miracles. Sometimes it seems like a real struggle just to not lose heart, and other times, the joy of the Lord just overwhelms a guy. Through it all, God is faithful. Of course, adventures with God don’t require crossing large quantities of salt water. People struggle to grow close to the Lord in the busy USA, too. So, we keep trying to condense significant events, prayer requests, vision, thanks, and news of what we are doing into less than a page a month. Why do we even bother? Accountability. Reminders for both senders and sent of their dependence on each other. Reminders to pray. That makes it worth it.

Lately, I’ve been experimenting with making the newsletters a little “deeper,” at least for some people. By embedding hyperlinks in our newsletters, I make a way for people who are reading the electronic version online to dig a little deeper or see a little clearer picture with a simple click. At least that works for people who are on the Internet at the time. If they aren’t, or if they are looking at a printed copy, then they still get a decent newsletter.

I’ve also used prayer letter writing as a learning experience. I suppose that a normal person would figure out one software program for creating prayer letters and stick with it. I’ve used a wide variety of programs, sometimes just to learn to use that program. The most recent newsletter I produced was the first one that I produced with Scribus running under Ubuntu Linux. I like it. I think I’ll keep using Scribus for our newsletters for a while. It makes a really good PDF file for our purposes.

Blog Restored

Wednesday, 9 May 2007 at 15:23 | In Technobabble | Leave a Comment

Apple blossomIt turns out that my journal entries were not totally obliterated, just temporarily inaccessible. With a bit of labor, I was able to recover all of the posts in my blog. In the process, I decided to move the blog from the Rainbow Missions leased server to a “free” account on WordPress.com. Although this has the unfortunate side effect of breaking all of the “permanent” links to the individual articles, it has the advantages of (1) upgrading to the latest version of WordPress software (2) someone else maintains the server and keeps the software updated, and (3) it saves me the trouble of trying to get Plesk, WordPress, and various web pages working together with the same version of PHP and other programs on the same server. I can minimize the pain of the broken links by making the old main blog URL automatically forward to this one. Now, I’ll run one of my favorite features of the latest version of WordPress: export of the whole blog to an XML file that can be imported to restore the whole thing, later. :-)

Backup!

Tuesday, 8 May 2007 at 21:17 | In Technobabble | Comments Off

My eyeYou would think that after more than three decades of working with computers, I would be better about backing up my data. Apparently, I’m not. I’m OK with regular files, but I hadn’t gotten around to setting up a proper backup system for MySQL data on my server, including my WordPress blog entries. A software glitch during remote upgrading of the Plesk software on that server killed it. This is sad. I’ll try to do better.

Toshiba Lemon Retired–Long Live the MacBook!

Wednesday, 21 March 2007 at 17:49 | In Technobabble | Leave a Comment

MacBook running Ubuntu LinuxThe last time I wrote about computers, I was happy to have found and fixed a serious problem with my Toshiba computer. I expressed high hopes that it would provide long and reliable service. Those hopes were disappointed as the Toshiba computer froze up a couple more times, one of which cost me about an hour of work. To me, having a computer that is so close to working well, but so far away, is frustrating. Fortunately, there is a good solution. A dear brother in the Lord gave me a MacBook notebook computer. I really like it. It has become my primary working notebook computer. The MacBook is smaller and lighter than the Toshiba computer, but it runs faster and has more RAM installed. I was pleasantly surprised at how well it runs not only its native Mac OS X, but (with a little help from Parallels) Microsoft Windows and Linux, as well. This is important for the cross-platform Bible translation software development that I’m working on. Praise God! It works!
The Toshiba computer isn’t totally out of service, yet. It has been assigned to entertainment duty and for use in places where I don’t want to have my primary working machine, such as showing photos in a display booth or as a loaner for other people to use for less critical and less demanding applications.

Loose-brained Toshiba

Thursday, 8 March 2007 at 11:47 | In Technobabble | Leave a Comment

CPU photoThe saga of the Toshiba Satellite P35 notebook computer woes continues, but this time I have high hopes that things have turned around such that we will get our money’s worth of work out of this machine, yet. Its warranty has expired. It was working OK most of the time, at least running Ubuntu Linux, but it still flaked out at times. It seemed to be thermally sensitive. The environment I’ve been running my computer in has been a consistent 20 to 23 C, which shouldn’t be a problem at all, but at 2,425 meters above sea level, which might challenge the cooling system a little. This model of computer is notorious for overheating due to the heat sink over the CPU getting clogged with dust. I found instructions for disassembling and cleaning it, but didn’t want to perform that major surgery until I had a viable backup plan and ALL critical data was off of the computer. All the important data is mirrored to an external hard drive at least every other night, but it wasn’t until I had Linux set up on my desktop computer with all of the same applications and had another notebook computer that I felt that I could risk disassembling the computer.

Box of partsWhat I found surprised me. The heat sink wasn’t clogged. The canned air treatments that I had given it had effectively cleared out most of the dust, dog hair, and other junk. However, when I lifted the heat sink up, the CPU just fell out of its socket with no resistance. The latch on the zero-insertion-force socket was set about half-way between “open” and “closed.” No wonder the machine had been flakey! It had a loose brain! I’m amazed that it had done as well as it had, to be honest. The top picture in this article shows the CPU properly latched in place.

More Toshiba notebook computer parts.After smearing on some fresh thermal transfer grease and attaching the heat sink, and putting all of the parts back together again, this computer has run flawlessly, so far, doing normal stuff like downloading pictures from my digital camera, reading and writing email, and and writing this article. I have high hopes that it will keep running well. :-)

Praise God! It almost feels like getting a new computer!

Nonprofit Organization Web Sites

Wednesday, 24 January 2007 at 06:41 | In Journal, Technobabble | Leave a Comment

Computer Mouse photoI still remember when I first found out about the World-Wide Web and HTML-based web browsers. I had know about the Internet, text-based email, ftp, and Usenet, but this was a new thing, still highly experimental. By that time, the Lord had already directed me to start work on the World English Bible for free electronic distribution. Electronic bulletin boards were popular among a few people, and a 2400 baud dial-up modem was considered fast. Flash forward in time to the present, and Internet web site addresses adorn the packaging of much of the food in your kitchen, the backs of trucks, and TV commercials. Students do research using Google and other search engines, Wikipedia, and the on-line databases of libraries with their favorite web browsers. Paper library card catalogs are being phased out. Large numbers of people, especially young people, exchange information about themselves on social networking sites like facebook and myspace. Large numbers of people like to write web logs or blogs (like this one). Some of them are even worth reading. :-) All major public relations efforts in the technologically developed world include an Internet web site presence. Domain names become valuable property, like trademarks, and sometimes sell for surprisingly large amounts of money.

Why should a nonprofit organization or a missionary have a web site? After all, the work of the Great Commission and missionary work have gone on long before the Internet. And before radio. And before jet aircraft. And before Gutenburg’s printing press.
Here are my favorite reasons for a nonprofit organization to have a web site:

  • To provide contact information for people you want to hear from (partners, potential partners, potential members, clients, etc.). Often people search the web before even thinking of a phone book– and those are so limited in reach, anyway. If you don’t do anything else, a simple web page with contact information and a clue as to who you are and why you exist would meet the minimum expectations of many people.
  • To further the mission of the organization by direct ministry. For example, if an organization exists to publish and promote the Holy Bible, the text of the Holy Scriptures can be published on line for reading and downloading. Information to help hurting people with their problems can be posted on line. Churches can post sermon recordings on line.
  • To solicit donations. Fund-raising is not evil. Rather, it is a necessary part of keeping the organization running and fulfilling its mission. Donations are voluntary contributions by like-minded people and groups to further the cause of the mission.
  • To recruit more volunteers, members, or (in some cases) employees.
  • To communicate with partners and others. Communication runs both ways. The communication may be news, prayer requests, praise reports, answers to questions, etc. Outbound communication is fairly obvious. Inbound communication can be handled with web forms (usually more spam-resistant than regular email), email, email discussion lists, web-based forums, comments on blogs, etc.
  • To communicate with members or employees things of a personal nature (such as financial statements or mailing lists) or things of interest only within the organization (such as policies, forms, etc.). This sort of thing should obviously be placed in a password-protected secure area instead of a public area.
  • To sell things related to the mission of the organization, such as books and audio recordings, if applicable.
  • To promote your organization and cause. Public relations is important both in terms of being able to perform your main mission and to gain funding for that work. The image cast must be truthful and reliable, as well as being positive. (This, of course, implies that your organization must also be good.)

My favorite reasons to not have a web site are:

  • Your organization is secret. You don’t want any unauthorized people to know you exist.
  • Your organization can’t properly manage even a simple web site, nor can it find a trustworthy and knowledgeable person to do so, and wants to save itself from very public embarrassment.

A good web site:

  • Is up-to-date. Information marked current is really current. Archives of old or superceded information is clearly marked as such.
  • Is accurate, truthful, and reliable. Not everything need be made public, but what is should reflect reality.
  • Is efficient and loads quickly. Just because you have an extraordinarily fast broadband connection doesn’t mean that everyone else does. Even people with broadband connections tend to have short attention spans, and expect snappy performance. Some people are still on dial-up connections, and some people have even worse or more expensive connections in developing nations.
  • Is compatible with the top browsers on multiple operating systems. Currently, this means reasonably current versions of Microsoft Internet Explorer, Firefox (and other Mozilla derivatives), Opera, Netscape, and Safari. Web pages should not do anything that tie visitors to one operating system (like using Microsoft Active-X controls).
  • Is safe. Private and financial information is kept safe using careful design and proper use of encryption. Site infrastructure is kept reasonably well updated and secure against hacker attacks.
  • Is accessible. Consider visually impaired people using smaller pixel size screens or audio screen readers. A design that looks great at 1280 x 1024 pixels may be unusable at 640 x 480 pixels. Tag pictures with meaningful alternate text. Make sure the site is navigable if graphics are not visible. If the target audience speaks more than one language, translations of the site are available.
  • Has appropriate content. Things are made public that should be made public, and things are not made public that should not be made public. The content of the site accomplishes the purpose of the site.
  • Is culturally sensitive. Web sites are international in reach and subject to being read by people of many cultures, religions, races, and nations. It may be impossible to avoid offending absolutely everyone, but try to minimize the offense.
  • Is attractive and easy to read. Pay attention to graphic design. Great graphic design is no substitute for good content, but it can sure help enhance that content or at least make reading it more pleasant.
  • Is intuitive to navigate and consistent in operation. Just say “no” to novel user interface ideas unless you have very compelling reasons not to. There are many ways to create consistent navigational structures, technically. Some are much easier to maintain than others, especially as the number of pages in a web site grows. With large sites, including a search engine may be a good idea. Avoid menus that are too long. (Nest or cascade menus, if necessary, to keep them manageable.)
  • Has stable URLs. People can link to pages within your site and expect the links not to break right away. Search engines can send people directly to the page of most relevance to their search. Among other things, this means not arbitrarily changing page names or directory structures. Sometimes it means leaving a trail from the old to the new with a redirect, alias, or other technique. Useful content doesn’t disappear before its usefulness expires.
  • Uses pictures to tell a story, but not to hold large amounts of text. Pictures should be big enough and clear enough to do their job, but not so big as to slow down page loading. If someone might want to see a larger version of a smaller picture, it is normal to make it available by linking the smaller picture to a larger version, or to provide links to multiple sizes.
  • Is functional. The links, buttons, and other controls all work, and do what you would expect. If you feel compelled to make dead or stub links, either do so for very little time (like less than a day), or (better yet) go study web design some more until that feeling goes away.
  • Is maintained and under construction, but doesn’t have a lot of “under construction” signs and excuses up. We expect web sites to change content, sometimes daily, but the really good sites that change the most never give you an “under construction” page. Either the page is there, and there are links to it, or it is not public, and there are no public links to it. It is clear who has authority and responsibility for site maintenance, and they do their jobs. It is actually unusual for one person to have all of the skills necessary to manage all aspects of web site design and maintenance single-handedly. Therefore, those working on the site must work together to combine their strengths.
  • Is corrected promptly when things change or errors are found. Out-of date information is promptly removed.
  • Displays journalistic excellence. Accuracy, spelling, and grammar count.
  • Properly represents the organization. The views and opinions expressed in the web site accurately reflect the organization as a whole and its leadership. It is an advocate for the organization that emphasizes the strengths of the organization, the work and qualifications of its members, and the merits of its mission, without losing sight of humility.
  • Doesn’t annoy people without just cause. Use flashing text, animated video, pop-ups, etc., sparingly, if at all.
  • Keeps content primary and presentation technology secondary.
  • Has an easy-to-remember and easy-to-type URL. The domain name is properly registered and kept safe from inadvertent lapse in registration. In some cases, it is worth registering more than one domain name for the same site. In other cases, it is fine just to use a new directory or subdomain on an existing domain (like eBible.org/Johnson or AdaptIt.ebt.cx).

So, how can you improve your web site, today? How can I improve mine?

Email Postcards and our Web Contact Form

Sunday, 10 December 2006 at 05:59 | In Technobabble | Leave a Comment

VultureYour normal email is less public than this web posting, but not by as much as you probably think. I’ll not get into how easy it is to intercept unencrypted email, except to say that it is very easy to do. Sometimes it is not only easy, but cheap to intercept your email. Yes, there are laws about such things, but some morally challenged people don’t care about those laws any more than the average spammer cares about the laws they break. Besides, those laws don’t reach everywhere your email travels. Even domestic email can be routed outside of the country you are in. Usually, you will have no clue that your email has been intercepted, read, or analyzed by someone you would not like reading your email. The unauthorized reader could be anywhere in the world: criminals, competitors, religiously violent people opposed to the Gospel of Jesus Christ, hostile governments, terrorists, etc. You would be amazed the routes your email takes, even when you aren’t on a particularly vulnerable network (like a wireless hot spot or cybercafe).
Sometimes I’m not really concerned about the privacy of communications. Sometimes, I intentionally put a message (like this one) in public view. Sometimes, I want more privacy, because the communications are personal, financial, proprietary, easily misconstrued, or something that could endanger someone if revealed to the wrong person. Sometimes I just feel like some communications should be private, even if there would be no harm in saying the same things openly.
OK, so what can we do about email privacy? Actually, there are some high security solutions, some medium security solutions, and some insecure solutions. For high security, use end-to-end encryption, like GPG or PGP. For medium security, use TLS or SSL encryption between your email client and your mail server. Although it is not hard at all to use GPG with Enigmail in Thunderbird, once it is set up, it does take a bit of effort to set up, and some learning to understand the concept of public key cryptography. Actually, that isn’t all that hard. Getting all of your correspondents to use GPG, however, is nearly impossible. That is why SSL and TLS are so attractive. With either SSL or TLS, the email is encrypted between the email client and the email server with no effort required from the user other than to get the initial settings right in the email client when setting up the email account. With SSL and TLS, the email is decrypted at the email server, and may be transmitted between email servers unencrypted, depending on how the email servers along the route are configured. This, naturally, makes this solution much less secure than end-to-end encryption, but it does get the email encrypted past the most vulnerable last leg of the journey, which might be at a wireless hotspot or some similar extremely insecure network. The SSL or TLS solution works well, however, within one organization (like SIL and its affiliates), which use only a few servers run by trusted parties in secure locations, and all email transfers between those servers are also encrypted. Of course, any email to or from a server that doesn’t support the encrypted transfer protocols (which most don’t) is like a post card.

Public key cryptography has a known weakness in that it is subject to a man-in-the-middle attack if you are not careful about making sure that the public key you use to initiate a session is actually the one belonging to the party you wish to communicate securely with. Philip Zimmermann, the creator of PGP, solved this brilliantly with the concept of the “web of trust” based on digital signatures on keys for which you, or someone you trust to do it right, has verified the identity and ownership of a public key. It is brilliant except for its asking people who spend much more time watching TV than reading about math and cryptography to care about key signing, let alone understand it. With SSL and TLS, the method of certifying key ownership is a more centralized system with a strict hierarchy of trust. It is worse in that failure in the security of just a few agents could essentially compromise the security of major portions of the secured Internet, but better in that average users need not understand much about how it works or do much to make it work.

To truly be immune to a man-in-the-middle attack with SSL or TLS, however, you need to (1) have a secure web browser and email client on a secure computer, (2) know what to look for in terms of security indications, like the padlock icon that is part of the web browser and not part of the web page, (3) set up your email client properly for SSL or TLS email, and (4) heed any security warnings you get.

That last one was a problem for us on our secure contact form until last week. You see, getting a security warning could mean that a man-in-the-middle attack was in progress, but it also could mean that I didn’t spend lots of money to get a rich corporation to verify my server’s key each year, digitally signing it so that it could be verified with one of the digital certificate authority credentials built into the common web browsers. Another solution was to create my own certificate authority and ask everyone using my site or email servers to import my certificate authority credentials into their web browser and/or email client. However, I found cert.StartCom.org, a service on the web that would act as a certificate authority for free, and which already had its credentials built into the most recent version of several web browsers, including my favorite, Firefox, as well as Safari, Konqueror, Seamonkey, Mozilla, and a couple others. Microsoft Internet Explorer and Opera users still have to install the StartCom certificate authority credentials to gain the full security benefit, but that beats starting from scratch with all of the browsers.

Now, people who use a browser with the StartCom certificate authority credentials in them (either pre-built or installed later) can use our web contact form without getting a security warning. It is important to get rid of the false alarms, so that people can recognize when a real attack might be under way. That form is a much more secure way to contact us than via regular email, because the message is encrypted in transit from your browser to the server via SSL, and from the server to my computer via Gnu Privacy Guard (GPG). Of course, my reply to you would be unencrypted once it leaves my email server, but even having a one-way secure line of communication is helpful.

You might wonder what that vulture picture has to do with this. Actually, not much, except that it was flying over the JAARS Center, which is the same place where I saw a computer security demonstration of how easy it is to pull off a man-in-the-middle attack, thus inspiring me to get a properly signed SSL certificate on several of my web sites, including eBible.org and cryptography.org.

Bible translation software development

Saturday, 25 November 2006 at 02:10 | In Bible translation, Technobabble | Leave a Comment

When people ask what I do, I usually say something like “I develop software to help Bible translators.” That is probably about the shortest accurate answer to that question that I can muster, at least for my “main” job. I do many other things, too, but this is the bulk of what I spend my working hours on. I often see a puzzled look in response to that question. Every once in a while, I get a pleasantly informed response from someone who knows about software development who asks a question indicating that he or she really gets it. I really don’t have room to explain things very well in our newsletters and emails, because of the artificial limits we place on ourselves for length. We know that our partners are mostly busy people and won’t take the time to read much detail, for the most part… but some do care to know more. For you who care, we have this blog. :-) Old computers on display at JAARS

Software that Bible translators use covers a broad range of things, on a broad range of platforms. Computer technology keeps advancing, making the older computers and older software seem rather quaint, but even the old stuff really helped Bible translators to do their work. There are many things that computers help any missionary to do, such as email, accounting, correspondence, mailing list management, etc. There are also more specialized tasks related to Bible translation. These include:

  • Studying culture and language.
  • Analyzing language elements in many ways, including audio processing of speech samples, analyzing phonetics, phonemics, grammar, vocabulary, and discourse.
  • Preparing linguistic reports.
  • Developing and using writing systems, where needed.
  • Preparing literacy educational materials so that people can learn to read and write their own language, including the Holy Bible.
  • Editing, analyzing, checking, printing, and publishing the Scriptures.
  • Adapting the Scriptures from one language to one or more other closely related languages.

Right now, my focus is on the publishing side, taking Bible translation raw text in whatever format it is available in, preferably Unified Standard Format Markup and Unicode, and turning it into any of several formats for publication in print and various electronic formats. (Eventually, I hope to do more with the Scripture adaptation area, building on some brilliant ideas in existing products and adding a little more inspiration and work to the mix.) This turns out to be a rather interesting process, with all kinds of twists and turns with complications caused by economics, different writing systems, different (and often strongly-held) ideas about what constitutes good Bible publishing, and different cultural viewpoints. I have written some software that works (WordSend), and is easy enough for the Bible translators to use themselves. Of course, there is always more in the way of requests. My current work list includes:

  • Integrating WordSend into the JAARS/SIL Translation Editor via a plug-in mechanism.
  • Making the build and acceptance tests of WordSend more automatic.
  • Reworking the user interface for better user-friendliness.
  • Reworking the user interface to support localization to various languages.
  • Recreating the work done to export to Microsoft Word XML document (WordML) format to export also to Open Document Text (ODT–the native format of OpenOffice.org Writer). This not only makes using WordSend on Linux useful, but also opens up easy access to taking advantage of the SIL Graphite complex script rendering that is being built into OpenOffice.org products, but not Microsoft products. Some minority lanugages need that capability.
  • Making the GUI user interface of WordSend work cross-platform with Microsoft Windows, Linux, and Mac OS X. (The “guts” of the program already works on all three platforms.)
  • Integrating several new features into WordSend affecting layout within WordML and ODT documents and supporting a larger subset of the USFM standard.
  • Creating export and import functions for several additional Scripture file formats to facilitate electronic publication via the World-Wide Web and Bible study software.

Who writes specialized software for Bible translators? If the software is something useful for other purposes and profitable to sell, then it is usually written by commercial interests. However, an increasing amount of free software is being written for philosophical and practical reasons, and much of this also suits some of the needs of Bible translators. However, some of it is so specialized that it really only is of benefit to Bible translators, who form a market so small and so cash-challenged as to not merit serious commercial consideration. Therefore, it is generally the same sort of people who do the Bible translation who do the Bible translation software development: missionaries on support, with some volunteers who work other jobs but contribute a little part time. The majority of the code, of course, is written by those who devote their full-time efforts to this job. This includes teams at JAARS and SIL located at Waxhaw, North Carolina, and Dallas, Texas, USA, as well as contributors scattered on various mission fields and home country locations. It also includes individual or small team efforts scattered around the world. We try to coordinate efforts with communication via the Internet (using mailing lists, wikis, chat, web sites, etc.) and face-to-face interaction like we had at the recent Computer Technical Conference and Workshops in Waxhaw. This helps us keep duplication of effort down to a healthy level and helps us achieve data format compatibility between applications.

Because of the economics of Bible translation and software development, the vast majority of Bible translators and Bible translation software developers prefer to develop free software, provided that the software developers’ needs are met by financial partners just like the missionaries they serve.

What kinds of computer hardware do Bible translators use? They vary from cutting-edge performance to almost-good-enough-for-the-missionary hand-me-downs. While most run Microsoft Windows (including some ancient versions), some run Apple OS X or 9, some run Linux, and some run Palm-OS-based low power computing devices. There is a great deal of interest in the One Laptop Per Child low-cost, low-power, rugged computer project. It’s computing specs are really whimpy, but the ruggedness, low power, and low cost make it attractive for use in very remote locations lacking commercial power. Most of the software being developed for Bible translators now is written for Windows XP, and probably runs OK on Windows NT, 2000, or Vista. Some is cross-platform, running on Linux and/or Mac OS X, as well; but not enough that most Bible translators can work comfortably in Linux most of the time. I have been inspired by some great examples of cross-platform software, like Thunderbird, Firefox, the OpenOffice.org office suite, etc., and have resolved to follow suit in my contributions to Bible translation software to the maximum extent practical.
What is my biggest challenge? Right now, it is defeating the temptation to move back into a high-paying software engineering job instead of contributing to the work of Bible translation and living on missionary support. :-) Still, I would rather not disobey the calling of God, so I press on.

Transitioning to Linux… sort of

Saturday, 28 October 2006 at 21:11 | In Technobabble | Leave a Comment
I admit it. I’m a Microsoft Windows addict. It started a long time ago when I switched from CP/M to MS-DOS. Then Microsoft Windows 1.0 came out, and I tried it… and even ran some programs under it. When Windows NT came out, I was totally hooked. I learned to use several other operating systems, but those were always for a specific job or maybe just to play with. For ministry, professional, and personal use, I stuck with Microsoft Windows, with one exception. For web hosting for real (not experimental) web sites, I have always stuck with Solaris or Linux.
Every addict has rationalizations or reasons for their addiction. Here are my reasons for using Microsoft Windows, some of which are admitedly subjective:
  • Excellent hardware support and ease of installation.
  • Almost all serious consumer computers and peripherals support Microsoft Windows.
  • There is more selection of high quality software for Microsoft Windows than any other PC operating system .
  • I already know how to customize, use, and tweak Microsoft Windows to suit my needs.
  • I already know how to use much of the software that runs under Microsoft Windows.
  • I already know how to write programs for Microsoft Windows several different ways.
  • Some software that I need to use professionally is only available on Microsoft Windows.
  • Lots of support is available for Microsoft Windows because so many people use it.
  • The biggest market for PC software is for Microsoft Windows, so it makes sense to support it both as a software developer and a consumer.
  • Even when there are good alternatives to software that runs on Microsoft Windows, the Microsoft Windows version is often better in some ways.
That said, why on earth would I want to transition to Linux instead of Microsoft Windows?
  • Linux is free software in the sense of programming freedom and close to being free in terms of cost per copy.
  • Microsoft has been convicted of several violations of law and engages in some corporate practices that I find objectionable. Why should I support such corporate behavior?
  • Microsoft Windows is expensive to buy and expensive to upgrade.
  • Linux has vastly improved in hardware support, installation quality, and user friendliness over the last few years.
  • Some excellent software has been written that runs on Linux, including OpenOffice.org, Firefox, and Thunderbird.
  • X-Windows and Gnome or KDE are at least as good as Microsoft Windows.
  • Linux is inherently more secure than Microsoft Windows, by design.
  • All of the most damaging viruses and other malicious software runs on Microsoft Windows, but not on Linux.
  • I write software for Bible translators, most of whom don’t have large software budgets.
  • I am in a position where I can write free software that can be freely distributed with Linux.
  • Much of what I do on a computer can be done under Linux, one way or another.
OK, so with all of those reasons, what is holding me back from suddenly and completely dumping Windows and running Linux?
  • I still need to use some Windows-only programs for work.
  • I still need to support Microsoft Windows as a host platform for most of my customers.
  • I haven’t yet learned everything I need to know to use the new programs on Linux that replace the ones I was using on Microsoft Windows.
  • Even though I can do some things in both operating systems, there are still times when the software that requires Microsoft Windows just plain works better.
  • Sometimes I need to exchange data with other people who only run certain programs on Microsoft Windows, and either the conversions to/from a Linux alternative don’t work or are imperfect.
OK, so a “cold turkey” approach won’t work for me. What will? Since I will probably have to support Microsoft Windows for my customers as long as they use it, I may never totally kick the Microsoft habit. I can, however, greatly reduce my dependency on Microsoft Windows, and help others to do the same. How?
  • I’ll run both operating systems (preferably on separate machines, so they can be running at the same time), and keep trying to do more of what I do on the Linux system.
  • I’ll write cross-platform software that will run on either Linux or Windows; and if I can make it work with Mac OS X, too, that would be the icing on the cake.
  • I’ll keep learning how to do more with Linux and Linux-based software.
  • I’ll keep using Windows-based software as necessary, but keep looking for Linux-based alternatives.
So far, the plan is working. As I write this, my computer is running Linux, and so is the server hosting this blog. :-) I’ve figured out how to send, receive, and organize my email (including access to all past history and sorted messages pending action that I got in the Windows environment), use office software, manage files, maintain a web site, browse the web, write some simple programs, etc.
Now, I’ll just reboot back into Microsoft Windows and do a couple of things I haven’t figured out how to do in Linux, yet…

Sharpening the axe and laying the foundation

Saturday, 28 October 2006 at 18:15 | In Technobabble | Leave a Comment
The last few months have been challenging to me, in terms of fighting frustration. My computer work has been like trying to run with lead weights on my feet. In a swamp.

Things are looking up, though. A new computer has arrived, and I’m looking forward to setting it up and using it. I’ve also got a work-around to keep my old notebook computer running a bit longer, and it is almost at the point where I can spend more time using it for productive work than just setting it up. Actually, setting up a computer is not exactly unproductive. It is like sharpening an axe. In all of the Bible translation software development work I do, I use a computer set up with many different software packages: about 60 different installations. Unfortunately, most of those have to be done one at a time, at least under Microsoft Windows. Some have online updates and activations that have to be done. All this take time, and lots of it. Sure, I could do a disk image back up and restore… if restoring to an identical hardware configuration, and if I had an image that worked properly in all respects. :-) On the bright side, I’m getting pretty good at reinstalling everything. :-)

My Toshiba computer got altitude sickness and trashed Microsoft Windows.

Friday, 27 October 2006 at 05:12 | In Technobabble | Leave a Comment
Seriously. I live and work at 8,400 feet above sea level. The view is great, here, but the air is kind of thin. The lower air density means that the same volume of air is capable of removing less heat from heat sources like the microprocessor in my computer. (Those things put out some serious heat, with an energy density similar to what an electric stove burner produces.) That means that the internal component temperatures rise higher than they would if I weren’t so high up in the mountains (or if I were in a pressurized aircraft cabin). This overheating was happening even at rather cool room temperatures (around 21 C or 70 F). This electronic fever does nasty things. It can cause some circuitry to malfunction. To prevent permanent damage, there is a thermal shutdown safety mechanism that kicked in many times before I figured out what the problem was. This sudden shutdown, without benefit of such niceties as finishing pending write operations can damage programs and data. This can be painful when the computer recovers, and tries to make sense out of what happened. It took a while to figure out what was going on, though, because the system blacked out and fainted while running Microsoft Windows XP Pro, but not while running Linux. I’m not sure if that is because Windows works the processor harder, or because it was trying too hard to conserve fan power on my notebook computer, even when running on AC power.

So, how did I figure out it was a thermal problem instead of viruses, spyware, software bugs, or yet another in this particular Toshiba computer’s long history of hardware failures? Actually, I didn’t, at least not all by myself. God told me. :-) So, I set the computer up on some of Rachel’s wooden blocks and move the computer farther from the wall for more air flow from the existing fans, and suddenly it didn’t glitch and faint on me so much. Before doing that, I couldn’t even get past the hardware scanning in an attempt to reinstall Microsoft Windows XP without the computer fainting, but after that, it worked without a glitch. Of course, the previous crashes had really messed things up on the hard disk to the point where I pretty much had to wipe it out and reinstall the operating systems and software and restore my important data from backups, but at least it worked, now.

For a little extra safety margin, I just replaced Rachel’s wooden blocks with a cooling pad designed for fever-prone notebook computers like mine (as well as to protect laps and furniture from overly-hot computers). There are several such things available commercially. The one I chose, a Targus Chill Hub, has two fairly quiet fans and 4 USB 2.0 ports in it. It was also reasonably inexpensive. So far, the computer is running cooler to the touch than when it was on blocks but without the 2 extra fans, and it has not glitched on me, no matter which operating system (Microsoft Windows or Linux) I boot into. Of course, it doesn’t seem as portable, this way, but at least it works, and should tide me over until my new desktop computer arrives. :-)

Thanks go to the Lord, who let me know how to get some more useful service out of this computer, serving Him. :-)

Computer Glitch! Whodunnit?

Sunday, 8 October 2006 at 04:24 | In Technobabble | Leave a Comment

As I wrote before, my experience with my Toshiba Satellite P35 has not been a pleasant one. It has spent more time away from me and in the possession of repair personnel than any other computer I have owned. After the last repair, it seems to work, mostly. But not quite right. Once I got it loaded up with all of the software I use regularly, I discovered that it hangs, crashes, or turns itself off periodically. The most frequent thing it does that is bad is to just hang, meaning that it no longer responds to keyboard or mouse input of any sort, not even Ctrl-Alt-Del, and the screen does not change. Earlier today, I noticed that it just turned itself off. Any open, unsaved work is lost. I’ve tried to figure out what makes it do that. So far, I have found that (1) it never misbehaves while running Linux, (2) it is always running Microsoft Windows XP when it crashes or freezes, (3) the most reliable ways to make it freeze are to attempt a backup of all of drive C: with Microsoft Windows backup or to try to scan all of drive C: for viruses using Norton Antivirus. However, backing up all of drive C: with Acronis TrueImage Home does not cause a crash, but does cause an error message about an unreadable sector, in spite of the fact that Toshiba just replaced the hard drive on this computer. An almost identical set of software runs fine on a Dell notebook computer without ever locking up or crashing. From that, I conclude:

  1. This could be a manifestation of creeping hard drive errors affecting the Windows Partition but not the Linux partition, even though Microsoft Windows is supposed to handle errors in NTFS partitions more gracefully.
  2. This could be a manifestation of other intermittent hardware problems that Linux silently recovers from but which crashes Microsoft Windows.
  3. Some software that I installed (intentionally or otherwise) that is different on the Toshiba than on the Dell may be causing the problem. There isn’t much that is different between the two systems. The most notable differences are the Anti-Virus programs (McAfee on the Dell and Norton AntiVirus on the Toshiba) and the vendor-unique programs and drivers provided by their respective manufacturers.
  4. I really would like a new Dell computer to run Windows, and an Apple computer to run Mac OS X 20.4 or better. And I’d like this one to start working again, or at least keep working reliably under Linux.
  5. I wish I could switch more fully to Linux… but I develop software that must run under Windows XP and rely on some specialized software that runs only under Windows. I dual-boot between Windows XP and Ubuntu Linux, now, but to really phase in more use of Linux without losing too much time rebooting, it would be good to have two systems running at the same time, one of which was always running Linux. Then I could easily do the “normal” stuff that Linux does well, like email, web surfing, writing documents, etc., at the same time as I developed software to run under Windows XP.

I could call Toshiba technical support again, but (1) my warranty has expired, and (2) the first thing they will probably ask me to do is to use the “recovery” disk to blast my system back to as-shipped state and see if the problem goes away. I have an aversion to doing that, of course, given how long it takes to reinstall all of the software and restore the data.

Newsletters, eMail, and spam war crossfire

Thursday, 21 September 2006 at 17:22 | In Journal, Technobabble | Leave a Comment

I like email. It is much faster, much cheaper, and more environmentally friendly than paper mail. Email follows me when I travel, without having to give people a new address. Email is useful for personal communications, newsletters, discussion lists, and some kinds of business. Unfortunately, the advantages of email have not escaped the notice of both legitimate and illegitimate marketers and scammers. Junk email is a serious problem that threatens legitimate uses of email by (1) flooding the system with junk, making it harder to find legitimate email, (2) seriously reducing the trust people have in email, and (3) restricting the flow of legitimate email as people try to stem the tide of electronic trash. Of the last 5,500 messages sent to me that made it past the first line of defense (IP address blacklists), about 80% were junk and about 20% were good mail. Of course, anti-spam measures affect email I send, too. From the last email newsletter that we sent out, 5% of the messages bounced back or were detained by overzealous anti-spam measures. About 3% bounced back due to closed or suspended email accounts, or for accounts that the mailbox was over its quota. Some unknown percentage was silently detained or deleted without being read. (This is probably no worse than the problem of some paper mail being discarded without being read, except that we spent less money sending it.)

So, what will is the solution? Continue the battle. I’ll keep using email. I’ll adapt my junk filtering techniques even as the spammers adapt theirs to try to get past filters, and I’ll adapt my email sending strategies to make sure that messages we send look as little like spam as possible and that they are easy to safelist. I’ll use digital signatures and encryption when appropriate to combat the erosion of trust. I still want to be approachable by people I haven’t met before on topics relating to the World English Bible and our mission work, so I’ll keep my public email addresses and web contact form active, but keep my low-spam email addresses more private. (The web contact form is spam-free except for an occasional Nigerian scam letter– something I could probably fix with some appropriate text on the contact page.)

I wrote on this topic some time ago, and most of the general ideas are the same, but some things have changed. I have switched from Eudora paid mode with its spam filter to Mozilla Thunderbird with its built-in spam filter. Recently, I discovered that many of the junk email messages that I was getting were specifically designed to defeat Thunderbird’s spam filter, so I started using POPFile again in conjunction with Thunderbird, and now my spam filtering accuracy is back up above 97% again.

Enough on the mechanics of getting newsletters out and getting to read the good email. Another challenge with email in general and newsletters in particular is knowing what to write. The audience is broad, but includes lots of busy people with limited time to read whatever we send. We try to keep our “official” newsletters down to two letter-sized pages, without resorting to tiny type sizes. We also try to include some pictures, as they communicate so much, so fast. From our perspective, there is so much going on in our ministry and our lives that this turns out to be hard. It would actually be easier to write a very long newsletter every time—one that most of our partners would not take time to read much of. We want to communicate effectively with our partners what we are up to and why, communicate vision for the ministry God has called us to, encourage people, stay steadfast in speaking and writing faith in Jesus Christ, be honest, seek to avoid inappropriate offense amonge a diverse readership, avoid saying too much about certain sensitive topics. It should be informative, fun, honest, discreet, appropriate, and honoring to God. It should encourage people to pray. It should be thankful. It should not be too long. If I really have more to say that is important, there are other venues, like this blog, one of our web sites, another newsletter, etc.

As if getting the content right isn’t enough, I try to use newsletter writing as an opportunity to learn new software. I have used Ventura Publisher (now an orphan product), Microsoft Word (perfectly usable, but not the best tool for the job), Microsoft Publisher (a good balance between simplicity and flexability), OpenOffice.org Writer (which can be used to create very nice newsletters at very low software cost, once you learn how) and (for our latest newsletter) Adobe InDesign CS2 (which has pretty much any feature you would want at a price you may not be able to afford) to write newsletters. These are for the “official” newsletters that go out in paper mail, posted on our web site, and emailed as PDF attachments. In between these official newsletters are email-only updates, which we normally compose in our email client (currently Thunderbird) and blog entries (like this one).

Mount Princeton in the morning with a rainbowI like to take pictures. I like to capture an impression of a part of the beauty that God created, even though it seems pale compared to the original. Evan likes to take pictures, too. (He took this one.) There was a double rainbow all around Mount Princeton, that morning. Sometimes I share pictures in email updates and this blog that have something to do with what we are up to. Sometimes I just share a picture because I think you might like it and thank the Lord for the beauty He has created. God is good!

Resurrection of a Toshiba computer

Sunday, 10 September 2006 at 04:54 | In Technobabble | Leave a Comment

Just in case you read my last posting about our Toshiba notebook computer and were curious about the outcome… I had to send it to the Toshiba repair depot. I got it back a little over a week later, and so far, it is working right. The hard drive was replaced, so I have to reinstall all of the software and restore the data from backups, which is tedious and time-consuming, but possible. From now on, I intend to make regular disk drive image backups as well as backing up the most important data, because it takes several days to reinstall all of the software that I usually use when done package by package. I’m still not happy with the lack of reliability of this Toshiba Satellite P35 computer, nor am I satisfied with their international warranty service in Port Moresby, but after about a year and a half, I think I finally have the computer I paid for. I hope I get some good use out of it, now.

Toshiba Computer Woes

Monday, 21 August 2006 at 20:54 | In Technobabble | Leave a Comment

I was very happy when I was given money to buy a new notebook computer for my Bible translation support work, over a year ago. I carefully researched options, and it came down to two choices: a Toshiba Satellite P35 or a very similar Dell notebook computer. They were about the same, but the Toshiba was a few dollars cheaper. I chose wrong.

Shortly after I got the computer delivered all the way to me in Papua New Guinea, this Toshiba computer developed display problems. The display started to flicker in a way that was most annoying. I sent it off to the nearest warranty repair center in Port Moresby. After about a month, I got it back. Just as I was getting all my programs and data reloaded, the display went black. There was stuff on the display alright, but you couldn’t really see it without a really intense light on the display at just the right angle, because the integrated backlight failed.

Back to Port Moresby, it went. After about 2 months, it came back. I got all of my programs and data reloaded on it, and started working again. After using it for a while, it started randomly rebooting, so I sent it back again. After another 2-3 months, it came back. It worked for about 2 months, then suddenly died and would not boot.

So, I sent it back to Port Moresby again, for repair under warranty. That was in January, 2006, just before the warranty expired. When I was going to leave the country in July, the repair center had still not repaired the computer. I had them return it to me so that I could take it with me to the USA to a competent repair center. With some begging, I was able to get Toshiba to honor their warranty, and they sent it back to me in about 2 weeks. That was a big improvement over Papua New Guinean repair times! Enclosed with the computer was an offer to extend the warranty at a discount within 30 days of the service event. I tried to do that, and they told me that they would not, because the warranty had expired.

Now, this same Toshiba computer has developed a nasty habit of randomly resetting itself or invoking the dreaded Microsoft Windows blue screen of death with a MACHINE_CHECK_EXCEPTION. This indicates a serious hardware error, not a software problem. Now Toshiba does warrant their repairs to be good for 30 days, so there is hope. All they want me to do is reinitialize the system to as-shipped condition and see if the problem is still there. Then, they’ll consider taking it back for repair. Hopefully, I’ll be able to keep the system running long enough to do a complete system backup before wiping out the disk image that represents 22 days of work updating the operating system, installing compilers, Bible study software, specialized Bible publishing software, my source code, databases, email, etc.

In the mean time, I’m typing this on the “temporary” inexpensive Dell Inspiron B120 that I bought to tide me over until the faster, “nicer” notebook computer was repaired. This beautiful little machine has never failed me. May God bless it and may God bless Dell.

Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.