Pages, some stolen, some original

Friday, February 17, 2017

Computer Systems


Cardstacking a 6.1m (20 ft) Card Tower

A 'house of cards' used to be my favorite analogy for computer systems. You start with theoretical physics on the ground and then you put down a layer of transistors and the technology needed to print zillions of them on chips. Once you have the hardware then you can start layering software on top of it, layer after layer of libraries, functions, procedures, API's (Application Programming Interfaces), and eventually your application program, which does something useful. It's all great as long as everything works the way it is supposed to, but one little bug can send the whole thing crashing to the ground.

About a week ago I decided I needed a user-friendly front-end for my 3D gear drawing program, so I went looking for a sample program I could use as a basis to build my own. One thing led to another and I ended up at QT, which is a package for developing user interface programs for Linux. They have a fancy website, full of instructions, documentation and files to download. Plus it seems to be what was used to build the KDE desktop program that is running on my Linux box. So I download and install it and all goes well until I try to compile one of the sample programs and boom! I get an error: cannot find qmake. Well, fiddle-me-stickers. I go poking around and end up on a couple of forums where I quickly get some free advice. I follow some of the proferred links, one link leads to another, and pretty soon I am back where I started and still no solution. I check back a day or so later and now we have some real information, i.e. information judiciously applied that changes the situation. A couple iterations and presto, we can now compile and run at least one of the sample programs.

Now I have a new analogy to describe computer systems. The house-of-cards analogy was great back in the days of mainframes and mini-computers, and even in the early days of microprocessors. The machines were expensive and so it was worthwhile to enforce a rigorous design structure on the software that ran on them. (Make no mistake, enforcement was an expensive proposition. Remember the story about how managing programmers is akin to herding cats.) But then computer hardware got to be much cheaper, many more people found uses for them, and people started tacking all kinds of programs onto the existing base structure. And what we ended up with is a horribly complicated mess. Well, at least it looks like that if you look under the hood.

Then I got a new idea: Modern computer application programs are a lot like automobile factory assembly lines. They started with a simple assembly line where cars were assembled piece by piece, but as time went on, cars became more successful and the assembly lines got more complicated. It used to be when you needed to hook into the assembly line, you could ask anybody who worked in the factory and they could tell you what you needed. Now, however, there are a zillion people working there and most of them have no idea about what goes on outside their small corner, but being helpful people they are willing to offer all kinds of advice. "Oh, you need a bolt? I think I saw some bolts over in the windshield department. They are over there, on the other side of the campus." So you go to the windshield department and they laugh and send you to the casting department. Today's computer systems are a lot like that. You may only need one small piece of information, but finding someone who can give you that bit might take days, and that's only because we have the internet.


Trip Through The River Rouge Plant (1938)

Best part of this video is part where they show how V-8 engines are cast. I was looking for something like this earlier and couldn't find anything. Another interesting bit was the grinding and polishing of window glass. Nowadays it comes out of the extruder clear and flat, or it is once it cools down.

Watching this video I was most impressed by the number and size of the machinery used in production. There must be an equally huge industry that builds these machines, but the companies involved are scattered around, not concentrated in one place. It's kind of funny. The assembly line jobs are promoted by politicians and community leaders as being 'good jobs', and while they may provide good pay and benefits, they strike me as boring and tedious in the extreme. Building the machines used to build cars, being as those machines are going to unique, that could be an interesting job. Funny how that works. The more we automate things, the fewer rote, assembly-line jobs there are, but without automation, most people would not be able to afford the products being produced.


No comments:

Post a Comment