Wow, that really is rather different than the American system, where we aren't necessarily required to even take driving courses as long as we can pass the driving exam.
You mention: Driving in the US is a basic right (more or less), here it's a privilege. It sure seems that way at times. I think if they significantly raised the requirements on drivers here, you'd see the following effects, longer term:
Increased focus on mass transit. Right now, since anyone can get a car, anyone does.
Fewer cars sold.
Fewer accidents.
Less dependence on oil for gasoline.
Less smog.
Ah, but I'm sure the auto industry and the mechanics and the contractors that build our roads all would rather see more cars and heavy trucks on our roads, and fewer busses and trains employed. All they have to do is imply publicly that these restrictions are "socialist" and that they "restrict our freedoms" and they are D.O.A.
What people fail to see is that diverting our economic energy away from needless infrastructure and into more important developments would be a net gain. Building more roads because we have too many cars, and tying up workforce in building and repairing those cars makes for jobs that don't necessarily advance the economy. We really don't export cars. It's an economic overhead--a net loss for the economy, IMHO.
Enough ranting... this post has strayed sufficiently far off topic.
Do you know exactly how the ignition system on your car works?
I am required by law to know, if I want to have a driver's license.
Do you really mean the ignition system, as in, how the engine computer signals the ignition module, and how the ignition module triggers the ignition coils, etc...? (Or, in the case of a car with a distributor, how that whole mechanical scheme works...?) Or did you mean the ignition switch--that thingy you put your car key into, and turn to start the car?
I only recently started learning about the finer details of how my car's engine works. I've had a driver's license for over 11 years now though. (And FWIW, I've never had any question after about the age of 5 as to how the ignition switch works.)
Something more approachable might be to write a game on one of the old console systems -- anything from Atari and Intellivision up through about Sega Genesis and Super Nintendo shouldn't be too hard.
On most of those systems, you're still responsible for all the code on the system. Many of your comments about initializing timers, setting up the stack, etc. still apply.
The plus side is that the project can stay a pure software project -- no hardware design is necessary. Also, you can do much (all?) of your development using emulators. And, to top it off, most game systems have more interesting displays than just some LEDs.;-)
That said, there is a certain satisfaction from building up a system from chips, writing code for it, and saying "I built that!"
Hold on... Last I knew (which was awhile ago), FreeBSD (even in 5.x) still has more instances of the Big Kernel Lock/Giant Lock than Linux does. As I recall, Linux fully threaded their networking stack back in the 2.4 days.
I know earlier on in the 5.x series, Matt Dillon and others acknowledged that FreeBSD was at least a year behind Linux in their SMP support. It's been a couple years since then, but Linux hasn't sat still. It appears BSD hasn't either.
Looking at FreeBSD's SMP status page, it appears that they've made a lot of progress. Their networking stack (at least, that portion of which that is called out as line items in a table) is nearly fully threaded. Coolness.
Apparently, the VM tuning in Linux 2.6 is geared towards machines with 128MB of RAM or more. (Sorry I don't have a link handy.) So, I'd say there's a definite cut line of old vs. new for 2.6.
It could be a reverse-psychological attack: Make Linux users look bad in an attempt to boost SCO's chances against Linux and as a result get more Windows users that are susceptible to their profit-generating viruses...
Nah. Zero tracks. New track starts on the leading edge of non-silence. So, the "track" containing "2:35 of Silence" would get silently merged with the gap that precedes it and follows it. It will also get silently dropped.
I think I remember seeing somewhere that there's a hotkey to switch between apps, but I haven't used that in over a decade in any serious fashion on any OS, so I never took note.
Never design a UI for me then. I use [Alt]-[Tab] to switch between windows, [Alt]-[F1] through [Alt]-[F6] to switch between virtual desktops (or [Alt]-1 through [Alt]-4 when using MSVDM on my WinXP laptop), and [Ctrl]-A-<number> to switch between panes in myscreensession. About the only thing I don't multiples are my vim sessions -- I no long split things vertically. (Although I used to, withsplitvt.)
I live on hot keys to hop around my highly multiplexed desktop!
And this, perhaps, is why I'll never design a UI for others....:-)
Here, here! As someone who qualifies to join Mensa (but chooses not to join), I heartily agree with several of your points. (FWIW, I apparently have an IQ above 140. I'm not trying to brag--I seek only to give some context. I attribute a large part of that score to my education and upbringing.)
I agree that the American school system tries to average students out. Thankfully, that's not the case everywhere, all of the time. I'm a product
of the public school system, and I think I turned out differently than most students.
Somehow, I managed to start kindergarten a year early, get let into a gifted and talented program, and eventually skip 5th Grade. Along the way, I got to learn about learning: At one point (somewhere around around 4th Grade), we covered "Bloom's Taxonomy of Learning" in one of my advanced classes. (I don't remember the name for sure, but I do remember it was a taxonomy describing levels of learning.) The taxonomy covered levels of learning from memorization to comprehension to synthesis. The point was that basic learning was only the starting point, and that synthesizing new ideas and theses from a base of knowledge is one of the highest forms of learning one could aspire to.
For me, that was a very enlightening and crucial segment in my learning process. I think it caused me to view the remaining 2/3rds of my education differently than I might've otherwise. I am very fortunate that I was placed in that program. I wish more students were exposed to those concepts early on and challenged to think at those higher levels.
I too hope I have gifted children, for many of the same reasons you cite. I hope that I can provide the insights my parents lacked in terms of relating to other students. My folks weren't really prepared for me, I don't think--both come from much more average backgrounds. I hope I can do better.
Really, growing up, I've never fit in with other kids. As an adult, I tend not to fit in with most of my contemporaries--even within engineering (my chosen profession). In conversations, I tend to be more detail oriented and factually obsessive than most people. I use precise language with textured subtleties sometimes that trips up most people. Socially, I just don't "get it."
Work wise, I'm a scatter-brain. I like to refer to myself as the "idea fairy" at work, since I come up with great ideas that I could never follow through on, but which I can "sprinkle" in other people's cubicles. At review time, I get rated highly for incentivizing others and sharing best practices.:-) But when it comes to putting my nose to the grindstone, I can only do so when I'm executing a "death march," as I've mentioned previously. Likewise, I did best in classes that required 110% of my attention.
Do I have ADD/ADHD? Probably not. Really, I see it as an aspect of my temperment and character. (According to Keirsey, that's INTP/INFP.) That 'P' at the end says it all.
So from my perspective, I don't think of it as a disorder so much as a difference in approach. It's an uncommon approach, but a valuable (if occasionally problematic) one.
Sounds like a typical day for me. I find myself not able to hold normal conversations with most people because either I get ahead of them, or I wanted to butt in with some subtopic awhile ago (since I already figured out the rest of what they're going to say) and am hopelessly out of sync.
My work day is characterized as a sequence of hyperactivity on one or another task, punctuated by interrupt-driven tasks arriving via email or otherwise. I can't just set myself to a task and keep to it under most circumstances, unless I get into a "Death March" mode.
I too find that music helps me concentrate, particularly if it is turned up way too loud, so as to drown out any other distraction. Further, I need to have no net connection nearby. Lyrics are a problem for me also, unless I manage to get over the hump of getting "sucked in" to whatever work I intend to do.
Side note on music:
Lately I've been listening to a weird offshoot of 80s protoelectronica. I discovered Gary Numan finally. (Between "The Rentals" mentioning him directly, and Trent Reznor doing a cover, I felt it worthwhile to hunt him down.) I'm not really listening to his one-hit-wonder track "Cars", but rather all the other stuff he did after that. My friends and acquaintences (most of which don't care to acknowledge the 80s) aren't at all impressed, but personally, I find some of his mid-80s albums to be perfect high-energy "poppy" background music to accompany boring specwork.
FWIW, his more recent albums (Pure, Hybrid, Scarred) are rather more contemporary. "Pure" is a studio album that can sit comfortably next to NIN on my shelf. Hybrid is a remix album, and Scarred is a concert album. Both also happen to sound really good, and not as 'hokey' as some of Numan's 80s work sounds.
I was just trying to relate the underlying sense behind the structure.
FWIW, if you're writing a spam filter, it may make sense to keep separate statistics for the different structural components of the email. For instance, if you get a text/html component, compare its contents to other text/html components.
Another fertile ground for comparison is encoding types. How many legit emails do you get with text/plain encoded as base64?
So far as I can tell, most mainstream mailreaders (in their default configuration) will show you only the HTML component, if both variants are provided.
Thus, the spammer puts their filter-fooling gibberish in the text/plain component, and their add in the text/html component. The recipient is none the wiser about the gibberish.
Since I use mutt, and I don't have an HTML filter configured, I'm immune to the ads in most spam. Since spam advertisements like to have tracker images and so on (to measure how often people actually open spam), I seem to get relatively little spam that lacks an HTML component. Further, most spam lacks a meaningful text/plain component.
The only annoyance with this arrangement is the fact that one or two of my coworkers insist on sending HTML-only email. *sigh* (Since one of them is the father of JTAG, I don't bother trying to bend his ways.)
Actually, I avoid deleting my spam. I have an archive now of over 270MB of spam that I can use for a training set for whatever filter I might intend to deploy.
That archive has more than just spam, mind you. It also has all the virus/worm email I've received over the years as well, such as the "Internet Email System" informing me of an undeliverable message, or "Microsoft Corporation" providing me a convenient, easy to click "December 2003 Internet Update" or whatever.
Another time, I messed up the NAT rules by putting "192.168.1.0/4" instead of "192.168.1.0/24" somewhere. The result was that about half the internet was unaccessible for a couple hours.
You know, theoretically, software should refuse such a setting, since not all of the bits from 8 through 27 are zero. Ah well...
Well, what happens (AFAICT) is that only the first ".." is globbed, and otherwise the dotfiles are pretty much safe (in the context of rm and ls). When recursing, dotfiles in general don't seem to be included. The only places dotfiles don't seem to be safe is when the directory itself is slated to be removed.
So, in the example I gave, I'm pretty sure my roommate's "dot files" in his home directory survived. (I seem to recall that was the case, since his login environment remained intact.) It was all his normal files and normal directories that got nuked.
It really is a weird twist of semantics, IMHO.
To recap:
Recursive globbing only groks dotfiles when:
The wildcard explicitly includes the dotfiles, as in "dirname/.*", or
The parent directory of the dotfiles is matched and the operation is "rm".
Only certain versions of the UNIX file utilities will even allow globbing ".." for a recursive glob for purposed of rm -r.
Sometimes rsh host commandcan be useful. If you don't log in, you just remote exec, then no record gets put to either utmp or wtmp. If the machine has process accounting enabled, the prof needs to know to look through the acctcom logs or similar, but how likely is that?
Another trick that was fun to play in a lab was "cat/dev/audio | rsh somehost 'cat >/dev/audio'". With all the network buffering lag and the low sampling rate, it made for some creepy echos.
Side note: If you don't mind not having a proper controlling terminal, but want to do something "behind the scenes" and not show up in utmp or wtmp, then try "rsh somehost/bin/sh -i".
Wow, that really is rather different than the American system, where we aren't necessarily required to even take driving courses as long as we can pass the driving exam.
You mention: Driving in the US is a basic right (more or less), here it's a privilege. It sure seems that way at times. I think if they significantly raised the requirements on drivers here, you'd see the following effects, longer term:
Ah, but I'm sure the auto industry and the mechanics and the contractors that build our roads all would rather see more cars and heavy trucks on our roads, and fewer busses and trains employed. All they have to do is imply publicly that these restrictions are "socialist" and that they "restrict our freedoms" and they are D.O.A.
What people fail to see is that diverting our economic energy away from needless infrastructure and into more important developments would be a net gain. Building more roads because we have too many cars, and tying up workforce in building and repairing those cars makes for jobs that don't necessarily advance the economy. We really don't export cars. It's an economic overhead--a net loss for the economy, IMHO.
Enough ranting... this post has strayed sufficiently far off topic.
--JoeDo you really mean the ignition system, as in, how the engine computer signals the ignition module, and how the ignition module triggers the ignition coils, etc...? (Or, in the case of a car with a distributor, how that whole mechanical scheme works...?) Or did you mean the ignition switch--that thingy you put your car key into, and turn to start the car?
I only recently started learning about the finer details of how my car's engine works. I've had a driver's license for over 11 years now though. (And FWIW, I've never had any question after about the age of 5 as to how the ignition switch works.)
--JoeUrk... strike that. I happen to be in Mozilla right now, not Firefox.
Preferences... Advanced... Cache... "Every time I view the page."
Something more approachable might be to write a game on one of the old console systems -- anything from Atari and Intellivision up through about Sega Genesis and Super Nintendo shouldn't be too hard.
On most of those systems, you're still responsible for all the code on the system. Many of your comments about initializing timers, setting up the stack, etc. still apply.
The plus side is that the project can stay a pure software project -- no hardware design is necessary. Also, you can do much (all?) of your development using emulators. And, to top it off, most game systems have more interesting displays than just some LEDs. ;-)
That said, there is a certain satisfaction from building up a system from chips, writing code for it, and saying "I built that!"
--JoeHold on... Last I knew (which was awhile ago), FreeBSD (even in 5.x) still has more instances of the Big Kernel Lock/Giant Lock than Linux does. As I recall, Linux fully threaded their networking stack back in the 2.4 days.
I know earlier on in the 5.x series, Matt Dillon and others acknowledged that FreeBSD was at least a year behind Linux in their SMP support. It's been a couple years since then, but Linux hasn't sat still. It appears BSD hasn't either. Looking at FreeBSD's SMP status page, it appears that they've made a lot of progress. Their networking stack (at least, that portion of which that is called out as line items in a table) is nearly fully threaded. Coolness.
--JoeApparently, the VM tuning in Linux 2.6 is geared towards machines with 128MB of RAM or more. (Sorry I don't have a link handy.) So, I'd say there's a definite cut line of old vs. new for 2.6.
--JoeIt's definitely a bigger hammer. I wouldn't call it more elegant, though.
ULE is becoming the default scheduler in -current.
Of course, things may have changed since then. I don't follow BSD all that closely, I just hang out on KernelTrap.
--JoeKeep in mind that ULE is derived from Linux 2.6's scheduler. Take a look at the last sentence of Section 2 of the BSD white paper on UL.
--JoeIt could be a reverse-psychological attack: Make Linux users look bad in an attempt to boost SCO's chances against Linux and as a result get more Windows users that are susceptible to their profit-generating viruses...
--JoeWhen I opened this up in a new tab in Mozilla, the tab read "IBM Patents Meth..."
'Nuff said. Now I know what they're smokin'.
--JoeNah. Zero tracks. New track starts on the leading edge of non-silence. So, the "track" containing "2:35 of Silence" would get silently merged with the gap that precedes it and follows it. It will also get silently dropped.
--JoeWe have a Mac w/ OS X here. It's nice, but I mostly use it via an ssh connection. Needs a better keyboard, too.
Never design a UI for me then. I use [Alt]-[Tab] to switch between windows, [Alt]-[F1] through [Alt]-[F6] to switch between virtual desktops (or [Alt]-1 through [Alt]-4 when using MSVDM on my WinXP laptop), and [Ctrl]-A-<number> to switch between panes in my screen session. About the only thing I don't multiples are my vim sessions -- I no long split things vertically. (Although I used to, with splitvt .)
I live on hot keys to hop around my highly multiplexed desktop!
And this, perhaps, is why I'll never design a UI for others.... :-)
--JoeLike "/opt" or "C:\Program Files" is any better?
--JoeHere, here! As someone who qualifies to join Mensa (but chooses not to join), I heartily agree with several of your points. (FWIW, I apparently have an IQ above 140. I'm not trying to brag--I seek only to give some context. I attribute a large part of that score to my education and upbringing.)
I agree that the American school system tries to average students out. Thankfully, that's not the case everywhere, all of the time. I'm a product of the public school system, and I think I turned out differently than most students.
Somehow, I managed to start kindergarten a year early, get let into a gifted and talented program, and eventually skip 5th Grade. Along the way, I got to learn about learning: At one point (somewhere around around 4th Grade), we covered "Bloom's Taxonomy of Learning" in one of my advanced classes. (I don't remember the name for sure, but I do remember it was a taxonomy describing levels of learning.) The taxonomy covered levels of learning from memorization to comprehension to synthesis. The point was that basic learning was only the starting point, and that synthesizing new ideas and theses from a base of knowledge is one of the highest forms of learning one could aspire to.
For me, that was a very enlightening and crucial segment in my learning process. I think it caused me to view the remaining 2/3rds of my education differently than I might've otherwise. I am very fortunate that I was placed in that program. I wish more students were exposed to those concepts early on and challenged to think at those higher levels.
I too hope I have gifted children, for many of the same reasons you cite. I hope that I can provide the insights my parents lacked in terms of relating to other students. My folks weren't really prepared for me, I don't think--both come from much more average backgrounds. I hope I can do better.
Really, growing up, I've never fit in with other kids. As an adult, I tend not to fit in with most of my contemporaries--even within engineering (my chosen profession). In conversations, I tend to be more detail oriented and factually obsessive than most people. I use precise language with textured subtleties sometimes that trips up most people. Socially, I just don't "get it."
Work wise, I'm a scatter-brain. I like to refer to myself as the "idea fairy" at work, since I come up with great ideas that I could never follow through on, but which I can "sprinkle" in other people's cubicles. At review time, I get rated highly for incentivizing others and sharing best practices. :-) But when it comes to putting my nose to the grindstone, I can only do so when I'm executing a "death march," as I've mentioned previously. Likewise, I did best in classes that required 110% of my attention.
Do I have ADD/ADHD? Probably not. Really, I see it as an aspect of my temperment and character. (According to Keirsey, that's INTP/INFP.) That 'P' at the end says it all.
So from my perspective, I don't think of it as a disorder so much as a difference in approach. It's an uncommon approach, but a valuable (if occasionally problematic) one.
--JoeSounds like a typical day for me. I find myself not able to hold normal conversations with most people because either I get ahead of them, or I wanted to butt in with some subtopic awhile ago (since I already figured out the rest of what they're going to say) and am hopelessly out of sync.
My work day is characterized as a sequence of hyperactivity on one or another task, punctuated by interrupt-driven tasks arriving via email or otherwise. I can't just set myself to a task and keep to it under most circumstances, unless I get into a "Death March" mode.
I too find that music helps me concentrate, particularly if it is turned up way too loud, so as to drown out any other distraction. Further, I need to have no net connection nearby. Lyrics are a problem for me also, unless I manage to get over the hump of getting "sucked in" to whatever work I intend to do.
Side note on music:
Lately I've been listening to a weird offshoot of 80s protoelectronica. I discovered Gary Numan finally. (Between "The Rentals" mentioning him directly, and Trent Reznor doing a cover, I felt it worthwhile to hunt him down.) I'm not really listening to his one-hit-wonder track "Cars", but rather all the other stuff he did after that. My friends and acquaintences (most of which don't care to acknowledge the 80s) aren't at all impressed, but personally, I find some of his mid-80s albums to be perfect high-energy "poppy" background music to accompany boring specwork.
FWIW, his more recent albums (Pure, Hybrid, Scarred) are rather more contemporary. "Pure" is a studio album that can sit comfortably next to NIN on my shelf. Hybrid is a remix album, and Scarred is a concert album. Both also happen to sound really good, and not as 'hokey' as some of Numan's 80s work sounds.
--JoeOk, good point. :-)
I, on the other hand, never seem to, so my locally-trained filter could pretty reliably reject spam based on that fact, whereas yours could not.
--JoeI was just trying to relate the underlying sense behind the structure.
FWIW, if you're writing a spam filter, it may make sense to keep separate statistics for the different structural components of the email. For instance, if you get a text/html component, compare its contents to other text/html components.
Another fertile ground for comparison is encoding types. How many legit emails do you get with text/plain encoded as base64?
--JoeSo far as I can tell, most mainstream mailreaders (in their default configuration) will show you only the HTML component, if both variants are provided.
Thus, the spammer puts their filter-fooling gibberish in the text/plain component, and their add in the text/html component. The recipient is none the wiser about the gibberish.
Since I use mutt, and I don't have an HTML filter configured, I'm immune to the ads in most spam. Since spam advertisements like to have tracker images and so on (to measure how often people actually open spam), I seem to get relatively little spam that lacks an HTML component. Further, most spam lacks a meaningful text/plain component.
The only annoyance with this arrangement is the fact that one or two of my coworkers insist on sending HTML-only email. *sigh* (Since one of them is the father of JTAG, I don't bother trying to bend his ways.)
--JoeActually, I avoid deleting my spam. I have an archive now of over 270MB of spam that I can use for a training set for whatever filter I might intend to deploy.
That archive has more than just spam, mind you. It also has all the virus/worm email I've received over the years as well, such as the "Internet Email System" informing me of an undeliverable message, or "Microsoft Corporation" providing me a convenient, easy to click "December 2003 Internet Update" or whatever.
*sigh*
--JoeYou know, theoretically, software should refuse such a setting, since not all of the bits from 8 through 27 are zero. Ah well...
Well, what happens (AFAICT) is that only the first ".." is globbed, and otherwise the dotfiles are pretty much safe (in the context of rm and ls). When recursing, dotfiles in general don't seem to be included. The only places dotfiles don't seem to be safe is when the directory itself is slated to be removed.
So, in the example I gave, I'm pretty sure my roommate's "dot files" in his home directory survived. (I seem to recall that was the case, since his login environment remained intact.) It was all his normal files and normal directories that got nuked.
It really is a weird twist of semantics, IMHO.
To recap:
Sound like a fair recap?
--JoeSometimes rsh host command can be useful. If you don't log in, you just remote exec, then no record gets put to either utmp or wtmp. If the machine has process accounting enabled, the prof needs to know to look through the acctcom logs or similar, but how likely is that?
Another trick that was fun to play in a lab was "cat /dev/audio | rsh somehost 'cat > /dev/audio'". With all the network buffering lag and the low sampling rate, it made for some creepy echos.
Side note: If you don't mind not having a proper controlling terminal, but want to do something "behind the scenes" and not show up in utmp or wtmp, then try "rsh somehost /bin/sh -i".
--Joe