I think you must be talking about VirtualDub at virtualdub.sf.net? This is an awesome win32 app for linear editing and video capture (allows you to compress with DivX, for instance). It's one of the most professional pieces of software I've seen...
I think the title of this story is misleading; they are using the already GPLed Quake 1 engine. They are "just" replacing the restricted content (models, textures, maps, sounds) with their own.
This is pretty good though; something like NPRquake released the other day could be released as a full package, instead of requiring you to own the original Quake (which, if you don't have it already, is pretty tough to find).
I'm pretty sure this would not count as an attractive nuisance. The owner of a bright flashing sign which distracts motorists might be liable for car crashes nearby would qualify, and your pool example might qualify. But even if the computer system was advertising itself as a hacking target to the casual observer (which I don't suppose it is), I would hope that this doesn't qualify as an attractive nuisance. Otherwise we'd have store owners liable when deviants steal attractive goods from their shops... no?
My original point is that the computer and its security holes did NOT kill the boy. The abandoned pool might kill kids, and the sign might distract motorists into crashing, but the computer was only an early part of the story. I would feel better if you were making the (almost equally outlandish, but at least causally appropriate) claim that his parents should be liable for keeping rope or cord around in the house!
... being 13 is no excuse - if he's smart enough to hack into the school district's systems, then he should know the ramifications of being caught, and the likelyhood of it happening.
I don't think that's true. "hacking" computers doesn't seem very immoral or illegal. When you're sitting in front of the screen, especially at 13, it's just like a video game.
Fixing security holes is a good idea, but it's not like they were running life support for the students or something. You make it sound like an act of negligence!
By "function polymorphism" you mean overloading? You can use variant tags in ocaml to do the same thing, which is just what happens in lisp (except you can use pattern matching. =))
Pattern matching is better than just conditionals. First of all, they can be compiled into jump tables for better efficiency. Second, you can nest them, which has the advantage of nicer-looking code (I guess this is subjective). Less subjectively, the translations of some patterns require duplicating code: the lisp version would have many copies of the same code which would need to be maintained in parallel.
Lisp does not have static type-checking, at least not in the sense of SML or O'caml. It just doesn't!
You really really should try out some more languages (in depth). Lisp is good, and indeed they are all turing-equivalent, but we have come a long way! You may thank yourself...
I think I met you on IRC before. Is it still true that you haven't written any big programs in SML or Caml?
I know you're unwilling to budge on this, but:
There are advantages of code which can interpret itself, but the same functionality is easily achieved through the use of ML datatypes. Caml now even has a pre-processor which lets you invent your own syntax and do traversals if you really need it.
Static typing is awesome for large program development. Your programs are faster, and you catch bugs earlier (no more run-time type errors!). When you need "dynamic" typing (and one seldom does), datatypes or caml's Variant types make it so, so easy. Pattern matching makes it easier to write than lisp code, too (though bigloo has made some headway here..)
No other language I've seen has a module system which can compare to SML's. Polymorphism and functors are an amazing combination. The fact the language comes with a formal definition is also pretty keen.
As for being expressive, isn't it impossible to represent a real, honest-to-goodness integer in lisp? (because it is always tagged for dynamic dispatch?)
I guess I was trying to say that for scripting tasks, you probably don't need the "object-oriented" methodology. For programs that do, well, there are more appropriate languages.
Yes, I have tried Python. =) As I say, it is nice, but that's not what seems to count for (many) hacker types!
Re:Why is code readability such a big deal?
on
Mark Lutz on Python
·
· Score: 1
I agree. I think this was a minor design error that they are always on the defensive about, since people always seem to point that one out. =)
cc-mode for emacs does an awesome job of auto-indenting. Just go C-c C-q and the whole function is beautiful. Whee!
I think people prefer perl because, given all its intricacies and built-in features, programming in perl is fun. It's an adventure.
Programming in python might produce better code, but it is enjoyable to write? Most write-only code (ie, scripting tasks) are tedious if you write them the "nice" way. Hackers find (perverse, perhaps) joy in writing these clever minimalist perl scripts that rely on its various uncivilized features.
When it comes to writing big code, though, writing in any scripting language is problematic for a number of reasons. (Not the least of which are performance, lack of modularity features, and difficulty in producint "stand-alone" apps.) So even if Python may be a nicer language in almost every respect (and who's to say if it is?), that doesn't mean anything, because scripts were meant to be dirty.
In other words, when it comes to scripting languages for use by hackers: terse, tricky, stateful, but "powerful" languages win.
This will be the best open-source browser, and will win favor in the embedded market. Mozilla will live on -- I, and many others, want something that's done right rather than first.
Re:/.'s readers more perceptive than /.'s keepers
on
MS VP Speech Online
·
· Score: 1
Sounds like a good argument for an open, moderated submission queue.
Yeah, you are definitely right. Maybe that e-mail was meant to go to friends, but I think he has a bit too much high school angst. Programming is really not that hard.
Surprisingly enough, you can end up with binaries which can't be built with a "current" copy of source code if you program in Java. (!) This is because its notion of "binary compatibility" is a bit broken.
Far and away, the most common type of security breach is those involving buffer overflows (including the recently popular "printf" attacks).
Go ahead and blame it on the programmer, but the truth is: C makes it easy for programmers, even experienced ones, to make these kinds of mistakes.
C is an inappropriate language for writing high-level network applications. Other than the fact that it has "always been that way", Why is wu_ftpd written in C? fingerd? sshd? bind?
Please, write your network applications in a safe language. Go ahead and use Java if you need it to look like C. There are many other even more appropriate choices.
If the community isn't willing to do that (and they clearly aren't), why aren't they willing to ship something like stackguard in the default install of popular distributions? There is no way users will notice the difference, except that the ones who aren't reading bugtraq and staying up-to-the-hour on patches won't get rooted. Before we need to bother with elaborate AI systems checking networks for us, we need a BIG CHANGE in the way we implement network applications.
Well, lots of reductionists (myself included) believe that the human "thinking" is actually just a very powerful computer, and that the best way to "true" human-like play is in fact more power. Probably, humans are pattern matching and doing shallow parallel search (rather than exhaustive deep search). But I believe they are doing this through the massive and chaotic power of the human brain, not some kind of special ingenuity.
We can try to codify certain strategies, but the best way to encode these will probably turn out to be like the human brain does: lots and lots of tiny nodes, trained in a mysterious and incomprehensible way. Is intelligence really something that we can understand, or does it just fall out of a sufficiently complex system? You seem to say the former, I say the latter.
Imagine if you could play Mike Tyson's Punch-Out(TM) with this!!! SWEET!@!!!
Alex: I have a superior device. My device allows a person to live forever -- twice. (It is made of stronger magnets.) How can I collect my prize?
http://members.aol.com/spoons1000/break/
I think you must be talking about VirtualDub at virtualdub.sf.net? This is an awesome win32 app for linear editing and video capture (allows you to compress with DivX, for instance). It's one of the most professional pieces of software I've seen...
I think the title of this story is misleading; they are using the already GPLed Quake 1 engine. They are "just" replacing the restricted content (models, textures, maps, sounds) with their own.
This is pretty good though; something like NPRquake released the other day could be released as a full package, instead of requiring you to own the original Quake (which, if you don't have it already, is pretty tough to find).
Awright, new technology!!! Do you think I can hook my Virtual Boy into this thing??
I'm pretty sure this would not count as an attractive nuisance. The owner of a bright flashing sign which distracts motorists might be liable for car crashes nearby would qualify, and your pool example might qualify. But even if the computer system was advertising itself as a hacking target to the casual observer (which I don't suppose it is), I would hope that this doesn't qualify as an attractive nuisance. Otherwise we'd have store owners liable when deviants steal attractive goods from their shops... no?
My original point is that the computer and its security holes did NOT kill the boy. The abandoned pool might kill kids, and the sign might distract motorists into crashing, but the computer was only an early part of the story. I would feel better if you were making the (almost equally outlandish, but at least causally appropriate) claim that his parents should be liable for keeping rope or cord around in the house!
I don't think that's true. "hacking" computers doesn't seem very immoral or illegal. When you're sitting in front of the screen, especially at 13, it's just like a video game.
Kill a kid?
Fixing security holes is a good idea, but it's not like they were running life support for the students or something. You make it sound like an act of negligence!
When I saw him talk in 1999, he said he was working on a sequel. I think he even had a draft that he decided to rewrite?
I just made a font of DNA's handwriting,
http://fonts.tom7.com/fonts98.html
I will miss this man.
By "function polymorphism" you mean overloading? You can use variant tags in ocaml to do the same thing, which is just what happens in lisp (except you can use pattern matching. =))
Pattern matching is better than just conditionals. First of all, they can be compiled into jump tables for better efficiency. Second, you can nest them, which has the advantage of nicer-looking code (I guess this is subjective). Less subjectively, the translations of some patterns require duplicating code: the lisp version would have many copies of the same code which would need to be maintained in parallel.
Lisp does not have static type-checking, at least not in the sense of SML or O'caml. It just doesn't!
You really really should try out some more languages (in depth). Lisp is good, and indeed they are all turing-equivalent, but we have come a long way! You may thank yourself...
Python is closer to Java than it is to Python? ;)
I think I met you on IRC before. Is it still true that you haven't written any big programs in SML or Caml?
I know you're unwilling to budge on this, but:
There are advantages of code which can interpret itself, but the same functionality is easily achieved through the use of ML datatypes. Caml now even has a pre-processor which lets you invent your own syntax and do traversals if you really need it.
Static typing is awesome for large program development. Your programs are faster, and you catch bugs earlier (no more run-time type errors!). When you need "dynamic" typing (and one seldom does), datatypes or caml's Variant types make it so, so easy. Pattern matching makes it easier to write than lisp code, too (though bigloo has made some headway here..)
No other language I've seen has a module system which can compare to SML's. Polymorphism and functors are an amazing combination. The fact the language comes with a formal definition is also pretty keen.
As for being expressive, isn't it impossible to represent a real, honest-to-goodness integer in lisp? (because it is always tagged for dynamic dispatch?)
You should take 15-312!
I guess I was trying to say that for scripting tasks, you probably don't need the "object-oriented" methodology. For programs that do, well, there are more appropriate languages.
Yes, I have tried Python. =) As I say, it is nice, but that's not what seems to count for (many) hacker types!
I agree. I think this was a minor design error that they are always on the defensive about, since people always seem to point that one out. =)
cc-mode for emacs does an awesome job of auto-indenting. Just go C-c C-q and the whole function is beautiful. Whee!
How can I resist? For a redesign of lisp that is actually better, see Standard ML at:
m l
http://cm.bell-labs.com/cm/cs/what/smlnj/sml.ht
Also for a more hacker-oriented flavor, try O'Caml at:
http://caml.inria.fr/
Haskell (haskell.org) is also worth checking out, too.
I think people prefer perl because, given all its intricacies and built-in features, programming in perl is fun. It's an adventure.
Programming in python might produce better code, but it is enjoyable to write? Most write-only code (ie, scripting tasks) are tedious if you write them the "nice" way. Hackers find (perverse, perhaps) joy in writing these clever minimalist perl scripts that rely on its various uncivilized features.
When it comes to writing big code, though, writing in any scripting language is problematic for a number of reasons. (Not the least of which are performance, lack of modularity features, and difficulty in producint "stand-alone" apps.) So even if Python may be a nicer language in almost every respect (and who's to say if it is?), that doesn't mean anything, because scripts were meant to be dirty.
In other words, when it comes to scripting languages for use by hackers: terse, tricky, stateful, but "powerful" languages win.
We need error-detecting and correcting DNA. Someone get on this.
This will be the best open-source browser, and will win favor in the embedded market. Mozilla will live on -- I, and many others, want something that's done right rather than first.
Sounds like a good argument for an open, moderated submission queue.
Yeah, you are definitely right. Maybe that e-mail was meant to go to friends, but I think he has a bit too much high school angst. Programming is really not that hard.
Surprisingly enough, you can end up with binaries which can't be built with a "current" copy of source code if you program in Java. (!) This is because its notion of "binary compatibility" is a bit broken.
Check out this paper:
http://citeseer.nj.nec.com/drossopoulou98what.html
Here I go again... ;)
Far and away, the most common type of security breach is those involving buffer overflows (including the recently popular "printf" attacks).
Go ahead and blame it on the programmer, but the truth is: C makes it easy for programmers, even experienced ones, to make these kinds of mistakes.
C is an inappropriate language for writing high-level network applications. Other than the fact that it has "always been that way", Why is wu_ftpd written in C? fingerd? sshd? bind?
Please, write your network applications in a safe language. Go ahead and use Java if you need it to look like C. There are many other even more appropriate choices.
If the community isn't willing to do that (and they clearly aren't), why aren't they willing to ship something like stackguard in the default install of popular distributions? There is no way users will notice the difference, except that the ones who aren't reading bugtraq and staying up-to-the-hour on patches won't get rooted. Before we need to bother with elaborate AI systems checking networks for us, we need a BIG CHANGE in the way we implement network applications.
Well, lots of reductionists (myself included) believe that the human "thinking" is actually just a very powerful computer, and that the best way to "true" human-like play is in fact more power. Probably, humans are pattern matching and doing shallow parallel search (rather than exhaustive deep search). But I believe they are doing this through the massive and chaotic power of the human brain, not some kind of special ingenuity.
We can try to codify certain strategies, but the best way to encode these will probably turn out to be like the human brain does: lots and lots of tiny nodes, trained in a mysterious and incomprehensible way. Is intelligence really something that we can understand, or does it just fall out of a sufficiently complex system? You seem to say the former, I say the latter.