Showing posts with label memoirs. Show all posts
Showing posts with label memoirs. Show all posts

Friday, September 5, 2025

Volleyball

Recently I attended my granddaughter's varsity volleyball game.  There are no sports besides volleyball that I enjoy watching.   Perhaps this is because there are no other sports thst i enjoy playing. 

I first played volleyball in the most quintessential place: Santa Monica Beach.  On sand.   This matters a lot because you take risks diving on sand that make no sense on concrete.  At USC, I joined pickup games with the engineering students.  At an employer in Mountain View, my co-workers and I played volleyball behind our building on the edge of the swamps that adjoin San Francisco Bay.  We had great fun, sometimes chasing balls into the water.

At a couple of the startups where I worked in Telecom Valley, we had organized volleyball leagues of the various companies in our business park.  These are very happy memories of the happiest time of my life.  We were again on sand. 

Watching teenagers play volleyball as it should be played (receive, set, spike) is a real thrill with saves that often involve rolls across the floor is great fun.

I hope to drop enough more weight to resume playing volleyball.   Perhaps there is an an old fogeys league here.

Tuesday, May 27, 2025

Gcode Subroutines

I knew gCode supported subroutines.   Because I am often performing the same cut repeatedly but .001" or .01" deeper each time, a subroutine seems a useful way to do this.  But short of passing in the Z parameter as it advances downward,  how would work?

Then I remembered that the positioning command G1 is absolute position.   This implies there is a relative position command.  No, but there is a modal control for relative positioning.   G91 changes to relative mode; G90 goes back to absolute mode. Hence, this code that calls the O100 subroutine which moves Z down .01" on each call.  Actually. 02" because the first cut is the TO cut and the second cut is the return to start position.
 
I was able to find a WiFI USB that lets my shop Linux PC engage in useful metworking.  From 24 Kbps to 15 Mbps. Without installing new drivers, which is always the bugaboo of Linux.
%
g17 g20 g54
O100 sub
(cut Y line subroutine)
G91 (relative movement)
G1 z-0.0100 F2.0000
G90 (absolute movement)
(start point)
G1 X-0.0610 Y-0.0610 F5.0000
(cut across Y)
G1 Y3.2710 F5.0000
G91
G1 Z-0.0100  F2.0000
G90
(cut back across Y)
G1 X-0.0610 Y-0.0610 F5.0000
O100 endsub
G1 Z1 F25
G1 X-0.0610 Y-0.0610 F5.0000
G1 Z0.05 F25
G1 Z-0.3200 F2.0000
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
O100 call
G1 Z2 F25
G1 x0 Y0 F5.0000
m2
%
Some dialects of gCode let you call a subroutine with a count of calls to make; linuxCNC is not among them.

It does not make it run any faster, nor does the C program get any faster or simpler,  but it is the right way to do it!  The invention of the subroutine deserves more honor and praise than it usually gets.

Obscure fact: my first full time job involved programming a Univac 1219, the commercial version of, I believe the AN/UYK-7 (radar fire control).  It had a sad little attempt at a subroutine call: B7IJ.  You called a subroutine at X.   The processor had no concept of a stack (1965), so the return address would be stored at X and execution would start at X+1.  (Just to add to the weirdness, this processor used 18-bit words, usually represented as 3 bit nibbles.)  

When you were ready to return to the caller, you did an indirect jump through the address stored at X.  Pretty obviously,  recursion was not possible.  I am sure some clever engineer came up with some Rube Goldberg method of creating a stack to allow recursion.


Monday, January 20, 2025

In 1969...

My cousin Michael, recently returned from the all-expenses paid tour of Vietnam,  my sister Carolyn and I did one of the great trips of my life, although I did not fully appreciate it at the time.  

We backpacked from Agnew Meadows in the eastern Sierras to Thousand Islands Lake.  This is a place of spectacular beauty.  I was 12, and not used to serious hiking, much less carrying a 10 pound pack.  But in my memory,  it was awesome.   Ever since my 2014 stroke, I have regretted that I did not do that again.  My health just was not good enough to spend days out of contact with emergency medical services. 

If you want to see its beauty,  see this video of a guy's overnight backpacking trip there. He must be in great shape.  We needed three days to get there and three to get back.

I am healthy enough now that it no longer seems risky to do an overnight backpacking trip. 

Saturday, June 1, 2024

Bill Bryson's The Life and Times of the Thunderbolt Kid: A Memoir

My oldest sister, who was born when the victors of WW2 were still in doubt, sent this to me.

Ostensibly this is a memoir but I would call it a humor-enhanced edition.  (His mother was suxh a bad cook so  the family cslled the kitchen "thr Burn Unit.")  Although four years older than me, many aspects of 1950s life were not so terribly different from my earliest memories.  My memoirs will be factual.   To the extent they will be funny, it will usually because the events (one pound of sodium hurled into the Pacific Ocean, home built mortars firing soda cans so far out to sea that they were still rising when they disappeared) were funny, embarrassing, or bizarre.  Nitrogen triodide; making doorknobs explode with unexpected noise and a burn so minor thst only idioticslly large quantities caused injuries.

Wednesday, May 29, 2024

Early Memories

My mother, siblings, and me lived in Chula Vista on Woodlawn Street in what in retrospect was an okay two bedroom apartment.  It was on the second floor.  My brother Ron and I shared one bedroom.  My three sisters shared another bedroom, my mother slept in the living room.  I assume there was one bathroom although I have no memory of it.  The kitchen was adjacent to the living room and had a small window overlooking the elementary school where my youngest sister, Marilyn attended. 

I vividly recall helping my mother and sister putting up some sort of class president banner for Marilyn which makes me wonder if she was actually in junior high.  The banner was covered with matchbooks.  I think the slogan was either that she was matchless as a candidate or that was a perfect "match" for the job.

Being on the second floor, some of the neighbor hooligans would push my tricycle down the stairs.  The structure survived better than it should have.  The pedals would pop off and reattaching them requiring a cotter pin and pliers.  I am not sure why nothing was said to the hooligans' parents.   We were all poor people and perhaps good behavior was not expected.

There were garages behind and under the second floor on the west side of the building.  Woodlawn ran north/south just east of I-5 (or perhaps it was still U.S. 99)   There was a path through the bushes that let out directly on the highway so this was likely still U.S. 99.  An Interstate would have been fenced.  Looking at the map I had forgotten the railroad tracks we had to cross.

One day, my peers managed to score a six-pack of beer.  I think I was in first grade but maybe before first grade.  They made rather a big deal of this, using the school's hose bibs to punch holes in the end of the cans.  (Pull-tabs were still years in the future.)  

My first exposure to beer was a stunt by a babysitters husband when I was just under two and cans meant soft drinks.  The flavor was so disgusting that I never wanted to taste beer again.  Whike my peers were slurping beer I was keeping my distance. 

The San Diego Union, before its merger with the Tribune got a kick of making its readers multilingual.   They provided at very low cost books and records attempting to teach us Spanish, French, and maybe Russian?  I recall these vividly.

My brother was even then starting to exhibit the problems that would spiral down into schizophrenia.  As we were falling off to sleep, we would talk and he would mock me, repeating every word that I said.  

But overall,  relations with my siblings were good.  My middle sister tells me that zron was bored and taught me to read by two.  By first grade I was reading,  enjoying, and learning from his high school chemistry textbook.

My father worked for Todd Shipyards in San Pedro.  He was wanted by the FBI for interstate flight to avoid prosecution.  This was largely a misunderstanding when the bank without explanation closed his checking account just after he drove to San Francisco to look for work.

He lived in a tiny house on a hill overlooking San Pedro.  It was very old.  This is I think where it wasI think where it was. My sister taught me my times tables through 12x12 while we were there one weekend.

Friday, May 13, 2022

Interesting Jobs

 When I left headhunting, I was 22.  I had a short assignment writing PL/I for something called the Formalwear Information System.  My employer, Telos Computing, had basically decided that I was not socially fit for the office (they were probably right).  Instead of just laying me off, my boss Dick Brewer, who was a heck of a nice guy, assigned me to this contract with Palm Beach Formalwear, who rented tuxedos.  This ran on an IBM System/370 under MVS.  This was a big virtual memory mainframe.  We used IMS as the database, and DL-I as the query language.  (This was a bit odd; CICS/DL-I was the combination more typically used at the time.)  Do not ask me to describe either now.  Ditto for JCL.  We used TSO from IBM 3270 terminals instead of punch cards.  The response time was so slow that we called it turnaround because pressing a key was like almost submitting a card deck to the mainframe.

We only had two terminals and desks for three programmers, so I worked swing shift.  This really turned my day around.  I did what little I did for fun during the day, which simplified many tasks.  Businesses such as dry cleaners had something like banker's hours in Santa Monica.  It also meant grocery shopping at Mayfair on Wilshire Blvd. in the wee hours.  They were one of the few 24 hour markets at the time.  Shopping at 2:00 AM gave a combination of customers weirder than me, and the inventory people wandering the store working for RGIS.  (Little did I know that I would briefly work for them part-time some years later.)

Anyway, the Formalwear Information System (or was it Formal Wear Information System? the acronym was FWIS, I think), was only a few months, and I needed a new job.  I interviewed with a very strange small company, called Futuredata (on the edge of being purchased although I did not know it) building something that I did not fully understand.  But the only offer that I received was from Lexitron out in Chatsworth.  (Chatsworth at that time was the rural northwestern edge of the San Fernando Valley.)  They offered me a decent salary; I think about $30,000 a year.  On the way through HR, some bigwig saw that I lacked a degree and my salary offer became $24,000.  I was miffed, but I had met the girl of my dreams and I think that I had proposed by that point.  We planned on moving to Chatsworth, renting an apartment, and she would continue her education at CSU Northridge.

Lexitron was a division of Raytheon.  They built what was about to become a dinosaur: a dedicated word processing system.  It was a portrait layout screen that provided a nice editing and proofing system.  These were widely owned by big government agencies of the time, which is probably why Raytheon bought Lexitron.

I remember only one project that I worked on during my four weeks there.  My boss needed something textual (perhaps some sort of grammar rules) transformed in some way that was big enough that doing it manually was impractical.  I was handed a tool called Stage 2 that was something that might result from an unhealthy relationship between awk and sed.  I managed to beat Stage 2 into submission.  In retrospect, this may have been my boss seeing if I was up to the task.  I was, to my surprise.

Anyway, GenRad was a big East Coast old electronics company that apparently laid the framework for the oscilloscope (yes, that old) before selling it to a little Oregon company, Tektronix, who found something useful to do with the technology.  GenRad bought Futuredata and with increased funding they made me a decent job offer, about $30,000 a year.  Not having to leave Santa Monica for remotest Chatsworth and a raise made this an easy choice.

This was my first experience of startup wealth.  Paul Page and Bruce Gladstone were President and VP of Futuredata.  Bruce bought a BMW 733i, back when these were signs of wealth, before most of America became rich.  Paul bought two Porsche 928s for himself and his wife.  One red, one white.  Like Bruce's BMW, these seemed like astonishing wealth.

What did Futuredata build?  They made one of the first in-circuit emulators not made by the chip manufacturer.  (Intel eventually trademarked that phrase, so we started selling it as an "in-situ emulator.")  Imagine the microprocessors of that era: Intel 8080, 8085, 8086 (a lot of military projects then), 8088 (IBM PC), Zilog Z80 (most S100 bus microcomputers of the time), Z8000 (Atari's short-lived venture into PCs), MOS Technology 6502 (Apple II), Motorola 6809 and 68000.  How do you load and test software?

You pull the chip out of the socket on your motherboard and plug in our product.  Our probe contained the chip, and the associated hardware kept track of all the microprocessor bus signals.  References to RAM were rerouted to the emulator's simulation memory.  Every signal on the bus was accessible and controllable.  You can set breakpoints to suspend execution when the IP (instruction pointer) reached a particular address, when a particular byte of memory was read or written, you could even examine things like instruction prefetch. 

 Instruction prefetch was one of the ways that processors such as the Motorola 68000 could be so fast.  When it was executing the current instruction, the processor has already fetched the next instruction, determined if it would need to fetch memory contents, and started that operation.  The next cycle was ready to do the add.  The 68000 would sometimes be doing stuff six cycles beyond the current instruction.

We had a gadget called a logic analyzer that would let you watch, record, and stop on particular actions on the microprocessor bus

You could also run on the target processor with simulation memory or vice versa if something was timing dependent.  It was fabulous.  

We had no easy way to force a stop in the 8086.  There was no NMI line (non-maskable interrupt) so we had to force an INT 3 instruction into memory, which forced an interrupt so we could take control of the processor, then restore the original memory contents.  This was a painful effort.  I had code that had to be loaded into memory to do this while an EE sat watching the bus on an oscilloscope to verify that we were successful.

At some point I saw that we had paid an unreasonable amount of money to some consultant to write a disassembler for the 8086 processor.  Disassemblers are programs that looks at the machine code and figure out the corresponding assembly language.  On the Interdata 16-bit minicomputers, for example 4A10 5234 was Add Halfword 1, x'5234'.  Add the contents of that memory address to register 1.  I had written disassemblers before (in high school) so I knew it was trivially easy.

I do not remember which was the first one.  It took about 20 hours, mostly developing a general strategy.  By the time I reached the 6502, it took five hours.  This is all written in Z80 assembly code.  But boy did I have a have a great debugger!

This was the most fun that I had until I started working in startups.  I was working with my best friend (best man at my wedding), and a bunch of fun and eccentric engineers.

Reference manual.

Monday, November 15, 2021

Memories

 I went to bed early after what should have been an easy 3 mile walk.  The allergic asthma makes this hard.

I woke up a few minutes ago with memories that will not shake, and that I think may interest some of you.

It was 1965 through 1967.  I was 9 - 11 (fourth through sixth grades).  We lived in an Edwardian house that had been subdivided into three apartments; my family occupied the bottom floor.  It was 857 3rd Street in Santa Monica so we were three blocks from the Palisades, overlooking the beach.  We were on the northwest corner of the intersection of 3rd Street and Idaho Blvd.  In summer, which seemed to last forever at that age, my sister Marilyn and I would walk down Idaho to the Palisades.


At Idaho, erosion had cut the edge of the cliff back to where Idaho met Ocean Blvd.  In some years, we would hop the fence and carefully climb down a path to the Pacific Coast Highway and somehow crossed it without getting killed.  At some point, we started taking the pedestrian walkway at California Blvd. that crossed the highway, at what in retrospect was a pretty major height,

When we left the house about 9 or 10, it was usually still foggy.  By 11 or 12, the fog burned off and we would play in the waves.  Marilyn and friends went swimming a bit offshore.  I was not able to swim yet so I stayed ijn very shallow water.  About noon, Marilyn would give a couple dollars to walk over to the Sorrento Beach Grill to get a burger, fries, and a Coke.  I remember walking back across the hot sand as fast as I could safely carry our meal.  I can still see the "No shoes, no service" sign inside.  At that age any food was pretty awesome.  By 4 or so we would make the climb back to the top of the Palisades to go home.

Monday, November 1, 2021

PC Performance

I just finished the disagreeable task of moving my wife's data and applications from her older not very fast quad-core Lenovo to an i7, 16GB Lenovo Yoga 7i.  FHD screen and it supports 4K on the HDMI port.  This brought back memories of when engineers were bold and risk taking with employer equipment in the pursuit of hotrodding was common.

Long, long ago, in the memory of only a few, the IBM PC came with an Intel 8088 processor operating at the blazing speed of 4.77Mhz.  (This was the natural speed of instruction cycles if my memory serves me right.)

IBM upped its game with the IBM PC/AT.  It was mechanically elegantly simple compared to the PC and its hard disk variant, the PC/XT.  There were no ribbon cables holding connections between peripherals and the daughter cards that were plugged into the motherboard.  No tools were required to open it up and reduce it to its simplest assemblies.  It was a work of design art.

Best of all, it used an Intel 286 processor.   No longer was the processor held back by the 8088's byte wide data bus.  All 16 bits of data bus were available to fetch 16 bit words in one instruction execution data fetch cycle.  (If you do not understand this, beg the old wizards to explain.)

More importantly for the number crunchers, was the 287 numeric coprocessor. The 8088 had an equivalent dedicated floating point coprocessor.  These sat on the motherboard and performed blindingly fast (at least to us cave dwellers) floating point processing instructions that would otherwise have taken forever with the standard floating point arithmetic libraries.  The ugliness of these integer attempts to do floating point math are things that decent wizards dare not speak.  Shall I tell you about the chemical plant in Switzerland that blew up (in simulation mode) from defective floating point libraries that came with our Pascal compiler? Maybe not.

Anyway, we saw that beautiful AT just long enough to ship it to HQ near Munich.  Then we got one for the US development lab.  

Our beloved head honcho, Elvet (that is not a typo) Moore ended up with it.  He had a Lotus spreadsheet that took 45 minutes to recalculate if he changed one cell. (He was our bean counter in chief, and a heckuva nice guy.)  So he brought it over on a 5.25" floppy diskette.  (Ethernet on PCs? What is this dark magic of which you speak?)  We loaded it into this new AT and recalculate now took a fraction of a second.

Somewhere along the way (I worked in the heart of Silicon Valley by now), it was rumored that the AT motherboard and 286 processor could run a lot faster than 6MHz.  The trick was replacing the 6MHz clock crystal.  This was two leads that plugged into the motherboard; 8MHz worked in most ATs with the corresponding increase in speed. 10MHz usually did.  At 12MHz, the successes were only occasional.   Soon every maker of AT clones was supplying them prehotrodded.  

I bought a Bentley 10MHz clone.  It was almost twice as fast as the ATs at work, so I stayed home and wrote the 14,000 lines of C code for the core of the digital loop carrier GUi at home.  Those were good times!

Saturday, April 24, 2021

I Just Finished Reading My Father's Diary From 1973

This was an incredibly bad year, much of which I remember with great pain.  My older brother descended into schizophrenia, becoming increasingly unpleasant, irrational, and occasionally violent (at least to strangers on the street).  There was much that I either have forgotten or that my parents shielded me from: my mother went in for what might well have turned into a radical mastectomy (it was a benign cyst).  My father battled with both short-term disability insurance and Social Security Disability.  A brother-in-law was charged with heroin possession (which later caused his death).

His diary records as near as I can tell every penny they spent (hospital copays, car repairs, lunch with me at Jack-in-the-Box).  Yet for all sorts of silly projects by me (grinding a 3" telescope mirror) he had money to spend on abrasives and Pyrex blanks.  (I finished that mirror in the 1980s.)

One of my father's weaknesses was get rich schemes.  One letter from the mid-1950s from some remote part of Washington State (where he was doing construction) to my mother says to stop sending boxtops.  There was some sort of contest at the time that required them, but that deadline had passed.  I remember a scavenger hunt contest in the 1960s or 1970s by one of the Los Angeles radio stations that had obscure clues ("Simon Rodea would go north and west from here": somehow I knew enough to correct the spelling to Rodia).  We saw a lot of Los Angeles.

Along with attempts to get rich at gambling, he was teaching himself enough about stats to look for non-mechanical bias patterns in Keno games.  More usefully, he was designing some pretty clever methods for extracting power from waves and tides that I have never seen used anywhere.  His interest in wind power led me to tell him (although I do not remember it) about scientists building tornado generators for developing tornado disrupters.  He apparently built a small one without telling me.  His comments suggest it worked at a level that exceeded both his expectations and risk willingness. 

The amazing discovery that British Leyland had not mastered the science of interchangeable parts by the 1960s came out as we rebuilt the transmission of my sister's Triumph.  (For a very long time, we used the gear missing almost half its teeth as a candlestick holder.)

Friday, April 9, 2021

Memories

My earliest memory is just before two which would be 1958.  I know it is that age because I described the house and the family providing daycare to my mother; she immediate knew when and where.  It was a 1950s refrigerator, the kind where the door and frame were all rounded.  The father pulled a beer out of the fridge and handed it to me, knowing I would take it like a soft drink.  It was yucky!  His wife reprimanded him.  I still hate beer today, probably for that reason. 

The next memories are I think from about four.  Because my father was on the run from the FBI, he lived in San Pedro, working at Todd Shipyards far from where our mother was raising me and my four siblings in Chula Vista.   These days, withholding reporting would have put the FBI at his employer at the second paycheck.  Back then, pretty much nothing was computerized. 

Friday nights we would all get into a car whose make and appearance is a complete blank.   Some sort of four door sedan, either 1940s or 1950s at best; the opening line of the Steve Martin film The Jerk immediately comes to mind. 

We drove up U.S. 101 from Chula Vista to San Pedro.   It was a long slow drive because lots of it went through cities along the way as surface streets.  I suspect it was only about three or four hours but I always fell asleep. 

My father rented a cottage on top of a hill that was walking distance to the shipyard.  (We had one crummy car in our family.)  It was built in the 1920s or 1930s.  Housing in Southern California was still cheap.  There was an arbor with figs, I think, growing over the sidewalk from parking to the front door.  It was very high above the surrounding flats, maybe 200 feet.  There were two roads to the top, one on the south side of the hill, one on the north.  I think there were a few other similarly decrepit cottages up there. 

We would arrive in what seemed the dead of night.  A vivid memory that I can still smell: pot roast.  My father would put a pot roast, carrots, onions, potatoes in the oven at a very low heat before he went off to work on swing shift.  By the time we arrived the smell was unimaginably good.  Stare at the roast hard and it would disassemble. 

There was a basement accessible from the outside.   I have some memory of wanting to get inside but it was kept locked.  I doubt they were any secrets.  The area was infested with black widow spiders and I am sure that my mother was being protective.  

There were not enough beds.   I remember sleeping on the floor next to my sister Marilyn who drilled me on times tables up to 12x12.  I do not remember learning to read.  My sister Susan remembers my brother Ron teaching me to read before I was two. I have to take her word for that because I do not remember a time when I was not reading books.  By first grade I was reading and understanding my brother's high school chemistry textbook.  Nor surprisingly, I skipped kindergarten.

First grade was at St. John's Episcopal elementary school.  I have a vague recollection that my mother was a clerk for a school system and my tuition was therefore paid by her employer. 

I recall that Mrs. Fuqua (yes, Hawaiian) was using phonetics to teach reading.  I played along because she turned the process into a game.  

I have one embarrassing memory.  I was reluctant to raise my hand to go to the bathroom during class, producing a large puddle under my desk.   I think other students laughed but Mrs. Fuqua was the model of a good teacher in handling it.

We lived in the Woodland Apartments in Chula Vista which from Google Maps still seem to be there next to the charter school.  Back then it was my sister Marilyn's junior high.  I recall vividly standing in the cold gluing matchbooks to a student government campaign poster for her.  (I think the idea was that she was unmatched for the office.)

We lived in a two bedroom apartment on the second floor.  My eldest sister Carolyn had already gone off to UCLA.  Susan and Marilyn shared one bedroom.  My brother and I shared the other bedroom.  My mother slept in the living room I think partly to shield us from FBI agents who, without search warrants, demanded to search the apartment for my father.   Perhaps an arrest warrant authorized a search.  They kept threatening to take away her children if she did nor reveal where my father was.  I think it was an empty threat.  They never took us.  My skepticism of Big Government was learned young. 

I have another vivid memory.  My father was moving out of the cottage.   He had taken a fall at work, suffered amnesia and wandered the streets of San Pedro for several days before he received medical care and his memory returned.

I believe we were going to meet my mother somewhere because my father had no car which is why he lived walking distance to his welding job at the shipyard.  We walked or rather he carried me on his shoulders for much of a mile or two to the ferry terminal.   I remember him getting me a Hostess chocolate pie from a convenience store.  Do you remember them?

The ferry took us across some body of water associated with the Navy base, which back then, was open for us to walk down the docks looking at warships. 

There are two ugly memories of the time.  My family caught a fish off the end of San Pedro pier.  They attempted to clean it on the kitchen table.  I was just old enough to see over the top as fish guts and smell went everywhere.   To this day, I cannot eat any ocean dweller if it looks or smells like fish.  Fish sticks, or fish and chips are okay.

The other traumatic memory:   We were driving north on U.S. 99.  Seatbelts were not yet required and the few cars that had them as an option were expensive.  I was asleep on the back seat and a drunken Marine from Camp Pendleton rear ended us.  I either went unconscious or I blotted the trauma from my memory.  My next memory is being in the back of Uncle Lloyd's pickup truck near Long Beach as the Sun rose.  I was plagued until adolescence with night terrors where I was in the back seat and some indescribable monster appeared at the window. 

Lots of other memories of Chula Vista if these are interesting.

Monday, February 1, 2021

What Happened to News?

 I was thinking back on this while trying to fall back asleep.  Newspapers have always been partisan institutions largely funded by ad revenue.  While some showed great courage and public interest, such as Harper's Weekly's campaign against the Tammany Hall corruption, there was plenty of very degraded journalism as well that only sought morbidly curious readers.  I remember reading a biography of Hearst, that mentioned his New York City paper focusing on details of the underwear of a little girl who was raped and murdered.

Newspapers suffered a great dying after World War II as television replaced it.  It was easier to get information that way.  For many, even then, reading was hard work.  Television and radio stations operated news as a loss.  The FCC required broadcast stations to provide news and educational materials as a condition of use of the public airwaves.  I can just barely remember in Los Angeles in the early 1960s, Sunday evenings would have 15 minutes of local news starting at 7:00 PM, and national news from 7:15 to 7:30.  (Sundays had little news, apparently.)  

The networks made and ran documentaries that today appear on PBS and cable or Internet channels.  CBS, in particular, I remember running the National Geographic documentaries because they had to produce and present material in the larger public interest.  They were informative and entertaining (at least to me as a child). 

 When TV stations ran editorials, or news that expressed a controversial point of view, they were require to present opposing points of view.  Some of these were well presented; some were not, but at least more than one point of view was presented.  This lasted until 1987.  It seems in retrospect a darn good idea; it made it possible to break out of the echo chamber that is now national news.

Unfortunately at about this time in  the late 1960s, a form of propaganda begin to appear on KNXT, the CBS affiliate.  They hired an environmental reporter.  As time went on and I became more adept at analyzing news reporting, in spite of my strong sympathies for the environmental movement, the more it became apparent that he was presenting a very biased version of these issues.  I think this is the point where I began to become skeptical of news media.

At some point the FCC dropped the public interest requirement, and broadcast news became a profit center.  This, in my memory, was about the time PBS and NPR received national government funding.  I think many of what became PBS TV stations had enjoyed local funding as educational television for kids as an alternative to the Saturday morning cartoon ghetto of kid-targeted ads (toys and sugary cereals such as Lucky "magically delicious" Charms).  I think KCET, the Los Angeles PBS affiliate picked its call letters from Children's Educational TV.

Serious newspapers, such as the Los Angeles Times, into the 1970s would print the entire text of speeches by the President, although usually in smaller type than the articles.  If you wanted to know what he said, it was there for those who cared.

Sometime in the 1960s, the FCC decided that national broadcasting of the evening entertainment (some of which was actually serious news documentaries: CBS Reports, NBC White Paper) was too national and left too little room for local stuff.  What had been national starting at 7:00 PM, usually the network's evening news broadcast, followed by some often very good entertainment (Mission: Impossible, The Name of the Game, Star Trek, Combat!, The Twilight Zone, the Outer Limits, Columbo) and a lot of predictable dreck (Bewitched, That Girl, Occasional Wife, Gunsmoke, The Man From U.N.C.L.E., Lost in Space, Voyage to the Bottom of the Sea, Hogan's Heroes, It's About Time, F-Troop, a few of which I watched and enjoyed until I turned about 12), was now confined to 8:00-11:00.  I do not know what other cities did, but the only particularly good use of this local programming time that I remember from Los Angeles was Ralph Story's Los Angeles.  It was light and fluffy, but provided often interesting bits of local history and culture.

Something changed in the 1970s.  A co-worker many years later told me she started at Duke's Journalism School in the early 1970s because she had no idea what else to do.  Woodward & Bernstein had received somewhat undeserved accolades for bringing down President Nixon for his crimes; Judge John Sirica and the Ervin Committee's investigation of the allegations were vastly more important, in my opinion.  But suddenly people were coming to Duke's journalism school "to bring down governments."  A profession that had patted itself on the back for public service started the transformation into a political institution.  For many Americans like myself, watching this transformation from ostensibly fair news coverage to a tool for going after Republicans was what started us down the road to cynicism.  The disasters of Vietnam and Watergate certainly contributed.

Watching the uncritical and grossly ignorant reporting of "assault weapon" bans 1989-95; climate change throughout the 1990s and 2000s; the repeated character assassination of Reagan (who even some Democrats later admitted had played a part in breaking up the Soviet Union and its Empire), then Bush the elder, Bush the younger as "literally Hitler!" (showing the increasingly illiterate state of America's self-imagined elites) left me utterly unprepared for the sudden collapse of serious journalism during the Obama years.  A few journalists asked hard questions, such as CBS' Sharyl Attkisson and her exposure of the clearly criminal and political "Fast & Furious" effort.  BATF told gun stores in Arizona that were expressing concerns about some questionable, perhaps unlawful gun purchases to go ahead and let them happen.  BATF's goal was to smuggle guns into Mexico for use by the cartels, thus providing an excuse for gun bans in America.  Even in an area where self-interest might logically have caused journalists to be skeptical of the Lightworker (aggressive prosecution of leaks to journalists) produced nothing but adulation.

Tuesday, July 7, 2020

Food Memories

I was having a chili dog for lunch, and the chili triggered a messy memory. 

It was 1971.  We were driving north to Seattle for my grandmother's funeral.  My parents had this monstrously big and very fast 1967 Pontiac Ventura.  It developed engine problems (timing chain? timing belt?) near Sacramento, so we spent the night waiting for repair.  We went to see Andromeda Strain, one of the most intense movies that I had seen until Alien. I had already read the book, and become addicted to the late Michael Crichton's writing.

Time before the showing was short so we went into a Denny's and ordered meals to go.  I ordered a "chili size" which in 1970s parlance was an open face burger smothered in chili.  Imagine a 14 year old eating this out of a Styrofoam container in the dark.

Wednesday, September 11, 2019

Geek Squad's WebRoot Utility is Pretty Smart

It says that Thunderbird has a memory leak, and dllhost.exe has a handle leak.

The memory leak may well explain why things get worse over time.

If you aren't a geek, let me explain a memory leak.  A C program allocates temporary blocks of RAM for particular tasks from an area called "the heap."  When it is done with that block, it returns it to the heap for reuse at a later time.  I take that back; it is supposed to return it to the heap.  If  not, over time, the available memory in the heap gets smaller and smaller.  Your heap has a leak.

Back when I first started writing in C, these leaks were so annoying that I overrode the default malloc and free functions, which as the names suggest, allocate memory and then return it to the heap.  My versions would record every block allocated when malloc was called and then remove it from the list when that same block was freed.  When the program exited, you had a list of blocks that had not been freed.  By recording also where these calls happened, it was possible to go back and find the badly behaved code, 

An additional problem was allocating say, 50 bytes of RAM from the heap, and using more than 50 bytes at that location.  Because of how C organized the heap, you could scramble things pretty badly.  My solution was the have my version of malloc allocate 54 bytes, and put some distinctive pattern in the last four bytes.  When my free was called, it would verify that the pattern was still there.  If it was, I could then track down who had gone off the far end of the memory block.

I think this is now mostly paleosoftware engineering now.

Friday, July 12, 2019

Boy, This Makes Me Feel Old

NASA is figuring out how to keep the Voyager spacecraft alive (for which I badly wrote telemetry software):
With careful planning and dashes of creativity, engineers have been able to keep NASA's Voyager 1 and 2 spacecraft flying for nearly 42 years — longer than any other spacecraft in history.

Friday, May 18, 2018

Adventures in Paleocomputing

When I last inflicted my memoirs on you, I was a high school computer geek.  Graduation was coming and I had picked USC.  I had very limited horizons and hopes.  I graduated 23rd in a class of 1000+. While my SAT scores were okay (top half of the top percentile on verbal but only 97% on math), these were unlikely to get me into CalTech.  I applied to Harvey Mudd, USC, and UCLA (where I had been taking Russian and computer science classes while in 12th grade).  Harvey Mudd had me on the waitlist; USC accepted me and offered enough scholarships to make it cheaper than UCLA.  Tuition at UCLA was about $600 a year; USC about $2900.  So I decided on USC.

In the last few weeks of 12th grade, the company that sold the school district the new Interdata Model 7/32 minicomputer was American Business Computers.  They were a small band of sleazy operators.  (You will find out more later.)  One of their contracts was that they had offered to write the software for operating a company that made European car parts.  The guy in charge was named Neil.  The Interdata computers were 16-bit word size.  Pretty obviously, 16 bits will not handle typical commercial transactions.  $655.36?  Floating point was seven bits of mantissa so that won't work either.  NO, BUT YOU COULD ONLY GET SEVEN DIGITS DECIMAL PRECISION   WITH THE FLOATING POINT FORMAT.

Even worse, this guy could not write a binary to decimal unpack in assembler language.  If you do not recognize "unpack," how do you turn the binary number 01001010 into the ASCII equivalent 74?  And how do you pack 74 back to the binary equivalent?  Now while many of our contemporaries were drag racing or seeing how many different drugs you could use in a weekend without dying, we were engaged in ferocious competition to see who could write the most efficient pack and unpack subroutines in assembler language.  While Neil had persuaded the customer to use hexadecimal part numbers (4EF2, 1C0B), they were somewhat resistant to using hexadecimal for billing customers.  "I owe you $EC54?"

Worse: I was later told that this company was Mafia-owned.  So were many of their competitors.  When they found out that each of them was getting the same "custom" software, the salesman moved to Australia to avoid a contract hit.

Anyway, Neil explained the urgency of being able to do 32-bit arithmetic on a 16-bit machine.  Add, subtract, multiply, divide.  Add and subtract were easy.  Add the lower 16 bits and add the carry bit to the upper 16 bit operation.  Subtract was similar.  Multiply and divide were not so easy, but with a little help from my friends, problem solved.

He paid me ($80: big money for a poor kid just graduating high school) and offered me a summer job: $80 a week.  So I had to drive from Santa Monica to Irvine every day.  Gas was about $0.39 a gallon.  (About an hour of transit time then;  now, retirement age at the end of the first day.)

First he assigned me to a customer named Trinetics in Long Beach.  I have no idea what they did; the owner had a thick Southern accent and was a nice enough guy.  The only part of the experience I remember was having to run the source code (assembler language) through the assembler (which converted mnemonics like AHM to the machine code 4A).  It also resolved variable addresses and symbolic constants, much like #define in C.  Then all the individual object modules with references to variables in other modules would be run through the link editor, which would resolve the undefined addresses.  The source code was on punched paper tape:
To assemble and link required reading through the source three times (resolving forward references with no temporary storage): about nine hours of waiting for feed errors which sometimes tore the tape.

For reasons that I no longer remember, but probably did not reflect well on the interpersonal skills of a 17 year old introvert with his first job, Neil moved me to the parts manufacturer project.  There I tried to clean up the mess that Neil's unique programming techniques had produced.  We had promised 4 separate data entry terminals.  Neil could not figure out how to read keystrokes, writing them was easy.  I remember one part of the puzzle was the Programmable Asynchronous Line Adapter (PASLA).  The intent was an interrupt-driven interface.  When a keystroke happened it would produce an interrupt, at which point you would input the keystroke.  But I did not really understand interrupt service routines yet, so I hacked together a sense-status loop approach: keep reading the status bits until they showed a character available and read it.  Terribly inefficient but better than nothing.

It was not a bad month or so.  The company served soup for lunch to all its employees and I learned a lot.  But the high point of technical learning was in the last month.  At the time the idea of Plug Compatible Modules was a dangerous idea: you bought RAM and I/O parts only from the maker of your minicomputer.  Then a troublemaker named Keronix started offering PCM RAM at much cheaper prices.  Eventually, after upsetting Data General, Keronix mysteriously burned to the ground.  (Coincidence, I am sure.)  

Anyway, we had bought a 64K Keronix memory card (these were a foot or two square) for one of the Interdata minicomputers.  The operating system would not boot.  So I was assigned to figure out why.  I had a slightly out of date listing of the assembler language of the operating system.  But there was no way to use the O/S debugger; it never got that far.  

What I did: minicomputers had front panels through which you could read and write memory locations.  As breakpoints, I would insert the one word BS * (branch short to your current address).  I worked my way through the O/S from where control was given by the boot process until I found the guilty party, removing that BS * and putting the original instruction back in, until I found the instruction that caused the failure.

To read from the hard disk, the O/S would set up the DMA so that when the OC (Output Command) executed, it would read the requested sectors from the disk into the requested RAM.  At which point, bit 13 in every word in the first 16K of RAM turned off!  The instruction after the OC was now an illegal instruction.  Obediently the illegal instruction trap fired.  The first instruction of every interrupt service routine including this one was DI (Disable Interrupts).  But with bit 13 off, that first instruction was now illegal, and off it went, chasing its own tail.

The Keronix RAM was okay; the Interdata disk controller was out of spec; the DMA request was turning off bit 13.

Saturday, January 13, 2018

My First Mulitasking Operating Systyem

I have mentioned learning to program on an IBM 1401.  This computer processed class scheduling, attendance records, and grades for the entire Santa Monica Unified School District.  I used my knowledge and access to get myself moved from one section of German to the other because the girl that I was obsessed with was going to be in that section.  Another one of the computer lab rats, Curt, claimed no knowledge of how he had dozens of absences from P.E. and still received an A.

Anyway, the data processing coordinator for the district somehow rescued a computer pound puppy.  It was an odd dual minicomputer system named MINITS (for Miniature Time Sharing System).  It used two Interdata minicomputers, a Model 3 and Model 4, sharing a common 32K RAM space.. A model 4:


The dials on the left and the push buttons at bottom allowed you to enter data into various memory locations, such as when you needed to put the boot code in to load the OS from the drum.  This was a slow process.  One friend, Curt, demonstrated his ability to enter the boot sequence accurately with his toes.

  I do not know if the Model 15 was an Interdata supported product, or something Cerf's team created. The Model 3 was for control of the teletype terminals and modems.

That's a model 33 teletype.  It printed and accepted keyboard input at 10 characters per second (we finally managed to find a 30 character per seconds modem and CRT to attach).  Yes that is a  paper tape punch and reader, which used this stuff:
There are indeed more than 8 rows.  One is a parity bit, and the other is some other out of band signaling information that I have forgotten.  Slow!  I once did a three pass assemble* of the Interdata Model 4 OS from paper tape as my first summer job after graduating.  (That was 12 hours of profound boredom, fixing paper tape jams and tears.  Why three passes?  No hard disk to store intermediate results, like symbol tables)

Anyway back to MINITS.  This was one of Vint Cerf's brainchildren.  The idea was a relatively cheap timesharing system.  We had scads of listings for the operating system, BASIC interpreter, and some of the utilities and games, printed out on a drum printer that was attached to the Univac 1108, that was supposed to be the mainframe to which this would be attached.

The hardware was unique.    It had a large magnetic drum that did two things: every few milliseconds as the drive reached its zero track position, it generates an interrupt that told the operating system, "It is time to give another user some time."  (Clock generated interrupts?  Not sure when these appeared on other minicomputers.)  Also when it came time to swap users, the entire user context (the current contents of his BASIC program or whatever else a user was running, which I believe went from X'5800' to X'8000') would be written to the drum.  The OS would then load the next user's context and give him execution time.

How much time?  The OS had a concept of Terminal Control Block, which specified how many milliseconds he was allowed and the priority of his terminal's task.  By adjusting these numbers on the fly, you could annoy the heck out of a remote user.  (Imagine typing a key on the teletype and waiting a second or two for the echo to print on the paper.)  There was one in the math lab several thousand feet away, and another attached by 110 baud modem at Lincoln Junior High, some miles away.  We also borrowed a teletype to take home on weekends, for breaking into ARPAnet; more about that some other day.)When there were problems, either because someone was manipulating the remote user's TCB or because of hardware problems, the Lincoln math teacher responsible for this learning project, Mr. Winkenhower, would call us to find out why he was not having any luck. 

Anyway, I learned a lot about how operating systems worked in 11th and 12th grades.  The Control-V key would drop you into a debugger where you could by accident do enormous damage requiring a hard reset, including re-entering the boot sequence through the front panel.  The right set of common keystrokes would change RAM in areas that were lethal to the OS.  It was needed, however, to fix some problems on occasion so we could not just disable it.  A fellow student, Curt, and I wrote a utility in Interdata assembly language and then hand compiled it (we had no assembler program) that would do all the  necessary functions but otherwise block access to the debugger.*

I also learned how to redirect the illegal instruction interrupt, which would drop you into the debugger.  At some point I decided to be clever and build an illegal instruction driver that would recognize instructions that were part of the Interdata Model 70 instruction set (think short relative jumps) and it would simulate these perfectly.  Then I foolishly started adding these instructions into the OS.  It came to a near complete standstill as basic OS functions would keep running through the illegal instruction ISR.

*Computers execute instructions stored in RAM as binary numbers usually expressed in hexadecimal.  X'5A' was the Interdata AHM (Add Halfword to Memory) instruction.  (
I remeber because they used many of IBM 360 mnemonics and architecture; 16 general registers all of which except 0 could be index registers; and where X'5A', was a 32 bit add of memory to register on the 360, X'5A' was AHM 16-bit add of memory to register on the Interdata),   It not being very easy for most people to remember all the numbers, we generally wrote in assembler language.  AHM 5,VALUE would add the 16 bits at symbol VALUE to register 5.  The program that converted these easy to remember mnemonics into binary was called an assembler.

Memories



I had one of these as a child.  I do not remember the TV ad.  It used rolls of caps and was a blast until the pot metal used in the cap firing mechanism broke.

Wednesday, January 3, 2018

Learning to Program

My wife thinks my computer experience: Life at the Dawn of the PC Age will make a more marketable book, and I know many of you are fellow nerds.

I first learned about computer programming in 8th grade.  There was a math teacher at our high school with a Ph.D.  Why Dr. Jackson taught at a high school, I have no idea.  He had worked out an arrangement to teach some math classes about programing in Fortran.  Fortran was one of the first high level programming languages.  The name stood for FORmula TRANslation.  It was really only well suited to mathematical work.  The details are fuzzy now, but I am not sure if it had subroutines.  It did have an absurd variable naming convention.  Variables starting with the letters I through N defaulted to INTEGER.  Other variable names were defaulted to REAL (floating point numbers).  You can see the manual for FORTRAN IV variant for the IBM 1401 mainframe here.

Dr. Jackson mostly had use filling in coding forms used for keypunching into Hollerith cards.  I have no memory of really understanding what these statements were supposed to do, but learning is often at first "Monkey see, monkey do."  We then went to the high school, and used an IBM 029 keypunch to punch in the statements.


Hollerith cards were 80 columns wide.

There were several rows going across.  0-9, a 12s row, and I think another one where the keypunch knocked little square holes into card stock.  A program consisted of a few cards or many boxes (2000 cards per box).

The IBM 1620 mainframe that the high school had read these cards in a card reader, a descendant of the sorting devices Hermann Hollerith created to do the 1890 census tabulation before they started the 1900 census.


I have no idea what that program was supposed to do, but it was written in FORTRAN II.

By the time I again became aware of computers, I was in 10th grade.  My friend Louis Watanabe was trying to distract me from a completely unhealthy infatuation with a very smart girl named Holly Thomas who was in my 9th grade German class.  My grades improved from B- to B+ within a few weeks of my unhealthy interest in Holly, then consistently As in high school.  Anyway, Louis had been one of Dr. Jackson's students who actually took to computers and later became rich at Microsoft.
The high school had upgraded to an IBM 1401 mainframe.


It was a monster with 4K of core memory in that CPU, and another 12K in an external washing machine sized unit.  Core memory actually stored binary data in little magnetized iron cores.


Yes those wires set and read the bits.  Core memory was non-volatile.

Hard disks?  Of course.  


Yes that is a removable drive.  Each could hold 3MB.

My first uses of the 1401 computer was to write FORTRAN IV programs to calculate magnification and field of view of various eyepieces for my 8" reflector (which I still have, 45 years later).  Eventually, I learned to program in the 1401's machine language.  What is that?  

First a little unbelievable technical discussion.  Core memory was organized utterly differently than today.  Each byte of memory was 8 bits like today. Memory addressing was decimal.  After adress 100, address 101.  It was actually organized that way; not an artifact of hiding hexadecimal from us.  The encoding scheme was EBCDIC: Extended Binary Code and Interchange Code:

ASCII?  What;s that?

There was no concept of words.  If you wanted to do a 100 digit by 100 digit multiply, you set what was called a word mark at the end of the fields.  An add instruction would be literally the letter A followed by the address of the two fields.  M for multiply, S for subtract, D for divide.

To read a card from the card reader into 000-080 the instruction was 1, to punch a card from 100-180, 2, to print from locations 201-323, 4.  Oh yes, the printer: an IBM 1403 line printer:

It used fanfold paper transported through the printer by those holes in the side:
and usually "green bar" paper.  These were very wide sheets.  They could print at what seemed insane speeds until I saw my first laser printer.  All upper case.  

These were impact printers in every worst sense of the word.  They were loud enough that you closed the cover when printing; they would probably be an OSHA violation today.  There was a program that you could run that rang the hammers against the type to play "Jingle Bells."

Wednesday, November 22, 2017

Brain Dump: Early 1960s

In 1962, my family lived in Chula Vista, a suburb of San Diego nestled against the Mexican border.  (The last time I visited, I noticed the Jack-in-the-Box ordering box for drivethru had the Spanish in larger letters than the English.)  We lived in an apartment on Woodlawn Avenue, apparently 544, according to online maps and my reconstruction from memory, immediately north of the elementary school (maybe junior high) my sister Marilyn attended, which is now Mueller Charter School.  Not immediately adjacent, but very close was the I-5 freeway.  I have a vivid memory of helping my mother and Marilyn put up some silly poster covered in matchbooks as part of her pursuit of some student body government post.  (Was she matchless?  I do not remember.)  It was cold.

Travel was fairly rare for us.  We were definitely not well off.  Complicating the matter was that my father was sought by the FBI, and so he generally worked away from home.  The FBI would sometimes enter without warrant or probable cause to search for my father and threaten my mother that her kids would be taken away.  Finding my father on these accidental "interstate flight to avoid prosecution" charges could not have been a high priority task, because we drove to San Pedro almost every weekend to visit him.

My father worked at Todd Shipyards as a welder repairing ships.  He rented what in retrospect was a very odd house on top of a hill which seems may still exist on an unaccountably unbuilt hill.  It wasn't very big and it was ancient, even in 1962, but big enough for him to live in while working graveyard and swing shift, repairing I believe both commercial and Navy ships.  There were spectacular views from front and back of the house and lots of black widow spiders that caused my mother to put the fear of God into me.

We started driving north when my mother got off work.  I have no strong memories of the car except one bad one.  I have this odd impression that we arrived at my father's place in the wee hours of the morning.  Roads were slow at the time; the Interstates were far from complete, and state highways were often stop-and-go through every little town.  I do know that when we arrived, the smell from the kitchen was overwhelming.  My father always had a pot roast ready with onions, carrots, and potatoes.  Even at 5, this was an overwhelmingly good smell and flavor experience!

Cars, even new cars, which we never had, had no seatbelts.  I can remember standing up in the middle of the bench seat next to my mother.  It was quite common to make "car beds," collections of blankets that provide something that would help kids fall asleep.  Perhaps they provided some padding for minor crashes.

The only strong memory I have is a blackout, then waking up hours later in the bed of my Uncle Lloyd's pickup.  A drunken Marine from Camp Pendleton had rear-ended up, destroying the car.  My siblings have no memory of me being hurt, but for many years, I had a night terror, in which I was lying in the back seat of that car, and suddenly something monstrous raises its terrifying face to the window.  (If you have never experienced a night terror, good for you.  They make nightmares seem pretty pleasant.)

The weekends with my father were wonderful.  I always loved my father immensely; he was kind to me in a way that my mother simply could not manage.  There was a grape arbor over the walkway to the house and it was a lovely place where we often ate dinner outside on Sunday afternoon.  There were not enough beds, so we were often camped out on blankets all over the house.  Amazing how much easier it is fall asleep at that age.  I have several very positive memories of learning there.  Marilyn drilled me on my multiplication tables.  I was not in first grade yet.  My brother taught me to read so young, that I have no memory of not reading.  I always assumed that I learned at 3 1/2.  My sister Susan's memory is that I was 2.  I know that by first grade I was reading, learning, and memorizing from my brother's high school chemistry textbook.  This was a great advantage.  I went from child care to first grade at St. John's Elementary School, skipping kindergarten.

Returns to Chula Vista were disheartening.  I have memories of arriving in north San Diego to a very hard to miss Flying A gasoline station sign.


There will be more.

One other trip to San Pedro memory.  For some reason, our mother put Marilyn and I on a bus to San Pedro.  A Greyhound for the long trip to San Pedro.  We then rode a city bus to the base of the hill on which our father lived.  While that may sound like a crazy thing to do, in the early 1960s, it did not seem so.  By the end of the city bus trip, there were guys making either  catcalls or inappropriate remarks to my sister who would have been 12 or 13.  The bus driver told them to knock it off and they did.