Wednesday, December 31, 2008

Final Blog for 2008 and While Still in my 30's

Happy New Year everyone! This is the final blog entry for 2008, and the last blog entry that I will be able to write while still 30-something. 13 hours from now I will hit the big 4-0! I still cannot believe that. My mind is still a teenager, my body is about 65, so I guess 40 is just an average :-) I suspect that the hangover tomorrow morning will take me just a little longer to recover from than it did last year.

We have been busy in the Osborne house this last couple of weeks, so I will summarize here what we have been up to, starting with the most recent. For those of you that have been to our wonderful home, you know we are still suffering from 85-year-old-lady-itis. That is the need to make our home that was owned by an old lady into a home for a totally cool and hip family. We have been making some nice progress lately, with much more to come over the next 2 weeks.

The biggest thing that has been stuck in our crawl was this horrible abomination of beige and stained steel that was our stove vent. It was a HUGE hunk of metal, with nasty grease and God knows what else permanently stuck to it. I cannot even describe this beast, but here is a picture of it:


The picture does not even do it justice. It was just horrible, and I am sure it was almost as bad when it was new. It had to go. So we came up with a plan. We would move the cabinet above the refrigerator left 2 feet, move the cabinet that was there to go above the stove, and move the existing microwave cabinet down 6 inches. I would also have to move 1 electrical outlet and install one new one. Maybe a picture will help:



Missy was horrified as I started demolishing the kitchen, but in a couple of hours we had made a ton of progress, and she was able to relax.

Missy Horrified


Me telling Missy "I've Never Done This Before"


The "Vent Monster" is Gone!


But we made good and steady progress.

Measure 10 Times, Cut Once


Almost Done


And just like that, it was done! To my complete and total amazement, all of the holes and bolts lined up perfectly on the first attempt. The new microwave itself is a Samsung that we bought with our Christmas and birthday money (Thanks Mom, Dad and Grandma!). Not an expensive one, but a HUGE improvement over what we had before. Eventually all of the appliances will be brushed metal and black, but for now the beast is gone!

We also bought paint to finish the upstairs. I start my new job with Quest Software on January 12, and am officially on severance now from Workflow, so we plan to get some real work done between now and then. We are going to paint the ceilings and all remaining walls upstairs in the family room, dining room, kitchen and bathroom. I will post before and after pictures as we go.

In other news... We all had a wonderful Christmas. I found out just before Christmas that I was going to be offered the job with Quest, which took a huge weight off my shoulders. Santa Claus was very nice to the girls this year and brought Delaney and Halle each an Acer One notebook computer they wanted, and got Bug a DVD player and MP3 player that she never puts down!

Delaney Could Not Stop Jumping Up and Down!


Bug Loves Her DVD and MP3 Player


Halle Cried Tears of Joy When She Opened Her Laptop!


The girls of course also got many other great presents from Santa Claus and their grandparents. So everyone got what they wanted, the girls with their laptops and other electronics, Missy got a new digital camera (though we had to return it, but will get another one), and I got a good job! Yes, life in the House of Osborne is very good, even though the King will turn 40 tomorrow! ICK! :-)

Friday, December 19, 2008

Enough Already! Just Kidding

We had the worst snow storm of the season last night, and it dumped about 16" of fresh snow on our lovely little village. It was rare storm, heavy snow with lightning and thunder. It hit about 2AM, and did not stop until about 10AM. I was up, so I watched the storm roll in, and it was quite impressive. I could not even see my neighbors house, which is only about 80 feet from my window. It even prompted us to go out this morning and buy a snow blower, as I have just barely recovered from shoveling from the storm last week!

So here are some pictures and videos for my redneck, err I mean Southern, family members. If you need just a little help getting in the Christmas spirit, maybe these will help. Or you can at least be thankful that you don't live in Wisconsin :-)

Yes, It IS as COLD as it looks!


Thunder


Thunder


Thunder and Bella


Me and the New Snow Blower. It's Small but Mighty!


My Truck is Under There... Somewhere


Yes, that is a dog driving the plow!


A Drive Through Cross Plains


Missy Playing with Bella and Thunder

The Timex Sinclair 1000

When I talk about growing up with computers, and my early programming days of my childhood, I usually recall fond memories of the Commodore VIC-20 and Commodore 64. But the truth is, my first computer was the Timex Sinclair 1000.

The one pictured here has the 16KB RAM expansion module. I had nowhere near the money to buy that at 12 years old, so the one I had contained the standard 2KB of RAM, and the BASIC programming language built into ROM. So I had basically 2KB to work with.

It also had a membrane keyboard and common BASIC programming language commands like GOTO and GOSUB could be entered by just pressing one key. These computers were TINY, much smaller than anything out today, and weighed just 12 ounces. They had a Zilog Z80 CPU that ran at 3.25Mhz, and video output using an RCA video connector to hook up to a TV where it displayed text only at 22x32 resolution. There were no disc drives available for it, so you had to store the programs that you wrote or bought on cassette tapes using a standard tape player, or in my case, a ghetto blaster.

This worked more or less, as long as you turned the treble way up, and the bass way down. You did tend to lose a lot of work, but it was better than nothing. The Timex Sinclair 1000 is the North American version of the Sinclair ZX-81, from British based Sinclair Research Ltd. They are nearly identical, except for the name on the front, and minor motherboard layout differences. The first Sinclair computer was the ZX-80, released in 1980 for $200.00. It was still very popular when they came out with the improved ZX-81 in 1981. By mid-1982, Timex was selling the ZX-81, renaming it as the 'Timex Sinclair 1000'.

The motherboard of the Sinclair 1000 had only 4 Integrated Circuit chips, including the Z80 CPU. It would have been easy for even a kid to build from a kit, but Timex never offered the Sinclair 1000 in kit form, though it's predecessor, the ZX80, could be bought in kit form for a $20 savings.

The rest of this entry is from BYTE magazine, the January 1983 issue.

The Timex/Sinclair 1000


Billy Garrett
POB 18806
Greenboro, NC 27419-8806

Many BYTE readers own a personal computer, just as I do. And like many readers, I justify the cost of the computer by using it for word processing, mathematical programs, job-related applications, and even games. But if you're as addicted to computers as I am, you will eventually do something that you may never be able to explain - buy another one.

Sure, I could easily explain such a purchase if my old computer was too slow or unable to do the things that the new one could, but that's not the case at all. That excuse is reserved for some 16- or 32-bit processor that isn't on the market yet. The fact is I suddenly found myself buying a Timex/Sinclair 1000. And what's worse, I already own a Sinclair ZX80! Clearly, this was going to take some creative explaining.

At first, I thought I could convince people that I bought it for experimentation, but that argument is a little shaky. I concluded that the only way to justify the purchase was to write a review of it.

As most of you know, the Timex/Sinclair 1000 is essentially the same as the Sinclair ZX81. What you might not know is that all along Timex has been building the ZX81 for Sinclair. Under either name, the Sinclair people seem to have outdone themselves in designing it. It is similar to the older ZX80, and ZXSO users can upgrade their computers to the full capabilities of a T/S 1000.

In this review, I will first give you a general idea of what the unit is like. I'll then take you on a trip through the inner workings of the hardware. Finally, I'll try to compare the BASIC interpreter against some known standards. When I'm finished, I hope you'll see why the T/S 1000 fascinated me, and why I bought one.

General Characteristics
The T/S 1000 comes completely assembled and tested for $99.95. At one time, if you wanted to save $20 and spend a few hours assembling a computer, you could have ordered the Sinclair ZX81 kit. But Sinclair has now stopped selling the ZX81 and has allowed Timex an exclusive market in the United States. You can expect the new Sinclair Spectrum color computer to be handled in the same way. Sinclair will sell them exclusively for a while, and Timex will then take over the marketing.

The basic T/S 1000 package consists of the unit shown in photo 1 plus patch cords for a recorder, a connection wire and switch box for your TV, a manual, and a transformer. An optional 16K-byte RAM (random-access read/write memory) pack is also shown in photo 1.

The computer is easy to set up and use. Clear instructions show you what to do, and practically anyone should be able to set the computer up quickly. The accompanying manual is well written. Although it is not too simplistic, people with no knowledge of computers will be able to read it.

The T/S 1000 must of course be hooked up to a television set to be useful. The display, made up of black characters on a white background, has 24 lines with 32 characters per line. The two bottom lines, however, are used by the BASIC interpreter. Therefore, you really have only 22 lines. Within the character set are several graphics characters that are useful for games and charts, The cursor on the screen acts as a prompt and appears ar a reverse video K, L, F, G, or S, which shows how the computer is going to interpret the next key entered. It will be interpreted as either a keyword, a letter (or number or symbol), a function, a graphics symbol, or a letter to correct a syntax error (if you make one, that is!).

Photo 1: The Timex/Sinclair 1000 computer with the optional 16K-byte RAM pack, which attaches to a connector on the right rear of the computer. The basic unit powers the RAM pack. (Photo courtesy of Timex Computer Corporation.)

The cassette interface is simple and reliable. You can name programs when you save them, and have the computer search through the tape and find a specific one, or just load the next one found.

The most restricting thing about the computer is the keyboard. I am used to typing, and it is impossible to type on a keyboard as small as this one. Also, each key can signify up to four things (a letter, a BASIC keyword, a function, or a graphics symbol). Although the keys are well marked, it is hard to remember which key does what. Some of the keywords, like Delet'e and Edit, are in awkward places. The keys themselves provide almost no tactile feedback and are closely spaced; you constantly have to look at the screen to see if you have pressed the right key.

At A Glance

Name
Timex/Sinclair 1000

Manufacturer
Timex Computer Corporation
POB 2655
Waterbury, CT 06725
(203) 574-3331

Price
$99.95

Dimensions
6 5/8- inches wide by 7 inches long by 1 1/2-inches high (16.8 by 17.7 by 3.9 cm)

Processor
Z80A, 8-bit, 3.25-MHz clock frequency

Memory
2K-byte RAM standard; 16K-byte RAM optional ($49.95); 8K-byte ROM included

Mass Storage
Cassette I/O, only program storage and loading; no BASIC controlled I/O

Display Used
Standard television set (RF modulator included); 32 black-and-white characters per line, 24 lines; the user cannot use the bottom two lines, which are reserved for the BASIC interpreter's use

Other Features
Membrane keyboard; built-in modulator (for TV); includes ail cables and transformer

Documentation
l54 pages, spiral-bound manual

Software Included
BASIC in ROM

Software Options
Various application programs avaitable on cassette

Hardware Options
16K-byte RAM ($49.95);
electrostatic printer ($99.95);
telephone modem ($99.95)

Audience
Students, businesspeople, or anyone else interested in learning about computers for a very low cost
Also, although it's hard to use the keyboard as you would a typewriter, it is not very easy to use as a calculator either. Most calculators have a Function key that accesses a function written above certain keys. With a calculator, you just press the Function key and then the key you want. The Shift key on the T/S 1000 serves the same purpose, but you must hold it down while you press the key you want. This means you have to use two hands. It would be easier if the Shift key could be used as on a calculator.

T/S 1000 BASIC is fairly easy to use. BASIC keywords can be entered with just one keystroke, but that's the only way these keywords can be entered. Line numbers from 1 to 9999 can be used. Multiple statements per line are not allowed. Error codes and program lines start on the bottom two lines of the display and work their way up the screen. Because the error codes are displayed as numbers, you will have to look them up in the manual to see which error occurred.

A nice feature is that the names of most variables can be any length. LONGNAME and LONGNAME2 are different and distinct variables. The T/S 1000's string- handling capabilities are nonstandard, as will be explained later. All things considered though, T/S 1000 BASIC is powerful.

Finally, the T/S 1000 has a 90-day warranty, which should help most users if they find out that their computer is actually a lemon. Timex also offers a one-year extended warranty for $12. This offer is good only for people whose warranty hasn't run out, or those who have just had their unit in for repair. Timex even provides a computer club, open to all T/S 1000 owners, that will keep them up to date on any new developments, hardware and software products, and special offers. One last thing, because the T/S 1000 is being marketed everywhere, a good shopper can probably find it for a bit less than $99.95. I haven't even looked hard and I've seen it for $87.

The Insides: The Less, The Better
The T/S 1000 uses state-of-the-art circuitry. Only four ICs (integrated circuit chips) are inside the small enclosure, as is shown in photo 2. These four ICs, along with an IC voltage regulator; two transistors; several diodes, resistors, and capacitors; a video modulator; and the membrane keyboard, make up the entire unit. One big change between the ZX80 and the T/S 1000 (ZX81) is a custom 40-pin IC made by Ferranti (a large British semiconductor manufacturer), which replaces 18 ICs that were in the ZX80 and adds additional logic circuitry. This chip is called the SCL (Sinclair Computer Logic). The new logic circuitry inside the SCL allows the T/S 1000 to display a picture continuously on the TV, even when the computer is executing a program. This is a big improvement over the older ZX80 that couldn't display a picture while executing a program; the screen would go blank every time a program was run or any time you pressed a key.

Photo 2: The small circuit board inside the Timex/Sinclair 1000. Note that in this photo some of the chips have been put in backward so that you could read what's on top. The silver plate on the bottom left side is the heat sink. The connector in the right rear is for expansion. The three jacks on the left side are for power, tape in, and tape out. The two small connectors that are part of the right front of the board are where the keyboard is connected. The other parts are clearly labeled. (Photo courtesy of Timex Computer Corporation.)

The Microace company sells a modification for the ZX80 that allows a ZX80 owner to have the equivalent of a T/S 1000. Unfortunately, although the additional logic board is small and contains only seven ICs, the board won't fit inside the ZX80's case. But if you really want the continuous display, the upgrade is only $29.95 from Microace (see table 1). It works fairly well, but the board is not made by Sinclair, and I had problems with it. Microace was prompt in responding to my request for help, but its response was that I must have assembled something wrong or that something wasn't working properly. The latter turned out to be the case. After I replaced a 74LS00 chip, the modification board worked fine.

The basic T/S 1000 unit comes with 2K bytes of static RAM (random-access read/write memory). This is the only difference between it and the Sinclair ZX81; the ZX81 had only 1K bytes. In either case, this is hardly enough to do any serious programming because the display shares this RAM with the program. A program that fills the TV screen will quickly run out of display room when the program is run. The BASIC interpreter uses 124 bytes of the RAM for its own internal processing, and the display can occupy a maximum of 727 bytes of memory. That leaves 173 bytes for a program in the ZX81 and 1197 bytes in the T/S 1000. Of course, because the display is not hard-mapped to one location in memory, it occupies only as much memory as it really requires.

In addition to the RAM, there is an 8K-byte ROM (read-only memory) chip in which the character generator for the display and the BASIC interpreter reside. The character generator occupies about 512 bytes of the ROM; the rest is used for the BASIC interpreter and the I/O (input/output) procedures.

The central processing unit not only has to execute the BASIC interpreter, but also must handle the TV display. This is accomplished through a clever arrangement. After each instruction is fetched from memory and executed, the display circuitry accesses the ROM and loads the bits
Information on the flicker-free board for the Sinclair ZX80:

Microace
1348 East Edinger
Santa Ana, CA 92705
(714) 547-2526

Monthly newsletter:
Syntax
The Harvard Group
RR 2, Box 457
Harvard, MA 01451
(617) 456-3661

Bimonthly magazine:
SYNC (Published by Creative Computing)
39 East Hanover Ave.
Morris Plains, NJ 07950
(201) 540-0445

Schematics, etc.:
Heuristics
25 Shute Path
Newton, MA 02159

Table 1: The addresses of some companies that might be of interest to owners of the Timex/Sinclair 1000 or the Sinclair ZX81.
of the character to be displayed on the screen. The bits are then serialized and sent to the TV with that custom-made 40-pin logic chip. The processor must coordinate this activity, which requires a lot of its time. Because of this, the T/S 1000 offers two modes of operation available to the user: SLOW and FAST. When the unit is turned on or when a NEW command is executed, the display enters the SLOW mode. This means that the display is on continuously, even during the execution of a program. If you do not need to have the display on all the time, you can use the FAST mode. In this mode, the display is on only when a program has finished running or when the unit is awaiting input. The manual states that the difference in execution speed of the two modes is a factor of about four, but in every test that I have run the difference is almost a factor of six. I haven't run any benchmark programs, but even in the FAST mode this is about the slowest BASIC interpreter I have ever used.

The design of the circuit board is interesting. The current revision has provisions for different types of RAM chips to be plugged into the board. The ZX81s came with two 2114 chips, for a total of 1K bytes. The T/S 1000 uses a single 2K-byte RAM chip. When you need more memory, you can buy the 16K-byte RAM pack for $49.95.

One of the most exciting things about the T/S 1000 circuit is that the ROM socket was designed so that larger-capacity ROM chips could be plugged in. If you are familiar with the standard ROM pin arrangements, you know that with a 24-pin package the maximum size of a standard, nonmultiplexed, byte-wide ROM chip is 8K bytes. Well, Sinclair has already wired the board for a 28-pin package, which would allow a 16K-byte ROM chip. Although Sinclair has not commented on the possibility of a 16K-byte ROM for the T/S 1000 or its successor, you can be sure that someone is thinking about it. A 16K-byte ROM would increase the capabilities of the T/S 1000 greatly, but it may be a while before we hear anything about that possibility.

Unlike the keyboard in the ZX80, the T/S 1000 keyboard is not an integral part of the main circuit board. It thus can be easily replaced, and Sinclair could design a more conventional "full-travel" keyboard and offer it as a replacement. I, for one, would like a better keyboard; and with more than 200,000 T/S 1000s and ZX81s in existence, Sinclair stands to make lots of money on any good accessories. Current plans, however, include only a printer and a modem.

T/S 1000 BASIC
The new 8K-byte BASIC included in the T/S 1000 is remarkably powerful for being just 7.5K bytes long (remember that the character generator occupies 512 bytes of ROM). Tables 2 through 5 list all the available commands, while table 6 includes some commands that are common for BASIC but not implemented in this version.

Function
Type of Operand (x)
Result
ABS number Absolute magnitude
ACS number
(-1 <= x <= 1)
Arc cosine in radians
AND binary operation
AND
A AND B
= A (if B<>0)
= 0 (if B = 0)
ASN number
(-1 <= x <= 1)
Arc sine in radians
ATN number Arc tangent in radians
CHR$ number (0 to 255) The character associated with a given code
CODE string The code of the first character in string (or 0 if x is the empty string)
COS number (in radians) Cosine
EXP number Exponential function (ex)
INKEY$ none Scans the keyboard once and returns the character if a key is pressed or returns the empty string if no key is pressed
INT number Integer part (always rounds down)
LEN string Length of string
LN number (x >= 0) Natural logarithm
NOT number NOT x
=0 (if x <> 0)
=1 (if x=0)
OR binary operation A OR B
=1 (if B<>0)
=A (if B=0)
PEEK number
(0 <= x <= 65535)
The value of the byte in memory whose address is x
PI none 3.14159265
RND none The next number in a pseudorandom sequence of 65,535 numbers
SGN number Sign of the number ( - 1, 0, 1)
SIN number (in radians) Sine
SQR number (x => 0) Square root of x
STR$ number The number x returned as a string
TAN number (in radians) Tangent
USR number
(0 <= x <= 65535)
Calls the machine-code subroutine whose start address is x; on return, the result is the contents of the BC register pair
VAL string Evaluates the string as a numerical expression
"-" number Negation
Table 2: Some of the functions found in TlS 1000 BASIC.


Symbol
Operation
+
addition
-
subtraction
*
multiplication
/
division
**
raising to a power
=
equals
>
greater than
<
less than
<=
less than or equal
>=
greater than or equal
<>
not equal
Table 3: The binary operations
included in TS/1000 BASIC.


The manual does a good job explaining the language, and it is interesting to note how this manual was developed. First, there was a British version for the Sinclair ZX81, which naturally tended to use British colloquial expressions. That manual was much more interesting than the subsequent American Sinclair or Timex versions, although all are equally informative. For example, at one point the author of the British version refers to photo 2 and writes, "As you can see, everything has a three letter abbreviation (TLA)." I thought this was a rather amusing comment, and most of the examples are humorous also. This is a good way of making the novice feel a little more relaxed while he or she is trying to learn what all those darn abbreviations are for. Unfortunately, the humor was carefully excised from the American manuals, even though the manuals are exactly the same in content and number of examples. Any one of these manuals, however, is an excellent introduction to BASIC. The many examples and exercises should make it easy and fun to learn.

The manual is mostly devoted to BASIC, but it also covers some rather intricate details of the BASIC interpreter. One interesting point about the manual is that it not only tells you which bytes in memory are used, but also what they are used for. This documentation is helpful if you are going to write any machine-language routines. This is a useful piece of information for them to include, something that many other companies can't or won't do because of their agreements with the authors of their BASIC interpreter.

T/S 1000 BASIC does differ substantially from the Microsoft variety that many of us are acquainted with. This BASIC was apparently written by a group of Cambridge (England) mathematicians. The biggest improvement that this 8K-byte ROM has over the 4K-byte ROM that was standard in the ZX80 is that this version handles floating-point numbers. Also included are the usual functions, such as SIN, COS, and LN, that are standard with most BASICs. This version, however, suffers from one really bad problem - string irregularities.

Most people who have used BASIC are accustomed to string functions like LEFT$, RIGHT$, MID$, or other functions like these. For example, LEFT$(NAME$) allows you to examine the first letter of a name. But the T/S 1000 uses what they call slicing notation. A few examples will clarify this immediately:

LET A$ = "SINCLAIR"

PRINT A$(1 TO 8)

would print: SINCLAIR

PRINT A$(3 TO )
would print: NCLAIR

PRINT A$(1 TO 1) + "ILLY"
would print: SILLY

Command Function
AT Used in a PRINT statement to specify the position of the cursor.
CLEAR Deletes all variables, freeing the space they occupied.
CLS Clears the display file.
CONT Continues if the program has any executable lines left.
COPY Copies the contents of the screen to the printer. The COPY command will not change the display.
DIM Reserves enough memory for an array of the given dimension and deletes any arrays already set up with that name.
FAST Increases execution speed by turning the display off when a program is running.
FOR a = x TO y STEP z Executes a FOR/NEXT loop and deletes any other variable that will conflict with the loop variable a; will count from x to y by increments of z.
GOSUB Pushes the line number of the GOSUB statement on a stack and calls the BASIC code starting at that line number.
GOTO Jumps to the specified line or the next one after that number.
IF exp THEN s If exp is true, then s is executed, and s must be a statement.
INPUT v Stops and waits for the user to input an expression.
LET The variable assignment statement.
LIST Lists the program on the screen.
LLIST Same as LIST, except that it goes to the printer.
LOAD fLoads a program called f. Loads the first program if f is null.
LPRINT Same as print, except routed to the printer.
NEW Deletes any program lines and variables, setting aside all memory up to the top of available RAM or to the system variable RAMTOP, whichever is lower. Also enters the SLOW mode.
NEXT Ends a FOR loop.
PAUSE n Stops computing and displays the display fiie for n frames (at 60 frames per second) or until a key is pressed.
PLOT x,y Blacks in pixel x,y and moves the print position one space to the right of that pixel (resolution: 64 by 44).
POKE m,n Replaces byte at location m in memory with byte n.
PRINT Prints whatever you specify in the print statement on the screen.
RAND Seeds the random-number generator.
REM Makes that line a comment statement, which is ignored by the computer. This is useful for placing machine-language subroutines in REM statements since they don't move about in memory.
RETURN Pops the number from the GOSUB stack and returns to the line after it.
RUN Runs a program beginning with the line you specify, or the beginning if you don't.
SAVE Saves the program, variables, and other system information on tape.
SCROLL Scrolls the display file up one line, replacing the bottom line with a NEWLINE character.
SLOW Leaves the display on all the time, even during the program execution. The computer powers up in this mode and returns to the SLOW mode whenever a NEW command is executed.
TAB Prints at this position, Must be used in a PRINT statement.
UNPLOT x,y Whitens out the pixel x,y.


As you can see, the slicing notation takes the number of characters that you specify in the range given in parentheses and prints them. If the first or last number is left off, it assumes the beginning or the end of the string respectively. This is not at all hard to get used to, but it is nonstandard.

One really good feature is that the strings can be any length, but string names are limited to one letter followed by the string symbol "$". You can get more than 26 strings, though, by dimensioning them. When you do so, however, you must specify how many characters are going to be in each string. For example, if you type DIM X$(2,20), you get two strings each with a length of 20 characters. This too is nonstandard for BASIC.

One bad point about the T/S 1000 is its lack of compatibility with the old ZX80 programs (written using the 4K-byte ROM). The programs will run, of course, but the user must make some minor modifications, type them in again, and save them on cassette tape.

As a cassette-based machine, the T/S 1000 has certain limitations. For example, this BASIC does not allow you to save values of some of the variables without saving all the variables and the program too. In fact, the entire state of the machine is saved when you execute a SAVE command, so that you can get right back where you were after loading the program and typing CONT. This limitation of the SAVE command makes the T/S 1000 difficult to use with programs that require saving data, but it is convenient for the novice. One limitation is that the SAVE command must not be nested inside a GOSUB. Another limitation is that cassette I/O is slow, and the T/S 1000 is not a likely candidate for a floppy-disk interface mainly because of the expense. Certainly, a floppy disk could increase the capabilities of the T/S 1000, but who would buy a controller and disk for $400 when the basic computer was only $100? But we don't know what Clive Sinclair will be up to next... a microfloppy for $100?

The actual process of entering a program is easy for the novice but exasperating for the experienced computer user, because BASIC keywords can be entered only by using a one-key abbreviation. If you want to enter RUN, you just press the R key and then the NEWLINE key, instead of pressing R, U, N, and then NEWLINE. It will take a while to learn the location of each keyword. Some are in awkward places. The RUBOUT (delete) key is a shifted 0. Frequently, I forget to press the Shift key before I press the 0 key.

Command Function
EDIT Edits the current line.
Up arrow Moves the current line back one.
Down arrow Moves the current line forward.
Right arrow Moves the cursor forward.
Left arrow Moves the cursor backward.
BREAK Stops execution of a program.
NEWLINE Terminates every line.
RUBOUT Deletes the last character or keyword.
GRAPHICS The next keys pressed will be interpreted as graphics symbols.
FUNCTION The next key pressed will be the function written below the key.
Table 5: Editing commands found in T/S 1000 BASIC.

AUTO LINEINPUT
DATA MEM
DEFSTR MID$
DEFINT ON ERROR
DEFSNG ON x GOTO
DEFDBL PRINT # (to cassette)
ELSE READ
FNDEF RESTORE
INPUT# RIGHT$
LEFT$ USING
Table 6: Some common BASIC commands
missing from T/S 1000 BASIC.

Like the ZX80, the T/S 1000 has 40 keys. The keyboard can be accessed in a BASIC program either through an INPUT statement or through the INKEY$ function.

One more nonstandard feature is that the character code set is totally unique to the T/S 1000; it's not ASCII (American Standard Code for Information Interchange). For example, in ASCII the letter "A" is represented by 41 (hexadecimal); the T/S 1000 refers to the same letter as 26 (hexadecimal). Making this unit into a terminal would take a little hardware and a considerable programming effort.

If you want more information on the T/S 1000, ZX80/ZX81, or the Microace computer (no longer made), see table 1 for addresses of these companies. Also, two other articles on these computers have appeared in BYTE. They are "The MicroAce Computer" by Delmar Searls, April 1981, page 46, and "The Sinclair Research ZX80" by John C. McCallum, January 1981, page 94.

Conclusions
Although T/S 1000 BASIC is different, it is powerful for such a small, low-priced computer. I think that anyone who buys it won't be disappointed. It does, however, suffer from its lack of standardization and omission of powerful BASIC functions. The TV interface works very well, and the display can easily be read on almost any TV. The membrane keyboard makes the computer difficult to work with for long periods of time. The cassette is easy to use for simple program storage, but it is limited and will hamper many application programs. The major use for this computer will probably be for learning about BASIC or computers in general. The computer itself has limited expansion capabilities, and the keyboard is too small and cramped for any serious work.

Wednesday, December 17, 2008

Snow My God!

I love snow, really I do. I am still a kid at heart and love to play in snow, ride sleds with the kids, even shoveling it can be fun. When you live in Wisconsin, you had better love snow, it's a part of your life about 1/2 the time. We got a mini-blizzard last week, and have had several 4-5" snows since then. Today is sunny, the calm before the storm. Tomorrow we are supposed to get 8-11" and then 2-4" each day for the next 3. It's definitely beginning to look a lot like Christmas!

Sunday, December 14, 2008

The Definition of Cold Front

If you've ever wondered what a "Cold Front" is, maybe this picture can help to explain it. It's going to be 47 degrees here in Wisconsin today, so a lot of our snow will probably melt. But look at tomorrow... Our high will be 9! Oh the joy of living here, you just never know what to expect from Mother Nature.
In other news... I am looking for a new job and had several phone interviews and one face-to-face interview last week, and now have many very good prospects. It looks like the career change to driving a truck may be on hold :-)

The one real interview was very interesting. It was with Solidworks, a company that develops 3D CAD (Computer Aided Design) applications, something that I have always really loved. I would probably be placed in their Labs group, developing new ideas that may or may not make it into the product, testing new technology and developing it. This would be VERY cool, I am quite sure I would really love this type of work. Development would likely be done in C++ and C#, and I have a friend that has worked there for a year and a half and he really loves it. I may even have the opportunity to learn Macintosh development, something I have wanted to learn for years. It would also be a great chance to hone and develop my own complex math and geometry skills, something I have not used at all since college but was always told "you need to know this stuff". Maybe they were right...

I also spoke with Inacom about an in-house development position. This is where Paul Heuring works and he referred me to this position. It too sounds fun, but we have not yet progressed to the actual interview stage, though I am hopeful that will happen this week. This position would be pretty close to ideal too, working on multiple short-term type projects in a wide variety of fields, using various development tools. It does not sound like it would get boring quickly at all.

After initially being contacted by their recruiter in California over a week ago, I finally did get the chance to speak with one of the two local hiring managers at Quest Software. Quest is where a very good friend of mine works, and they create some wonderful tools mostly to fill voids in major application vendor products (Microsoft, Oracle, etc). This would primarily be a C++ development position. The manager that I spoke with late Friday is not the one that I need to speak with. The manager that is looking for developers lost his voice, but the other one wanted to make contact with me to let me know the other definitely wants to talk to me, hopefully early this week. That was very nice of him to let me know that, and we had a very nice hour-long chat about the company and the type of development they do out of the Madison office. One very positive thing to come out of that conversation was learning that they practice and preach "Test Driven Development". In essence, they practice quality, they do not just preach it!

So that is where things stand now. Nothing concrete just yet, but I am very hopeful that I will ultimately have a decision to make between multiple offers, possibly as early as this week.

In other news, my mom turns 60 tomorrow! That is wonderful, but it also means I turn 40 in 2 weeks! Not so wonderful :-) We went to Bill and Bonnie's Christmas party yesterday. This was the first Christmas without Mike Gullickson, (Bonnie's son, Heidi's brother, and Halle's dad), since he was killed last February in a snowmobile accident. Paul and Heidi Heuring were there with their kids, so Paul and I talked "shop" about the job above, but we also played Ping Pong and had a few "interesting" drinks. Everyone had a real good time, but I know Christmas this year without Mike will be hard on everyone in the Gullickson family, especially Halle.

I do wish money grew on tree's! All of the girls want these new sub-notebook computers for Christmas, like the Acer One. They are real notebook computers, but have 9" screens and run Windows XP. They are very cool! They also cost $350 each, which isn't bad, until you multiple by 3! :-) All I want for Christmas is a good job, and an iPod Touch!

Tuesday, December 9, 2008

The First Blizzard of the Winter

My dad says we live in Wisconsin just to prove it can be done :-) Well, today I have to agree with him. We are getting a lot of snow, even by Wisconsin standards. It's wonderful, and the kids are out of school too, something that truly takes an Act of God around here!

Saturday, December 6, 2008

We Love Winter!

Despite a brutal windchill factor, the girls convinced me to take them sledding this afternoon at St. Francis Church. It was cold but we had a lot of fun!


Friday, December 5, 2008

When Did Programming Become So Boring?

When I was a kid in the late 70's and early 80's I got addicted to computers. Not just computers, but programming specifically. Some of my friends were really into the hardware, contrasting the benefits of the 6809 processor in their Tandy to the "lowly" 6502 in my Commodore VIC-20. I countered that I had the same processor in mine that the great Apple IIe had, so my computer must be just fine. We were all wrong, and in the end all of our little spats amounted to nothing. The Intel 8086 and 8088 CPU were the best, though none of us could afford computers (the IBM PC) that had those chips.

But how we loved our little computers, and spent all of our waking hours (including those we should have been sleeping), hacking on them, learning fast and furious. My best friend Dave was seriously into hardware, so he was always messing with electronics and built his own Heathkit computer. I was obsessed with how to program these little beasts, and buried myself in 6502 assembly language programming and BASIC.

I had a few books and a lot more magazines, and learned how to program by having Dave read source code to me from Compute's Gazette magazine while I furiously typed it into the VIC-20. We even developed our own variant of the English language to make this process go faster. For instance, Dave would say "Set C string to 1", to which I would enter C$="1". The intended end result was usually a simple game we could play on the VIC-20. The actual end result was often a complete waste of time, because either the program did not work, the cassette tape drive failed while I was trying to save our work, or the game was just plain boring. So it was a waste of time, right?

Not at all. Even though the program may not have worked, I was learning to program a computer. As my own knowledge expanded, fixing the bugs became easier, and finally second nature. I learned to recognize them as soon as I typed them and would say "Dave, you sure about that?" To which he would normally respond, "Sorry dude, that should be GOSUB not GOTO". The programs usually worked much better.

Eventually I got bored with typing in other peoples code and started coming up with my own creations. I learned about POKE and various other "advanced" programming concepts including CPU registers and memory mappings. So now I was changing the font that was displayed when I typed letters or making the screen show boobs in 4 colors. Life was good!

Then I learned a little more about hardware and made a circuit board with a relay (all purchased at Radio Shack for pennies of course) that I could send current to via a POKE into a memory address. Some address in the VIC-20 when set to 1 would cause a small voltage to go to the external expansion port. I learned it was enough current to switch a relay, which could then pass 12 volts from a car battery to a model rocket engine igniter. This was cool! Now I had a T Minue 10 Second counter program that when it got to 0 would launch a rocket! I was 12 years old and a freakin' rocket scientist!

The I got my mom to buy me a 110 baud modem so that my computer could calls Dave's, which was located 3 houses down from mine. We had to write our own communications software, so I wrote 2 versions, one for my VIC-20 and another I wrote on Dave's Tandy Model 3. It only took about 1 day to write the software, but probably 3 more weeks before our computers could actually "talk" to each other, but they did. Holy crap this was fun! We had two computers talking to each other over a telephone line! This was crazy stuff back then.

Then Dave got a girlfriend, damn him. Never to fear, my other friend Evan was as big a geek as me, though his area of expertise was in electronics, and bomb making. A couple software changes later, from Evan's computer we could launch a model rocket attached to my computer from the other side of St. Louis!

Could we put one of Evan's bombs in a model rocket and launch it from the Apple IIe lab at our high school? We did not know the meaning of "rhetorical question" at that age. The answer is YES! YES you can put a small bomb in a model rocket that has enough Estes D12-0 engines, and launch it from the football field while safely in the confines of the school computer lab. And yes, when the bomb goes off at 500' you can still REALLY hear it. Yes, even though we were laughing our asses off, we still managed to run all the way to my house before the cops showed up. We never got busted for that one, I'm pretty sure the statute of limitations is up by now.

That summer, probably the summer of 83', I got my first real computer programming job at the age of 14. My dad ran a bunch of jewelry department stores and they needed a way to print those little price tag things that are attached to rings and watches and such. Not only would I get paid $2/hour (probably by my dad, not the company), but I would get to program on the most excellent computer EVER MADE, my dad's company had an IBM PC! I could hardly wait for my first day of work.

My dad gave me the specifications, likely the first "Functional Spec" I ever had. 3 lines of text had to be printed on these little stickers, a stock or item number, some other number, and the price. I was sort of upset, it only took me an hour or so to create the software that would print those labels. I modified it to let people enter the information before printing, be able to print many of them at once, save their settings, etc. But in the end, it really only took me a couple of days before I had achieved what they needed. I fumbled around the office for a few more days, playing with the TTY machine and its thermal printer and 300 baud modem, and made my VIC-20 call the TTY and use it like a remote printer. It was fun, but the goal had been achieved. Back to $1.85/hour at Baskin-Robbins working for the child sex offender, Mr. Burns :-)

In late 84' we moved from St. Louis to Charlotte, NC. Nobody there was into computers. When I went to school I sort of learned why. I was in the 10th grade and they were learning the stuff I had learned in St. Louis in 3rd grade. For whatever reason, depression over moving, new friends that did not share my love of computers, something, I just quit playing with computers. I packed them up and put them away and did nothing with computers until 1988, when out of boredom in college I pulled my IBM PC Jr. out of storage and started banging away on it again. Fast-forward 20 years, I am still banging on computers.

I have often heard "The good old days were not as good as you remember", and this is probably true. I look back at that period of my life as some of the best times I ever had, though at the time it probably did not seem that way. 20 years from now I will likely look back on today and remember it fondly, though that is now it feels right now.

I miss the challenges of constant and rapid learning. Sometimes I even think I lack the desire or even ability to grasp new things. Maybe my brain is full, I cannot fit anymore "stuff" in there. New programming languages come along, new environments to play in, but it is all the same, over and over again.

New ways of doing the exact same thing I have been doing for 20 years. Show a screen, get the user to enter some stuff, validate it, show errors, dump it into a database, repeat. We had DOS with text mode screens. Show a screen, get the user to enter some stuff, validate it, show errors, dump it into a database, repeat. Then we had Windows and Mac OS. Show a screen, get the user to enter some stuff, validate it, show errors, dump it into a database, repeat. Now we have the web. Show a screen, get the user to enter some stuff, validate it, show errors, dump it into a database, repeat.

Where is the fun? Where is the challenge? When Did Programming Become So Boring?

Saturday, November 29, 2008

Thanksgiving and House Pictures

We had the joy (seriously) of hosting Thanksgiving dinner at our new home this year. We had a very full house and everyone had a great time. We took lots of pictures and I sort of realized after the fact that I never actually posted any pictures here of all the changes we made to the house, so far. We are constantly customizing it and "de-old-lady-fying" it. Here are the highlights so far...

Here is what my office that my dad, Missy's brother Josh, and I built. It is still not 100% done, but is very close.



To get to the office you walk through the new hall, which senses your presence and turns on the lights for you.



The downstairs is our play room, and it lived up to it's name. We have a new TV sectional with dual glider chairs, a new La-Z-Boy Big Boy rocking chair, electric fireplace heater, the 40" LCD mounted on the wall and XBox 360 and Wii games for the kids. Yeah, for the kids :) We ditched the all-white "sterile look" for much warmer colors.





We could not have Thanksgiving dinner on my old table. It was cheap and falling apart, and I purchased it many years ago following the divorce. It was only intended for me and the girls. The new table is MUCH nicer and made a great place for the "adults" to sit.



That's all for today. I will post some more pictures soon. (Soon in Todd time)

Saturday, November 15, 2008

Thanks Kris!

My sister-in-law sent me a link this morning to this video about calling tech support. This is hilarious, and also very true!

Tuesday, November 11, 2008

Software Quality and Catalogs

I still find it odd that I write so little about software development in my blog, as this what I do 60 or more hour per week. Maybe that is the reason, I am tired of doing and thinking about it all day that I tend not to write much about it. But anyone that knows me knows how I feel about software quality (or lack thereof) and how much I truly despise the "get it done yesterday" approach to software management.

When I was at Microsoft, we used to joke that "Quality is Job 1.1". Sure, it was funny, and only partly true, mostly said tongue-in-cheek. When you look at the vast majority of the software that Microsoft ships, most of it is quite good. There is the occasional turd (Windows Vista), but mostly it is very good quality. Why is it good quality?

Some think Microsoft hires only the best programmers in the world. I tend to disagree here. True, they have many very, very talented programmers, but the vast majority are of the mediocre variety. The seniors lead the projects and make sure that the juniors fix their mistakes, and teach them better ways. Oversight and code and peer reviews here make all the difference. You cannot stay mediocre forever.

I don't know what the current ratio at Microsoft is between programmers and testers. It used to be about 1-to-1 (1993), that meant, a tester who was not a programmer (at least not paid to code) was responsible for testing all of the code that a developer wrote. They were in nearly constant communication with each other and it was the testers job to find bugs and report them. Sometimes this is easy pickins, when new code is being developed quickly. Other times it becomes increasingly difficult as a project matures.

Microsoft makes a distinction between developers and designers. Every book I have ever seen on development (especially web based) also makes this clear distinction. They are not the same person. One is artistic in nature (the designer), the other very scientific (the coder). The designer likely has a background in good user interface design, graphics, usability and accessibility. The programmer likely cannot draw more than a stick figure and has never used a computer without a mouse, monitor, etc. The designer may have been educated at a well respected design school, while the coder is largely self-taught and has learned by the school of hard knocks.

So if these 2 individuals are so different, and talked about as such at great length in books and education materials, why are they so often considered to be the same person? I have NEVER worked for company, outside of Microsoft, that made this distinction. It's as if a company expects its programmers to be able to create wonderful user experiences, gorgeous graphics, create a consistent look and feel, and make it all work. I have no doubt that those people do exist, but I also doubt just as highly that most programmers make good designers. I have been coding professionally for over 20 years, and non-professionally for many more, and cannot design a nice looking UI to save my ass. I can code it for sure, in about 10 different languages and 3 different operating systems, but I cannot design it. I do not have an artistic touch.

And why should I? I am not an artist, I am a programmer. Since when did having artistic ability become a prerequisite for a developer? If these jobs were intended to be done by one person, why are the development tools so obviously catered to two different people?

As an example, let me look at HTML, the markup language used to make web pages. First there was just HTML, a simple markup language that allowed a designer to make a simple page. By definition, it was never intended to describe how the page looked, only the content of a page. The whole idea was that a HTML page could be displayed on any computer-like device, whether it be a full blown GUI like Windows or Mac OS, a text based browser like Lynx found on UNIX systems without graphics, a telephone, whatever. It was a replacement for GOPHER and America Online's custom page creation software.

And it worked, but only for a while. Designers just could not live without defining, in minute detail, exactly how every page should be laid out. So they added tables, frames, objects, etc. to HTML that did exactly that, allowed the layout of the page to be defined, completely breaking the original design of HTML. But they still called it HTML.

So everyone started creating real fancy HTML pages, with lots of pretty graphics and it was all beautiful. But the beauty was only skin deep. Because somewhere in the dark confines of an HTML coders office was someone breaking a cardinal rule of quality software development. Copy and Paste is NOT good code reuse. What I mean by that is that every page in a site, in order to give the site a consistent look and feel, was probably 90% of the same code of every other page. The content was different, but the look and feel was the same. To get the look and feel consistent, a ton of code was copied and pasted from other pages to create a the new page, and then just the wording and graphics were changed.

Now to an outsider you might think "so what"? And you would be right, in the eyes of a designer. A goal was achieved, the site is consistent and looks nice. In the (good) programmers eyes though you see only slop. All of that code shared between web pages using copy and paste is really annoying. If you change one page, you have to change them all. You have to open each file and change the code, a very tedious, repetitious, and error prone proposition.

So they came up with a new way, CSS. Now you would not define the look and feel in the HTML document, only the structure. A programmer would define the HTML, while a designer would define the CSS, and it would all merge in glorious web page heaven. We have come full circle, back to the original intent of HTML. Now we have a perfect world, right? Don't we wish. CSS is implemented differently by different web browsers, Microsoft Internet Explorer does it one way, most of the rest (FireFox, Safari, Opera, etc) do it another. And somehow Internet Explorer is still the most popular browser out there, despite not being standards compliant, despite being the front door used by many virus' and malware, despite being inferior to FireFox in almost every way.

But does that mean HTML/CSS is broken because of Microsoft? Hardly. The specification alone has a lot to do with it. First, CSS was designed to remove the layout and formatting from HTML code, so why did they let coders put CSS content directly in the HTML file? That is not separating look from content. CSS formatting can be applied in 3 places, an external file that is referenced from the HTML (the way it should be), defined (normally) at the top of an HTML file (which can compliment or override CSS read from a file), or the evil of all evils, added to HTML tags, once again completely breaking structure from layout.

From a designers standpoint, the web is wonderful. From a programmers standpoint, it is a chaotic mess. And who is to blame for the mess? The designer? The HTML/CSS spec writers? No. Programmers are responsible for the mess, and I will explain why.

Just because you can shoot yourself in the head with a Glock, does not mean it's a good idea or that you should. Likewise, just because you can define your CSS style in your HTML pages, or worse in your HTML tags, doesn't mean you should. Like grandma used to say "It's just not right". Yet that is exactly what I see being done everywhere I have ever worked, and on every web project I have worked on that I did not personally control.

Quality. That is lack of quality, pure and simple. As developers we have the best programming tools ever, they make many of our tasks almost mindless. Look at the number of really bad web programmers out there in the world making really nice looking web pages. The code is horrible, but the pages look nice. Sometimes that is just fine with companies, but it is not fine with me.

Maybe I am too old school for this stuff. I learned to write code on a computer that had 4KB of memory. That is 4 kilobytes guys, not megabytes or gigabytes. 4,096 bytes of memory, of which I could use about 3,000 to get all my work done. And I could write some pretty impressive programs in those 3KB when I was 11 years old. I was probably a better programmer then than I am right now.

After all of these years I still enjoy writing software. I do not enjoy creating web pages, or what I call Catalogs, Rouge and Lipstick, or Chrome. Being a "Web Developer" has never been on my resume, and will never be. I can program just about anything I want, operating systems, applications, network protocols, reusable tool kits, etc. But I am not a catalog creator. I don't get my rocks off creating pretty pictures with embedded video. I like writing code, real code. Code that you don't see, but does the work. That is my comfort zone.

And I refuse to write poor quality code just to get something done quickly. I am a firm believer it takes less time to do something right the first time, than to patch and hack it together quickly at first. I thoroughly test all of my code, every single line, and use automated testing tools to make sure that things don't break accidentally when I make changes. I am not saying that I never create bugs, we all do, but I am skilled at finding them early, well before they ever see the light of day in production code.

I have always preached that software development is art and science. But the art in this case does not refer to pretty pictures on a web page. I am referring to creating software as an art form, something that is readable, understandable, and yes, downright pretty, if only in a programmers eyes.

I am now pushing 40 years old real hard, and have begun to question whether or not I am too old for this shit. A young development manager that I know thinks he knows everything. He never used a computer before the web, but thinks he understands quality software. He preaches about it out of one side of his mouth, while simultaneously rewarding those who just slap something together quickly for the sake of adding yet another feature to the software. Never mind they wrote 100% of the code when they could have used 90% that was already written before. Never mind that while the user interface looks pretty, the code behind it is horrible. Never mind they used tools from 10 years ago when newer and better software is available that would have cut the actual time in half, and increased code reuse 10 fold. It works and it looks pretty. That's what makes a good programmer these days? Not in my book.

It's as if quality really does not matter any longer, or is measured differently from how I measure it. Real programmers are scarce, though Web Programmers are plentiful. Maybe the best position for me is to develop the tools that others use. Right the real code and let the kids create pretty pictures from it. But then who will be the real programmers of tomorrow? It's the hardcore guys that make it possible for every other mediocre coder to stay employed. What will happen when the juniors start creating the tools? Will software become even worse than it is today? Is that even possible?

This blog entry is depressing. Maybe I am the old curmudgeon telling the kids to get off my grass, I don't know. I do know there are some great technologies maturing now that are truly incredible. The .NET platform has grown up and revolutionized how code is written and shared. Even the old school C/C++ programmer in me says, "WOW"! Silverlight is very promising, and has the potential to be the death nail of HTML, CSS and Flash. Apple's market share is increasing (while their quality is, sadly, going down) and Mac OS X and FireFox keep Microsoft honest. I am excited by Vista's replacement and hope to see something solid next year. The Linux guys are creating wonderful tools in both the server and desktop arenas.

So I am not sick of software development, only sick of mediocrity. I am sick of programmers that do not take pride in their work, never read the writings of those with much more experience (Code Compete anyone?), don't separate UI from domain or business logic, think it's perfectly fine to have SQL sprinkled all through their code, think unit testing is a waste of time, think HTML and CSS are God's gift to web developers, and think comments in code are useless.

I am sick of not having standards, or having standards that get broken without repercussion, not having time for code reviews, not designing software before you write it, expecting programmers to be designers and their own QA, quantity over quality, and generally writing software without your brain engaged.

Maybe I should drive a truck :-)

Tuesday, November 4, 2008

THANK YOU AMERICA!

I have never been more proud to be an American than I am right now. Change is coming, WE THE PEOPLE have elected our new president!

Today is the Most Important Day in Recent US History

We need change, we need solid leadership, we need a president that cares about the middle class. We need a man that has spent his entire life building community organizations from the ground up, someone that has not spent their entire life in Washington and selling themselves out to the special interest groups. We need a man that will restore the worlds view of the United States, who will carefully and thoughtfully pick the battles that we must fight, and end the fight we should have never started.

He must be able to restore our economy and repair the damage of the last 8 years. Restore pride in America and provide incentives to keep good jobs right here at home, though it is a sad statement to the lack of patriotism shown by many American corporations that monetary incentives must be provided in the first place.

He must be ready and willing to fix our schools and social programs, eliminate programs that do not work and fund those that do. We need a man that knows right from wrong and rules based on his own convictions and morality, not those of the church. He must not pander to big oil companies, PAC's and other special interests. He must be intelligent, an excellent speaker, and able to convey his thoughts and ideas in a cohesive manner. We need a man that can reach across party lines to do what is right for this country, not compromise for what is convenient or easy.

We need our tax system overhauled to make it fair for everybody. And yes, how great would it be to have our first black President? I think that would be pretty cool. Imagine a president that can shoot baskets, dance, but not be able to bowl :) Pretty cool, huh? I think so. If you are a racist and don't agree with me, vote for his white half.

But even if you don't agree with me on Obama, today is a milestone in our country. Even if you support McCain, you must get out and vote today. Failure to do so is very un-American, you are giving up a right that many have died for, a right that many in the world will never know. We should all be upset about elections decided by the Supreme Court. Elections are to be decided by us, "We The People".

Now STOP READING THIS STUPID BLOG and get your ass to a polling station!

Saturday, November 1, 2008

Ron's Response Was Equally Interesting...

Misguided, Uninformed, but Interesting :-) I put Ron's email in italic, my thoughts are in red. His heart is good, and his belief in God and Jesus are without question. I will certainly never dis him on his beliefs, and he is smart and educated. I find it ironic that someone like him can be so equally ignorant of simple facts.

"Wow. I didn't know that a Roman living in 55 BC could generate such response :)

Here's my problem. Principles guide everything that the man in the Whitehouse does--not the Constitution. The Constitution is our basic framework for government. It provides framework--not direction. Our elected officials provide direction.

Principles yes, religion no, certainly there is no mandate that a president be a Christian, though I still believe that Barack Obama is.

There is no doubt that Obama is Muslim--his own family has said that repeatedly! Not conservatives, not Fox News, his own family. That concerns me a great deal considering that nearly every enemy America has in the world is Muslim! I do not want our president to sit down and talk with the President of Iran. I want him to deal with them just like with dealt with Sadaam Hussien. Don't run from bullies--deal with them head on. I don't think that we should look for a fight, but I don't think that we should endlessly try to talk our way out of one either. Only whimps and liberals do that.

No doubt that he is Muslim? I must not have gotten that memo. Sure, I've heard these allegations against him, nothing more than fabricated lies intended to scare uneducated voters. His own family has said that? When? Where? The only reference I ever saw to him being a Muslim was a grade school application completed by his step-father so he could attend a school in Indonesia. He likely would have been persecuted as a Christian, so his step-father lied to protect him. His step-father eventually became an atheist.

And, even is he were a Muslim, does that disqualify him from being President? Being a Muslim does not mean you support radical Islam, no more than saying a Christan supports the KKK. The Klan is a Christian organization, I doubt seriously that you would ever align yourself with them.

Why not talk with Iran? What does talking hurt? If they refuse to listen, then get tough. They cannot be allowed to build a nuclear bomb, under any circumstances. I don't think Ron and I disagree much here, other than I think we talk first, fight only if talking does not work. I certainly would not be opposed to dropping a nuke in the center of Tehran to prevent them from developing their own nuclear weapons.

Regarding the economy. My gas prices are almost dipping below $2.00 per gallon. Not bad. Yes, they climbed up. But why not blame the Muslim nations of the world for sticking it to us per barrel instead of blaming a successful American company for that? I have no problem with Exxon making untold billions of dollars of profit. Why not? That's America. If you don't like, take the bus. Stop consuming. I don't ever want my government telling me that they want me to be successful on one hand, then blaming me for the countries problems when I am successful! And I certainly don't want my government to wait until I have finally worked my way to success, take MY money, and redistribute it to individuals in our country who don't even pay federal taxes!!! That's wrong. But that's what happens when we are guided by the principles of those are a socialists (i.e. Obama).

I absolutely do blame the Muslin nations for the high crude prices. And I don't have a problem with Exxon making a substantial profit either. What I do have a problem with is that the more they pay for crude oil, the more profit they make. They markup of gasoline is based on a percentage of the cost of barrel of crude, not by a dollar amount per barrel. So, the more they pay for crude, the more profit they make. I don't inherently have a problem with this either, but only to a point. When the prices are so high that you are sucking the American economy dry and damn near forcing huge companies that employ hundreds of thousands of Americans out of business, that is just greed, pure and simple. There are not enough oil companies, they can collectively act like a monopoly. And they get huge tax breaks for conducting business like this.


What the McCain camp is calling socialism is far from it. Bailing out the big banks and other financial institutions is far closer to socialism than anything Obama has said. Everyone in this country, individual or corporation, must pay their share. It's simple taxes really, a very Roman idea. But the problem is that many do not. Taxes are structured such that big corporations and the very rich can easily find loopholes to avoid paying their share. The middle-class is who ultimately picks up the tab for this. What Obama is proposing is NOT redistribution of wealth at all, it is simply a plan to close loopholes and make the tax system more fair for everyone. Yes, that includes a middle-class tax break, just like McCain's plan. But it is huge tax increase to those that have dodged paying taxes for years, and that sounds totally and completely fair to me.

Regarding Ford and GM, I say let them go under. That's how America works. If you run your company intelligently and have a product that others want, then you will do well. If not, you go under. Do you think that the government should come along and bail out every business that is on the brink of going under? That's simply not possible and shouldn't be done even if it were. Mark my word, if Ford and GM go under, there will be a new American company out there within a year that can and will compete with our world market. Our ability to produce quality is of legend in the rest of the world. Nobody in the world works harder than Americans.

I most respects, I agree with Ron here. GM and Ford need to make products that Americans want to buy, and foreigners too for that matter. They are hurting now because they are not making what we want to buy, and are too slow and bloated to change quickly. Where I think Ron is misguided here is the economic impact to all Americans if one or both of these companies goes under. Ok, so they have screwed up and are in quite a pickle right now. But should a mistake by a handful of overpaid and under worked executives be allowed to punish all of the hard-working employees of these companies? What about the thousands of companies that are in business solely to serve GM and Ford? The economic impact of losing companies like this is unimaginable and unprecedented in US history. The Republicans are quick to say a company like this deserves to go out of business. I agree 100%, but there are always exceptions. If there weren't, why is the government spending $840 billion right now to save AIG, Fannie Mae, Freddie Mac, and others? It's for the reason I stated above, the economic impact of inaction is too far reaching. Yes, that is socialism, which is apparently ok sometimes when capitalism is ruined by greed.

Back to principles. I think that who you associate with speaks volumes about your character. From Rev. Write, to Ayers, and now a spokesman for the PLO. Then to couple that with the fact that his own wife said, "For the first time in my adult life, I'm proud to be an American." What!!!!!! That in and of itself is enough to lose my vote. The Bible says, "Out of the abundance of the heart, the mouth speaks." That simply means that whatever is on the inside will come out sooner or later. She did not mis-speak. She said what was on her heart. In America, she has that privilege. But I also have the right to keep her from influencing my president!!

Rev. Wright is a CHRISTIAN PASTOR, just like you Ron. Well, ok, not exactly like you, but a preacher of the gospel of Jesus Christ nonetheless. He may also be a racist, and certainly his comments and preachings speak to that. But his background and upbringing is far different from what you and I experienced growing up. We did not grow up as poor black kids on the south side of Chicago before and during the civil rights movement. Now I am not justifying any hate speech, so don't get me wrong. I certainly don't put him anywhere near the class of people such as Dr. Martin Luther King, Jr. But he is still free to preach and speak his mind, just like you are. I am sure tomorrow you will preach to your flock about the upcoming election. You may call Obama a Muslim, a socialist, a baby-killer. I don't know what you have planned, but to those who think Obama is exactly what this country needs right now, I am sure your sermon could also be construed as a hate speech, though I know that is not your intention. And I am sure there is some part of your congregation that is planning to support Obama. I am quite certain Jesus was neither a Republican or Democrat.

As for Michelle Obama. I heard what she said, and yes, I did not like it either. But I have also heard her speak to length about her beliefs, views, and faith in Barack. She said she mis-spoke, I tend to give her the benefit of the doubt. Who hasn't said something they wished they hadn't?

Regarding Roe v. Wade. It's legal for now. It was poor law then and it's poor law today. The reality is that Obama said that the the very first thing that he would do if elected is to sign the Freedom of Choice Act. That legislation will remove any and all state level restrictions to abortion. No parental notification, no waiting period, nothing. It doesn't reduce abortion--it provides an express lane! That law can be changed with the appointment of ONE Supreme Court Justice. Oddly enough, the next president will probably nominate TWO. That has the ability to radically transform our nation. Again, principle is everything. Obama is absolutely, overwhelmingly wrong for America. An Obama presidency will spiral this country out of control financially, morally and legislatively.

Like I said, not worth fighting over. There are 3 sides to this, Pro-Life, Pro-Choice, and ENOUGH ALREADY. I am squarely in the Enough Already crowd. Nobody is Pro-Abortion, that would be sick. I am not familiar with Obama's Freedom of Choice Act, so I cannot comment on that. I will assume what you say is true. This is one of those issues that cannot be won, people of both thoughts will never change their mind. We have to agree to disagree on abortion and look to find better alternatives, including education, better adoption systems, teaching of morals to our children, etc. The law is the law. If we as a country want to vote on this every 20 years, fine. Otherwise, the money, time and effort spent fighting this battle on both sides is a tremendous waste.

As for Obama spiralling the country out of control financially. Really? Seriously? What do you call the mess we have right now? Did Barack have anything to do with that? Nope, that was all Bush, and the policies and changes that were put in place during his time in office.

As a great theologian once said, "Beware of the darkside!"--Yoda, Star Wars.

You know what's funny? Here I am a computer geek and I still have not seen Star Wars! I have seen 1/2 the movie about 10 times, but have never seen the whole thing.

Hopefully, the message Sunday will be uploaded by 2:00 p.m. or so. It is our first time to attempt this. We ran through some practice uploads, but had difficulty compressing the video so that it didn't take 5 hours to upload. I think that we have it worked out now. Guess we'll see. The audio will be up and running almost immediately.

I look forward to watching it. Compressing video is as much art as science, and quite honestly, a major pain in the butt. I usually cuss at my computer a lot when doing video compression. I haven't tried prayer yet, guess that could work for you :)

Love you guys--all moderate, don't stand for anything, blow according to the wind, and move by infomercials that you are :)"

Hehe, I take that as a compliment :) I still consider myself a Republican, just not of the McCain variety. I have gotten more liberal as I have gotten older, I realize that. But I think it's as much becoming more tolerant and maturing, as well as understanding more about how the world works and should and could work that has changed my beliefs.

My morals have never been based in religion, but you and I share a common set I am quite certain, via blood, family, and upbringing. You are a good man, and I know that. A good father, a good husband, and a great preacher. Even as an agnostic, I enjoy hearing you preach. You are inspirational, uplifting, and intelligent. You manage to speak to the heart in a way few preachers can. I would likely attend your church myself if you were here, you know, in purgatory :)

My beliefs, or lack of, are not pushed on my children. They do not know that I am agnostic, and they attend church often, though not regularly. When they ask me about God or Jesus, I share with them what I know, which is not a lot, just the basics. I tend to look at the bible as a story, not history, and relate what I can without them knowing that I don't believe it. A true agnostic cannot preach or teach their children one way or the other, I must allow free will to take its course and allow them to choose what they believe is right.

They certainly do know who I support for President, the Obama/Biden sign is proudly displayed in my front yard, and Obama 2008 bumper stickers are on both trucks. Delaney likes McCain, she is the only hold-out. And I support her 100% in her choice of McCain, and have never tried to sway her. She went with us to an Obama rally in February, and was unimpressed :) I was hoping that John McCain would also visit Madison so I could take her to see him as well, but he never came here. I think he knew Madison was a lost cause for him, there is a lot of super-left wing bleeding heart liberal types in Madison.

I do hope that you give Obama a fair shake. Even John McCain admits that Barack is a good and decent man and that there is nothing to fear in an Obama presidency. The rest of the country will speak on Tuesday, and I am looking forward to a major celebration Tuesday night when we all realize that the man that we NEED right now for president was just elected to the position.