The Bugzilla bug-tracking system is sooo cool it makes you want to file bug reports just so you can play with it.
Why, you can even vote for your favorite bugs to determine which ones should be fixed prioritarily. I voted for bugs 4722 and 27505. I encourage Slashdot readers to give the Lizard a try and to file bug reports (or at least to votes for the ones you find more troublesome rather than complain about them here).
These questions have been so often repeated, rephrased and turned around that I do not believe anything new can come of them.
The best possible book about the mysteries of consciousness is, IMHO, The Mind's I by Doug Hofstdater and Daniel Dennet. I do not want to dwell upon how great that book is, so I will merely say that I find it equal, if not superior, to GEB.
On the other hand, I think any attempt to explain the mysteries of consciousness by using quantum mechanics is not misguided, but simply misses the point completely.
Also try this text for an idea of the amount of nonsense that can be said about the subject.
Obviously you cannot sue the United States before any human court in this world. France can sue the United Kingdom in a court of the European Union, but it cannot sue the United States. The United Nations have been able to set up tribunals, notably to judge war crimes such as those that were committed in Bosnia, but it evidently cannot judge a state that is permanent member of the security council.
Only one court has been able to judge and condemn the United States, and that is the Russell Tribunal, during the Vietnam War. The Tribunal had no authority other than moral, but it did have very much prestige, and its role in bringing out fact to the public eye was of great importance.
This story about France sueing the US and the UK is a farce. However, it may be possible for a small group of individuals with enough prestige (say, the Electronic Frontier Foundation) to set up a special tribunal to judge that sort of matters. The tribunal's verdicts would not lead to any kind of punishment, but they would lead to public awareness, which is, after all, the most important thing.
While writing an article in slashdot is a good idea, most of us are probably already aware of this issue (personally not only I use almost no images in my web pages, but I also take the trouble to use a <span lang="..."> tag whenever I introduce a quote in a foreign language, so that a text to speech translator could presumably make the right decisions; and when I'm not too lazy, I even use the <abbr> quote for abbreviations — anyway, here is not the place to brag about my HTML coding style).
I think you should contact the W3 Consortium instead. This sort of thing is precisely their raison d'être. They have written many advocacy documents and editorials on similar subjects, and they probably have one targeting this precise problem. The moral authority of the W3 Consortium, although thin, is still stronger than an individual's, and they might have a better chance to convince a reluctant webmaster.
I wish a little more attention were paid to the status of Unicode in the various web browsers.
Consider for example this Unicode test page I wrote. While it is acceptable for a browser not to have the appropriate fonts for the rendering of Sanskrit (the Devanagari alphabet, one of the most complex parts of Unicode, together with Arabic, because of the ligatures and the reversal of position of the vowel i), it should at least offer a transcription of it: yes, there are quite a few million people in the world who use the Devanagari alphabet (it is used in Hindi). Also, the fact that the different kinds of spaces are generally not correctly displayed is quite inacceptable.
Perhaps Unicode status does not attract much attention because of the erroneous belief that Unicode is not useful for typesetting English texts. That is wrong: the em-dash, the en-dash, the English quote characters (as opposed, e.g. to the French quote characters), the ellipsis, and various similar punctuation characters are not found in the standard ISO-8859-1 character set but only in ISO-10646/Unicode.
Netscape is probably the worse of all (though the little I have seen of w3m indicates that it tries hard to compete with it). For example, it selects the display font according to the document encoding, which is an absurdity, in contradiction to the fact that all web pages are ``at the bottom'' in Unicode (and all Unicode characters are always accessible through the &#xxxx; encoding, whatever the document character encoding). The (related) fact that Netscape does not recognize — and such has always driven me out of my wits. Amaya, despite the fact that it is the W3C's own web browser, used to be quite bad at Unicode; it has made much progress recently (but I think it still cannot use an ISO-10646-1 font even if you have one). Mozilla is also still incomplete in this respect. Lynx and Links are both quite good. In fact, Lynx in a UTF-8 xterm (compiled with --enable-wide-chars) with a fixed-width ISO-10646-1 font is still the best we have in the matter of a true Unicode web browser; but since UTF-8 breaks ncurses, it will sometimes behave strangely; and the combining diacritics, which have to be handled specially, are not so.
We are still very far from the beautiful rendering I show as png images on the test page I mention above. Sigh.
There are several kinds of obfuscation. The ones you generally see in IOCCC's, e.g. using one-letter variable names, formatting in bizarre ways, making abstruse use of CPP, and so on, are IMHO far less interesting than true algorithmic obfuscation.
Some obfuscation is easy to produce algorithmically. For example, it is easy to have a program that will parse a C listing, replace variable names by things like O0O0Ooo, make white space come out in strange ways, and so on. Or, compile the program using gcc -O6, take the assembler output, and decompile it in an obvious way.
Much more interesting, I find, is the more ``algorithmic'' kind of obfuscation, where identifiers are not deliberately unclear, but where the overall pattern of execution is difficult to follow. Take the following Scheme example, and try to understand how it works: then you will see what I mean:
There are programming languages where nearly every program is obfuscated (in both ways I descibed!), and it is very difficult to write one which is not. One such language I invented is Unlambda.
Is there some valid reason, though, why GTK couldn't read both a GTK-specific configuration file and X resources, with the former having precedence? That seems like the obvious compromise.
Yeah, this proposal is AI complete. As a matter of fact, it is more or less exactly a Turing test.
But then, the Turing test can be passed with some success on unsuspecting examinators, for some time at least. When the Doctor program was written (see for example M-x doctor under Emacs), some people were fooled for some time. IRC would be a likely place to fool people. Usenet - or Slashdot - even more so, because the conversation delay makes it even easier to stick a lot of coined phrases without being spotted out. (How many karma points could a Slashdot robot collect? That's an interesting question.)
Douglas Hofstadter, in ``Metamagical Themas'' has an interesting example of a Turing test transcript, in which he was almost fooled - not quite the way you'd want it, but the transcript is really fun reading.
-- Assertion "signature!=NULL" in ai/output/slashdot.c at line 1729 failed (core dumped).
Didn't we already have this discussion a while ago? Doesn't this page ring a bell? (I even won quite a few karma points at the time. Maybe I should cut'n'paste my comments of the time to gain some more; but I won't 'coz I'm too honest.)
Anyway, this explains why we're suddenly seing an unusual amount of traffic on the help-hurd mailing list.
I have no sympathy for Motif, but I do like the X Toolkit Intrinsics very much. The Xt Intrinsics are, IMHO, a very elegant, flexible and extensible meta-widget system. Unfortunately, apart from the (small is beautiful) Athena Widget set, the Xt Intrinsics have no satisfactory widget set. Already Motif does not follow many Xt conventions.
Now why did GTK have to go around and reinvent the wheel? Couldn't they have used Xt? All right, Xt doesn't exist for Windows, but wouldn't it have been possible to use it when it does, or implement some kind of Xt replacement for Windows, or some such thing? All right, maybe they had their reasons, but is there some end to this idea that the wheel must be reinvented every damn time you want to build a cart?
The practical consequence of GTK not using Xt is that you can't configure your GTK apps with X resources. What the fsck? X resources are a nice, standard, elegant and pleasant way of configuring programs that use the X Window System. Is there any valid reason why GTK should choose to break this? Why is it that adding gimp*font: fixed to my X resource database doens't work as I expect it? Oh yeah, there's supposed to be a.gtkrc file or some such thing. Where's the doc for this thing, again? Uh...
All right, I don't know very much about the configurability of this GTK thingy (partly because I couldn't find the doc for it). Maybe it has the same nice features and the same power as X resources. And probably I'm bitter because I spent so long learning about the difference between XTerm.VT100.translations and xterm.?*Translations, or that sort of hair-splitting. And because I paid a fortune for those now worthless ``Definititive Guides to the X Window System'' by O'Reilly. So, maybe I am bitter. But breaking everything and making me relearn what I had thought learned for good, is unfair too.
Naturally, in an Ideal World, a given program would not depend on a particular toolkit. Rather, it would simply provide a set of first-class methods that you would attach to whatever you wanted. But then, in an Ideal World, there would be no difference between a ``program'' and a ``function'', either... Oh, never mind, I'm just ranting.
Last time I tried GTK (that was, admittedly, quite some time ago), it wasn't fully thread-safe, so I dropped it (Xt and Athena Widgets, at the time, were completely reentrant). Has this changed since?
Aren't we supposed to live in a century where the physical stuff, the Real World and all that, are no longer of importance? Isn't information supposed to be the key to everything?
In other words, why do ``young and highly skilled engineers'' need to immigrate so as to be employed? Can't they work cozily from their homes in some distant part of the world, while their employers are in the States - or nowhere, as it may be, because why would a company need a physical place of residence?
-- Ooops, sorry. The twenty-first century is only about to begin; I thought it was nearly ending. Little mistake. Edwin! You sent us a hundred years back, please correct that immediately!
SCOOP: Finland isn't a third world country. And they have electricity there. Why, they even have... the Internet!
Ain't these times wonderful?
-- This signature is provided in the hope that it will be useful, but WITHOUT ANY WARRANTY. Without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
A good point. But honestly I don't think this will be a problem in 20 years. More recent standards like DVD look like they're going to maintain upward compatibility with CD-ROMs. A hundred years might be more of a problem, but hopefully, within a hundred years, there will be ample time to transfer the data to a newer format.
Is the product capacity times lifespan divided by price. For a CD, you have something like 5*10^10 o.yr/$ (that's a byte-year-per-dollar). For printed paper, it's maybe 3*10^5 o.yr/$, so we've definitely made some progress. Floppies are utterly worthless, by the way: nowadays, they survive about one week before going bad. Anyone care to calculate how much a tape is worth, by this standard (I don't know how much they cost)?
From what I've understood, the lifespan of a CD-R is around 20yr for those which are based on cyanine or AZO (and which appear blue or blue-green when you look at them) and around 100yr for those based on phtalocyanine (which appear golden to the eye).
Of course, it depends very much on the way you treat those CD. If you put one in a light-free, dust-free, safe deposit box, it can probably survive several kyr (uh, thousands of years) without damage.
The unfortunate thing, however, is that because the error correcting codes work so well, it is not always easy to tell that a CD has begun noticeably deteriorating until the data is actually unreadable, and then it is too late. It would be nice if the drives could return some sort of ``CD quality'' status.
I always write down (on paper) the md5 fingerprint of the raw ISO image when I burn a CD. In that way, I can be sure whether I have pristine data yet. (And if I make copies, I can be sure the copy is exactly identical to the original.)
This information is provided in the hope that it will be useful but WITHOUT ANY WARRANTY. Without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
What exactly does ``unstable'' mean? Or, more accurately, what does ``stable'' mean? The 2.2.13 and 2.2.14 kernels (supposedly ``stable'') have rather nasty inode leaks. And 2.2.11 and 2.2.12 had a memory leak (which is why SGI based their SGI Linux 1.1 kernel patch on 2.2.10). Hmm... Looks like stability ``leaves somewhat do be desired''.
Featurefulness perhaps? Well, one patch I find extremely useful is the ext3 filesystem. (Now that seems stable enough, despite the frightening version number: 0.0.2c) But Stephen Tweedie hasn't finished porting that to 2.3.x. Another useful patch is the international crypto patch, and that doesn't come for 2.3.x... Or the Openwall security patch: ditto. Hmm... Looks like I'll stick to 2.2.x for some time. (And, no, it isn't exactly ``warm and cozy''.)
I'd like to try the 2.3.x kernels by using User mode Linux, but so far the only thing I've got from that is a core dump.
The classical solution would be to watermark the code. Now I really don't know if any techniques are known for watermarking source code in a way that the watermark will still appear in the compiled code. (Watermarking compiled code is a now pretty well established technique.) Especially if the source is to be free (as in speech).
I can suggest a solution that uses obfuscation techniques, but that isn't too intrusive either (in that it doesn't break the modularity of the code too much). The idea is this: somewhere in the code you define a const char copyright = "Copyright (C) 2000- by Me and co". Now you calculate the md5 fingerprint of this string, as well as this string with a few simple strings appended. This will give a few dozen bytes of essentially random data, which can then be combined in various ways (added, XORed, and so on) to give many different constants. Now, you take a hundred places in the code where you have used an absolute constant (like ``42'' - or even ``1'' or ``2'': these happen often enough), and you replace this constant by a computation based on the md5 sums which will yield that constant. Use a different one each time. That takes some work, and it is a disagreeable form of obfuscation (I surely don't like it), but it probably would work. To reuse the code, you either need to include the copyright string (or at least store it in some form so that it will appear in memory at some point, giving a proof of theft), or you need to go through each and every place where a constant has been obfuscated, calculate the md5 strings, and replace by the constant (that is doable, but it requires a lot of effort). So in effect you have a kind of watermark.
I restate that I don't like this idea at all. But that's the best I can think of, to prevent theft of an open source code.
Before Slashdot turns into a beehive of apprentice philosophers about the question ``is it me if my brain is copied inside a computer?'', take the time to read, reread or at least consider reading ``The Mind's I'' by Doug Hofstadter and Daniel Dennett (Fantasies and Reflections of Self and Soul). There could hardly be a better written book on the subject. Also of related interest is ``The Society of Mind'' by MIT AI lab's cofounder Marvin Minsky.
Personally I don't believe in the workings of the human brain being replicated by a computer in the near future, but I do believe the philosphical questions raised by that possibility are of interest.
What probably saves Linux most is that most users do not run programs they own, but root-owned programs. Moreover, there is a barrier between users, as well as between the users and root, which makes it hard for viruses to spread even within the system (let alone between systems).
However, users generally have a bin/ directory to which they have write access; they also have shell startup files (``dot files'') and the like. All these things could be contaminated by viruses running at the user level. The difficulty of leaping from one user to another still exists, but if some users have ``.'' in their path, putting an infected binary in/tmp might do the trick.
Many users carelessly download binary packages off the web and install them as root (possibly even running an install script as root). That is extremely dangerous.
Many programs come in source code, true. But: how often do you get a cryptographic signature with the source code? How often do you check the signature? Do you review the code before compiling it? How do you know the compiler doesn't have a back door (àla Ken Thompson)? (All right, this is far fetched.)
Even extracting a tar archive as root, something you probably do often without thinking, is dangerous. It is possible to write an archive which contains a file foo that symlinks to/bin/sh and then the same file foo containing the contents you want to replace/bin/sh by. I am drifting away from the subject of viruses to security holes in general, but this is an important fact people are seldom aware of.
In theory, a luser cannot become root. In practice it is, in many cases, not so difficult. That is: Unix has two security barriers, one between ``not logged in'' and ``luser'' and one between ``luser'' and ``root''. The real security system lies in the first barrier, not the second. (You have seen ``hack this box'' contests: have you ever seen ``become root on this box, we give you an account'' contests?) So actually, a virus probably could spread throughout the system. In that case, the centralized, multi-user nature of the system would make things more dangerous.
Unix lacks flexibility in the question of security. Access Control Lists, capabilities, virtualization, are being introduced, but only slowly, and they remain distinctly alien to the entire philosophy. Contrary to more advanced systems, like the Hurd, Unix/Linux does not have the possibility of creating a virtual shell around a program, to prevent it from doing harm (well, there is ``user mode Linux'', but that is still very experimental). A luser cannot split its rights, call a program with limited rights. Heck, you are not even allowed to su to nobody if you are wary of a certain program! All this makes the viruses' life easier.
However, Unix has a few nice features. One is the strace function call. I tend, when I run an alien binary program for the first time, to systematically strace it to see which files it opens. While that does not remove the possibility of viruses, it somewhat reduces it, because something so blatant as open("/home/me/bin/sh", O_CREAT) would jump to my eye immediately.
Also, Unix/GNU does not have the ridiculous misfeatures that made the Melissa virus possible. No mailer will unconditionally execute something found in the mail. Even xterm control sequences are rather safe (I do not think it is possible to pirate an account with cat in an xterm).
I think the greatest asset of Linux in this domain is its heterogeneity. All Linux distributions are different. Many people have custom kernels, and so on. See: even for legitimate purposes it has often been a pain (you need an a.out/libc4, an elf/libc5, a glibc/libc6 and a glibc2.1 version of the same binary and so on). So imagine for a virus? Madness.
Nothing is ever completely safe. The virus situation in Linux will probably worsen in times to come. But even then, it will certainly always remain better than under a Microsoft operating system.
...about the US legal system. Hadn't the DVD CPA already filed for a preliminary injunction, and lost? Are they allowed to ``play again'' as often as they want? I mean, isn't there something somewhere about ``non bis in idem''? I know this is but a preliminary injunction, but it is considerably unfair if they're allowed to go to as many judges as they want and demand an injunction from each of them. Sooner or later, of course, some judge will agree.
Or, to say things differently: one judge said it was all right to have DeCSS code on line (until further trial), and one judge said it wasn't. Why does the second judge's ruling prevail? Why is it an AND boolean operation and not an OR?
<rant>All right, hackers frequently don't understand the law. This statement, true as it is, does not criticize hackers: it just shows that the law is stupid. (Unfortunately, it is just as stupid in every country; it is merely differently stupid.)/rant>
``Money has no odor.'' This is a famous remark, first made by the Roman emperor Cesar Vespasian to his son Titus: Vespasian had invented a tax on urin (probably meaning, on the use of public toilets in Rome), and Titus complained that this was somehow ``unclean'' money. So Vespasian took a handful of sesterces, put it under Titus' nose and asked him: ``what do you smell?''. ``Nothing'', answered Titus. ``Exactly,'' replied Vespasian, ``money has no odor.''
The Bugzilla bug-tracking system is sooo cool it makes you want to file bug reports just so you can play with it.
Why, you can even vote for your favorite bugs to determine which ones should be fixed prioritarily. I voted for bugs 4722 and 27505. I encourage Slashdot readers to give the Lizard a try and to file bug reports (or at least to votes for the ones you find more troublesome rather than complain about them here).
These questions have been so often repeated, rephrased and turned around that I do not believe anything new can come of them.
The best possible book about the mysteries of consciousness is, IMHO, The Mind's I by Doug Hofstdater and Daniel Dennet. I do not want to dwell upon how great that book is, so I will merely say that I find it equal, if not superior, to GEB.
On the other hand, I think any attempt to explain the mysteries of consciousness by using quantum mechanics is not misguided, but simply misses the point completely.
Also try this text for an idea of the amount of nonsense that can be said about the subject.
Obviously you cannot sue the United States before any human court in this world. France can sue the United Kingdom in a court of the European Union, but it cannot sue the United States. The United Nations have been able to set up tribunals, notably to judge war crimes such as those that were committed in Bosnia, but it evidently cannot judge a state that is permanent member of the security council.
Only one court has been able to judge and condemn the United States, and that is the Russell Tribunal, during the Vietnam War. The Tribunal had no authority other than moral, but it did have very much prestige, and its role in bringing out fact to the public eye was of great importance.
This story about France sueing the US and the UK is a farce. However, it may be possible for a small group of individuals with enough prestige (say, the Electronic Frontier Foundation) to set up a special tribunal to judge that sort of matters. The tribunal's verdicts would not lead to any kind of punishment, but they would lead to public awareness, which is, after all, the most important thing.
While writing an article in slashdot is a good idea, most of us are probably already aware of this issue (personally not only I use almost no images in my web pages, but I also take the trouble to use a <span lang="..."> tag whenever I introduce a quote in a foreign language, so that a text to speech translator could presumably make the right decisions; and when I'm not too lazy, I even use the <abbr> quote for abbreviations — anyway, here is not the place to brag about my HTML coding style).
I think you should contact the W3 Consortium instead. This sort of thing is precisely their raison d'être. They have written many advocacy documents and editorials on similar subjects, and they probably have one targeting this precise problem. The moral authority of the W3 Consortium, although thin, is still stronger than an individual's, and they might have a better chance to convince a reluctant webmaster.
I wish a little more attention were paid to the status of Unicode in the various web browsers.
Consider for example this Unicode test page I wrote. While it is acceptable for a browser not to have the appropriate fonts for the rendering of Sanskrit (the Devanagari alphabet, one of the most complex parts of Unicode, together with Arabic, because of the ligatures and the reversal of position of the vowel i), it should at least offer a transcription of it: yes, there are quite a few million people in the world who use the Devanagari alphabet (it is used in Hindi). Also, the fact that the different kinds of spaces are generally not correctly displayed is quite inacceptable.
Perhaps Unicode status does not attract much attention because of the erroneous belief that Unicode is not useful for typesetting English texts. That is wrong: the em-dash, the en-dash, the English quote characters (as opposed, e.g. to the French quote characters), the ellipsis, and various similar punctuation characters are not found in the standard ISO-8859-1 character set but only in ISO-10646/Unicode.
Netscape is probably the worse of all (though the little I have seen of w3m indicates that it tries hard to compete with it). For example, it selects the display font according to the document encoding, which is an absurdity, in contradiction to the fact that all web pages are ``at the bottom'' in Unicode (and all Unicode characters are always accessible through the &#xxxx; encoding, whatever the document character encoding). The (related) fact that Netscape does not recognize — and such has always driven me out of my wits. Amaya, despite the fact that it is the W3C's own web browser, used to be quite bad at Unicode; it has made much progress recently (but I think it still cannot use an ISO-10646-1 font even if you have one). Mozilla is also still incomplete in this respect. Lynx and Links are both quite good. In fact, Lynx in a UTF-8 xterm (compiled with --enable-wide-chars) with a fixed-width ISO-10646-1 font is still the best we have in the matter of a true Unicode web browser; but since UTF-8 breaks ncurses, it will sometimes behave strangely; and the combining diacritics, which have to be handled specially, are not so.
We are still very far from the beautiful rendering I show as png images on the test page I mention above. Sigh.
What was it that Benjamin Disraeli (already then!) used to complain about? Oh yes:
--
``Plus ça change, plus ça reste la même chose.''
There are several kinds of obfuscation. The ones you generally see in IOCCC's, e.g. using one-letter variable names, formatting in bizarre ways, making abstruse use of CPP, and so on, are IMHO far less interesting than true algorithmic obfuscation.
Some obfuscation is easy to produce algorithmically. For example, it is easy to have a program that will parse a C listing, replace variable names by things like O0O0Ooo, make white space come out in strange ways, and so on. Or, compile the program using gcc -O6, take the assembler output, and decompile it in an obvious way.
Much more interesting, I find, is the more ``algorithmic'' kind of obfuscation, where identifiers are not deliberately unclear, but where the overall pattern of execution is difficult to follow. Take the following Scheme example, and try to understand how it works: then you will see what I mean:
(((lambda (foo) (newline) foo)
(call-with-current-continuation (lambda (bar) bar)))
((lambda (foo) (write-char #\*) foo)
(call-with-current-continuation (lambda (bar) bar))))
There are programming languages where nearly every program is obfuscated (in both ways I descibed!), and it is very difficult to write one which is not. One such language I invented is Unlambda.
Is there some valid reason, though, why GTK couldn't read both a GTK-specific configuration file and X resources, with the former having precedence? That seems like the obvious compromise.
Yeah, this proposal is AI complete. As a matter of fact, it is more or less exactly a Turing test.
But then, the Turing test can be passed with some success on unsuspecting examinators, for some time at least. When the Doctor program was written (see for example M-x doctor under Emacs), some people were fooled for some time. IRC would be a likely place to fool people. Usenet - or Slashdot - even more so, because the conversation delay makes it even easier to stick a lot of coined phrases without being spotted out. (How many karma points could a Slashdot robot collect? That's an interesting question.)
Douglas Hofstadter, in ``Metamagical Themas'' has an interesting example of a Turing test transcript, in which he was almost fooled - not quite the way you'd want it, but the transcript is really fun reading.
--
Assertion "signature!=NULL" in ai/output/slashdot.c at line 1729 failed (core dumped).
Didn't we already have this discussion a while ago? Doesn't this page ring a bell? (I even won quite a few karma points at the time. Maybe I should cut'n'paste my comments of the time to gain some more; but I won't 'coz I'm too honest.)
Anyway, this explains why we're suddenly seing an unusual amount of traffic on the help-hurd mailing list.
As I said, I just made a little mistake by one century. :-(
I have no sympathy for Motif, but I do like the X Toolkit Intrinsics very much. The Xt Intrinsics are, IMHO, a very elegant, flexible and extensible meta-widget system. Unfortunately, apart from the (small is beautiful) Athena Widget set, the Xt Intrinsics have no satisfactory widget set. Already Motif does not follow many Xt conventions.
Now why did GTK have to go around and reinvent the wheel? Couldn't they have used Xt? All right, Xt doesn't exist for Windows, but wouldn't it have been possible to use it when it does, or implement some kind of Xt replacement for Windows, or some such thing? All right, maybe they had their reasons, but is there some end to this idea that the wheel must be reinvented every damn time you want to build a cart?
The practical consequence of GTK not using Xt is that you can't configure your GTK apps with X resources. What the fsck? X resources are a nice, standard, elegant and pleasant way of configuring programs that use the X Window System. Is there any valid reason why GTK should choose to break this? Why is it that adding gimp*font: fixed to my X resource database doens't work as I expect it? Oh yeah, there's supposed to be a .gtkrc file or some such thing. Where's the doc for this thing, again? Uh...
All right, I don't know very much about the configurability of this GTK thingy (partly because I couldn't find the doc for it). Maybe it has the same nice features and the same power as X resources. And probably I'm bitter because I spent so long learning about the difference between XTerm.VT100.translations and xterm.?*Translations, or that sort of hair-splitting. And because I paid a fortune for those now worthless ``Definititive Guides to the X Window System'' by O'Reilly. So, maybe I am bitter. But breaking everything and making me relearn what I had thought learned for good, is unfair too.
Naturally, in an Ideal World, a given program would not depend on a particular toolkit. Rather, it would simply provide a set of first-class methods that you would attach to whatever you wanted. But then, in an Ideal World, there would be no difference between a ``program'' and a ``function'', either... Oh, never mind, I'm just ranting.
Last time I tried GTK (that was, admittedly, quite some time ago), it wasn't fully thread-safe, so I dropped it (Xt and Athena Widgets, at the time, were completely reentrant). Has this changed since?
Aren't we supposed to live in a century where the physical stuff, the Real World and all that, are no longer of importance? Isn't information supposed to be the key to everything?
In other words, why do ``young and highly skilled engineers'' need to immigrate so as to be employed? Can't they work cozily from their homes in some distant part of the world, while their employers are in the States - or nowhere, as it may be, because why would a company need a physical place of residence?
--
Ooops, sorry. The twenty-first century is only about to begin; I thought it was nearly ending. Little mistake. Edwin! You sent us a hundred years back, please correct that immediately!
SCOOP: Finland isn't a third world country. And they have electricity there. Why, they even have... the Internet!
Ain't these times wonderful?
--
This signature is provided in the hope that it will be useful, but WITHOUT ANY WARRANTY. Without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Can you give me your email address so we can discuss this somewhere else than on /.? Else you can write to me.
A good point. But honestly I don't think this will be a problem in 20 years. More recent standards like DVD look like they're going to maintain upward compatibility with CD-ROMs. A hundred years might be more of a problem, but hopefully, within a hundred years, there will be ample time to transfer the data to a newer format.
Is the product capacity times lifespan divided by price. For a CD, you have something like 5*10^10 o.yr/$ (that's a byte-year-per-dollar). For printed paper, it's maybe 3*10^5 o.yr/$, so we've definitely made some progress. Floppies are utterly worthless, by the way: nowadays, they survive about one week before going bad. Anyone care to calculate how much a tape is worth, by this standard (I don't know how much they cost)?
From what I've understood, the lifespan of a CD-R is around 20yr for those which are based on cyanine or AZO (and which appear blue or blue-green when you look at them) and around 100yr for those based on phtalocyanine (which appear golden to the eye).
Of course, it depends very much on the way you treat those CD. If you put one in a light-free, dust-free, safe deposit box, it can probably survive several kyr (uh, thousands of years) without damage.
The unfortunate thing, however, is that because the error correcting codes work so well, it is not always easy to tell that a CD has begun noticeably deteriorating until the data is actually unreadable, and then it is too late. It would be nice if the drives could return some sort of ``CD quality'' status.
I always write down (on paper) the md5 fingerprint of the raw ISO image when I burn a CD. In that way, I can be sure whether I have pristine data yet. (And if I make copies, I can be sure the copy is exactly identical to the original.)
This information is provided in the hope that it will be useful but WITHOUT ANY WARRANTY. Without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
What exactly does ``unstable'' mean? Or, more accurately, what does ``stable'' mean? The 2.2.13 and 2.2.14 kernels (supposedly ``stable'') have rather nasty inode leaks. And 2.2.11 and 2.2.12 had a memory leak (which is why SGI based their SGI Linux 1.1 kernel patch on 2.2.10). Hmm... Looks like stability ``leaves somewhat do be desired''.
Featurefulness perhaps? Well, one patch I find extremely useful is the ext3 filesystem. (Now that seems stable enough, despite the frightening version number: 0.0.2c) But Stephen Tweedie hasn't finished porting that to 2.3.x. Another useful patch is the international crypto patch, and that doesn't come for 2.3.x... Or the Openwall security patch: ditto. Hmm... Looks like I'll stick to 2.2.x for some time. (And, no, it isn't exactly ``warm and cozy''.)
I'd like to try the 2.3.x kernels by using User mode Linux, but so far the only thing I've got from that is a core dump.
Sigh...
The classical solution would be to watermark the code. Now I really don't know if any techniques are known for watermarking source code in a way that the watermark will still appear in the compiled code. (Watermarking compiled code is a now pretty well established technique.) Especially if the source is to be free (as in speech).
I can suggest a solution that uses obfuscation techniques, but that isn't too intrusive either (in that it doesn't break the modularity of the code too much). The idea is this: somewhere in the code you define a const char copyright = "Copyright (C) 2000- by Me and co". Now you calculate the md5 fingerprint of this string, as well as this string with a few simple strings appended. This will give a few dozen bytes of essentially random data, which can then be combined in various ways (added, XORed, and so on) to give many different constants. Now, you take a hundred places in the code where you have used an absolute constant (like ``42'' - or even ``1'' or ``2'': these happen often enough), and you replace this constant by a computation based on the md5 sums which will yield that constant. Use a different one each time. That takes some work, and it is a disagreeable form of obfuscation (I surely don't like it), but it probably would work. To reuse the code, you either need to include the copyright string (or at least store it in some form so that it will appear in memory at some point, giving a proof of theft), or you need to go through each and every place where a constant has been obfuscated, calculate the md5 strings, and replace by the constant (that is doable, but it requires a lot of effort). So in effect you have a kind of watermark.
I restate that I don't like this idea at all. But that's the best I can think of, to prevent theft of an open source code.
Before Slashdot turns into a beehive of apprentice philosophers about the question ``is it me if my brain is copied inside a computer?'', take the time to read, reread or at least consider reading ``The Mind's I'' by Doug Hofstadter and Daniel Dennett (Fantasies and Reflections of Self and Soul). There could hardly be a better written book on the subject. Also of related interest is ``The Society of Mind'' by MIT AI lab's cofounder Marvin Minsky.
Personally I don't believe in the workings of the human brain being replicated by a computer in the near future, but I do believe the philosphical questions raised by that possibility are of interest.
...about the US legal system. Hadn't the DVD CPA already filed for a preliminary injunction, and lost? Are they allowed to ``play again'' as often as they want? I mean, isn't there something somewhere about ``non bis in idem''? I know this is but a preliminary injunction, but it is considerably unfair if they're allowed to go to as many judges as they want and demand an injunction from each of them. Sooner or later, of course, some judge will agree.
Or, to say things differently: one judge said it was all right to have DeCSS code on line (until further trial), and one judge said it wasn't. Why does the second judge's ruling prevail? Why is it an AND boolean operation and not an OR?
<rant>All right, hackers frequently don't understand the law. This statement, true as it is, does not criticize hackers: it just shows that the law is stupid. (Unfortunately, it is just as stupid in every country; it is merely differently stupid.)/rant>
``Money has no odor.'' This is a famous remark, first made by the Roman emperor Cesar Vespasian to his son Titus: Vespasian had invented a tax on urin (probably meaning, on the use of public toilets in Rome), and Titus complained that this was somehow ``unclean'' money. So Vespasian took a handful of sesterces, put it under Titus' nose and asked him: ``what do you smell?''. ``Nothing'', answered Titus. ``Exactly,'' replied Vespasian, ``money has no odor.''
Moderate this post up! How terribly insightful!