I didn't say it would be easy. Worthwhile stuff is hard; that's natural and unavoidable. But society will be the better off for it.
What I'd really like to know -- honestly, I'm not trolling -- is this. How can anyone using mathematical modelling software for mission-critical design calculations -- designing a road bridge, for example -- really dare to trust a closed-source product to do what they want? If the vendors won't show you the source code, how can you ever be certain it will do what it's supposed to do? And just what do the vendors have to hide anyway?
that Jeff Minter dropped the C-bomb. For the first time in my life I'm actually glad I never paid for Revenge of the Mutant Camels.
Programmers have to eat, but they don't have to programme. You don't hear me getting pissed off because the sewage company don't pay me money for every piece of shit that comes out of my arse. If someone gives you money that's fair enough, but you have no right to expect it. As a member of the human race, you are obliged to contribute to the sum of human endeavour; this is in return for the fact that every aspect of the difference between your life and a feral existence owes itself to past human endeavour. If you benefit from civilisation, agriculture or technology then you should contribute freely to the advancement of the state of the art. Writing software does not mean you own it. The benefits of all human endeavour belong to all of humanity.
As far as I am concerned, copying a piece of software is not stealing -- any more than baking my own bread is stealing from the bakeries, or growing my own veg is stealing from greengrocers, or walking around barefoot is stealing from shoe manufacturers. As far as the author is concerned, it would make no difference to the amount of money they would get if I simply did without their product. Everyone going without would put them out of business just as quickly as if everyone ripped it off. Not that I have to do any illegal copying: I simply refuse to use any software that is not Open Source {and I'm still spoilt for choice}.
There's a lot of software theft going on, all right, and it's theft when companies like Microsoft keep their source code to themselves so ordinary users cannot share and improve their products.
I still use traditional debugging methods, but I'm just a lightweight programmer. I write mainly PHP, Perl and JavaScript..... for web applications, and our own in-house stuff. I start by writing a mock-up of the most important inner bits, maybe starting with fixed parameters, and build it up from there. My code is full of commented out echo, print and alert() statements respectively. I have also been known to use things like print $foo if $diag; {and then just changing my $diag = 1; to 0; it's quicker than finding all the extraneous print statements to comment out} and even the odd warn statement in a CGI script, using tail -f on the web server's error log.
Maybe if I was doing heavier-weight work, though, especially in compiled languages, I might need more sophisticated tools.
Yeah, but not everyone is as fastidious as you. In my line of work, I have experienced all sorts of idiots who shouldn't be allowed to use a pocket calculator, never mind the Internet. I've had to deal with people who don't know the difference between an e-mail address and a website URL, and even one person who didn't know the difference between an e-mail address and their own name! And the scary part is, these were the most tech-literate people working for their own companies. I've tried saying to people, "Get your IT person to set your Outlook Express {they always use that, despite the fact that anyone with half a brain knows how terrible it is} up with these parameters....." and found that the clueless tosser on the other end was the IT person. {Even if our internal "no source, no sale" policy didn't forbid using Outlook Express our end, it would still be such a horrible buggy piece of software we wouldn't touch it with a barge pole; but these people insist on using it}. If they were running Linux, I could just get them to temporarily set a new root password, SSH into their box, set everything up for them, and that would be Job Done.
Well-set-up Windows systems can be much more secure than badly-set-up Linux systems. The trouble is that Linux users tend to {have to} be more clued-up. Part of the problem is the way Windows is pre-installed on so many machines. The supplier has to keep everything as general-purpose as possible, because they don't know what requirements the user's ISP will place on them -- which, in practice, means rather permissive defaults. In turn, the fact that it just works at first, despite the unnecessary ports and services, leads users not to think about security until it's too late already. With Linux {some obsolete RedHat versions excepted}, everything starts off inactive -- you have to select only what you want to allow. But that probably would also happen if users had to install Windows for themselves; or, even if pre-installed Windows systems had to be configured up from a "deny-all" situation. It means you have to use your brain a little bit, but that's hardly a bad thing -- as harsh as this may sound, it's more important that the job should be done properly, for the sake of other Internet users, than easily and maybe badly.
I actually suspected that all along. But, when you're fighting a troll, you want to be really sure that the punch you're about to throw will put them on the floor -- 'cause if it doesn't, you're out of a defensive position.
You don't get paid money for it in the traditional corporate-world sense, no. But you do get knowledge and experience that can't be measured in terms of pounds and pence.
Just because you are writing Open Source software doesn't mean you can't earn a living while you do so. It won't support itself. It won't train its own users. Some people will prefer to pay for a stamped CD and printed manuals, rather than download from the net and read on-screen. There are even other ways of living beside making heaps of money and owning your own home or staying with your parents forever.
Closed source software is a worse form of exploitation, more akin to slavery. If you work on an Open Source project, you get to keep everything you invested in it as well as a dividend from everyone else's investment in it. If you work on a Closed Source project, some faceless corporation owns everything you put into it.
Mathematical modelling software is just a tool to make the final simplification a little easier. You should already have a grasp of the underlying mathematical methods -- and worked through a few examples the hard way -- before you get to use the software that does it for you.
So, preventing your students from being unable to run Mathematica, Maple, Matlab, Visual Studio,... is educationally beneficial in what way?
Writing a suite of mathematical modelling tools to be released as Open Source Software is educationally beneficial. Oh, wait..... you mentioned Visual Studio. Sorry. Preventing people from being able to run Visual Studio and making them use the cross-platform GCC would be a definite educational benefit. I wouldn't have bothered dignifying this with a reply, if I'd noticed earlier that you were trolling.
1. Linux isn't as good as Windows, Windows has more accountability and support.
Microsoft could withdraw support for Windows at any time. Linux has independent support from a community of users.
2. If Linux was used as much as Windows then Viruses would be as common, instead of incredable rare.
Linux is secure by design. Privilege separation, memory protection and so forth. Most distributions force you to create a non-root user at installation time.
3. Windows is cheaper then Linux even though Linux is free. It's a TCO type of thing.
What you mean is that it's cheaper to hire somebody to fix a Windows box than a Linux box. There is a grain of truth in this. Windows often packs up for no appareny reason. Almost any unskilled monkey can "fix" a broken Windows box just by hoicking out the power lead, counting to ten and putting it back. Linux only ever misbehaves with a good reason, and requires someone who knows their arsehole from their earhole to fix it.
4. Gimp sucks compared to Photoshop.
This sounds like an ad hominem attack. At best it's a red herring. Photoshop is an Adobe product, nothing to do with Windows or Linux.
5. Open source is insecure by default. Only by hidding your secrets are they kept safe.
Thou smokest crack. If the security of your code depends on a secret that you hope an attacker will not discover, then as soon as an attacker discovers that secret then your code is insecure. The security of Linux does not depend on one big, centrally-kept secret. Cf. public key encryption.
6. IE is better then Firefox because my kids can play shockwave games on Disney.com
Then try the full version of Mozilla, which definitely supports the Flash player plugin {though I'm not convinced you aren't just lying, Firefox might well support plugins}. If you don't need Flash, but you would like tabbed browsing, pop-up blocking, a Javascript debugging console, cookie management and speed, then Firefox certainly does it.
7. MS has Exchange, Linux doesn't.
Linux has Sendmail. 'Nuff said.
8. OO.org sucks compared the usability of Office
You haven't said how OO.o "sucks", nor even which release you are talking about, so I have to presume you are merely parroting.
9. Linux isn't ready for the Desktop.
You are merely parroting.
10. Grandma can't install Linux.
Awwwwk! Pieces of eight! Polly want a cracker! Grandma can't install Windows either.
11. Can't play Everquest on Linux.
Blame the makers of Everquest, or find another game to play. See also point 4.
12. Users are the problem, Not Microsoft.
Just goes to show..... if you say enough things then at least one of them might turn out to be true. Many users need to get a clue, I'll agree. But I have to say that writing a mail client which treats unknown file types as "executable" -- and executes them without the user's consent -- sounds seriously like aiding and abetting virus propagation. Yeah, that was years ago. See also point 9.
If I was in charge of a university's computer systems, absolutely no proprietary, closed source software would be allowed anywhere on my network, especially not the parts accessible to students -- and I'd like to run some software deliberately designed to crash badly-set-up Windows boxes. Additionally, I would make every person caught running an infected system jointly and severally liable for the cost of repairing any damage {including buying the latest anti-virus and firewall software, though they'd still be barred from the network}. Harsh? You bet. But lesser schemes have never had much effect. A car without headlamps, mirrors or seat belts would not be allowed on the public highway -- for the safety of its own driver and other road users. Why should a computer without safety features be allowed an a network?
If you write an application, you release it in source form. It's up to the distributors to make a package for their distribution. RedHat and others create RPMs, Debian creates DEBs, and Slackware creates TGZs, by compiling the source code against their preferred versions of the kernel and any necessary libraries; then archiving up the binary files with a machine-readable text file listing any dependencies, and a script to copy them into the right locations. {That is a bit of an oversimplification, but close enough}. If you write Open Source code, it should be able to run on anything physically capable of running it.
Solaris's file I/O is slow for a reason. When you write to disk in Solaris, you don't get a response till the data is safely in the disk. Linux has an abstraction layer in the way. You can write a file "to disk", but the "OK" response you get comes from the filing system abstraction layer -- which has just cached the data in RAM. In Linux you can create a file, have another application read it and delete it without it ever going near the disk. Linux only ever decaches when (a) the sync command is issued, (b) the file system is just about to be unmounted, or (c) decaching would free up enough RAM to prevent a swap operation {Of course, this does not apply if you are using a journalling file system; but if not, you will be royally shafted in the event of a power failure}.
Solaris can cache data just as aggressively as Linux, but Sun deliberately don't set that as the default because they believe data integrity -- which can only be assured by ensuring that data meant to be written to disk actually has been written -- is more important than speed, which can always be improved by buying dearer^Wfaster hardware.
Java has been Sun's baby; but the thing about babies is that they have a tendency to grow up. It's good that the Java specification is open, because that has led to the creation of alternative Java interpreters. But, as you say, Sun have been nice enough about letting people use theirs.
Releasing Java under the GPL need not necessarily lead to forking. As long as distributors have no need to modify it, they won't -- and Sun can answer any criticism by incorporating patches into the main source tree. Also, any forked versions would themselves have to be licenced under the GPL -- thus preventing the worst nightmare scenario where a closed-source alternative becomes the new de facto standard and replaces the "original" Java.
Alternatively, Sun could release Java under something like the Pine licence. This would give Sun effective control over the "official" version.
But it could happen, very easily, especially given the nature of some of the market players.
The projects you mention have not turned sour because the Xiph project, the X consortium and the University of California are not renowned for treating their own customers as potential thieves, forcing advertisements down people's throats {well, not X until recently.....}, nor seeking to make outrageous amounts of money even if this means using the dubious practice of selling us what we thought we already owned.
A content cartel such as the MPAA, working with the likes of Microsoft, could -- in the worst case -- hijack a BSD-licenced codec, modify it slightly and keep it closed-source, protected with a patent, and charge an exorbitant fee to anyone wishing to distribute a player. They could make the decoder semi-free but the encoder proprietary, thereby restricting independent content creation. The GPL does not permit any of this, and copyright law forbids anything not permitted. Releasing a codec under the GPL, with the backing of the the world's premier broadcasting organisation, is surely the best way to ensure that everyone will have access to media content and the ability to create their own content -- and that no single person or group of people will be able to get fat off it at the expense of everyone else.
The GPL does not permit anyone to modify the product and release a closed-source version. This is the principal difference between it and the BSD licence, and I think the BBC is absolutely right to use the GPL in this case. Had Dirac been released under a BSD-like licence, it would be possible for someone to make a few changes and create a closed-source product. With a little monopolistic market manipulation, this could easily become a de facto standard, to the obvious detriment of Open Source users.
It is important that the de facto standard codec should be a completely open specification, and everyone must be free to implement it. Releasing under the GPL is the best way to prevent the Dirac codec from being subverted into an instrument for monopolies to achieve its own ends at the expense of society at large.
This is really wonderful news. The BBC is sharing its work with the Open Source community - and most of the British Open Source community are BBC TV licence payers.
I am glad that the BBC has recognised the need for this codec to be Open Source. It means that everyone, not just those beholden to private corporations, will get the chance to experience BBC content. The BBC is also a highly influential body; I would be surprised if other European content providers did not display an interest in this. PAL was a joint development between the BBC and its German counterpart; SUSE is German.
Yeah. Baud == 'symbols' per second; one symbol {meaning in this case a recognisable state} often, but not necessarily, corresponds to one bit. The Plain Old Telephone System samples to an accuracy of 7 bits, 8000 times a second; giving a theoretical absolute maximum of 128 symbols at 8000 baud, or 56000 bits per second. This is topped up with parity bits to 64000 bits per second, and sent down a B-channel. 30 B-channels, plus 2 composite channels consisting of all the associated D-channels together, are combined using Time Domain Multiplexing into a single E1 line (2048000 bits per second; 4 bits are sent down the line using 3 three-state symbols, giving 1536000 baud. Some of the 16 possible 4-bit words are represented by more than one of the 27 3-trit words, the idea being to ensure that more than three "-1" or "+1" symbols are never transmitted in a row and equal numbers of "-1" and "+1" symbols are transmitted overall. This allows the signal to be capacitively coupled. For example, 1111b can be sent as ---t or +++t, and the transmitter will choose which form based on recently transmitted data)..... but we're digressing here. The point is that if you try sending more that 8000 symbols down a phone line in one second, some will be missed; if you try sending two symbols with less than 1/128 of full signal strength difference between them, it will not be enough to register as different levels.
I thought "predictive" meant you said what was going to happen before it happened. The bible was mostly written well after the event, and translated through many languages including some no longer spoken. It contains a forceful sales pitch for the jewish faith, inextricably interwoven with a mess of mythology and a gamut of historical accounts from half-true to fantastic.
I'm sure I tried it on both BBC and Spectrum. I never had a ZX80, just an '81 and then a Beeb; later, I picked up a spectrum on the cheap, just to experiment with the Z-80 really. I can't remember for certain but I think I tried LET X = X + 1 and it worked. Thing is, you have already mentioned X =....., so it has gone and created the variable if one didn't exist before, before it gets as far as reading its value. But maybe the ZX81 would have thrown an error at that, otherwise someone would have used LET Z = Z as a way of initialising a variable to zero without introducing a numeric literal {which required a whopping 6 bytes out of the 800-or-so available; 1 byte for the "numeric literal" token plus 5 bytes for the 40-bit floating point representation. 1K ZX81 programmes were always full of expressions such as SIN PI (== 0), SGN PI (== 1), COS PI (== -1), INT PI (== 3) and the like. Functions, including the argument-less function PI are tokenised and so only occupy one byte. Even writing VAL "10" saves one byte, which might make the difference between OK and an out-of-memory error.}
ZX81 and Spectrum also used slightly different numeric representations internally; the ZX81 represented zero as anything with an exponent of -128 {though it also zeroed the mantissa digits for neatness}. The Spectrum used the fact of there being 2**32 ways of writing zero to allow an alternative sign-and-magnitude representation for integers in the range -65535 to +65535. Also, Spectrum used ASCII {but slightly modified, with a pound sign in position 96 and a copyright sign in position 127}, while ZX81 had a special charset of its own.
I just know now that I'm going to be spending the whole weekend looking for and mucking about with emulators for all my beloved old 8-bit machines.
Seeing that processors really don't understand anything more complex than IF and GOTO, many "different" ways of writing the same loop will compile to the same instructions.
for (caz; shaz; daz) { gaz; }; can be expressed more simply as
[start] evaluate caz....... initialisation [repeat] evaluate shaz...... condition IF (turned out FALSE) GOTO done evaluate gaz....... loop body evaluate daz....... update GOTO repeat [done]
Now, while (shaz) { gaz; }; expresses in the same pseudocode as
[repeat] evaluate shaz...... condition IF (turned out FALSE) GOTO done evaluate gaz....... loop body GOTO repeat [done]
See the similarities now? A while loop is just a cut-down version of a for loop, except it looks one unit prettier on some arbitrary scale. Both are just ways of pretending there is no such thing as GOTO -- even although we know it's necessary, deep down at some level. "Proper" loop statements let the computer deal with the awkward stuff like remembering where our programme is in memory, so human beings can concern themselves with bigger matters.
On a Spectrum or BBC micro, you will get a "no such variable" error -- the British BASIC dialects tended to prefer to crash out rather than silently assign 0 to variables on first reading. Although, "X = X + 1" will still work without predefining X, because the interpreter creates a variable X as soon as it sees it on the left-hand side of an assignment. Spectrum BASIC expected every statement to start with a keyword (verb), accessed by pressing a letter key, and so had to introduce "LET" for assignments -- "X = 1" would have to be written "LET X = 1" on the Spectrum because if you pressed X when a keyword was expected, you would get CLEAR.
int main() {/* i wish this thing would indent properly */ for (1;1;1) {/* will loop forever */ printf("ajs318 is a better programmer than Jorkapp\n"); }; };
Repeatedly calling main() from within main() probably would overflow the stack. It's the equivalent of using GOSUB in BASIC when you meant GOTO -- GOSUBs and function calls have to remember where they were called from, which is what a stack is used for. If the compiler you were using was tolerant enough that you could declare void main(), then it would last about twice as long before crashing and burning, due to not having to temporarily remember an integer it's later going to have to throw away.
The whole point about CFCs in fridges is that they are sealed in a closed loop {compressor - condenser - evaporator}, therefore, not able to damage the ozone layer until the fridge is disposed of {or you have an accident while defrosting with a chisel.....} The usual way of getting rid of CFCs is to wait until nobody is looking, then discharge them into the atmosphere. Practically speaking, there's not a lot else you can do with them anyway. So if you have a CFC-based fridge and it's still working reasonably well, you should hang onto it -- as long as it's not being abused, it won't be using significantly more energy than a more modern one would, and manufacturing a refrigerator uses up a lot of energy {which also is conveniently forgotten}. If it cost x kWh to make in the first place, and saves y kWh per year compared to the old fridge, it needs to last for x/y years before you have actually made any saving -- if it packs up before that time limit, you actually lose out on the deal {assuming the old one would have survived that long; but older kit was built to last forever, whereas newer stuff is built to pack up after awhile}.
My new fridge {purchased in a hurry after a defrosting accident last year involving a chisel, the evaporator and a faceful of evil-smelling chemicals} uses iso-butane -- cigarette lighter and camping stove fuel -- as its refrigerant. It's sealed in the pipes, so there is no danger of an explosion. Even if the pipes do start leaking, the thermostat won't be satisfied -- no matter how long the motor runs {trying to cool down the sensor} it won't get anywhere because there is no pressure, so no cooling..... so the contacts will stay closed and not spark. If anything does set off an explosion, it won't be the fridge itself.
I didn't say it would be easy. Worthwhile stuff is hard; that's natural and unavoidable. But society will be the better off for it.
What I'd really like to know -- honestly, I'm not trolling -- is this. How can anyone using mathematical modelling software for mission-critical design calculations -- designing a road bridge, for example -- really dare to trust a closed-source product to do what they want? If the vendors won't show you the source code, how can you ever be certain it will do what it's supposed to do? And just what do the vendors have to hide anyway?
that Jeff Minter dropped the C-bomb. For the first time in my life I'm actually glad I never paid for Revenge of the Mutant Camels.
Programmers have to eat, but they don't have to programme. You don't hear me getting pissed off because the sewage company don't pay me money for every piece of shit that comes out of my arse. If someone gives you money that's fair enough, but you have no right to expect it. As a member of the human race, you are obliged to contribute to the sum of human endeavour; this is in return for the fact that every aspect of the difference between your life and a feral existence owes itself to past human endeavour. If you benefit from civilisation, agriculture or technology then you should contribute freely to the advancement of the state of the art. Writing software does not mean you own it. The benefits of all human endeavour belong to all of humanity.
As far as I am concerned, copying a piece of software is not stealing -- any more than baking my own bread is stealing from the bakeries, or growing my own veg is stealing from greengrocers, or walking around barefoot is stealing from shoe manufacturers. As far as the author is concerned, it would make no difference to the amount of money they would get if I simply did without their product. Everyone going without would put them out of business just as quickly as if everyone ripped it off. Not that I have to do any illegal copying: I simply refuse to use any software that is not Open Source {and I'm still spoilt for choice}.
There's a lot of software theft going on, all right, and it's theft when companies like Microsoft keep their source code to themselves so ordinary users cannot share and improve their products.
I still use traditional debugging methods, but I'm just a lightweight programmer. I write mainly PHP, Perl and JavaScript ..... for web applications, and our own in-house stuff. I start by writing a mock-up of the most important inner bits, maybe starting with fixed parameters, and build it up from there. My code is full of commented out echo, print and alert() statements respectively. I have also been known to use things like print $foo if $diag; {and then just changing my $diag = 1; to 0; it's quicker than finding all the extraneous print statements to comment out} and even the odd warn statement in a CGI script, using tail -f on the web server's error log.
Maybe if I was doing heavier-weight work, though, especially in compiled languages, I might need more sophisticated tools.
Yeah, but not everyone is as fastidious as you. In my line of work, I have experienced all sorts of idiots who shouldn't be allowed to use a pocket calculator, never mind the Internet. I've had to deal with people who don't know the difference between an e-mail address and a website URL, and even one person who didn't know the difference between an e-mail address and their own name! And the scary part is, these were the most tech-literate people working for their own companies. I've tried saying to people, "Get your IT person to set your Outlook Express {they always use that, despite the fact that anyone with half a brain knows how terrible it is} up with these parameters ....." and found that the clueless tosser on the other end was the IT person. {Even if our internal "no source, no sale" policy didn't forbid using Outlook Express our end, it would still be such a horrible buggy piece of software we wouldn't touch it with a barge pole; but these people insist on using it}. If they were running Linux, I could just get them to temporarily set a new root password, SSH into their box, set everything up for them, and that would be Job Done.
Well-set-up Windows systems can be much more secure than badly-set-up Linux systems. The trouble is that Linux users tend to {have to} be more clued-up. Part of the problem is the way Windows is pre-installed on so many machines. The supplier has to keep everything as general-purpose as possible, because they don't know what requirements the user's ISP will place on them -- which, in practice, means rather permissive defaults. In turn, the fact that it just works at first, despite the unnecessary ports and services, leads users not to think about security until it's too late already. With Linux {some obsolete RedHat versions excepted}, everything starts off inactive -- you have to select only what you want to allow. But that probably would also happen if users had to install Windows for themselves; or, even if pre-installed Windows systems had to be configured up from a "deny-all" situation. It means you have to use your brain a little bit, but that's hardly a bad thing -- as harsh as this may sound, it's more important that the job should be done properly, for the sake of other Internet users, than easily and maybe badly.
I actually suspected that all along. But, when you're fighting a troll, you want to be really sure that the punch you're about to throw will put them on the floor -- 'cause if it doesn't, you're out of a defensive position.
You don't get paid money for it in the traditional corporate-world sense, no. But you do get knowledge and experience that can't be measured in terms of pounds and pence.
Just because you are writing Open Source software doesn't mean you can't earn a living while you do so. It won't support itself. It won't train its own users. Some people will prefer to pay for a stamped CD and printed manuals, rather than download from the net and read on-screen. There are even other ways of living beside making heaps of money and owning your own home or staying with your parents forever.
Closed source software is a worse form of exploitation, more akin to slavery. If you work on an Open Source project, you get to keep everything you invested in it as well as a dividend from everyone else's investment in it. If you work on a Closed Source project, some faceless corporation owns everything you put into it.
Mathematical modelling software is just a tool to make the final simplification a little easier. You should already have a grasp of the underlying mathematical methods -- and worked through a few examples the hard way -- before you get to use the software that does it for you.
If I was in charge of a university's computer systems, absolutely no proprietary, closed source software would be allowed anywhere on my network, especially not the parts accessible to students -- and I'd like to run some software deliberately designed to crash badly-set-up Windows boxes. Additionally, I would make every person caught running an infected system jointly and severally liable for the cost of repairing any damage {including buying the latest anti-virus and firewall software, though they'd still be barred from the network}. Harsh? You bet. But lesser schemes have never had much effect. A car without headlamps, mirrors or seat belts would not be allowed on the public highway -- for the safety of its own driver and other road users. Why should a computer without safety features be allowed an a network?
If you write an application, you release it in source form. It's up to the distributors to make a package for their distribution. RedHat and others create RPMs, Debian creates DEBs, and Slackware creates TGZs, by compiling the source code against their preferred versions of the kernel and any necessary libraries; then archiving up the binary files with a machine-readable text file listing any dependencies, and a script to copy them into the right locations. {That is a bit of an oversimplification, but close enough}. If you write Open Source code, it should be able to run on anything physically capable of running it.
Solaris's file I/O is slow for a reason. When you write to disk in Solaris, you don't get a response till the data is safely in the disk. Linux has an abstraction layer in the way. You can write a file "to disk", but the "OK" response you get comes from the filing system abstraction layer -- which has just cached the data in RAM. In Linux you can create a file, have another application read it and delete it without it ever going near the disk. Linux only ever decaches when (a) the sync command is issued, (b) the file system is just about to be unmounted, or (c) decaching would free up enough RAM to prevent a swap operation {Of course, this does not apply if you are using a journalling file system; but if not, you will be royally shafted in the event of a power failure}.
Solaris can cache data just as aggressively as Linux, but Sun deliberately don't set that as the default because they believe data integrity -- which can only be assured by ensuring that data meant to be written to disk actually has been written -- is more important than speed, which can always be improved by buying dearer^Wfaster hardware.
Releasing Java under the GPL need not necessarily lead to forking. As long as distributors have no need to modify it, they won't -- and Sun can answer any criticism by incorporating patches into the main source tree. Also, any forked versions would themselves have to be licenced under the GPL -- thus preventing the worst nightmare scenario where a closed-source alternative becomes the new de facto standard and replaces the "original" Java.
Alternatively, Sun could release Java under something like the Pine licence. This would give Sun effective control over the "official" version.
But it could happen, very easily, especially given the nature of some of the market players.
.....}, nor seeking to make outrageous amounts of money even if this means using the dubious practice of selling us what we thought we already owned.
The projects you mention have not turned sour because the Xiph project, the X consortium and the University of California are not renowned for treating their own customers as potential thieves, forcing advertisements down people's throats {well, not X until recently
A content cartel such as the MPAA, working with the likes of Microsoft, could -- in the worst case -- hijack a BSD-licenced codec, modify it slightly and keep it closed-source, protected with a patent, and charge an exorbitant fee to anyone wishing to distribute a player. They could make the decoder semi-free but the encoder proprietary, thereby restricting independent content creation. The GPL does not permit any of this, and copyright law forbids anything not permitted. Releasing a codec under the GPL, with the backing of the the world's premier broadcasting organisation, is surely the best way to ensure that everyone will have access to media content and the ability to create their own content -- and that no single person or group of people will be able to get fat off it at the expense of everyone else.
The GPL does not permit anyone to modify the product and release a closed-source version. This is the principal difference between it and the BSD licence, and I think the BBC is absolutely right to use the GPL in this case. Had Dirac been released under a BSD-like licence, it would be possible for someone to make a few changes and create a closed-source product. With a little monopolistic market manipulation, this could easily become a de facto standard, to the obvious detriment of Open Source users.
It is important that the de facto standard codec should be a completely open specification, and everyone must be free to implement it. Releasing under the GPL is the best way to prevent the Dirac codec from being subverted into an instrument for monopolies to achieve its own ends at the expense of society at large.
This is really wonderful news. The BBC is sharing its work with the Open Source community - and most of the British Open Source community are BBC TV licence payers.
I am glad that the BBC has recognised the need for this codec to be Open Source. It means that everyone, not just those beholden to private corporations, will get the chance to experience BBC content. The BBC is also a highly influential body; I would be surprised if other European content providers did not display an interest in this. PAL was a joint development between the BBC and its German counterpart; SUSE is German.
This is going to be one to watch.
Yeah. Baud == 'symbols' per second; one symbol {meaning in this case a recognisable state} often, but not necessarily, corresponds to one bit. The Plain Old Telephone System samples to an accuracy of 7 bits, 8000 times a second; giving a theoretical absolute maximum of 128 symbols at 8000 baud, or 56000 bits per second. This is topped up with parity bits to 64000 bits per second, and sent down a B-channel. 30 B-channels, plus 2 composite channels consisting of all the associated D-channels together, are combined using Time Domain Multiplexing into a single E1 line (2048000 bits per second; 4 bits are sent down the line using 3 three-state symbols, giving 1536000 baud. Some of the 16 possible 4-bit words are represented by more than one of the 27 3-trit words, the idea being to ensure that more than three "-1" or "+1" symbols are never transmitted in a row and equal numbers of "-1" and "+1" symbols are transmitted overall. This allows the signal to be capacitively coupled. For example, 1111b can be sent as ---t or +++t, and the transmitter will choose which form based on recently transmitted data) ..... but we're digressing here. The point is that if you try sending more that 8000 symbols down a phone line in one second, some will be missed; if you try sending two symbols with less than 1/128 of full signal strength difference between them, it will not be enough to register as different levels.
I'm sure I tried it on both BBC and Spectrum. I never had a ZX80, just an '81 and then a Beeb; later, I picked up a spectrum on the cheap, just to experiment with the Z-80 really. I can't remember for certain but I think I tried LET X = X + 1 and it worked. Thing is, you have already mentioned X = ....., so it has gone and created the variable if one didn't exist before, before it gets as far as reading its value. But maybe the ZX81 would have thrown an error at that, otherwise someone would have used LET Z = Z as a way of initialising a variable to zero without introducing a numeric literal {which required a whopping 6 bytes out of the 800-or-so available; 1 byte for the "numeric literal" token plus 5 bytes for the 40-bit floating point representation. 1K ZX81 programmes were always full of expressions such as SIN PI (== 0), SGN PI (== 1), COS PI (== -1), INT PI (== 3) and the like. Functions, including the argument-less function PI are tokenised and so only occupy one byte. Even writing VAL "10" saves one byte, which might make the difference between OK and an out-of-memory error.}
ZX81 and Spectrum also used slightly different numeric representations internally; the ZX81 represented zero as anything with an exponent of -128 {though it also zeroed the mantissa digits for neatness}. The Spectrum used the fact of there being 2**32 ways of writing zero to allow an alternative sign-and-magnitude representation for integers in the range -65535 to +65535. Also, Spectrum used ASCII {but slightly modified, with a pound sign in position 96 and a copyright sign in position 127}, while ZX81 had a special charset of its own.
I just know now that I'm going to be spending the whole weekend looking for and mucking about with emulators for all my beloved old 8-bit machines.
for (caz; shaz; daz) { gaz; }; can be expressed more simply asNow, while (shaz) { gaz; }; expresses in the same pseudocode asSee the similarities now? A while loop is just a cut-down version of a for loop, except it looks one unit prettier on some arbitrary scale. Both are just ways of pretending there is no such thing as GOTO -- even although we know it's necessary, deep down at some level. "Proper" loop statements let the computer deal with the awkward stuff like remembering where our programme is in memory, so human beings can concern themselves with bigger matters.
This is nothing new. According to Frank Castle, M.I.mech.E., in "four-figure logarithms and other tables for schools", 2 * 2 = 3.999.
On a Spectrum or BBC micro, you will get a "no such variable" error -- the British BASIC dialects tended to prefer to crash out rather than silently assign 0 to variables on first reading. Although, "X = X + 1" will still work without predefining X, because the interpreter creates a variable X as soon as it sees it on the left-hand side of an assignment. Spectrum BASIC expected every statement to start with a keyword (verb), accessed by pressing a letter key, and so had to introduce "LET" for assignments -- "X = 1" would have to be written "LET X = 1" on the Spectrum because if you pressed X when a keyword was expected, you would get CLEAR.
The whole point about CFCs in fridges is that they are sealed in a closed loop {compressor - condenser - evaporator}, therefore, not able to damage the ozone layer until the fridge is disposed of {or you have an accident while defrosting with a chisel .....} The usual way of getting rid of CFCs is to wait until nobody is looking, then discharge them into the atmosphere. Practically speaking, there's not a lot else you can do with them anyway. So if you have a CFC-based fridge and it's still working reasonably well, you should hang onto it -- as long as it's not being abused, it won't be using significantly more energy than a more modern one would, and manufacturing a refrigerator uses up a lot of energy {which also is conveniently forgotten}. If it cost x kWh to make in the first place, and saves y kWh per year compared to the old fridge, it needs to last for x/y years before you have actually made any saving -- if it packs up before that time limit, you actually lose out on the deal {assuming the old one would have survived that long; but older kit was built to last forever, whereas newer stuff is built to pack up after awhile}.
..... so the contacts will stay closed and not spark. If anything does set off an explosion, it won't be the fridge itself.
My new fridge {purchased in a hurry after a defrosting accident last year involving a chisel, the evaporator and a faceful of evil-smelling chemicals} uses iso-butane -- cigarette lighter and camping stove fuel -- as its refrigerant. It's sealed in the pipes, so there is no danger of an explosion. Even if the pipes do start leaking, the thermostat won't be satisfied -- no matter how long the motor runs {trying to cool down the sensor} it won't get anywhere because there is no pressure, so no cooling