IT has been asked by the opponents of such views as I hold, how, for instance, could a land carnivorous animal have been converted into one with aquatic habits; for how could the animal in its transitional state have subsisted? It would be easy to show that there now exist carnivorous animals presenting close intermediate grades from strictly terrestrial to aquatic habits; and as each exists by a struggle for life, it is clear that each must be well adapted to its place in nature. Look at the Mustela vision of North America, which has webbed feet, and which resembles an otter in its fur, short legs, and form of tail. During the summer this animal dives for and preys on fish, but during the long winter it leaves the frozen waters, and preys, like other pole-cats, on mice and land animals. If a different case had been taken, and it had been asked how an insectivorous quadruped could possibly have been converted into a flying bat, the question would have been far more difficult to answer. Yet I think such difficulties have little weight.
Here, as on other occasions, I lie under a heavy disadvantage, for, out of the many striking cases which I have collected, I can only give one or two instances of transitional habits and structures in allied species; and of diversified habits, either constant or occasional, in the same species. And it seems to me that nothing less than a long list of such cases is sufficient to lessen the difficulty in any particular case like that of the bat.
- The Origin of Species by Means of Natural Selection, Ch. VI: Difficulties of the Theory
They made the source available, but well hidden, and then submitted a story to Slashdot saying "The source ain't there!". Result: free advertising on Slashdot.
Will paying for subscription also remove this kind of ads, guys?
I've spent hours and hours in highschool playing chess with a friend sitting next to me. It does require a paper, a pencil and an eraser rather than just a paper and a pen, though.
IBM's Eclipse
on
Java IDEs?
·
· Score: 5, Informative
(Disclaimer: I am an IBM Research employee but this is my own personal opinion; I do not speak for IBM).
Here at IBM's Haifa Research Lab, each one is allowed to choose his own tools. Many choose powerful editors with the ability to run JDK tools, and find it sufficient. That's what I did, up until a few weeks ago.
I'm now using the soon-to-be-publicly-available (as open source) Eclipse, and it is downright amazing.
The current version (1.0) has some shortcomings, but they are all minor, and the next version is already in advanced stages. Here are a few of the key features that are rather unique and available in 1.0:
Import management - a simple menu choice arranges your 'import' statements -- and adds missing ones, too.
Refactoring framework - easily rename methods, variables, and classes; move classes across packages; etc., and all the relevant source files (including those that use the rename/moved elements) are updated. Future refactoring support will include moving methods or fields up/down the hierarchy tree, and more.
Color-coded stdout - lets you easily tell System.out from System.err output.
History management - made a bad change? Choose 'Compare with -> Local history' (or 'Compare with -> CVS version', etc.) to see a fantastic visual diff between the versions, and undo changes. History is kept for each Save you do.
Does not use Swing - Eclipse is based on SWT/JFace, IBM's GUI frameworks for Java that are much snappier than Swing and look good, too. Of course, you can still use it to develop Swing applications.
Platform intergration - the Windows version of Eclipse supports OLE and allows you to edit (e.g.) Word documents from inside the IDE, if they are part of your project.
Configurable IDE - the various internal windows are easily configurable into tabbed noteboooks - the format of the notebooks (tabs available in each) is not preset and can be changed easily.
I probably forgot a few more things. Plus, the whole thing is plugin-based and additional plugins are already available (from IBM and soon others). This includes database management, XML editors and more.
(Disclaimer: I work for IBM's Research division. What I write here is only my own opinions, not IBM's).
I think IBM found an interesting way to make money from OSS here.
Eclipse is fully open source (it's really cool, BTW. I'm using it for the past two weeks, and while v1.0 still has some rough edges, it is the best Java IDE I've ever used).
Eclipse itself is just a very flexible framework. It ships with a few plugins, also OSS, which make it a Java IDE; but it can also be used (using proper plugins) to develop just about anything else.
IBM will use this framework to develop just about EVERY tool for developers that it has. This include WebSphere Studio, DB2 development tools, MQ Series development tools, the works. However, while the platform itself is open source (and can be used by anyone), the more advanced tools (such as the various eBusiness tools) will not be free.
Naturally, others can also develop their own plugins for Eclipse (and some already do).
I've been teaching "Introduction to OO" and "Introduction to CS" for some time now. Here's my personal view on this matter.
The basic question is this: "should introduction to CS be taught in OO or non-OO languages?"
My answer is a resounding yes. I believe many of the readers of Slashdot had first learned programming in line-numbered BASIC (like I did), or in Fortran, or C. Does this mean anyone learning programming should start from low-level concepts and advance to high-level ones? If you decide to begin in low-level concepts, why C and not assembly? Sure, from an industry point of view, there's no much point in programming in assembly, but if you want students to be close to the machine and understand how it works, it is a better choice.
Naturally, this is hardly what you want from first-time programmers. Starting with OO is a better choice.
The problem is, most of us learned OO programming after we have mastered procedural programming. Teaching OO programming to people with no programming background requires a certain shift of viewpoints. It is not "There are no functions, only member functions", but rather "The state of the program is represented by objects. Objects have methods, i.e., operations that can be invoked on them." And so on.
When taught properly, OO is not more difficult to teach to beginners than procedural programming.
The next question is, "Which OO language should we teach first?". Ideally, I think the answer would be Eiffel. However, none of the places I taught in (including the Open University and IBM Academy in Israel) gave me that option. What people find acceptable is either C++ or Java.
C++ is evil. Twicely so for beginners. Yes, I know I will be flamed for it, but this is my personal opinion. Java is so much easier to teach, and use. It is so much easier to find bugs when array index bounds, for example, are tested with every array access. This is true for experienced programmers, and ten times as true for beginners. It is so much easier to think about algorithms when you do not have to think about memory management. Again, this is true for experienced programmers, and ten times as true for beginners. And so on.
The main downside of using Java, for beginners, is the needless complexity of reading input from System.in (a.k.a. "stdid"). My personal solution to this problem is that at the first stages, the students simply write programs that accept input from the command line arguments (only). Using System.in arrives only later. I find this approach superior to the "black-box" approach some other tutors are using ("This is how you read input from the keyboard. You'll understand it later").
(Disclaimer: I used to be an IBM employee when I was an undergraduate student.)
IBM's VisualAge for Java is downright fantastic, once you get used to it.
It does take getting used to: for example, it does not use the regular file-based model for editing source code. And it is very heavyweight. Don't even consider using it with less than 256MB of RAM for any serious development.
It currently supports only JDK 1.2. Theoretically, you can just "drop in" any JDK version, but the built-in JDK is a version created by IBM, fully compatible with Sun's but more efficient and "intelligent" (since it is aware of certain aspects of the IDE, all without breaking any standard. JavaBeans, for example, have a built-in vendor-extension mechanism, and IBM uses it in full). Plus, the JVM used is also IBM's own, and (at least when comparing JDK 1.1.x and 1.2.x) it is significantly more stable and faster than Sun's JDKs (but that's before HotSpot. I don't have any updated comparison info).
The most basic version is available for free download, but it is rather limited. The high-end Enterprise version includes support for EJB, a Servlet development system (including a debugger), and more.
If you're coming from VB, VisualAge for Java will clearly not be as easy to learn as Delphi/Kylix. But I personally think it is worth the effort (even though I'm a great Delphi fan myself, for Win32-specific development. Didn't try Kylix yet).
Inside info: VisualAge for Java v4.0 should be available Real Soon Now (IBM Standard Time).
If you want PGP support in Mozilla, please vote for bug 22687.
To quote Eran Tromer from that bug page:
"I'd like to express my personal opinion on the matter. Context: I'm not a
Mozilla developer, but I'm well-versed in relevant security issues and I've been
following this bug with interest.
"In terms of security, e-mail is currently one of the weakest facilities on the
Internet. HTTP/SSL, SSH and SCP provide encrypted and authenticated protocols
for the respective needs, but e-mail by and large still relies on plaintext
messages passed in the clear by POP3 and SMTP. The implications are obvious and
frequently experienced. This is paradoxical, considering the vast popularity of
e-mail and its frequent use for sensitive information.
"This grave situation persists mainly because of lack of functionality in common
e-mail software. Encrypted e-mail ought to become the *default* format, and it
must become trivial to import public keys, to send standard-compliant signed and
encrypted messages, and verify their validity upon receipt. None of this is
possible without e-mail software support. And Mozilla is in the position to
change this situation.
"It is my opinion that in this case, clean architecture should be sacrified for
functionality. Yes, providing this functionality in Mozilla 1.0 (i.e., anytime
soon) may necessitate unmodular, specialized and hard-to-maintain changes in the
codebase. It is not possible to do the Right Thing with the given resources and
timeframe. Then go ahead and just do a Working Thing and fix it later, because
this one is too important.
"Mozilla.org is spending an inordinate amount of time on building a fantastic
infrastructure, to-the-letter compliance with numerous standards and
owe-inspriring customizability. But as a practical web user, site administrator,
programmer and consultant, I'd rather give up all of these than have my e-mails
show up in the wrong hands.
I mean, hello? The BBC used to be the tower of clear English. I couldn't believe the number of silly typos and mistakes in that story -- it looks like it was simply not edited (somewhat like a Slashdot story...).
A group of hackers are developing [...]
[...] to be unveiled at this years DefCon [...]
... and so on.
"Mathematical Recreations" does that to people...
on
The New Flatland
·
· Score: 2
The author of the new book, Ian Stewart, is probably best known for his column "Mathematical Recreations" in Scientific American.
It is interesting to note that his predecessor in writing that column, A. K. ("Kee") Dewdney, also wrote a book (The Planiverse) inspired by Abott's Flatland.
Back in '95, I worked for a small software company that had some financial difficulties. We were approached by Intel with a generous suggestion to finance the development of some new software piece - for lots of money, plus promises that Intel will help distribute the product, etc. etc.
The catch: the software had to have a minimal hardware requirement that was the equivalent of today's Pentium 4 at 2GHz (i.e., hardware that was not even available at the time -- PII 500MHz if I recall correctly). In other words, they suggested to pay us so that we'll write bloated code.
People at Intel were loudly telling us that the Web freaks them out: if the Web becomes a killer application, and remains unchanged from its status back then, then nobody would need strong CPUs for home-computing (it was the time people began to talk about Web "terminals").
Eventually the company agreed to the deal, but I am proud to say that I was no longer working there by that time...
This reminds me of the old SF book, The Black Cloud by Fred Hoyle, in which a black cloud (an "interplanetary" life form) voices his surprise, when reaching Earth, that intelligent life had evolved on a planet's surface.
A vast amount of information is still kept in static pages. Now, please check your bookmarks: how many point to static pages, and how many to dynamic, constantly-updated pages? It's only natural that you have very few, if any, links to static pages, since you've visited them, read the information you needed, and you're not likely to come back (nothing changes!).
Two comments: Much like in the case of "2001", I believe "Solaris" the book, and "Solaris" the movie (Russia, 1972; the book itself was originally published in Polish, not Russian) go hand in hand. Only after reading the book and watching the movie do you get a better grasp of both. (Read the book first, though.)
It should be noted, though, that Lem himself mentioned more than once that he did not like the movie and disagreed with the Tarkovsky's (the director's) interpretation of the book.
Solaris is one of my two most favorite Lem books, the other one being The Cyberiad. In the discussion above, somebody already mentioned the issue of translation; it should be noted that Kandel's English version of The Cyberiad is a brilliant translation (I haven't read the original, but I did read a different translation).
The most interesting aspect is that you can now do without headphones in public places; for example, talk-show hosts will no longer need those annoying security-men-like mini-headphones they wear.
Think about international committees (like UN sessions, for example): no more need for headphones. Each ambassador will get his own personal translation "beamed" directly to him. How convinient!
IT has been asked by the opponents of such views as I hold, how, for instance, could a land carnivorous animal have been converted into one with aquatic habits; for how could the animal in its transitional state have subsisted? It would be easy to show that there now exist carnivorous animals presenting close intermediate grades from strictly terrestrial to aquatic habits; and as each exists by a struggle for life, it is clear that each must be well adapted to its place in nature. Look at the Mustela vision of North America, which has webbed feet, and which resembles an otter in its fur, short legs, and form of tail. During the summer this animal dives for and preys on fish, but during the long winter it leaves the frozen waters, and preys, like other pole-cats, on mice and land animals. If a different case had been taken, and it had been asked how an insectivorous quadruped could possibly have been converted into a flying bat, the question would have been far more difficult to answer. Yet I think such difficulties have little weight.
Here, as on other occasions, I lie under a heavy disadvantage, for, out of the many striking cases which I have collected, I can only give one or two instances of transitional habits and structures in allied species; and of diversified habits, either constant or occasional, in the same species. And it seems to me that nothing less than a long list of such cases is sufficient to lessen the difficulty in any particular case like that of the bat.
- The Origin of Species by Means of Natural Selection, Ch. VI: Difficulties of the Theory
IBM WebSphere Studio Application Developer was the first (a cross platform Linux/Windows IDE; v5.0 is coming soon).
Hmmmm... I wonder if programmers/employees working on that "Internal software" use its advice for their own private investments...
They made the source available, but well hidden, and then submitted a story to Slashdot saying "The source ain't there!". Result: free advertising on Slashdot.
Will paying for subscription also remove this kind of ads, guys?
... is only a matter of time. (And it makes sense, too.)
I've spent hours and hours in highschool playing chess with a friend sitting next to me. It does require a paper, a pencil and an eraser rather than just a paper and a pen, though.
(Disclaimer: I am an IBM Research employee but this is my own personal opinion; I do not speak for IBM).
Here at IBM's Haifa Research Lab, each one is allowed to choose his own tools. Many choose powerful editors with the ability to run JDK tools, and find it sufficient. That's what I did, up until a few weeks ago.
I'm now using the soon-to-be-publicly-available (as open source) Eclipse, and it is downright amazing.
The current version (1.0) has some shortcomings, but they are all minor, and the next version is already in advanced stages. Here are a few of the key features that are rather unique and available in 1.0:
I probably forgot a few more things. Plus, the whole thing is plugin-based and additional plugins are already available (from IBM and soon others). This includes database management, XML editors and more.
(Disclaimer: I work for IBM's Research division. What I write here is only my own opinions, not IBM's).
I think IBM found an interesting way to make money from OSS here.
Eclipse is fully open source (it's really cool, BTW. I'm using it for the past two weeks, and while v1.0 still has some rough edges, it is the best Java IDE I've ever used).
Eclipse itself is just a very flexible framework. It ships with a few plugins, also OSS, which make it a Java IDE; but it can also be used (using proper plugins) to develop just about anything else.
IBM will use this framework to develop just about EVERY tool for developers that it has. This include WebSphere Studio, DB2 development tools, MQ Series development tools, the works. However, while the platform itself is open source (and can be used by anyone), the more advanced tools (such as the various eBusiness tools) will not be free.
Naturally, others can also develop their own plugins for Eclipse (and some already do).
... is obviously ISPs charging per MB of traffic.
I've been teaching "Introduction to OO" and "Introduction to CS" for some time now. Here's my personal view on this matter.
The basic question is this: "should introduction to CS be taught in OO or non-OO languages?"
My answer is a resounding yes. I believe many of the readers of Slashdot had first learned programming in line-numbered BASIC (like I did), or in Fortran, or C. Does this mean anyone learning programming should start from low-level concepts and advance to high-level ones? If you decide to begin in low-level concepts, why C and not assembly? Sure, from an industry point of view, there's no much point in programming in assembly, but if you want students to be close to the machine and understand how it works, it is a better choice.
Naturally, this is hardly what you want from first-time programmers. Starting with OO is a better choice.
The problem is, most of us learned OO programming after we have mastered procedural programming. Teaching OO programming to people with no programming background requires a certain shift of viewpoints. It is not "There are no functions, only member functions", but rather "The state of the program is represented by objects. Objects have methods, i.e., operations that can be invoked on them." And so on.
When taught properly, OO is not more difficult to teach to beginners than procedural programming.
The next question is, "Which OO language should we teach first?". Ideally, I think the answer would be Eiffel. However, none of the places I taught in (including the Open University and IBM Academy in Israel) gave me that option. What people find acceptable is either C++ or Java.
C++ is evil. Twicely so for beginners. Yes, I know I will be flamed for it, but this is my personal opinion. Java is so much easier to teach, and use. It is so much easier to find bugs when array index bounds, for example, are tested with every array access. This is true for experienced programmers, and ten times as true for beginners. It is so much easier to think about algorithms when you do not have to think about memory management. Again, this is true for experienced programmers, and ten times as true for beginners. And so on.
The main downside of using Java, for beginners, is the needless complexity of reading input from System.in (a.k.a. "stdid"). My personal solution to this problem is that at the first stages, the students simply write programs that accept input from the command line arguments (only). Using System.in arrives only later. I find this approach superior to the "black-box" approach some other tutors are using ("This is how you read input from the keyboard. You'll understand it later").
(Disclaimer: I used to be an IBM employee when I was an undergraduate student.)
IBM's VisualAge for Java is downright fantastic, once you get used to it.
It does take getting used to: for example, it does not use the regular file-based model for editing source code. And it is very heavyweight. Don't even consider using it with less than 256MB of RAM for any serious development.
It currently supports only JDK 1.2. Theoretically, you can just "drop in" any JDK version, but the built-in JDK is a version created by IBM, fully compatible with Sun's but more efficient and "intelligent" (since it is aware of certain aspects of the IDE, all without breaking any standard. JavaBeans, for example, have a built-in vendor-extension mechanism, and IBM uses it in full). Plus, the JVM used is also IBM's own, and (at least when comparing JDK 1.1.x and 1.2.x) it is significantly more stable and faster than Sun's JDKs (but that's before HotSpot. I don't have any updated comparison info).
The most basic version is available for free download, but it is rather limited. The high-end Enterprise version includes support for EJB, a Servlet development system (including a debugger), and more.
If you're coming from VB, VisualAge for Java will clearly not be as easy to learn as Delphi/Kylix. But I personally think it is worth the effort (even though I'm a great Delphi fan myself, for Win32-specific development. Didn't try Kylix yet).
Inside info: VisualAge for Java v4.0 should be available Real Soon Now (IBM Standard Time).
If you want PGP support in Mozilla, please vote for bug 22687.
To quote Eran Tromer from that bug page:
"I'd like to express my personal opinion on the matter. Context: I'm not a Mozilla developer, but I'm well-versed in relevant security issues and I've been following this bug with interest.
"In terms of security, e-mail is currently one of the weakest facilities on the Internet. HTTP/SSL, SSH and SCP provide encrypted and authenticated protocols for the respective needs, but e-mail by and large still relies on plaintext messages passed in the clear by POP3 and SMTP. The implications are obvious and frequently experienced. This is paradoxical, considering the vast popularity of e-mail and its frequent use for sensitive information.
"This grave situation persists mainly because of lack of functionality in common e-mail software. Encrypted e-mail ought to become the *default* format, and it must become trivial to import public keys, to send standard-compliant signed and encrypted messages, and verify their validity upon receipt. None of this is possible without e-mail software support. And Mozilla is in the position to change this situation.
"It is my opinion that in this case, clean architecture should be sacrified for functionality. Yes, providing this functionality in Mozilla 1.0 (i.e., anytime soon) may necessitate unmodular, specialized and hard-to-maintain changes in the codebase. It is not possible to do the Right Thing with the given resources and timeframe. Then go ahead and just do a Working Thing and fix it later, because this one is too important.
"Mozilla.org is spending an inordinate amount of time on building a fantastic infrastructure, to-the-letter compliance with numerous standards and owe-inspriring customizability. But as a practical web user, site administrator, programmer and consultant, I'd rather give up all of these than have my e-mails show up in the wrong hands.
"Hence, I urge you to reconsider your decision."
(end quote)
- Tal CohenRecompile? But wait, can you trust the compiler? Ken Thompson says you can't.
I wonder -- will our world look so stragely 2D to the people of the future?
I mean, hello? The BBC used to be the tower of clear English. I couldn't believe the number of silly typos and mistakes in that story -- it looks like it was simply not edited (somewhat like a Slashdot story...).
The author of the new book, Ian Stewart, is probably best known for his column "Mathematical Recreations" in Scientific American.
It is interesting to note that his predecessor in writing that column, A. K. ("Kee") Dewdney, also wrote a book (The Planiverse) inspired by Abott's Flatland.
Back in '95, I worked for a small software company that had some financial difficulties. We were approached by Intel with a generous suggestion to finance the development of some new software piece - for lots of money, plus promises that Intel will help distribute the product, etc. etc.
The catch: the software had to have a minimal hardware requirement that was the equivalent of today's Pentium 4 at 2GHz (i.e., hardware that was not even available at the time -- PII 500MHz if I recall correctly). In other words, they suggested to pay us so that we'll write bloated code.
People at Intel were loudly telling us that the Web freaks them out: if the Web becomes a killer application, and remains unchanged from its status back then, then nobody would need strong CPUs for home-computing (it was the time people began to talk about Web "terminals").
Eventually the company agreed to the deal, but I am proud to say that I was no longer working there by that time...
Probably the best intro to the subject is Steven Levy's Aritifial Life: The Quest for a New Creation. Getting old, but still relevant.
The text mentions ISPs with ad-filters installed on their servers. Can anybody please give me examples of this?
Thanks.
You might be interested in my review of the cosmic trilogy.
2001-03-16 03:14:15 This text is added to circumvent the "too-many-caps filter".
This reminds me of the old SF book, The Black Cloud by Fred Hoyle, in which a black cloud (an "interplanetary" life form) voices his surprise, when reaching Earth, that intelligent life had evolved on a planet's surface.
- Tal Cohen (see my SF reviews page)
A vast amount of information is still kept in static pages. Now, please check your bookmarks: how many point to static pages, and how many to dynamic, constantly-updated pages? It's only natural that you have very few, if any, links to static pages, since you've visited them, read the information you needed, and you're not likely to come back (nothing changes!).
Two comments: Much like in the case of "2001", I believe "Solaris" the book, and "Solaris" the movie (Russia, 1972; the book itself was originally published in Polish, not Russian) go hand in hand. Only after reading the book and watching the movie do you get a better grasp of both. (Read the book first, though.)
It should be noted, though, that Lem himself mentioned more than once that he did not like the movie and disagreed with the Tarkovsky's (the director's) interpretation of the book.
Solaris is one of my two most favorite Lem books, the other one being The Cyberiad. In the discussion above, somebody already mentioned the issue of translation; it should be noted that Kandel's English version of The Cyberiad is a brilliant translation (I haven't read the original, but I did read a different translation).
The most interesting aspect is that you can now do without headphones in public places; for example, talk-show hosts will no longer need those annoying security-men-like mini-headphones they wear.
Think about international committees (like UN sessions, for example): no more need for headphones. Each ambassador will get his own personal translation "beamed" directly to him. How convinient!