U-505

A model of the U-505 submarine that's on display at the Museum of Science and Industry in Chicago.


Built by M and his dad.






A Beautiful Weekend in Ann Arbor

We've had a fun Ann Arbor weekend so far. Last night we went to Top of the Park, part of the Ann Arbor Summer Festival. Several weeks of free bands, good food, and activities for the kids. Last night we saw two bands, My My My, a Chicago band, and My Dear Disco, whose members are from the Ann Arbor area. Seeing a band play live is enjoyable no matter what kind of music they play. I might even be willing to watch a country band play live. (Bluegrass is acceptable.)

J and I really like the pizza from Silvio's, an organic and specialty pizza place near UM's campus, and they had a booth there, so we bought some slices. We don't necessarily care about the organic part, but the pizza is really good. Then the boys had ice cream from Stucchi's, another Ann Arbor-born company.

This morning we went to the Farmer's Market, and on the way home we went to Zingerman's to get J a coffee drink.

So far, so good for the weekend.

-------------------

Bumper stickers for the ambivalent among you:
http://www.zazzle.com/nuanced_stickers/gifts

-------------------------

Watching the videos at the following links is relaxing for me. I envy those with the skill to do something so difficult while making it look routine.

http://villagecarpenter.blogspot.com/2009/06/handcut-dovetails-video.html
http://villagecarpenter.blogspot.com/2009/06/lettercarving-video.html

I'd like to see her do a "D" or an "O" next time.

-------------------------------------

Quote of the Day: "Warning: Sharp chisels are dangerous and should be handled with care. Dull chisels are even more dangerous and should be sharpened." - Tom Lie-Nielsen, founder of Lie-Nielson Toolworks USA. Lie-Nielson makes some of the best hand tools you can buy, and a $100 gift certificate won't buy you much. Gorgeous, perfect tools.

The Sandbox's New Clothes, Plus Links

The old sandbox cover. Looking pretty sad. It did last a long time though - I made it in 2007.


The new sandbox cover is below. The picture doesn't do justice to how silvery and shiny it is. If you were to see it in person you would have to agree it looks very much like an astronaut sandbox.

This cover is made from a thick tarp, folded over, with cutouts for the play structure supports, held together with aluminum rivets and brass grommets on the corners for the bungee cords. The last version above was much fancier than this one, with little sleeves that shed the water around the supports. It was also more carefully measured and cut. But there are only so many hours in a day...
---------------------------------------
On to some fun links:
Interesting guitar restoration. I will be doing this someday.
I don't know what to say about this next one. It's really neat.
I'd like to see one of these in person.
Early Christmas list entry:
Another early Christmas list entry, although not as fun as the last one
------------------------------------------
I hope everyone's enjoying their summer so far.

Huge DEB Log Announcement!

One of the most useful aspects of the internet is the ability to find product reviews for just about everything – cars, stereos, computers, artificial limbs, suet cakes, and so on. These reviews have a problem – for every good review, there is almost always a bad review that makes you question whether a product is any good. You can read 20 good reviews on Amazon, but the one bad review is the one that sticks with you and feeds your doubt. (For example: “I like the looks of this new music player, but one reviewer said it caught fire while he was listening to it, and the headphones started shooting lasers at a family of kittens under his porch. I can’t take the chance that will happen to me, or those kittens under my porch!”)

Here at The DEB Log we’re always thinking of new ways to make our work relevant to the community, and the world as a whole. So we’re proposing a solution.

Starting today, we are offering the ultimate review of any product or service. This will be the only place you have to go to get a good opinion. No “good review cancelled out by a bad review” nonsense. And we’re not beholden to any corporations. We will tell it like it is. If the headphones shoot lasers at kittens, our teeth fall out after trying the new toothpaste, the exercise apparel produces an orange rash, or the clothes dryer shrinks cotton shirts to doll size, you’ll hear about it.

So - manufacturers: send your products to our reviewing staff today! We’re open for business! Cars, trucks, consumer electronics, exploding cigars, night-vision goggles, underpants – you send it, we’ll review it!

Watch this space for our first product review, coming shortly, entitled “The 2009 Gibson Les Paul Standard Guitar: A High Price To Pay For An Instrument If You Only Know Three Chords”.

A Tale of Two Lenses

I think the boys should have sunglasses, and wear them regularly when they're outside. The sun has never done anyone's eyes any good.

Because the boys' heads are getting too big for little kids' sunglasses, I recently had no choice but to buy them small adult sunglasses, which cost about $15 each. I told them to be extra careful with these, because glasses that don't have Spiderman(tm), Transformers(tm), or Shrek(tm) on them cost a pretty penny.

A few days later, M told me his sunglasses broke. (I bet you didn't see that coming.) There is a round hole through the lens part of the glasses that the screw goes through to attach the arm - the rear half of the round hole was broken off, so the screw had nothing to go through.

I decided to fix it instead of getting a new pair of sunglasses. There are times when something more or less disposable like this breaks, and I refuse to throw it out. It seems like an insignificant thing, but I knew I could fix it.

I cut a piece of sprue from the model kit of a sub that M and I are building and superglued it to the back of the broken piece. Then I drilled a small hole through the resulting glob of discolored plastic with a pin vise, and used some small files I have to shape the rest of it to size. I put the arm back on and handed them to M, who was pretty surprised to see I had fixed them.

So there. Now you know I have a low tolerance for throwing out things that can be fixed, and you also know why M will never borrow my Ray Bans.

A Great Web Comic

I really like this web comic. You can browse through all the previous ones using the icons to the left and right of the comic.

http://wondermark.com/

If you have a dry sense of humor like me, this is the comic for you.

When I Was A Young Warthog: MSU Physical Plant (Part II)

This is the continuing story of working at the Physical Plant (aka “The Fizz”). See part one here.

During the semesters (technically, “quarters”), I worked about 12-15 hours per week. I was able to choose my work hours to mesh with my class schedule, so they were different each quarter. As I said before, I often signed up to do Friday backups, since I didn’t have to rush home to study for an exam the next day. During breaks, we worked a full 40-hour week, even Christmas break. We also worked 40 hours during the summer. This job paid (barely) for school and rent, along with a few scholarships and grants from the state.

We used an HP3000 mainframe, which ran the MPE operating system, a proprietary Hewlett Packard system. (I’m sure you’ve all heard of it.) It was set up for system administration and user management – most of the commands I used had to do with running programs, checking on users, running backups, etc. I don’t recall it having many (or any) really low-level functions that UNIX had, although it may be that it had those functions and I wasn’t aware of them.

We used COBOL, which is a language that has been around for many years and is popular for the kind of software we wrote. At one point, we started using a language called PROTOS, which was a COBOL-like language. The purpose of this language was to make it easier to write COBOL – running the PROTOS code actually generated COBOL code, and that COBOL code was then run on the system. Progress!

We used KSAM (Keyed Sequential Access Method) files. KSAM storage consisted of two files – one file, the Index file, which contained a listing of what was contained in the second file, called a Data file. For example, if you wanted to find where information about a certain employee was stored, you could look in the index for the employee’s social security number, and the index would tell you where in the data file that information was kept. Kind of like an index in a book – you look for the keyword in the index, and it tells you what page it’s on. When data was added or removed from the data file, the index file was updated to add or remove that information.

We used some basic text editing tools – we used an editor called “SA1” and it was not too different from the well-known vi editor in UNIX. It had plenty of archaic two- or three-letter commands to do various things. To print something, the command was “LOA”, which stood for “List Offline All”. SA1 was written by one person, possibly in his spare time, and wasn’t very widely used in the industry from what I could tell. We also used a product called SUPRTOOL (super tool!) that allowed various macros to be executed, a simple version of the modern day Perl script, but with much less functionality. SUPRTOOL would allow us to directly query information from KSAM files, among other things.

Our primary printer was a large line printer in the room with the mainframe, but we also had laser printers around. The LaserJet II was new at the time, and we had Laser Jets (aka “Laser Jet I”) around as well .

We had the first optical scanner I had ever seen – you could scan a page on a device that looked like a small copy machine, and some software would try to figure out which words were on the page. This technology was fledgling – on one page I scanned, every letter ‘a’ on the page was interpreted by the software as ‘@’.

We had a 286 PC in the office running Windows 3.1 that was used for various purposes, but our primary workstations were terminals to the mainframe. A terminal is a fairly unintelligent machine – it’s basically a screen with a keyboard and knowledge of how to get information to and from the mainframe. Almost all of what’s seen on the screen is provided by the mainframe. You could make some small changes to the terminal (for example, whether the text was white on black or black on white). No data was stored in the terminal; there were no hard drives or floppy drives. [Most of MSU’s programming class work was also done on terminals at the time – I’m pretty sure we had DEC VT100 and VT220 terminals. Later, we used Sun workstations more regularly. All these computers/terminals had different keyboard layouts, and at one point I was proficient at four different keyboards, including the one on the Tandy PC I had at home.]

In the mornings, we could come in to find the printers (or the printer paper baskets) full of reports that had run overnight. Whoever was assigned to distribute the report followed a list of recipients and either put them in a mailbox or put them in an envelope to be routed to the correct office. Some days had more reports than others, and different reports ran at different times. For example, some reports only ran at the end of the month. We sometimes had to edit a file on the system to put in dates for certain reports to use. If it was a report that covered the prior two weeks, we would type in the date from two weeks ago. When the report ran, it opened that file, read the date from it, and used that date to figure out what to print on the report. We had a sheet in the computer room with all the reports for that day, and which dates or other information needed to be entered for them, if any. Some reports had their own set of instructions in a big manual. The instructions would tell you exactly what to type to fill in the dates/information.

Most of the software design was done by the supervisors, and they did a good job at it. We did code reviews, which is a meeting where programmers look at copies of another programmer’s work and make comments and verify the logic in the code. Reviewing code doesn’t always weed out the problems, though; I remember one big bug that occurred in some code I wrote that caused several people to lose some of their work. That code had been reviewed and tested, but there was a problem anyway.

On rare occasions, there would be a problem we couldn’t easily diagnose, so we would attach a line monitor to the cable connecting the mainframe and the terminal. There is always a tiny chance that a cable or the environment is causing signals to be corrupted, and by using a line monitor, we could see exactly what bits and bytes were travelling through the cables. The output was fun to watch – a long line of numbers, letters, and oddball characters that programmers are used to seeing, and then sometimes someone’s full name or an address or business letter would scroll across the display. I don’t remember what we did about it when we noticed a cable was not delivering the signals correctly – we probably replaced the cable. [To be more specific, a union electrician probably replaced the cable – we were not allowed to make our own cables, nor were we allowed to run those cables from one place to another. That was union work.]

Some of you will remember the Y2K issue – the problem where many computers were storing dates with only two digits. 1987 was stored as 87, which was going to be a problem when the year 2000 arrived. Since most software considered the date to be the two-digit year + 1900, the year 2000 was going to be considered 1900 (the last two digits of 2000 + the number 1900.) The supervisors of our office did a smart thing – a few years prior to my joining the crew, they had either rewritten or updated all their software to account for the year 2000.

Since we were system administrators, and were responsible for all the software, we could run any of the programs on the mainframe, including the payroll software. We knew how much everyone in the office made, including our bosses and the other students. One day we were looking at the pay rates of the students who worked upstairs in the engineering office and noticed they were all making about a dollar an hour more than we were. When we asked our supervisor about that, she said they were not allowed to wear jeans or shorts to work. We were allowed to wear shorts and jeans, and we wanted to continue doing so. Our objections to the pay difference quickly disappeared.

This job was very helpful to me when I was applying for jobs after graduation. The economy was in a mini-recession in 1991 when I graduated, and having this experience helped me a lot.

A Joke, A Soccer Update, and The Last Day

I typed the answer backwards so you wouldn't be able to read it easily. Try to guess first.

Q: What's invisible, and smells like bananas?

A: .prub yeknom A.

Courtesy of K.

------

Good news from the soccer field: M scored his first goal of the year yesterday at his game. This was also a game of two "lasts": The last game of the spring season, and the last season his coach is going to lead a soccer team. He's been coaching for 10 years between his two boys and is moving on to other things after this season.

------

The last day of school is Friday. I'm not sure what the kids will do with themselves. But whatever it is, they will be doing it outside as much as possible.
---

When I Was A Young Warthog: MSU Physical Plant

This is Part III in a series of descriptions of my former jobs. The first two can be found here and here.

One day after a college computer science class (assembly language and C programming), the instructor called me over and asked me if I’d be interested in a programming job. I said I was, and she gave me the name and phone number of the supervisor of the office that was looking for a student to hire. The supervisor had made friendships among some of the Computer Science department staff, and asked them to help her pick out smart students for programming job openings. It must have been the shirt I was wearing or something, because I wasn’t doing that well in the class.

I went to an interview at the office on campus. I wasn’t very good at interviewing, having only done a few for internship positions the previous year. After a few weeks they called me back and asked me if I’d like to work there. I had a feeling I wasn’t their first choice since it took them so long to get back to me, but I didn’t argue. I knew having some programming experience would help me when I was interviewing for real jobs someday.

The Physical Plant building is at the southwest corner of MSU’s main campus. At the time I got the job, I was living on campus in McDonel Hall, but eventually I moved off campus, several blocks from the northwest corner of campus, which put me decently farther away from work. But who cares? I had a bike and I was young, and I walked or rode my bike everywhere. It was no big deal. MSU’s campus is so expansive, it’s not news when you have a long way to go to get somewhere.

The Physical Plant division is responsible for several disjoint functions of the university. Here is their website: http://www.pp.msu.edu/index.htm The most prominent arm is the power plant, which was always what people thought of when I told them I worked at the Physical Plant. The power plant is a coal-fired electrical plant that provides electricity and heat to the campus. We took a tour and saw the huge turbines and the area where the coal was brought in from the train cars. The train tracks that cross Harrison near Trowbridge, and the tracks that cross Hagadorn just south of the dorms, are the tracks the coal was brought in on. [We could tell when there was a delivery of coal to the plant because we could feel the earth vibrate. When coal is delivered through rail, there is always extra coal that sticks to the bottom of the coal cars. The plant is equipped with big mechanical arms that shakes the cars and dislodge the remaining coal.]

The Physical Plant division also covers the university’s motor pool (cars for employees to borrow for university business), the key-making and duplicating department (for dorms and all the buildings), the engineering group (surveying, repairing sidewalks, planning building additions, etc.), a building maintenance group, a chemistry-based group (which was working on asbestos abatement when I was there), the MSU switchboard, and probably some other groups that I’m forgetting. I’m sure the Dungeons and Dragons crowd at MSU would have envied my access to the campus map of the steam tunnels stored in the engineering offices.

Our office’s job was to give these business units computer support. We wrote software for them, hooked their computers to our network, changed ribbons and toner cartridges in printers, and anything else they needed. The MSU switchboard had its own mini version of the mainframe we used, in case ours went down. We wrote the program they used to look up phone numbers, and we occasionally went over there to do maintenance and upgrades to that computer. [The operators were fun to listen to. They had a lot of phone numbers memorized, and would more times than not rattle them off immediately to the caller without having to look them up. By the way, the phone number for information at MSU is 353-1855, 1855 being the year the college was founded.]

We ran backups every weeknight, and stored them in fireproof vaults in another area of the building. There was a set schedule for how long backups were kept, and some backups were more important than others. Monday-Thursday backups were only of changes made since the previous Friday, and Friday backups contained everything in the system. Some Friday backups were kept for several months as a security measure, and I think the normal weekday backups were only kept for a few weeks. We even sent some backups offsite to some other building as an additional security measure.

We had big reels of tape that we used to back up the system. The backup program would tell us when to put the next reel onto the drive, and when we done we’d pack them up and carry them to the vault. Friday backups took two hours, and the daily backups took maybe 30-40 minutes. I liked doing the Friday backups because classes were done, and I could get an extra 2 hours of pay without having to worry about having an exam the next day. We were allowed to kick people off the computer who were still logged in after 5:00 pm, but we always called them first as a courtesy. I got chewed out a few times by unhappy people who had left their computers at the wrong time and had been disconnected. When we disconnected them, they were unable to use their computer at all – this was before everyone had a PC on their desk with a hard drive. Their hard drive was sitting in our room, and we controlled their access to it.

The mainframe we used was an HP3000. I couldn’t find a picture of it online, but it is a line of mainframe that’s been around for a long time. It was in a room about 15’x20’ that was air conditioned to offset the computer’s heat. Next to it were two large boxes, about 2’ square and 2’ high. Those were the disk drives. If I recall correctly, together they stored 2 gigabytes. Part of the floor was a series of 1’ square carpeted wood and rubber blocks, and those blocks could be removed to reveal a trench in which we ran cables to and from computers hooked up to the computer. I don’t think the whole floor was like that, just part of it. The trench led to a series of conduits that ran the length of the building and went to the other offices, and outside the building to the other buildings in the division.

[Here is a picture on BoingBoing.net of a data center that has a floor like the one we had – note the comment below the picture by a gentleman whose name is eerily similar to mine.

http://www.boingboing.net/2006/07/21/web-zen-geeknerd-zen.html

We did not have a plunger to lift our floor tiles, we had a tool with spikes and handles that looked like a medieval torture device. You put the spikes at the top of the tile, pressed down, and operated a handle, which caused the spikes to dig into the carpeted rubber top of the tile. When the spikes were locked in, you lifted the whole thing up and out.]

Because it’s important to keep the temperature and humidity under control in a data center, there was a sensor installed that monitored the conditions in the room. If the temperature was too high, the unit would dial a phone number that was programmed into it, and when someone answered it would say “The temperature is 79 degrees. The humidity is 45%. The time is 11:33 pm.“ or whatever the conditions where. It was also possible to call this unit from an outside line, and it would repeat that information to you. Occasionally, someone would dial a wrong number, and the unit would ring, and we’d hear the unit telling the befuddled caller what the temperature was. More often than not, the unit would ring again a minute later, and give the message again – a lot of people who accidentally called it would call it again.

We had an open office setup with several student programmers. I think the number of students ranged from three to five when I was there. We were part of a larger office (Room 1) that housed some payroll people, a university/union go-between, a phone billing supervisor, and a few others. There were other students who worked in our outer office that we made friends with. Universities are terrific places to get a job as a student – there is so much to be done, and universities always have so much money. I was representing my company at a job fair a few months ago at MSU, and I walked by one of the engineering department offices. At the reception desk was a student, quietly doing homework, waiting for a phone to ring, or something else to do. How can you beat a job like that when you’re a student?

People in our group got along well with each other. We went out to lunch once or twice a week, and always had a good time. I remember going to Ponderosa quite a few times, and the hungry students having a contest to see who could each the most chicken wings at the $3.99 buffet. This is why Americans are fat – the Ponderosa buffet.

This was my first introduction to office politics and the different kinds of people who have to find a way to work together. There was a guy who had more than 1000 hours of vacation time saved up, and a woman who took every minute of her vacation and sick time as soon as it was available. There were people who we knew to steer clear of, and who looked down on the students, and there were others who welcomed the students and appreciated their help. I think a lot of the people we helped, especially with things like changing toner cartridges, liked the fact that there were students doing this work – I think some capable people didn’t bother with trying to change them, they just figured a student should do it.

We had a phone number that rang where the students sat, and we took turns answering the phone and helping people. We also had a schedule that we followed for some printers and other maintenance items.

The laughable tech support moments were inevitable. The one that sticks out in my mind was the woman’s keyboard that stopped working. She called the support line, and we went up with a replacement to give her. We asked if anything had happened to it, and she said no. When my supervisor picked up the keyboard, Coke spilled out of it and onto the floor and his shoes. Then a miracle occurred, and the woman’s memory of a Coke-related incident was restored.

Another time, a user reported a problem with that era’s version of a network router (a machine that allows multiple computers to share a single network connection). The routers in those days were much more expensive than they are today, and were the size of a modern-day PC. The office that reported the problem was very nicely decorated with pictures and plants. Unfortunately, one of the plants had been overwatered and had spilled water out of its pot. More unfortunately, it was sitting on top of the router, which had a layer of water inside its case. If I recall correctly, the router cost about $1000 to replace.

Up Next: Part II of Part III in a series of descriptions of my former jobs. I will go into more detail about the kinds of work I did, the programming languages and operating system, and unravel the complicated embezzlement conspiracy my coworkers and I pulled off in daring, all-night raids.