The Last Lecture

April 30th, 2008

I recently watched ABC Primetime Live on 9 April 2008 about Randy Pausch, a Carnegie Mellon University computer science professor who has terminal pancreatic cancer. I was struck by his candor, his future thinking and his high spirits.

A couple of days later I tried to purchase his book, “The Last Lecture” at Amazon, but they were already sold out and would not get a new shipment for several weeks. Other online vendors were in similar straights. As it turns out, we found a copy of the book at the local university book store.

More to come…

Remote Access

April 28th, 2008

I have been interested in encrypting Internet traffic when acceessing the Internet from open WIFI networks. My investigations identified at least two classes of solutions: remote desktops and virtual private networks (VPN).

Remote Desktops
Although I did not follow through, it looked like a remote desktop server could be located on a home PC. Such a remote desktop could allow connecting to the home remote desktop in a secure fashion. The secure connection to the server would encrypt the traffic that is broadcast over the WIFI.

Logmein provides a service to connect to their Internet services and login to the home PC. This essential extends the desktop to the remote PC in a secure fashion, allowing you to browse the Internet or run any desired application on the home server. Logmein provides several securiy mechanisms – user names and passwords and a challenge code that is text messaged to a cell phone. The paid variation allows a few additional features, particularly easy file transfers, but I use a free Internet disk space to transfer files.

Windows provides a built-in VPN connection that can be used to encrypt the remote Internet traffi, route it to the home server where it is sent to the Internet via connectin sharing.

Text Commands for Scrolling and Zooming

April 26th, 2008

Images like road maps and weather radar do not generally translate well to the low resolution of a cell phone display. In some initial observations, road maps and screen shots could not be viewed very well on my cell. Something that I will work on is a means to scroll through an image and resize the image and recenter the image using textual commands. My thought is to use a context like

W 456 E

where the numbers identify an area to center upon and zoom, the letters indicate directions to scroll the image and “U” would zoom out. I am not sure ultimately how well this will work out.

When using a typical cell phone, it is not obvious how to scroll and zoom through an image. The following method provides a starting place about where to begin using character commands to zoom and to scroll the image.

Given that a large image is to be displayed, say an animated weather map. Let us assume that the original map is 512×512. Now, my cell phone has a screen resolution of 176×220.

So, the weather image must be decimated by a factor of 4 in each direction. Using the following mnemonic:


We will let the best resolution to be displayed on the cell to be 1:1 with the original resolution. Now, we could use interpolation to zoom in further, but for now, let’s not consider that.

You can zoom by pressing the letter in the sector that you are interested. Now, the thought is that sector A would actually cover the upper left 1/2. Likewise, sector B would cover upper middle half of the image. And, sector F would refer to middle left half of the image.

Now an image file such as an animated gif is actually a set of sequencing images. Animated images are very useful when looking at weather maps because they allow you to see the trends. And, sector G would cover the bottom left half of the image.

Everything is based off the original image. The zoom level is maintained as the number of zooms performed. 0 takes you back to the previous zoom level. Once you zoom down to where you want to be, then you can scroll around in half step increments using the direction letters above – left, right, up down, and diagonal.

Same goes for a road map that shows a route from point A to point B. I forgot my GPS. Now, there are several SMS portals that provide driving directions via text messages. Although they are quite useful, I am a visual learner. Seeing a map really helps me to get a better feel for the road.

SMS Portals

April 25th, 2008

Soon after I started working the cellular message-based browser effort I learned that there were several text messaging portals that provided reasonable search capabilities, weather and news reporting, driving directions, language translation, flight status, dictionary, product prices, local business, and even a scientific calculator. That kind of lowered my motivation and slowed my pace.

Here are some portals and miscellaneous commands that have been helpful. I sent this text via an email to my cell as a picture message, saved and locked the message so that I could reference it when needed. The links provide additional help. Some portals and commands work better than others. I have had problems with Amazon and Gas Buddy, and uses some cryptic abbreviations if you are not familiar with the city.

Google 466453
w-eather zip
italian zip
m-ovie name zip
d-efine term
t-ranslate hello in french
f-roogle product – price
zip – city
addr1 to addr2
g search
g orlando fl zip – city info
conway rd orlando fl – zip
407 – area code city
sqrt 64
wn 1234
fl-Airtran aa-American hp-AmericaWest tz-ATA
co-Continental dl-Delta b6-JetBlue nw-Northwest
pn-PanAm wn-Southwest ua-United us-USAir

Amazon 262966
product – price
#d-etails for item
# buy item
h-elp 87232:
Orl 44636:
news orlando
w-eather zip
wifi zip
tv friends
price product
joke 42278:
zip – weather
sea zip – coastal weather
air mco – airport delays

411SMS 86411:
service/business zip
w-eather zip
addr to addr
? question
m-ovie name zip
wifi zip
bible genesis 1 1 3
p product – price
e2s translate

Yahoo 92466:

Cellular Message-Based Browsing 2

April 25th, 2008

In a nutshell, the data flow for my current cellular text-based browser is as follows:
[Internet web page] <-> [Lynx] <-> [AutoIt] <-> [messaging] <-> [cell phone]

The cellular text browser requires a portal server to be present that has access to the Internet. This portal does not have to be open to the Internet in anyway above and beyond its access to instant messaging or email applications.

I used Lynx a long, long time ago with a 2400 baud modem connected to a DEC computer so that I could explore the Internet. Text based browsers worked just fine then.

Even now, Lynx still does a good job. Of course you cannot see images, but in most cases this turns out not to be major problem. Lynx can be setup to number each link and submitting a particular number takes you to that link. It handles drop-downs and allows forms to be filled in okay too. Keys can be specified to handle commands are used to go back/forward and to page up/down. And importantly, it can be setup for any screen size.

And, now there is a new use for Lynx. Basically, in this application, the cell phone acts as an extension to the display (albeit small) and keyboard to run and view Lynx. What I have done is to use the DOS version of Lynx. Basically, the copy mechanism of a DOS window is used to capture a screen of text rendered by Lynx. This is then pasted into the AIM application or a text/picture message via an email application like Pine. User commands from the cell phone are then copied from AIM or Pine and pasted into the Lynx command line.

Some compression is performed to eliminate superfluous white space. Certain web sites can be used to reformat pages to fit better on small screens. They include Yahoo OneSearch, Compressr and Skweezer.

Other browser choices than Lynx might be Opera or cURL.

Information, binaries and source for the tools and applications that I have used are as follows:
Lynx is available at –
Pine is available at –
AIM is available at –
AutoIt is available at –

In addition, xxx has been used to process images from the command line. It provides an easy and effective mechanism to resize animated gifs and other images. I used it to resize radar weather images in animated gif formats.

Weather images can be pushed at certain times of the day or pulled via special commands. Images are returned as picture messages and are limited by the resolution of the cell phone screen.

Pine provides a means to automate its functions with using command sequences in the command line.
It also has export and import functions. Export saves retreived email to an external file that can be read by another application. Import retreives emails to be sent that were written by another application.

The primary principle was to minimize the amount of programming that is needd to interface the various functions. I thought that interfacing at the application level using common Windows functions like copy/paste might be quicker to prototype.

Probably what I might do eventually is a picture message to send a visual image of what the web site looks like with its accompanying text as the Lynx browsed content.

So far, I have used AIM as the messaging application. Instant messaging is included along with text and picture messaging on my cell plan.

There are a variety of mobile enabled web sites that can be browsed somewhat easier than full resolution web pages. I will list a few of these in no particular order that I found interesting.

In addition, there are a variety of text-based messaging systems that take texted inputs as commands and return a variety of information. I have listed a few of these text-based systems in no particular order that I found interesting.

AutoIt is an interesting language that combines a BASIC-like syntax with a large function library. It allows a programmer to automate the workings and interactions of almost any group of Windows-based applications.I originally undertook this effort to learn a little more about AutoIt and I have only touched its surface. I also want to look at greasemonkey, which allows the presentation of a given web site to be you to rearranged.

Of course, there are APIs for AIM, as well as sending and receiving text messages. Such APIs allow direct interfaces between the applications and the control process without the need to interface at the user level using copy/paste and keystrokes insertion/recording. In addition, if I wanted to make the effort, a Lynx API could be defined and used also. Ultimately, that is the way to go since it would allow much easier modification.