Yes, and it also has an anti-theft system: if you don't push the right buttons in the right order, it gives you a friendly reminder on the dash-mounted LCD:
TCELES B HSUP
Point being, if a thief does manage to steal your $100000 auto, they're not only liable for grand theft auto, but also for circumvention of encryption under recent US legislation.
Maybe you never heard of DR DOS? M$ distributed a beta version of something (Win 3.1? Office? forget)
which had an explicit check for DRDOS instead of MSDOS
If the majority of the public finds that
there is no place for Communism in America, then policy should be made on that Will.
Some other people:
Congress shall make no law... abridging the
freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress
of grievances.
So, what's the point here? Why were these words spoken?
If you read Rousseau, you'll see that he says almost exactly what you're saying: nobody can go against the will of the sovereign whole.
However, the writers of the above words also dealt with another issue, an issue that Rousseau didn't touch: the so-called "tyranny of the majority."
Perhaps I may quote someone to better express what I mean by this trite concept:
Majority rule only works if you're also considering individual rights.
Because you can't have five wolves and one sheep voting on what to have for
supper.
Now, in an ideal democratic society, I wouldn't be afraid to attribute this citation, and the idea would be considered on its own merit rather than on preconceived ideas of the author; however, I'm afraid I'll lose all credibility if I mention the author of this quote, so I'll leave it to you to research google if you're interested.
The point? We don't live in a perfect representative republic; the founders of our republic realized that a perfect representative republic would be disasterous. We have limits on what we can vote on (for a more in-depth analysis, I would recommend Tocqueville's Democracy in America). Whether or not these limits have been respected is another debate, but I believe they were added for good reason.
even if you are an absolutely brilliant person in physics, perhaps one of the
smartest people who ever lived, you can be a complete ignorant moron when it comes to politics and human
relations.
A LOT of Slashdotters could learn this lesson. Just because you are a good programmer (or pick your geek
subject) doesn't mean you know beans about how the world should be run.
I'm a good programmer. Does that mean I shouldn't be passing on my opinions about how the world should be run?
Well, let's be fair - that's not what you're saying. You're saying that I shouldn't participate in political discussion unless I know how "the world should be run." There is no other possible conclusion from your post: you're saying that Einstein shouldn't have experimented with Marxism because he obviously didn't understand how people work (and this, in turn, is obvious from his Communist associations). You're saying that sympathizing with socialists shows just how utterly incapable Einstein was to participate in political actions.
Now, you wrote clearly, so there's no need to paraphrase; we can see what you're saying through your own words:
If you are a socialist, then you have no clue about
how the world should be run, and should just stay away.
In short, you're telling me to shut the fuck up because I disagree with you. Now, which one of us is "intrinsically anti-freedom?"
Normally, I would tell rabid anti-socialists to form an opinion on Marxism by not by reading anti-Marxist literature but by reading Marx himself, but only after understanding the proper historical framework, by reading John Stuart Mills' On Liberty, Tocqueville's Souvenirs of the Revolution of 1848, and
perhaps some of the proceedings of the English parlement on factory workers during 1846-1847. That's normally what I would ask of the rabid anti-socialist. However, I don't ask this of you, since you've already formed an opinion that "Socialism is intrinsically anti-freedom."
I'm neither a communist, a socialist, nor a Marxist - but I know the difference between the three. Economically, I'm more likely to agree with Adam Smith than with Engels. However, unlike you or M. Le Pen, I realize that there is nothing intrinsically dangerous about studying and sharing the teachings of Marx, or even forming political associations based upon Marxist ideology.
I believe my Anonymous Comrade said it best: "You, my friend, are a facist bastard."
Also, another minor quip: the C program is not valid C in either C89 or C99. It's not valid C89 because it uses '//' for a comment, and it's not valid C99 since it introduces main() without declaring the return type. C89 defaults to int if you don't declare the type (both for functions and variables, which can be fun), whereas this behaviour is undefined in C99. Normally, I don't follow the anal-retentive lingual purists, but I think this situation calls for this.
Problem with this is that if you don't own the copyright on that code you wrote during your last consulting gig, and your next consulting gig is doing something similar, you'll have to rewrite all of your code from scratch.
Nasty business, this consulting. Makes me glad I have a nice, stable regular salaried position.
it is a kernel, or a microkernel to be more precise, which combined with the GNU
macrokernel
What the hell are you talking about?
There is nothing microkernel about Linux. It doesn't do message passing, it doesn't talk to device drivers through IPC, etc. It's your regular macrokernel. Search google for an early usenet flamewar between Torvalds and Tannenbaum for more information. Linux has modules, but that has absolutely zero to do with being a microkernel; the fact that the core of a microkernel is "small" and you can compile lots of stuff into modules to make your Linux kernel image "small" has nothing to do with being a microkernel.
I also have no idea what you're talking about when you say the "GNU macrokernel." Virtually all the actual GNU programs (eg, those programs that are listed on gnu.org and whose authors have assigned their copyright to the FSF) use the C library (except GRUB). Anything that uses the C library is not kernel programming - it may be systems programming or applications programming (as if this distinction makes any difference whatsoever), but it certainly is not kernel programming. Even glibc, which directly uses the kernel interfaces for syscalls (eg, int 0x80 on Linux), is not kernel programming.
I think it would be interesting to see a comparison of these emulators from a completeness standpoint, not
just a performance standpoint. For an OS developer, the former is probably more important than the latter.
I wrote an OS kernel using VMWare. It's actually fairly nice (VMWare, not my kernel:).
The way I worked it is that I wrote my own stupid little program to snarf the significant ELF sections from a Linux-Elf binary and stick them into a simplistic file format. I wanted to do this all by myself (that was the whole point of the thing), so I wrote my own bootloader in assembly (using nasm, a great tool) which would subsequently load up the image from floppy and jump into the C code. Pretty common stuff as far as I can tell. I got somewhat far along (started trying to figure out how to get the network card working - that would have been really interesting) before other projects caught my attention.
It's a very nice environment. I don't know anything else about Bochs or Plex86, but VMWare has this thing where you can specify that the floppy device is actually a file. Greatly cuts down the time on the compile/assemble/boot cycle. One funny thing is that it would ask you to file a bug report whenever you managed to triple-fault (which happens a lot when you're just figuring out the nasty GDTs et al.).
Another nice use for VMWare is setting up four FreeBSD virtual machines, each with 16M of memory and playing networking games (eg, try to write your own distributed filesystem) when you don't have access to private network (eg, on vacation with the laptop - no Internet connection, you get more work done).
I'm very happy with VMWare. You should definitely try it out, especially if you can manage to get the educational discount.
I don't particularly care for one compiler over the other - almost all of my code runs fine under both (I've only recently started playing with icc). The only compiler-dependent thing I've ever used was gcc's inline assembly (which is extremely useful when you need it), but that was only for one project.
I personally like using more than one compiler/libraries just because it makes my code more portable, and it catches dumb mistakes. I usually develop on FreeBSD with gcc, but I'll occasionally I'll compile on a Linux/glibc or Solaris box (using Sun's cc, not gcc), just to make sure I'm not including the wrong header or something.
I have this old Sparcstation 4 running SunOS 4.1. I don't use it for anything vital, but I just like playing with it for nostalgia purposes. Lots of stuff won't compile on it, even using gcc. People sometimes just compile some software for Linux and assume it will work everywhere - I kind of feel sorry for those that have to use HP/UX or AIX, as I know those guys are going to have all kinds of problems.
In short, I agree that the minimal performance gain isn't useful, but portability is important.
Yeah, you and tHe cAnDy RaVeRs have it well sussed. Congratulations.
From your post, I understand your general attitude and I can sense the sarcasm. However, I cannot, for the life of me, understand your "candy raver" reference.
Apparently, this is what a candy raver is. This required some Googling. If you insist on stereotyping me, I prefer being known as someone who looks and dresses extremely "corporate," but who has all sorts of left-wing political/social tendencies, perhaps with a bit of the wine-drinking, cigarette-smoking, dress-in-black schizoid Existentialist pseudo-intellectual on the weekends.
I really like it. It's short and most Americans will figure it out even with zero knowledge of French (the word "liberty" will come to mind). It also avoids any amerigo-centrism (just made up that word) and can help attract non-american users and programmers (which is really the area that this movement should be focusing on right now IMHO). There is absolutely no ambiguity and it immediately distinguishes this movement from encumbered freeware (like KaZaA)
and "Open Source," by giving the ideological slant immediately. Also, linguistically, it has an advantage that the adjective goes after the noun and so, in English, it will always remain a proper noun, which further disambiguates it.
My original thought was "Unemcumbered Software" but that's clunky and it rolls off the tongue in all sorts of wrong ways.
Stallman's tactics are counter-productive to our movement. He does not understand the basics of how humans work. Some people say that we need someone who will hold their beliefs without comprimise, and I'll tend to agree. However, Stallman not only holds an uncomprimising attitude, but his proselytizing tactics are unsound.
We need someone who understands the art of marketing - the art of diplomacy, rhetoric, whatever you want to call it. Part of this includes choosing good names for projects and concepts. "GNU/Linux" is a horrible name. "Free Software" is even worse. His insistance on spreading the MIT-centric idea of what the word "hacker" is supposed to mean is incredibly counter-productive. Changing the way people think involves changing the way they speak, but attempting to redefine new words does not work, especially in the most critical first stages of a movement.
"Hacker" means criminal to everyone outside our movement and associating yourself with this word is not the way to spread your ideology. The operating system that runs Slashdot and Google is known as "Linux" to everyone outside our movement, and changing that only spreads confusion.
The one that really bothers me is "Free Software." Here, the capitalization makes the difference between respected projects such as GCC and the crap shareware you'll find on tucows.com. I completely understand the whole "gratuit" vs. "libre" thing, being an amateur linguist and having read most of the FSF's philosophy. I can understand that "Free" and "free" are supposed to mean different things, but I don't like it.
What if I'm talking to someone? Much business is done over the
telephone or through face-to-face meetings, not through email.
With email/usenet/etc. it's easy to spot the difference between
"Free" and "free", but what if I want to tell my boss that the new
proxy server I installed is "Free"? Do I say:
(a) "It's Free software, as in free-with-a-capital-eff.", or
(b) "It's Open Source."
(A) will lead only to confusion because my boss doesn't care about
the tiny differences between copylefted and Free-but-copyrighted
software. Don't fool yourself into thinking that (a) will lead to
a discussion about the nature of Free software; the business world
is not academia, and has little patience for discussions which
(seemingly or in reality) do not affect the bottom line.
Look at DivX versus DivX;-). Look it up on Google if you don't
know the difference between the two (hint, the punctuation makes
all the difference). Now that DivX;-) has become popular and DivX
is dead, the DivX;-) people are trying very hard to break away
from their old name. What was initially a bad pun has become the
bane of this company attempting to sell their codec. Don't look
at this example from a Free software standpoint; the example is
just meant to show how a bad name can hinder the acceptance of a
codec/idea.
We (computer professionals or hackers if you insist) linguistically think much differently from most people.
To me, puncuation and capitalization are as important as words.
Compare:
(c) "DivX" to
(d) "DivX;-)", and
(e) "find name copying and print" to
(f) "find / -name COPYING\* -print"
You and I know that (e) is gibberish and (f) is correct/useful,
but Joe Schmoe only knows that (e) is "easier" than (f). Joe Schmoe
has to "remember" (f) in its entirety in order to use it; he has
difficulty deconstructing it into its component pieces and then
reconstructing the pieces together again the next time the command
must be used. Those of us linguistically gifted (all good programmers)
do this instinctually, so we have little difficulty figuring out
"DivX" versus "DivX;-)" and "Free" versus "free". Most people
don't have the time or patience to do this.
This has nothing to do with ideas; it's all about marketing.
Microsoft has some of the best marketing people, so we would do
well to take an example from Redmond. Why did Microsoft change
Windows NT 5.0 to Windows 2000? Joe Schmoe thinks like this:
"Oh, 5.0, but I'm already running 98, so is that an upgrade?"
"Oh, they came out with Windows 2000, and I'm only running 98."
"Oh, I can get IE for free, so it doesn't mean anything that Netscape
is now free software."
"Oh, Netscape is now Open Source, so I'll download it because it
gives me more freedom than IE."
In this case, Microsoft was deliberately trying to create confusion
to increase the acceptance of NT 5.0. We have no interest in
deliberately creating confusion (right?), so we should have a name
for our software that immediately and succintly distinguishes it
from gratis-but-encumbered software. Go to tucows.com and you'll
see that most people (most people run windows) interact with
gratis-but-encumbered software much more often than Free software.
Let's look at Microsoft's marketing strategy with NT 5.0 versus
2000 again. Syllabically, we have:
win-dows en-tee five-point-oh
win-dows two thou-sand
The renaming cut out three syllables. Coincidence?
Also, look at the components of the words:
2000
NT 5.0
The first is a simple year (easy to remember), while the second is an
obscure acronym combined with an obscure version number.
When my mother first took some computer classes, she came back home
to ask me what version of Windows her PC was running. I replied
"Windows 3.1." (I cut my teeth programming with Borland C++ 3.0
on MS-DOS 5.0/Windows 3.1.)
She said, "No, that's not right. What version of Windows is my
PC running?"
Me: "3.1."
Mom: "No, that's not a version of Windows."
Me: "Yes it is."
Mom: "Then what version of Windows is the PC at work running?"
Me: "Some are Windows 98 and some are NT 4.0."
Mom: "???"
Me: "Microsoft's versioning schemes divulged with the release of
'Chicago', aka. Windows 95. Whereas versions of Windows prior to
Windows 95 were simply given a version number, Windows 95 and later
were given a common name which refers to the year of intended
release in addition to a normal version number. Thus, Windows 95
is in actuality Windows 4.0 and Windows 98 is Windows 4.5. Windows
NT, on the other hand, is a completely separate product line.
Windows NT 3.5 was the contemporary of Windows 95 and Windows NT
4.0 is the contemporary of Windows 98."
Mom: "So what version of Windows is my PC running?"
Me: "Umm...Windows 93."
The point of this who's-on-second? People want brevity and clarity,
not philosophy or linguo-technical mumbo-jumbo.
In short, we need a name for our movement that:
Is unambiguous.
Is short.
Does not rely on any lingual "tricks", such as capitalization,
the nouning of an adjective, or recursive acronyms.
Isn't the time spend in high school supposed to teach you these skills anyway?
No, no, no...you've got it all wrong. You obviously don't understand anything about how the American education system works (wink, wink).
College is were you're supposed to learn this stuff. This is why virtually all serious four-year universities in the US have what they call a "core" requirement (I'm thinking Ivy League schools and their peers). Basically, you spend your first two years of college writing papers on literature, political philosophy and history. You might also get in a couple math classes.
Your third and fourth year of college is where you start taking only relevant classes.
Some people call this "liberal" or "liberal arts" education. It's funny because the US is the only country I know of that follows "the great European tradition of liberal education." I don't know of too many foreign universities with a "Great Books" program. French and German engineers don't have to take political philosophy courses in college. In fact, they probably won't take any polisci in the last couple years of high school.
Now, you try to get into a math grad school in the US with your BS and good grades, and you'll have a good chance; but why? Because schools can only take so many Hungarian and Romanian mathematicians who've actually been doing mathematics since high school.
But I digress; your question was about what you're supposed to learn in high school. As far as I can tell, the answer is nothing. You're supposed to spend high school "developing your individuality" through "extra-curricular activities," such as driving to McDonald's and playing sports.
Although I hate to do this, I'll have to agree with you.
When I was in University, I took some French writing classes. Being a CS/Math guy, I did all my papers in LaTeX. I even wrote scripts to translate my ISO-8859-1 text that I input using Emacs to standard LaTeX escape characters, since I didn't want to have to deal with Babyl.
However, this teacher wanted Word documents. So I installed Word 2000 on my laptop under VMware. Word didn't like how my text had line breaks - it expected no line breaks within a paragraph. So I wrote another script to translate my normal text into this one-line-per-paragraph format (there's also an emacs mode that does this automatically, but I didn't bother with that). So, I eventually got it so I could just copy over a text file, import into Word, change the style of the whole thing from 'plain text' to 'normal' and send it off.
Then I discovered Word's spelling and grammar check. I had given up on these for English documents long ago since it can't handle anything more complicated than Hemingway, and my writing looks more like Hawthorne.
Word's grammar check for French is amazing. Half my papers needed to be emailed and were done in this hybrid write-in-emacs import-to-word-and-grammar-check fashion, and half my papers were just written in Emacs/LaTeX. I received better grades on the papers that had gone through Word's grammar check.
Now, my French isn't horrible, but, like most non-native speakers, I have lots of problems remembering gender; this isn't really a grammar problem (I know my grammar), but more of a vocabulary problem, since there are a lot of words whose gender you just have to memorize (you can also figure out a lot of words just by their endings, but not all words). Word would catch all of these errors - not just the really simple stuff like articles, but also making adjectives agree when they were in a completely different part of the sentence than the object. It's actually quite impressive.
I still used Emacs to write my documents, just because I can't stand this idiotic point-and-click editing (I have to use the arrow keys to move the point!?). I had also gotten used to Mule's 'french-postfix' input method, and I couldn't get used to the weird azerty keyboard layout in Windows.
Honestly, I completely hate Word, and all other "word processors," and would rather avoid them if at all possible. If someone could write a unix command-line grammar check that's as good as Word's, I would be very happy. If someone else could incorporate into Emacs, like how ispell works with flyspell-mode, I would be even happier.
I doubt at this point that anyone else is going to see your comment since this story is getting older (I saw it through the messaging system).
Watch
fireball toad hop away until the flame burns through the skin and then KABOOM.
Oh. My. God. That has got to be the sickest and most creative thing I've ever heard kids do.
Though I've seen them suck their guts back in and hop away. They're kind of tough!
Now you Aussies are really scaring me. Gotta visit that place sometime.
I've just ordered the movie from Amazon. Should make a great thing to watch on the weekends with friends and beers. I cannot simply allow such a cultural phenomenon go unnoticed.
I don't see how this would work (?). tn3270 is a completely different environment (although still text-based for the most part). The client he's talking about is probably x3270, which is an X11 program; "regular" terminal emulators (like windows telnet, putty ssh, mindterm, etc), cannot do what tn3270 needs.
You could combine these ideas: get a bunch of old boxen, put Linux on them, get them a FAST network connection (network will probably be the bottleneck here), create accounts for your 1000 users (or be creative and use pam_ldap, pam_samba, whatever is appropriate for your environment) and have them run an X server on their PCs. You might try cygwin's compile of XFree86. It's actually decent, although it's not rootless. I don't know what the prices are for eXceed or other commercial X servers, but XFree86 under cygwin is OK and the price is right.
If you go with cygwin, you can cut the Linux boxen out of picture (definitely a good idea). I don't believe x3270 comes with cygwin, but it should compile OK (I haven't had any problems compiling fairly complex X stuff under cygwin). Installing cygwin company-wide shouldn't be too much of an issue as the install just copies some files and runs one shell script to create/etc/passwd after installation.
But yeah, if you're looking for a free native NT client, I haven't found one. All the places I've worked at that have these mainframes (a total of two) actually paid for their clients. I don't know if there will ever be one, since the communities of old mainframes and windows shareware are worlds apart.
Just curious, did you write this ahead of time, or did you actually type this into the little textarea on the submission form? I ask because this has all the parts of a good essay.
Cool, OK, I misunderstood you. I'd agree that lots of *nix apps die spectacularly when they run out of disk. Funny thing is, I've seen Windows and MacOS apps deal with this by popping up a dialog or something, whereas the *nix apps will dump core, at best.
Another thing I've noticed is that most good *nix programmers do indeed check for out-of-memory errors (eg, they always check return value of malloc), but their error handlers aren't all that great.
My usual way of dealing with out-of-memory is to propagate the error back up the call stack until someone really wants to deal with it. Most times, dealing with it just means printing an error and dumping core.
It may be that us *nix programmers are used to good virtual memory implementations where it's really hard to run out of memory, whereas the Windows/MacOS programmers have actually had to deal with these issues directly. Not sure.
Ah...the consummate physics/math geek. You've been doing too much LaTeX, my friend. It's <em> in HTML :)
BTW, this is a nice explanation - managed to make it interesting even for me, who almost failed basic quantum mechanics.
Yes, and it also has an anti-theft system: if you don't push the right buttons in the right order, it gives you a friendly reminder on the dash-mounted LCD:
TCELES B HSUP
Point being, if a thief does manage to steal your $100000 auto, they're not only liable for grand theft auto, but also for circumvention of encryption under recent US legislation.
It was Widnows 3.1; here's Microsoft's response.
If the majority of the public finds that there is no place for Communism in America, then policy should be made on that Will.
Some other people:
Congress shall make no law ... abridging the
freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress
of grievances.
So, what's the point here? Why were these words spoken?
If you read Rousseau, you'll see that he says almost exactly what you're saying: nobody can go against the will of the sovereign whole.
However, the writers of the above words also dealt with another issue, an issue that Rousseau didn't touch: the so-called "tyranny of the majority."
Perhaps I may quote someone to better express what I mean by this trite concept:
Majority rule only works if you're also considering individual rights. Because you can't have five wolves and one sheep voting on what to have for supper.
Now, in an ideal democratic society, I wouldn't be afraid to attribute this citation, and the idea would be considered on its own merit rather than on preconceived ideas of the author; however, I'm afraid I'll lose all credibility if I mention the author of this quote, so I'll leave it to you to research google if you're interested.
The point? We don't live in a perfect representative republic; the founders of our republic realized that a perfect representative republic would be disasterous. We have limits on what we can vote on (for a more in-depth analysis, I would recommend Tocqueville's Democracy in America). Whether or not these limits have been respected is another debate, but I believe they were added for good reason.
A LOT of Slashdotters could learn this lesson. Just because you are a good programmer (or pick your geek subject) doesn't mean you know beans about how the world should be run.
I'm a good programmer. Does that mean I shouldn't be passing on my opinions about how the world should be run?
Well, let's be fair - that's not what you're saying. You're saying that I shouldn't participate in political discussion unless I know how "the world should be run." There is no other possible conclusion from your post: you're saying that Einstein shouldn't have experimented with Marxism because he obviously didn't understand how people work (and this, in turn, is obvious from his Communist associations). You're saying that sympathizing with socialists shows just how utterly incapable Einstein was to participate in political actions.
Now, you wrote clearly, so there's no need to paraphrase; we can see what you're saying through your own words:
If you are a socialist, then you have no clue about how the world should be run, and should just stay away.
In short, you're telling me to shut the fuck up because I disagree with you. Now, which one of us is "intrinsically anti-freedom?"
Normally, I would tell rabid anti-socialists to form an opinion on Marxism by not by reading anti-Marxist literature but by reading Marx himself, but only after understanding the proper historical framework, by reading John Stuart Mills' On Liberty, Tocqueville's Souvenirs of the Revolution of 1848, and perhaps some of the proceedings of the English parlement on factory workers during 1846-1847. That's normally what I would ask of the rabid anti-socialist. However, I don't ask this of you, since you've already formed an opinion that "Socialism is intrinsically anti-freedom."
I'm neither a communist, a socialist, nor a Marxist - but I know the difference between the three. Economically, I'm more likely to agree with Adam Smith than with Engels. However, unlike you or M. Le Pen, I realize that there is nothing intrinsically dangerous about studying and sharing the teachings of Marx, or even forming political associations based upon Marxist ideology.
I believe my Anonymous Comrade said it best: "You, my friend, are a facist bastard."
Why not just do this instead:
Also, another minor quip: the C program is not valid C in either C89 or C99. It's not valid C89 because it uses '//' for a comment, and it's not valid C99 since it introduces main() without declaring the return type. C89 defaults to int if you don't declare the type (both for functions and variables, which can be fun), whereas this behaviour is undefined in C99. Normally, I don't follow the anal-retentive lingual purists, but I think this situation calls for this.
But yeah, this is pretty cool.
Nasty business, this consulting. Makes me glad I have a nice, stable regular salaried position.
What the hell are you talking about?
There is nothing microkernel about Linux. It doesn't do message passing, it doesn't talk to device drivers through IPC, etc. It's your regular macrokernel. Search google for an early usenet flamewar between Torvalds and Tannenbaum for more information. Linux has modules, but that has absolutely zero to do with being a microkernel; the fact that the core of a microkernel is "small" and you can compile lots of stuff into modules to make your Linux kernel image "small" has nothing to do with being a microkernel.
I also have no idea what you're talking about when you say the "GNU macrokernel." Virtually all the actual GNU programs (eg, those programs that are listed on gnu.org and whose authors have assigned their copyright to the FSF) use the C library (except GRUB). Anything that uses the C library is not kernel programming - it may be systems programming or applications programming (as if this distinction makes any difference whatsoever), but it certainly is not kernel programming. Even glibc, which directly uses the kernel interfaces for syscalls (eg, int 0x80 on Linux), is not kernel programming.
No kidding. This guy can write. Very amusing.
I wrote an OS kernel using VMWare. It's actually fairly nice (VMWare, not my kernel :).
The way I worked it is that I wrote my own stupid little program to snarf the significant ELF sections from a Linux-Elf binary and stick them into a simplistic file format. I wanted to do this all by myself (that was the whole point of the thing), so I wrote my own bootloader in assembly (using nasm, a great tool) which would subsequently load up the image from floppy and jump into the C code. Pretty common stuff as far as I can tell. I got somewhat far along (started trying to figure out how to get the network card working - that would have been really interesting) before other projects caught my attention.
It's a very nice environment. I don't know anything else about Bochs or Plex86, but VMWare has this thing where you can specify that the floppy device is actually a file. Greatly cuts down the time on the compile/assemble/boot cycle. One funny thing is that it would ask you to file a bug report whenever you managed to triple-fault (which happens a lot when you're just figuring out the nasty GDTs et al.).
Another nice use for VMWare is setting up four FreeBSD virtual machines, each with 16M of memory and playing networking games (eg, try to write your own distributed filesystem) when you don't have access to private network (eg, on vacation with the laptop - no Internet connection, you get more work done).
I'm very happy with VMWare. You should definitely try it out, especially if you can manage to get the educational discount.
Minor quip: the "DR" in DR-DOS stands for "Digital Research" as far as I can tell, so I'm not certain that "Dr. Dos" is kosher.
I personally like using more than one compiler/libraries just because it makes my code more portable, and it catches dumb mistakes. I usually develop on FreeBSD with gcc, but I'll occasionally I'll compile on a Linux/glibc or Solaris box (using Sun's cc, not gcc), just to make sure I'm not including the wrong header or something.
I have this old Sparcstation 4 running SunOS 4.1. I don't use it for anything vital, but I just like playing with it for nostalgia purposes. Lots of stuff won't compile on it, even using gcc. People sometimes just compile some software for Linux and assume it will work everywhere - I kind of feel sorry for those that have to use HP/UX or AIX, as I know those guys are going to have all kinds of problems.
In short, I agree that the minimal performance gain isn't useful, but portability is important.
From your post, I understand your general attitude and I can sense the sarcasm. However, I cannot, for the life of me, understand your "candy raver" reference.
Apparently, this is what a candy raver is. This required some Googling. If you insist on stereotyping me, I prefer being known as someone who looks and dresses extremely "corporate," but who has all sorts of left-wing political/social tendencies, perhaps with a bit of the wine-drinking, cigarette-smoking, dress-in-black schizoid Existentialist pseudo-intellectual on the weekends.
So, yeah, I don't get it.
Thanks - I actually appreciate that. It's funny how some people get truly irate when you try to correct their writing on Slashdot.
I'm just glad it was some smaller error, rather than some blatant, idiotic mistake, as I'm talking about all these linguistic gifts and whatnot.
I really like it. It's short and most Americans will figure it out even with zero knowledge of French (the word "liberty" will come to mind). It also avoids any amerigo-centrism (just made up that word) and can help attract non-american users and programmers (which is really the area that this movement should be focusing on right now IMHO). There is absolutely no ambiguity and it immediately distinguishes this movement from encumbered freeware (like KaZaA) and "Open Source," by giving the ideological slant immediately. Also, linguistically, it has an advantage that the adjective goes after the noun and so, in English, it will always remain a proper noun, which further disambiguates it.
My original thought was "Unemcumbered Software" but that's clunky and it rolls off the tongue in all sorts of wrong ways.
un homme libre
un logiciel libre et gratuit
Veuillez voir ici et ici.
We need someone who understands the art of marketing - the art of diplomacy, rhetoric, whatever you want to call it. Part of this includes choosing good names for projects and concepts. "GNU/Linux" is a horrible name. "Free Software" is even worse. His insistance on spreading the MIT-centric idea of what the word "hacker" is supposed to mean is incredibly counter-productive. Changing the way people think involves changing the way they speak, but attempting to redefine new words does not work, especially in the most critical first stages of a movement.
"Hacker" means criminal to everyone outside our movement and associating yourself with this word is not the way to spread your ideology. The operating system that runs Slashdot and Google is known as "Linux" to everyone outside our movement, and changing that only spreads confusion.
The one that really bothers me is "Free Software." Here, the capitalization makes the difference between respected projects such as GCC and the crap shareware you'll find on tucows.com. I completely understand the whole "gratuit" vs. "libre" thing, being an amateur linguist and having read most of the FSF's philosophy. I can understand that "Free" and "free" are supposed to mean different things, but I don't like it.
What if I'm talking to someone? Much business is done over the telephone or through face-to-face meetings, not through email. With email/usenet/etc. it's easy to spot the difference between "Free" and "free", but what if I want to tell my boss that the new proxy server I installed is "Free"? Do I say:
(a) "It's Free software, as in free-with-a-capital-eff.", or
(b) "It's Open Source."
(A) will lead only to confusion because my boss doesn't care about the tiny differences between copylefted and Free-but-copyrighted software. Don't fool yourself into thinking that (a) will lead to a discussion about the nature of Free software; the business world is not academia, and has little patience for discussions which (seemingly or in reality) do not affect the bottom line.
Look at DivX versus DivX ;-). Look it up on Google if you don't
know the difference between the two (hint, the punctuation makes
all the difference). Now that DivX ;-) has become popular and DivX
is dead, the DivX ;-) people are trying very hard to break away
from their old name. What was initially a bad pun has become the
bane of this company attempting to sell their codec. Don't look
at this example from a Free software standpoint; the example is
just meant to show how a bad name can hinder the acceptance of a
codec/idea.
We (computer professionals or hackers if you insist) linguistically think much differently from most people. To me, puncuation and capitalization are as important as words. Compare:
(c) "DivX" to ;-)", and
(d) "DivX
(e) "find name copying and print" to
(f) "find / -name COPYING\* -print"
You and I know that (e) is gibberish and (f) is correct/useful, but Joe Schmoe only knows that (e) is "easier" than (f). Joe Schmoe has to "remember" (f) in its entirety in order to use it; he has difficulty deconstructing it into its component pieces and then reconstructing the pieces together again the next time the command must be used. Those of us linguistically gifted (all good programmers) do this instinctually, so we have little difficulty figuring out "DivX" versus "DivX ;-)" and "Free" versus "free". Most people
don't have the time or patience to do this.
This has nothing to do with ideas; it's all about marketing. Microsoft has some of the best marketing people, so we would do well to take an example from Redmond. Why did Microsoft change Windows NT 5.0 to Windows 2000? Joe Schmoe thinks like this:
"Oh, 5.0, but I'm already running 98, so is that an upgrade?"
"Oh, they came out with Windows 2000, and I'm only running 98."
"Oh, I can get IE for free, so it doesn't mean anything that Netscape is now free software."
"Oh, Netscape is now Open Source, so I'll download it because it gives me more freedom than IE."
In this case, Microsoft was deliberately trying to create confusion to increase the acceptance of NT 5.0. We have no interest in deliberately creating confusion (right?), so we should have a name for our software that immediately and succintly distinguishes it from gratis-but-encumbered software. Go to tucows.com and you'll see that most people (most people run windows) interact with gratis-but-encumbered software much more often than Free software.
Let's look at Microsoft's marketing strategy with NT 5.0 versus 2000 again. Syllabically, we have:
win-dows en-tee five-point-oh
win-dows two thou-sand
The renaming cut out three syllables. Coincidence?
Also, look at the components of the words:
2000
NT 5.0
The first is a simple year (easy to remember), while the second is an obscure acronym combined with an obscure version number.
When my mother first took some computer classes, she came back home to ask me what version of Windows her PC was running. I replied "Windows 3.1." (I cut my teeth programming with Borland C++ 3.0 on MS-DOS 5.0/Windows 3.1.)
She said, "No, that's not right. What version of Windows is my PC running?"
Me: "3.1."
Mom: "No, that's not a version of Windows."
Me: "Yes it is."
Mom: "Then what version of Windows is the PC at work running?"
Me: "Some are Windows 98 and some are NT 4.0."
Mom: "???"
Me: "Microsoft's versioning schemes divulged with the release of 'Chicago', aka. Windows 95. Whereas versions of Windows prior to Windows 95 were simply given a version number, Windows 95 and later were given a common name which refers to the year of intended release in addition to a normal version number. Thus, Windows 95 is in actuality Windows 4.0 and Windows 98 is Windows 4.5. Windows NT, on the other hand, is a completely separate product line. Windows NT 3.5 was the contemporary of Windows 95 and Windows NT 4.0 is the contemporary of Windows 98."
Mom: "So what version of Windows is my PC running?"
Me: "Umm...Windows 93."
The point of this who's-on-second? People want brevity and clarity, not philosophy or linguo-technical mumbo-jumbo.
In short, we need a name for our movement that:
No, no, no...you've got it all wrong. You obviously don't understand anything about how the American education system works (wink, wink).
College is were you're supposed to learn this stuff. This is why virtually all serious four-year universities in the US have what they call a "core" requirement (I'm thinking Ivy League schools and their peers). Basically, you spend your first two years of college writing papers on literature, political philosophy and history. You might also get in a couple math classes.
Your third and fourth year of college is where you start taking only relevant classes.
Some people call this "liberal" or "liberal arts" education. It's funny because the US is the only country I know of that follows "the great European tradition of liberal education." I don't know of too many foreign universities with a "Great Books" program. French and German engineers don't have to take political philosophy courses in college. In fact, they probably won't take any polisci in the last couple years of high school.
Now, you try to get into a math grad school in the US with your BS and good grades, and you'll have a good chance; but why? Because schools can only take so many Hungarian and Romanian mathematicians who've actually been doing mathematics since high school.
But I digress; your question was about what you're supposed to learn in high school. As far as I can tell, the answer is nothing. You're supposed to spend high school "developing your individuality" through "extra-curricular activities," such as driving to McDonald's and playing sports.
When I was in University, I took some French writing classes. Being a CS/Math guy, I did all my papers in LaTeX. I even wrote scripts to translate my ISO-8859-1 text that I input using Emacs to standard LaTeX escape characters, since I didn't want to have to deal with Babyl.
However, this teacher wanted Word documents. So I installed Word 2000 on my laptop under VMware. Word didn't like how my text had line breaks - it expected no line breaks within a paragraph. So I wrote another script to translate my normal text into this one-line-per-paragraph format (there's also an emacs mode that does this automatically, but I didn't bother with that). So, I eventually got it so I could just copy over a text file, import into Word, change the style of the whole thing from 'plain text' to 'normal' and send it off.
Then I discovered Word's spelling and grammar check. I had given up on these for English documents long ago since it can't handle anything more complicated than Hemingway, and my writing looks more like Hawthorne.
Word's grammar check for French is amazing. Half my papers needed to be emailed and were done in this hybrid write-in-emacs import-to-word-and-grammar-check fashion, and half my papers were just written in Emacs/LaTeX. I received better grades on the papers that had gone through Word's grammar check.
Now, my French isn't horrible, but, like most non-native speakers, I have lots of problems remembering gender; this isn't really a grammar problem (I know my grammar), but more of a vocabulary problem, since there are a lot of words whose gender you just have to memorize (you can also figure out a lot of words just by their endings, but not all words). Word would catch all of these errors - not just the really simple stuff like articles, but also making adjectives agree when they were in a completely different part of the sentence than the object. It's actually quite impressive.
I still used Emacs to write my documents, just because I can't stand this idiotic point-and-click editing (I have to use the arrow keys to move the point!?). I had also gotten used to Mule's 'french-postfix' input method, and I couldn't get used to the weird azerty keyboard layout in Windows.
Honestly, I completely hate Word, and all other "word processors," and would rather avoid them if at all possible. If someone could write a unix command-line grammar check that's as good as Word's, I would be very happy. If someone else could incorporate into Emacs, like how ispell works with flyspell-mode, I would be even happier.
Watch fireball toad hop away until the flame burns through the skin and then KABOOM.
Oh. My. God. That has got to be the sickest and most creative thing I've ever heard kids do.
Though I've seen them suck their guts back in and hop away. They're kind of tough!
Now you Aussies are really scaring me. Gotta visit that place sometime.
I've just ordered the movie from Amazon. Should make a great thing to watch on the weekends with friends and beers. I cannot simply allow such a cultural phenomenon go unnoticed.
You could combine these ideas: get a bunch of old boxen, put Linux on them, get them a FAST network connection (network will probably be the bottleneck here), create accounts for your 1000 users (or be creative and use pam_ldap, pam_samba, whatever is appropriate for your environment) and have them run an X server on their PCs. You might try cygwin's compile of XFree86. It's actually decent, although it's not rootless. I don't know what the prices are for eXceed or other commercial X servers, but XFree86 under cygwin is OK and the price is right.
If you go with cygwin, you can cut the Linux boxen out of picture (definitely a good idea). I don't believe x3270 comes with cygwin, but it should compile OK (I haven't had any problems compiling fairly complex X stuff under cygwin). Installing cygwin company-wide shouldn't be too much of an issue as the install just copies some files and runs one shell script to create /etc/passwd after installation.
But yeah, if you're looking for a free native NT client, I haven't found one. All the places I've worked at that have these mainframes (a total of two) actually paid for their clients. I don't know if there will ever be one, since the communities of old mainframes and windows shareware are worlds apart.
This guy got a +1 Informative for this:
-Just In Time assembling (JITa)
-pipeline overflow caching
-memory protection beyond the 4 MB barrier
-interlaced object replacement with error redundancy cycles
He just made that all up. Memory protection beyond the "4 MB barrier?!" Lol. This is classic, really.
An essential difference between engineers and politicians or marketing droids. Refreshing, really.
Just curious, did you write this ahead of time, or did you actually type this into the little textarea on the submission form? I ask because this has all the parts of a good essay.
Another thing I've noticed is that most good *nix programmers do indeed check for out-of-memory errors (eg, they always check return value of malloc), but their error handlers aren't all that great.
My usual way of dealing with out-of-memory is to propagate the error back up the call stack until someone really wants to deal with it. Most times, dealing with it just means printing an error and dumping core.
It may be that us *nix programmers are used to good virtual memory implementations where it's really hard to run out of memory, whereas the Windows/MacOS programmers have actually had to deal with these issues directly. Not sure.