Actually, the construct is rather pleasant. I now know that if s is a pointer, ss is a traversing pointer, at least in a singly linked list context. Use of ss outside of a "for" or "while", and initialization from anything but an "s" should raise alarms.
So, I can infer what pp would mean, if I came across it.
All this from a SINGLE STATEMENT. Wow, to C coder, this IS reasonable code! Not so much to someone new at the game, though.
As to NULL being zero... that is simply a precondition of the language itself. This is C code, for gods sake! It's not Java. Idioms. Deal. I wonder what happens when these programmers see level 88 Cobol declarations, or FORTRAN equivalence statements, assigned goto, or arithmetic ifs, or even a recursive formulation in C! My, I am getting giddy thinking about the reaction.
On the other hand, this lack of experience is good for me. I just made some money modifying some COBOL CICS code. Because I can.
into your program. Which WOULD raise a WTF!? moment for a lot of programmers. Also, The Fine Article also recommends using STL. In C code. Instead of int ***values; Really. Now, I am not sure what context you would find int *** in. In 30 years of C code, I have yet run across this. But, just how do you retrofit STL into C code that old?
And now on to the "incomprehensible"
s->ss->dc.d->v + i
Well, you can't have an ss without an s (see the first part of my comment), thus s->ss
Within that, we have a dc, which is (most likely) a union. To save memory. Probably a "context", but I'd actually need a few more lines...
Choose d, which is a pointer, v (likely "value") because we are adding a local integer.
Really, the author IS just inexperienced. Problem is, he has a blog and seems to believe in preaching. He takes a joke at face value -- and doesn't think of the real reason...
I condemn him to coding on an 80x24 terminal, in C 89 (or K&R C), or FORTRAN IV for two years... After which he should revisit this article.
Some hotels have a 110V/AC US outlet in the room. Ask.
If the hotel you are staying in doesn't have this, power converters are available. Buy one in the US and take it over. Prices in London are rather shocking. You will spend twice as much as you expected over there (It will cost you just under $40 US if you buy one in London).
Take a bus from Heathrow to London -- the cab fare is almost $150 US. But take cabs in the city. The drivers are very knowledgeable.
As for cell phones... mine just works. Ridiculous roaming fees, though, so talk to your cell provider before you leave, and buy an international plan. If you don't, you may end up with several hundred in cell phone charges.
Beyond this? Have fun and enjoy yourself. (I've never been to London on anything but business trips, but I've always enjoyed the experience).
Strong typing would make it impossible to send old format data to the API -- which would then force you to create an API extension. Couldn't just subsume the functionality.
Yes, weak typing along with versioning will work. "Strong typing" (ala C++ implementations "add the parameter descriptors in detail to the argument") won't, simply because the same "type" isn't being passed.
Yes, this can be misused to add 1 to "1". Which, in itself, isn't such a bad thing. After all, my Rosetta Stone for languages is to ask for the evaluation of 1000! which is an awfully big number. Indeed, it is closer to "1", than it is to 1, from the machines perspective.
You know, you may be right -- I generally use OpenOffice, terminal sessions, Firefox, and some utilities.
For terminal, when I use "terminal" I can cut/paste *or* middle click. But, sometimes I use xterm (so I can pass in font selection on the command line) -- then, its middle click only.
Between OpenOffice, FireFox, Evince, its pretty much ok.
- As to overwriting. This occurs because the update events follow behind the UI. The problem is resolved by the composite extension, or by enabling backing store -OR- by increasing network bandwidth. Some old X Servers didn't have backing store (and certainly no compositing), AND ran over constrained pipes. It hasn't been a problem with desktop X for years.
- X is extensible by design. Multiple display support, accelerated 3D, video playback and compositing do work. For $DEITY sake, I use these features on my stinky little Acer Aspire One using Linpus! No particular problems -- "it just works" (tm). I don't like transparent windows, so I just don't bother, but it does work. Why the hell would a user want to know about the alphabet soup? Just use a packaged OS. The alphabet soup comes about because the development of X is an open process.
- And, in comparison with the Mac, you do notice that Apple packages an X Server with OS X? When running in a heterogeneous environment, it's necessary.
- Finally, you bring up the Unix Hater's Handbook. Ok, let's break it down:
1 - xload, xterm and xclock are possibly among the LEAST used programs under modern X based systems. They weren't even installed on my Acer when I got it.
2 - Motif isn't used anymore.
3 - Cut and Paste really isn't an issue anymore, either.
4 - ssh -Y is usually used to remote X servers - authentication isn't an issue anymore either.
5 - Gnome and KDE provide the "customization methods"; since xterm isn't used anymore (or xcalc, or xedit), the xresources issues are also gone.
6 - imake has been deprecated for YEARS.
7 - Pretty much nobody uses raw X protocol or XLib anymore either.
8 - NeWS was "killed" because IBM and DEC didn't want a repeat of NFS - they didn't want to send SUN any more money. So, they marketroids forced the issue. I agree the superior technology didn't win, but X is still around. Sucks to be the customer when they get what they have been told to ask for.
The UGH was relevant in the early '90s. No longer.
The "MAC UI Experience" could be planted on top of X. I am disappointed that Apple isn't driving that. It would involve developing several extensions that would be useful to X users. But, if Apple doesn't want to do it, others will:
The first four are generally implemented. The last is not (X/DPS). But, MAC OS X only implements a subset of X/DPS anyway (and, of course, it isn't compatible).
"It's useless to care about the pirates who would do it anyway, is a smaller group and usually dont have that much disposable income anyway. But it's the casual people and adults - your idea about piracy will change after you start getting more disposable income, like happened for me and lots of my friends and now happily buy what we enjoy (and another reason was the quality improvement and easiness of Steam and Spotify and other legit services)."
Um... no. "Lots" of my friends and I have a high disposable income. But we are simply not delivered what we want in a format that we are willing to use.
Frankly, the number 1 feature that "my group" looks for in a media player is a USB slot, and the ability to play xvid avi files. You know what? A lot of players now offer this. From the low-end on up. Can I go and buy a movie or tv programme in that format?
I don't really think that the (in the US) RIAA and MPAA are particularly on the ball -- they should have filed suit on Samsung, etc. for producing such devices. THERE IS NO "LEGITIMATE" CONTENT FOR THESE DEVICES. Would I purchase such content? Yes, I would. Ripping CDs and DVDs is a serious pain.
There may well be services like "Steam", but, honestly, I am a 50 year old, and I have never, and (most likely) will never use it. Just tell me where I can buy a copy of the new Batman movie on a USB stick. Meanwhile, if I buy a DVD copy (haven't yet), it may have yet another "anti-copy" measure de-jour implemented to make it inconvenient to rip. Frankly, it's easiest to simply torrent the damn thing (time is money, you know, and I have other things in my life to worry about).
Now, it is true that studios HAVE released movies in flash drive format:
DivX, can "enable" up to 5 devices. Only $30 (much better than over $50). May work, but I am not sure enough to actually buy it.
And that's it. Meanwhile, what WE (my group) wants is the ability to purchase the programming, put it onto hard disks (good heavens, even my wife has a 1TB USB volume used for media and backing up her netbook, and we have 6TB in the home media server), be able to transfer to USB media for portability to be able to watch where we want. MY group sees nothing wrong with spending north of $1000 for a media pc. As long as it works. And the prices are dropping; we only paid $100 for a 1TB USB drive.
As it is, the content creators get very little from us. We have the money, but there is no product that we are willing to purchase. Which has driven us into torrents. Now, it would be hard to break the habit. Unless the content providers can somehow magically give us 500Kbps+ downloads of an incredibly large catalog. Which is the minimum bar that the "pirates" have set.
What has to happen
To get us back (and we ARE the ones with the money), the content has to be provided in SD or better quality, on-line, and via brick-and-mortar shopping, for the same price (or better for a download version), in DRM-free formats that are playable on the common home kit (aXXo's format would do nicely).
I would pay $5 for Ghostbusters (it's a 2 for $10 movie at WalMart). Billing must be as convenient as the Apple Store (and, yes, we buy from the Apple Store; but not music -- just iPhone games and applications. Why that is is another discussion, but remember, I *am* 50 years old).
And, having done that, it would still take time to convert us (our group). After all, we have been using torrents now for years.
Your RIGHTS as software creator. What are you talking about?
Those "rights" stop when the sale is made. To give some bad analogies -
I can buy a prime roast, and feed it to my dog, or let it rot. The farmer has no say in this. I can buy a car, and blow it up. The auto designer has no say in this.
Back to your software...
You sell me software, and I can use it per your demands. You sell me software, and I can just let it sit and not use it. You sell me software, and I can destroy it. You sell me software, and I can resell it. You sell me software, and I use it per my needs.
None of these choices has ANYTHING to do with you. You could, of course, engage me in a contract instead of a sale, which would involve a negotiation, and, if you wanted to limit what I wanted to do, a price negotiation.
I bought my OS X at a retail store. I didn't enter a contract at the time of sale. There is an EULA, but, since there was no meeting of minds, I don't think it qualifies as a legal contract (in my jurisdiction, anyway). Still, the wording was "use only on an Apple labeled system". And Apple was kind enough to include some Apple labels in the package.
#1 Apple didn't negotiate a contract with me. #2 Apple seems to have provided stickers providing "Apple Labeling". #3 I am fully willing to accept the terms of Copyright Law.
I bought a copy of OS X from Apple! Sure, I read the EULA. To quote that EULA
"This License allows you to install, use and run one (1) copy of the Apple Software on a single Apple-labeled computer at a time."
(I looked further at the EULA, and "Apple-labeled computer" is not further defined) Now, Apple provides stick-on labels WITH THE SOFTWARE! (interestingly, more than one -- are they encouraging piracy?) I interpret "Apple-labeled computer" as one that has the "Apple label"; in other words, one that has the sticker on it. So, I stuck one of those on a hack-in-tosh, and went to town.
Honestly, what is this suite about? Is Pystar not putting the label sticker on?
What are you talking about? You are using a CLIENT. What servers would you be running on that?
Let me be clearer. Assume that you decided to go with a Vintage version. Say, one with a Linux 2.0 kernel. What would be your security exposure? *IF* you decided to run sshd, you would be vulnerable. You won't be running a web server, or file sharing.
So -- if you wanted to expose the machine, make sure that sshd is updated. *IF* you want any other services, tunnel them. But for a client machine? Honestly, it doesn't matter.
I would recommend a small base system, but with a kernel that supports user-space file systems, to allow you to run sshfs for your file "sharing" (access) needs. Which precludes that old zipslack system, but I believe slightly more recent versions would work perfectly for you.
For example; I run a Fedora 8 variant on my netbook; I am sure that there is vulnerable software on it but what is the real exposure: none -- there aren't any open ports.
The only exposure would be a flaw in the network stack itself.
What you seem to be getting confused about is the strangely ENORMOUS vulnerability of old Microsoft products. Which I don't understand (how the hell could a client system be SO BAD with security?).
Maybe. But I have books which are simple bitmap pages. An example is the SNOBOL4 Griswold "Green Book" (google for gb.pdf). It takes FOREVER to render pages in Evince, whereas Acroread displays them at an acceptable rate.
Just sayin' Here is the run-time data. The test is simple: 512MB 1.6GB netbook (Acer Aspire One, Linpus dress, Acroread as installed by Acer, Evince installed from Fedora 8 repository), load and render the first five pages (only), and then exit to the command prompt.
Using Evince
[user@ariel SNOBOL]$ time evince gb.pdf
real 1m27.401s user 0m6.532s sys 0m1.980s [user@ariel SNOBOL]$
Using Acroread
[user@ariel SNOBOL]$ time acroread gb.pdf
real 0m29.512s user 0m8.789s sys 0m1.044s [user@ariel SNOBOL]$
Note that the timing data isn't particularly accurate -- it has to include my "click time" (actually, page-down), And, I accidentally did 6 pages in acroread (so the time is definitely over). I clicked ahead on the exit button for Evince. So, the timing advantage is actually to Evince!
Now, I'm not claiming that Adobe Reader is the cat's meow, but your rather blanket statement is very easily debunked. Evince takes 3x longer than Acroread. If that is "significantly better than Adobe's offering", I would like to see something you consider worse.
TCP/IP completely shields the application from the underlying transport.
A call is made to resolve a name (dns), a connection is opened, and... data flows. Or not.
So, your speculated "connectivity feedback" information has to come from a lower level than the application. It has to be in the stack.
Some platforms do incorporate this feedback from the stack. It just isn't an application responsibility. Even on platforms with good feedback (Blackberry), the applications are not aware.
And the application layer programmer should DEFINITELY not be making these decisions. If the application wants something other than TCP, the developer does have the option of using UDP.
So I decided to have a look at my netbook -- an Acer Aspire One, running the Acer Linpus Linux system. It's the 512MB memory with 120GB disk model; not the SSD dress.
[user@ariel ~]$ find/usr/sbin/bin/lib -type f -print0 | xargs -0 file | grep ELF | sed -e "s/:.*$//" >list [user@ariel ~]$ wc list
12318 12318 455036 list [user@ariel ~]$ ls -l `cat list` | awk -F " *" "{ sum += \$5 }; END { print sum }" 2090169634
For the "non-unix" types, this means -- traverse four directories (/usr/sbin/bin/lib) that contain all the binaries (well, I did forget/boot, but that's not very important for this discussion). We extract those files that mention ELF in the file-type, count them, and then sum their sizes.
Note that there are ~12,000 objects that would be expanded, taking up around 2GB of space. Which means that adding an alternate "fat" binary would roughly double this to 4GB. In other words, not very good for an SSD dress, but reasonable for a hard disk dress (my total data usage is 30GB on this netbook, so we would add 10% to the utilization).
On the other hand, this is storage resource that would not ever be reclaimed. There are other ways to achieve this result. For example -- simply provide multiple ELF objects in an archive, including a "bintester". Iterate each folder in the archive, test-running the bintester. If the bintester succeeds, use that. If none succeed, fail if its "closed object/source", or attempt to download and build the source. An example of this type of function is the VMware driver loader.
Or, use a neutral distribution -- JAVA, or Squeak, or the Microsoft CLR.
All of these provide similar results, without the need to modify the object loader. Which is something that I would really frown about -- After all, the loader is a very heavily used, very security sensitive component.
As to "fatness"; it turns out not to be as big an issue as I had originally feared (I did the measurement on the "worst-case" system I use, and started with the mind-set that it would matter a whole lot more than it turned out... my preconception was wrong).
Your mileage may, of course, vary.
PS. For full disclosure, you may note that I excluded/opt -- I have 3.9G of stuff there: OpenOffice.org3, Intel C 11.0, Adobe Reader, Microsoft MSVC 7, and some smaller stuff (tcl/tk dev, hua wei 220 support, and a virtual tape library . Since this may or may not impact a "standard" distribution, I decided to not include it (and, MSVC 7 is COFF format, used under WINE anyway).
Sure, those "large companies" can (and did) cut their infrastructure investments... but those investments were paid by public money.
You are not legally allowed to dig your own cables -- Easements were given by the government to the incumbents.
So, tell me again how the government ISN'T involved?
Personally, I don't like to bail on something I have already paid for, but I don't need the Internet "24/7" that much. I can easily deal with "web by mail" and UUCP, or even data transfer via "truck of tapes" again. Strangely enough, if hackers go that route, AND we control the "good stuff" -- that is, the good pirated music/videos and technical information, the "Internet" will go down that path instead.
Which puts the attempted controls by the "other" cartel at risk. Basically, the content cartel wants a centralized Internet, if there is an Internet at all. The delivery cartel wants to put road-blocks into that centralized Internet, to maximize their profits. The hackers are willing to Balkanize the Internet, screwing both of the cartels.
The "end-users" really want the product the hackers produce.
Exactly. If ".NET" is fast enough, it may be used. A reading of the article indicates a 2ms transaction difference. Since you are, or have been, "in the biz", I point out that a 2ms transaction difference is hardly considered insignificant.
It may be the platform. But most designers wouldn't use.NET or JAVA as the base. Generally, start with a message bus that is performant within specification, and add from that.
I don't dismiss the idea that.NET may have been the "killer" here; that coupled with license fees and control.
I am also doubtful that the full truth will be forthcoming. Microsoft is a very large presence, and I wouldn't want to piss them off (in anyone's shoes).
Still, I would not have based a system like this on.NET, and not on JAVA either. Certainly not the message bus part. DTRACE wouldn't even properly trace into the JVM (until recently). Now, I can speculate that the design was conservative, and the main message bus component wasn't in.NET, but that wouldn't really have allowed Microsoft to declare the LSE as the poster-child of.NET. Since that was done, I believe that the incedibly foolish move of trying to do the message bus in.NET was attempted. In which case, I am rather impressed by.NET, actually. Only a 2ms loss? That's rather incredible for such young software. Hats off to the Microsoft VM engineers! But this is still an incredibly performance driven space, and I suspect that the performance delta was too much.
You know, you are right. But low-latency trading is a category pretty much on its own. Generally, I support and recommend Solaris because CPUs can be partitioned easily, and tasks bound to specific CPUs. To reduce latency. DTRACE is useful to gain insight into support libraries and VMs. To reduce latency. To quote the Tabb Group:
"...more than half of all exchange revenues are exposed to latency risk today, up from 22% in 2003."
During the time, regulatory changes have forced more trades (broken down). To continue with the Tabb Group:
"TABB Group estimates that if a broker's electronic trading platform is 5 milliseconds behind the competition, it could lose at least 1% of its flow; that's $4 million in revenues per millisecond. "
which matches what I am aware of in this space. Now, 2.8ms vs. 0.4ms translates to some serious money. I find it hard to believe that the LSE takes it so lightly -- the traders sure don't.
Of course, shortening the network cables helps too (and this too is a concern). After all, light travels only 186 miles in a millisecond. If you trade electronically 186 miles from the exchange, you are a full millisecond behind someone trading at the exchange. The traders care.
How much does.NET contribute? I don't know -- however, you have already put the forth the argument that it is "probably" not a factor.
Of course Miguel suggested that Microsoft is, or could be, "our" ally (that, is, to free software);
"The creation of the CodePlex foundation was an internal effort of people that believe in open source at Microsoft. They have been working from within the company to change it. Working at CodePlex is a great way of helping steer Microsoft in the right direction."
Richard somehow saw this point BEFORE Miguel made it:
"CodePlex follows the same practice. Its stated goal is to convince "commercial software companies" to contribute more to "open source". Since nearly all open source programs are also free software, these programs will probably be free, but the "open source" philosophy doesn't teach developers to defend their freedom."
Unless it was Miguels attempt to separate Open Source from Free Software. Quoting Richard again:
"...because a program that doesn't run (or doesn't run well) in the Free World does not contribute to our freedom. A non-free program takes away its users' freedom. To avoid being harmed in that way, we need to reject proprietary system platforms as well as proprietary applications."
Should Miguel be upset by Richards musings? A good question -- but he seems to be. Miguel even attacks Richard ad hominem
"Richard Stallman frequently conjures bogeymen to rally his base. Sometimes it is Microsoft, sometimes he makes up facts and sometimes he even attacks his own community [2]. His language is filled with simple, George W Bush-eque terms like Good vs Evil, Us vs Them."
RMS takes the high road on his blog; at least he didn't stoop to attacks of that nature. Just espouses his philosophy and illustrate why he believes that Microsoft should not be trusted, without extraordinary proof.
Miguels reply has soured me. He certainly lost this debate; both on substance and style.
Let's cut to the net net (Just reading Raymond Chens blog, and I decided to get with the Microsoft speak). I am not in the US. I do not post in the US. My English is excellent, and I am able to either compose my own "reviews", or would be willing to simply post your reviews.
My rates are reasonable, and I am willing to work under aliases.
Contact me via email for your astroturfing and viral marketing needs. Payment accepted in US Currency, Euros, Canadian Currency, or (if I can actually be convinced that the product doesn't blow), product.
==
In other words, WTF are you thinking? All that will happen is that the astroturf business will "offshored". Next, the buying of these services has to be made illegal, but that will take years (actually, I predict never), but when/if that happens, the astroturf campaigns will simply be managed in an offshored basis as well.
"The insight is: Let's ignore what the malware does on a machine, and instead look at how it moves between machines. That is much easier to assess. And the moment malware gives up what allows us to detect it, it also stops being a threat."
But of course, malware that doesn't actually DO anything isn't a threat. As an administrator, I am worried about the misuse of resources.
Staging a DDOS attack from malware is a problem for me, because it uses my bandwidth inappropriately. Stealing credit card numbers because it is an inappropriate information leak. And so on.
I actually DON'T CARE if someone clicks on the funny cursors package, in exchange for complete information on their browsing habits -- as long as inappropriate information is not leaked. If the user loses the contents of their savings account to a hacker with a trojan? My initial reaction is to laugh, and then feel pity. As long as its not a theft of resources I am controlling.
Which boils down to: malware is defined by what it does. If propagation is an issue (usually network issues), it becomes my concern. Otherwise? I don't care. So, I use behaviour based approaches to malware control. If a new (to this system) piece of software doesn't have access to resources, it can't misuse them.
Simple trojans, viruses and worms? Amusing, but not particularly on my radar. Specific attacks on security frameworks designed to contain software? Definitely, along with root kits.
About the only reason I bother with "malware detection" is to keep Windows users happy(ier). They seem to think that this stuff is somehow important.
Because I am having a problem wrapping my mind around the US law.
The DMCA protects copyrighted works. Of course, the Autodesk software is copyrighted, but it is also licensed. Autodesk alleges that the software cannot be resold, due to licensing restrictions.
Copyright has not come into play yet.
Which I get. This may be disputed, but will falls under contract law.
Now, Autodesk enjoins EBay to remove the software, alleging a DMCA violation. Where the fuck did THAT come from? Copyright was never infringed (as far as I can see). Of course, EBay removes the software, but Autodesk must have known that this was not a Copyright infraction! Of course they hold the Copyright, but first-sale doctrine would apply.
DMCA shouldn't apply. But, hey, colour me confused. Now I understand that it would be illegal to have illegal licensing terms, but the only terms that could possibly apply (in a recent license) would be (1) The DMCA covers the Copyrighted portions (which is the case anyway, so why bother mentioning it), or (2) We allow the additional dropping of DMCA terms. In any case, any additional restrictions would be license restrictions, and not DMCA restrictions. Specifically, the removal of the first-sale doctrine would be a licensing term, and would not follow Copyright.
Which would appear to make a DMCA takedown inapplicable.
But what the fuck do I know? US law confuses me...
There is no "theory". You can decline the GPL, and still use the software.
Do you get that? But, if you decline the GPL, Copyright applies. (Just the normal thing). Same as if you had purchased, or had been lent a book (for example).
You can still do whatever you want with the software, but would have no right to distribute that software. You know, just Copyright as usual.
This is what I mean by not agreeing to the GPL. It doesn't affect you as a user of the software in the slightest. In fact, since it is only under Copyright, and not licensed, it is still more free and less risky than the licensed software from most vendors. Where the EULA applies.
Which is where your risk analysis falls apart. Simply use GPL software, and decline the GPL. This is the least risky path for a user.
For a developer the licensing should be careful examined. You would be dumb not to.
This may be a surprising result. It is to many; some software even has a splash screen put in by some zealot that says, in effect, "to use this software, you must agree to the GPL". This is incorrect. To quote the GPL
"Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted..."
Read this carefully; this is what lets you use the program without agreeing to the GPL. You should be able to decline that aforementioned splash screen, and still use the program.
My netbook is an "appliance". Generally it is powered off. If I need some information (notes, contact info), I power it on. Old rom-based systems (like my old model-100) would be on instantly. Ready to work.
My netbook takes 17 seconds to become ready. It won't go on the network (that takes just over 30 seconds), but I can access information in 17 seconds.
But it's not fast enough. If someone has asked a question, I turn it on, and then WAIT. I can issue the command to find the information needed (5 seconds to load the program, 5 seconds to enter) - the time to reply is now on the order of 30 seconds. If it were "instant on", the time would be 10 seconds.
It makes a big difference in the social interaction.
More bizarre, it takes 15+ seconds to turn OFF. If I don't give it the 15 to 30 seconds to turn off, I get a 10 minute+ penalty on the next power up.
I don't (really) care about server systems, or "desktop" systems (though I prefer the instant-on thin client). But I am partial to (almost) full keyboards for entry, and thus use a netbook. Yes, it "sleeps" but I can't guarantee that it will be used or plugged in on any schedule. So, I prefer to turn it off when not needed, and turn it on when needed.
A super-fast on/off for my netbook is important to me. There are two buying points for a netbook for me: (1) keyboard quality and (2) on/off time.
The GPL is a license that grants additional rights beyond Copyright.
And that's all it is. How do you infer intent of the FSF from that? (Whatever that intent is; you may be right about the intent, but it actually doesn't matter).
The only thing that matters is the GPL itself here. Which allows EXACTLY for the cases in my post.
Does "freedom" require enforcement? In your words, the enforcement itself is against freedom. But, if I write a program, or a book, and it is NOT a "work for hire", I have the Copyright. The copyright can be enforced.
Interestingly, it doesn't matter if I don't bother to say "Copyright" in the work:
"Copyright applies to all original:
* literary or textual works: books, pamphlets, poems, computer programs
* dramatic works: films, videos, plays, screenplays and scripts
* musical works: compositions consisting of both words and music, or music only (lyrics without music are considered literary works)
* artistic works: paintings, drawings, maps, photographs, and sculptures
* architectural works
Copyright also applies to three other kinds of subject matter: performer's performances (section 15); broadcast communication signals (section 21); and sound recordings such as records, cassettes and CDs (section 18).
Protection under copyright laws is automatic in Canada: as soon as an original work has been written down, recorded or entered as a computer file, it is immediately copyright-protected." (http://www.media-awareness.ca/english/resources/legislation/canadian_law/federal/copyright_act/cdn_copyright_ov.cfm)
Which means I can put source code on the Web, and can sue you for copyright infringement if you redistribute that code. Just that simple.
I would need to EXPLICITLY change the terms to allow you to redistribute the code. GPL is one possibility. Public Domain is another (and I have used Public Domain more often that GPL).
Simply abandoning the GPL? If the choice is GPL or nothing at all, the GPL is "more free" (based on automatic Copyright grants). Possibly you want everything to be Public Domain. Which means that anyone can do anything (including ignoring authorship).
You prefer one of the BSD licenses, perhaps? Please enlighten me on what you propose to replace the GPL.
"hideously idomatic"
Actually, the construct is rather pleasant. I now know that if s is a pointer, ss is a traversing pointer, at least in a singly linked list context. Use of ss outside of a "for" or "while", and initialization from anything but an "s" should raise alarms.
So, I can infer what pp would mean, if I came across it.
All this from a SINGLE STATEMENT. Wow, to C coder, this IS reasonable code! Not so much to someone new at the game, though.
As to NULL being zero... that is simply a precondition of the language itself. This is C code, for gods sake! It's not Java. Idioms. Deal. I wonder what happens when these programmers see level 88 Cobol declarations, or FORTRAN equivalence statements, assigned goto, or arithmetic ifs, or even a recursive formulation in C! My, I am getting giddy thinking about the reaction.
On the other hand, this lack of experience is good for me. I just made some money modifying some COBOL CICS code. Because I can.
Now,
"for (currentNode = list->firstNode; currentNode != NULL; currentNode = currentNode->nextNode)"
does NOT mean
for (ss = s->ss; ss; ss = ss->ss)
At least, not until you add
#define firstNode nextNode
into your program. Which WOULD raise a WTF!? moment for a lot of programmers. Also, The Fine Article also recommends using STL. In C code. Instead of int ***values; Really. Now, I am not sure what context you would find int *** in. In 30 years of C code, I have yet run across this. But, just how do you retrofit STL into C code that old?
And now on to the "incomprehensible"
s->ss->dc.d->v + i
Well, you can't have an ss without an s (see the first part of my comment), thus s->ss
Within that, we have a dc, which is (most likely) a union. To save memory. Probably a "context", but I'd actually need a few more lines...
Choose d, which is a pointer, v (likely "value") because we are adding a local integer.
Really, the author IS just inexperienced. Problem is, he has a blog and seems to believe in preaching. He takes a joke at face value -- and doesn't think of the real reason...
I condemn him to coding on an 80x24 terminal, in C 89 (or K&R C), or FORTRAN IV for two years... After which he should revisit this article.
Some hotels have a 110V/AC US outlet in the room. Ask.
If the hotel you are staying in doesn't have this, power converters are available. Buy one in the US and take it over. Prices in London are rather shocking. You will spend twice as much as you expected over there (It will cost you just under $40 US if you buy one in London).
Take a bus from Heathrow to London -- the cab fare is almost $150 US. But take cabs in the city. The drivers are very knowledgeable.
As for cell phones... mine just works. Ridiculous roaming fees, though, so talk to your cell provider before you leave, and buy an international plan. If you don't, you may end up with several hundred in cell phone charges.
Beyond this? Have fun and enjoy yourself. (I've never been to London on anything but business trips, but I've always enjoyed the experience).
Wasn't the claim, Watson.
Strong typing would make it impossible to send old format data to the API -- which would then force you to create an API extension. Couldn't just subsume the functionality.
Yes, weak typing along with versioning will work. "Strong typing" (ala C++ implementations "add the parameter descriptors in detail to the argument") won't, simply because the same "type" isn't being passed.
Yes, this can be misused to add 1 to "1". Which, in itself, isn't such a bad thing. After all, my Rosetta Stone for languages is to ask for the evaluation of 1000! which is an awfully big number. Indeed, it is closer to "1", than it is to 1, from the machines perspective.
Your definition of "misbehaving" is rather interesting.
What do you do when an angry, snarling dog, that has been known to kill, and threaten to kill, comes over and doesn't bite.
Do you reward it? Or do you run away, thankful that you're still alive? I certainly wouldn't be whacking it!
You know, you may be right -- I generally use OpenOffice, terminal sessions, Firefox, and some utilities.
For terminal, when I use "terminal" I can cut/paste *or* middle click. But, sometimes I use xterm (so I can pass in font selection on the command line) -- then, its middle click only.
Between OpenOffice, FireFox, Evince, its pretty much ok.
- As to overwriting. This occurs because the update events follow behind the UI. The problem is resolved by the composite extension, or by enabling backing store -OR- by increasing network bandwidth. Some old X Servers didn't have backing store (and certainly no compositing), AND ran over constrained pipes. It hasn't been a problem with desktop X for years.
- X is extensible by design. Multiple display support, accelerated 3D, video playback and compositing do work. For $DEITY sake, I use these features on my stinky little Acer Aspire One using Linpus! No particular problems -- "it just works" (tm). I don't like transparent windows, so I just don't bother, but it does work. Why the hell would a user want to know about the alphabet soup? Just use a packaged OS. The alphabet soup comes about because the development of X is an open process.
- And, in comparison with the Mac, you do notice that Apple packages an X Server with OS X? When running in a heterogeneous environment, it's necessary.
- Finally, you bring up the Unix Hater's Handbook. Ok, let's break it down:
1 - xload, xterm and xclock are possibly among the LEAST used programs under modern X based systems. They weren't
even installed on my Acer when I got it.
2 - Motif isn't used anymore.
3 - Cut and Paste really isn't an issue anymore, either.
4 - ssh -Y is usually used to remote X servers - authentication isn't an issue anymore either.
5 - Gnome and KDE provide the "customization methods"; since xterm isn't used anymore (or xcalc, or xedit),
the xresources issues are also gone.
6 - imake has been deprecated for YEARS.
7 - Pretty much nobody uses raw X protocol or XLib anymore either.
8 - NeWS was "killed" because IBM and DEC didn't want a repeat of NFS - they didn't want to send SUN any more money. So, they marketroids forced the issue. I agree the superior technology didn't win, but X is still around. Sucks to be the customer when they get what they have been told to ask for.
The UGH was relevant in the early '90s. No longer.
The "MAC UI Experience" could be planted on top of X. I am disappointed that Apple isn't driving that. It would involve developing several extensions that would be useful to X users. But, if Apple doesn't want to do it, others will:
http://www.freedesktop.org/wiki/Software/CompositeExt
http://en.wikipedia.org/wiki/XRender
http://keithp.com/~keithp/talks/randr/randr/
http://en.wikipedia.org/wiki/X_video_extension
http://docs.sun.com/app/docs/doc/801-6662/6i1196cd6?l=ja&a=view
The first four are generally implemented. The last is not (X/DPS). But, MAC OS X only implements a subset of X/DPS anyway (and, of course, it isn't compatible).
"It's useless to care about the pirates who would do it anyway, is a smaller group and usually dont have that much disposable income anyway. But it's the casual people and adults - your idea about piracy will change after you start getting more disposable income, like happened for me and lots of my friends and now happily buy what we enjoy (and another reason was the quality improvement and easiness of Steam and Spotify and other legit services)."
Um... no. "Lots" of my friends and I have a high disposable income. But we are simply not delivered what we want in a format that we are willing to use.
Frankly, the number 1 feature that "my group" looks for in a media player is a USB slot, and the ability to play xvid avi files. You know what? A lot of players now offer this. From the low-end on up. Can I go and buy a movie or tv programme in that format?
I don't really think that the (in the US) RIAA and MPAA are particularly on the ball -- they should have filed suit on Samsung, etc. for producing such devices. THERE IS NO "LEGITIMATE" CONTENT FOR THESE DEVICES. Would I purchase such content? Yes, I would. Ripping CDs and DVDs is a serious pain.
There may well be services like "Steam", but, honestly, I am a 50 year old, and I have never, and (most likely) will never use it. Just tell me where I can buy a copy of the new Batman movie on a USB stick. Meanwhile, if I buy a DVD copy (haven't yet), it may have yet another "anti-copy" measure de-jour implemented to make it inconvenient to rip. Frankly, it's easiest to simply torrent the damn thing (time is money, you know, and I have other things in my life to worry about).
Now, it is true that studios HAVE released movies in flash drive format:
http://www.bit-tech.net/custompc/news/604788/ghostbusters-is-first-film-to-be-released-on-usb-stick.html
but note that it has "DRM". It won't play on my Samsung player! And, its $53 for Ghostbusters (25 year old movie).
http://www.play.com/Gadgets/Gadgets/4-/11998344/Star-Trek-USB-Stick/Product.html
DivX, can "enable" up to 5 devices. Only $30 (much better than over $50). May work, but I am not sure enough to actually buy it.
And that's it. Meanwhile, what WE (my group) wants is the ability to purchase the programming, put it onto hard disks (good heavens, even my wife has a 1TB USB volume used for media and backing up her netbook, and we have 6TB in the home media server), be able to transfer to USB media for portability to be able to watch where we want. MY group sees nothing wrong with spending north of $1000 for a media pc. As long as it works. And the prices are dropping; we only paid $100 for a 1TB USB drive.
As it is, the content creators get very little from us. We have the money, but there is no product that we are willing to purchase. Which has driven us into torrents. Now, it would be hard to break the habit. Unless the content providers can somehow magically give us 500Kbps+ downloads of an incredibly large catalog. Which is the minimum bar that the "pirates" have set.
What has to happen
To get us back (and we ARE the ones with the money), the content has to be provided in SD or better quality, on-line, and via brick-and-mortar shopping, for the same price (or better for a download version), in DRM-free formats that are playable on the common home kit (aXXo's format would do nicely).
I would pay $5 for Ghostbusters (it's a 2 for $10 movie at WalMart). Billing must be as convenient as the Apple Store (and, yes, we buy from the Apple Store; but not music -- just iPhone games and applications. Why that is is another discussion, but remember, I *am* 50 years old).
And, having done that, it would still take time to convert us (our group). After all, we have been using torrents now for years.
Your RIGHTS as software creator. What are you talking about?
Those "rights" stop when the sale is made. To give some bad analogies -
I can buy a prime roast, and feed it to my dog, or let it rot. The farmer has no say in this.
I can buy a car, and blow it up. The auto designer has no say in this.
Back to your software...
You sell me software, and I can use it per your demands.
You sell me software, and I can just let it sit and not use it.
You sell me software, and I can destroy it.
You sell me software, and I can resell it.
You sell me software, and I use it per my needs.
None of these choices has ANYTHING to do with you. You could, of course, engage me in a contract instead of a sale, which would involve a negotiation, and, if you wanted to limit what I wanted to do, a price negotiation.
I bought my OS X at a retail store. I didn't enter a contract at the time of sale. There is an EULA, but, since there was no meeting of minds, I don't think it qualifies as a legal contract (in my jurisdiction, anyway). Still, the wording was "use only on an Apple labeled system". And Apple was kind enough to include some Apple labels in the package.
#1 Apple didn't negotiate a contract with me.
#2 Apple seems to have provided stickers providing "Apple Labeling".
#3 I am fully willing to accept the terms of Copyright Law.
So, what IS your point?
But.. but.. but..
I bought a copy of OS X from Apple! Sure, I read the EULA. To quote that EULA
"This License allows you to install, use and run one (1) copy of the Apple Software on a single Apple-labeled computer at a time."
(I looked further at the EULA, and "Apple-labeled computer" is not further defined)
Now, Apple provides stick-on labels WITH THE SOFTWARE! (interestingly, more than one -- are they encouraging piracy?) I interpret "Apple-labeled computer" as one that has the "Apple label"; in other words, one that has the sticker on it. So, I stuck one of those on a hack-in-tosh, and went to town.
Honestly, what is this suite about? Is Pystar not putting the label sticker on?
What are you talking about? You are using a CLIENT. What servers would you be running on that?
Let me be clearer. Assume that you decided to go with a Vintage version. Say, one with a Linux 2.0 kernel. What would be your security exposure? *IF* you decided to run sshd, you would be vulnerable. You won't be running a web server, or file sharing.
So -- if you wanted to expose the machine, make sure that sshd is updated. *IF* you want any other services, tunnel them. But for a client machine? Honestly, it doesn't matter.
I would recommend a small base system, but with a kernel that supports user-space file systems, to allow you to run sshfs for your file "sharing" (access) needs. Which precludes that old zipslack system, but I believe slightly more recent versions would work perfectly for you.
For example; I run a Fedora 8 variant on my netbook; I am sure that there is vulnerable software on it but what is the real exposure: none -- there aren't any open ports.
The only exposure would be a flaw in the network stack itself.
What you seem to be getting confused about is the strangely ENORMOUS vulnerability of old Microsoft products. Which I don't understand (how the hell could a client system be SO BAD with security?).
Evince is better that Acroread?
Maybe. But I have books which are simple bitmap pages. An example is the SNOBOL4 Griswold "Green Book" (google for gb.pdf). It takes FOREVER to render pages in Evince, whereas Acroread displays them at an acceptable rate.
Just sayin' Here is the run-time data. The test is simple: 512MB 1.6GB netbook (Acer Aspire One, Linpus dress, Acroread as installed by Acer, Evince installed from Fedora 8 repository), load and render the first five pages (only), and then exit to the command prompt.
Using Evince
[user@ariel SNOBOL]$ time evince gb.pdf
real 1m27.401s
user 0m6.532s
sys 0m1.980s
[user@ariel SNOBOL]$
Using Acroread
[user@ariel SNOBOL]$ time acroread gb.pdf
real 0m29.512s
user 0m8.789s
sys 0m1.044s
[user@ariel SNOBOL]$
Note that the timing data isn't particularly accurate -- it has to include my "click time" (actually, page-down), And, I accidentally did 6 pages in acroread (so the time is definitely over). I clicked ahead on the exit button for Evince. So, the timing advantage is actually to Evince!
Now, I'm not claiming that Adobe Reader is the cat's meow, but your rather blanket statement is very easily debunked. Evince takes 3x longer than Acroread. If that is "significantly better than Adobe's offering", I would like to see something you consider worse.
I leave my wireless connection "unsecured". Sure, the neighbours use it, and people needing iPod Touch location services.
I figure it's just good social behaviour. If I need network access when I'm "out and about", I will use someone else's wifi.
Just don't be a 'leet hacker asshole.
TCP/IP completely shields the application from the underlying transport.
A call is made to resolve a name (dns), a connection is opened, and... data flows. Or not.
So, your speculated "connectivity feedback" information has to come from a lower level than the application. It has to be in the stack.
Some platforms do incorporate this feedback from the stack. It just isn't an application responsibility. Even on platforms with good feedback (Blackberry), the applications are not aware.
And the application layer programmer should DEFINITELY not be making these decisions. If the application wants something other than TCP, the developer does have the option of using UDP.
So I decided to have a look at my netbook -- an Acer Aspire One, running the Acer Linpus Linux system. It's the 512MB memory with 120GB disk model; not the SSD dress.
[user@ariel ~]$ find /usr /sbin /bin /lib -type f -print0 | xargs -0 file | grep ELF | sed -e "s/:.*$//" >list
[user@ariel ~]$ wc list
12318 12318 455036 list
[user@ariel ~]$ ls -l `cat list` | awk -F " *" "{ sum += \$5 }; END { print sum }"
2090169634
For the "non-unix" types, this means -- traverse four directories (/usr /sbin /bin /lib) that contain all the binaries (well, I did forget /boot, but that's not very important for this discussion). We extract those files that mention ELF in the file-type, count them, and then sum their sizes.
Note that there are ~12,000 objects that would be expanded, taking up around 2GB of space. Which means that adding an alternate "fat" binary would roughly double this to 4GB. In other words, not very good for an SSD dress, but reasonable for a hard disk dress (my total data usage is 30GB on this netbook, so we would add 10% to the utilization).
On the other hand, this is storage resource that would not ever be reclaimed. There are other ways to achieve this result. For example -- simply provide multiple ELF objects in an archive, including a "bintester". Iterate each folder in the archive, test-running the bintester. If the bintester succeeds, use that. If none succeed, fail if its "closed object/source", or attempt to download and build the source. An example of this type of function is the VMware driver loader.
Or, use a neutral distribution -- JAVA, or Squeak, or the Microsoft CLR.
All of these provide similar results, without the need to modify the object loader. Which is something that I would really frown about -- After all, the loader is a very heavily used, very security sensitive component.
As to "fatness"; it turns out not to be as big an issue as I had originally feared (I did the measurement on the "worst-case" system I use, and started with the mind-set that it would matter a whole lot more than it turned out... my preconception was wrong).
Your mileage may, of course, vary.
PS. For full disclosure, you may note that I excluded /opt -- I have 3.9G of stuff there: OpenOffice.org3, Intel C 11.0, Adobe Reader, Microsoft MSVC 7, and some smaller stuff (tcl/tk dev, hua wei 220 support, and a virtual tape library . Since this may or may not impact a "standard" distribution, I decided to not include it (and, MSVC 7 is COFF format, used under WINE anyway).
Sure, those "large companies" can (and did) cut their infrastructure investments... but those investments were paid by public money.
You are not legally allowed to dig your own cables -- Easements were given by the government to the incumbents.
So, tell me again how the government ISN'T involved?
Personally, I don't like to bail on something I have already paid for, but I don't need the Internet "24/7" that much. I can easily deal with "web by mail" and UUCP, or even data transfer via "truck of tapes" again. Strangely enough, if hackers go that route, AND we control the "good stuff" -- that is, the good pirated music/videos and technical information, the "Internet" will go down that path instead.
Which puts the attempted controls by the "other" cartel at risk. Basically, the content cartel wants a centralized Internet, if there is an Internet at all. The delivery cartel wants to put road-blocks into that centralized Internet, to maximize their profits. The hackers are willing to Balkanize the Internet, screwing both of the cartels.
The "end-users" really want the product the hackers produce.
You tell me how this plays out...
And it really doesn't matter. If it's not a derivative work, the original Copyright wouldn't apply, either.
If Copyright applies, GPL would apply. If Copyright doesn't apply, GPL is pretty much irrelevant, anyway.
Exactly. If ".NET" is fast enough, it may be used. A reading of the article indicates a 2ms transaction difference. Since you are, or have been, "in the biz", I point out that a 2ms transaction difference is hardly considered insignificant.
It may be the platform. But most designers wouldn't use .NET or JAVA as the base. Generally, start with a message bus that is performant within specification, and add from that.
I don't dismiss the idea that .NET may have been the "killer" here; that coupled with license fees and control.
I am also doubtful that the full truth will be forthcoming. Microsoft is a very large presence, and I wouldn't want to piss them off (in anyone's shoes).
Still, I would not have based a system like this on .NET, and not on JAVA either. Certainly not the message bus part. DTRACE wouldn't even properly trace into the JVM (until recently). Now, I can speculate that the design was conservative, and the main message bus component wasn't in .NET, but that wouldn't really have allowed Microsoft to declare the LSE as the poster-child of .NET. Since that was done, I believe that the incedibly foolish move of trying to do the message bus in .NET was attempted. In which case, I am rather impressed by .NET, actually. Only a 2ms loss? That's rather incredible for such young software. Hats off to the Microsoft VM engineers! But this is still an incredibly performance driven space, and I suspect that the performance delta was too much.
"Probably"
You know, you are right. But low-latency trading is a category pretty much on its own. Generally, I support and recommend Solaris because CPUs can be partitioned easily, and tasks bound to specific CPUs. To reduce latency. DTRACE is useful to gain insight into support libraries and VMs. To reduce latency. To quote the Tabb Group:
"...more than half of all exchange revenues are exposed to latency risk today, up from 22% in 2003."
During the time, regulatory changes have forced more trades (broken down). To continue with the Tabb Group:
"TABB Group estimates that if a broker's electronic trading platform is 5 milliseconds behind the competition, it could lose at least 1% of its flow; that's $4 million in revenues per millisecond. "
which matches what I am aware of in this space. Now, 2.8ms vs. 0.4ms translates to some serious money. I find it hard to believe that the LSE takes it so lightly -- the traders sure don't.
Of course, shortening the network cables helps too (and this too is a concern). After all, light travels only 186 miles in a millisecond. If you trade electronically 186 miles from the exchange, you are a full millisecond behind someone trading at the exchange. The traders care.
How much does .NET contribute? I don't know -- however, you have already put the forth the argument that it is "probably" not a factor.
I bow to your expertise.
Of course Miguel suggested that Microsoft is, or could be, "our" ally (that, is, to free software);
"The creation of the CodePlex foundation was an internal effort of people that believe in open source at Microsoft. They have been working from within the company to change it. Working at CodePlex is a great way of helping steer Microsoft in the right direction."
Richard somehow saw this point BEFORE Miguel made it:
"CodePlex follows the same practice. Its stated goal is to convince "commercial software companies" to contribute more to "open source". Since nearly all open source programs are also free software, these programs will probably be free, but the "open source" philosophy doesn't teach developers to defend their freedom."
Unless it was Miguels attempt to separate Open Source from Free Software. Quoting Richard again:
"...because a program that doesn't run (or doesn't run well) in the Free World does not contribute to our freedom. A non-free program takes away its users' freedom. To avoid being harmed in that way, we need to reject proprietary system platforms as well as proprietary applications."
Should Miguel be upset by Richards musings? A good question -- but he seems to be. Miguel even attacks Richard ad hominem
"Richard Stallman frequently conjures bogeymen to rally his base. Sometimes it is Microsoft, sometimes he makes up facts and sometimes he even attacks his own community [2]. His language is filled with simple, George W Bush-eque terms like Good vs Evil, Us vs Them."
RMS takes the high road on his blog; at least he didn't stoop to attacks of that nature. Just espouses his philosophy and illustrate why he believes that Microsoft should not be trusted, without extraordinary proof.
Miguels reply has soured me. He certainly lost this debate; both on substance and style.
Let's cut to the net net (Just reading Raymond Chens blog, and I decided to get with the Microsoft speak). I am not in the US. I do not post in the US. My English is excellent, and I am able to either compose my own "reviews", or would be willing to simply post your reviews.
My rates are reasonable, and I am willing to work under aliases.
Contact me via email for your astroturfing and viral marketing needs. Payment accepted in US Currency, Euros, Canadian Currency, or (if I can actually be convinced that the product doesn't blow), product.
==
In other words, WTF are you thinking? All that will happen is that the astroturf business will "offshored". Next, the buying of these services has to be made illegal, but that will take years (actually, I predict never), but when/if that happens, the astroturf campaigns will simply be managed in an offshored basis as well.
"The insight is: Let's ignore what the malware does on a machine, and instead look at how it moves between machines. That is much easier to assess. And the moment malware gives up what allows us to detect it, it also stops being a threat."
But of course, malware that doesn't actually DO anything isn't a threat. As an administrator, I am worried about the misuse of resources.
Staging a DDOS attack from malware is a problem for me, because it uses my bandwidth inappropriately. Stealing credit card numbers because it is an inappropriate information leak. And so on.
I actually DON'T CARE if someone clicks on the funny cursors package, in exchange for complete information on their browsing habits -- as long as inappropriate information is not leaked. If the user loses the contents of their savings account to a hacker with a trojan? My initial reaction is to laugh, and then feel pity. As long as its not a theft of resources I am controlling.
Which boils down to: malware is defined by what it does. If propagation is an issue (usually network issues), it becomes my concern. Otherwise? I don't care. So, I use behaviour based approaches to malware control. If a new (to this system) piece of software doesn't have access to resources, it can't misuse them.
Simple trojans, viruses and worms? Amusing, but not particularly on my radar. Specific attacks on security frameworks designed to contain software? Definitely, along with root kits.
About the only reason I bother with "malware detection" is to keep Windows users happy(ier). They seem to think that this stuff is somehow important.
Because I am having a problem wrapping my mind around the US law.
The DMCA protects copyrighted works. Of course, the Autodesk software is copyrighted, but it is also licensed. Autodesk alleges that the software cannot be resold, due to licensing restrictions.
Copyright has not come into play yet.
Which I get. This may be disputed, but will falls under contract law.
Now, Autodesk enjoins EBay to remove the software, alleging a DMCA violation. Where the fuck did THAT come from? Copyright was never infringed (as far as I can see). Of course, EBay removes the software, but Autodesk must have known that this was not a Copyright infraction! Of course they hold the Copyright, but first-sale doctrine would apply.
DMCA shouldn't apply. But, hey, colour me confused. Now I understand that it would be illegal to have illegal licensing terms, but the only terms that could possibly apply (in a recent license) would be (1) The DMCA covers the Copyrighted portions (which is the case anyway, so why bother mentioning it), or (2) We allow the additional dropping of DMCA terms. In any case, any additional restrictions would be license restrictions, and not DMCA restrictions. Specifically, the removal of the first-sale doctrine would be a licensing term, and would not follow Copyright.
Which would appear to make a DMCA takedown inapplicable.
But what the fuck do I know? US law confuses me...
On a re-read I think I understand the disconnect.
There is no "theory". You can decline the GPL, and still use the software.
Do you get that? But, if you decline the GPL, Copyright applies. (Just the normal thing). Same as if you had purchased, or had been lent a book (for example).
You can still do whatever you want with the software, but would have no right to distribute that software. You know, just Copyright as usual.
This is what I mean by not agreeing to the GPL. It doesn't affect you as a user of the software in the slightest. In fact, since it is only under Copyright, and not licensed, it is still more free and less risky than the licensed software from most vendors. Where the EULA applies.
Which is where your risk analysis falls apart. Simply use GPL software, and decline the GPL. This is the least risky path for a user.
For a developer the licensing should be careful examined. You would be dumb not to.
This may be a surprising result. It is to many; some software even has a splash screen put in by some zealot that says, in effect, "to use this software, you must agree to the GPL". This is incorrect. To quote the GPL
"Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted..."
Read this carefully; this is what lets you use the program without agreeing to the GPL. You should be able to decline that aforementioned splash screen, and still use the program.
My netbook is an "appliance". Generally it is powered off. If I need some information (notes, contact info), I power it on. Old rom-based systems (like my old model-100) would be on instantly. Ready to work.
My netbook takes 17 seconds to become ready. It won't go on the network (that takes just over 30 seconds), but I can access information in 17 seconds.
But it's not fast enough. If someone has asked a question, I turn it on, and then WAIT. I can issue the command to find the information needed (5 seconds to load the program, 5 seconds to enter) - the time to reply is now on the order of 30 seconds. If it were "instant on", the time would be 10 seconds.
It makes a big difference in the social interaction.
More bizarre, it takes 15+ seconds to turn OFF. If I don't give it the 15 to 30 seconds to turn off, I get a 10 minute+ penalty on the next power up.
I don't (really) care about server systems, or "desktop" systems (though I prefer the instant-on thin client). But I am partial to (almost) full keyboards for entry, and thus use a netbook. Yes, it "sleeps" but I can't guarantee that it will be used or plugged in on any schedule. So, I prefer to turn it off when not needed, and turn it on when needed.
A super-fast on/off for my netbook is important to me. There are two buying points for a netbook for me: (1) keyboard quality and (2) on/off time.
Your mileage will, of course, vary.
The GPL is a license that grants additional rights beyond Copyright.
And that's all it is. How do you infer intent of the FSF from that? (Whatever that intent is; you may be right about the intent, but it actually doesn't matter).
The only thing that matters is the GPL itself here. Which allows EXACTLY for the cases in my post.
Does "freedom" require enforcement? In your words, the enforcement itself is against freedom. But, if I write a program, or a book, and it is NOT a "work for hire", I have the Copyright. The copyright can be enforced.
Interestingly, it doesn't matter if I don't bother to say "Copyright" in the work:
"Copyright applies to all original:
* literary or textual works: books, pamphlets, poems, computer programs
* dramatic works: films, videos, plays, screenplays and scripts
* musical works: compositions consisting of both words and music, or music only (lyrics without music are considered literary works)
* artistic works: paintings, drawings, maps, photographs, and sculptures
* architectural works
Copyright also applies to three other kinds of subject matter: performer's performances (section 15); broadcast communication signals (section 21); and sound recordings such as records, cassettes and CDs (section 18).
Protection under copyright laws is automatic in Canada: as soon as an original work has been written down, recorded or entered as a computer file, it is immediately copyright-protected." (http://www.media-awareness.ca/english/resources/legislation/canadian_law/federal/copyright_act/cdn_copyright_ov.cfm)
Which means I can put source code on the Web, and can sue you for copyright infringement if you redistribute that code. Just that simple.
I would need to EXPLICITLY change the terms to allow you to redistribute the code. GPL is one possibility. Public Domain is another (and I have used Public Domain more often that GPL).
Simply abandoning the GPL? If the choice is GPL or nothing at all, the GPL is "more free" (based on automatic Copyright grants). Possibly you want everything to be Public Domain. Which means that anyone can do anything (including ignoring authorship).
You prefer one of the BSD licenses, perhaps? Please enlighten me on what you propose to replace the GPL.