@Homard
"One question, did they guy that wrote that code have access to manufacturers data on the SCSI interface for it, or was it reverse engineered ?"
I know that in my case, with the Canon SCSI Scanner I was using; I had signed the NDA to access their documents in order to modify the Linux kernel to access that specific scanner.
I believe that previous guys/gals had had access to the specs of the devices they were using ... most of them were available online even at that stage, and the basic SCSI spec was very detailed since all manufacturers had to stick to the spec in order to call their device SCSI.
" ... Ever taken a look back at some of your earlier projects ? "
Actually I did ... I used to write in BBC Basic on an Acorn Electron (come on, someone must remember :) ) I wrote an adventure game just to test the concept ...
I did a computing course at college and learnt loads of new techniques and flow techniques.
I was stuck for a job for about 2 months after I finished so I thought, as you do, to go back and see if I could improve on this Adventure game, and fix broken loops (exiting out of uncomplete loops or using goto's, you know the type) and change the variable types to work better or more efficiently, proceduralise everything, etc.
I looked back at the code, I spent ages examining it (well about a week, but the code wasn't huge ... I'd already stored the Data separate from the code.) ... I made about 1 change on one line in the code.
Looking back at my old code that I write here, most of the changes are based on the fact that I update the comments to help my boss if he ever needs to look at it in future. Yes I've made other changes, but then I code mostly SQL now, they're usually due to database changes.
I like Linux, it is inherently more secure than windows, and the code is getting better and it does look nicer than it did in 1999. I have to support Windows as part of my job, but I won't go back, you can't make me!