April 24, 2000
By Karen Kenworthy
IN THIS ISSUE
Whew! It was a busy week here at the secluded Power Tools workshop. I put finishing touches on a client's e-commerce Web site, enabling real-time credit card purchases. My buddy Bob has an IBM mini-computer, an AS/400, that isn't on speaking terms with his Windows NT-based network. We're slowly coaxing it out of its shell. Young Jeff came for his final tutoring session of the school year. Lovely Monica, who graduates from high school next month, helped me get my files in order. I did a bit of Y2K cleanup for my brother's company. Even my detective friend came up with a new project.
Oh, and I'm in the middle of upgrading my Internet connection to something they call "dual channel ISDN." Out where I live, DSL is just a three-letter acronym. You can buy a modem cable, but not a cable modem. I guess I'm lucky to have ISDN available. The next step up around here is a something called T1. I think the "T" stands for "Ton of money." :(
I'll bet you were busy too. But I'm thankful many of you took the time to drop me a note. Most of my mail was about the newest addition to the Power Tool family, the "URL Discombobulator." As you might remember, it converts domain names such as www.microsoft.com into numeric IP addresses so popular with our binary friends. And it can reverse the process, converting IP addresses such as 18.104.22.168 into familiar domain names. It can also convert a normal Web address, such as https://www.karenware.com/, into a perfectly valid, but obfuscatory(*), URL such as http://%77%77%77%2E%6B%61%72%65%6E%77%61%72%65%2E%63%6F%6D/.
This last feature prompted a note from Mark S. Baron: "Nice little program. Could you possibly point me to a site that explains the % type notation in a URL or if you have the time -- drop me a note and explain it yourself."
Ask any one who knows me. I always have time to explain some technical point. So sit back, Mark, and let me tell you a story ...
As we've seen many times, a computer understands nothing but numbers. Any appearance to the contrary is purely an illusion. With your computer, it's numbers, numbers, and more numbers. And not just any numbers will do. Your computer only understands numbers consisting entirely of the digits 1 and 0 - so-called "binary" numbers.
We not only like our numbers to be more varied, we also appreciate an occasionally letter, punctuation mark, even a word or two. To bridge this gap, humans and computers got together and reached an agreement. Called ASCII (American Standard Code for Information Interchange), it forms the basis for most human-computer communication even today.
Under the agreement, each letter of the English alphabet (remember, the "A" in ASCII stands for American) was assigned a number. Digits (0 through 9), common punctuation marks (such as ":", ".", and "-") were assigned numbers too. Other numbers were given to frequently used symbols such as "$", "*", and "@".
Hence forth, humans would use the letters, digits, punctuation marks and symbols. Computers would use their numeric equivalents. The Rosetta Stone of this arrangement is known as the ASCII Code Table, a list of all defined marks, and their numbers. In this table, for example, we find the letter "A" is known by computers as the binary number 0100 0001. Computers use the binary number 0011 1111 where we use a question mark.
Computer programmers, as well all know, are part human, part machine. As a result, they equally comfortable with the graphical, and the numeric, representations found in the ASCII table. Well almost. Most programmers have memorized a surprisingly large portion of the ASCII table. But rather than memorizing the binary forms of the numbers, most have memorized the short "hexadecimal" number forms.
A hexadecimal number is a number written using 16 different digits. The binary system uses two digits, 0 and 1. The decimal system most of use every day makes use of ten digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. Numbers a bit larger than 9 require the use of two decimal digits (for example, 10). Numbers larger than 99 require at least three digits apiece.
But the hexadecimal system uses a full 16 digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F. If those last five digits look a lot like letters of the alphabet, don't be confused. Those symbols do double-duty. Most of their lives are spent forming words and acronyms. But in the right context, they're hexadecimal digits.
Hexadecimal numbers rarely crop up in our daily lives. But they do appear often within computer programs. That's not unusual, when you think about it. After all, computer programs are where computers, and humans, come face to face.
They are also where a bit of text like CAFE can be ambiguous. Are those four letters a word, meaning a place to eat? Or are they a four-digit hexadecimal number, the equivalent of the decimal number 51,966? The answer depends on the computer programming language being used.
In the Visual Basic programming language, used to write all my Power Tools, hexadecimal numbers must be preceded by an ampersand ("&"), and the letter "H". So, in VB-speak, the hexadecimal number CAFE must be written as &HCAFE. In the C programming language, used to write much of Windows itself, hexadecimal numbers must be preceded by the digit 0, and the letter "x". So in C, our example becomes 0xCAFE (or, since lower-case letters are acceptable too, 0xcafe).
The folks who decided how places on the World Wide Web would be named disallowed certain characters. For example a URL can't contain a space. So, a Web address such as http://www.winmag.com/bad page.htm isn't permitted.
But a URL may contain a percent sign ("%"). When it does, the two characters that follow are interpreted as hexadecimal digits. Those digits are then replaced by their corresponding character in the ASCII Code table.
This trick allows otherwise illegal characters to appear within a URL. For example, the hexadecimal number representing a space character is 20. So, the URL mentioned above could be rewritten as https://www.karenware.com/bad%20page. The result is a perfectly legal (if non-existent) URL.
The URL Discombobulator can convert URLs to hexadecimal, allowing you to amaze your friends and confound your enemies. And the latest version, 1.1, adds some new sneaky ways to conceal a URL. As always, the program is free. Download your copy at https://www.karenware.com/powertools/ptlookup. And those of you who've memorized the ASCII Code table may want to download the program's Visual Basic source code. It's free too, and available at the same location: http://%77%77%77%2E%6B%61%72%65%6E%77%61%72%65%2E%63%6F%6D/powertools/ptlookup.asp.
But whatever you do this week, don't work too hard. Take some time to enjoy the miraculous life we've each been given. I sure plan to. And as you travel life's highway this week, if you see me, don't forget to wave and say "Hi." I'll be looking for you.
(*) I bought a dictionary.