Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Tuesday, November 20, 2018

The Java Propaganda Language

I recently posted the following reply to an article about how management failed when they made incompetent choices about an implementation technology simply because they wanted to use the popular tools instead of the right ones.

Back in the year 2000...
I worked for LingoMotors, a fantastic startup some years ago which had built an amazing AI system that would parse the English language. The whole thing was built using VisualWorks Smalltalk. We had more than a dozen doctorate level computational linguists, several of them famous in their community. The system was amazing, and it leveraged the strengths of Smalltalk in a great way. This was a way to tag information with real metadata about the meaning of the data, and our first customer was a large online bookseller.
When we needed another round of financing we kept on getting pressure from potential investors who agreed we had something great, but they wanted us to port the whole thing to Java before they would back us. They had no clue that doing this would have killed our competitive edge, and it was hard to secure more funding.
The choice of implementation technology had become an issue of political correctness, in a sense. A lot of really wonderful programming language products died when the Java juggernaut trampled the world with overhyped promises. Now it seems that Java is over the top of its S curve, and things are more relaxed. It could happen again.

Saturday, October 27, 2018

Jobs vs Woz - The Closed vs Open Hand

Most people know who Steve Jobs was.  He was the charismatic and visionary frontman for Apple for many years.  He even managed a friendly coup at Apple when he took back the company he was ousted from.  He was a controversial person.  He had his fans and his detractors.  I think he certainly had his good points, but I am really more of a fan of the other less well known Steve of Apple, Steve Wozniak affectionately known as Woz.

Woz was the designer of the original line of Apple II computers.  He had a vision of computers as computers, for everyone.  A hippy vision of computing?  ;-)

What appeals to me more about Woz is that he was generous and wanted to give people something great.  His ambition lay more in personal accomplishment and also in sharing his knowledge with others.  When he created the Apple II computer he wanted it to be open.  He provided a schematic so that users could understand the computer, and so that they could modify it.  People even wrote books about how to do this.  Another example of this is that Woz included expansion slots so that people could extent the computer in this way.

When you turn on an Apple II you can program it right away.  There is a built in machine language monitor.  Depending on the model you can either use Woz's Integer BASIC or you can run Applesoft BASIC.

This version of an Apple computer is a real computer, for computing, by programming.  A computer is a device for a computer user.

Enter the computer as appliance.  :-/

Steve Jobs had a vision of computer as appliance.  This is purely a business perspective.  Sell more computers by marketing to the fat middle of the bell curve.

Of course he is not the only one to think this way.  Somehow progress in computing tends towards reducing it down to a touchscreen and away from programming and true computer literacy.  The Macintosh was a step in this direction.  This has a certain irony because the form of the Mac user interface was inspired directly by the Smalltalk windowing user interface, a programming system.  In addition to the appliance-like format of the Mac software, the computer itself was meant to be closed unit.  You need a special screwdriver to open it, and there are no expansion slots.

So the Mac was a closed machine, and it pointed other systems in this direction (i.e. Microsoft Windows).  You could purchase programming software for the Mac, but unlike other computers on the market there was no direct path to programming when you turned on the machine.  Why was there no easy programming option on the desktop when you started the Mac OS?  For more on this issue see Why Johnny Can't Code which is a popularly referenced article on this topic.

HyperCard eventually was made available on the Mac as an easy and fun programming tool and it was included free of charge for some years, but now it is gone.

Microsoft followed suit with Windows and they too also did not include even a version of their famous BASIC as an icon on the desktop of their new system.  I wrote Liberty BASIC back in the early 1990s as a response to this.  Microsoft eventually provided Visual Basic, but I strongly suggest the this should have been included, for free, and an icon to start Visual Basic should have appeared on the Windows desktop on startup.

I'm not going to suggest that there is some sort of conspiracy to dumb down the computer.  What I will say is that this amounts to a stupid and harmful mistake.  The computer is so powerful and wonderful as a creative too.  These new computers as appliances are depriving people of so much by simply omitting an easy and friendly programming tool.  A desktop icon to entice the curious to try something simple enough for children and powerful enough for casual applications programming.

So, what is really better?  How do you define progress?  What of the early 6502 and Z80 computers when compared to what we have today?  The new computers dwarf these charming old timers, but they are less powerful in terms of the concepts they omit from the user.

Saturday, October 6, 2018

Raise Your Computer Literacy to Mastery

There are different levels of computer literacy.
  1. Beginner - You know how to turn on a computer, open a web browser, use email and a word processor, etc. and maybe how to copy files around.  If you have been using a computer for many years and this is what you know, you are still a beginner.
  2. Power User - In addition to what the Beginner knows you also know how to tweak operating system settings and how to type some commands in a terminal or command window.
  3. Master - You know all the above and you also understand programming concepts.  Without this knowledge you are really at the mercy of the computer and software providers.
I like to compare this to understanding something about cars and how they work.  People who drive cars without automotive literacy face big challenges when buying a car (especially a used car), when the car breaks down on the road, and when bringing the car to the mechanic for repair.  Understanding cars improves driving skills, personal safety, and saves you time and money.
When schools first started teaching young people about computers they had a high concept of literacy and they tried to teach programming using languages like Logo, and Pilot and BASIC and sometimes Pascal.  Over time this eroded and computer class became more about just teaching the Beginner skill set described above.
Adults now are wowed by how much young people know about computers, but this is usually just a knowledge of computer trivia and of surface details, and not a deep understanding of computers at all.  We must be careful not to be hoodwinked by the semblance of mastery.
Real mastery is achieved only if you understand programming and have learned to make the machine do what you want.  Otherwise your computer will only do what other people have programmed it to do, and is that really what a so called personal computer is supposed to be?  I am including phones and tablets when I use the word computer, because clearly these things are computers.
A non-obvious benefit of mastery of computer literacy is the personal growth that happens when you learn to program because of the way it sharpens the mind.  Programming teaches analytical thinking and problem solving skills, and it can also be great fun.
I hope that this article encourages you the reader to raise your level of computer literacy!

Sunday, September 23, 2018

Programming Inside the Lines

Why do people program computers?
  • Business - To automate a process or financial problem
  • Automation - To control homes, factories, machines
  • Research - Data mining, simulation, modeling
  • Communication - Email, telephony, broadcasting, journalism
  • Recreation - Games, movies, music
  • And for fun - Yes, programming is also an enjoyable recreational activity.
I was recently part of a social media thread where we were discussing, more or less, whether programming languages should remove all features that could lead to bad practices.  This was motivated by the perennial question, "Should GOTO be allowed in programming?"  GOTO is not bad.  GOTO is simply GOTO.  I'll leave it there, for now.

Let's compare programming to finger painting.  If you gave a child some finger paints and a sheet of paper and a smock, would you yell at the child for what was painted, or if the activity made a mess?

I started programming when I was 11 years old.  Nobody made me do it.  I sat down with my father's HP-67 calculator and the wonderful manual and I was hooked!  From that point forward I spent much less time on my electronics hobby and spent my energy programming.

So, what is fun about programming?  Here is a short list:
  • Programming involves learning, which lights up neurons all over and stimulates the feel good hormone dopamine.
  • Programming involves problem solving, which is also a kind of learning.
  • Programming is a creative activity, and people enjoy making things.
  • Programming is delightfully interactive.  Give to the computer and it gives back.
  • Programming as an enjoyable social activity, sharing/working/competing with others
I see people bashing programming languages because they have features that will "ruin the programming culture and practices of the masses".  Oh, please.  How many of us have enough experience to even begin to know what this means?  How we define 'ruin' in this context?  And why is it acceptable to 'prove' that something is good or bad by regurgitating some famous person's quote that says that it's so?  We should resist this sort of nearsighted ideology.

I learned programming using the so called bad languages, and I had a blast and nobody got hurt!  I learned a ton and nothing stopped me from learning the so called good languages later on.  I encourage everyone to learn new things but if you decide to only learn one programming language you have not committed a crime to society.  Don't let anyone ever tell you different.

I know that nobody needs my permission, but I'll give it to you anyway!  Go forth and have fun programming!  Color outside the lines and drum to your own beat!  Don't be afraid of the self appointed programming police!

Monday, September 17, 2018

Home Computers and Line Numbered BASIC Interpreters

If you're like me, you started using computers back in the early days when a computer was something you could hook up to your television set.  Turn it on and immediately it would greet you with something like:

Super Duper BASIC v2.02
28467 bytes free
Ready
_

This was the most typical way a computer would start up.  You are then in BASIC, ready to explore programming more or less instantly.  There was nothing to download or install.  There was no antivirus software to harass you before you could proceed, and you did not need to boot your computer from a hard disk, log in, and then use a menu system to launch your programming language.

Your computer came with a book (yes, really) that started you on your programming journey in friendly terms, and happy looking cartoons.

In a few minutes you could have a simple example program from the book typed in and then typed RUN to see it in action.  A couple of hours into the book and you were a budding programmer.

There was no need to learn large volumes of functions just to put anything on the screen.  Was it primitive?  You bet.  The good thing about it was that mastery was attainable without going to school.

With computers today?  Forget all that.  I guess you could say that only the most determined people will learn to program now because they have to go exploring into the expanses of the Internet to figure out how to start.

Home computers.  Yup, we called them that before the term personal computer became popular.

The built in BASIC language in these machines is like clay in your hands.
  • Turn on the computer and start coding in seconds.
  • Execute code without a program.  Just type some code by itself and press Enter.
  • Add code to your program one line at a time and just type RUN to try it.
  • Stop and restart a running program.  Change it and resume running.
  • Type a program in from one of many popular magazines.  Learn to program by changing the program to make it your own.  Copying and pasting code from the Internet is just not the same.
People like to say unkind things about that era and all the messy looking code that BASIC encouraged.  I say that interpreted BASIC was a natural fit for that time.  It probably would have been hard to do it any other way.

I think that there are lessons to be learned from all this.  The kinds of computer literacy that we have today is only enough to use the computer to consume.  We only think that we know how to use the computer, but we really only know enough to run apps.

How do we make the real power of computers accessible again?  How can we restore the immediacy and interactivity of a BASIC interpreter to the end user?

You know what?  You can go on ebay and just buy one of these computers.  Prepare to be charmed.  :-)

Tuesday, September 11, 2018

BASIC over at Rosetta Code

I was curious to see how many different BASIC dialects are represented over at rosettacode.org. Here is the list (excluding VB dialects) of languages with BASIC in the name. I also included RapidQ because I know that is a BASIC also.
Rosetta code is a really cool site.  If you're not familiar, it is a site showing how to solve many different kinds of problems in many programming languages, so if you like to solve problems you can help to add code to their site in your favorite BASIC.  :-)
If your favorite version of BASIC is not there, you might consider adding it!
My favorites are Liberty BASIC and Run BASIC because they are my own implementations of BASIC, but I am also a fan of Power BASIC and Commodore BASIC!
• Applesoft BASIC
• BASIC
• BASIC256
• BBC BASIC
• Commodore BASIC
• EhBASIC
• FreeBASIC
• FutureBasic
• FUZE BASIC
• GFA Basic
• GLBasic
• GW-BASIC
• Integer BASIC
• IWBASIC
• Liberty BASIC
• Locomotive Basic
• MSX Basic
• OxygenBasic
• PowerBASIC
• PureBasic
• QBasic
• Quite BASIC
• RapidQ
• REALbasic
• Run BASIC
• Script Basic
• Sinclair ZX81 BASIC
• Smart BASIC
• SmileBASIC
• Superbase BASIC
• TechBASIC
• TI-83 BASIC
• TI-89 BASIC
• True BASIC
• Yabasic
• ZX Spectrum Basic

Friday, January 8, 2016

Writing a book was more than I bargained for

I really had no idea how much work this was going to be.  I had good starting material with the Liberty BASIC tutorial, which had actually been fashioned into a spiral bound book which I produced at the local Staples store, but this had to be more polished.

I had no serious word processing software.  This meant that I needed to use the Write application that came with Microsoft Windows.  The only strengths that this provided was that it was essentially free, it was easy to understand and didn't burden me with any strange gotchas that full blown word processors often do, and it allowed page footers.

This was hard work.  The process was to produce a draft of a chapter, print it out and then I would lay down on the carpet with a pencil and read it, marking it up as I went.  Then I would go back and enter in all my changes and repeat the process several times until that chapter seemed good enough for the book.

This took weeks.  By the time I was done, I was determined to never, ever do it again.  Of course this didn't end up being my last book.  :-/

Monday, March 8, 2010

VP Planner application development

Accounting wanted an application using a spreadsheet like Lotus 1-2-3. We did a little research and decided to try VP-Planner which was an inexpensive Lotus 1-2-3 clone. One of the nice features of VP-Planner was that it had a macro recorder. Instead of just creating a spreadsheet using a completely unrestricted form, it was possible to create a more shrinkwrapped type of application that limited which fields could be entered and to perform validation and such. I had never used this sort of development tool before so I had to learn everything fro scratch.

In retrospect I probably would have been able to produce what they needed faster in BASIC, and I certainly would have had more control over the result but this was a useful experience. Spreadsheets can be a good tool for people who don't want to learn a real programming language.

Tuesday, February 16, 2010

Welcome to the Machine

Or welcome to the machines as it were. I think there were four Excellon drilling and routing machines at C.F.C. One of them had just a single head and was used for making first pieces to test for errors in the drilling and routing programs.

So my first job was to learn the programming language for these machines. Bob Spain and a young lady named Kristen Van der Laan were my teachers. This is no high level programming language, but more like a machine code of sorts. Circuitboards are still drilled and routed this way today more than 20 years later.

Here is an example of a very short Excellon drilling program. The actual language for CNC machining is based on commands used to control Gerber Scientific plotters:

M48
T1C0.028
T2C0.032
%
M48
G05
M60
T1
X2.550Y1.550
T2
X2.600Y1.650
X2.600Y1.750
M30

That drills just three holes of two different sizes. Writing programs to drill holes wasn't really the engineer's job. We mostly wrote programs to cut the boards out. Most of these were simple rectangles, and the program for this wasn't much longer than the example above. Sometimes boards would be circular, or have odd shapes. Some would have chamfers, fingers, slots, large inner cutouts. There was great variety. Sometimes we would make palletized panels which have more than one circuitboard. The routing was designed to leave only small perforated spots to hold it all together, and the boards would be removed from the panel either by hand or by machine.

We would write a program for routing using WordStar and then save it to a floppy disk. Then we would send the program out to the paper tape punch machine. The tape was usually gray, blue or pink. There were little tiny round pieces of colored paper all over the place.

A finished program would go out for a first piece to make sure it was correct. If you left just one digit out of a routing program the machine could destroy the panel, cutting straight through the middle of it.

Saturday, February 13, 2010

A Cornucopia of Computers

So I joined the engineering group at C.F.C. Our job was to write and debug CNC programs for the Excellon drilling and routing machines. Most of the programs were written using WordStar on Osborne-1 and Kaypro CP/M machines. We did not use hard drives to do this work, and the final medium of storage was punched paper tape. Yes, really! That was the format the machines used, and we had a storage library for keeping the tapes.

There was one Macintosh in engineering for special purposes, but here again I never used it.

There was a TRS-80 used for managing job tracking in the factory. It had the standard silver expansion box and three floppy drives.

Accounting had an Epson PC clone (or was it a Leading Edge Model D?), and there were a couple of Tandy Model 100 laptops that look like Alan Kay's Dynabook prototype.

Things were about to get interesting.

Friday, February 12, 2010

A Fortunate Series of Events

In the spring of 1986 I discovered something that would change the direction of my life completely. I had been reading the Bible a lot in my teen years, but I didn't have a church community that fit what I understood from my studies until I found the Boston Church of Christ.

Late that year I decided to move in with some other young fellows from the church in Newton, but in order to do this I needed to find more regular paying work. I continued to work with Mr. Alessi but I began to look for a job. For some reason in the cold early spring of 1987 I worked for a few weeks at McDonalds and then suddenly I found an ad in the local paper. I remember the ad was titled "Programmer Trainee".

I went in for an interview. The company was called Circuitboard Fabrication Company, or C.F.C. It was hidden neatly in a neighborhood right next to a grade school in Newtonville. The president of C.F.C. was Bob Spain. He explained that this was a job programming CNC drilling and routing machines which are used to cut circuitboards out of fiberglass sheets. I told him that I was interested in developing computer programs and he responded that I may have an opportunity to do some of that at C.F.C. Small business owners like Bob Spain and Patrick Alessi are so openminded. :-) He offered me $5.50 an hour, and I accepted the job.

I began my new job taking the bus from Needham center to Newtonville because my car had broken down. Then after a few weeks I moved in with the guys from church. I only took with me what would fit in one carload. My new home just happened to be walking distance from C.F.C. It was very easy for me to see the hand of God in this arrangement.

I was surprised to learn soon after starting my new job that Mr. Alessi had used C.F.C.'s services to produce the circuitboards I had been assembling for two years. I had notice the marking CFC-1 on the boards and now I understood what it meant.

Thursday, January 21, 2010

The Apple II+

My job with Mr. Alessi started out with a software project he called Forecaster-Buy. The idea was to create a trend following inventory management system for distributors and manufacturers so that overstocking was a thing of the past. The computer we did all our initial development was:

An Apple II+ with 48K RAM and Applesoft BASIC in ROM
Two 143K Apple Disk II floppy drives
An Epson MX-100 dot matrix printer
Later we added a Microsoft Z-80 Softcard but didn't do much with it

I learned so much about programming with Mr. Alessi. We worked in the basement. There was a small room at the bottom of the basement stairs where the computer was kept, and in the larger basement space there was a TV and some chairs. We would talk about the software (and politics) and I would go into room and write software. Mr. Alessi would come in and ask me how I was doing. He'd make suggestions to which I would sometimes respond "That's impossible!" Of course it wasn't impossible, but if I didn't know how to do it, that is what I sometimes said. Then we'd talk and I'd think it over and come up with some sort of code to do the previously impossible.

Working with Mr. Alessi was a great experience. He was smart enough to know what sort of software to create. He'd bring me endless coffee and cookies. On Saturdays he would make me breakfast. He made very nice scrambled eggs. His two sons Tom and Michael were a little older than me and they'd always be around. I remember I used to play with them (and with all the other kids around the block) up at the park at the end of my street; kickball, pickle, keepaway, capture the flag, and hide and seek with the whole neighborhood as our hiding place. :-)

Yeah, working with Mr. Alessi was a great opportunity. It didn't pay much, but I learned a ton!

Tuesday, October 13, 2009

Going Forth

I came across a surprising book in the Needham Public Library when I was 15. It was called Starting Forth, and it was about a programming language called Forth.

The author Leo Brodie had written a charming and fun book about a very interesting language. Forth is a stack based language, and it has a postfix notation in its syntax. So instead of writing 3 + 4 you wrote 3 4 +. Seems strange, but to me it was very familiar because I got my start using HP calculators where you did exactly the same thing.

Forth is interactive, like BASIC. It has a very small core of functions called words, and you create an application by adding new words which have the same syntax as the ones that come built-in. Essentially you extend the language to solve your problem. Smalltalk is also like this.

Forth is the language used to program NASA's space shuttle, so it has some clout. I discovered that there are quite a few Forth fans out there, and I even managed to buy a Forth language cartridge for my VIC-20. Awesome.

Thursday, June 14, 2007

Early networks

When I started in high school at Xavarian Brothers High School in Westwood, Mass. they had an early example of a network. It amounted to a shared hard drive between four TRS-80 Model 3 computers (or maybe they were Model 4s). There were also Epson MX-70 printers.

I didn't actually take the programming class, which was only available for juniors and seniors, but my math class was in the classroom where the computers were, and I would sometimes write little programs for them in the minutes before or after class.

I'm not sure if the hard drive was manually or automatically switched, or if these computers ran a real disk operating system. I don't remember the computers having floppy drives, and it seems unlikely that they had networking code built into the power-up ROMs; just BASIC.

Perhaps someone else would be eager to comment on this?

Sunday, June 3, 2007

My First Programming Job

As well as I can remember (this would have been 1981) I met Patrick A. Alessi when I was 14 years old at NEECO. He was there purchasing an Apple II+ and an Epson MX-100 printer, and he told the sales guy there he needed a programmer to work on some business software. They pointed across the store at me. He told me later that he said, "Who, him? He's just a kid!" They introduced us to each other.

Turns out I knew his son Michael from playing kickball at the park down the street. Mr. Alessi lived a mere 4 blocks away from me, which was the perfect distance. So I began visiting his place. As first we just played pool and experimented with his new Apple II+, and Mr. Alessi made no apologies about sharing his political opinions while smoking different kinds of pipe tobacco.

Since my friend Richard had an Apple II computer I got some games from him, and I made a joystick for the computer out of parts I bought at Radio Shack. I reused the case from an RC car's remote control. I cut out the steering wheel and replaced it with a dual-potentiometer joystick. It was ugly, but I saved some money. ;-)

Mr. Alessi was interested in creating some trend following inventory management software, and he talked a lot about this. Eventually we would begin to write this software, and do a lot of other things as well. This was not going to make me much money in the short run, but I couldn't have asked for a better opportunity to learn.

Thursday, May 24, 2007

Summer Break - My Own Company

When I was about 14 I decided to create my own company to create video games. I didn't even own a computer, but I spent a lot of time at NEECO, and they let me use theirs. The machine I targeted was the Commodore VIC-20, and I thought I was being clever when I came up with the name VinkSoft.

The game I created was a simple simulation of flying through an asteroid field. You needed to shoot the asteroids to destroy them or else they would hit your ship. It probably took a couple of dozen hours to create this game. The graphics on the VIC-20 were all done by creating custom graphics characters. Sound was pretty easy with the computer's built-in 3 voice tone generator and white noise generator. The actual BASIC code for the program wasn't very big because it all had to fit in 3.5K of RAM. The game was fast enough in BASIC that it didn't need any machine code routines.

My plan was to sell the software at NEECO, and the sales guys there agreed to do it. The software would be in a ziplock bag with some artwork and a cassette tape. A lot of software was sold this way back then. My father helped me with the artwork. He's pretty good at drawing sharp graphics, which makes sense because he spent thousands of hours drawing things at a drafting table.

So the sales guys at NEECO put the software on the wall (2 copies) with all the rest of the stuff there. Within a couple of days they had sold one! Unfortunately the owner of the company had not cleared this clandestine operation and when he found out he had my remaining copy pulled. I don't think they even gave it back to me.

The things we kids did during summer break. ;-)

Monday, May 21, 2007

The Peacock Feather and Sinclair

I met the owner of the Peacock Feather (a gift shop in Needham, Mass that still exists today) at his store, but I don't recall his name. He was from India, and I remember getting into a discussion with him about computers. He said he had one of the new Sinclair ZX-80 http://oldcomputers.net/zx80.html computers based on the Zilog Z80.

He seemed interested that I was about his son's age and that I knew something about programming. He told me that his son played soccer, and I guess he thought that I could befriend his son and teach him about BASIC.

So we agreed that I would come to his house to see this ZX-80. I remember that his home was absolutely filled with the smell of curry (in fact he smelled like curry even when he wasn't at home). I also remember that his son wasn't there when I visited. So much for me and his son developing a friendship.

I didn't have much time to play with his computer. It was much smaller than it looked in the ads. The keyboard was completely flat, and you just touched each "key" lightly to activate it. Each key had a letter, a graphic character, and a BASIC keyword on it. Since you couldn't touch type, the way that you would type a whole keyword in with a single keystroke help speed things up. The computer was plugged into the television set (as so many home computers did), and its plain black and white output would blank briefly between some keypresses. If your program did any computation in loops it would also blank then since the display was driven completely in software by the single Z80 processor.

It was a fun little machine to play with, but I wasn't interested in owning one after I saw it. Later on Sinclair would produce the ZX-81, a much more expandable machine. I actually recently bought a kit version of this machine unassembled which I hope to assemble at some point.

Thursday, May 17, 2007

The Home Computer Era

In the early 1980s there were so many kinds of computers before IBM killed off all the diversity with their IBM PC. This was a shame, especially since the microcomputer industry was only 5 years old and there wasn't a rich computer culture yet. The PC stopped the innovation in its tracks. Before the IBM PC small computers were usually called home computers.

It was wonderful that you could usually buy a 250 page book for the computer of your choice. That book would tell you everything... EVERYTHING about the innards of the machine. You could bend the computer to your will. These days you have no idea what's going on in the machine. As a programmer you deal with the Windows API, or with the Java SDK platform.

Sometimes I wonder how hard it would be to create a new computer simple enough to master it all the way down to the bits. The operating system would be very small and simple, and the machine could be programmed in BASIC, Forth, and assembly language. The code for the whole thing could be open sourced. Perhaps there wouldn't be a way to make money with such a product, but it would be fun. :-)

To get a feel for what this time was like, watch this YouTube video of Steve Wozniak relating his experiences growing up and designing the Apple computer. Great stuff! http://www.youtube.com/watch?v=ctGch5ejjT4

Tuesday, May 15, 2007

Easy A Grades

In my seventh and eighth grade years we were required to produce reports for our math class. I can't say for certain what sort of material filled the reports of other students. Since it was pretty unusual for a middle school student to know how to program computers back in 1981 I had no difficulty getting my teacher's permission to write both my 7th and 8th grade reports on programming.

For 7th grade I wrote a report that explained programming on the TI-57 calculator. I hand typed the report on a manual typewriter. I remember being up all night before it was due (I had a bad habit of doing that).

For 8th grade I wrote a report introducing the BASIC programming language. The teacher decided that I should use the blackboard to explain to the class how it all worked. If memory serves, I remember that the presentation was also attended by a trained programmer, who happened to be the father of one of my fellow students.

I knew more than the teacher about this subject, so these were easy A's. :-)

Saturday, April 21, 2007

Enter the TRS-80

I remember when Radio Shack started to advertise the TRS-80 computer on television. I don't think I had ever seen an ad for a computer on TV before this. It was $599 for the computer which seemed pretty amazing.

When these machines arrived at the local Radio Shack store my brother and I went to have a look. The only interesting thing you could do with the machine was program it. They may have had a couple of applications on tape in the store but we ignored them. The programming manual was very friendly, with a cartoon character that looked like a TRS-80 spouting explanations.

As I understand it the Level I BASIC that came with the machine was a custom version of Tiny BASIC. It had single letter variable names, only one string variable (I think), and it had only three error messages for the programmer:

  • What? - Syntax error
  • How? - Divide by zero, etc.
  • Sorry. - Out of memory

Level I BASIC also had SET and RESET commands so you could draw graphics on a 128x48 grid.