Sunday, December 14, 2008

I am a DEC guy

What does that mean? Well Digital Equipment Corporation (aka DEC) was the first computers that I worked on when I was at the University of Pittsburgh. I started on punch cards - working in FORTRAN using the SITGO - The Steven's Institute of Technology - Load and Go FORTRAN compiler. This was my introduction to formal computing and that which changed me from a chemistry major into a computer science major. From there I learned about Pascal, LISP, ALGOL, Simula and MACRO all on the DEC PDP-10 machines. They were 36-bit machines - 12 Octal digits. For this reason, to this day I still am not very good at Hex, but can do Octal math very well, and know a good chunk of the ASCII chart in Octal but not decimal. I struggled to work with Intel machines due to their handling of words, and the order they looked at bytes to create long-words. When at the software translation companies - we created various mechanisms to deal with the "endianness" of words and long-words. It also means that I never learned a solid appreciation for the big-iron machines of IBM. When starting work I worked on a VAX-11/785 - another DEC machine. I worked in LISP - but learned a lot about BLISS and C. It was there that I was introduced to Unix and the world of the Internet - my company had accounts @ Carnegie Mellon that we could dial-in to to read email. I still have yet to learn much about "The Mainframe" even though I did a brief stint at a subsidiary of IBM - Transarc. My big leap into Unix was on Sun Microsystems that were Motorola 68k based so the "endianness" was preserved and I did a lot of cool and interesting things with databases, networks, file systems and the like. The Sun-3 that I worked on had a spectacular keyboard that you could type extra-fast on and could take a pounding. I spent 5 years @ Westinghouse working on Suns, connecting the corporate network to the Internet, re-addressing the internal network from a C-Class to a sub-netted B-Class and in general learning a lot about networking and systems management.

Thursday, December 11, 2008

Crypto Advances

Seems I have been out of touch a little bit with the world of cryptography. Looks like there is a contest to devise a new hash algorithm which will become SHA-3. The good news is I think that the algorithms will be held up to some intense scrutiny and therefore we may actually get some decent code out of it. Code that runs fast, might have decent data structures associated with it, does what it is supposed to do, and hopefully nothing more than that. I think that's really the problem I have - creaping featurism, just keep piling on features to keep the "new version" revenue stream going, meanwhile never bother fixing the old stuff that didn't work. Much like a colleague of mine Bruce Leverett once wrote in a book he published: But in our enthusiasm, we could not resist a radical overhaul of the system, in which all of its major weaknesses have been exposed, analyzed, and replaced with new weaknesses. Yes - albeit not quite to the extent of Dr. Leverett - I was a compiler jock of sorts back when I worked with Bruce at the software translation company. One interesting tidbit was we worked in LISP - a language that had a lot of interesting variable names. One of the more interesting was Bliss32$Bruce - named after one Bruce Leverett - this variable contained various portions, up to and including the entire Bliss source file that was being processed and transformed into GIF (not the picture GIF - Generic Internal Form) for later processing. BTW - While creating this post - I realized that blogspot no longer provides an easy method for having your post title have a link associated with it. Yes indeed - that's what I'd call an advance. Why would you do away with functionality that existed in the past. Now overall I like blogger and blogspot - especially the new publish feature, that doesn't require needless generation time, but some things were better before.

Wednesday, December 10, 2008

Lack of caring in coding procedures

Today it seems that everyone simply wants to slam out some code, get it to the 90% mark then call it a day and grab a sandwich. If you are reading this blog, take a look at the pictures of the folks following this blog to see the evidence of this. Both pictures are poorly cropped images of the full size image you will see if you simply click the picture. I know for a fact that software to shrink an image is fairly straight forward, and I fully understand that the image presented may become illegible, however right now Scott is just a nose and eyes, and Tim is basically just the middle of his black and red jacket. If only people could care just a little bit about the code that they are creating and take some pride in what they are doing, perhaps things would not be so poor. More evidence of this is evident for those out there using google reader. Try subscribing to this blog Then go look in your feeds. You should see: "Secretary Mike Leavitt's Blog" There is however a good chance you will see: "Secretary Mike Leavitt 's Blog" WHY - BECAUSE NOBODY CARED THAT QUOTED CHARACTERS MIGHT CAUSE A PROBLEM AND JUST EITHER ENCODED EVERYTHING OR DIDN'T ENCODE ANYTHING!!! My motto - when you claim that something is "done" you should consider whether or not you would want to present it to your mother as evidence of the kind of work that you do.

Monday, December 8, 2008

Bits and bytes and things like that

Being a curmudgeon I can remember back to the days of punch cards and assembly language. It seems to me as though there is a plethora of high level languages and due to this all connection to how computers work seems to have been lost. In a conversation today with a long time friend I was discussing a time when I was debugging some code. Now this was back in the days when "dual-processing" meant I had 2 VT-100 class terminals on my desk. Background - I was working at a software translation company that translated one computer language into another - the specific languages in question were Bliss-32 and C. Both were on Vax 11/785 machines, running VMS. My friends were stepping through some code and there was an error in the code that they could not decipher. The translator had a nasty habit of generating a "*4" error. That is - C would automatically increment a pointer by the size of the structure being added, whereas Bliss-32 would not. We had all become familiar with finding the "*4" bug and fixing it. This particular structure however would not comply with the normal multiples - 2, 4, 8 - all failed. I was asked to have a look. I perused the source code, looked at the translated code, re-read the source and pronounced "11" to be the appropriate divisor. Flabbergasted my friends denounced me stating I must clearly be insane - 11 is prime, how could it possibly be the right divisor. I stated please try it. They did - and it worked. Moral - if you have the source - and understand the underlying behavior of computer languages, systems and architecture, you really can understand and predict what a system will do. I understand that the world has advanced and perhaps there isn't as much use for the understanding of bits and bytes and octal and decimal, but this is precisely what makes me a curmudgeon, I like some things the way that they were.