But, what is this talk of writing it in Postscript? Are you nuts? Have you ever scene Postscript? It was not built to be edited by hand by any means. Me thinks you are crazy.
Well, maybe I'm crazy. I used to do a lot of coding directly in PostScript. (I also used to use NeWS, when X11 was still relatively new.) At one point, my resume was written entirely by hand in PostScript, and I thought it was perfectly readable. Computer-generated PostScript usually isn't readable, but is that really a surprise?
I had drifted away from PostScript programming for a few years, but I'm starting to play with it again because I recently bought an HP LaserJet 4050 with a builtin PostScript interpreter. (For example, I wrote some simple PostScript code to print videotape labels.)
Well-written PostScript is actually pretty fun to work with. I wouldn't want to hack generated PostScript without a compelling reason, however.
I doubt this problem can be fixed. The entire premise of the GPL is that a derived work can be subject to its restrictions. Yes, a Linux driver that was converted to Solaris-x86 form is clearly a derived work and subject to the GPL if the original driver was.
The problem I see is that the Solaris operating system has a device driver interface that was developed completely independently of any GPL'd code, which means it's not a derived work. If the driver is linked with the Solaris kernel and distributed, that might be derived work, although it's not 100% clear. Even assuming that a statically-linked kernel is a derived work, it's pretty tenuous to claim that the in-memory copy of a Solaris kernel is a derived work by virtue of having dynamically loaded a GPL'd driver. Moreover, it doesn't matter since that "derived work" (if it can be considered such) is never distributed! The GPL doesn't forbid combinations with proprietary code; it forbids distributing such combinations.
I'm afraid there may be no way to fix this without adding usage restrictions to the GPL, which might be against the spirit of itself! I think the exemption for components distributed with the OS is a red herring here. This problem is more fundamental and intractable.
Could it be just a type? It must be $1M and they forgot the M... I can't believe someone would award so such a compensation.
I doubt it's a typo, given the quote from Microsoft claiming that the judge's ruling was inconsistent with the jury's verdict. It said that the jury only found Microsoft guilty of unfair-trade practices (and not guilty of other charges), and imposed damages of $1. One dollar is the traditional nominal amount that is intended to be effectively free. (Like when your dad "sells" you a car for $1.) Evidently, the jury decided that they couldn't return "not guilty" on the unfair-trade charge, yet they didn't want to punish them, so they declared nominal damages. It would seem that the judge disagreed with the jury and felt that Microsoft should be punished. It's inconsistent with the jury's evident intent (to let Microsoft off the hook for their actions), but not inconsistent with the "guilty" verdict. Besides, it's the judge's perogative...
This could be an opportunity to fix some of the things that are broken about the current DNS. If we don't want.US abused as badly as.COM has been, it's critical to do something more sane this time. If done right, a revamped.US could serve as a model for revamping top-level domains...
Let's not have.com.us, okay? (For the myopic people suggesting.co.us, remember Colorado already has that.) If we had a free-for-all in.com.us, it would be abused as badly as.com is. The concept of having a single "commercial" category is absurd. It would be better to have a ".misc.us" as a last-resort option for anything that can't be categorized.
Because.com,.net and.org are often treated as synonymous (how many companies automatically register all of them?), replicating that mess under.us wouldn't help anything. Instead, it makes more sense to consider what purposes people use domains for. Create a domain structure with more purpose, and enforce reasonable usage. Have non-profit organizations manage the registry. Create "domain czars" a la Usenet 2's hierarchy czars with responsibility for DNS subtrees.
First, recognize that sex sells, and that sex sites aren't going away. Accordingly, create a.xxx.us domain dedicated to the purpose. (Just think how easy those domain names would be to filter out!) Don't allow the sex sites to register under inappropriate domains.
Second, deal with trademarks explicitly -- create a.tm.us for trademarked names. (Maybe.sm.us for service marks also?) Create sub-domains under.tm.us for the trademark categories. Require proof of trademark ownership to register under.tm.us, and don't try to police trademarks in the rest of the DNS hierarchy. Allow top-level registrations under.tm.us only for those "well-known" trademarks that cross boundaries. (e.g. coke.tm.us)
Next, come up with categories that would better represent the things people want to do with.com/.net/.org, and create a proper hierarchy. Use.misc.us as a fallback if necessary. Don't allow free-for-all.com.us registrations like.com registrations. For example, The Matrix should be "thematrix.movie.us" instead of "www.whatisthematrix.com".
Allow obvious non-commercial domains like ".non-profit.us" (maybe ".org.us", but ".org" has been abused) and ".personal.us" for personal sites. (Could these be categorized?)
Basically, any organizational structure that might be proposed at the top level should be viable under.us as well, and.us would be a good proving ground for any proposal for gTLD's...
Another thought I had was to charge VERY nominal fees for the first domain or three, but rapidly increasing fees (e.g. doubling each time) to hold many domains at once -- that would keep some of the.com abuse in check. Massive cyber-squatting would be too expensive, and dumping all products into the DNS space (think Kraft) would be prohibitively expensive for even an enormous company, so they'd have to do something more reasonable.
The base fee should probably be determined by the depth of the registration -- free for 5 levels deep, cheap for 4, medium for 3, expensive for 2, exorbitant for 1. If something like ".ibm.us" were allowed, it should cost them millions of dollars annually to hold it...
What we need is a tool which will read a key and tell you if it has a ADK.
The paper suggests using gpg --list-packets on the keyfile as an analysis tool. It appears that you should be looking for an "additional recipient request" subpacket, which (when attacked) would presumably not be hashed as in the example shown.
For a "release", this "build your own ISO image" concept is bizarre and really unhelpful. Why can't I download a canonical ISO image so I can just burn a clean CD with the "stable" release? Maybe the release is stable, but the CD images are not. I just looked at the.list files for two different copies of one of the new CD images from the list of official mirrors, and the list of files didn't match. (Strangely, the MD5SUM files gave the same checksums anyhow.)
How are we supposed to get CD images and know they're really final and correct? (Say what you will about Red Hat; their ISO images are easy to find and never in disagreement between different mirror sites that carry them.)
Remember Heinlein's The Moon Is a Harsh Mistress? In it, computers were programmed using "Loglan", a "logical language". This was in fact inspired by the late James Cooke Brown's Loglan project, begun in 1955. Lojban (from the Lojban words for "logical" and "language", rather than the English ones) is an offshoot of the original Loglan project, and appears to be the more viable of the two. I just bought the book describing the grammar, The Complete Lojban Language, and I highly recommend it for anyone interested in languages. I'm just starting to learn the language, but I'm interested to see where it will lead me.
If you buy the book, I'd recommend buying it directly from The Logical Language Group, since you'll save money over the price Amazon charges (save about $6-8 with shipping), you'll probably get it sooner (that's where Amazon will get it from) and the authors get more money from the direct sale, since their wholesale cost to Amazon is less than the $39 they're charging directly... (They charged me $5 for shipping.)
You'd be amazed. I'm part of an effort to find copyright holders of Apple II software and to persuade them to reclassify their programs as freeware. In the last couple of months I've managed to free The Ancient Art of War, Ancient Art of War at Sea, Balance of Power, a set of statistical programs, and I've sent copies of ThinkTank and Advanced VisiCalc to their respective authors to post on their sites. Just about all Beagle Bros and Penguin/Polarware programs are now freeware. Yes, the big corporations are a problem... especially Apple, I'm sorry to say. But what can be done is pretty amazing.
Well, it's good to hear that at least some companies will act rationally. Were you able to convince them to make the next step and release the source code as well? (i.e. free beer or free speech?)
(and whatever the vi equivalent is) and disuse of "text editors" that mangle files. I wouldn't use an editor that omitted vowels while saving, even if it would make writing Unix utilities a lttl smplr.
If you insist on tolerating broken tools, you can always fix it by running a C++ grinder (can indent do the job yet) in cvswrappers.
There isn't an equivalent in vi or even vim, as far as I know -- I believe you'd have to set the parameters in your.virc or.vimrc file, which would apply to the user, not the file. You couldn't have different files using different tab widths, and others users editing the same file would get their settings instead. With emacs, you can tag the file with such information using -*-, but that still depends on all users to edit the file with emacs only.
As an individual developer, it's quite reasonable for you to say that you won't tolerate broken tools. As a language designer, it's hard to make assumptions about what tools people will be using. Even if your implementation of the language includes the proper tools, another implementation might not. That's why it's preferable to stick with the least common denominator whenever possible for language design. Imagine if a language required 16-bit Unicode characters for a basic purpose, such as braces in C. Now imagine how difficult (or impossible) it would be for users who only have an ASCII text editor that doesn't understand Unicode. Sure, you might be able to make the language more concise if you can incorporate some extra symbols that aren't available in the standard ASCII set, but it constrains the users. You can do it, but you should really consider the cost first. (Do you know anyone who programs in APL with all its nonstandard characters?)
If a book goes out of print for a certain amount of time, then even if the publishing company still owns the copyright at that time, the writer is given a legal ability to publish the book without the consent of the publishing company. Or something like that.
Actually, I think this is a feature of the CONTRACT that the author signs with the publisher - giving the publisher unique rights to publish the work, but reclaiming those rights for the author when the publisher chooses to stop executing them. This is how it worked in situations with which I am familiar - a textbook author I know has been notified by his publisher that they will not reprint the book, ergo he is free to re-contract with another publisher (or self-publish)....
Yes, it seems that book authors really have it better than musicians when it comes to contracts. It seems that the norm in book publishing is that the author retains the copyright and grants a temporary exclusive (renewable) license to the publisher to make copies, and that the author can re-publish later if the original publisher loses interest. Musicians, on the other hand, usually assign copyright to the publisher, and no longer have rights to their own work. (I believe recent copyright law changes have even codified this as the default for music!) Gee, could this have anything to do with the fact that the RIAA monopolizes the recording industry? Hmm...
Note that if copyright only lasted 15 years (as I believe it was originally written), Big Daddy's works would be in the public domain by now, and the public could rescue them freely. It seems as though copyright is interfering with the process of restoring and recording history.
The U.S. Copyright Act of 1790 allowed for a 14-year duration (a quite reasonable timeframe and a good balance of author incentive vs. public good), with another 14-year optional extension (in the 14th year), for a maximum of 28 years, which is plenty of time to capitalize on a creative work. (Especially when you consider that businesses usually make their plans based on expected returns within 5 years or so!) Works had to be registered with the Copyright office to receive protection; many works entered the public domain directly because the author didn't bother to register the copyright.
Copyright has been extended many times since then for the further enrichment of the rich, with no consideration given to the balance inherent in the "bargain" between the author and the public that copyright is supposed to represent. It's been twisted into an entitlement in many people's minds, a tool to enrich a few at great cost to the public. Copyright extensions (especially the last one) are enacted to preserve corporate profits (and the GNP), public be damned. It's a gross perversion of a system that was originally designed to benefit the public, not to enrich authors and "IP" owners.
A work goes in the public domain 50 years after the death of the author. Or 50 years after it was created if the author is a corporation (in Canada, other countries have similar thing, the period may change - I know that Disney want the period to be extended to 100 years, don't know it they managed to do it).
It was life + 50 years for individual authors and 75 years for corporate authors. Then the Sonny Bono Copyright Term Extension Act extended that by 20 years in both cases, to life + 70 years for individual authors and 95 years for corporate authors. Beyond the basic damage caused to the public domain, it was done retroactively (to Disney's delight), which is almost certainly unconstitutional. (Good luck getting a fair ruling on that one!) Ironically, Mickey Mouse may already be public domain, technically. (Good luck defending it against Disney's army of lawyers!)
It would be okay for the compiler to generate a warning for incorrectly-indented code, but to generate incorrect code instead is simply inexcusable.
Depends on your definition of correctness.;) If you wrote:
if( myCondition) {
doThingOne();
doThingTwo();
}
On a quick visual inspection of the code, I'd assume that doThingTwo() was outside of the if clause, and if you wrote:
if( myCondition)
doThingOne();
doThingTwo();
I'd definately assume doThingTwo() was inside the if until I looked closer to notice the braces were missing. In this case, the "correct" code would be very suprising.
That's why a compiler warning is entirely appropriate in either case above. It may be syntactically valid code, but it may not agree with the programmer's intuitions, so it's worth pointing out to possibly save the programmer time looking for the non-obvious. However, if the programmer meant to violate the indentation rules, or simply didn't care (for a quick-and-dirty program perhaps), generating different code based solely on indentation is an attempt to second-guess the programmer, and a really bad idea.
To give you an idea on a case where the programmer might deliberately violate the indentation, consider debugging code... I will usually put temporary debugging statements flush with the left edge when I'm planning to remove them immediately after tracking down a particular problem. Because it looks wrong, it stands out, which is exactly why I do it. And I don't want a compiler second-guessing me and generating incorrect code because the compiler doesn't agree with my use of indentation. Indentation is for human readibility, and humans are more complex than programs. Syntax rules like this are an unnecessary constraint on the programmer.
As for your second example, that sort of problem is why I always use braces on single-line blocks like that, in case another line is added later. (Hours wasted debugging someone else's code that moved key code out of a loop convinced me to change my personal coding standard, 10 years ago.) I'll drop the braces only if the statement starts on the same line with the "if", "while" or whatever. (Perl goes a step further and always requires braces; I consider this perfectly reasonable, and a much better solution than Python's.)
In python, you don't have these sorts of suprises, your block structure is immediately obvious from indentation, and if it looks wrong, it is wrong. I'd call
that correct code generation...
Instead, Python opens you up to brand new potential surprises. Suppose you're trying to debug a program by reading through the code on a printout, and there's an indentation shift that happens to coincide with a page break? You might not notice the difference visually when moving from one page to the next, but the compiler may not do what you expect from looking at the printout, if there's a mistake in the indentation. Braces, at least, are visible and matchable.
Also, many programs take a cavalier attitude toward whitespace, especially leading and trailing whitespace. If you were to display a python program in HTML and not disable the normal HTML formatting, the entire program will be re-wrapped. This won't hurt a C or Perl program much, but it would cripple the meaning of a Python program. If you send a program through email, a mail system could strip leading whitespace (stranger things have been known to happen). A text editor might expand tabs to spaces, not necessarily at 8 spaces per tab.
Because whitespace typically has minimal significance, there's a lot of potential for it to get mangled in one way or another. That is one of the biggest dangers I see in Python's approach, and it just seems to be begging for trouble.
And applying the pragmatic programming principle of
DRY (Don't Repeat Yourself), what is the point of having the same semantic information encoded in the formatting (where it is visible to the programmer) and brace structure (where it is visible to the compiler). If you've got the same information in two places, eventually they'll get out of sync, and you'll lose...
On the contrary, you should want that kind of redundancy, because it improves your chances of catching errors, especially when the compiler help automate the validation of those redundancies. Consider C function prototypes. K&R didn't feel it was necessary to declare parameter types before calling a function. After all, that information is already there in the function call (types of expressions) and definition (types of parameters). Why bother repeating information you already have? Because it catches mistakes. ANSI C catches (at compile time) many mistakes that programmers make, which K&R C missed, because of stronger typing. This redundant semantic information is a good thing.
I stand by my opinion that Python's significant whitespace is an abomination. It second-guesses the programmer and invites trouble with whitespace-mangling. Dropping the braces removes the redundancy that could catch the problems that are likely to be caused by significant whitespace. (Had Python kept the usual braces, it would have mitigated most of the damage of making whitespace significant, and I would have much less objection to it.)
Yes, it's a good goal to want to improve code quality and reduce mistakes. Perl's solution is much cleaner, safer, and so unobtrusive that people barely notice it and nobody particularly minds it. Python's approach, on the other hand, was ill-conceived from the start.
I always use hard tabs. In fact, I require them in cugar. Indenting one space further than the previous line means a continuation of a previous line. Indenting more than one space is an error, because it could be misinterpreted as a tab. This forces consistent indentation on all cugar users.
Indenting styles vary widely, and there will probably never be consensus on the best way to indent programs. That's why tools like indent exist in the first place.
As for the use of hard tabs in general, you might want to think twice about it. The only tool I'm aware of that's in widespread use that relies on hard tabs is "make". Supposedly, the author decided very early on that using hard tabs was a mistake, and wanted to correct it, but left it instead because he had over a hundred people using the code already and he didn't want to break backward compatibility on all those people. How many thousands upon thousands of people now suffer the inconveniences of that mistake? How many beginners stumble on the arbitrary requirement of a hard tab? It seemed like a good idea when he started, but it wasn't.
Also, keep in mind that some text editors will interfere with hard tabs, automatically expanding them into spaces. In this case, you may or may not be able to quote the hard tab, and it may be difficult to work with, if you can. (It might display as a symbolic code, for example.) Some editors will even expand hard tabs simply from loading a file with hard tabs and saving it again.
Are you sure you really want to use hard tabs?
Different people prefer indentations between 2 and 6 spaces (I like 3), why not let them choose? You can always change the tab stops in your editor.
Some people even prefer the default of 8, but I don't think I've ever met anyone who wanted tabstops of 7...
Changing the display size of hard tabs is a poor idea. It leads to inconsistencies (especially some (but not all) tabs are replaced with what appears to be the proper number of spaces), and depends on everyone to use the same settings to see the same thing. Sticking with 8 spaces for a hard tab is the safest thing to do. (True, if you only allow hard tabs, it's less likely to be a problem, but the folly of requiring hard tabs is already discussed above.) A better choice is to use soft tabs in the editor, and having it saved as spaces. Everyone then sees the exact same thing, and it prints consistently. (Printouts usually assume 8, or even fail to process hard tabs entirely!)
Obviously, this makes consistency between coders with a different style harder to maintain. This can be addressed with coding standards and/or use of the "indent" tool.
Hate to say it, but some people enjoy using Hungarian notation in C++ programs to. There's no accounting for taste I guess.
I'm not a fan of Hungarian notation, personally, although I can see some value in it. For me, the impact on readability makes it not worth using. This is one of those classic debates, like vi vs. emacs, which will probably never be resolved.
If anyone is looking for a free software project to write, it just occurred to me that a missing tool that could be useful would be a program like indent that would add or remove Hungarian-notation prefixes instead of adjusting whitespace. I'd probably write this myself, if I were a fan of Hungarian notation. Since I'm not, I'm tossing the idea out there; maybe someone else out there wants to run with it?
Perhaps the more fatal flaw is that you refuse to touch it because of that attribute (significant whitespace).
Actually, I've heard enough good things about the design of the language as a whole that I've decided I should overlook the whitespace thing and learn it sometime anyhow. However, it took a lot of praise from other sources to convince me that it might have sufficient redeeming qualities to outweigh this abomination.
Try it out for a while before you write it off as a design flaw.
Whether or not it's a technical design flaw, which is debatable, I'd suggest it's a social design flaw if it makes many programmers reluctant to seriously consider using the language (which it does). Some programmers may like it, others may manage to set aside their distaste for it, but many simply won't touch it at all. That's a flaw, if it makes an otherwise-good language worthless because it gets rejected out of hand.
Preprocessors like these should be available for all languages so that a project team can enforce an indenting style across the project. Of course there are many other reasons why debugging others source code can be difficult, but I find it easier to read my own code from 7 years ago (when my ability and technique were different) tha anyone elses code because I was indenting in the same way.
Ever heard of indent? It can be used to enforce a consistent indenting style. Much better than making whitespace significant in the language.
A better method would be to contact each author/corporation before posting it. While being inconvenient, it's really the best way to ensure you aren't violating anybody's rights.
Well, at least that would make it legal. But how effective would it be? Individual authors who want to see their works preserved for posterity would probably be happy to cooperate, but corporations wouldn't consider granting such permission without the approval of their lawyers and executives. Lawyers are usually loathe to forfeit any rights, on general principle. Executives are similarly loathe to forfeit any possible source of revenue, however small or theoretical. (Even if they don't choose to exploit it, they will rarely relinquish the right to do so.) Executives could potentially even be held liable by stockholders if someone concludes that they passed up a moneymaking opportunity. These things make it difficult and risky for corporations to be good citizens; the path of least resistance is to refuse permission, even if they don't actually care about the code anymore. The corporation might be willing to turn a blind eye (probably protesting ignorance of the flagrant copyright violation, and doing some symbolic sabre rattling when pressed), but asking them to grant express permission is asking a lot more of some (usually) conservative people.
Another possible problem is identifying the proper legal owner of the code; many old software companies have gone out of business, and finding out who inherited the intellectual "property" may be quite difficult. (Unfortunately, even if the actual author is sympathetic, some company or another usually owns the copyright and won't be as sympathetic, unless they still value that author.)
"It's easier to get forgiveness than permission." This seems to be the operating principle of these abandonware sites. Is it legal? Obviously not. Is it right? That's a moral question, and laws alone cannot answer moral questions. If they're not in it for a profit, and they're not harming the business of the copyright owners, and they're willing to remove anything by request of the proper owner, then at least it can be argued that their motives are pure. Legally, they're still at risk, and could take a fall. Or they could get away with it indefinitely. (Minors who run such sites may have some legal protection, unless tried as adults!)
I shudder when I think of programming with significant whitespace. It's what has kept me from picking up Python in earnest--at least until I write a conversion program that turns braces into the whitespace that python likes (in Perl:-).
To think that C would be made *better* by the addition of significant whitespace gives me the chills.
Agreed! I've been told a number of times that Python is a good language, but that one design flaw (making whitespace significant) has kept me from wanting to touch it. It would be okay for the compiler to generate a warning for incorrectly-indented code, but to generate incorrect code instead is simply inexcusable. Grafting this abomination onto C is a disturbing prospect indeed.
Actually, I believe AT&T sold UNIX (including the trademark) to Novell, who later sold it to SCO. As far as I know, SCO still holds the trademark. (It was SCO that gave permission for the Lions book to be published with V6 UNIX source code in it...)
Since the site's slashdotted already...
on
Gnutella Vs. SPAM
·
· Score: 5
I managed to fetch the text of the front page of the flatplanet.net website before it got slashdotted. Here it is:
What is ShareZilla?
ShareZilla is a quick, cheap, and easy way to promote your products, services and web-sites across the latest and greatest thing on the Internet: Gnutella. ShareZilla intercepts every Gnutella search that comes across its network horizon and re-transmits an ad back to the person originating the request. In addition, ShareZilla can transmit an MP3 file (if that's what the user is requesting), or it can transmit a Movie, Text, HTML, VS, etc.
When the search originator sends out a request like: "Strawberry Rhubarb Pie" ShareZilla will return a string like this: "WWW.FlatPlanet.Net - Strawberry Rhubarb Pie.mp3"
This is very useful if you're on the web to make money. If you're not on the web to make money, this is just a really neat way of finding out about the latest commercial press release about Strawberry Rhubarb Pie.
What is Stealth Mode?
While running in stealth mode ShareZilla responds to search requests with a advertisement string, instead of a file. Since the viewer of the ad does not need to download any files (or viruses) to their system to get your ad across, ShareZilla takes the opportunity to scramble its home IP address and other identifiying data that would otherwise be necessary to download a file, or find out who and where you are.
Since the response to the search does not include any return address, ShareZilla uses Gnutella Net's natural anonimity to keep your home IP address from being discovered. This way you don't have to wory about any number of hack attacks, which can only be done once the hacker knows your home IP.
As I mentioned in my previous post, I consider this a clearcut case of network abuse. The very existence of this "stealth mode" is obvious evidence that they know how unscrupulous their actions are, but they clearly don't care...
This is one of the clearest examples of network abuse I've seen. These people seem to have fewer scruples than the average script kiddie.
It's unfortunate, but people are going to have to start designing applications and protocols with this sort of deliberate abuse and subversion in mind. (Of course, protecting against it is easier said than done...)
Are you interested in cash donations like this? Or will they cause legal headaches, bureacracy, etc...etc...?
Why shouldn't he be? I am not a lawyer (IANAL), but my understanding is that you (as an individual) can give up to $10,000 per year (per person) as a gift, tax-free (to the recipient). I'm sure this qualifies. Whether it's called a "gift" or "donation" amounts to the same thing: I gave him money, and he can do what he wants with it. (I suggested he use it to go see a good movie!)
Now, if people wanted to make donations that would be tax-deductible, and be certain the money would be used for the benefit of Kuro5hin.org (e.g. for server hardware), that would probably require them to setup a legal non-profit entity to make the donations to. That would be more complicated, obviously. Since I didn't care what use he made of the money and I don't intend to deduct it from my taxes, it's probably more accurate to call it a "gift" rather than a "donation" from a legal standpoint...
Someone, please moderate up the parent post!
But, what is this talk of writing it in Postscript? Are you nuts? Have you ever scene Postscript? It was not built to be edited by hand by any means. Me thinks you are crazy.
Well, maybe I'm crazy. I used to do a lot of coding directly in PostScript. (I also used to use NeWS, when X11 was still relatively new.) At one point, my resume was written entirely by hand in PostScript, and I thought it was perfectly readable. Computer-generated PostScript usually isn't readable, but is that really a surprise?
I had drifted away from PostScript programming for a few years, but I'm starting to play with it again because I recently bought an HP LaserJet 4050 with a builtin PostScript interpreter. (For example, I wrote some simple PostScript code to print videotape labels.)
Well-written PostScript is actually pretty fun to work with. I wouldn't want to hack generated PostScript without a compelling reason, however.
I doubt this problem can be fixed. The entire premise of the GPL is that a derived work can be subject to its restrictions. Yes, a Linux driver that was converted to Solaris-x86 form is clearly a derived work and subject to the GPL if the original driver was.
The problem I see is that the Solaris operating system has a device driver interface that was developed completely independently of any GPL'd code, which means it's not a derived work. If the driver is linked with the Solaris kernel and distributed, that might be derived work, although it's not 100% clear. Even assuming that a statically-linked kernel is a derived work, it's pretty tenuous to claim that the in-memory copy of a Solaris kernel is a derived work by virtue of having dynamically loaded a GPL'd driver. Moreover, it doesn't matter since that "derived work" (if it can be considered such) is never distributed! The GPL doesn't forbid combinations with proprietary code; it forbids distributing such combinations.
I'm afraid there may be no way to fix this without adding usage restrictions to the GPL, which might be against the spirit of itself! I think the exemption for components distributed with the OS is a red herring here. This problem is more fundamental and intractable.
Could it be just a type? It must be $1M and they forgot the M... I can't believe someone would award so such a compensation.
I doubt it's a typo, given the quote from Microsoft claiming that the judge's ruling was inconsistent with the jury's verdict. It said that the jury only found Microsoft guilty of unfair-trade practices (and not guilty of other charges), and imposed damages of $1. One dollar is the traditional nominal amount that is intended to be effectively free. (Like when your dad "sells" you a car for $1.) Evidently, the jury decided that they couldn't return "not guilty" on the unfair-trade charge, yet they didn't want to punish them, so they declared nominal damages. It would seem that the judge disagreed with the jury and felt that Microsoft should be punished. It's inconsistent with the jury's evident intent (to let Microsoft off the hook for their actions), but not inconsistent with the "guilty" verdict. Besides, it's the judge's perogative...
Disclaimer: I Am Not A Lawyer. (IANAL)
This could be an opportunity to fix some of the things that are broken about the current DNS. If we don't want .US abused as badly as .COM has been, it's critical to do something more sane this time. If done right, a revamped .US could serve as a model for revamping top-level domains...
.com.us, okay? (For the myopic people suggesting .co.us, remember Colorado already has that.) If we had a free-for-all in .com.us, it would be abused as badly as .com is. The concept of having a single "commercial" category is absurd. It would be better to have a ".misc.us" as a last-resort option for anything that can't be categorized.
.com, .net and .org are often treated as synonymous (how many companies automatically register all of them?), replicating that mess under .us wouldn't help anything. Instead, it makes more sense to consider what purposes people use domains for. Create a domain structure with more purpose, and enforce reasonable usage. Have non-profit organizations manage the registry. Create "domain czars" a la Usenet 2's hierarchy czars with responsibility for DNS subtrees.
.xxx.us domain dedicated to the purpose. (Just think how easy those domain names would be to filter out!) Don't allow the sex sites to register under inappropriate domains.
.tm.us for trademarked names. (Maybe .sm.us for service marks also?) Create sub-domains under .tm.us for the trademark categories. Require proof of trademark ownership to register under .tm.us, and don't try to police trademarks in the rest of the DNS hierarchy. Allow top-level registrations under .tm.us only for those "well-known" trademarks that cross boundaries. (e.g. coke.tm.us)
.com/.net/.org, and create a proper hierarchy. Use .misc.us as a fallback if necessary. Don't allow free-for-all .com.us registrations like .com registrations. For example, The Matrix should be "thematrix.movie.us" instead of "www.whatisthematrix.com".
.us as well, and .us would be a good proving ground for any proposal for gTLD's...
.com abuse in check. Massive cyber-squatting would be too expensive, and dumping all products into the DNS space (think Kraft) would be prohibitively expensive for even an enormous company, so they'd have to do something more reasonable.
Let's not have
Because
First, recognize that sex sells, and that sex sites aren't going away. Accordingly, create a
Second, deal with trademarks explicitly -- create a
Next, come up with categories that would better represent the things people want to do with
Allow obvious non-commercial domains like ".non-profit.us" (maybe ".org.us", but ".org" has been abused) and ".personal.us" for personal sites. (Could these be categorized?)
Basically, any organizational structure that might be proposed at the top level should be viable under
Another thought I had was to charge VERY nominal fees for the first domain or three, but rapidly increasing fees (e.g. doubling each time) to hold many domains at once -- that would keep some of the
The base fee should probably be determined by the depth of the registration -- free for 5 levels deep, cheap for 4, medium for 3, expensive for 2, exorbitant for 1. If something like ".ibm.us" were allowed, it should cost them millions of dollars annually to hold it...
What we need is a tool which will read a key and tell you if it has a ADK.
The paper suggests using gpg --list-packets on the keyfile as an analysis tool. It appears that you should be looking for an "additional recipient request" subpacket, which (when attacked) would presumably not be hashed as in the example shown.
For a "release", this "build your own ISO image" concept is bizarre and really unhelpful. Why can't I download a canonical ISO image so I can just burn a clean CD with the "stable" release? Maybe the release is stable, but the CD images are not. I just looked at the .list files for two different copies of one of the new CD images from the list of official mirrors, and the list of files didn't match. (Strangely, the MD5SUM files gave the same checksums anyhow.)
How are we supposed to get CD images and know they're really final and correct? (Say what you will about Red Hat; their ISO images are easy to find and never in disagreement between different mirror sites that carry them.)
Remember Heinlein's The Moon Is a Harsh Mistress? In it, computers were programmed using "Loglan", a "logical language". This was in fact inspired by the late James Cooke Brown's Loglan project, begun in 1955. Lojban (from the Lojban words for "logical" and "language", rather than the English ones) is an offshoot of the original Loglan project, and appears to be the more viable of the two. I just bought the book describing the grammar, The Complete Lojban Language, and I highly recommend it for anyone interested in languages. I'm just starting to learn the language, but I'm interested to see where it will lead me.
If you buy the book, I'd recommend buying it directly from The Logical Language Group, since you'll save money over the price Amazon charges (save about $6-8 with shipping), you'll probably get it sooner (that's where Amazon will get it from) and the authors get more money from the direct sale, since their wholesale cost to Amazon is less than the $39 they're charging directly... (They charged me $5 for shipping.)
You'd be amazed. I'm part of an effort to find copyright holders of Apple II software and to persuade them to reclassify their programs as freeware. In the last couple of months I've managed to free The Ancient Art of War, Ancient Art of War at Sea, Balance of Power, a set of statistical programs, and I've sent copies of ThinkTank and Advanced VisiCalc to their respective authors to post on their sites. Just about all Beagle Bros and Penguin/Polarware programs are now freeware. Yes, the big corporations are a problem ... especially Apple, I'm sorry to say. But what can be done is pretty amazing.
Well, it's good to hear that at least some companies will act rationally. Were you able to convince them to make the next step and release the source code as well? (i.e. free beer or free speech?)
As an individual developer, it's quite reasonable for you to say that you won't tolerate broken tools. As a language designer, it's hard to make assumptions about what tools people will be using. Even if your implementation of the language includes the proper tools, another implementation might not. That's why it's preferable to stick with the least common denominator whenever possible for language design. Imagine if a language required 16-bit Unicode characters for a basic purpose, such as braces in C. Now imagine how difficult (or impossible) it would be for users who only have an ASCII text editor that doesn't understand Unicode. Sure, you might be able to make the language more concise if you can incorporate some extra symbols that aren't available in the standard ASCII set, but it constrains the users. You can do it, but you should really consider the cost first. (Do you know anyone who programs in APL with all its nonstandard characters?)
Note that if copyright only lasted 15 years (as I believe it was originally written), Big Daddy's works would be in the public domain by now, and the public could rescue them freely. It seems as though copyright is interfering with the process of restoring and recording history.
The U.S. Copyright Act of 1790 allowed for a 14-year duration (a quite reasonable timeframe and a good balance of author incentive vs. public good), with another 14-year optional extension (in the 14th year), for a maximum of 28 years, which is plenty of time to capitalize on a creative work. (Especially when you consider that businesses usually make their plans based on expected returns within 5 years or so!) Works had to be registered with the Copyright office to receive protection; many works entered the public domain directly because the author didn't bother to register the copyright.
Copyright has been extended many times since then for the further enrichment of the rich, with no consideration given to the balance inherent in the "bargain" between the author and the public that copyright is supposed to represent. It's been twisted into an entitlement in many people's minds, a tool to enrich a few at great cost to the public. Copyright extensions (especially the last one) are enacted to preserve corporate profits (and the GNP), public be damned. It's a gross perversion of a system that was originally designed to benefit the public, not to enrich authors and "IP" owners.
A work goes in the public domain 50 years after the death of the author. Or 50 years after it was created if the author is a corporation (in Canada, other countries have similar thing, the period may change - I know that Disney want the period to be extended to 100 years, don't know it they managed to do it).
It was life + 50 years for individual authors and 75 years for corporate authors. Then the Sonny Bono Copyright Term Extension Act extended that by 20 years in both cases, to life + 70 years for individual authors and 95 years for corporate authors. Beyond the basic damage caused to the public domain, it was done retroactively (to Disney's delight), which is almost certainly unconstitutional. (Good luck getting a fair ruling on that one!) Ironically, Mickey Mouse may already be public domain, technically. (Good luck defending it against Disney's army of lawyers!)
That's why a compiler warning is entirely appropriate in either case above. It may be syntactically valid code, but it may not agree with the programmer's intuitions, so it's worth pointing out to possibly save the programmer time looking for the non-obvious. However, if the programmer meant to violate the indentation rules, or simply didn't care (for a quick-and-dirty program perhaps), generating different code based solely on indentation is an attempt to second-guess the programmer, and a really bad idea.
To give you an idea on a case where the programmer might deliberately violate the indentation, consider debugging code... I will usually put temporary debugging statements flush with the left edge when I'm planning to remove them immediately after tracking down a particular problem. Because it looks wrong, it stands out, which is exactly why I do it. And I don't want a compiler second-guessing me and generating incorrect code because the compiler doesn't agree with my use of indentation. Indentation is for human readibility, and humans are more complex than programs. Syntax rules like this are an unnecessary constraint on the programmer.
As for your second example, that sort of problem is why I always use braces on single-line blocks like that, in case another line is added later. (Hours wasted debugging someone else's code that moved key code out of a loop convinced me to change my personal coding standard, 10 years ago.) I'll drop the braces only if the statement starts on the same line with the "if", "while" or whatever. (Perl goes a step further and always requires braces; I consider this perfectly reasonable, and a much better solution than Python's.)Instead, Python opens you up to brand new potential surprises. Suppose you're trying to debug a program by reading through the code on a printout, and there's an indentation shift that happens to coincide with a page break? You might not notice the difference visually when moving from one page to the next, but the compiler may not do what you expect from looking at the printout, if there's a mistake in the indentation. Braces, at least, are visible and matchable.
Also, many programs take a cavalier attitude toward whitespace, especially leading and trailing whitespace. If you were to display a python program in HTML and not disable the normal HTML formatting, the entire program will be re-wrapped. This won't hurt a C or Perl program much, but it would cripple the meaning of a Python program. If you send a program through email, a mail system could strip leading whitespace (stranger things have been known to happen). A text editor might expand tabs to spaces, not necessarily at 8 spaces per tab.
Because whitespace typically has minimal significance, there's a lot of potential for it to get mangled in one way or another. That is one of the biggest dangers I see in Python's approach, and it just seems to be begging for trouble.On the contrary, you should want that kind of redundancy, because it improves your chances of catching errors, especially when the compiler help automate the validation of those redundancies. Consider C function prototypes. K&R didn't feel it was necessary to declare parameter types before calling a function. After all, that information is already there in the function call (types of expressions) and definition (types of parameters). Why bother repeating information you already have? Because it catches mistakes. ANSI C catches (at compile time) many mistakes that programmers make, which K&R C missed, because of stronger typing. This redundant semantic information is a good thing.
I stand by my opinion that Python's significant whitespace is an abomination. It second-guesses the programmer and invites trouble with whitespace-mangling. Dropping the braces removes the redundancy that could catch the problems that are likely to be caused by significant whitespace. (Had Python kept the usual braces, it would have mitigated most of the damage of making whitespace significant, and I would have much less objection to it.)
Yes, it's a good goal to want to improve code quality and reduce mistakes. Perl's solution is much cleaner, safer, and so unobtrusive that people barely notice it and nobody particularly minds it. Python's approach, on the other hand, was ill-conceived from the start.
I always use hard tabs. In fact, I require them in cugar. Indenting one space further than the previous line means a continuation of a previous line. Indenting more than one space is an error, because it could be misinterpreted as a tab. This forces consistent indentation on all cugar users.
Indenting styles vary widely, and there will probably never be consensus on the best way to indent programs. That's why tools like indent exist in the first place.
As for the use of hard tabs in general, you might want to think twice about it. The only tool I'm aware of that's in widespread use that relies on hard tabs is "make". Supposedly, the author decided very early on that using hard tabs was a mistake, and wanted to correct it, but left it instead because he had over a hundred people using the code already and he didn't want to break backward compatibility on all those people. How many thousands upon thousands of people now suffer the inconveniences of that mistake? How many beginners stumble on the arbitrary requirement of a hard tab? It seemed like a good idea when he started, but it wasn't.
Also, keep in mind that some text editors will interfere with hard tabs, automatically expanding them into spaces. In this case, you may or may not be able to quote the hard tab, and it may be difficult to work with, if you can. (It might display as a symbolic code, for example.) Some editors will even expand hard tabs simply from loading a file with hard tabs and saving it again.
Are you sure you really want to use hard tabs?
Different people prefer indentations between 2 and 6 spaces (I like 3), why not let them choose? You can always change the tab stops in your editor.
Some people even prefer the default of 8, but I don't think I've ever met anyone who wanted tabstops of 7...
Changing the display size of hard tabs is a poor idea. It leads to inconsistencies (especially some (but not all) tabs are replaced with what appears to be the proper number of spaces), and depends on everyone to use the same settings to see the same thing. Sticking with 8 spaces for a hard tab is the safest thing to do. (True, if you only allow hard tabs, it's less likely to be a problem, but the folly of requiring hard tabs is already discussed above.) A better choice is to use soft tabs in the editor, and having it saved as spaces. Everyone then sees the exact same thing, and it prints consistently. (Printouts usually assume 8, or even fail to process hard tabs entirely!)
Obviously, this makes consistency between coders with a different style harder to maintain. This can be addressed with coding standards and/or use of the "indent" tool.
Hate to say it, but some people enjoy using Hungarian notation in C++ programs to. There's no accounting for taste I guess.
I'm not a fan of Hungarian notation, personally, although I can see some value in it. For me, the impact on readability makes it not worth using. This is one of those classic debates, like vi vs. emacs, which will probably never be resolved.
If anyone is looking for a free software project to write, it just occurred to me that a missing tool that could be useful would be a program like indent that would add or remove Hungarian-notation prefixes instead of adjusting whitespace. I'd probably write this myself, if I were a fan of Hungarian notation. Since I'm not, I'm tossing the idea out there; maybe someone else out there wants to run with it?
Perhaps the more fatal flaw is that you refuse to touch it because of that attribute (significant whitespace).
Actually, I've heard enough good things about the design of the language as a whole that I've decided I should overlook the whitespace thing and learn it sometime anyhow. However, it took a lot of praise from other sources to convince me that it might have sufficient redeeming qualities to outweigh this abomination.
Try it out for a while before you write it off as a design flaw.
Whether or not it's a technical design flaw, which is debatable, I'd suggest it's a social design flaw if it makes many programmers reluctant to seriously consider using the language (which it does). Some programmers may like it, others may manage to set aside their distaste for it, but many simply won't touch it at all. That's a flaw, if it makes an otherwise-good language worthless because it gets rejected out of hand.
Preprocessors like these should be available for all languages so that a project team can enforce an indenting style across the project. Of course there are many other reasons why debugging others source code can be difficult, but I find it easier to read my own code from 7 years ago (when my ability and technique were different) tha anyone elses code because I was indenting in the same way.
Ever heard of indent? It can be used to enforce a consistent indenting style. Much better than making whitespace significant in the language.
A better method would be to contact each author/corporation before posting it. While being inconvenient, it's really the best way to ensure you aren't violating anybody's rights.
Well, at least that would make it legal. But how effective would it be? Individual authors who want to see their works preserved for posterity would probably be happy to cooperate, but corporations wouldn't consider granting such permission without the approval of their lawyers and executives. Lawyers are usually loathe to forfeit any rights, on general principle. Executives are similarly loathe to forfeit any possible source of revenue, however small or theoretical. (Even if they don't choose to exploit it, they will rarely relinquish the right to do so.) Executives could potentially even be held liable by stockholders if someone concludes that they passed up a moneymaking opportunity. These things make it difficult and risky for corporations to be good citizens; the path of least resistance is to refuse permission, even if they don't actually care about the code anymore. The corporation might be willing to turn a blind eye (probably protesting ignorance of the flagrant copyright violation, and doing some symbolic sabre rattling when pressed), but asking them to grant express permission is asking a lot more of some (usually) conservative people.
Another possible problem is identifying the proper legal owner of the code; many old software companies have gone out of business, and finding out who inherited the intellectual "property" may be quite difficult. (Unfortunately, even if the actual author is sympathetic, some company or another usually owns the copyright and won't be as sympathetic, unless they still value that author.)
"It's easier to get forgiveness than permission." This seems to be the operating principle of these abandonware sites. Is it legal? Obviously not. Is it right? That's a moral question, and laws alone cannot answer moral questions. If they're not in it for a profit, and they're not harming the business of the copyright owners, and they're willing to remove anything by request of the proper owner, then at least it can be argued that their motives are pure. Legally, they're still at risk, and could take a fall. Or they could get away with it indefinitely. (Minors who run such sites may have some legal protection, unless tried as adults!)
Movie companies usually destroy films when the copyright expires rather than allow them to enter the public domain.
How spiteful! It's a wonder how society limps along at all when nobody is willing to cooperate even minimally with others...
I shudder when I think of programming with significant whitespace. It's what has kept me from picking up Python in earnest--at least until I write a conversion program that turns braces into the whitespace that python likes (in Perl :-).
To think that C would be made *better* by the addition of significant whitespace gives me the chills.
Agreed! I've been told a number of times that Python is a good language, but that one design flaw (making whitespace significant) has kept me from wanting to touch it. It would be okay for the compiler to generate a warning for incorrectly-indented code, but to generate incorrect code instead is simply inexcusable. Grafting this abomination onto C is a disturbing prospect indeed.
Actually, I believe AT&T sold UNIX (including the trademark) to Novell, who later sold it to SCO. As far as I know, SCO still holds the trademark. (It was SCO that gave permission for the Lions book to be published with V6 UNIX source code in it...)
This is one of the clearest examples of network abuse I've seen. These people seem to have fewer scruples than the average script kiddie.
It's unfortunate, but people are going to have to start designing applications and protocols with this sort of deliberate abuse and subversion in mind. (Of course, protecting against it is easier said than done...)
Are you interested in cash donations like this? Or will they cause legal headaches, bureacracy, etc...etc...?
Why shouldn't he be? I am not a lawyer (IANAL), but my understanding is that you (as an individual) can give up to $10,000 per year (per person) as a gift, tax-free (to the recipient). I'm sure this qualifies. Whether it's called a "gift" or "donation" amounts to the same thing: I gave him money, and he can do what he wants with it. (I suggested he use it to go see a good movie!)
Now, if people wanted to make donations that would be tax-deductible, and be certain the money would be used for the benefit of Kuro5hin.org (e.g. for server hardware), that would probably require them to setup a legal non-profit entity to make the donations to. That would be more complicated, obviously. Since I didn't care what use he made of the money and I don't intend to deduct it from my taxes, it's probably more accurate to call it a "gift" rather than a "donation" from a legal standpoint...