I have no objection to automatic formal systems! A smart compiler that could tell me whenever I screw up my code would be perfect. I just don't want to do it manually:)
I started off ambiguous to Z, but now I rather do dislike it. I can see it being used for systems like ATMs, pacemakers, and other important, but small, pieces of software. I'll even accept you could check some limited functionality of a large project with it.
But above a certain size it just falls apart, as all it does is add an extra layer in your product developement cycle, which means more room to make mistakes. For most software, I can't see the point of Z at all. Fortunately, I don't have to like it, just to do it. And so far on my courseworks I've performed pretty good:)
Besides, after 15 weeks studying this stuff, I think I deserve a little bitching time (don't even get me started on the rubbish known as Java:).
Z has it's place (and Lotos, which the class also covered), but I don't think it applies to general purpose programming.
*Mutters something about Z's place being in/dev/null*:)
True, I can see some uses for Z, which is more than my housemate will admit to. Though after this course, I will never, ever, ever touch that pseudo language ever again.
That link you gave certainly seemed very interesting. I'm probably doing my third-year project in C++, and I've done quite a bit of work in the language before. I remember one pointer error in some software I wrote that actually worked 100% of the time on my machine, but had sporadic performance on other people's. Actually, the code in question was completely fubarred, as I had started to change something, then forgotten about the half-finished code later on. It only worked because the pointer just happened to overflow onto the piece of memory that contained the right data.
Valgrind, as well, seems interested when I googled it. Actually, I'll probably use this for my project, if I find it's not too much trouble to set up. Any extra safety checks will only count in my favour, and buggy code is really quite annoying anyway.
That said, I think using safer programming languages, with GC and either dynamic or static typed (per your religion) would greatly improve the quality of software.
Agreed, I use Perl whenever I can these days, which can be quite neat and elegant if done. And then there's CPAN, which is another really big plus. Though if I were working in a group, I'd probably prefer Python:)
Attacked by mathematical methods?! I've just spent another 4 hours revising Z, a horribly evil formal language designed to almost exactly the system you propose. Unfortunately, it doesn't work, at least not for the vast majority of software programmed.
I don't know about most other CS students, but the reason I despise mathematical formal proofs in computer is because they are infeasible, and, frankly, you're more likely to make a mistake with the math then you are with the code, once the project gets big enough.
Have you ever used formal methods such as Z to prove your software? Believe me, it's not something you'd do willingly. The only possible uses for mathematically proved software is with simple, but important code, like in an ATM, for example. Anything larger and it all falls apart.
My point is that mathematical methods aren't the answer. Even my lecturer on this subject, who co-wrote the language, would use such techniques on a large software project. You'd have to be insane.
Don't be silly. Keeping this thing 'live' without any apparent threat would never work: one person brushes against you, gets 50kV for it, and sues you into the ground. Or dies, leaving you with some very difficult questions to answer (and probably a long jail sentence) about why you electrocuted the person. Very useful. Whatever your chosen weapon, you need to be aware of a threat in order to react to it; only a defensive system (some kind of armor) could help there.
Haven't you watched the video on this? The guy touching her isn't incapacitated or anything, he just can't keep his hands on her. You'll see he tries several times with no ill effect. Though wearing gloves might prevent the effects of the jacket.
Also, I'd imagine firearms are used more offensively than defensively; the advantages don't outweigh the disadvantages, at least in my opinion.
On my system, Firebird takes 6 seconds and Opera 24 seconds. So Opera seems to be 4 times slower at starting up. The anti-aliasing problem might just be my use of static libraries though, as I didn't want to be bothered adding symbolic links everywhere so that Opera could run with my QT install.
Opera's an interesting browser, but under Linux it's slower to run and takes longer to start up than Firebird. In addition, I'm not entirely sure how to get anti-aliased fonts working on it, which is somewhat of a must. So for me, it doesn't meet Mozilla's standards. Does it start up any faster on Windows?
From the article, after Sontag is asked for an example of copied code, he remarks that:
Code has been "munged around solely for the purpose of hiding the authorship or origin of the code", he said
Which rather gives them a lot of leeway, considering the systems are quite similar. In theory, you could just wander through the Linux codebase until you found something that looked more or less similar to your own code, and then claim it was "munged" to look different. So you have your "copied" code, without any actual IP violations having happened.
Even if you took all the carbon in the universe, put it on the earth, allowed it to react at the most rapid rate possible AND left it for a billion years, the odds of ending up with one functional protein are 1 in 10exp60.
And your source for this is? This FAQ does a good job at pointing out why assertions like this aren't correct. In a nutshell, reactions don't happen randomly. When you combine certain chemicals, you get certain results. Miller's experiment shows that at least some of the chemicals needed to form life can be easily created, so might that not suggest that the formation of life (or, rather, a self-replicated molecule of some kind) is more likely than you suggest?
Personally, I suspect that the probability of life forming on a planet with conditions like that of the early Earth, given the timespan and energy about, is rather quite likely.
Furthermore, you say:
For those who think I'm rationalizing equally with my limited 100 year lifespan perspective, consider this: they have never discovered fossilized remains of an inter-species mutation; e.g., a creature evolutionarily between A and B. With all the dice rolling and obvious failures along the way, one would expect to find a whole lot of these, no?
Eh? This is rather a case of moving the goalposts to suit your arguments! For instance, people claimed after Darwin that there was no connection between chimps and humans, and then fossil remains of Homo Erectus were discovered in 1891. So what about the inbetween steps? Well, there's Homo Heidelbergensis in 1960 and Homo Habilis a few years later. You could ask for the inbetween stages between, for instance, Homo Habilis and Homo Erectus (Homo Antecessor, discovered in 1996), but surely you must realise by now that we could play this game forever. We've found species C inbetween A and B, but usually that just provides the pseudo-scientific creationists with more fuel; where's the species between A and C, or C and B?
Secondly, there is no 'inter-species' creatures. Either a creature is labelled as one species, or another. Furthermore, fossils are extremely rare, being items which usually don't form, so it's no wonder the fossil record is far from complete.
I know what the Prisoner Dilemma is, I just can't see how on earth it could apply. Unless we're interviewing the spammers, which I really doubt, how is this relevant?
If you think the Unix filesystem isn't a mess currently, then either you have to look again, or you're using a floppy distro under 2 meg in size.
Even when you know what each directory is meant to have in, which the rather excellent LFS is good at doing, it's still an awful system. In fact, if you know where everything goes and why, it's even harder not to consider it a bad system. Unix was alright in its day, and certainly better than some other popular operating systems around now, but I'd hardly claim that the standard filesystem for Unixes is anything but a hack upon a hack upon a hack.
Personally, I really liked the idea of reorganising directory structure. Unix isn't perfect, and can, in many, many, many ways be improved.
Even back in the 2.x versions, you could select not to have unrequested windows opened, or set the policy to "smart", which I assume meant that it would try it's best to guess at which was a pop-up and what wasn't.
My problem with Konqueror is it's tabbing, which isn't great, and it's rendering engine. If it sorts them, I'm sold, but that's two big things to solve. I'm hoping Apple helps out there.
This is why KDE took off. Now KDE is becomming too complex and cluttered and gnome is getting cleaner after they finished rewriting the api's and gnome itself from a clean start.
I don't know about that. KDE's code seems very neat indeed, and it's got an overall design that, until recently, Gnome hasn't really had. KParts is especially interesting, not to mention the stuff on SVG. Plus, Qt tends to be nicer to use than Gtk, but that's just my opinion.
Heh. A +5 Funny comment with the subject as "+5 Funny?"
Yes, I'm sad. But I've also had less than two hours sleep within the past 33 hours, so I'm probably excused:)
Gah! I have no idea what I was trying to write for the first sentence of that, but I suspect lack of coffee was responsible for my utterly terrible grammar. Pay no attention to me:)
There was a book series that started off with "Hyperion" (I forget the author), which at a system of portals for hopping from planet to planet that was controled by the AIs. The crux was that whenever a human entered a portal, they'd grab his or her brain for a bit and use it for some calculations. The portal system was so widespread that people used it many times a day; some even had homes with rooms upon different planets.
Later on in the series, this system is destroyed, and the machines try to harvest computing power by force, planning for a matrix-like system where humans are stored in a massive underground labyrinth and used solely for number crunching. The reason why the AIs needed such calculating power was that most of them were obsessed with creating a Deus Ex Machina; a computer that was omniscient. This decision was probably influenced by fact that said ultimate computer was communicating to them from the future, and sending some, small nasty things back into the past to aid it's ancestors/creators.
I have no objection to automatic formal systems! A smart compiler that could tell me whenever I screw up my code would be perfect. I just don't want to do it manually :)
I started off ambiguous to Z, but now I rather do dislike it. I can see it being used for systems like ATMs, pacemakers, and other important, but small, pieces of software. I'll even accept you could check some limited functionality of a large project with it.
:)
:).
But above a certain size it just falls apart, as all it does is add an extra layer in your product developement cycle, which means more room to make mistakes. For most software, I can't see the point of Z at all. Fortunately, I don't have to like it, just to do it. And so far on my courseworks I've performed pretty good
Besides, after 15 weeks studying this stuff, I think I deserve a little bitching time (don't even get me started on the rubbish known as Java
Even my lecturer on this subject, who co-wrote the language, would use such techniques on a large software project.
Um, I mean: wouldn't use such techniques on a large software project.
Z has it's place (and Lotos, which the class also covered), but I don't think it applies to general purpose programming.
/dev/null* :)
:)
*Mutters something about Z's place being in
True, I can see some uses for Z, which is more than my housemate will admit to. Though after this course, I will never, ever, ever touch that pseudo language ever again.
That link you gave certainly seemed very interesting. I'm probably doing my third-year project in C++, and I've done quite a bit of work in the language before. I remember one pointer error in some software I wrote that actually worked 100% of the time on my machine, but had sporadic performance on other people's. Actually, the code in question was completely fubarred, as I had started to change something, then forgotten about the half-finished code later on. It only worked because the pointer just happened to overflow onto the piece of memory that contained the right data.
Valgrind, as well, seems interested when I googled it. Actually, I'll probably use this for my project, if I find it's not too much trouble to set up. Any extra safety checks will only count in my favour, and buggy code is really quite annoying anyway.
That said, I think using safer programming languages, with GC and either dynamic or static typed (per your religion) would greatly improve the quality of software.
Agreed, I use Perl whenever I can these days, which can be quite neat and elegant if done. And then there's CPAN, which is another really big plus. Though if I were working in a group, I'd probably prefer Python
Attacked by mathematical methods?! I've just spent another 4 hours revising Z, a horribly evil formal language designed to almost exactly the system you propose. Unfortunately, it doesn't work, at least not for the vast majority of software programmed.
I don't know about most other CS students, but the reason I despise mathematical formal proofs in computer is because they are infeasible, and, frankly, you're more likely to make a mistake with the math then you are with the code, once the project gets big enough.
Have you ever used formal methods such as Z to prove your software? Believe me, it's not something you'd do willingly. The only possible uses for mathematically proved software is with simple, but important code, like in an ATM, for example. Anything larger and it all falls apart.
My point is that mathematical methods aren't the answer. Even my lecturer on this subject, who co-wrote the language, would use such techniques on a large software project. You'd have to be insane.
Don't be silly. Keeping this thing 'live' without any apparent threat would never work: one person brushes against you, gets 50kV for it, and sues you into the ground. Or dies, leaving you with some very difficult questions to answer (and probably a long jail sentence) about why you electrocuted the person. Very useful. Whatever your chosen weapon, you need to be aware of a threat in order to react to it; only a defensive system (some kind of armor) could help there.
Haven't you watched the video on this? The guy touching her isn't incapacitated or anything, he just can't keep his hands on her. You'll see he tries several times with no ill effect. Though wearing gloves might prevent the effects of the jacket.
Also, I'd imagine firearms are used more offensively than defensively; the advantages don't outweigh the disadvantages, at least in my opinion.
That's... Hm. That's right. Point taken.
On my system, Firebird takes 6 seconds and Opera 24 seconds. So Opera seems to be 4 times slower at starting up. The anti-aliasing problem might just be my use of static libraries though, as I didn't want to be bothered adding symbolic links everywhere so that Opera could run with my QT install.
Opera's an interesting browser, but under Linux it's slower to run and takes longer to start up than Firebird. In addition, I'm not entirely sure how to get anti-aliased fonts working on it, which is somewhat of a must. So for me, it doesn't meet Mozilla's standards. Does it start up any faster on Windows?
Qt isn't linux specific. Grab the windows version if you want.
From the article, after Sontag is asked for an example of copied code, he remarks that:
Code has been "munged around solely for the purpose of hiding the authorship or origin of the code", he said
Which rather gives them a lot of leeway, considering the systems are quite similar. In theory, you could just wander through the Linux codebase until you found something that looked more or less similar to your own code, and then claim it was "munged" to look different. So you have your "copied" code, without any actual IP violations having happened.
And the feeding of trolls is strictly discouraged.
Even if you took all the carbon in the universe, put it on the earth, allowed it to react at the most rapid rate possible AND left it for a billion years, the odds of ending up with one functional protein are 1 in 10exp60.
And your source for this is? This FAQ does a good job at pointing out why assertions like this aren't correct. In a nutshell, reactions don't happen randomly. When you combine certain chemicals, you get certain results. Miller's experiment shows that at least some of the chemicals needed to form life can be easily created, so might that not suggest that the formation of life (or, rather, a self-replicated molecule of some kind) is more likely than you suggest?
Personally, I suspect that the probability of life forming on a planet with conditions like that of the early Earth, given the timespan and energy about, is rather quite likely.
Furthermore, you say:
For those who think I'm rationalizing equally with my limited 100 year lifespan perspective, consider this: they have never discovered fossilized remains of an inter-species mutation; e.g., a creature evolutionarily between A and B. With all the dice rolling and obvious failures along the way, one would expect to find a whole lot of these, no?
Eh? This is rather a case of moving the goalposts to suit your arguments! For instance, people claimed after Darwin that there was no connection between chimps and humans, and then fossil remains of Homo Erectus were discovered in 1891. So what about the inbetween steps? Well, there's Homo Heidelbergensis in 1960 and Homo Habilis a few years later. You could ask for the inbetween stages between, for instance, Homo Habilis and Homo Erectus (Homo Antecessor, discovered in 1996), but surely you must realise by now that we could play this game forever. We've found species C inbetween A and B, but usually that just provides the pseudo-scientific creationists with more fuel; where's the species between A and C, or C and B?
Secondly, there is no 'inter-species' creatures. Either a creature is labelled as one species, or another. Furthermore, fossils are extremely rare, being items which usually don't form, so it's no wonder the fossil record is far from complete.
'Nuff said.
I know what the Prisoner Dilemma is, I just can't see how on earth it could apply. Unless we're interviewing the spammers, which I really doubt, how is this relevant?
Oh, I see. Thanks for the explanation.
If you think the Unix filesystem isn't a mess currently, then either you have to look again, or you're using a floppy distro under 2 meg in size.
Even when you know what each directory is meant to have in, which the rather excellent LFS is good at doing, it's still an awful system. In fact, if you know where everything goes and why, it's even harder not to consider it a bad system. Unix was alright in its day, and certainly better than some other popular operating systems around now, but I'd hardly claim that the standard filesystem for Unixes is anything but a hack upon a hack upon a hack.
Personally, I really liked the idea of reorganising directory structure. Unix isn't perfect, and can, in many, many, many ways be improved.
Even back in the 2.x versions, you could select not to have unrequested windows opened, or set the policy to "smart", which I assume meant that it would try it's best to guess at which was a pop-up and what wasn't.
My problem with Konqueror is it's tabbing, which isn't great, and it's rendering engine. If it sorts them, I'm sold, but that's two big things to solve. I'm hoping Apple helps out there.
I didn't understand a word of that. What's your point. Are you for IBM, against, or campaigning for the end of cruelty to South Afican monkeys?
This is why KDE took off. Now KDE is becomming too complex and cluttered and gnome is getting cleaner after they finished rewriting the api's and gnome itself from a clean start.
I don't know about that. KDE's code seems very neat indeed, and it's got an overall design that, until recently, Gnome hasn't really had. KParts is especially interesting, not to mention the stuff on SVG. Plus, Qt tends to be nicer to use than Gtk, but that's just my opinion.Heh. A +5 Funny comment with the subject as "+5 Funny?" Yes, I'm sad. But I've also had less than two hours sleep within the past 33 hours, so I'm probably excused :)
But, IIRC, the Z1, Z2 and Z3 weren't Turing Machines. Was Colossus a Turing Machine, or did physical representations of Turning Machines come later?
I'm confused. How does the Prisoner's Dilemna apply to this story?
Gah! I have no idea what I was trying to write for the first sentence of that, but I suspect lack of coffee was responsible for my utterly terrible grammar. Pay no attention to me :)
There was a book series that started off with "Hyperion" (I forget the author), which at a system of portals for hopping from planet to planet that was controled by the AIs. The crux was that whenever a human entered a portal, they'd grab his or her brain for a bit and use it for some calculations. The portal system was so widespread that people used it many times a day; some even had homes with rooms upon different planets.
Later on in the series, this system is destroyed, and the machines try to harvest computing power by force, planning for a matrix-like system where humans are stored in a massive underground labyrinth and used solely for number crunching. The reason why the AIs needed such calculating power was that most of them were obsessed with creating a Deus Ex Machina; a computer that was omniscient. This decision was probably influenced by fact that said ultimate computer was communicating to them from the future, and sending some, small nasty things back into the past to aid it's ancestors/creators.