I thought the word came from the "anima" in
"animation". It's pronounced more or less the
same way and seems more likely. In my experience
Japanese has almost no words taken from French
(I live in Quebec, and I am learning Japanese).
English spelling is so irregular that I'm not
sure its fundamental phonetic-ness is good for
much. There are something like 13 ways to
pronounce "gh", for example. Even the vowels
can be pronounced 2 or 3 different ways.
So, non-english speakers can pronounce words
without knowing them, but usually completely
incorrectly.
I live in Quebec so I see a lot
of this. The other day, my chemistry prof
was explaining how to search for the element
lead in our english reference book and pronounced
it "lead" as in "leader". And how are we supposed
to know that the "na" in "nation" is not pronounced
the same way in "national"? etc.
I don't know any korean, but I do know the
japanese kana system is much more readable
in this respect.
Also, Chinese pictograms
are more detailed than letters, so they
have to be displayed in a larger font. This partially
cancels out the space savings. Also, I would guess
that they take longer to write on paper, and
_much_ longer to type, since you would
have to select them from a menu or something.
Re:Who said I am at war with the grocery stores?
on
Focusing Audio
·
· Score: 2
I think you're being a bit melodramatic, also:).
First, the stockholders of supermarkets aren't
necessarily "bourgeoisie". You can be a stockholder,
too; just buy some stock. And it's
possible for a supermarket chain to be entirely
owned by individual small investors like you.
And the chain would still practice sleazy marketing
practices; so, I don't see how there is a class
war at work here.
Also, I would argue that the supermarket chains
do indeed exist to provide a service to consumers.
Although what the chains want is, as you say,
to provide profit for their shareholders, the
reason they exist is for the consumers.
If they didn't, they wouldn't be allowed to
exist in their current form. For example, it
appears that Microsoft is currently doing a
disservice to consumers, so the US government
is considering splitting them up. If the
supermarket chains also harmed consumers, the
same thing would happen to them.
Finally, you make it sound like there is a choice
between "shop at exploitative evil supermarkets" or
"starve". But there are lots of other options.
You can get your food from
smaller businesses you consider non-exploitative, or, if
you really want to, grow the food yourself.
These options are perfectly reasonable; if most
consumers did not like being "exploited" by the big chains, they
would all switch to smaller stores. This isn't
happening; so, apparently most people do indeed
find the big chains useful and choose to shop
there because they feel it's to their best
advantage. I don't see any exploitation here.
Ouch. That sucks. Well, now that an intruder
has gotten root on your system, he may have
installed all sorts of other backdoors, so you
should wipe and reinstall. Otherwise he could
come back, steal and trash your data, or
worse, use your box as a proxy for cracking
other systems.
Yeah, I watched the dub of Akira and hated it.
That's not really saying much, though:).
It was especially funny the way the actors were
completely incapable of pronouncing their own names.
"tet-SUU-woh" haha.
Ouch. It's possible you came across some dummies
books that were well written, but I get the
impression that as a whole, the standard of
quality in dummies books is pretty low. In
my experience, many aren't clear and simple, but
vague, inaccurate, and wordy.
I saw C for dummies after I already had quite
a bit of experience with the language, and the
book disgusted me. Besides being (I think) longer than
K&R for much less content, the book tried to
avoid all the vocabulary, and certainly didn't define much of it.
The author, among other things, described the preprocessor as an
arcane, largely useless feature, and said that
he almost never used it. And much of the
book was just useless blathering and lame attempts
at humor. And don't even get me started on
C++ for dummies.
So, you're saying that everyone is ethically
obligated to not only do good things, but to
do the best things they could possibly do?
By that logic, we should probably be spending
all our time helping fight disease in Africa,
saving the whales, and doing other incredibly useful things, but spend no time writing posts
on slashdot. So, you don't seem to be following your own philosophy:).
But the real problem with that, imho,
is that it's not easy to figure out what's the
best thing to do. Porting doom to a camera gives
valuable experience to the developers (which can be used later for beneficial software), and shows
off the capacities of the camera, which can have
many positive effects.
Also, you gave the example
of OS design as something more useful. But
the vast majority of free OSes are used
by no one, and are no more useful than the doom
port.
Since those tools are meant for pros, I don't think it matters that they take up a lot of space. I mean, most people who do serious programming can afford several large hard disks, so a full IDE that takes up 500mb of space doesn't sound too bad. And space is so cheap nowadays that I can't imagine it would be a problem even for a poor student. Personally, I wouldn't give up a single one of the features I use even if it meant that VC would shrink by half. IMHO, they've got their priorities straight.
And I hear that Diablo 2 takes over 1gb. That's much worse:).
What is the "perfect" system, whereas everyone will be caught, and not a single [innocent] person will be jailed?
I think he meant that his most important priority is that innocent people not be punished, even if that means that less guilty people will be caught. (i.e. he wouldn't mind as much if not every guilty person was caught) That's a pretty reasonable position, imho. I agree though, that saying that if a single person is wrongfully convicted, the system should be thrown out, is a bit silly. The only way to guarantee that is to have no criminal justice system at all, and that's obviously not an option.
There's no reason why we can't improve both the software and the hardware. So the question isn't really "why improve hardware?" but "why not?". Optimizing hardware doesn't prevent software developers from optimizing their software. Also, I don't see how gaining performance through software is any more "true" than gaining it through hardware.
In general, there's only one way in which you can improve processors: making them faster (well, and smaller and more power-saving, but smaller processors are usually faster anyway). So it makes sense for hardware designers to focus on speed. OTOH, software developers have a bunch of different, conflicting objectives (quantity of features, interoperability, extendability, user friendliness, etc), so it can be worthwhile to sacrifice some speed for those other criteria. Sure, we can complain about how bloated today's software is, but if it was faster, we would be complaining (more) about some other aspect of it. Software development is an exercise in compromise...
All the examples you gave resemble
English in one very important way: order.
I'm starting to learn Japanese, and one of the
things that came as a shock was that the order
in which you express things is very different
from English and other latin-based languages.
Your english sentence "If the value of a is 1, then set b to 2 and print 'Hello' to the screen." ordered like Japanese,
might look more like this:
The value of A (wa) 1 is if, b (wa) 2 (wo) set
and 'Hello' (wo) screen (ni) print.
The japanese words I put inside parentheses
are japanese particles, which are kind of like
English prepositions; in a programming language
they'd be best represented by a form of punctuation.
Anyway, if you look at the programming languages you gave
in light of a Japanese-ish example, you can
see that they look a whole lot like English and
little like Japanese. Each of them is ordered
exactly the same way as your sentence!
So, here's what your example could
look like written in a (fictional) language more like Japanese:
(A 1 ==) if { b <- 2 ~ set; 'Hello' ~ screen @ print; }
Doesn't look very intuitive, does it? I think
one of the main reasons why LISP isn't popular
is because it doesn't look anything like English.
Programming languages might look a lot like the example I
just gave if we all spoke Japanese. It's hard to
say what effect it would have on the quality
of our code, though.
Heh, I've never seen an AOL client either. I
have, however, quite a collection of AOL coasters
and frisbees:). I'm in Canada, though, where
AOL hasn't really caught on from what I hear.
As for "high-value" content, I suspect that most
things that are viewed as high-value for a
mainstream audience are of absolutely 0 value
for me. I'm not at all interested in the results
of the latest football game, interviews
with some Hollywood actor, or miscellaneous health
and fashion tips. Anyway, presumably many people
like such things, so AOL does have it's place,
but it's probably not worthwhile for "the
typical/.er", if that means a linux-using geek
(though I hear most/.ers run IE).
As for your bit about chat not being useful,
well, of course chat is useless. It's a total
waste of time and hardly anybody claims otherwise.
Similarly, slashdot is largely a waste of time,
but that didn't stop you from posting, did it:).
Chat, for me, is just another form of 'net entertainment,
where you get to talk to interesting people in
realtime. Of course, most people in chatrooms
are absolutely not interesting.
It is just a matter of finding a good chatroom.
Too bad this isn't really easy, since a lot
of them make an effort not to be found, in order
to avoid being flooded with spammers and idiots.
I hear console support in windows is weak and
buggy, and it's hard to code for it. Also, the bottom line is that the console in many versions of windows just sucks. There aren't enough fonts and I don't want to click a silly button just to paste something.
Another thing is that the idiot admins at my school have set some
flag in the registry that forbids executing
any console application. Perhaps the authors of most of the telnet clients are aware of this problem.
Ah, brain-dead school techs and their so-called "security".
Anyway, it would be a pain if I had to mess
around in the registry every time I wanted to
telnet out from one of those boxes, so I'm
happy that they are GUI apps:).
Well, IIRC the first version(s) of windows 95 (OSR1)
took around 30 megs. It runs every 95/98 app that
I know of flawlessly, so it would be a good choice
for a machine with a 500mb HD or so disk
used to run old games. Unfortunately, it uses
FAT16, which means that with a 6gb hard disk, you'll
have to cut up your drives into 3 partitions
(i.e. C:,D:,E:), and you'll lose something like
300mb to wasted space because of crappy filesystem
management.
Newer versions of 95/98 use FAT32,
which is a slightly less horrible filesystem,
so you're only losing maybe 100mb from slack space
right now. Still, that more than makes up
for the size of the OS.
If you want to make the most of your disk,
you'd be best switching to an OS with a decent
filesystem, like NT (using NTFS) or linux (ext2, reiserfs). They save space and are also much faster. Of course,
that isn't possible if
you use your system primarily for playing games...
DHCP? Seems like overkill for a home network. When you only have 3 or 4 boxes, it's more trouble than it's worth. And if your DHCP server is down or away (because you are gone to a LAN party, say), you'll have to make changes to the configuration of your client box.
It's worth writing your own ipchains/iptables scripts, also. Once you've gotten the hang of it, you can start doing nifty things like port forwarding and packet logging. I sleep well at night knowing that every SYN packet to any suspicious port is logged.
No, unfortunately, optimizing code does not make
it less buggy. On the contrary, it tends to make it
more buggy and less flexible. Knuth famously said "pre-optimized code is the root of all evil"; it's considered good programming practice not to waste effort optimizing code unless you absolutely have to. Time spent
optimizing code is time not spent fixing bugs.
You'll note that first-generation video games on
consoles are rock solid stable, also:). So games
can't really get more stable than they are already.
Yeah, it would be nice if GNOME was built on
some other foundation than C. The problem is
that if it did, it would die. The bottom line
is that programmers follow their short-term
interests and any solution has to be immediately
useful in order to thrive. So you
have to be able to program C with it.
As for Java, remember that the GNOME
guys are all rabid free software zealots and
wouldn't dream of depending on a proprietary language
like that:). Nor do they have the marketing
team to force people to switch to another superior language (see
what happened to ObjC, Eiffel etc). So C compatibility
is really the only way to go.
If you are spending
time playing an old abandonware game, that is less time for you to be
playing that new PS game, or Diablo2 or whatever game they just came
out with.
By that logic, shouldn't the game companies
sue me if I put up a page explaining how to
play baseball? In that case also, I am spreading
information that could potentially make them
lose money; and imho, the original creator of the information
doesn't make any difference, ethically
speaking.
Re:Dynamic resizing of the X display
on
XFree & Rendering
·
· Score: 1
Heh. I always considered that a feature of
X, not a fault. It's nice to be able to "zoom
in" onto something and not have to worry that
all your windows will become resized weirdly and
that you'll have to rearrange them.
Also, it allows you to look at a window full
screen even if the program wasn't designed for it.
That's useful for games and video.
Goto does have one legitimate use: it can simplify
things for automated tools that generate code.
For example, many languages aren't popular enough to justify
writing a complete compiler. So Eiffel, for example,
has a translator that changes Eiffel code to C,
which can then be compiled with a C compiler.
AFAIK, it would be really hard to write such a translator
if you couldn't use goto. That might be the rationale
for including goto in C#...
It's true that including goto in the language
encourages human programmers to use it, which
is always evil (yes, *always*, I've never seen a good
counter-example). But IMHO, this isn't really a
big deal. The overall design of a program
is way more important than the implementation
of individual functions, and if you avoid writing functions
that are too long, you'll rarely have the temptation
to use goto anyway.
It would be nice if this was possible, but it isn't. Even if these guys were extremely competent programmers (which they probably aren't, or else they would never have thought up this project) it would take a decade to get to where windows is today, let alone where windows will be in a decade:). The hundreds of programmers working on windows can't be matched so easily.
Look at how much trouble the WINE guys are having just implementing a wrapper around the win32 API. Now OpenWindows would have to do that, plus write more or less the equivalent of the entire linux kernel, plus X, plus GNOME. Ummm... good luck, guys:).
The linux kernel was a monumental feat, and it was only possible because it implemented a well-known, standardized API (POSIX). Building a kernel around a poorly defined, constantly changing API like windows' is impossibly difficult, even if you could muster the same manpower that linux has.
Also, unless they want to write their own drivers (another monumental effort), they would also have to re-implement windows' binary driver interface, which presumably is even harder to get a grip on. Incidentally, this also means that OpenWindows would be as unstable as the real one, since a lot of the bugs in windows are caused by crappy third-party drivers:).
Building an OS from scratch is hard enough; copying someone else's is really, really hard. Try something easier, guys...
Where am I forced to use an array or raw string in C++? I can use STL containers and std::string, respectively. They are *much* safer.
Well, almost any C++ program needs to use some sort of OS API, which is usually C-style and forces you to muck around with arrays and other repulsive constructs:).
Also, the C++ standard library is often just too slow. I was writing some code that parsed text with the standard string class, and every time I wanted to pass as argument a part of a string (rather than an entire string), I had to create a whole new string object with substr()! My program became ridiculously slow (something like 10 seconds to parse 4000 lines). Finally I gave up and replaced everything with char*s.
Anyway, I still agree with your point in general. IIRC, Stroustrup once said something like "I find almost every use of the term 'C/C++' to be indicative of ignorance."
So, as a Windows user who has just installed Mandrake 6.1 on my home machine, what should I be doing to secure it?
I know the feeling. The most important thing you can do, as the previous poster said, is disable everything network-related that you don't need right now. Comment everything out in/etc/inetd.conf, add a line "ALL: ALL" to/etc/hosts.deny (thus denying access to many network services by default), and turn off every daemon that you don't know what it is (don't worry, you most likely won't break anything), probably by removing entries from/etc/rc.d/. Then, check out Mandrake's updates regularly for reports of any software with security holes, and upgrade or remove that software.
That's the easy (and most important) part. Then, you can install a kernel-level packet filter (ipchains, iptables) to block all suspicious packets, and install and use ssh rather than telnet and ftp, which are incredibly insecure (anybody nearby with a packet sniffer can compromise your system). Finally, 'chmod 755' all suid root programs (their permissions start with "-rws", and they are often used to gain root from a normal account) from/usr/bin and/usr/sbin, though this is not really so important for a single-user machine.
Once you've done all that, your system is rather tight. Always stay paranoid, though, and regularly install security patches and read your logs as often as possible. You can then re-enable services as you learn how to configure them properly. Also check out the linux security HOWTO, though it mostly says what I just said (but is much more wordy:).
So true. That's exactly how I feel about american movies and television.
Have you tried out japanese animation (anime), though? Imho, it is overall of much greater quality than the garbage that passes for TV around here. The good anime has deep, realistic characters, and a kind of overall creativity and artfulness that is really refreshing. I feel it's on par with what you get at (real) theaters.
There was an Ask Slashdot a while ago asking for recommendations of good series. I recommend Neon Genesis Evangelion, a series which everyone likes and a lot of people are crazy about. The series is really intense, and once you're finished you still have hours of fun analyzing the psychology of the characters and finding all sorts of hidden meanings and interpretations to all the events (if you're into that sort of thing:). I'd like to see an american film where you can do that!
I agree that weak typing in Perl is a good thing. But you make it sound like it's a panacea, which imho it isn't. The thing about strong typing is that though it slows down initial development time and is generally a pain, every so often it helps you catch an obscure type-related bug at compile-time. When you have a 500k-line project in constant evolution, catching those bugs is much more important than saving a bit of initial development time. In a 500-line perl script, the initial development time is more important. So the strength of a language's typing is really a tradeoff.
Also, strong typing can be more efficient. When you say getInteger(), the compiler doesn't have to waste cycles trying to figure out if it's an integer, string, float, etc.
BTW, C++ allows you to emulate weak typing where it's appropriate, using operator overloading. Say I've created a SpecialInt class that contains an int, plus does some other special stuff I need for some reason, I can make it interchangeable with an int, like this:
class SpecialInt
{ public: SpecialInt(int i); operator int() const; /*... more stuff */ };
void f() { function_that_takes_a_SpecialInt(5);/* legal because of the constructor that takes an int */ int bar = foo;/* legal because of the operator int overload */ }
I thought the word came from the "anima" in "animation". It's pronounced more or less the same way and seems more likely. In my experience Japanese has almost no words taken from French (I live in Quebec, and I am learning Japanese).
I live in Quebec so I see a lot of this. The other day, my chemistry prof was explaining how to search for the element lead in our english reference book and pronounced it "lead" as in "leader". And how are we supposed to know that the "na" in "nation" is not pronounced the same way in "national"? etc.
I don't know any korean, but I do know the japanese kana system is much more readable in this respect.
Also, Chinese pictograms are more detailed than letters, so they have to be displayed in a larger font. This partially cancels out the space savings. Also, I would guess that they take longer to write on paper, and _much_ longer to type, since you would have to select them from a menu or something.
First, the stockholders of supermarkets aren't necessarily "bourgeoisie". You can be a stockholder, too; just buy some stock. And it's possible for a supermarket chain to be entirely owned by individual small investors like you. And the chain would still practice sleazy marketing practices; so, I don't see how there is a class war at work here.
Also, I would argue that the supermarket chains do indeed exist to provide a service to consumers. Although what the chains want is, as you say, to provide profit for their shareholders, the reason they exist is for the consumers. If they didn't, they wouldn't be allowed to exist in their current form. For example, it appears that Microsoft is currently doing a disservice to consumers, so the US government is considering splitting them up. If the supermarket chains also harmed consumers, the same thing would happen to them.
Finally, you make it sound like there is a choice between "shop at exploitative evil supermarkets" or "starve". But there are lots of other options. You can get your food from smaller businesses you consider non-exploitative, or, if you really want to, grow the food yourself. These options are perfectly reasonable; if most consumers did not like being "exploited" by the big chains, they would all switch to smaller stores. This isn't happening; so, apparently most people do indeed find the big chains useful and choose to shop there because they feel it's to their best advantage. I don't see any exploitation here.
Ouch. That sucks. Well, now that an intruder has gotten root on your system, he may have installed all sorts of other backdoors, so you should wipe and reinstall. Otherwise he could come back, steal and trash your data, or worse, use your box as a proxy for cracking other systems.
Yeah, I watched the dub of Akira and hated it. That's not really saying much, though :).
It was especially funny the way the actors were
completely incapable of pronouncing their own names.
"tet-SUU-woh" haha.
I saw C for dummies after I already had quite a bit of experience with the language, and the book disgusted me. Besides being (I think) longer than K&R for much less content, the book tried to avoid all the vocabulary, and certainly didn't define much of it. The author, among other things, described the preprocessor as an arcane, largely useless feature, and said that he almost never used it. And much of the book was just useless blathering and lame attempts at humor. And don't even get me started on C++ for dummies.
By that logic, we should probably be spending all our time helping fight disease in Africa, saving the whales, and doing other incredibly useful things, but spend no time writing posts on slashdot. So, you don't seem to be following your own philosophy :).
But the real problem with that, imho, is that it's not easy to figure out what's the best thing to do. Porting doom to a camera gives valuable experience to the developers (which can be used later for beneficial software), and shows off the capacities of the camera, which can have many positive effects.
Also, you gave the example of OS design as something more useful. But the vast majority of free OSes are used by no one, and are no more useful than the doom port.
And I hear that Diablo 2 takes over 1gb. That's much worse :).
I think he meant that his most important priority is that innocent people not be punished, even if that means that less guilty people will be caught. (i.e. he wouldn't mind as much if not every guilty person was caught) That's a pretty reasonable position, imho. I agree though, that saying that if a single person is wrongfully convicted, the system should be thrown out, is a bit silly. The only way to guarantee that is to have no criminal justice system at all, and that's obviously not an option.
In general, there's only one way in which you can improve processors: making them faster (well, and smaller and more power-saving, but smaller processors are usually faster anyway). So it makes sense for hardware designers to focus on speed. OTOH, software developers have a bunch of different, conflicting objectives (quantity of features, interoperability, extendability, user friendliness, etc), so it can be worthwhile to sacrifice some speed for those other criteria. Sure, we can complain about how bloated today's software is, but if it was faster, we would be complaining (more) about some other aspect of it. Software development is an exercise in compromise ...
Your english sentence "If the value of a is 1, then set b to 2 and print 'Hello' to the screen." ordered like Japanese, might look more like this:
The japanese words I put inside parentheses are japanese particles, which are kind of like English prepositions; in a programming language they'd be best represented by a form of punctuation.Anyway, if you look at the programming languages you gave in light of a Japanese-ish example, you can see that they look a whole lot like English and little like Japanese. Each of them is ordered exactly the same way as your sentence!
So, here's what your example could look like written in a (fictional) language more like Japanese:
Doesn't look very intuitive, does it? I think one of the main reasons why LISP isn't popular is because it doesn't look anything like English. Programming languages might look a lot like the example I just gave if we all spoke Japanese. It's hard to say what effect it would have on the quality of our code, though.As for "high-value" content, I suspect that most things that are viewed as high-value for a mainstream audience are of absolutely 0 value for me. I'm not at all interested in the results of the latest football game, interviews with some Hollywood actor, or miscellaneous health and fashion tips. Anyway, presumably many people like such things, so AOL does have it's place, but it's probably not worthwhile for "the typical /.er", if that means a linux-using geek
(though I hear most /.ers run IE).
As for your bit about chat not being useful, well, of course chat is useless. It's a total waste of time and hardly anybody claims otherwise. Similarly, slashdot is largely a waste of time, but that didn't stop you from posting, did it :).
Chat, for me, is just another form of 'net entertainment,
where you get to talk to interesting people in
realtime. Of course, most people in chatrooms
are absolutely not interesting.
It is just a matter of finding a good chatroom.
Too bad this isn't really easy, since a lot
of them make an effort not to be found, in order
to avoid being flooded with spammers and idiots.
Another thing is that the idiot admins at my school have set some flag in the registry that forbids executing any console application. Perhaps the authors of most of the telnet clients are aware of this problem. Ah, brain-dead school techs and their so-called "security". Anyway, it would be a pain if I had to mess around in the registry every time I wanted to telnet out from one of those boxes, so I'm happy that they are GUI apps :).
Newer versions of 95/98 use FAT32, which is a slightly less horrible filesystem, so you're only losing maybe 100mb from slack space right now. Still, that more than makes up for the size of the OS.
If you want to make the most of your disk, you'd be best switching to an OS with a decent filesystem, like NT (using NTFS) or linux (ext2, reiserfs). They save space and are also much faster. Of course, that isn't possible if you use your system primarily for playing games ...
It's worth writing your own ipchains/iptables scripts, also. Once you've gotten the hang of it, you can start doing nifty things like port forwarding and packet logging. I sleep well at night knowing that every SYN packet to any suspicious port is logged.
You'll note that first-generation video games on consoles are rock solid stable, also :). So games
can't really get more stable than they are already.
As for Java, remember that the GNOME guys are all rabid free software zealots and wouldn't dream of depending on a proprietary language like that :). Nor do they have the marketing
team to force people to switch to another superior language (see
what happened to ObjC, Eiffel etc). So C compatibility
is really the only way to go.
By that logic, shouldn't the game companies sue me if I put up a page explaining how to play baseball? In that case also, I am spreading information that could potentially make them lose money; and imho, the original creator of the information doesn't make any difference, ethically speaking.
Also, it allows you to look at a window full screen even if the program wasn't designed for it. That's useful for games and video.
It's true that including goto in the language encourages human programmers to use it, which is always evil (yes, *always*, I've never seen a good counter-example). But IMHO, this isn't really a big deal. The overall design of a program is way more important than the implementation of individual functions, and if you avoid writing functions that are too long, you'll rarely have the temptation to use goto anyway.
Look at how much trouble the WINE guys are having just implementing a wrapper around the win32 API. Now OpenWindows would have to do that, plus write more or less the equivalent of the entire linux kernel, plus X, plus GNOME. Ummm ... good luck, guys :).
The linux kernel was a monumental feat, and it was only possible because it implemented a well-known, standardized API (POSIX). Building a kernel around a poorly defined, constantly changing API like windows' is impossibly difficult, even if you could muster the same manpower that linux has.
Also, unless they want to write their own drivers (another monumental effort), they would also have to re-implement windows' binary driver interface, which presumably is even harder to get a grip on. Incidentally, this also means that OpenWindows would be as unstable as the real one, since a lot of the bugs in windows are caused by crappy third-party drivers :).
Building an OS from scratch is hard enough; copying someone else's is really, really hard. Try something easier, guys ...
Well, almost any C++ program needs to use some sort of OS API, which is usually C-style and forces you to muck around with arrays and other repulsive constructs :).
Also, the C++ standard library is often just too slow. I was writing some code that parsed text with the standard string class, and every time I wanted to pass as argument a part of a string (rather than an entire string), I had to create a whole new string object with substr()! My program became ridiculously slow (something like 10 seconds to parse 4000 lines). Finally I gave up and replaced everything with char*s.
Anyway, I still agree with your point in general. IIRC, Stroustrup once said something like "I find almost every use of the term 'C/C++' to be indicative of ignorance."
I know the feeling. The most important thing you can do, as the previous poster said, is disable everything network-related that you don't need right now. Comment everything out in /etc/inetd.conf, add a line "ALL: ALL" to /etc/hosts.deny (thus denying access to many network services by default), and turn off every daemon that you don't know what it is (don't worry, you most likely won't break anything), probably by removing entries from /etc/rc.d/. Then, check out Mandrake's updates regularly for reports of any software with security holes, and upgrade or remove that software.
That's the easy (and most important) part. Then, you can install a kernel-level packet filter (ipchains, iptables) to block all suspicious packets, and install and use ssh rather than telnet and ftp, which are incredibly insecure (anybody nearby with a packet sniffer can compromise your system). Finally, 'chmod 755' all suid root programs (their permissions start with "-rws", and they are often used to gain root from a normal account) from /usr/bin and /usr/sbin, though this is not really so important for a single-user machine.
Once you've done all that, your system is rather tight. Always stay paranoid, though, and regularly install security patches and read your logs as often as possible. You can then re-enable services as you learn how to configure them properly. Also check out the linux security HOWTO, though it mostly says what I just said (but is much more wordy :).
Have you tried out japanese animation (anime), though? Imho, it is overall of much greater quality than the garbage that passes for TV around here. The good anime has deep, realistic characters, and a kind of overall creativity and artfulness that is really refreshing. I feel it's on par with what you get at (real) theaters.
There was an Ask Slashdot a while ago asking for recommendations of good series. I recommend Neon Genesis Evangelion, a series which everyone likes and a lot of people are crazy about. The series is really intense, and once you're finished you still have hours of fun analyzing the psychology of the characters and finding all sorts of hidden meanings and interpretations to all the events (if you're into that sort of thing :). I'd like to see an american film where you can do that!
Also, strong typing can be more efficient. When you say getInteger(), the compiler doesn't have to waste cycles trying to figure out if it's an integer, string, float, etc.
BTW, C++ allows you to emulate weak typing where it's appropriate, using operator overloading. Say I've created a SpecialInt class that contains an int, plus does some other special stuff I need for some reason, I can make it interchangeable with an int, like this: