Hungarian Notation: at that time, in that context, it worked. We were working in BCPL which has exactly one type: integer. So if the name didn't contain the type information, nothing did. It permitted us to do 'visual typechecking' and it worked pretty well. This was a group of 9 people doing very rapid development and there was an amazing consistency across all of our code. You really could walk into someone else's module and pretty much know what they were doing.
In certain situations where I feel it will add clarity, I still sometimes use a very lightweight version of it. E.g. in a deeply nested set of loops and ifs where there are lots of 'foo's flying around I'll still use fooFirst, fooNext, etc.
It turned out just fine. Our "VCS" was a magnetic white board with a grid on it (remember, this was 32 years ago). Every filename had a box. When you checked out a file you put a little colored magnet (we each had our own color) on it. If you wanted a file that was already checked out you put your magnet upside down over the current one and when the person checked it in they would flip yours over, poke their head through the door and say 'foo.h is yours.'
Charles would sometimes want to make a 'quick fix' and wouldn't bother with the board. You know where this goes... Person A would have it checked out and be making changes, Charles would grab a copy from the master directory, Person A would check in his changes, and Charles would check his copy in on top of that. Sometimes we wouldn't know about this until we did our Weekly Build and things just didn't work right.
After this happened about 5 or 6 times the team voted to change the password on the master source directory and Charles always had to have someone else do the checkout/checkin for him. He bitched a little, but he knew he was guilty. I didn't always agree with him (ha! that's an understatement), but if you gave him a strong enough argument he would eventually come around.
See if you can assign a value to the data already lost because of their failure to follow the rules. We did a variation of this at Xerox ASD in the 70's and locked Charles Simonyi (yes, that Charles) out of "his" own source code.
I find in talking with my wife and other friends/family who are not SciFi readers that they are often surprised by certain events in the news. Whereas I will say something like, "Oh, this reminds me of Snow Crash, or Left Hand of Darkness... kewl!"
Good quality, 'what if'-style SciFi keeps your world view more flexible than reading most any other kind of genre.
I think you are trying to refer to Grace Hopper. She was a pioneer in the use of compilers (as opposed to assembly language). One of the languages she created was FLOW-MATIC, which evolved to become COBOL.
He does have one very legitimate concern, and that is that the platform can easily be forked, potentially ending up in a situation like old-style Unix, where each vendor had different incompatible versions of Unix (HPUX, AIX, etc).
I happened to write the first source-level C debugger that actually worked (sdb was buggy as hell, and dbx at Sun was debugged with my debugger). I absolutely loved it when the Yates Report would say that yet another company would "capture 20% of the UNIX market." I waltzed on over, gave their senior geeks a pitch, and waited for the manager fold as they begged for a working debugger.
One of the weird things I've run into in doing 3rd-party tech support is that houses can, indeed, have Faraday cages.
If the house is of the right vintage (mostly pre-1950's) it may have plaster walls. One method of hanging plaster is to put up a metal mesh lath which can make a very effective Faraday cage out of each of the rooms.
A modern variation on the builtin Faraday cage is rigid foam insulation that is covered on one or both sides with a metal reflective coating, often used in external wall insulation.
When a new customer calls and says they are having trouble getting wireless to work in their house, one of my first questions is does it have plaster walls.
Back in 1973-74 I worked part-time teaching the TUTOR language to profs at U of I Chicago, and part-time driving around Chicago working on these things at places like Malcom X. Jr. College. These terminals were built like tanks and weighed about the same. The most vulnerable part was the random access audio device, which was a phenomenal kludge that was sort of a turntable that you could put a big, floppy piece of recording material on and it used pneumatics to move the record/playback arm in and out and also to advance/retreat the position of the turntable to reduce seek time. Fortunately, very few courses used these abominations.
The terminals were also dangerous as hell to work on. None of the metal stampings had had their edges smoothed and so you could slice yourself open just sticking your arm in there. You could also kill yourself if you weren't careful around some of the mega-capacitors that were inside. I accidentally shorted one with a screwdriver and it basically melted it. Try doing that with one of your wimpy little LCDs.
Remember, kids: if it can't kill you, then how the hell can it be any fun?
I've been fortunate enough to mentor a couple of prodigies. The key is not to Go Big, or Go Small, or Go Bare Metal, it is to go where their interest lies. If they really want to know about electron migration through a solid state material, Hell, go for it. But if they are interested in how to generate a web page, that's where you start.
If they get hooked and you start to work together on really interesting problems, you will eventually get into all of the classic core problems of program development: design, platform choice, networking, deployment, security -- you'll get to all of these eventually.
My vote for a first language is Python. I also suggest starting with Guido van Robot as an interesting starting point. Even older kids will understand that this is just a starting point and they may zip through the problems in a matter of days or even hours. You will encounter limitations in terms of functions, looping, etc., but that can be a springboard to how you do it in real Python.
The solution... is a good rant. God, I love a good, heartfelt, I-don't-give-a-f*ck-how-crazy-it-makes-me-look rant. I mean, if we were to database all of the word misusages, mispelings, verbing of nouns and nouning of verbs, if we crammed all of the unGodly linguistic trashfulness of/. into a forward-looking, high-concept, low-brow PowerPoint® slideshow we could... probably make multimediavt go nonlinear in a very exponential, straightforward way. It would exciting! It would cause fireworks across the net!
Strangely enough, your sig link sucks any humor out of your triumphant 'FP!'. I'm surprised you didn't try to get the monkeys to start tea-bagging in the Name of Freedom. You could probably get them to go 'oo-oo-oo' if you presented them with an autographed copy of Sarah Palin's 'book'.
Go ahead, mod me as -1 Troll. Just make sure you mod parent as well.
So is kdawson on drugs? Is s/he not on drugs but should be? Does s/he even know what the intertubes are? Can we find peace in our time? Or, horny as we are, can we even find a piece in our time? If we found a piece would we find peace?
Indeed. As a former debugger developer I used to highlight this particular issue -- we even had a trade show cut-out figure named Bugsy Malone who was wanted for assaulting a global with a deadly pointer. (Hey, it gave the geeks a smile and the suits didn't know what it meant.)
However, as a developer I would say that bad pointers were at most 1% or 2% of our problems, if that. Non-thread-safe threaded code and leaked memory were much bigger issues at the time (1980's).
[... ] I'd refine them and produce the needed components for memory and processors and storage. as well as develop the new networking, power, form factor etc... [... ]
I worked on the National Semiconductor Mesa project in the early 80's and we came damn close to doing this: new CPU and MMU architecture (and therefore new silicon), new mobo architecture, new boot code, new language (sort of - e-pascal), new OS, new utilities, new apps, etc., etc.
Kids, Just Say No. Don't go there. Don't let your friends go there. That way lies only madness and tears.
In 1974 I was talking to Pentti Kanerva about a text editor he had written for a TENEX system at Stanford. I asked about the possibility of adding a new command and he said 'sure, but not until you tell me the default behavior.' It turned out he had lots of requests for new features, but when put to the test the requesters couldn't articulate what the default should be in any one of a number of different situations.
His point was that adding new features was relatively easy, but getting the defaults correct was considerably harder because it had to do with discerning the user's intent. 35 years later I still think this was one of the more insightful things I've heard.
The jacks are probably daisy-chained together. A PBX (what we have in our house) normally requires home-runs from each jack, so that isn't going to work for you.
There are charging cradles that will allow you to use your cell phone to supply dialtone to your TwenCen phones. That way you don't have to run all over the house looking for the cellphone.
If you ever sell your house, the new owner may say WTF?
It is ironic that the Windoze crew screwed it up in this particular way because the original language Hungarian was used with was BCPL (predecessor of B, which was the predecessor of C). BCPL has exactly one type: int. It would have been meaningless to add "Oh, by the way, this is an int" to every name, so we didn't.
There was, however, one machine-specific prefix, 'v'. This meant 'virtual', which not only meant it was a global but also that it might not be in memory at the moment. These were "wide body Altos" and they had 4 banks of 64K 16-bit words, but only one bank was accessible at any given moment. Whenever you wrote "vrgFoo[vifooMac]" it reminded you that those values might not be in memory unless you had specifically forced them to be. This was 30 years ago and I still feel a love/hate relationship for that architecture.
You know what? You're right! I just looked at a list of CA Community Colleges and they almost all have.EDU's. I know that today you have to be a 4-year school, but I guess that didn't used to be true. Huh, you learn (or unlearn) something every day.
I will note that santarosa.edu shows an activation date of 19-Oct-1989, so that goes back a way.
This is more than a bit surreal since SRJC has a long history of being on the net.
For example, Santa Rosa Junior College is one of the very few non-4-year colleges to have a.EDU domain name. In the early 90's they had two junior admins, Dane Jasper and Scott Doty, who went on to become the founders of a Mom-and-Pop Internet company that actually succeeded. It started as Sonoma Interconnect, but is now known as Sonic.net.
It's a shame to add this squirrely episode to that history.
Correct. I worked for Charles at Xerox on the BravoX project and I initially fought Hungarian. One day I had an epiphany about what it was really about and then I didn't have any problems with it. Properly done it can reduce "name choosing time" to almost zero and it makes walking into other people's code almost completely painless. The key is that you encode semantics, not machine-level details.
Hungarian Notation: at that time, in that context, it worked. We were working in BCPL which has exactly one type: integer. So if the name didn't contain the type information, nothing did. It permitted us to do 'visual typechecking' and it worked pretty well. This was a group of 9 people doing very rapid development and there was an amazing consistency across all of our code. You really could walk into someone else's module and pretty much know what they were doing.
In certain situations where I feel it will add clarity, I still sometimes use a very lightweight version of it. E.g. in a deeply nested set of loops and ifs where there are lots of 'foo's flying around I'll still use fooFirst, fooNext, etc.
It turned out just fine. Our "VCS" was a magnetic white board with a grid on it (remember, this was 32 years ago). Every filename had a box. When you checked out a file you put a little colored magnet (we each had our own color) on it. If you wanted a file that was already checked out you put your magnet upside down over the current one and when the person checked it in they would flip yours over, poke their head through the door and say 'foo.h is yours.'
Charles would sometimes want to make a 'quick fix' and wouldn't bother with the board. You know where this goes ... Person A would have it checked out and be making changes, Charles would grab a copy from the master directory, Person A would check in his changes, and Charles would check his copy in on top of that. Sometimes we wouldn't know about this until we did our Weekly Build and things just didn't work right.
After this happened about 5 or 6 times the team voted to change the password on the master source directory and Charles always had to have someone else do the checkout/checkin for him. He bitched a little, but he knew he was guilty. I didn't always agree with him (ha! that's an understatement), but if you gave him a strong enough argument he would eventually come around.
See if you can assign a value to the data already lost because of their failure to follow the rules. We did a variation of this at Xerox ASD in the 70's and locked Charles Simonyi (yes, that Charles) out of "his" own source code.
"The Internet interprets censorship as damage and routes around it." -- John Gilmore
I find in talking with my wife and other friends/family who are not SciFi readers that they are often surprised by certain events in the news. Whereas I will say something like, "Oh, this reminds me of Snow Crash, or Left Hand of Darkness ... kewl!"
Good quality, 'what if'-style SciFi keeps your world view more flexible than reading most any other kind of genre.
I think you are trying to refer to Grace Hopper. She was a pioneer in the use of compilers (as opposed to assembly language). One of the languages she created was FLOW-MATIC, which evolved to become COBOL.
God, I haven't thought about P1 in a couple of decades. I used to love that book.
Agreed. And who would have ever guessed that it would occur in the middle of a mind-numbingly boring topic like Getting a job at a Mega Corp?
Can the insertion of random, easily misinterpreted comments save /. from its inevitable decent into the vortex?
Discuss.
He does have one very legitimate concern, and that is that the platform can easily be forked, potentially ending up in a situation like old-style Unix, where each vendor had different incompatible versions of Unix (HPUX, AIX, etc).
I happened to write the first source-level C debugger that actually worked (sdb was buggy as hell, and dbx at Sun was debugged with my debugger). I absolutely loved it when the Yates Report would say that yet another company would "capture 20% of the UNIX market." I waltzed on over, gave their senior geeks a pitch, and waited for the manager fold as they begged for a working debugger.
I say, "The more forks the merrier!"
And for completeness sake let's not forget these classics:
– Fudd's First Law of Opposition
– Testicle's Deviant to Fudd's First Law
All Hail TFST!
One of the weird things I've run into in doing 3rd-party tech support is that houses can, indeed, have Faraday cages.
If the house is of the right vintage (mostly pre-1950's) it may have plaster walls. One method of hanging plaster is to put up a metal mesh lath which can make a very effective Faraday cage out of each of the rooms.
A modern variation on the builtin Faraday cage is rigid foam insulation that is covered on one or both sides with a metal reflective coating, often used in external wall insulation.
When a new customer calls and says they are having trouble getting wireless to work in their house, one of my first questions is does it have plaster walls.
Those suckers were bulletproof.
Amen, Brother. A-fucking-men.
Back in 1973-74 I worked part-time teaching the TUTOR language to profs at U of I Chicago, and part-time driving around Chicago working on these things at places like Malcom X. Jr. College. These terminals were built like tanks and weighed about the same. The most vulnerable part was the random access audio device, which was a phenomenal kludge that was sort of a turntable that you could put a big, floppy piece of recording material on and it used pneumatics to move the record/playback arm in and out and also to advance/retreat the position of the turntable to reduce seek time. Fortunately, very few courses used these abominations.
The terminals were also dangerous as hell to work on. None of the metal stampings had had their edges smoothed and so you could slice yourself open just sticking your arm in there. You could also kill yourself if you weren't careful around some of the mega-capacitors that were inside. I accidentally shorted one with a screwdriver and it basically melted it. Try doing that with one of your wimpy little LCDs.
Remember, kids: if it can't kill you, then how the hell can it be any fun?
You must be new here. All members of /. are (or want to be) a BOFH!
I've been fortunate enough to mentor a couple of prodigies. The key is not to Go Big, or Go Small, or Go Bare Metal, it is to go where their interest lies. If they really want to know about electron migration through a solid state material, Hell, go for it. But if they are interested in how to generate a web page, that's where you start.
If they get hooked and you start to work together on really interesting problems, you will eventually get into all of the classic core problems of program development: design, platform choice, networking, deployment, security -- you'll get to all of these eventually.
My vote for a first language is Python. I also suggest starting with Guido van Robot as an interesting starting point. Even older kids will understand that this is just a starting point and they may zip through the problems in a matter of days or even hours. You will encounter limitations in terms of functions, looping, etc., but that can be a springboard to how you do it in real Python.
For Windows I found the Aptana environment (Eclipse + PyDev plugin) to be easy for kids to understand.
The solution ... is a good rant. God, I love a good, heartfelt, I-don't-give-a-f*ck-how-crazy-it-makes-me-look rant. I mean, if we were to database all of the word misusages, mispelings, verbing of nouns and nouning of verbs, if we crammed all of the unGodly linguistic trashfulness of /. into a forward-looking, high-concept, low-brow PowerPoint® slideshow we could ... probably make multimediavt go nonlinear in a very exponential, straightforward way. It would exciting! It would cause fireworks across the net!
By God! It would be ... impactful!
Let's do it!
Strangely enough, your sig link sucks any humor out of your triumphant 'FP!'. I'm surprised you didn't try to get the monkeys to start tea-bagging in the Name of Freedom. You could probably get them to go 'oo-oo-oo' if you presented them with an autographed copy of Sarah Palin's 'book'.
Go ahead, mod me as -1 Troll. Just make sure you mod parent as well.
So is kdawson on drugs? Is s/he not on drugs but should be? Does s/he even know what the intertubes are? Can we find peace in our time? Or, horny as we are, can we even find a piece in our time? If we found a piece would we find peace?
So many questions ....
Indeed. As a former debugger developer I used to highlight this particular issue -- we even had a trade show cut-out figure named Bugsy Malone who was wanted for assaulting a global with a deadly pointer. (Hey, it gave the geeks a smile and the suits didn't know what it meant.)
However, as a developer I would say that bad pointers were at most 1% or 2% of our problems, if that. Non-thread-safe threaded code and leaked memory were much bigger issues at the time (1980's).
[ ... ] I'd refine them and produce the needed components for memory and processors and storage. as well as develop the new networking, power, form factor etc... [ ... ]
I worked on the National Semiconductor Mesa project in the early 80's and we came damn close to doing this: new CPU and MMU architecture (and therefore new silicon), new mobo architecture, new boot code, new language (sort of - e-pascal), new OS, new utilities, new apps, etc., etc.
Kids, Just Say No.
Don't go there.
Don't let your friends go there.
That way lies only madness and tears.
In 1974 I was talking to Pentti Kanerva about a text editor he had written for a TENEX system at Stanford. I asked about the possibility of adding a new command and he said 'sure, but not until you tell me the default behavior.' It turned out he had lots of requests for new features, but when put to the test the requesters couldn't articulate what the default should be in any one of a number of different situations.
His point was that adding new features was relatively easy, but getting the defaults correct was considerably harder because it had to do with discerning the user's intent. 35 years later I still think this was one of the more insightful things I've heard.
It is ironic that the Windoze crew screwed it up in this particular way because the original language Hungarian was used with was BCPL (predecessor of B, which was the predecessor of C). BCPL has exactly one type: int. It would have been meaningless to add "Oh, by the way, this is an int" to every name, so we didn't.
There was, however, one machine-specific prefix, 'v'. This meant 'virtual', which not only meant it was a global but also that it might not be in memory at the moment. These were "wide body Altos" and they had 4 banks of 64K 16-bit words, but only one bank was accessible at any given moment. Whenever you wrote "vrgFoo[vifooMac]" it reminded you that those values might not be in memory unless you had specifically forced them to be. This was 30 years ago and I still feel a love/hate relationship for that architecture.
You know what? You're right! I just looked at a list of CA Community Colleges and they almost all have .EDU's. I know that today you have to be a 4-year school, but I guess that didn't used to be true. Huh, you learn (or unlearn) something every day.
I will note that santarosa.edu shows an activation date of 19-Oct-1989, so that goes back a way.
This is more than a bit surreal since SRJC has a long history of being on the net.
For example, Santa Rosa Junior College is one of the very few non-4-year colleges to have a .EDU domain name. In the early 90's they had two junior admins, Dane Jasper and Scott Doty, who went on to become the founders of a Mom-and-Pop Internet company that actually succeeded. It started as Sonoma Interconnect, but is now known as Sonic.net.
It's a shame to add this squirrely episode to that history.
Correct. I worked for Charles at Xerox on the BravoX project and I initially fought Hungarian. One day I had an epiphany about what it was really about and then I didn't have any problems with it. Properly done it can reduce "name choosing time" to almost zero and it makes walking into other people's code almost completely painless. The key is that you encode semantics, not machine-level details.