d. Update your computer more than once every year (or have windows XP and let it do it automagically).
I am increasing convinced that the reason that windows gets more viruses than linux is not because of the programs, its the users.
Many recent viruses require you to save an attached zip file, open it, enter a password and only then execute the file within. Yet they are still infecting thousands and thousands of people.
You say "type safety is like training wheels". I would say type safety is more like having brakes. In theory you can get away without them, and if you were the perfect driver you'd never need them. However we all make mistakes occasionally and thats when we need them.
If you are a "perfect programmer" who gets everything right first time, surely your code would compile in a type-safe language anyway? And in a LARGE project, knowing what the correct type of the inputs and outputs of a function are is vital to keep the code correct.
Also, you argue that "Java and C++ don't count as different languages". Yes they do look similar, but they are very, very different in use (for a start Java has memory corruption protection features here, there and everywhere".
I like smalltalk, I think it's a good language. I also think it is not suitable for very-large-scale programming projects.
DirectX =\= OpenGL. DirectX has quite a lot more features than openGL, including most noticably a unified networking system (sometimes it's nice to not have to write directly to ports), sound (of which there seems to be about a thousand different linux standards) and control system (which linux has a bit, but last time I checked not as nice as windows)
There are I think two main reason procedural languages are more popular.
a) inertia. Till quite recently much programming was done in assembler, and procedural languages used to map much better to assembler code efficently. I would argue that as processors become more complex this is actually becoming increasing less true.
b) It's much easier to hack out some program in procedural language and then hack bits of it randomly until it kind of works. Programming in functional languages requires more thought.
Also, I feel it is important to say that as time goes by functional languages are catching up with speed with C (and even surpasing it in some places). This is because we are damn good at writing optimisers nowadays and functional languages frequently allow compilers to make a lot more assumptions.
For example in C, imagine we have the following function:
void foo(int& i) { if(i==1) g(); if(i==2) h(); }
(The & would be more useful in the case where i was a more complex structure of course!)
In C, we have to assume that the call to g() may have changed the value of i. In a functional language this is not true.
There was a time not long ago when people talked about anyone who didn't use assembler as a joke programmer, because they needed someone else to set up their variables, look after the stack, etc. and were willing to take the speed hit because of it.
I enjoy programming and I do it often. However in business the purpose of a programming language should be to allow you to as quickly and easily write the program to do what you want to do and (almost more importantly) accept that you WILL have bugs in that program, but try to make it as difficult as possible to put bugs in, and as easy as possible to find and remove the ones you did put in.
Anyone who talks about writing "bug-free code" has never spent any real amount of time writing code professionally.
Yes, it is true that the people who try to keep pumping out the same games every year are soon going to have problems because they can't count on graphical improvements to make their game worth buying each year.
On the other hand (and in my opinion much more exciting) is we are rapidly getting to the point where games with very high quality graphics can be made without having to write a different highly-game specific engine each time you want to make a game. This means that we should hopefully have more and more interesting and original games appearing as the time to make them will get smaller, in the same way as cheap(er) digital video cameras has made low-budget film making much more possible than it was.
Seriously.. who would want a mac classic? I have 6 lying in a cupboard somewhere, and one day I'll get around to throwing all but one of them away because no-one wants them. Just because something is old doesn't automatically make it worth keeping around you know
I can't possibly imagine why so many people seem to think that live CDs are good for games.
I remember the days when I had to boot off a floppy, and had to have a differeny floppy boot disc for each game. It was awful and annoying.
Now we have these fancy operating systems, that let us *shock* run multiple applications at once, and *double shock* get the latest drivers for our systems when they are updated.
And you want to go back to every game having a fix boot system, having to reboot to play any of them, and them not supporting new hardware?
Have you ever done any on-line game programming, particuarily of the type like FPSes where the updates must be done as quickly as possible if not faster? If you have some amazing ideas of how to make players not be able to see things they shouldn't while keeping the lag at anywhere near a reasonable level, there are lots of people willing to pay you ALOT of money
If not, don't assume things are easy just because thinking about them for 5 seconds doesn't produce any problems with them
Can I just say, you don't have to reject the Theory of Relativity but, when you try to solve the relativistic equations around a black hole, two thoughts come up:
1) The solutions imply some infinatly small volumes and some infinatly stretched times (this seems like a possible sign your equations may in fact just not explain this
2) Even if we assume that relativity hasn't simply broken down here, we can expect quantum effects to become very significant. Dispite a lot of work relativity and quantum still don't sit happily together.
My main worry about all this black-hole related research is that they are using a hacked-up version of the relativity and quantum equations which we know aren't consistant with each other. I'm not convinced this is any more useful that just studying black holes with Newtonian mechanics...
True, but this encourages the (I'm not convinced entirely untrue idea) that the purpose of open source is simply to create free versions of applications that people have spent large amounts of money researching and developing.
As I'm sure you know, it is a thousand times harder to create an application from scratch than to make a functional copy of an existing one (note here I'm not talking about exactly copying, as say WINE is aiming to do. Thats another aim entirely and can actually as they are finding out be much, much harder than just writing a new system)
So.. mplayer just appears on your computer automagically?
then you make sure you got up to date codecs
No, QuickTime auto-updates. Can you say the same about mplayer? or do you have to go and download updates when a new version comes out?
It is true that mplayer is powerful but like you say, it involves considerable knowhow. (and I don't know if things have got better but until recently basically involved compiling yourself whenever you wanted to install it, along with grabbing all required libraries. It's not simple). In this case I don't see how you can claim it is superiour to quicktime.
Re:Half-life of Viruses
on
The Virus Squad
·
· Score: 2, Interesting
you sure thats all you have open? willing to share your IP address with us all to check?
I find on linux you tend to have more need for a firewall. Linux will often be running RPC, and like you say X (and I know at least KDE) use ports too that should be firewalled.
The latest version of flash has support for designing sites suitable for both the blind people.
True, it blocks people who don't install the plugin, but by that argument perhaps all sites should be compatable with me just telneting in case I don't want to install a web browser at all?
What his licence says is that you cannot place his code under a licence which would forbid it being placed into closed-source applications.
I don't see how this is less free than the GPL. You can do anything you like (basically) except forbid people from placing your derivate in a closed source application. If that is what he wants to allow, good luck to him. Remember, the GPL is not the be-all and end-all (particularily the GPL v2 isn't, for a start we already know the GPL v3 won't be GPL v2-compatable, so why should the rest of the world have to make their licences GPL v2-compatable?)
This is almost certain. One of the biggest problems with the GPL is that in order for a licence to be GPL (v2) compliant you must be able to interpret it as "you can put this code under exactly the GPL v2, no more, no less".
So unless the GPL v3 is simply a re-wording or clarifcation of the GPL v2 (which seems unlikely, there are various things to cover, including patent issues and internet-based applications) then it will be v2 incompatable.
This "things are only GPL compatable if they can be relicenced under the GPL" is one of many people's major annoyances with the GPL and I think it will come back and get them with the GPL v3. Clearly we have no hope of getting everyone who has ever written GPL v2 code to update it to v3. The FSF's code will be OK (as they require you give them copyright before they will accept code) and any projects which specifically say you can licence under newer versions.
Note the linux kernel says it is under v2 specifically. I'm sure it will be impossible to get everyone who has ever contributed code to the kernel to agree to an update to v3, which will at least mean all code that can be linked into the kernel will have to be dual-licenced v2/v3
Now I apply a bit of thought, the obvious answer is to allow some way of marking a mail "only allow this mail if the person I'm sending it to has said I don't have to pay". Then when people sign up for your mailing list say they have to set up their computer / mail server to not charge that person.
I used to thin kspam could probably be fixed by replacing all SMTP with something that required users to log in. However it is now clear that spammers will go to any depths to send spam including particularily infecting people's computer with spamming programs... so something more serious is the only option.
Thats an interesting question, do you get charged if you run a program that sends out 10,000,000 emails?
I've heard this alot.. but then whats to stop people continuously subscribing to your list and then refusing to refund you the money (or even worse, simply forgetting, you expect everyone to remember to click the "refund this mailing list message" button?)
OK. Let me phrase more carefully (as you want to be pedantic).
You can do ANYTHING with the code, including strip out any and all copyright messages / notes to the original author and then release the resulting code under the GPL.
Because the GPL says you must be allowed to do anything with the code. This includes simply stripping all the comments and advertising out of it and redistributing it. This is one of the reasons some people get a little annoyed with the GPL. However licences which do require you leave in copyright messages / list contributors end up like some BSD-based projects did with lists of thousands of people all over the place and files with more comments listing everyone who has ever latered the file than actual code.
While I love google, this is so obviously just a link to a press release, and even worse the first line of the press release cut-and-pasted onto slashdot's page. And is going past 6 billion really that important?
While GPL compatable =\= GPL licensed, as soon as you add a GPLed file to a GPL compatable project you are effectively re-releasing the whole project under the GPL, as the GPL demands such.
Note: This doesn't stop you making GPLed applications which use X.
Also, note that if XFree86 were GPL-compatable then placing any piece of GPLed code into it would force the whole program to be GPLed.. I'm not clear on why the XFree people should relicence their app to be GPL compatable, just so someone can make a derivate that is GPLed. Remember. GPL =\= free software.
d. Update your computer more than once every year (or have windows XP and let it do it automagically).
I am increasing convinced that the reason that windows gets more viruses than linux is not because of the programs, its the users.
Many recent viruses require you to save an attached zip file, open it, enter a password and only then execute the file within. Yet they are still infecting thousands and thousands of people.
You say "type safety is like training wheels". I would say type safety is more like having brakes. In theory you can get away without them, and if you were the perfect driver you'd never need them. However we all make mistakes occasionally and thats when we need them.
If you are a "perfect programmer" who gets everything right first time, surely your code would compile in a type-safe language anyway? And in a LARGE project, knowing what the correct type of the inputs and outputs of a function are is vital to keep the code correct.
Also, you argue that "Java and C++ don't count as different languages". Yes they do look similar, but they are very, very different in use (for a start Java has memory corruption protection features here, there and everywhere".
I like smalltalk, I think it's a good language. I also think it is not suitable for very-large-scale programming projects.
openGL is not what we are discussing here.
DirectX =\= OpenGL. DirectX has quite a lot more features than openGL, including most noticably a unified networking system (sometimes it's nice to not have to write directly to ports), sound (of which there seems to be about a thousand different linux standards) and control system (which linux has a bit, but last time I checked not as nice as windows)
There are I think two main reason procedural languages are more popular.
a) inertia. Till quite recently much programming was done in assembler, and procedural languages used to map much better to assembler code efficently. I would argue that as processors become more complex this is actually becoming increasing less true.
b) It's much easier to hack out some program in procedural language and then hack bits of it randomly until it kind of works. Programming in functional languages requires more thought.
Also, I feel it is important to say that as time goes by functional languages are catching up with speed with C (and even surpasing it in some places). This is because we are damn good at writing optimisers nowadays and functional languages frequently allow compilers to make a lot more assumptions.
For example in C, imagine we have the following function:
void foo(int& i) {
if(i==1) g();
if(i==2) h();
}
(The & would be more useful in the case where i was a more complex structure of course!)
In C, we have to assume that the call to g() may have changed the value of i. In a functional language this is not true.
There was a time not long ago when people talked about anyone who didn't use assembler as a joke programmer, because they needed someone else to set up their variables, look after the stack, etc. and were willing to take the speed hit because of it.
I enjoy programming and I do it often. However in business the purpose of a programming language should be to allow you to as quickly and easily write the program to do what you want to do and (almost more importantly) accept that you WILL have bugs in that program, but try to make it as difficult as possible to put bugs in, and as easy as possible to find and remove the ones you did put in.
Anyone who talks about writing "bug-free code" has never spent any real amount of time writing code professionally.
Yes, it is true that the people who try to keep pumping out the same games every year are soon going to have problems because they can't count on graphical improvements to make their game worth buying each year.
On the other hand (and in my opinion much more exciting) is we are rapidly getting to the point where games with very high quality graphics can be made without having to write a different highly-game specific engine each time you want to make a game. This means that we should hopefully have more and more interesting and original games appearing as the time to make them will get smaller, in the same way as cheap(er) digital video cameras has made low-budget film making much more possible than it was.
Seriously.. who would want a mac classic? I have 6 lying in a cupboard somewhere, and one day I'll get around to throwing all but one of them away because no-one wants them. Just because something is old doesn't automatically make it worth keeping around you know
I can't possibly imagine why so many people seem to think that live CDs are good for games.
I remember the days when I had to boot off a floppy, and had to have a differeny floppy boot disc for each game. It was awful and annoying.
Now we have these fancy operating systems, that let us *shock* run multiple applications at once, and *double shock* get the latest drivers for our systems when they are updated.
And you want to go back to every game having a fix boot system, having to reboot to play any of them, and them not supporting new hardware?
Have you ever done any on-line game programming, particuarily of the type like FPSes where the updates must be done as quickly as possible if not faster? If you have some amazing ideas of how to make players not be able to see things they shouldn't while keeping the lag at anywhere near a reasonable level, there are lots of people willing to pay you ALOT of money
If not, don't assume things are easy just because thinking about them for 5 seconds doesn't produce any problems with them
Can I just say, you don't have to reject the Theory of Relativity but, when you try to solve the relativistic equations around a black hole, two thoughts come up:
1) The solutions imply some infinatly small volumes and some infinatly stretched times (this seems like a possible sign your equations may in fact just not explain this
2) Even if we assume that relativity hasn't simply broken down here, we can expect quantum effects to become very significant. Dispite a lot of work relativity and quantum still don't sit happily together.
My main worry about all this black-hole related research is that they are using a hacked-up version of the relativity and quantum equations which we know aren't consistant with each other. I'm not convinced this is any more useful that just studying black holes with Newtonian mechanics...
True, but this encourages the (I'm not convinced entirely untrue idea) that the purpose of open source is simply to create free versions of applications that people have spent large amounts of money researching and developing.
As I'm sure you know, it is a thousand times harder to create an application from scratch than to make a functional copy of an existing one (note here I'm not talking about exactly copying, as say WINE is aiming to do. Thats another aim entirely and can actually as they are finding out be much, much harder than just writing a new system)
And in this you see one of the major problems I feel open source has today.
None of the programs you describe are trying to do something new and imaginative, their aim is simply to clone someone else as efficently as possible.
We need more OSS apps which aim to be good in their own right, not simply because they are "a free replacement for X".
So.. mplayer just appears on your computer automagically? then you make sure you got up to date codecs
No, QuickTime auto-updates. Can you say the same about mplayer? or do you have to go and download updates when a new version comes out?
It is true that mplayer is powerful but like you say, it involves considerable knowhow. (and I don't know if things have got better but until recently basically involved compiling yourself whenever you wanted to install it, along with grabbing all required libraries. It's not simple). In this case I don't see how you can claim it is superiour to quicktime.
you sure thats all you have open? willing to share your IP address with us all to check?
I find on linux you tend to have more need for a firewall. Linux will often be running RPC, and like you say X (and I know at least KDE) use ports too that should be firewalled.
The latest version of flash has support for designing sites suitable for both the blind people.
True, it blocks people who don't install the plugin, but by that argument perhaps all sites should be compatable with me just telneting in case I don't want to install a web browser at all?
I have to say, I agree and defend him.
What his licence says is that you cannot place his code under a licence which would forbid it being placed into closed-source applications.
I don't see how this is less free than the GPL. You can do anything you like (basically) except forbid people from placing your derivate in a closed source application. If that is what he wants to allow, good luck to him. Remember, the GPL is not the be-all and end-all (particularily the GPL v2 isn't, for a start we already know the GPL v3 won't be GPL v2-compatable, so why should the rest of the world have to make their licences GPL v2-compatable?)
This is almost certain. One of the biggest problems with the GPL is that in order for a licence to be GPL (v2) compliant you must be able to interpret it as "you can put this code under exactly the GPL v2, no more, no less".
So unless the GPL v3 is simply a re-wording or clarifcation of the GPL v2 (which seems unlikely, there are various things to cover, including patent issues and internet-based applications) then it will be v2 incompatable.
This "things are only GPL compatable if they can be relicenced under the GPL" is one of many people's major annoyances with the GPL and I think it will come back and get them with the GPL v3. Clearly we have no hope of getting everyone who has ever written GPL v2 code to update it to v3. The FSF's code will be OK (as they require you give them copyright before they will accept code) and any projects which specifically say you can licence under newer versions.
Note the linux kernel says it is under v2 specifically. I'm sure it will be impossible to get everyone who has ever contributed code to the kernel to agree to an update to v3, which will at least mean all code that can be linked into the kernel will have to be dual-licenced v2/v3
actually the standard specifies that the cstdio-type headers put the functions into the std namespace :)
#include
using namespace std;
int main()
{
printf("Hello world!\n");
}
(yes, the standard does allow you to leave out the return value from main. it will automagically put in a return 0;)
Now I apply a bit of thought, the obvious answer is to allow some way of marking a mail "only allow this mail if the person I'm sending it to has said I don't have to pay". Then when people sign up for your mailing list say they have to set up their computer / mail server to not charge that person.
I used to thin kspam could probably be fixed by replacing all SMTP with something that required users to log in. However it is now clear that spammers will go to any depths to send spam including particularily infecting people's computer with spamming programs... so something more serious is the only option.
Thats an interesting question, do you get charged if you run a program that sends out 10,000,000 emails?
I've heard this alot.. but then whats to stop people continuously subscribing to your list and then refusing to refund you the money (or even worse, simply forgetting, you expect everyone to remember to click the "refund this mailing list message" button?)
OK. Let me phrase more carefully (as you want to be pedantic).
You can do ANYTHING with the code, including strip out any and all copyright messages / notes to the original author and then release the resulting code under the GPL.
Because the GPL says you must be allowed to do anything with the code. This includes simply stripping all the comments and advertising out of it and redistributing it. This is one of the reasons some people get a little annoyed with the GPL. However licences which do require you leave in copyright messages / list contributors end up like some BSD-based projects did with lists of thousands of people all over the place and files with more comments listing everyone who has ever latered the file than actual code.
While I love google, this is so obviously just a link to a press release, and even worse the first line of the press release cut-and-pasted onto slashdot's page. And is going past 6 billion really that important?
Go find your own cluebat.
While GPL compatable =\= GPL licensed, as soon as you add a GPLed file to a GPL compatable project you are effectively re-releasing the whole project under the GPL, as the GPL demands such.
Note: This doesn't stop you making GPLed applications which use X.
Also, note that if XFree86 were GPL-compatable then placing any piece of GPLed code into it would force the whole program to be GPLed.. I'm not clear on why the XFree people should relicence their app to be GPL compatable, just so someone can make a derivate that is GPLed. Remember. GPL =\= free software.