Situation in Canada (I don't know much about US, so don't ask).
I have *never* entered into a license with a DVD hardware vendor.
I have *never* entered into a license arrangement with a DVD content vendor.
I hve a DVD player and have purchased DVDs.
The *only* law that applies is standard copyright. Which means that I can use the DVD in accordance with copyright provisions. That may include temporary transcription, if needed to view the content (rights in your jurisdication may vary). And it does... in Canada.
I can argue that DVDs are computer programs, so (Canadian Copyright):
"computer program" means a set of instructions or statements, expressed, fixed, embodied or stored in any manner, that is to be used directly or indirectly in a computer in order to bring about a specific result;
1997, c. 24, s. 18.
Computer Programs
30.6 It is not an infringement of copyright in a computer program for a person who owns a copy of the computer program that is authorized by the owner of the copyright to
(a) make a single reproduction of the copy by adapting, modifying or converting the computer program or translating it into another computer language if the person proves that the reproduced copy is
(i) essential for the compatibility of the computer program with a particular computer,
(ii) solely for the person's own use, and
(iii) destroyed immediately after the person ceases to be the owner of the copy; or
(b) make a single reproduction for backup purposes of the copy or of a reproduced copy referred to in paragraph (a) if the person proves that the reproduction for backup purposes is destroyed immediately when the person ceases to be the owner of the copy of the computer program.
So, there we have it -- if it is argued that DVDs fall under "Sound Recordings" (which encompasses a bit more), the wheels REALLY fall off. Since the DVD contains a digital sequence that when interpreted will produce a picture, it can be viewed as a computer program. Indeed the MPEG stream is an instruction stream for the hardware MPEG decoder.
So, it is legal to modify and copy the DVD for purpose of viewing it on your handheld.
We can make two copies: backup and transcribed/modified and have the original. The problem is that I can't rip it to hard disk *and* make a down-sampled version. PITA. [but this assumes the DVD falls into the computer program class -- it may fall into the sound recording class, which would be much better].
What should have happened, is that SCO should not have been offered a license (GPL or otherwise) for the new NMAP code.
No license -- and SCO can't distribute. You can't ADD stuff to the GPL, but it *is* ok to not offer.
Just tell SCO "I'm sorry, but everyone *except* you can license under GPL. You can't...".
The GPL won't let you retract an existing license.
But new code doesn't have to be exclusively under GPL licensing terms.
There is *one* problem -- if the NMAP folk license under GPL to another party, the third party can redistribute to SCO. So SCO can *use* the software. But the original copyright holder can simply tell them that they have no right to copy.
"such as Linux." does NOT say Linux. Indeed, Linux may be *specifically* excluded. It says "such as Linux.", using Linux as an example of software with certain characteristics.
So, both may be true.
These are TAX ACCOUNTANTS and AUDITORS we are dealing with. People who actually interpret tax code.
You don't indicate whether the PDF generation needs to be dynamic.
In either case, Ghostscript will produce a PDF for you, from a PS (Postscript) data source. A fairly trivial transformation.
This leaves "printing" to a Postscript printer, which Windows, Unix *and* Mainframe is capable of.
I assume that since you have (somehow) "outgrown" HTML encoding and features, that you probably need somewhat more advanced formatting than most direct PDF generation libraries will (easily) provide.
I also assume that you want to reduce furture maintainance. With these two goals in mind, the PS->PDF transformation is most reasonable, giving you the flexibility to choose how to "print" the PS.
Confusing "access service providers with utility providers"... just one 'utility' that... wholesale(s) to service providers...
Um... in a word, NO.
This is the INTERNET. Break it down -- it is the attachment of networks. I have a network, and I want to share in a "network effect". I attach MY network to another network.
To accomplish this, we can use... POTS with modems, carrier pigeons, radio, or other alternatives. The *ONLY* thing that the "competing billing provider" is offering me is a way to attach "my network" to "her network".
The ISP is common carrier. But with a twist. And the twist is this -- I don't care about the physical transmission details. Compatibility is not a concern. The "Internet" comes on Cable Modem, POTS Modem, Satellite, WAP, and Ethernet, among others. It comes wireless, copper, or fiber, among others.
[I do care about some of the characteristics of the physical layer -- like speed and reliablity]]
If would be wonderful to *certain* folk to regulate that mess, for control. But, it *shouldn't* be done.
For example, if cable modem service where cut at a border, POTS modems can be used. If POTS is cut at a border, satellite can be used. If *everything* is regulated, the regulators would have the say.
Take it from someone "in the business"... (my creds are: (1) performance analysis for experimental digital project, uncompressed video (2) design wireless networking for 10/54Mbs home video transmission (3) HD mode development for ATI Xilleon, and other projects).
The effective data rate for this "theater" is the same as digital SD television -- not even HD.
If the compression is THAT much better, I would have heard about it... and I haven't.
They won't be able to blow this up to a big theater screen (unless its filtered to hell). It's not gonna look good. Of course, we *could* be talking about a bad quality small theater screen...
So this is a big yawn. Worse -- they DO have the intrastructure needed to move 30Mps. The just want to, what, cut costs? Give 'em at LEAST HD resolutions (36Mbps).
And, if the compression is THAT GOOD (6 to 10 times better than current) -- there are other applications we would have seen it in first -- high end cam-corders, and (at least) a proposal for a DVD replacement format COMPLETELY COMPATIBLE with existing DVD technology (HD DVDs would be possible, with a blue laser!).
Linux is a kernel. Just a kernel. Drop in BSD or HURD...
Mozilla? A bit harder to replace. But doable.
OpenOffice -- very difficult to replace. Maybe doable (assuming import libraries are suitably available).
XFree86? Damn near impossible to replace. Well -- start with X Consortium and reverse video cards till the cows come home.
How many SLOC for the kernel vs. the other bits?
The kernel just facilitates. It doesn't actually do anything useful. X facilitates the drawing and GUI. The applications are what counts.
So, the most important parts of "Linux" (for my Wife, my Mother-In-Law and other --normal-- users) are (and this is in order!):
- Mozilla - Evolution - OpenOffice.org - XFree86 - GNOME/KDE - Linux Kernel
See? But it said "Linux" on the box... I say, give appropriate props to the others (if they *want* them). Also, XFree86 is not just a "Linux" program. Its BSD/LINUX/WINDOWS/...
My Windows machine would be useless without it (and I am using "cygwin" as a kernel, and not "linux"). So, even to me, XFree86 is more important that Linux.
X is a graphics server. Clients put out a stream of packets which tell the server what to draw.
I can even view my "gnome" application from Windows with Hummingbird -- no local X server at all.
There IS NO GPL violation. Anyone can implement an X Server *without* impacting any applications (including GNOME and KDE).
The only time it comes even close is if you use SHM, and even that is only an interface.
XFree86 can use *any* license, and not trigger GPL vioations. There are even commercial X Servers (even for Linux) that don't come with source. Xi Graphics and Metrolink come to mind immediately (and there may be more -- but I'm not going to bother looking -- two examples should be plenty!). And yes, you CAN use GNOME on to of these "foreign" X servers. And yes, they may perform better than XFree86 (or not -- YMMV).
GOME and KDE use the X Server. The X Server does not use GNOME or KDE. Ok? That's why it's called the X *Server*.
And... you don't link apps to an X server. You may link to a library that interacts with the X server. You *certainly* don't link to X. There is no "API" in the MS Windows sense. Only packets.
Mandrake sells a "Linux" OS. That's what they have on the box...
But, in reality, it should be an "XFree86" OS. That happens to run on Linux...
Or... XFree86/GNU/OpenOffice/Linux.
In terms of importance, I think that the XFree86 component is MORE vital to Mandrake than Linux (right now). It is easier to replace the kernel than to replace the X Server.
And the X folk are demanding some recognition...
Suck it up, and give it to them. There was a time when running "Linux" did not mean a GUI. A lot of uses STILL don't need a GUI. But most (RedHat, Mandrake, SuSE) compete with the GUI.
So give it up to the X folk... Put it on that package. Yes, even at this late date.
X is *just* the network drawing stuff. There has been no need to change that...
X *does* have the ability to support multiple servers, and each server can support multiple screens. Pretty much has *always* had this ability.
The ability to "snapshot" has very little to do with X. The server could certainly snapshot and forward. In fact, it is remarkably EASY to do with X. Except -- (and there seems to always be an "EXCEPT") when your alternate server is running a different pixel depth... Like, you launch your application on a true-colour display, and then bring it back on a monochrome (1-bit) display. Even that has a solution. Anyway -- the other "common" display systems (MAC and Windows) don't have a solution (unless going through something like VNC).
Development hasn't stopped -- but the "main-line" of the X server *is* frozen. Development occurs on the fringes (new extensions), and with new drivers.
"ability of developers to use proper and well implemented OO methodology..class designs...a priori with insufficient in depth..."
The reason is that most developers INSIST that class structure should model the application domain. Even if it doesn't make the slightest lick of sense.
Reason? Because of how OO was taught. Concrete to abstract, keeping in line with a problem domain. (coloured rectangle->rectangle->shape). This certainly makes teaching easier, but doesn't make for sensible class hierarchies.
OO is separate from a class hierarchy. The only reason we HAVE a hierarchy is to allow code to be reused. Therefore, the proper hierarchy is not a taxonomy, it is the one that leverages the code maximally.
As an example - Where to put a Date class?
Smalltalk classifies a Date as a Magnitude -- things that can be compared. So comparisions can be leveraged (eg. =). If it were NOT there, all comparisions need re-implementation.
Also Character should be a Magnitude as well. Maybe String, but that's a bit shaky (mixins help, it's comparable, but is a collection of Character).
Where to put a class in the hierarchy should be driven by the principle of minimizing code. *NOT* modelling the real world. If you model the "real world" you are probably in a serious "world of hurt". Also, in this case, the OO "paradigm" isn't going to save you much in the way of coding (will save you debugging, hopefully).
Avoidance of bugs...
Stay away from stupid languages. Insist that optimization is the compiler/computers job. The Rosetta Stone is to ask for a factorial function, *without* specifying any details. Code it in the *most* natural way, and then test it with 10,000!
Now, determine how much breakage has occurred (if any).
The answer to LARGE projects is to write code ONCE, and be able to reuse it in any context that needs the same processing. I don't want to have to code the factorial algorythm for small integers, large integers, and really big integers.
I want the code to accomodate the data-type that is needed. If I sort, and use "" ordering, I want that to work across any datatype.
If I have to re-implement, I lose on the previous work.
Class hierarchies can help structure (look at Smalltalk), but are not often used in this way.
What!?! He set up a dual boot system! The family can CHOOSE Linux or Windows. If they DON'T have Windows/XP, they would have to pay for the upgrade. Why would they, if Linux works?
And, after PAYING, they then have to install Mozilla, or Opera (replacing IE), or the "Google Toolbar" (no, I don't know what that is, sorry). I do know what google is, but have never seen this "toolbar".
You should select OS vendor by OS update quality. If Mandrake isn't cutting it, try something else.
2 - Five button mouse
One for each finger, that's cool. Now, if the mouse vendor only supports Windows, then don't buy the product. Or, buy the OS that the mouse vendor IS supporting (if you *must* have that mouse.).
If Linux hppens to support it, good. Get someone to install it for you (and pay for it). Solve the damn problem -- why are you whining?
3 - You just want it to WORK
So pay someone to set it up for you. Even Microsoft. Or some other company. Stop the silly whining.
4 - The care anlogy
That's wrong. You installed a "home-brew" OS onto your computer...
Yes, if you *built* the car (say, from an old Volkswagen frame), and made a customized dune buggy -- you may have to put up with having to buy the correct grade of gas from JUST the right pump style...
After all, you *built* the OS (especially the 2.6 upgrade -- and -- you are using GENTOO, for God's sake). Stop the whining.
Sounds like you need to buy Windows, or RedHat commercial product, or Solaris (or whatever).
Run on approved hardware, with approved applications.
Get someone to firewall you... and mintain your installation.
-- no problems, and no fucking whining.
If you (as you say), are into this as a hobby, then enjoy. Contribute even. I just don't like this sort of senseless rant.
My mother-in-law started using computers at 70 years of age. I gave her a LINUX box, locked down with a particular set of applications. It's been working for 3 years now -- no problems. (the hard drive just went -- and I have to fix that).
No fancy 5-button mice, first person shoot-em-up games, no GENTOO "build it yourself" (indeed, she doesn't KNOW the root password), no manuals (well, I did give her a "StarOffice for Dummies" book).
Updates handled "quietly" by me, from almost 1000 miles away.
Since she IS my mother-in-law, I don't charge for the service, but I would be delighted to sell it to you. I just don't think that you want that.
I ran into this. Received a spam from ?? advertising insurance brokering.
The most objectionable thing was that the spammer had forged the return address to reference MY domain. Possibly I was going to be flooded with people screaming "Stop it!".
I was upset. I went to the referenced web site, to see if I could track down the owner. No such luck; the web site ONLY permitted sales. I then created a dummy sales request, with a return to a throw-away hotmail email. Sure enough, I had a quotation several minutes later. I then choose one of the insurance vendors which had been quoted, and called them.
They took it from there -- the web site was not authorized to sell that insurance (very illegal in my jurisdiction). But, the "vendor" (spam payloader?) was GONE. Had to do all his/her business within several hours!
And, how does the "spam payloader" actually get paid? It would be commissions, but those would have to route through another party. It strikes me as expensive to set this up, and only have it operational for 3 to 12 hours?!
Indeed, just over half the time I have bothered to look, the "spam payload" has been "defanged" by the time I have gone to look (usually 1 to 2 hours after my mail server receives the spam).
Getting rid of commission sales would help; but I am not sure that is the right answer. Maybe someone needs to invent a "smart pill".
I will quote (http://www.law.cornell.edu/topics/contracts.html)
"Contracts are promises that the law will enforce. The law provides remedies if a promise is breached or recognizes the performance of a promise as a duty. Contracts arise when a duty does or may come into existence, because of a promise made by one of the parties. To be legally binding as a contract, a promise must be exchanged for adequate consideration. Adequate consideration is a benefit or detriment which a party receives which reasonably and fairly induces them to make the promise/contract . For example, promises that are purely gifts are not considered enforceable because the personal satisfaction the grantor of the promise may receive from the act of giving is normally not considered adequate consideration. Certain promises that are not considered contracts may, in limited circumstances, be enforced if one party has relied to his detriment on the assurances of the other party."
Now... what promise did I make to the holder of the copyright when I purchased the DVD? That's right, I didn't promise ANYTHING. What promise did the vendor make to me? That's right, I wan't promised ANYTHING. What consideration was I given; that would compel me to give up my rights? Again, I'll take NONE as the answer. And what consideration did I give to possess the piece of plastic with the data? The vendors purchase price.
No way in hell that this is a CONTRACT. I simply purchased a good. And that just happens to have some copyrighted material on it.
I can use the DVD for any legal purpose, including reselling. The vendor may desire there to be a contract in place, but legally there isn't.
When I buy something, I do NOT enter into a contract. You are right; no one has forced me into an agreement. THERE ISN'T ONE.
As to being bound by [the contact] -- I didn't enter into a contract, so I am not bound by it.
And, once purchased, I'll do any damn thing I want with the data. As long as it is illegal within the prevailing laws. If its an audio CD, I'll certainly allow my friends to make copies (permitted here). If its a DVD, I won't make copies, but I will decrypt it for my own use.
If the publisher wishes to enter into a contract with; relating to my USE of the data, she is certainly welcome to. However, I will demand appropriate compensation.
For example - view DVD on approved player ONLY. That would make the DVD worth $8 CDN to me. Sure, I'll buy it, but for that restriction, I want a serious negotition on price.
I don't think that encryption is useful, because it gives me pains when I want to use the product. I do find "region encoding" useful, because it prevents me from accidentally playing a PAL disc on NTSC gear (or SECAM).
Anyway, if you consider yourself "bound by a contract" after making a simple purchase, I urge you to reconsider your position. Go talk to a lawyer.
SUN had a desktop based on PostScript. But, DEC, IBM, etc. didn't want to make it a standard. I mean, just look at what happened with NFS! Everyone needs it, and SUN got licensing revenue.
So SUN News (which was technically better than X), was discarded.
X is a graphics server. It is *not* a "desktop" in the sense of Microsoft Windows.
To make X into a desktop, we have to add a window manager, an operating system (with all that entails), etc.
An example -- I run X on a system. I use it as a terminal. The window manager runs on another computer, as do all of my applications. Indeed, they run on three computers (or more).
Each of the "windows" is displayed on my terminal, and I have a single keyboard and mouse. Using X, it looks like I have a single big computer, and not three (or more) different ones.
This IS a coherent environment. And, it has had time to be tested and proven.
So -- we have "coherent". A broader definition than the one you probably meant...
Performance. The X clients do not need the resources of a local X server. Thus, the boxes running in my "coherent" environment generally do NOT have monitors, keyboards, mice of their own. Indeed, the only box I have that HAS another monitor has a variety of TVs (I do set-top box work). Performance is higher because these boxes do NOT have to waste resources on a GUI. *That* task is moved to other machines.
Given that the "remoteness" is important, the "lack of change" is also important. An X server is an X server.
My X server is cygwin, running on Windows 2K (company mandated -- I must also run Outlook). Clients are on a custom processor (Xilleon), Linux (Intel), or SUN. I shouldn't care WHICH machine originates the X to the server -- I just want the graphics.
Given that this works, and that X has proven itself, why throw it out? *YOU* may not need the support, but *I* do. If you don't want X, go with Microsoft or Apple. If you need to run X, you can always throw on an X server. Be happy that the X code is portable enough to allow this to work reliably (and its free/Free).
Now, that's difficult. In your description (X, Mozilla, openoffice.org), X could be running on one machine (and, for me, it does - X on cygwin), Mozilla on another, and openoffice.org on a third.
This is coupled with not having access to the applications. The data rendered during the cut may not be the data needed at paste. If every application needed to be able to convert formats, this would lead to serious bloat.
There is an attempt to solve this with X, but I don't think its very good. Nor is the Windows solution very good either (it MOSTLY works, due to MS setting de-facto standards *and* not allowing a remotable GUI).
And, this isn't the job of X. There isn't *anything* graphical about the cut and paste problem. Except that the X server is the only common place to store the clipping... We probably need a clip server (non-X) that can handle conversions.
And mmap() can have multiple mappings of the file -- how do you think that's handled? It's the same thing. Why should the kernel have to go to disk again? The map consistency has to be there already, to handle mmap(). COW if its private, otherwise, share. If the read()/write() buffer is not aligned, you do need to copy the data -- as if you are a user of mmap(). Big deal, the optimization is "lost".
Still, the easiest way to handle this is to always mmap() files, and read/write will either (a) be replaced by mmap(), or (b) do a copy. If the kernel lives in 64 bit land, the application can still live in 32 bit land for better cache handling, and the optimization works. If the kernel is 32 bit, mmap() files always doesn't work, and there are problems... (HURD), or some semi-fancy filesystem code.
As to WHY? The same code can run at near-optimal speed (mmap-ish), and STILL use read/write for portability to other environments. If I write mmap() based code, I have to worry about alignment, AND have to worry about porting to read/write. If I use read/write, and give page-alignment, the OS can optimize if it is able.
Do YOU want to do the lifting (porting) or leave it somewone else?
It's address space, along with threading that kills you the quickest...
Here's the thing.
If you spin off threads, each thread gets a reserved chunk of address space for its stack. It shares code and data. The stack MUST be addressable by other threads, to allow proper thread semantics for data sharing.
If (as is typical) 1MB is reserved for the thread stack, 1000 threads will take up 1GB of address space and 4000 threads fill memory address space in a 32 bit address space.
So, you have a fancy web server, with SMP, using multi-threading to spin connections. Say 2 threads per connection (and a few more for overhead), and you find that you cannot run more than 1500 concurrent connections. 1500 connections is not a "really, really huge server". That would be low to mid-range in my book.
If a read() uses a page-aligned buffer, from a page-aligned source, then why wouldn't the OS map a page directly into the application space? (Assuming that the area had not been mmap'd shared). The same optimization can be made on write() calls.
The same considerations need to be applied to mmap a file, so there should be is no difference.
In other words, read() and write() with page-alignment constraints should be the same as mmap. The difference is that re-using the same buffer may require an unmap.
With mmap, a unmap doesn't have to match every i/o. Depending on the speed of virtual mapping vs. device i/o rate, this may be significant (or not).
Actually, you *can* download music (in Canada). The other party may, of course, be in violation, but *that* party has to suffer the consequences.
Ratboy
Situation in Canada (I don't know much about US, so don't ask).
I have *never* entered into a license with a DVD hardware vendor.
I have *never* entered into a license arrangement with a DVD content vendor.
I hve a DVD player and have purchased DVDs.
The *only* law that applies is standard copyright. Which means that I can use the DVD in accordance with copyright provisions. That may include temporary transcription, if needed to view the content (rights in your jurisdication may vary). And it does... in Canada.
I can argue that DVDs are computer programs, so (Canadian Copyright):
"computer program" means a set of instructions or statements, expressed, fixed, embodied or stored in any manner, that is to be used directly or indirectly in a computer in order to bring about a specific result;
1997, c. 24, s. 18.
Computer Programs
30.6 It is not an infringement of copyright in a computer program for a person who owns a copy of the computer program that is authorized by the owner of the copyright to
(a) make a single reproduction of the copy by adapting, modifying or converting the computer program or translating it into another computer language if the person proves that the reproduced copy is
(i) essential for the compatibility of the computer program with a particular computer,
(ii) solely for the person's own use, and
(iii) destroyed immediately after the person ceases to be the owner of the copy; or
(b) make a single reproduction for backup purposes of the copy or of a reproduced copy referred to in paragraph (a) if the person proves that the reproduction for backup purposes is destroyed immediately when the person ceases to be the owner of the copy of the computer program.
So, there we have it -- if it is argued that DVDs fall under "Sound Recordings" (which encompasses a bit more), the wheels REALLY fall off. Since the DVD contains a digital sequence that when interpreted will produce a picture, it can be viewed as a computer program. Indeed the MPEG stream is an instruction stream for the hardware MPEG decoder.
So, it is legal to modify and copy the DVD for purpose of viewing it on your handheld.
We can make two copies: backup and transcribed/modified and have the original. The problem is that I can't rip it to hard disk *and* make a down-sampled version. PITA. [but this assumes the DVD falls into the computer program class -- it may fall into the sound recording class, which would be much better].
Of course, see your lawyer, etc. etc.
Ratboy
There really isn't a challenge under GPL.
What should have happened, is that SCO should not have been offered a license (GPL or otherwise) for the new NMAP code.
No license -- and SCO can't distribute. You can't ADD stuff to the GPL, but it *is* ok to not offer.
Just tell SCO "I'm sorry, but everyone *except* you can license under GPL. You can't...".
The GPL won't let you retract an existing license.
But new code doesn't have to be exclusively under GPL licensing terms.
There is *one* problem -- if the NMAP folk license under GPL to another party, the third party can redistribute to SCO. So SCO can *use* the software. But the original copyright holder can simply tell them that they have no right to copy.
Remember folks, it *is* a monopoly!
Ratboy
Interesting --
but...
"such as Linux." does NOT say Linux. Indeed, Linux may be *specifically* excluded. It says "such as Linux.", using Linux as an example of software with certain characteristics.
So, both may be true.
These are TAX ACCOUNTANTS and AUDITORS we are dealing with. People who actually interpret tax code.
You don't indicate whether the PDF generation needs to be dynamic.
In either case, Ghostscript will produce a PDF for you, from a PS (Postscript) data source. A fairly trivial transformation.
This leaves "printing" to a Postscript printer, which Windows, Unix *and* Mainframe is capable of.
I assume that since you have (somehow) "outgrown" HTML encoding and features, that you probably need somewhat more advanced formatting than most direct PDF generation libraries will (easily) provide.
I also assume that you want to reduce furture maintainance. With these two goals in mind, the PS->PDF transformation is most reasonable, giving you the flexibility to choose how to "print" the PS.
Ratboy.
Ruby syntax *is* Smalltalk syntax. With some extra bits...
So, I take it that you really don't know Smalltalk or Ruby?
| a b c |
| a, b, c |
Smalltalk and Ruby for local variables... Etc.
leerpm
... just one 'utility' that ... wholesale(s) to service providers...
Confusing "access service providers with utility providers"
Um... in a word, NO.
This is the INTERNET. Break it down -- it is the attachment of networks. I have a network, and I want to share in a "network effect". I attach MY network to another network.
To accomplish this, we can use... POTS with modems, carrier pigeons, radio, or other alternatives. The *ONLY* thing that the "competing billing provider" is offering me is a way to attach "my network" to "her network".
The ISP is common carrier. But with a twist. And the twist is this -- I don't care about the physical transmission details. Compatibility is not a concern. The "Internet" comes on Cable Modem, POTS Modem, Satellite, WAP, and Ethernet, among others. It comes wireless, copper, or fiber, among others.
[I do care about some of the characteristics of the physical layer -- like speed and reliablity]]
If would be wonderful to *certain* folk to regulate that mess, for control. But, it *shouldn't* be done.
For example, if cable modem service where cut at a border, POTS modems can be used. If POTS is cut at a border, satellite can be used. If *everything* is regulated, the regulators would have the say.
Ratboy.
Take it from someone "in the business"... (my creds are: (1) performance analysis for experimental digital project, uncompressed video
(2) design wireless networking for 10/54Mbs home video transmission (3) HD mode development for ATI Xilleon, and other projects).
The effective data rate for this "theater" is the same as digital SD television -- not even HD.
If the compression is THAT much better, I would have heard about it... and I haven't.
They won't be able to blow this up to a big theater screen (unless its filtered to hell). It's not gonna look good. Of course, we *could* be talking about a bad quality small theater screen...
So this is a big yawn. Worse -- they DO have the intrastructure needed to move 30Mps. The just want to, what, cut costs? Give 'em at LEAST HD resolutions (36Mbps).
And, if the compression is THAT GOOD (6 to 10 times better than current) -- there are other applications we would have seen it in first -- high end cam-corders, and (at least) a proposal for a DVD replacement format COMPLETELY COMPATIBLE with existing DVD technology (HD DVDs would be possible, with a blue laser!).
So this is bunch of hooey.
Thanks for you time; I needed to vent.
Ratboy.
Linux is a kernel. Just a kernel. Drop in BSD or HURD...
Mozilla? A bit harder to replace. But doable.
OpenOffice -- very difficult to replace. Maybe doable (assuming import libraries are suitably available).
XFree86? Damn near impossible to replace. Well -- start with X Consortium and reverse video cards till the cows come home.
How many SLOC for the kernel vs. the other bits?
The kernel just facilitates. It doesn't actually do anything useful. X facilitates the drawing and GUI. The applications are what counts.
So, the most important parts of "Linux" (for my Wife, my Mother-In-Law and other --normal-- users) are (and this is in order!):
- Mozilla
- Evolution
- OpenOffice.org
- XFree86
- GNOME/KDE
- Linux Kernel
See? But it said "Linux" on the box... I say, give appropriate props to the others (if they *want* them). Also, XFree86 is not just a "Linux" program. Its BSD/LINUX/WINDOWS/...
My Windows machine would be useless without it (and I am using "cygwin" as a kernel, and not "linux"). So, even to me, XFree86 is more important that Linux.
Isn't that stunning?!?
Ratboy.
Znork...
That's utter nonsense.
X is a graphics server. Clients put out a stream of packets which tell the server what to draw.
I can even view my "gnome" application from Windows with Hummingbird -- no local X server at all.
There IS NO GPL violation. Anyone can implement an X Server *without* impacting any applications (including GNOME and KDE).
The only time it comes even close is if you use SHM, and even that is only an interface.
XFree86 can use *any* license, and not trigger GPL vioations. There are even commercial X Servers (even for Linux) that don't come with source. Xi Graphics and Metrolink come to mind immediately (and there may be more -- but I'm not going to bother looking -- two examples should be plenty!). And yes, you CAN use GNOME on to of these "foreign" X servers. And yes, they may perform better than XFree86 (or not -- YMMV).
GOME and KDE use the X Server. The X Server does not use GNOME or KDE. Ok? That's why it's called the X *Server*.
And... you don't link apps to an X server. You may link to a library that interacts with the X server. You *certainly* don't link to X. There is no "API" in the MS Windows sense. Only packets.
Ratboy.
Not...
Mandrake sells a "Linux" OS. That's what they have on the box...
But, in reality, it should be an "XFree86" OS. That happens to run on Linux...
Or... XFree86/GNU/OpenOffice/Linux.
In terms of importance, I think that the XFree86 component is MORE vital to Mandrake than Linux (right now). It is easier to replace the kernel than to replace the X Server.
And the X folk are demanding some recognition...
Suck it up, and give it to them. There was a time when running "Linux" did not mean a GUI. A lot of uses STILL don't need a GUI. But most (RedHat, Mandrake, SuSE) compete with the GUI.
So give it up to the X folk... Put it on that package. Yes, even at this late date.
Ratboy
X is *just* the network drawing stuff. There has been no need to change that...
X *does* have the ability to support multiple servers, and each server can support multiple screens. Pretty much has *always* had this ability.
The ability to "snapshot" has very little to do with X. The server could certainly snapshot and forward. In fact, it is remarkably EASY to do with X. Except -- (and there seems to always be an "EXCEPT") when your alternate server is running a different pixel depth... Like, you launch your application on a true-colour display, and then bring it back on a monochrome (1-bit) display.
Even that has a solution. Anyway -- the other "common" display systems (MAC and Windows) don't have a solution (unless going through something like VNC).
Development hasn't stopped -- but the "main-line" of the X server *is* frozen. Development occurs on the fringes (new extensions), and with new drivers.
Ratboy
"ability of developers to use proper and well implemented OO methodology..class designs...a priori with insufficient in depth..."
The reason is that most developers INSIST that class structure should model the application domain. Even if it doesn't make the slightest lick of sense.
Reason? Because of how OO was taught. Concrete to abstract, keeping in line with a problem domain.
(coloured rectangle->rectangle->shape). This certainly makes teaching easier, but doesn't make for sensible class hierarchies.
OO is separate from a class hierarchy. The only reason we HAVE a hierarchy is to allow code to be reused. Therefore, the proper hierarchy is not a taxonomy, it is the one that leverages the code maximally.
As an example - Where to put a Date class?
Smalltalk classifies a Date as a Magnitude -- things that can be compared. So comparisions can be leveraged (eg. =). If it were NOT there, all comparisions need re-implementation.
Also Character should be a Magnitude as well.
Maybe String, but that's a bit shaky (mixins help, it's comparable, but is a collection of Character).
Where to put a class in the hierarchy should be driven by the principle of minimizing code. *NOT* modelling the real world. If you model the "real world" you are probably in a serious "world of hurt". Also, in this case, the OO "paradigm" isn't going to save you much in the way of coding (will save you debugging, hopefully).
Avoidance of bugs...
Stay away from stupid languages. Insist that optimization is the compiler/computers job. The Rosetta Stone is to ask for a factorial function, *without* specifying any details. Code it in the *most* natural way, and then test it with 10,000!
Now, determine how much breakage has occurred (if any).
The answer to LARGE projects is to write code ONCE, and be able to reuse it in any context that needs the same processing. I don't want to have to code the factorial algorythm for small integers, large integers, and really big integers.
I want the code to accomodate the data-type that is needed. If I sort, and use "" ordering, I want that to work across any datatype.
If I have to re-implement, I lose on the previous work.
Class hierarchies can help structure (look at Smalltalk), but are not often used in this way.
Ratboy.
"...but not the most honest or helpful."
What!?! He set up a dual boot system! The family can CHOOSE Linux or Windows. If they DON'T have Windows/XP, they would have to pay for the upgrade. Why would they, if Linux works?
And, after PAYING, they then have to install Mozilla, or Opera (replacing IE), or the "Google Toolbar" (no, I don't know what that is, sorry). I do know what google is, but have never seen this "toolbar".
1 - Updating.
You should select OS vendor by OS update quality. If Mandrake isn't cutting it, try something else.
2 - Five button mouse
One for each finger, that's cool. Now, if the mouse vendor only supports Windows, then don't buy the product. Or, buy the OS that the mouse vendor IS supporting (if you *must* have that mouse.).
If Linux hppens to support it, good. Get someone to install it for you (and pay for it). Solve the damn problem -- why are you whining?
3 - You just want it to WORK
So pay someone to set it up for you. Even Microsoft. Or some other company. Stop the silly whining.
4 - The care anlogy
That's wrong. You installed a "home-brew" OS onto your computer...
Yes, if you *built* the car (say, from an old Volkswagen frame), and made a customized dune buggy -- you may have to put up with having to buy the correct grade of gas from JUST the right pump style...
After all, you *built* the OS (especially the 2.6 upgrade -- and -- you are using GENTOO, for God's sake). Stop the whining.
Sounds like you need to buy Windows, or RedHat commercial product, or Solaris (or whatever).
Run on approved hardware, with approved applications.
Get someone to firewall you... and mintain your installation.
-- no problems, and no fucking whining.
If you (as you say), are into this as a hobby, then enjoy. Contribute even. I just don't like this sort of senseless rant.
My mother-in-law started using computers at 70 years of age. I gave her a LINUX box, locked down with a particular set of applications. It's been working for 3 years now -- no problems. (the hard drive just went -- and I have to fix that).
No fancy 5-button mice, first person shoot-em-up games, no GENTOO "build it yourself" (indeed, she doesn't KNOW the root password), no manuals (well, I did give her a "StarOffice for Dummies" book).
Updates handled "quietly" by me, from almost 1000 miles away.
Since she IS my mother-in-law, I don't charge for the service, but I would be delighted to sell it to you. I just don't think that you want that.
Ratboy.
I ran into this. Received a spam from ?? advertising insurance brokering.
The most objectionable thing was that the spammer had forged the return address to reference MY domain. Possibly I was going to be flooded with people screaming "Stop it!".
I was upset. I went to the referenced web site, to see if I could track down the owner. No such luck; the web site ONLY permitted sales. I then created a dummy sales request, with a return to a throw-away hotmail email. Sure enough, I had a quotation several minutes later. I then choose one of the insurance vendors which had been quoted, and called them.
They took it from there -- the web site was not authorized to sell that insurance (very illegal in my jurisdiction). But, the "vendor" (spam payloader?) was GONE. Had to do all his/her business within several hours!
And, how does the "spam payloader" actually get paid? It would be commissions, but those would have to route through another party. It strikes me as expensive to set this up, and only have it operational for 3 to 12 hours?!
Indeed, just over half the time I have bothered to look, the "spam payload" has been "defanged" by the time I have gone to look (usually 1 to 2 hours after my mail server receives the spam).
Getting rid of commission sales would help; but I am not sure that is the right answer. Maybe someone needs to invent a "smart pill".
Ratboy.
What is contract?
)
I will quote (http://www.law.cornell.edu/topics/contracts.html
"Contracts are promises that the law will enforce. The law provides remedies if a promise is breached or recognizes the performance of a promise as a duty. Contracts arise when a duty does or may come into existence, because of a promise made by one of the parties. To be legally binding as a contract, a promise must be exchanged for adequate consideration. Adequate consideration is a benefit or detriment which a party receives which reasonably and fairly induces them to make the promise/contract . For example, promises that are purely gifts are not considered enforceable because the personal satisfaction the grantor of the promise may receive from the act of giving is normally not considered adequate consideration. Certain promises that are not considered contracts may, in limited circumstances, be enforced if one party has relied to his detriment on the assurances of the other party."
Now... what promise did I make to the holder of the copyright when I purchased the DVD? That's right, I didn't promise ANYTHING. What promise did
the vendor make to me? That's right, I wan't promised ANYTHING. What consideration was I given; that would compel me to give up my rights? Again, I'll take NONE as the answer. And what consideration did I give to possess the piece of plastic with the data? The vendors purchase price.
No way in hell that this is a CONTRACT. I simply purchased a good. And that just happens to have some copyrighted material on it.
I can use the DVD for any legal purpose, including reselling. The vendor may desire there to be a contract in place, but legally there isn't.
Ratboy.
When I buy something, I do NOT enter into a contract. You are right; no one has forced me into an agreement. THERE ISN'T ONE.
As to being bound by [the contact] -- I didn't enter into a contract, so I am not bound by it.
And, once purchased, I'll do any damn thing I want with the data. As long as it is illegal within the prevailing laws. If its an audio CD, I'll certainly allow my friends to make copies (permitted here). If its a DVD, I won't make copies, but I will decrypt it for my own use.
If the publisher wishes to enter into a contract with; relating to my USE of the data, she is certainly welcome to. However, I will demand appropriate compensation.
For example - view DVD on approved player ONLY. That would make the DVD worth $8 CDN to me. Sure, I'll buy it, but for that restriction, I want a serious negotition on price.
I don't think that encryption is useful, because it gives me pains when I want to use the product. I do find "region encoding" useful, because it prevents me from accidentally playing a PAL disc on NTSC gear (or SECAM).
Anyway, if you consider yourself "bound by a contract" after making a simple purchase, I urge you to reconsider your position. Go talk to a lawyer.
Ratboy.
X comes with an application:
x11perf
Please run that, to determine if X is "piggy", and where.
Ratboy
SUN had a desktop based on PostScript. But, DEC, IBM, etc. didn't want to make it a standard. I mean, just look at what happened with NFS! Everyone needs it, and SUN got licensing revenue.
So SUN News (which was technically better than X), was discarded.
There's the pity.
Ratboy
X is a graphics server. It is *not* a "desktop" in the sense of Microsoft Windows.
To make X into a desktop, we have to add a window manager, an operating system (with all that entails), etc.
An example -- I run X on a system. I use it as a terminal. The window manager runs on another computer, as do all of my applications. Indeed, they run on three computers (or more).
Each of the "windows" is displayed on my terminal, and I have a single keyboard and mouse. Using X, it looks like I have a single big computer, and not three (or more) different ones.
This IS a coherent environment. And, it has had time to be tested and proven.
So -- we have "coherent". A broader definition than the one you probably meant...
Performance. The X clients do not need the resources of a local X server. Thus, the boxes running in my "coherent" environment generally do NOT have monitors, keyboards, mice of their own. Indeed, the only box I have that HAS another monitor has a variety of TVs (I do set-top box work). Performance is higher because these boxes do NOT have to waste resources on a GUI. *That* task is moved to other machines.
Given that the "remoteness" is important, the "lack of change" is also important. An X server is an X server.
My X server is cygwin, running on Windows 2K (company mandated -- I must also run Outlook). Clients are on a custom processor (Xilleon), Linux (Intel), or SUN. I shouldn't care WHICH machine originates the X to the server -- I just want the graphics.
Given that this works, and that X has proven itself, why throw it out? *YOU* may not need the support, but *I* do. If you don't want X, go with Microsoft or Apple. If you need to run X, you can always throw on an X server. Be happy that the X code is portable enough to allow this to work reliably (and its free/Free).
Ratboy
A single standard for cut and paste...
Now, that's difficult. In your description (X, Mozilla, openoffice.org), X could be running on one machine (and, for me, it does - X on cygwin), Mozilla on another, and openoffice.org on a third.
This is coupled with not having access to the applications. The data rendered during the cut may not be the data needed at paste. If every application needed to be able to convert formats, this would lead to serious bloat.
There is an attempt to solve this with X, but I don't think its very good. Nor is the Windows solution very good either (it MOSTLY works, due to MS setting de-facto standards *and* not allowing a remotable GUI).
And, this isn't the job of X. There isn't *anything* graphical about the cut and paste problem. Except that the X server is the only common place to store the clipping... We probably need a clip server (non-X) that can handle conversions.
This may exist -- I haven't looked for one.
Ratboy.
And mmap() can have multiple mappings of the file -- how do you think that's handled? It's the same thing. Why should the kernel have to go to disk again? The map consistency has to be there already, to handle mmap(). COW if its private, otherwise, share. If the read()/write() buffer is not aligned, you do need to copy the data -- as if you are a user of mmap(). Big deal, the optimization is "lost".
Still, the easiest way to handle this is to always mmap() files, and read/write will either (a) be replaced by mmap(), or (b) do a copy. If the kernel lives in 64 bit land, the application can still live in 32 bit land for better cache handling, and the optimization works. If the kernel is 32 bit, mmap() files always doesn't work, and there are problems... (HURD), or some semi-fancy filesystem code.
As to WHY? The same code can run at near-optimal speed (mmap-ish), and STILL use read/write for portability to other environments. If I write mmap() based code, I have to worry about alignment, AND have to worry about porting to read/write. If I use read/write, and give page-alignment, the OS can optimize if it is able.
Do YOU want to do the lifting (porting) or leave it somewone else?
Ratboy
It's address space, along with threading that kills you the quickest...
Here's the thing.
If you spin off threads, each thread gets a reserved chunk of address space for its stack. It shares code and data. The stack MUST be addressable by other threads, to allow proper thread semantics for data sharing.
If (as is typical) 1MB is reserved for the thread stack, 1000 threads will take up 1GB of address space and 4000 threads fill memory address space in a 32 bit address space.
So, you have a fancy web server, with SMP, using multi-threading to spin connections. Say 2 threads per connection (and a few more for overhead), and you find that you cannot run more than 1500 concurrent connections. 1500 connections is not a "really, really huge server". That would be low to mid-range in my book.
Ratboy
If a read() uses a page-aligned buffer, from a page-aligned source, then why wouldn't the OS map a page directly into the application space? (Assuming that the area had not been mmap'd shared). The same optimization can be made on write() calls.
The same considerations need to be applied to mmap a file, so there should be is no difference.
In other words, read() and write() with page-alignment constraints should be the same as mmap. The difference is that re-using the same buffer may require an unmap.
With mmap, a unmap doesn't have to match every i/o. Depending on the speed of virtual mapping vs. device i/o rate, this may be significant (or not).
Ratboy