A person pretty much skilled in learning programming languages. Been there, done that, with a different set of languages in the 70s, 80s and 90s. From assemblers, to medium level macro languages like PL/M and NPL, to classical bread-and-butter languages at that time like COBOL, FORTRAN and PL/I to bizarre toys like SMALLTALK.
Some of them, like APL, might still be around somehwere, most others are lost in the mists of time. (Unless you have a running POCAL implementation somewhere, let me know...)
Sooner or later, if you want to be stuck in programming for all your life, you'll notice that - in projects people are willing to pay money for - you more or less use two or three languages, max.
And as a programmer, you are not usually allowed a choice.
You are paid to solve real-world problems, for real-world users, with real-world mainstream languages. Or you end up serving people coffee who do.
OK. You could learn COBOL from a reference book. You could also try to learn sex from a reference book.
COBOL is old and different. It was conceived at a time when computers and peripherals were much different, when computer science was something weird done by mathematicians, when software needed to be compact and fast. When GUIs and graphic processing didn't exist - nor did most other programming concepts considered "normal" these days. Imagine batch processing. Your program, on punched cards, together with paper on punched cards, would (if you were lucky) refer to data on a hard disk, then produce either a printout, more punched cards or even a magnetic tape...
You can program in eight modern languages? An analogy. You can drive eight different modern cars. Automatic transmission and everything. Could you drive a Ford Model T? Or a steam engine?
It will expect you to KNOW why it has a number of different data types to store numerical data. You might need to understand about memory usage and layout to understand what some of the code does.
Recursion? In most implementations, recursively calling a subroutine is fine. It just won't return:)
Concepts like STRING and UNSTRING are actually very useful. Others, like ALTER, are not. (Hands up, you who have seen ALTER statement...)
And STRING and MOVE can both be used to move data from A to B. Still, there is a tiny difference, not usually explained in the books.
COBOL is a highly specialized language, very good for large volume batch transactions of data. Something it still does very well. You don't want to do that in Java.
It's like teaching BASH scripts to Windows users. They do not really understand the class of problems you can solve with it - and the reason behind some of the shell implementation details.
You can learn COBOL. No problem there. But using it in any reasonable way takes a lot more.
Also, why would you? There's still a lot of us old farts around and the need for even more COBOL programmers just isn't there.
(Disclaimer: I haven't written COBOL for money for over ten years now. I don't miss it. PL/I however...)
It might not be the flashiest of exhibits, but these people are on a VERY small budget.
(Unlike, e.g. the National Air and Space Museum.)
It's well worth visiting - if not for small kids. And buy a bit of roof when you are there:)
I've done the same, since the mid-80s. Programming, systems management, network management, DP management, training, support, even related areas like export control and security.
Yes, it becomes boring after a while. You can change jobs, which can help. For a while.
Changing careers? This means going back to school. For a long time. And no matter what, you are likely to earn much less than you do now. In a beginner's job. They are known to be less than exciting. Ever been to the army? It sounds exciting in the ads. But watching grass grow is more fun.
Now... Running your own business? Possible. But difficult. Stupid idea if you are untrained. Someone who can live with less money than you and who is highly motivated already does whatever comes to mind - and has been doing it for ten years. (Septic tank cleaner? Be serious...) There are thousands of people sick and tired of their life who turn to gastronomy. They buy a place from the people who failed at it before. Then, they fail again.
I'd recommend to train up, then work in that area. Maybe computer forensics, carrier-grade networking, anything obscure is fine, as long as it offers employment and does not involve wrting a file system named after you.
So what?
- His question was polite
- Google did not really deliver
- He asked in something called a "suport" forum.
Most answers were masturbatory. Tell me why anyone would spend time reading threads in a support forum (a support forum is where people come when they lack knowledge and seek enlightenment) but then just use them to unload heaps of insults on people. Tell me why ANYone should be interested in learning about Linux if little, insecure kids use this to run (micro-) dick size wars.
"I am better than you and you are too stupid to even understand why" is neither polite nor professional. Anyone writing anything to that account immediately loses all credibility with grownups - but there might be a niche for this kind of cyber-trailer trash.
But I think we agree that Windows does a number of things much better than Linux ever will. (And vice versa - but that is not the point here.)
add-on to previous post:
I checked his post in that forum again. Nothing violating ESR's ideas about good posts - and definitely not an invitation to be rude.
A couple of month ago, a UK manager from Microsoft did a presentation on MS and blogging.
VERY interesting. "No, we do not mind our staff to blog. And it is a great way to listen to what our customers really want. A number of design decisions were made the way they were because of that feedback and this will not change."
Microsoft is starting to listen to users. The Linux community, whatever it is, appears to only listen to elitists.
The problem might be that he does not speak much English. He used Google to some extent, this is how he ended up in that forum.
I doubt that learning how to ask the correct question is anything but sheer bullshit from a "customer" point of view. Remember that the main issue here is treatment of the uninitiated - and not everbbody wants to join a religion...
You know whho I mean. Teen wearing "I am root, bow before me" t-shirts and who hang around in Linux support forums because Linux installed automatically on their PC. Never compiled a kernel, never seen a kernel being compiled - and wouldn't know bash from COMMAND.COM.
You most likely know the type.
Enters a friend of mine. New to Linux. Reasonably clever, manages to install, then wants to run Windows games under Linux. He learns about wine and wants to know if it will do what he wants it to do.
"No problem," he thinks, "there is this thing called the community and I will go and ask!"
And he did. In polite words. Telling people about his system setup, about his idea to change to Linux, then asking a number of questions about distributions (which one?), wine and performance.
Answers included things like:
- "Go away, windows boy!" (no further comments)
- "RTFM!" (no further comments)
- "Use Google." (including the common "Oh no, another Windows user..." quote)
It was made very clear to him, in all but two answers, that he was not welcome, the wrong kind of user, morally inferior for wanting to play non-free games.
Two people actually jumped in and told him that, yes, Windows was actually better in supporting Windows games and wine wouldn't really help there. Linux would not make sense here. Heresy takes courage.:)
I am a bit of a late starter, installed my first SLS when kernel versions were around 0.98, the file system was minix and you had to hex-edit sectors to set your boot device. If you haven't been there, you don't want to know what you had to do to make X run. I remember a different kind of Linux crowd from that time. "Snotty" was not part of that.
Nowadays, my t-shirt would probably read: "I was root. It becomes boring. Now I just fired root for beeing cheeky and hired Admin because he is polite, solves my problems and will not risk my business on alpha code."
Linux is a great OS - and my friend is now learning how to use a Linux server as a game server (for windows games), web server and FTP server. He is doing fine, even with bash, as he is not stupid - just untrained. His web interface for game servers is not looking too bad...
But like would be easier if the "WHOOOA! I am root!" kids (on a single user system, probably running a boot-from-DVD Knoppix or a SuSE Live DVD) learned to shut up unless they had something helpful to say. They are not doing Linux any good.
For hardwired data structures and batch processing in commercial environments, COBOL used to be quite useful. (But PL/I would do a better job.)
COBOL could (and can) be made to perform. Talking about millions of records and file operations, not the cute little amount of data a GUI displays.
Java might be important for some people to learn. But it will forever limit your abilities. The same applies to any other single language you could possibly learn. As they say: If your only tool is a hammer, everything looks like a nail. While you could go and write a simulator for a particle accelerator, an accounting package or a text editor in almost any language, you will find that certain languages are more suited to certain tasks. Remember that, in theory, the same applies to Excel. Would you consider yourself computer literate on a software developer level just because you understood every single Excel feature? With Excel being capable of (in theory) being used to create almost any imaginable application?
You need to know what's under the hood at some time. You also need to know that good tools save time and lead to better quality. (Few customers in the 80s and 90s understood that 4GLs and report generators would beat COBOL hands down in these areas, with few exceptions - and there's still COBOL code out there.)
Java is like short order cooking in a diner. You might be able to earn a living, you mignt even end up managing a chain of diners, but the fine art of e.g. french cuisine will forever escape you.
(My first programming language was FORTRAN IV. Since then, I learned a new programming language every two years. About. Until I stopped working in development. Don't expect Java to last you more than a couple of years. Unless you want to do something similar to maintaining 30 years old COBOL code. Learn. Or stay in accounting, where you belong.)
*The article doesn't explain how 1940s hardware competing with modern hardware is a remotely interesting contest.*
I had the luck to visit the Bletchley Park facility earlier this year. (Are you a True Geek? Do the same. They need the money and I mean that.)
That piece of '40s hardware might look like a crossbreed of a Wells time machine and a phone exchange, but it was (the replica is) incredibly fast. At one very specific task only, solving one of a class of problems.
Do not overestimate the speed of a modern PC - it is kept back by years and years of inefficient programming.
The people working on Colossus were Real Programmers of the first order (no quiche!). I'd expect the race to be pretty close.
Germany also wants to implement the EU mandantory logging of IP connection data. To fight terrorists, of course.
Now we learn that the music industry will most likely get access to the data for the terrorist crime of copyright violations aka file sharing.
As the German saying goes: "Dumm fickt gut", which roughly translates as "A stupid person is a great lay."
It appears that you cannot beat experience here...
Trackball ? I wish... and they are rather old.
on
Mouse or Trackball?
·
· Score: 1
In the mid- to late 70s, the typical terminal was something like a IBM 3270, keyboard the size of a C64.
At that time, the PETRA particle accelerator at DESY in Hamburg, Germany needed a new control room. The computers used were Norsk Data Nord-10s and 100s, with hand-built graphics hardware (and hand-built process control hardware called SEDAC).
Every operator had access to one keyboard, one touch panel (about 9", b/w, with 16 zones), two graphics monitors (about 19", 512x256 pixels in 8 colours - but multiple layers), on b/w monitor and two (count them) trackballs to the right and left of the keyboard, embedded in the table. They had one button each and were the size of a big pool ball.
Later, some rows of programmable buttons were added.
If there is anything nicer than having two serious trackballs as input devices, I haven't seen it yet...
Nope... The file system in question actually SUPPORTS record structures, multiple access methods, file allocation in cylinders, multiple catalogues etc.
A lot of flexibility to get the most performance out of something that used to cost a fortune. The OS would take care of application data at a record level, if needed, adding an index, allocating for optimum speed or space. Very powerful, very sophisticated, but a pain to use.
Today's file systems offer access to blobs of storage, thanks to abstraction layers. Something that, in the 80s would have been pretty expensive to do. For the stuff the general user is doing, this is by far the best approach.
Allocating storage in units less than 4K doesn't make much sense nowadays.
Example:
I just created a file called "phonenumber.odt". A OpenOffice 2.0 text file containing my name and my phone number.
Size for this is 2.76 KB. It uses 8KB on the disk.
And when it comes to sophistication - remember that in the days of proprietary "minicomputers", with operating systems like VMS, AOS/VS and the like, file systems had features that I'd love to see in current operating systems from an usability point of view.
As an example, SINTRAN-III, a slightly outdated OS, would allow for automatic versioning of files. You would edit the latest version and it would autosave not only the last version but up to 254 older ones in total. Having access to the last three versions of anything (not limited to text!) in the times before version control was really nice to have.
Both the files systems of AOS/VS (Data General) and Guardian 90 (Tandem) allowed for block suballocation and extents, respectively.
Basically, a lot of "new" trends have been there before.
Not mine, of course.
The first computer I owned and assembled (years later) was a ZX81 kit. If you were used to 4MB of RAM and MVS , using 1K made you return instantly to the IBM. Sold the kit at a profit and the next box I owned was a home-built 386. Again, many many years later.
This kind of guilt is nothing that is lessened when shared. Instead of fractions ( 1/3 the students, 1/3 the hospital, 1/3 society), you end up with 1 "unit of guilt" for the students. Add one for the hospital if you like. (However, being a bad admin is not a crime, yet.) Someone else's guilt is not making the students less guilty.
Let use the (now crowded) gun shop again. The thief who just shot your neighbor's baby daughter is not "less guilty" because the gun shop wasn't as secure as we think it should be. The gun shop should be punished, possibly closed - but this is a totally different issue. The killer had a bad childhood ? Sure - many law-abiding people did, too.
I remember a project ages ago (before the Pentium rounding bug).
The customer (a state railway company) wanted to calculate fare tables. For that, they needed to be able to round up (2.1 -> 3), down (3.9 -> 3) and commercial (2.5 -> 3).
Nothing too fancy so far. However, they also needed this operation to be carried out on PARTS of a currency unit - as in $0.20.
Rounding up here would mean $3.04 -> $3.20.
A typical scenario would look something like this :
From 1-20km, the fare is number of kilometers multiplied by.32, rounded up to the next $0.10, then multiplied with a "class factor" of 1 for second and 1.5 for first class.
(And so on, and so on...)
Calculating a complete fare table at that time would take about 12 hours on a serious size Tandem computer.
(And of course, the program was written in a mix of COBOL and FORTRAN...)
So what would you end up with?
A person pretty much skilled in learning programming languages.
Been there, done that, with a different set of languages in the 70s, 80s and 90s.
From assemblers, to medium level macro languages like PL/M and NPL, to classical bread-and-butter languages at that time like COBOL, FORTRAN and PL/I to bizarre toys like SMALLTALK.
Some of them, like APL, might still be around somehwere, most others are lost in the mists of time.
(Unless you have a running POCAL implementation somewhere, let me know...)
Sooner or later, if you want to be stuck in programming for all your life, you'll notice that - in projects people are willing to pay money for - you more or less use two or three languages, max.
And as a programmer, you are not usually allowed a choice.
You are paid to solve real-world problems, for real-world users, with real-world mainstream languages.
Or you end up serving people coffee who do.
OK.
You could learn COBOL from a reference book.
You could also try to learn sex from a reference book.
COBOL is old and different. It was conceived at a time when computers and peripherals were much different, when computer science was something weird done by mathematicians, when software needed to be compact and fast. When GUIs and graphic processing didn't exist - nor did most other programming concepts considered "normal" these days. Imagine batch processing. Your program, on punched cards, together with paper on punched cards, would (if you were lucky) refer to data on a hard disk, then produce either a printout, more punched cards or even a magnetic tape...
You can program in eight modern languages?
An analogy. You can drive eight different modern cars. Automatic transmission and everything.
Could you drive a Ford Model T? Or a steam engine?
It will expect you to KNOW why it has a number of different data types to store numerical data.
You might need to understand about memory usage and layout to understand what some of the code does.
Recursion? In most implementations, recursively calling a subroutine is fine. It just won't return :)
Concepts like STRING and UNSTRING are actually very useful. Others, like ALTER, are not. (Hands up, you who have seen ALTER statement...)
And STRING and MOVE can both be used to move data from A to B. Still, there is a tiny difference, not usually explained in the books.
COBOL is a highly specialized language, very good for large volume batch transactions of data. Something it still does very well. You don't want to do that in Java.
It's like teaching BASH scripts to Windows users. They do not really understand the class of problems you can solve with it - and the reason behind some of the shell implementation details.
You can learn COBOL. No problem there. But using it in any reasonable way takes a lot more.
Also, why would you? There's still a lot of us old farts around and the need for even more COBOL programmers just isn't there.
(Disclaimer: I haven't written COBOL for money for over ten years now. I don't miss it. PL/I however...)
It might not be the flashiest of exhibits, but these people are on a VERY small budget. (Unlike, e.g. the National Air and Space Museum.) It's well worth visiting - if not for small kids. And buy a bit of roof when you are there :)
The Unicomp one rules. Mine is still the old min-DIN PS2 version, bit I have used it for years. After buying a keyboard a year before that.
I've done the same, since the mid-80s.
Programming, systems management, network management, DP management, training, support, even related areas like export control and security.
Yes, it becomes boring after a while. You can change jobs, which can help. For a while.
Changing careers? This means going back to school. For a long time. And no matter what, you are likely to earn much less than you do now. In a beginner's job. They are known to be less than exciting. Ever been to the army? It sounds exciting in the ads. But watching grass grow is more fun.
Now... Running your own business?
Possible. But difficult. Stupid idea if you are untrained. Someone who can live with less money than you and who is highly motivated already does whatever comes to mind - and has been doing it for ten years. (Septic tank cleaner? Be serious...) There are thousands of people sick and tired of their life who turn to gastronomy. They buy a place from the people who failed at it before. Then, they fail again.
I'd recommend to train up, then work in that area. Maybe computer forensics, carrier-grade networking, anything obscure is fine, as long as it offers employment and does not involve wrting a file system named after you.
So what? - His question was polite - Google did not really deliver - He asked in something called a "suport" forum. Most answers were masturbatory. Tell me why anyone would spend time reading threads in a support forum (a support forum is where people come when they lack knowledge and seek enlightenment) but then just use them to unload heaps of insults on people. Tell me why ANYone should be interested in learning about Linux if little, insecure kids use this to run (micro-) dick size wars. "I am better than you and you are too stupid to even understand why" is neither polite nor professional. Anyone writing anything to that account immediately loses all credibility with grownups - but there might be a niche for this kind of cyber-trailer trash. But I think we agree that Windows does a number of things much better than Linux ever will. (And vice versa - but that is not the point here.)
A couple of month ago, a UK manager from Microsoft did a presentation on MS and blogging. VERY interesting. "No, we do not mind our staff to blog. And it is a great way to listen to what our customers really want. A number of design decisions were made the way they were because of that feedback and this will not change."
Microsoft is starting to listen to users. The Linux community, whatever it is, appears to only listen to elitists.
MS finally found a way to fight Linux...
The problem might be that he does not speak much English. He used Google to some extent, this is how he ended up in that forum.
I doubt that learning how to ask the correct question is anything but sheer bullshit from a "customer" point of view. Remember that the main issue here is treatment of the uninitiated - and not everbbody wants to join a religion...
You most likely know the type.
Enters a friend of mine. New to Linux. Reasonably clever, manages to install, then wants to run Windows games under Linux. He learns about wine and wants to know if it will do what he wants it to do.
"No problem," he thinks, "there is this thing called the community and I will go and ask!"
And he did. In polite words. Telling people about his system setup, about his idea to change to Linux, then asking a number of questions about distributions (which one?), wine and performance.
Answers included things like:
- "Go away, windows boy!" (no further comments)
- "RTFM!" (no further comments)
- "Use Google." (including the common "Oh no, another Windows user..." quote)
It was made very clear to him, in all but two answers, that he was not welcome, the wrong kind of user, morally inferior for wanting to play non-free games.
Two people actually jumped in and told him that, yes, Windows was actually better in supporting Windows games and wine wouldn't really help there. Linux would not make sense here. Heresy takes courage. :)
I am a bit of a late starter, installed my first SLS when kernel versions were around 0.98, the file system was minix and you had to hex-edit sectors to set your boot device. If you haven't been there, you don't want to know what you had to do to make X run. I remember a different kind of Linux crowd from that time. "Snotty" was not part of that.
Nowadays, my t-shirt would probably read: "I was root. It becomes boring. Now I just fired root for beeing cheeky and hired Admin because he is polite, solves my problems and will not risk my business on alpha code."
Linux is a great OS - and my friend is now learning how to use a Linux server as a game server (for windows games), web server and FTP server. He is doing fine, even with bash, as he is not stupid - just untrained. His web interface for game servers is not looking too bad...
But like would be easier if the "WHOOOA! I am root!" kids (on a single user system, probably running a boot-from-DVD Knoppix or a SuSE Live DVD) learned to shut up unless they had something helpful to say. They are not doing Linux any good.
For hardwired data structures and batch processing in commercial environments, COBOL used to be quite useful. (But PL/I would do a better job.)
COBOL could (and can) be made to perform. Talking about millions of records and file operations, not the cute little amount of data a GUI displays.
Java might be important for some people to learn. But it will forever limit your abilities. The same applies to any other single language you could possibly learn. As they say: If your only tool is a hammer, everything looks like a nail. While you could go and write a simulator for a particle accelerator, an accounting package or a text editor in almost any language, you will find that certain languages are more suited to certain tasks. Remember that, in theory, the same applies to Excel. Would you consider yourself computer literate on a software developer level just because you understood every single Excel feature? With Excel being capable of (in theory) being used to create almost any imaginable application? You need to know what's under the hood at some time. You also need to know that good tools save time and lead to better quality. (Few customers in the 80s and 90s understood that 4GLs and report generators would beat COBOL hands down in these areas, with few exceptions - and there's still COBOL code out there.) Java is like short order cooking in a diner. You might be able to earn a living, you mignt even end up managing a chain of diners, but the fine art of e.g. french cuisine will forever escape you. (My first programming language was FORTRAN IV. Since then, I learned a new programming language every two years. About. Until I stopped working in development. Don't expect Java to last you more than a couple of years. Unless you want to do something similar to maintaining 30 years old COBOL code. Learn. Or stay in accounting, where you belong.)
I had the luck to visit the Bletchley Park facility earlier this year. (Are you a True Geek? Do the same. They need the money and I mean that.)
That piece of '40s hardware might look like a crossbreed of a Wells time machine and a phone exchange, but it was (the replica is) incredibly fast. At one very specific task only, solving one of a class of problems. Do not overestimate the speed of a modern PC - it is kept back by years and years of inefficient programming. The people working on Colossus were Real Programmers of the first order (no quiche!). I'd expect the race to be pretty close.
Germany also wants to implement the EU mandantory logging of IP connection data. To fight terrorists, of course. Now we learn that the music industry will most likely get access to the data for the terrorist crime of copyright violations aka file sharing.
As the German saying goes: "Dumm fickt gut", which roughly translates as "A stupid person is a great lay." It appears that you cannot beat experience here...
In the mid- to late 70s, the typical terminal was something like a IBM 3270, keyboard the size of a C64. At that time, the PETRA particle accelerator at DESY in Hamburg, Germany needed a new control room. The computers used were Norsk Data Nord-10s and 100s, with hand-built graphics hardware (and hand-built process control hardware called SEDAC). Every operator had access to one keyboard, one touch panel (about 9", b/w, with 16 zones), two graphics monitors (about 19", 512x256 pixels in 8 colours - but multiple layers), on b/w monitor and two (count them) trackballs to the right and left of the keyboard, embedded in the table. They had one button each and were the size of a big pool ball. Later, some rows of programmable buttons were added. If there is anything nicer than having two serious trackballs as input devices, I haven't seen it yet...
...shows more brains that most ego shooter AI opponents. (AND it does not cheat.)
Their problem is simple: get rid of the Helium...
Errr. Wrong.
They'd possibly get a medal in the east, loads of cash from certain people in the west.
A lot of flexibility to get the most performance out of something that used to cost a fortune. The OS would take care of application data at a record level, if needed, adding an index, allocating for optimum speed or space. Very powerful, very sophisticated, but a pain to use.
Today's file systems offer access to blobs of storage, thanks to abstraction layers. Something that, in the 80s would have been pretty expensive to do. For the stuff the general user is doing, this is by far the best approach.
Allocating storage in units less than 4K doesn't make much sense nowadays.
Example:
I just created a file called "phonenumber.odt". A OpenOffice 2.0 text file containing my name and my phone number.
Size for this is 2.76 KB. It uses 8KB on the disk.
And when it comes to sophistication - remember that in the days of proprietary "minicomputers", with operating systems like VMS, AOS/VS and the like, file systems had features that I'd love to see in current operating systems from an usability point of view.
As an example, SINTRAN-III, a slightly outdated OS, would allow for automatic versioning of files. You would edit the latest version and it would autosave not only the last version but up to 254 older ones in total. Having access to the last three versions of anything (not limited to text!) in the times before version control was really nice to have.
Both the files systems of AOS/VS (Data General) and Guardian 90 (Tandem) allowed for block suballocation and extents, respectively.
Basically, a lot of "new" trends have been there before.
If this is an issue, you use the wrong application - one word file per phone number?
File systems became simpler over time. This is a GOOD THING AND THE ONLY WAY TO GO.
If you try to optimize too much, you end up with something like the IBM mainframe file systems from the 70s, which are still somewhat around.
Create a simple file, called a data set ? Sure, in TSO (what passes for a shell, more or less), you use the ALLOCATE command: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS3 90/BOOKS/IKJ4C550/1.7.5?SHELF=&DT=20040721160158&C ASE=
Simple, isn't it ?
Forget complicated file systems, let the hardware handle speed. Ans possibly defragmentation.
Mark,
Indeed !
In fact my apologies - we seem to fight the same battle.
(How reading a message in the peace of home helps with understanding...)
Best,
Jens
Not mine, of course. The first computer I owned and assembled (years later) was a ZX81 kit. If you were used to 4MB of RAM and MVS , using 1K made you return instantly to the IBM. Sold the kit at a profit and the next box I owned was a home-built 386. Again, many many years later.
This kind of guilt is nothing that is lessened when shared.
Instead of fractions ( 1/3 the students, 1/3 the hospital, 1/3 society), you end up with 1 "unit of guilt" for the students. Add one for the hospital if you like. (However, being a bad admin is not a crime, yet.)
Someone else's guilt is not making the students less guilty.
Let use the (now crowded) gun shop again. The thief who just shot your neighbor's baby daughter is not "less guilty" because the gun shop wasn't as secure as we think it should be. The gun shop should be punished, possibly closed - but this is a totally different issue. The killer had a bad childhood ? Sure - many law-abiding people did, too.
Passwords ? Jan2006SAP, Jan2006Unix..... Simple.
I remember a project ages ago (before the Pentium rounding bug). The customer (a state railway company) wanted to calculate fare tables. For that, they needed to be able to round up (2.1 -> 3), down (3.9 -> 3) and commercial (2.5 -> 3). Nothing too fancy so far. However, they also needed this operation to be carried out on PARTS of a currency unit - as in $0.20. Rounding up here would mean $3.04 -> $3.20. A typical scenario would look something like this : From 1-20km, the fare is number of kilometers multiplied by .32, rounded up to the next $0.10, then multiplied with a "class factor" of 1 for second and 1.5 for first class.
(And so on, and so on...)
Calculating a complete fare table at that time would take about 12 hours on a serious size Tandem computer.
(And of course, the program was written in a mix of COBOL and FORTRAN...)