Sometimes when a computer breaks the cure can be surprising. We purchased a very expensive software solution for one our engineering tasks. It came with an HP Unix workstation. I never really used this machine. It was a single task appliance and I'm not even sure precisely what it was for. One day however it refused to boot, and I guess we must have stopped paying for support because they called me over to have a look.
Turning the machine on yielded the usual power supply fan noise and nothing else. None of the expected hard drive spinning or seeking was heard. This could be a bad power supply, or it could be a failed hard drive controller, or it could be... sticktion! That is pronounced stick-shun. Yes, really. Look it up. This happens on some hard drives when the hard drive sits powered down for hours or days, and the mirror smooth surface of the hard disk platters get stuck to the magnetic heads which have come to rest on the surface. The coating is just soft enough to stick.
The only way to find out if the problem is sticktion is to open the machine and bang on the hard drive casing to see if the heads can be freed. An ideal tool for this is the plastic handle of a screwdriver.
We opened the computer and I rapped on the hard drive a few times with the butt end of a screwdriver. We turned on the computer and waited... success! I felt just like the Fonz! :-)
Tuesday, March 13, 2012
I do own a leather jacket!
Labels:
fonzie,
hard drive,
hp,
screwdriver,
sticktion,
the fonz,
unix,
workstation
Monday, March 14, 2011
Power BASIC and the Uncrashable Kingdom
I had it in mind to use Power BASIC as the compiler to implement the new DOS file server for the factory. This was a new, slicker and rebranded version of Turbo BASIC which I had been using for a while. It wasn't cheap. Power BASIC was a nicely polished compiler and had good documentation. I think we paid $300 or so for it.
I wanted to create a nice UI for the file server so I purchased a windowing library for Power BASIC. It made it easy to create text mode windows using graphics characters. The way it worked was very similar to the way that a Windows programmer would do it in C. You called functions which created windows, buttons, etc. These would return a numeric handle.
Your program would intercept messages from the UI library in an event loop and act on them. Each message would include the handle for the window or widget it was about, and also a value for an action such as a click or a key press. This is not an easy way to write windowing code, but the file server would have a simple enough UI. The end result looked nice and was functional.
I learned a lot on this project. This must have been the highest quality BASIC code I had written to this point. It was a multitasking file server using state machine techniques. Unlike its Xenix based predecessor, this file server never crashed once we had it up and running. Never.
I wanted to create a nice UI for the file server so I purchased a windowing library for Power BASIC. It made it easy to create text mode windows using graphics characters. The way it worked was very similar to the way that a Windows programmer would do it in C. You called functions which created windows, buttons, etc. These would return a numeric handle.
Your program would intercept messages from the UI library in an event loop and act on them. Each message would include the handle for the window or widget it was about, and also a value for an action such as a click or a key press. This is not an easy way to write windowing code, but the file server would have a simple enough UI. The end result looked nice and was functional.
I learned a lot on this project. This must have been the highest quality BASIC code I had written to this point. It was a multitasking file server using state machine techniques. Unlike its Xenix based predecessor, this file server never crashed once we had it up and running. Never.
Labels:
basic,
c,
c compiler,
DOS,
GUI,
multitasking,
power basic,
turbo basic,
xenix
Saturday, March 12, 2011
Hacking a file server
No, I'm not talking about hacking an Internet file server. At CFC, Inc. we kept the CNC drilling and routing programs on a file server running Xenix which was a Microsoft branded version of Unix. The CNC machines were plugged directly into this file server using RS-232 ports. Until we purchased this server we had been keeping all our programs on punched paper tape and stored on shelves but now we could keep all this stored electronically.
Okay, this new way of doing things would have been great except that the file server cost lots of money and it wasn't reliable. Every so many weeks or months the computer would crash for one reason or another. When this happened it would run fsck on bootup. This would sometimes find some file system records to repair because the machine didn't have a chance to write everything to disk when it crashed. The end result? We would sometimes lose files from the file server. Bad, bad and worse because all our backups were on tape and we had really bad luck restoring from tape.
We didn't want to spend any more money on this file server. I wanted to develop a replacement in house. It would run on DOS which didn't have the bad habit of delaying writes to the file system. Not bulletproof, but bullet resistant and cheap. But, I had a problem. The only documentation I had which explained the communication protocol for the file server was very thin and hard to understand. I was stuck.
Remember the RS-232 monitor that I grabbed at the GTE auction? I knew right away how useful it would be for this project! Back at the factory I installed this monitor between one of the CNC machines and the Xenix file server. With the ability to see data moving back and forth I was able to figure out how the file server worked. It was tricky because data was actually delivered in packets. There was a non-trivial conversation that happened between these machines but it looked like the code for this was going to be fun to write!
I was ready to get started!
Okay, this new way of doing things would have been great except that the file server cost lots of money and it wasn't reliable. Every so many weeks or months the computer would crash for one reason or another. When this happened it would run fsck on bootup. This would sometimes find some file system records to repair because the machine didn't have a chance to write everything to disk when it crashed. The end result? We would sometimes lose files from the file server. Bad, bad and worse because all our backups were on tape and we had really bad luck restoring from tape.
We didn't want to spend any more money on this file server. I wanted to develop a replacement in house. It would run on DOS which didn't have the bad habit of delaying writes to the file system. Not bulletproof, but bullet resistant and cheap. But, I had a problem. The only documentation I had which explained the communication protocol for the file server was very thin and hard to understand. I was stuck.
Remember the RS-232 monitor that I grabbed at the GTE auction? I knew right away how useful it would be for this project! Back at the factory I installed this monitor between one of the CNC machines and the Xenix file server. With the ability to see data moving back and forth I was able to figure out how the file server worked. It was tricky because data was actually delivered in packets. There was a non-trivial conversation that happened between these machines but it looked like the code for this was going to be fun to write!
I was ready to get started!
Tuesday, March 1, 2011
An Auction, an RS-232 monitor and an Apple Lisa
My father called and told me that GTE was auctioning off old equipment. Me and my friend Ray took a break from work in the middle of the day to see if there was anything useful we could use at the factory. There was.
A piece of equipment about the size of a small benchtop oscilloscope caught our attention. It had a 5 inch CRT display, a flat panel keyboard on the front next to the screen and a ribbon cable with a pass-through 25-pin D connector. It was an RS-232 monitor! When I realized what it was I had to have it for a project at work. The idea is that you place this device between devices and it allows you to spy on data that goes back and forth over the serial line. It displayed data in both directions, and you could see it as text or hexadecimal. The price? If I remember correctly I paid $35 for it. Amazing!
I also managed to buy an Apple Lisa computer for $25, but it didn't come with a keyboard. Luckily I noticed the keyboard on a palette of keyboards. I talked to the fellow who won that palette and convinced him that the Lisa keyboard wasn't valuable to him without the computer, and he let me have it.
This was a huge win. I still have the Lisa computer.
A piece of equipment about the size of a small benchtop oscilloscope caught our attention. It had a 5 inch CRT display, a flat panel keyboard on the front next to the screen and a ribbon cable with a pass-through 25-pin D connector. It was an RS-232 monitor! When I realized what it was I had to have it for a project at work. The idea is that you place this device between devices and it allows you to spy on data that goes back and forth over the serial line. It displayed data in both directions, and you could see it as text or hexadecimal. The price? If I remember correctly I paid $35 for it. Amazing!
I also managed to buy an Apple Lisa computer for $25, but it didn't come with a keyboard. Luckily I noticed the keyboard on a palette of keyboards. I talked to the fellow who won that palette and convinced him that the Lisa keyboard wasn't valuable to him without the computer, and he let me have it.
This was a huge win. I still have the Lisa computer.
Thursday, February 24, 2011
Poor Big Bird
No, this isn't a Sesame Street reference! ;-)
One day at CFC the power went out, sort of. Some of the offices had power and some didn't. Maybe a circuit breaker tripped? No, that wasn't it. Like most factories we had 3 phase power. Some parts of the building ran off one phase, and some another. One of the phases went out. This was no big deal for office equipment, but on the factory floor some of the motorized equipment required all 3 phases. If a phase dropped out while a motor was running, it could stall and even burn out. Some of the motors did burn out. Even worse, there was a reflow machine with a steel wire conveyor which ran fiberglass circuitboards through an oven to melt the solder plating to give it a nice shiny finish. The conveyor stopped moving, and the boards caught on fire and filling the factory with a nasty odor. Burning epoxy smells really, really bad.
It took a while to get all this repaired.
Outside on the curb was the cause of all this trouble. A very large bird (maybe a stork?) had decided to take a break. It chose a very dangerous place to sit and met an untimely demise. Up on the utility pole there was a large power transformer which had exploded, and on top of that? A large bird, burnt into a very black cinder, the recipient of that day's Darwin Award!
One day at CFC the power went out, sort of. Some of the offices had power and some didn't. Maybe a circuit breaker tripped? No, that wasn't it. Like most factories we had 3 phase power. Some parts of the building ran off one phase, and some another. One of the phases went out. This was no big deal for office equipment, but on the factory floor some of the motorized equipment required all 3 phases. If a phase dropped out while a motor was running, it could stall and even burn out. Some of the motors did burn out. Even worse, there was a reflow machine with a steel wire conveyor which ran fiberglass circuitboards through an oven to melt the solder plating to give it a nice shiny finish. The conveyor stopped moving, and the boards caught on fire and filling the factory with a nasty odor. Burning epoxy smells really, really bad.
It took a while to get all this repaired.
Outside on the curb was the cause of all this trouble. A very large bird (maybe a stork?) had decided to take a break. It chose a very dangerous place to sit and met an untimely demise. Up on the utility pole there was a large power transformer which had exploded, and on top of that? A large bird, burnt into a very black cinder, the recipient of that day's Darwin Award!
Labels:
3 phase power,
big bird,
circuitboards,
darwin award,
soldering,
transformer
Friday, April 23, 2010
The Expensive Break Clock
One of our Tandy Model 100 computers had become relegated to controlling the buzzer for indicating shift changes, breaks and lunch. We used the signal for controlling the cassette interface to turn the buzzer on and off. A twenty line BASIC program was used to check the time against a schedule that was hard coded into the program.
Invariably for one reason or another this computer would forget the program. Either Bob or I would then run over and type the program in from memory, set the clock and get it running again. I cannot even count the number of times I did this while I worked there, but it was really no big deal because after a few times it only took a minute.
So here was have this computer which was originally purchased for more than $1000 and we were using it to blow a whistle 8 times a day. Nowaways this would be completely appropriate because you can buy a computer on a chip with all the power of the Model 100 for about $30.
Invariably for one reason or another this computer would forget the program. Either Bob or I would then run over and type the program in from memory, set the clock and get it running again. I cannot even count the number of times I did this while I worked there, but it was really no big deal because after a few times it only took a minute.
So here was have this computer which was originally purchased for more than $1000 and we were using it to blow a whistle 8 times a day. Nowaways this would be completely appropriate because you can buy a computer on a chip with all the power of the Model 100 for about $30.
Labels:
basic,
cassette interface,
computer on a chip,
tandy model 100
Wednesday, April 21, 2010
101 Stupid LaserJet Tricks
When I was moved into my new office downstairs, it was located in a space behind what used to be the reception area of the building. The front door was locked from the inside, and visitors would enter a door slightly off to the side and climb stairs to a new reception area.
When anyone visiting would come back down those stairs they would sometimes forget that they came through the side door. Instead they would go out the original glass door, which was an inner door and an outer door. The first door had a lever you pushed to unlatch and open the door. This was locked so that if you passed through this door you couldn't come back in. Once through this door there was another door right there. This had a locked bolt, but you could just unlock the bolt and get out, and invariably this is what people did.
Then I had this idea for a prank. Using the LaserJet printer I printed in great big letters READ THIS. Then below in a tiny 4 point font I printed "If you can read this then you are trapped!" I drew an arrow from the large words to the tiny words by hand. I hung this on the wall between the two glass doors.
Weeks later I was in my office working and I heard some banging and the sound of someone calling out. I went out to find out what was going on. Shock and amazement overcame me when I saw this fellow between the glass doors, banging with his fist and calling for help! He had read the sign and believed it! I laughed and opened the inner door for him and explained that he really wasn't trapped at all. So I showed him how to unlock the bolted outer door. Unfortunately he didn't think this was funny at all. He didn't smile or laugh but he just left without saying a word. Perhaps he was humiliated that he had fallen for the trap?
I was very pleased to see that someone had read the sign and believed it. This was absolutely priceless. Looking back at this prank I should count myself lucky that I didn't get in trouble.
When anyone visiting would come back down those stairs they would sometimes forget that they came through the side door. Instead they would go out the original glass door, which was an inner door and an outer door. The first door had a lever you pushed to unlatch and open the door. This was locked so that if you passed through this door you couldn't come back in. Once through this door there was another door right there. This had a locked bolt, but you could just unlock the bolt and get out, and invariably this is what people did.
Then I had this idea for a prank. Using the LaserJet printer I printed in great big letters READ THIS. Then below in a tiny 4 point font I printed "If you can read this then you are trapped!" I drew an arrow from the large words to the tiny words by hand. I hung this on the wall between the two glass doors.
Weeks later I was in my office working and I heard some banging and the sound of someone calling out. I went out to find out what was going on. Shock and amazement overcame me when I saw this fellow between the glass doors, banging with his fist and calling for help! He had read the sign and believed it! I laughed and opened the inner door for him and explained that he really wasn't trapped at all. So I showed him how to unlock the bolted outer door. Unfortunately he didn't think this was funny at all. He didn't smile or laugh but he just left without saying a word. Perhaps he was humiliated that he had fallen for the trap?
I was very pleased to see that someone had read the sign and believed it. This was absolutely priceless. Looking back at this prank I should count myself lucky that I didn't get in trouble.
Our First Laser Printer
We decided to purchase a laser printer so we could print bill of materials sheets for each job. I managed to find a used HP LaserJet cheap. This was the original LaserJet printer model and had only 128K of RAM. This was fine, except if you wanted to print graphics. You could not even draw a half page of black and white graphics with 128K. This also meant that there was very little room to load fonts into the printer. The saving grace was that there was a font cartridge slot. I bought one of those super font cartridges that had lots of fonts. It turns out that we really only needed one font. I don't remember which one we used, but it was a small monospaced font.
The printer had a serial port, not a Centronics printer port. Normally this would have been considered a limitation, but this was perfect for our shop floor control system which I was building around Arnet multiport RS-232 cards.
I needed to learn just a little bit of Hewlett Packard's PCL (printer control language) to make the LaserJet do its thing. I wrote some code in Smalltalk to drive the printer. Depending on how complex the board design was, these bills of materials sometimes had a lot of information on them. It was somehow very satisfying to produce software that would drive a printer elsewhere in the building. I had never done that before.
The printer was located up in the engineering department, and after they designed a circuitboard for an order they would fill in some fields into the shop floor control system and print out the bill of materials on the LaserJet.
The printer had a serial port, not a Centronics printer port. Normally this would have been considered a limitation, but this was perfect for our shop floor control system which I was building around Arnet multiport RS-232 cards.
I needed to learn just a little bit of Hewlett Packard's PCL (printer control language) to make the LaserJet do its thing. I wrote some code in Smalltalk to drive the printer. Depending on how complex the board design was, these bills of materials sometimes had a lot of information on them. It was somehow very satisfying to produce software that would drive a printer elsewhere in the building. I had never done that before.
The printer was located up in the engineering department, and after they designed a circuitboard for an order they would fill in some fields into the shop floor control system and print out the bill of materials on the LaserJet.
Labels:
arnet,
centronics,
CGA graphics,
font,
Hewlett Packard,
Laserjet,
pcl,
rs-232,
serial port,
shop floor control,
smalltalk
Friday, April 16, 2010
Little Guatemala
Most of the employees at C.F.C. were from below the Texas border. I don't remember ever there being anyone from Mexico, but there probably was. There were people from Nicaragua, El Salvador, Costa Rica, Brazil, Chile, Peru, Ecuador and the Carribean islands like Puerto Rico, the Dominican Republic and Haiti. You name it. There seemed to be more people from Guatemala than from anywhere else. We liked to joke that we were going to fly the flag of Guatemala over the building and declare C.F.C. a sovereign nation, Little Guatemala.
Monday, April 12, 2010
The Fastest Computer in the World - CompuAdd
I invited Bob to my office to show him what I had done with the tracking system idea and I demoed the Smalltalk/V prototype I had written. I showed him what it could do and I explained that we could attach many terminals to it. This went over very well. I told him that in order to do this well we would need a copy of Smalltalk/V 286, which was a more powerful version of Smalltalk/V that could access up to 16MB of RAM. This was $199. We would also need a computer more powerful than anything we had in the factory at that time, and we would need to purchase at least one multiport RS-232 card to get started.
Bob agreed to all this. On top of that he was willing to go all out. The company usually quoted as having the fastest PC clones at that time was Compaq with their DeskPro systems. Bill Machrone from PC Magazine was famous (in my own mind at least) for having said that the DeskPro/20 ran its startup tests so fast that it made him giggle.
But the king of the hill at the time I went looking for a speed demon for our shop floor system was made by CompuAdd. In the reviews I read, the CompuAdd 386/25 was a terrific performer for the budget price of only $6100. Then we needed to add 4MB of RAM for about another $2000, and I'm pretty sure the multiport card was about $900. He agreed to buy this equipment. Wow. Just, wow.
My office wasn't the best place for this machine, so they moved me downstairs into a more central location. The office they gave me was spacious with a very large window. This was great except sometimes the window leaked when it rained. Our facilities manager Joe (yes that was his real name) helped me run some serial cables, and I soldered the 25 pin D connectors onto each end. RS-232 is only designed for 50 foot cable lengths. We needed longer runs than 50 foot. I had to source special low capacitance cable so that we could run cables of 100 foot or more. I needed to short across handshaking lines to make them work, and I made a null modem adapter for each one. I found a supplier in Framingham called Marcus Associates where we bought some used ADM-5 terminals, which were much newer and nicer than the ADM-3A I had prototyped the system on.
Before long we had a working system with terminals in different departments, and a printer for reports. I created a simulated terminal window for the computer itself so I could test the system without consuming a valuable serial port in my office.
This was the beginning of what was an exciting and productive project, even with some very challenging hurdles to overcome.
Labels:
adm-5,
bill machrone,
compaq,
compuadd,
deskpro,
smalltalk/v,
smalltalk/v 286
Sunday, April 4, 2010
My Skunk Works Project
What is a skunk works? A definition from Wikipedia: The designation "skunk works", or "skunkworks", is widely used in business, engineering, and technical fields to describe a group within an organization given a high degree of autonomy and unhampered by bureaucracy, tasked with working on advanced or secret projects.
In order to prototype the multiuser shop floor control system, I needed a real video terminal. The idea would be to take a computer and install one or more multiport RS-232 cards and connect terminals to them from all over the building.
The following work was done more or less under the radar. I wasn't trying to get away with anything, but I hoped to surprise Bob with the results I hoped to achieve. I managed to requisition an old Lear Sieglar ADM-3A terminal on the cheap. This was one of those pastel blue terminals with a "space age bubble" look to it. Needham High School had a few of these connected up to their PDP-11.
In order to make this work with Smalltalk/V I needed a tiny machine code routine so I could make calls to the serial port. I was lucky to find someone on a bulletin board who was kind enough to write this for me. I was even luckier that it worked! The machine code file was only 14 bytes long!
It didn't take me very long at all to create a master monitor, a login routine, a simple command parser, a simple job object, departments that could hold jobs, and the ability to move the work from one department to another and list the contents of each department.
What was absolutely most amazing about what Smalltalk/V made possible is that the system was extensible and debuggable... as it ran! If there was a runtime error while executing some command from the terminal, a debugger opened on the computer screen. I could then fix the bug right there, and the terminal could be restarted without bringing the system down for a recompile.
This was very promising to say the least.
In order to prototype the multiuser shop floor control system, I needed a real video terminal. The idea would be to take a computer and install one or more multiport RS-232 cards and connect terminals to them from all over the building.
The following work was done more or less under the radar. I wasn't trying to get away with anything, but I hoped to surprise Bob with the results I hoped to achieve. I managed to requisition an old Lear Sieglar ADM-3A terminal on the cheap. This was one of those pastel blue terminals with a "space age bubble" look to it. Needham High School had a few of these connected up to their PDP-11.
In order to make this work with Smalltalk/V I needed a tiny machine code routine so I could make calls to the serial port. I was lucky to find someone on a bulletin board who was kind enough to write this for me. I was even luckier that it worked! The machine code file was only 14 bytes long!
It didn't take me very long at all to create a master monitor, a login routine, a simple command parser, a simple job object, departments that could hold jobs, and the ability to move the work from one department to another and list the contents of each department.
What was absolutely most amazing about what Smalltalk/V made possible is that the system was extensible and debuggable... as it ran! If there was a runtime error while executing some command from the terminal, a debugger opened on the computer screen. I could then fix the bug right there, and the terminal could be restarted without bringing the system down for a recompile.
This was very promising to say the least.
Labels:
adm-3a,
debugger,
lear sieglar,
machine code,
multiport,
needham high school,
PDP-11,
rs-232,
serial port,
skunk works,
smalltalk/v,
terminal,
wikipedia
Saturday, April 3, 2010
Christmas Vacation
I didn't take the plunge into Smalltalk right away. I wasn't completely sure it was the right choice. I was at the SoftPro store in Burlington in late 1988 and I noticed that they had a copy of the Smalltalk/V software from Digitalk. I asked them if they had any brochures, and they did. Three different full color, double sided marketing sheets. Very nicely done. Everything I saw about the language reminded me of Forth, but it had this idea of objects.
I wasn't about to ask my boss to buy yet another programming tool, so in December I bought it myself. I took the Tandy 1000SX home from work over Christmas vacation and dove into the Smalltalk/V manual, following the tutorial.
I was not disappointed. What an amazing language! I had never used anything so dynamic, or so graphical. Almost all the source code for each and every thing in Smalltalk is there. You can see it and you can modify it if you like. This was very compatible with my observation that Smalltalk and Forth were conceptually similar. The one surprise that really topped off this sundae with a cherry? Smalltalk has built-in multiprocessing. This was the ingredient that I sorely needed to produce the multiuser shop floor control system! What luck!
I wasn't about to ask my boss to buy yet another programming tool, so in December I bought it myself. I took the Tandy 1000SX home from work over Christmas vacation and dove into the Smalltalk/V manual, following the tutorial.
I was not disappointed. What an amazing language! I had never used anything so dynamic, or so graphical. Almost all the source code for each and every thing in Smalltalk is there. You can see it and you can modify it if you like. This was very compatible with my observation that Smalltalk and Forth were conceptually similar. The one surprise that really topped off this sundae with a cherry? Smalltalk has built-in multiprocessing. This was the ingredient that I sorely needed to produce the multiuser shop floor control system! What luck!
Labels:
christmas,
digitalk,
forth,
multiprocessing,
shop floor control,
smalltalk,
smalltalk/v,
softpro,
tandy 1000sx
From Actor to the Real Thing
I decided that I needed more information about the Actor programming language. While at The Bit Bucket one day I asked Laird if he could get me some literature about Actor, figuring the store could place an order for me. He gladly accepted my request.
A few weeks later Laird had the materials in hand and he presented them to me. Then he said something that would completely change everything. He asked me, "Why don't you have a look at Smalltalk?" He told me that Smalltalk was the real deal.
This was not the first time I had heard of Smalltalk. At the New England Mobile Book Fair I had seen a book about it. I ran back to my office and started digging through issues of BYTE until I found an ad for something called Smalltalk/V.
I had seen this sort of ad before, but I just skimmed over it thinking it was a kind of communications program of the sort used with modems. There was at this time a very popular application of this kind named Crosstalk XVI, and this was the source of my confusion.
The ad seemed very interesting. I began to research Smalltalk. I learned that there was an August 1981 issue of BYTE dedicated to exploring Smalltalk. I went to the Boston Public Library and xeroxed all the articles from that issue. It cost me about $40 to do this. So I began to educate myself about Smalltalk.
A few weeks later Laird had the materials in hand and he presented them to me. Then he said something that would completely change everything. He asked me, "Why don't you have a look at Smalltalk?" He told me that Smalltalk was the real deal.
This was not the first time I had heard of Smalltalk. At the New England Mobile Book Fair I had seen a book about it. I ran back to my office and started digging through issues of BYTE until I found an ad for something called Smalltalk/V.
I had seen this sort of ad before, but I just skimmed over it thinking it was a kind of communications program of the sort used with modems. There was at this time a very popular application of this kind named Crosstalk XVI, and this was the source of my confusion.
The ad seemed very interesting. I began to research Smalltalk. I learned that there was an August 1981 issue of BYTE dedicated to exploring Smalltalk. I went to the Boston Public Library and xeroxed all the articles from that issue. It cost me about $40 to do this. So I began to educate myself about Smalltalk.
Friday, April 2, 2010
What's a Popkin?
Well, the question really is "Who is Laird Popkin?" Good question.
In the summer of 1988 I met Laird Popkin when he was working at The Bit Bucket in West Newton. The Bit Bucket was this cool store with cool people and with cool stuff in the windows, like Amiga computers showing ray traced animations with shiny chrome balls and also a PDP-8. Try to find one of those on ebay!
Now, Laird was this nice fellow a couple of years older than me. He gave me my first ever demonstration of Windows 2.1. He showed me how an Atari ST could run Mac software if you ripped the contents of a Mac ROM. He introduced me to bulletin boards and FidoNet, and emoticons! He even invited me to his place in Sudbury (or was it in Weston?) where he shared a house with a bunch of other techies and their Apple II's and a Jaguar motoring enthusiast. He loaned me his copy of The Eudamonic Pie, which is this fascinating book about how some west coast nerds invented a computer in a shoe for beating roulette. Eat your heart out Maxwell Smart! I still have the book. Sorry Laird.
Laird and I had lunch a few times and struck up some great conversations. We talked about computers, science, consciousness and God.
Wherever you are Laird, thank you!
In the summer of 1988 I met Laird Popkin when he was working at The Bit Bucket in West Newton. The Bit Bucket was this cool store with cool people and with cool stuff in the windows, like Amiga computers showing ray traced animations with shiny chrome balls and also a PDP-8. Try to find one of those on ebay!
Now, Laird was this nice fellow a couple of years older than me. He gave me my first ever demonstration of Windows 2.1. He showed me how an Atari ST could run Mac software if you ripped the contents of a Mac ROM. He introduced me to bulletin boards and FidoNet, and emoticons! He even invited me to his place in Sudbury (or was it in Weston?) where he shared a house with a bunch of other techies and their Apple II's and a Jaguar motoring enthusiast. He loaned me his copy of The Eudamonic Pie, which is this fascinating book about how some west coast nerds invented a computer in a shoe for beating roulette. Eat your heart out Maxwell Smart! I still have the book. Sorry Laird.
Laird and I had lunch a few times and struck up some great conversations. We talked about computers, science, consciousness and God.
Wherever you are Laird, thank you!
Labels:
amiga,
apple II,
computer science,
consciousness,
emoticon,
eudamonic pie,
fidonet,
god,
jaguar,
laird popkin,
mac rom,
maxwell smart,
pdp-8,
ray tracing,
the bit bucket,
windows 2.1
Sunday, March 28, 2010
Welcome to My Research and Development Lab
In search of the perfect next development tool to create our shop floor control system I was now in full blown research and development mode. I would read lots of magazines looking to learn as much as I could. I had a modem and a phone line in my office now too, and I was downloading free programming tools and trying them out.
Bob allowed me to take off and go to the public library so that I could read magazines articles about languages and programming. There were plenty of articles about object oriented extensions to languages like C and Forth. I found all this very interesting, but I had no experience with object oriented programming so I really didn't know what to think.
I saw an ad in a magazine for a language called Actor by the Whitewater Group, and this really caught my attention. The code looked like C, but it was supposed to be object oriented. There was a code snippet in a screenshot in the ad that implemented a very simple drawing program. The code was just a few lines long. The screenshot also showed the simple drawing program and they used it to draw a version of the product logo. The idea was that you could create very sophisticated software with very little code. The only thing was that the software was not cheap, and it required a copy of Microsoft Windows 2.1. We weren't yet running Windows on any computer in our office. This was in the summer of 1988.
One other tool I was interested in was called Matrix Layout. This was a visual flowcharting tool that produced graphical DOS applications. I guess you could call it a kind of HyperCard, which is a Macintosh programming tool for end users. It was only $149 so I obtained a copy for myself. The developer's office was in Boston, so I just drove there one day after work and bought it at the receptionist's desk. I was ultimately quite disappointed by this product. I tried to prototype a version of the video rental application I wrote in BASIC, but it was too much effort for the result. Once you've used a real programming language, these visual tools for non-programmers feel very limited. Clarion is really a lot better because it has a real programming language you can use to script extensions beyond the visual layout tools. Matrix Layout did not provide any way to write scripts. A simple BASIC interpreter would have done great things for this tool.
Then there was Ashton Tate's Framework. This was a fascinating programming system where modules of your application are in a frame, which can hold more frames, and these can hold yet more frames, etc. It had a scripting language called FRED which was based on a Lisp, a very powerful language. Framework was an integrated office suite, and it was extensible using the frame concept and the the scripting language. I never actually got to try it out, but I'm not sure it would have been suitable for the shop floor control system I wanted to develop anyways.
If Bob was beginning to wonder about whether I was ever going to produce anything for all the time and money spent, I never knew it. He was very patient. I did manage to stay busy with smaller projects. He had lots of ideas to enhance the applications I had already written, and he would come to me and we would talk about what he would like.
Bob allowed me to take off and go to the public library so that I could read magazines articles about languages and programming. There were plenty of articles about object oriented extensions to languages like C and Forth. I found all this very interesting, but I had no experience with object oriented programming so I really didn't know what to think.
I saw an ad in a magazine for a language called Actor by the Whitewater Group, and this really caught my attention. The code looked like C, but it was supposed to be object oriented. There was a code snippet in a screenshot in the ad that implemented a very simple drawing program. The code was just a few lines long. The screenshot also showed the simple drawing program and they used it to draw a version of the product logo. The idea was that you could create very sophisticated software with very little code. The only thing was that the software was not cheap, and it required a copy of Microsoft Windows 2.1. We weren't yet running Windows on any computer in our office. This was in the summer of 1988.
One other tool I was interested in was called Matrix Layout. This was a visual flowcharting tool that produced graphical DOS applications. I guess you could call it a kind of HyperCard, which is a Macintosh programming tool for end users. It was only $149 so I obtained a copy for myself. The developer's office was in Boston, so I just drove there one day after work and bought it at the receptionist's desk. I was ultimately quite disappointed by this product. I tried to prototype a version of the video rental application I wrote in BASIC, but it was too much effort for the result. Once you've used a real programming language, these visual tools for non-programmers feel very limited. Clarion is really a lot better because it has a real programming language you can use to script extensions beyond the visual layout tools. Matrix Layout did not provide any way to write scripts. A simple BASIC interpreter would have done great things for this tool.
Then there was Ashton Tate's Framework. This was a fascinating programming system where modules of your application are in a frame, which can hold more frames, and these can hold yet more frames, etc. It had a scripting language called FRED which was based on a Lisp, a very powerful language. Framework was an integrated office suite, and it was extensible using the frame concept and the the scripting language. I never actually got to try it out, but I'm not sure it would have been suitable for the shop floor control system I wanted to develop anyways.
If Bob was beginning to wonder about whether I was ever going to produce anything for all the time and money spent, I never knew it. He was very patient. I did manage to stay busy with smaller projects. He had lots of ideas to enhance the applications I had already written, and he would come to me and we would talk about what he would like.
Labels:
actor,
ashton tate,
basic,
c,
forth,
framework,
fred,
hypercard,
Lisp,
matrix layout,
microsoft windows,
object oriented,
scripting,
visual programming,
whitewater group
Tuesday, March 23, 2010
Thinking Forth
I wrote some small programs in C, and I was having a good time doing that. However, my ambition was to write a shop floor control system and I started work on that using C. I found that C was manageable for small programming tasks. As the project got larger dealing with all the pointer arithmetic, manual memory management and casting of numeric types was beginning to drive me nuts. I had to conclude that C is a really good language for operating system work because it was designed for that, but that for application level work it just shouldn't be necessary to be concerned with bits, bytes, pointers, memory allocation etc. Heck, BASIC would have been a better language than C for this.
After my disappointing experience with Wendin DOS and C I decided that I needed a more expressive programming language. I started to dabble in different languages, and I would write toy shop floor control systems to see how the code would come together. My work was exploratory in the sense that I wasn't in a big hurry to produce a result. I felt that I didn't know which course to take. In particular, I didn't know how to code a solution to overcome the hurdle of multitasking.
For example I experimented with a 4GL called Clarion. Bob was willing to spend several hundred dollars on this based on some stellar reviews that it received in magazines. Clarion really was great, but it was oriented primarily as a development tool for forms based database apps, and it had a nice reports engine. It did also include a compiler for BASIC-like language, but this was a short lived experiment. I do seem to remember creating a custom app for accounting with Clarion so we did get some value for the money.
So after this my mind turned back to the Forth programming language. I had already some experience with it, and I was excited to see if I could use it to create a multiuser shop floor system.
I found a version of Forth called Fifth, which included a simple IDE for MS-DOS. I also played with a couple of other Forth implementations.
So I went looking and bought a book titled Thinking Forth by Leo Brodie, the same author of the wonderful Starting Forth book I encountered a few years earlier. This was the most inspiring book about programming I had read yet. I enjoyed Leo's explanations about how software needs to be written abstractly, that code should be as small and simple as possible, about the importance of choosing the best words for procedures and variables, and also how to write well factored code and what that really means. The book also has great interviews with experienced Forth programmers and many funny and illustrative cartoons. Great stuff. Now, where did I put my copy?
After my disappointing experience with Wendin DOS and C I decided that I needed a more expressive programming language. I started to dabble in different languages, and I would write toy shop floor control systems to see how the code would come together. My work was exploratory in the sense that I wasn't in a big hurry to produce a result. I felt that I didn't know which course to take. In particular, I didn't know how to code a solution to overcome the hurdle of multitasking.
For example I experimented with a 4GL called Clarion. Bob was willing to spend several hundred dollars on this based on some stellar reviews that it received in magazines. Clarion really was great, but it was oriented primarily as a development tool for forms based database apps, and it had a nice reports engine. It did also include a compiler for BASIC-like language, but this was a short lived experiment. I do seem to remember creating a custom app for accounting with Clarion so we did get some value for the money.
So after this my mind turned back to the Forth programming language. I had already some experience with it, and I was excited to see if I could use it to create a multiuser shop floor system.
I found a version of Forth called Fifth, which included a simple IDE for MS-DOS. I also played with a couple of other Forth implementations.
So I went looking and bought a book titled Thinking Forth by Leo Brodie, the same author of the wonderful Starting Forth book I encountered a few years earlier. This was the most inspiring book about programming I had read yet. I enjoyed Leo's explanations about how software needs to be written abstractly, that code should be as small and simple as possible, about the importance of choosing the best words for procedures and variables, and also how to write well factored code and what that really means. The book also has great interviews with experienced Forth programmers and many funny and illustrative cartoons. Great stuff. Now, where did I put my copy?
Labels:
4GL,
allocation,
basic,
c,
Clarion,
database,
fifth,
forth,
leo brodie,
memory,
multitasking,
pointers,
thinking forth,
wendin-dos
Monday, March 22, 2010
Books I didn't buy
Before there were big book stores like Borders or Barnes & Noble there was The New England Mobile book fair in Newton. This could hardly be considered walking distance from my home growing up in Needham, but I had made the trip on foot a couple of times as a kid with my brother Ernie. Now I made the trip more frequently since I had a car.
This store was really just a big warehouse, poorly lit, and not very well organized. However this was the largest collection of books for sale to be had for miles.
I remember clearly two books that I browsed there that I didn't buy but which left an impression on me.
One was called A Small C Compiler, by James Hendrix. Not the famous musician, of course. ;-) I read just enough of the book to appreciate its biggest idea. Once you write enough of a C compiler in assembly language, you can use that C compiler to write itself! Like I said I didn't buy the book, but I learned important ideas from just browsing through it.
Another book was call Smalltalk-80: The Language and Its Implementation. This was a tan and blue hardcover. I can't say I really understood at that time what I was looking at, but it was interesting enough that I didn't forget it. In more recent years I did find a copy of it used and now am a proud owner. Smalltalk is a terrific language this book explains in wonderful detail how it works. Nowadays the entire contents of this book can be read for free online.
This store was really just a big warehouse, poorly lit, and not very well organized. However this was the largest collection of books for sale to be had for miles.
I remember clearly two books that I browsed there that I didn't buy but which left an impression on me.
One was called A Small C Compiler, by James Hendrix. Not the famous musician, of course. ;-) I read just enough of the book to appreciate its biggest idea. Once you write enough of a C compiler in assembly language, you can use that C compiler to write itself! Like I said I didn't buy the book, but I learned important ideas from just browsing through it.
Another book was call Smalltalk-80: The Language and Its Implementation. This was a tan and blue hardcover. I can't say I really understood at that time what I was looking at, but it was interesting enough that I didn't forget it. In more recent years I did find a copy of it used and now am a proud owner. Smalltalk is a terrific language this book explains in wonderful detail how it works. Nowadays the entire contents of this book can be read for free online.
Friday, March 19, 2010
Moving to Belmont
About this time I moved to Belmont with my brother Paul and his little daughter Christina, and also a friend of ours from our church named Stuart Harrington. Belmont is a very nice little town between next to Waltham where I worked, so I had a 15 minute commute. What a great place to live. Drive 15 minutes one way and you're in Boston. Drive the other direction and you're in Lincoln. I really enjoyed that.
Eventually Stuart got married and moved out and we were joined by another friend from church named Paul Ward. Paul was a sonar operator in a fast attack sub when he served in the Navy. He told interesting stories. We decided to share a room. We bought a steel tubular framed bunk cot. I would get up early in the morning and help him deliver newpapers in Lexington. I had inherited one of the Osborne 1 computers from work which Paul and I would spend some time tinkering with and banging out simple BASIC programs. My memory is a bit foggy, but I seem to remember giving the computer to Paul.
I thought I might be able to purchase a new computer for myself now that I had a regular paying job. I was interested in practicing my C programming and Radio Shack had a nice little portable called the Tandy Model 600. I read somewhere that CP/M and a C compiler could be had for this little machine and I thought this would be a very neat computer to own. When they were getting ready to discontinue this model the price dropped well below a thousand dollars. However I wasn't very good at saving money.
I never did purchase a Model 600. Just as well because I think I would have outgrown it very quickly.
Eventually Stuart got married and moved out and we were joined by another friend from church named Paul Ward. Paul was a sonar operator in a fast attack sub when he served in the Navy. He told interesting stories. We decided to share a room. We bought a steel tubular framed bunk cot. I would get up early in the morning and help him deliver newpapers in Lexington. I had inherited one of the Osborne 1 computers from work which Paul and I would spend some time tinkering with and banging out simple BASIC programs. My memory is a bit foggy, but I seem to remember giving the computer to Paul.
I thought I might be able to purchase a new computer for myself now that I had a regular paying job. I was interested in practicing my C programming and Radio Shack had a nice little portable called the Tandy Model 600. I read somewhere that CP/M and a C compiler could be had for this little machine and I thought this would be a very neat computer to own. When they were getting ready to discontinue this model the price dropped well below a thousand dollars. However I wasn't very good at saving money.
I never did purchase a Model 600. Just as well because I think I would have outgrown it very quickly.
Labels:
basic,
c compiler,
cp/m,
osborne 1,
radio shack,
tandy model 600
Thursday, March 18, 2010
Mousing Around
Since my Tandy 1000SX had high resolution graphics (if you could call monochrome CGA 640x200 high resolution) we thought it made sense to get a mouse and learn to program with it. Then we might be able to write even better software for the engineers to use when setting up each circuitboard for production. We had a crude graphical CNC simulator that ran on the Kaypro machines, so this could be a step forward for us with more detailed graphics and a mouse for a pointing device.
We bought the mouse at Radio Shack. It was a pretty nice little mouse, and it came with its own interface card like most mice did back then. I'm guessing that this mouse was made by the same people who made the the famous Microsoft Mouse. It was very similar. All the mice at that time had a ball for tracking movement, and this one was a metal ball with a rubber coating.
I believe that my first experiments with the mouse were in Turbo BASIC. There were no built in commands for the mouse. I don't remember exactly how the mouse was read either, but I remember there was documentation. Playing around with some code for drawing on the screen with the mouse inspired me to write an experimental character recognizer. I would draw letters on the screen and the program would attempt to convert them to ASCII characters. It really wasn't that hard to do, but prototypes don't have to be practical. It was fun.
We bought the mouse at Radio Shack. It was a pretty nice little mouse, and it came with its own interface card like most mice did back then. I'm guessing that this mouse was made by the same people who made the the famous Microsoft Mouse. It was very similar. All the mice at that time had a ball for tracking movement, and this one was a metal ball with a rubber coating.
I believe that my first experiments with the mouse were in Turbo BASIC. There were no built in commands for the mouse. I don't remember exactly how the mouse was read either, but I remember there was documentation. Playing around with some code for drawing on the screen with the mouse inspired me to write an experimental character recognizer. I would draw letters on the screen and the program would attempt to convert them to ASCII characters. It really wasn't that hard to do, but prototypes don't have to be practical. It was fun.
Labels:
ascii,
CGA graphics,
circuitboard,
cnc,
kaypro,
microsoft mouse,
mouse,
radio shack,
tandy 1000sx,
turbo basic
The Epson QX-10
Somewhere we had acquired an Epson QX-10. This was a Z80 powered machine running CP/M, but it wasn't originally conceived as such. Epson had written a CP/M compatible operating system called TPM, and they had some lofty ideas about how a computer should interact with people. They chose Forth as the language to deliver their ideas. So there were some applications which were seamlessly integrated together, but this didn't wind up being a successful product.
So instead we treated this machine like it was another Kaypro. Bob asked me to write a program that would optimize the use of the fiberglass panels we made our circuitboards from. The panels were 24 by 36 inches (I think). For some order we might need a panel that was 8 by 10 inches. How should we cut the panel to reduce waste?
So I wrote a program in Microsoft BASIC for the QX-10. The user would enter the desired size of the material, and it would draw a rough image of the panel as it should be cut with instructions something like:
Insert the long way and cut 10 inches for 3 panels 10 by 24 inches.
Take each of those panels and cut 8 inches for 3 panels 8 by 10 inches each.
Total yield 9 panels 8 by 10.
Waste 1 panel 6 by 24 inches.
We used the computer for this purpose for several years. Hopefully the computer paid for itself in this role. :-)
So instead we treated this machine like it was another Kaypro. Bob asked me to write a program that would optimize the use of the fiberglass panels we made our circuitboards from. The panels were 24 by 36 inches (I think). For some order we might need a panel that was 8 by 10 inches. How should we cut the panel to reduce waste?
So I wrote a program in Microsoft BASIC for the QX-10. The user would enter the desired size of the material, and it would draw a rough image of the panel as it should be cut with instructions something like:
Insert the long way and cut 10 inches for 3 panels 10 by 24 inches.
Take each of those panels and cut 8 inches for 3 panels 8 by 10 inches each.
Total yield 9 panels 8 by 10.
Waste 1 panel 6 by 24 inches.
We used the computer for this purpose for several years. Hopefully the computer paid for itself in this role. :-)
Labels:
circuitboard,
cp/m,
epson qx-10,
fiberglass,
forth,
kaypro,
microsoft basic,
tpm,
valdocs
Monday, March 15, 2010
Wendin DOS and C
One of Bob's ideas about improving our shop floor tracking system was to purchase a bunch of very simple wall terminals and control them from a single computer. This was meant to be a very economical solution. Workers in each department would type in the job numbers and quantities and so no one would need to run around collecting data with a bar code wand. I thought this was a great idea, and I figured I could write something like this in C.
To make this work I would need to write a service routine to monitor the serial ports, and the application would need to essentially multitask. I used C structs to manage related bits of information and created routines to read and write data to disk files. The program would present a simple prompt for logging in, specifying a department and entering a job information.
This was all fine, but it was hard to add new functionality to the system, and I was finding it frustrating dealing with memory bugs and pointer related bugs.
I decided that I needed a multiuser system. If I took the multitasking out of my C code then my programs would be simpler. I noticed an ad in a magazine for a multitasking version of DOS called Wendin DOS. This version of DOS was based on a VMS architecture, and it was very inexpensive. I approached Bob and he bought a copy.
On my Tandy 1000SX Wendin DOS was sluggish. I hoped that this wouldn't matter much because if I could create a working system then we could buy a more powerful 80286 computer to run it on. I was able to create multiple sessions and run my C tracking system in them. Each of them ran in its own text window. This was amazing to me!
Now the bad news. Wendin DOS would crash without warning. The whole screen would suddenly clear and display a "guru" error message. Guru error number such and such. This was really weird. What was a guru, and why was it in my computer?
Some of the error messages were explained in the manual, but some weren't. It became clear to me that there was nothing I was doing to make this happen. I contacted the people at Wendin and even got a response, but they didn't fix anything.
Ultimately I had to give up on Wendin DOS and look for another solution.
To make this work I would need to write a service routine to monitor the serial ports, and the application would need to essentially multitask. I used C structs to manage related bits of information and created routines to read and write data to disk files. The program would present a simple prompt for logging in, specifying a department and entering a job information.
This was all fine, but it was hard to add new functionality to the system, and I was finding it frustrating dealing with memory bugs and pointer related bugs.
I decided that I needed a multiuser system. If I took the multitasking out of my C code then my programs would be simpler. I noticed an ad in a magazine for a multitasking version of DOS called Wendin DOS. This version of DOS was based on a VMS architecture, and it was very inexpensive. I approached Bob and he bought a copy.
On my Tandy 1000SX Wendin DOS was sluggish. I hoped that this wouldn't matter much because if I could create a working system then we could buy a more powerful 80286 computer to run it on. I was able to create multiple sessions and run my C tracking system in them. Each of them ran in its own text window. This was amazing to me!
Now the bad news. Wendin DOS would crash without warning. The whole screen would suddenly clear and display a "guru" error message. Guru error number such and such. This was really weird. What was a guru, and why was it in my computer?
Some of the error messages were explained in the manual, but some weren't. It became clear to me that there was nothing I was doing to make this happen. I contacted the people at Wendin and even got a response, but they didn't fix anything.
Ultimately I had to give up on Wendin DOS and look for another solution.
Friday, March 12, 2010
Watch City
C.F.C. needed a bigger place to make its product, so we decided to move to 179 Bear Hill Road in Waltham, Massachusetts right on Route 128 and across from a Polaroid plant. 3Com was in the building next to us. This facility was huge compared to the building it occupied in Newtonville. I got my own office, as did a lot of other people. This was an interesting turn in my own life just because my mother grew up in Waltham and I was born there.
Waltham is often billed as "the birthplace of the American industrial revolution" and is famous for being the home of the Boston Manufacturing Company. It was also home to the Waltham Watch Company, and so Waltham is known as Watch City. As of the time of this writing I live in Ashland, Massachusetts which is the birthplace of the electric clock. An interesting coincidence.
C.F.C. was growing fast and a lot of interesting things were about to happen.
Waltham is often billed as "the birthplace of the American industrial revolution" and is famous for being the home of the Boston Manufacturing Company. It was also home to the Waltham Watch Company, and so Waltham is known as Watch City. As of the time of this writing I live in Ashland, Massachusetts which is the birthplace of the electric clock. An interesting coincidence.
C.F.C. was growing fast and a lot of interesting things were about to happen.
Labels:
3Com,
ashland,
electric clock,
polaroid,
waltham,
watch city
Monday, March 8, 2010
All Night Long
About this time I got a phone call from the video rental store in Somerville which was using the software that I wrote when working for Patrick Alessi. They were having a problem with their hard drive. They were using an IBM PC/XT with a 10MB hard drive. They were backing up their hard drive onto about 30 floppy disks but for some reason their restore wasn't working correctly. They asked if I could help.
I drove to Somerville and took their computer home with me. I used a disk editor application to examine the disk. I needed to look at each sector on the disk and manually reconstruct their database. I was up all night long working on this. Thankfully I did manage to make their system work again. I took their computer back to the store and gave them the bill. $115. I was surprised to see the owner thought this was too much, but I thought it was actually a good deal given the heroic effort I put in. I didn't lower my price.
I was really, really tired and when I got home there was a church meeting going in our living room, so I sat down. My eyelids were very heavy, and I could barely stay awake. When the meeting was over I'll never forget that Joe Silipo, the one doing most of the speaking, came up to me. I thought he was going to scold me but he just smiled and said, "Brother, get some sleep."
I drove to Somerville and took their computer home with me. I used a disk editor application to examine the disk. I needed to look at each sector on the disk and manually reconstruct their database. I was up all night long working on this. Thankfully I did manage to make their system work again. I took their computer back to the store and gave them the bill. $115. I was surprised to see the owner thought this was too much, but I thought it was actually a good deal given the heroic effort I put in. I didn't lower my price.
I was really, really tired and when I got home there was a church meeting going in our living room, so I sat down. My eyelids were very heavy, and I could barely stay awake. When the meeting was over I'll never forget that Joe Silipo, the one doing most of the speaking, came up to me. I thought he was going to scold me but he just smiled and said, "Brother, get some sleep."
Labels:
all nighter,
backup,
disk editor,
hard drive,
ibm xt,
sleep,
somervillle,
video rental
MIX C
Unlike today, in the 1980s most computer magazines like BYTE, Compute!, and PC Magazine had lots of articles about programming and programming languages. BASIC, Pascal, Prolog, Lisp, Forth, assembly language; you name it. In 1987 C was a very popular language and a good C programmer made good money so I decided that I should learn it.
I found an magazine ad for MIX C headlined "C for yourself". They had a very special deal called MIX C Works and this included the compiler, a split screen code editor, and a source level debugger for only $89.90. The ad claimed that the included book would make learning C easy. I paid for this software myself, and it was so exciting to open the package when it arrived in the mail. Nice new crisp books and disks. It all felt very professionally done. It was a great investment.
It was very exciting to dig into the C tutorial and use the editor and the source level debugger. This was really well written software and book was as good as the ad promised. C is a nice, small language and well written C is actually quite pretty to look at with those curly braces.
We had some simple applications in engineering that were perfect for learning a new language. Open a file, translate the information in some way and write it back out to a new file.
I found an magazine ad for MIX C headlined "C for yourself". They had a very special deal called MIX C Works and this included the compiler, a split screen code editor, and a source level debugger for only $89.90. The ad claimed that the included book would make learning C easy. I paid for this software myself, and it was so exciting to open the package when it arrived in the mail. Nice new crisp books and disks. It all felt very professionally done. It was a great investment.
It was very exciting to dig into the C tutorial and use the editor and the source level debugger. This was really well written software and book was as good as the ad promised. C is a nice, small language and well written C is actually quite pretty to look at with those curly braces.
We had some simple applications in engineering that were perfect for learning a new language. Open a file, translate the information in some way and write it back out to a new file.
Labels:
assembly language,
basic,
byte magazine,
c,
compute magazine,
debugger,
forth,
learning C,
Lisp,
MIX C,
Pascal,
pc magazine,
Prolog
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.
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.
Subscribe to:
Posts (Atom)
