When I get stuck on a problem a walk or bike ride is about the best thing I can do to get unstuck. But most people in industry don't understand that. There was just no way to account for time spent walking in the woods. But without walking in the woods, it would often take me several (even many) times as long to solve the problem. The corporation had the notion that time spent unproductively in the office was more valuable than time spent productively elsewhere.
Worse yet, at one point I had to account for every fifteen minutes of work on a time card and it was seriously expected that you would do that within a few minutes of the time noted.
Academia is better, but in my last job I had an office on a public hall and the noise from the hall and the noise from the very noisy ventilation fan were a wonderful discouragement to thought.
I was working on a "smart", "language oriented" editor for ADA way back when ADA was considered the Thing To Use and proposed something very like XML as a markup for it. It was considered Way Too Far Out and dismissed.
Since then I've considered the same kind of thing a few times and while I don't think that XML syntax for a programming language is such a great thing in some ways, I've come to think its a Very Good Thing on other ways.
For instance, reading a recent discussion of Hungarian Notation, I saw a comment where someone suggested being able to mouse over a variable and have its definition, scope, any associated comments, maybe all its uses highlighted in different ways. Using XML as a basic markup for a program could facilitate this quite a bit (yes, there are other ways).
Or imagine having the ability to embed diagrams, images and other documentation into a program. (Yes, I'm aware of c#'s mechanisms - I'm thinking of something far more pervasive.) UML information could also be carried along with tbe program. (Yes, again, I've seen mechanisms that do this, but they mostly appear to me to be a bit on the hokey side.)
Similarly, generative programming, Karl Lieberherr's Adaptive Object Oriented Programming, Aspect Oriented Programming could all use XML markup as a facilitating mechanism.
Or consider Knuth's Literate Programming with an XML syntax. For those who've only seen LP in the context of some of the weaker literate programming mechanisms available, check out the books on TeX and MetaFont where the code is presented using literate programming.
XML markup would also present mechanisms for macros and conditional compilation that could be
very powerful indeed. For instance, having used Sather, I always want pre and post conditions nicely included in procedure definitions in other languages (and have remained frustrated that the Java language definition (c# as well, as far as i can tell) has not included these constructs except as ad hoc add ons). An underlying XML markup would make this possible, even relatively easy.
As a programmer I wouldn't want to have to interact with it directly, I'll admit - but we should be able to build Emacs modes or similarly "smart" editors that make the interaction reasonable. And given how popular big fancy IDE's are these days, this shouldn't be all that tough to manage.
And there are other potential benefits as well -
programmer control of name mangling, programmer control of obfuscation (also much stronger support for intelligent de-obfuscation, by the way), support for better code refactoring, the ability to track changes on a more conceptual level in a version control system.
To say nothing of being able to finally resolve all those damn arguments about the One True Way to lay out your code - every user could define their own preference in their UI - the markup itself would not need to know anything about it at all.
Yes, I'm well aware of the drawbacks - I use emacs for almost everything. But given the effort that has goine into making IDE's these days, most of the drawbacks are quite resolveable.
Actually I think the original post ("XML Sucks") was pretty much on base - the points he made were excellent. That there are API's that process XML the way he wanted it does not negate his points - and that he did not know of them may have helped make some points about the size of the XML universe these days and how quickly it is growing.
(Parenthetically (Duh!) for similar problems though I sometimes written an XSLT filter to reduce the size and complexity of the original data set, then used a DOM style reader on that. So I'd rather like an API that would let me do that more easily.)
If this is enacted how will it interact with NAFTA?
In particular, might there be a requirement that the US and Canada follow suit?
That would be interesting - it would give RIAA, software makers and the like a very convenient, relatively inexpensive (I suspect paying off Mexican legislators is less expensive than paying off US legislators) way to impose their notions of Goodness and Niceness on the rest of North America without actually having to bring up the subject in the US or Canada.
I wrote a program some years back that would generate midi files and 3d images from a kind of L-system deal where the L-systems were built using a variant of genetic algorithms/programming. It wasn't very flexible so I rewrote it in java and had it available on my web pages at the university (or whatever it was) where I worked.
It produced some horrible noises and a few amazing ones. It produced some dull images and a few astonishing ones.
I don't have web space for it at the moment and have been slowly (its now my third or fourth pass so I'm getting a bit tired of it) working on the code to make it cleaner and add some more flexibility in terms of the kind of problem it will solve. In particular I'd like to make it possible to run more easily as a web page and to make it possible for downloaded versions to load good "genes" up to the web page. I suspect that will help to make the resulting music/images more interesting.
Once I have a decent version that I don't mind having other people look at, I'll be putting it on some open source site (like sourceforge).
You say "The best education these students could receive is a broad one."
I agree. And in essentially all colleges and universities the students do not get a broad exposure to computing. They see microsoft products and only microsoft products.
After all, most of them already have microsoft based machines - from the OS through the browser through the "office" aps - on their own personal machines.
"No Bias." in this case is a very effective way to ensure that only Microsoft products will be seen.
And they'll fight like hell to resist learning anything else. After all they already know that the only computing they need to know is Microsoft based.
And all but a few professors will go along with them, having achieved their PhD's and being now determined not to learn anything they don't have to.
I have proposed more than once, to people in more than one college/university that a computer literacy program needs to include Linux and MacOS and MS stuff. I've been told uniformly that thats impossible - that the only thing anyone wants to teach/buy/learn is MS.
In my opinion the only way to get students to learn another system is to push them into doing it and this gift is exactly the right way to do that.
It will almost certainly be refused - a combination of small minded faculty types, MS pressure and students whining "I want my Outlook"
will kill it.
Laws are such fun. Every law that closes one opportunity opens three others. This is such a good one too.
I'm already figuring on letting charities sell long distance phone service, credit card protection and magazines. They'll make a nice bit of change out of it. I'll even rent them my lists of numbers (no numbers excluded), and if they need it, I have a whole building full of phones and people who can do the work for them for a small fee.
And politicians - they already know J. Cheever Loophole and how I can help them.
I think I can get the "pre-existing relationship" to work too. Maybe with ex-girlfriends/ex-boyfriends. Maybe even rent out girlfriends/boyfriends to establish the relationship!
And my friend Captain Spaulding, who is now working for one of the big cellular companies thinks that with this in place they can talk congress into allowing calls to cell phones, from the cell companies that sell the cell service. The cell companies would win twice - once being paid for the marketing calls, and once again by making more money off the connection charges.
This is a very good thing to do, but as a couple of people have noted it will become big and probably pretty expensive if it works.
A couple of other comments following what people have said....
I'd (personally) like to see an upfront statement that users retain copyright over their comments.
Someone suggested MARC data as a good thing. I'm not entirely sure I agree as MARC data differentiates between editions even where there is no difference in content. However, I do think it could be very useful to have at least partial MARC records for the books, and possibly multiple MARC records for a single book.
Being able to load in publishers records for currrent books would also be a good thing (these are probably available somewhere online). Perhaps the "Cataloging in Publication" data could help.
The ability to link to Library of Congress bibliographic data (for those who prefer non-US centric, the British Museum Library, the Sorbonne, the Alexandria libray and the major libraries in Russia, China and so on) would also be very helpful.
Thinking in advance about other kinds of user services would be good. For example, might there be a way to search for other users who've rated a particular collection of books highly, then to find books common to those people? (IE, "Readers like you...")
Finding a granting agency that might be interested in helping to support this could be very valuable.
Oregon voters recently refused to raise taxes thus leaving the state facing serious cuts in spending at many levels. Replacing proprietary software with open source could help quite a bit.
However...
Requiring state agencies to "consider" open source is likely only to raise costs. Someone will spend a couple extra days saying they're considering open source, then go back to the safe choice. (At some point in the past, when IBM was king, the saying was that "Nobody ever got fired for recommending IBM")
If Oregon were to find all the places where open source could be dropped in with minimal disruption and then actually do it, the state could probably save a fair bit.
For example, in the town I live in in Oregon, there is a Community College (they like to call themselves a University, but tend to act like a Community College). Essentially all the faculty run Windows and run mostly screen savers, word, email and a browser (there are a few exceptions running Macs). All of these could easily be replaced with open source alternatives. They probably never will be - the Computing Services folks have bought big into MS and they will support the whines of the faculty who'll say "I can't learn anything new".
In particular that interim between someone discovering the problem and having a fix available is worrisome. In this case it seems to have been two months - suppose it were six months? a year? two years? During all this time, it is possible for someone to exploit the problem and since many sites using the software would not be aware the problem even exists, it leaves them with some exposure.
People who might reveal such problems during this interim (perhaps wanting to get information, perhaps wanting to warn others) could be muzzled with "National Security" resources, even criminalized. Probably not a wise idea (though certainly a tempting one to those in power) as it makes people rather less than motivated to find and report such.
The final couple of steps also concern me.
In particular, there is one possibility inherent in this very government oriented process : that the presence of the bug never get published and gets (and this seems inevitable where "government security" is involved) rated as "classified". Now nobody except the vendor and the government would know anything about the problem - even its existence.
Why should anyone care if it is classified?
First, it involves the government protecting a vendor - which would make any potential legal action by someone else impossible as the information is secret and could not be revealed in open court - perhaps not revealed at all.
Second, it means that the software/security community in general will not know the details of the problem and exploit and will then be less able to identify similar problems in the future.
Good idea! (Assuming that the security implications are considered carefully.)
As for getting it deployed, perhaps the tarpitting could just be made a part of the major unix SMTP code and distributed with it turned on by default. Similarly add and distribute kernels with the added tcp/ip api calls. With comments to that effect somewhere and flags to turn it all off.
Then, anyone who is actually maintaining an open relay using unix will eventually get the "enhanced" version.
It would also seem reasonable to encourage people to run open relays with this in place where they had been previously not open - it would increase the number of hosts for the spammers to use, granted, but would end up slowing down the spammers. If the code also had ways to track the originating hosts these could be shared and used to augment host checking in the tarpit.
If at the same time some crypto-based signing mechanism were added to the SMTP code, this could be used as a "pass through normally" flag. Non signed messages could be slowed down on receipt.
And, of course the "yellow light" is a reference to Reverend Jim taking his taxi driver license exam in "Taxi".
I usually load mozilla once when I login and start up X and run it for as long as I can manage thereafter. This amortizes startup costs - and since it starts with everything else I just login and do something else for a few minutes.
Then again there is Phoenix - also from mozilla, a stripped down version of mozilla that is aiming at speed and memory footprint. Its still improving, but generally starts and runs much faster than mozilla.
I note with a "ps" that the phoenix process I'm typing this in now has been about 5 days. Works for me, even if it did take an extra minute or so to start up (which I doubt, but didn't check).
octave/matlab... are mostly vector/array oriented languages and are useful for doing work in problems that are suited for such - you can experiment easily, then recode in C,fortran... if needed. apl and j are also in this group and should not be ignored - though they're used a bit less frequently.
Macsyma/mathematica/maple/maxima/derive are symbolic math languages and can solve interestingly sized problems and get symbolic answers (that is, things like sqrt(pi/2)) as well as numeric approximations. This can be a very useful tool to have - depending on what I'm doing I use such things a couple times a week (nice to check results done by hand, or to handle all the crufty part of a solution). Most will emit fortran code which can also be useful.
vtk, opendx/khoros(?) are visualization tools - most of the other packages have some visualization tools packaged in them, but vtk and opendx both offer quite a bit more power.
Now the incredibly non specific recommendation
My suggestion is to pick one of each of these and learn it - do enough in it so you know the language/system well. Otherwise you'll be struggling with the language as well as with the problem - and finding bugs will be close to impossible.
If I put on my "computer science professor" hat (probably a wise thing if I'm to keep the top of my head from turning bright red with sunburn), I usually try to recommend that all CS students learn a smattering of these things as well. When you need one of these tools, knowing its there and how to use it can save large and wonderful quantities of time.
And now some more specific comments
On the whole my choices would be as follows - note the caveats - some of them are pretty cave-rnous (sic). I don't have piles of money to spend, so
tend to prefer the open source programs just on that basis.
For array/matrix manipulation I much prefer APL or one of its derivatives (check out aplus on sourceforge). Languages in the APL family are also fun to program once you learn how. However the terseness of the syntax (and with APL itself the odd character set) tends to make these a bit forbidding, so a more popular choice would be octave (open source) or matlab. I've had good luck with octave - it seems to handle most matlab programs well enough. If you've got piles of money, go for matlab.
For symbolic math, maxima (sourceforge) is good. Its commercial cousin Macsyma has usually ranked as about the best symbolic math packages for accuracy and power and seems less expensive than the others. Actually writing programs in either of these requires learning quite a bit about the innards of the system though. My second choice for symbolic math would be Mathematica - its programming language is well integrated with the system as a whole and and for general goodness and niceness of the interface it can't be beat. (The other commercial products are building on the best parts of the Mathematica interface - I've not checked recently, but they're getting much better fast.) The visualization capabilities of Mathematica are also very good. Maple is probably the most popular, so using it will probably make it easier to find someone to help you, but on the whole I've just never found Maple as easy to program as Mathematica and I tend to want to program almost everything.
For visualization both vtk and opendx are very nice systems. vtk is more aimed at a programming interface, opendx has a labviewish kind of programming environment. I like both and have both at hand. Both these systems are big enough that you'll want to make sure you understand them before you tackle a project with them.
They don't scale well, but spreadsheets can be
very convenient for small models. Careful though, its easy to have errors even in middlin sized models that can be very hard to find.
Odd Zen Endz
As has been noted there are other systems, some smaller, some more specifically focussed on a single domain. Those tend to be harder to match to a problem - unless the problem is right in the center of the domain in question.
There used to be a program AXIOM which had a lot of nice features, but it seems to have gone to that Big Bit Bucket in the sky - but its base language "Aldor" is now available at aldor.org. I have a copy, but haven't looked deeply at it.
Sourceforge is also hosting a new project "lush" - which is a lisp system that has some integration of some of these features. To the extent that I've used it I'm impressed and will probably spend some time working deeper with it in the hopes that it will prove another valuable tool.
"it is quite likely that the courts will ultimately decide that banning all adverts was unnecessarily broad."
Sigh. Probably true. But give a spammer or telemarketer or other sleazeball a tiny crack and they'll stretch it to allow everything.
For instance, the "Do Not Call" list, according to
this
would have exemptions for a number of groups. And there seems to be a blanket exemption for charities. Just this hole raises lots of potential - the telemarketers will pay the charity some amount per call to call on their behalf -- and then toss in their sales pitch.
What makes this particularly interesting is that "googol" was already in use as a noun long (1938) before "Google" was formed.
Now "googol" as a noun and "google" as either a noun or a verb are pronounced (as far as I can tell) essentially identically. So the "Google" folks want to protect the spelling, not the word. Is this valid trademark law? That is, can you trademark a spelling variant of a single word? What then happens if people happen to pronounce it the same as the generic term?
On the other hand, maybe the solution is for people to now spell the "search the web" term as
googol - or can "googol" as a verb be trademarked despite its common (?) use previously as a noun?
"Does a compay that tries to make a coherent look and feel let people go and throw off the UI elements when they chose a 96 pt font for their "ok" button?"
Why not? Its the users computer, the users desktop.
Why should I believe that the UI designer knows whats best for me? Usually they do not.
The way this thread is going makes me think that everyone is quite content to let some idiot make these decisions as long as they call themselves a UI designer and treat the users with sufficient contempt.
I have it set up so a root shell in X for me comes up (usually) in a terminal window with a bright orange background, purple foreground, a big font and a prompt "You Are ROOT ! ". (If you don't know why, perhaps someone should be making decisions for you.) I"m waiting for someone to decide that this is ugly and should not be allowed . (Don't laugh - think of the good ole DOS prompt.)
I wish I had that kind of arrogance. (I have, I'll admit, other kinds of arrogance).
I always want to take these guys who seem to have decided that they know more than I do what is appropriate for my desktop (or editor, or shell or whatever) and chain them to desks with 7 point fonts in dark gray displayed on a black background and 20 by 20 character windows. Then make them do something complex. And respond to every complaint with "Nyah, Nyah - I know better than you do..."
Its my contention that the web as an entity has the potential to become a conscious sentient being at some point - because of the complexity, the computing power attached to it and a few other bits and pieces.
So when someone sez "no will or motive of its own" I always have to ask the important question here - "How would we know?" Since there's no reason for us to suppose that intelligence/sentience/... would look very much like human intelligence, its possible that the net/web has already made this transition.
Of course, there's the converse question too - would an intelligent net recognize us as intelligent/sentient/... ?
While there is still much to be done with indexing using machine learning, there is a much greater payoff that is much more reachable using human brains as part of the process.
Web reviewers are one possibility, of course, but how many reviewers would it take to cover the web as it now sits - google just told me it is "searching 3,083,324,652 web pages".
Blogging and its relatives are probably far more powerful when allied with automatic page classification and ranking.
Suppose Google builds an extended blog format - perhaps with XML tags - and a tool to make entries using that format. This already gives them some more meta information that could be useful in building better searches.
And, as has been said, the ability to track the activity in a blog on a (sort of) real time basis gives them the capability to track news as it happens.
But there are more possibilities yet - just knowing the times entries are made gives you some information. If you have a blog coming from a specific user (track by cookies or even IP) you can correlate blog entries with google searches and with the user looking at other blogs. Sure, much of this will be uncorrelated, but add it all together and I suspect it will start to show interesting patterns. And much of this kind of information will only be available to an organization hosting the blogs.
I think there are other ways to extract more information from a blogger as well.
This could pay off big for Google as a search engine and augmented information indexer - most especially if they can get the human factors right and tempt a few more people into blogging.
(There's more - and in some rather more specific domains and contexts - but google seems uninterested in hiring me, so I don't see any good reason in giving them my ideas.)
Along the same lines, we can easily infer that if the US government were to propose actually dropping the personal income tax, that it would be opposed (and I guarantee you it would) by the same people on the grounds that it would cause so many people to lose their jobs.
Similarly we can expect the "War on Drugs" to continue forever not because there is a "Serious Drug Problem" but because it would cause all those prison guards and cops and lawyers and so on to lose their jobs.
Compact or SUV
on
XML Turns 5
·
· Score: 2, Insightful
"Hopefully a more compact form."
And here, all this time I thought bigger was better.
In any case, this point always comes up. "XML is too verbose." But a certain amount of verbosity in programming is good (vis Python vs APL) though too much is bad (Cobol vs Java).
So is XML too verbose?
Given the right tools we could easily transform "<quote><text><sentence type="question" language="english">" reversably (thats important) to "<q><t><s t="q" l="e">" which certainly is less verbose. I'd be willing to bet that most XML DTDs/Schema would allow for most tags to be reduced to one or two alphabetic characters (that would be 700+ different elements). If thats too much you could build a simple tool defaulting the attributes, eliding the close "</...>" bits quoting unquoted attributes and so on. Which could give us "<q><t><s t=q>". Too verbose still? I could easily go a few steps further but won't.
In any case, the challenge for those who find XML verbose is to find an isomorphic representation. That is a representation R and transformations XR taking XML to the other representation and RX going the other way so that XR(RX(text)) = text that is less verbose. Lots of people will thank you I expect.
A book is a good thing. It is a nice compact way to deliver the message to someone. However, most managers really only have time for a "whitepaper", less than 20 pages.
I think a better thing might be a whole website. Include on it the whitepaper and the book - prominantly (front page). But it also would
allow the creation of other kinds of information for people interested in the topic: forums (like slashdot) for discussing current issues in the area, announcements (like freshmeat) for software of interest, mailing lists and so on. The site would need to be carefully moderated and edited or it could get out of control quickly with trolls and flamewars. This also allows for people to post articles saying open source does not work - this provides a good balance for the advocates. Such criticism and counter-opinions are important to hear (see the whole thread on Java at Sun).
On a related note though, there could be a fun chance for open source. The state of Oregon recently voted to not raise taxes - thus putting the government in a serious budget crunch. They're already laying off state police and there are threats/promises of more to come.
But if Oregon moved most of its office desktops to open source alternatives the savings could be pretty high. I don't know how many computers the state buys each year for office use, but the software costs - OS + Office + other software - probably adds up pretty quickly. That doesn't count upgrades which will add up to a bit more. I know that as part of the university system we only got a discount (hardware or software) if we bought through the right sources - and most machines came with Windows and Office pre-installed so the discounts didn't always apply on first purchase.
I have Dish TV and have proposed to them in email several times that they make the tv listings for all their channels available in some nice downloadable format and with a local viewer program. (I even offered to design and build a first version for them for a reasonable (grin) fee.)
Dish TV however takes their customer interaction guidelines primarily from Ernestine the Telephone Operator ("Cackle, we don't have to care!").
Hence their answer has been uniform. They don't bother to answer.
So I've been using XMLTV to download the listings, and a homegrown XSL transformation to change the listings to a nice grid for viewing in a browser.
Works just fine, but I'm sure that the people running the sites with the listings are getting cranky at people doing this or similar things with
XMLTV.
Worse yet, I believe that if they provided the listings in a slightly different format and compressed, the downloads would be much less onerous.
I suspect they're trying to figure out how to make downloadable listings available and then charge heavily for them - the paper version is now a couple bucks a month ($3.95?) so they're probably counting on being able to charge at least $30/month for the electronic version.
And they'll undoubtedly justify those high costs by pointing to the load XMLTV places on their systems.
And when they do, they'll stop anyone from using XMLTV or the like. I suspect that EuroTV is just doing the same thing.
They already did this. "There's No Such Agency!"
Worse yet, at one point I had to account for every fifteen minutes of work on a time card and it was seriously expected that you would do that within a few minutes of the time noted.
Academia is better, but in my last job I had an office on a public hall and the noise from the hall and the noise from the very noisy ventilation fan were a wonderful discouragement to thought.
Since then I've considered the same kind of thing a few times and while I don't think that XML syntax for a programming language is such a great thing in some ways, I've come to think its a Very Good Thing on other ways.
For instance, reading a recent discussion of Hungarian Notation, I saw a comment where someone suggested being able to mouse over a variable and have its definition, scope, any associated comments, maybe all its uses highlighted in different ways. Using XML as a basic markup for a program could facilitate this quite a bit (yes, there are other ways).
Or imagine having the ability to embed diagrams, images and other documentation into a program. (Yes, I'm aware of c#'s mechanisms - I'm thinking of something far more pervasive.) UML information could also be carried along with tbe program. (Yes, again, I've seen mechanisms that do this, but they mostly appear to me to be a bit on the hokey side.)
Similarly, generative programming, Karl Lieberherr's Adaptive Object Oriented Programming, Aspect Oriented Programming could all use XML markup as a facilitating mechanism.
Or consider Knuth's Literate Programming with an XML syntax. For those who've only seen LP in the context of some of the weaker literate programming mechanisms available, check out the books on TeX and MetaFont where the code is presented using literate programming.
XML markup would also present mechanisms for macros and conditional compilation that could be very powerful indeed. For instance, having used Sather, I always want pre and post conditions nicely included in procedure definitions in other languages (and have remained frustrated that the Java language definition (c# as well, as far as i can tell) has not included these constructs except as ad hoc add ons). An underlying XML markup would make this possible, even relatively easy.
As a programmer I wouldn't want to have to interact with it directly, I'll admit - but we should be able to build Emacs modes or similarly "smart" editors that make the interaction reasonable. And given how popular big fancy IDE's are these days, this shouldn't be all that tough to manage.
And there are other potential benefits as well - programmer control of name mangling, programmer control of obfuscation (also much stronger support for intelligent de-obfuscation, by the way), support for better code refactoring, the ability to track changes on a more conceptual level in a version control system.
To say nothing of being able to finally resolve all those damn arguments about the One True Way to lay out your code - every user could define their own preference in their UI - the markup itself would not need to know anything about it at all.
Yes, I'm well aware of the drawbacks - I use emacs for almost everything. But given the effort that has goine into making IDE's these days, most of the drawbacks are quite resolveable.
(Parenthetically (Duh!) for similar problems though I sometimes written an XSLT filter to reduce the size and complexity of the original data set, then used a DOM style reader on that. So I'd rather like an API that would let me do that more easily.)
In particular, might there be a requirement that the US and Canada follow suit?
That would be interesting - it would give RIAA, software makers and the like a very convenient, relatively inexpensive (I suspect paying off Mexican legislators is less expensive than paying off US legislators) way to impose their notions of Goodness and Niceness on the rest of North America without actually having to bring up the subject in the US or Canada.
It produced some horrible noises and a few amazing ones. It produced some dull images and a few astonishing ones.
I don't have web space for it at the moment and have been slowly (its now my third or fourth pass so I'm getting a bit tired of it) working on the code to make it cleaner and add some more flexibility in terms of the kind of problem it will solve. In particular I'd like to make it possible to run more easily as a web page and to make it possible for downloaded versions to load good "genes" up to the web page. I suspect that will help to make the resulting music/images more interesting.
Once I have a decent version that I don't mind having other people look at, I'll be putting it on some open source site (like sourceforge).
You say "The best education these students could receive is a broad one."
I agree. And in essentially all colleges and universities the students do not get a broad exposure to computing. They see microsoft products and only microsoft products.
After all, most of them already have microsoft based machines - from the OS through the browser through the "office" aps - on their own personal machines.
"No Bias." in this case is a very effective way to ensure that only Microsoft products will be seen.
And they'll fight like hell to resist learning anything else. After all they already know that the only computing they need to know is Microsoft based.
And all but a few professors will go along with them, having achieved their PhD's and being now determined not to learn anything they don't have to.
I have proposed more than once, to people in more than one college/university that a computer literacy program needs to include Linux and MacOS and MS stuff. I've been told uniformly that thats impossible - that the only thing anyone wants to teach/buy/learn is MS.
In my opinion the only way to get students to learn another system is to push them into doing it and this gift is exactly the right way to do that. It will almost certainly be refused - a combination of small minded faculty types, MS pressure and students whining "I want my Outlook" will kill it.
Laws are such fun. Every law that closes one opportunity opens three others. This is such a good one too.
I'm already figuring on letting charities sell long distance phone service, credit card protection and magazines. They'll make a nice bit of change out of it. I'll even rent them my lists of numbers (no numbers excluded), and if they need it, I have a whole building full of phones and people who can do the work for them for a small fee.
And politicians - they already know J. Cheever Loophole and how I can help them.
I think I can get the "pre-existing relationship" to work too. Maybe with ex-girlfriends/ex-boyfriends. Maybe even rent out girlfriends/boyfriends to establish the relationship!
And my friend Captain Spaulding, who is now working for one of the big cellular companies thinks that with this in place they can talk congress into allowing calls to cell phones, from the cell companies that sell the cell service. The cell companies would win twice - once being paid for the marketing calls, and once again by making more money off the connection charges.
Now if I could only patent all this....
Oh, thats right. I can.
</spurious-quote>
A couple of other comments following what people have said....
I'd (personally) like to see an upfront statement that users retain copyright over their comments.
Someone suggested MARC data as a good thing. I'm not entirely sure I agree as MARC data differentiates between editions even where there is no difference in content. However, I do think it could be very useful to have at least partial MARC records for the books, and possibly multiple MARC records for a single book.
Being able to load in publishers records for currrent books would also be a good thing (these are probably available somewhere online). Perhaps the "Cataloging in Publication" data could help.
The ability to link to Library of Congress bibliographic data (for those who prefer non-US centric, the British Museum Library, the Sorbonne, the Alexandria libray and the major libraries in Russia, China and so on) would also be very helpful.
Thinking in advance about other kinds of user services would be good. For example, might there be a way to search for other users who've rated a particular collection of books highly, then to find books common to those people? (IE, "Readers like you...")
Finding a granting agency that might be interested in helping to support this could be very valuable.
However...
Requiring state agencies to "consider" open source is likely only to raise costs. Someone will spend a couple extra days saying they're considering open source, then go back to the safe choice. (At some point in the past, when IBM was king, the saying was that "Nobody ever got fired for recommending IBM")
If Oregon were to find all the places where open source could be dropped in with minimal disruption and then actually do it, the state could probably save a fair bit.
For example, in the town I live in in Oregon, there is a Community College (they like to call themselves a University, but tend to act like a Community College). Essentially all the faculty run Windows and run mostly screen savers, word, email and a browser (there are a few exceptions running Macs). All of these could easily be replaced with open source alternatives. They probably never will be - the Computing Services folks have bought big into MS and they will support the whines of the faculty who'll say "I can't learn anything new".
I know all the digits to pi in binary. But I do admit the same problem - I do get the order mixed up a bit.
In particular that interim between someone discovering the problem and having a fix available is worrisome. In this case it seems to have been two months - suppose it were six months? a year? two years? During all this time, it is possible for someone to exploit the problem and since many sites using the software would not be aware the problem even exists, it leaves them with some exposure.
People who might reveal such problems during this interim (perhaps wanting to get information, perhaps wanting to warn others) could be muzzled with "National Security" resources, even criminalized. Probably not a wise idea (though certainly a tempting one to those in power) as it makes people rather less than motivated to find and report such.
The final couple of steps also concern me.
In particular, there is one possibility inherent in this very government oriented process : that the presence of the bug never get published and gets (and this seems inevitable where "government security" is involved) rated as "classified". Now nobody except the vendor and the government would know anything about the problem - even its existence. Why should anyone care if it is classified?
As for getting it deployed, perhaps the tarpitting could just be made a part of the major unix SMTP code and distributed with it turned on by default. Similarly add and distribute kernels with the added tcp/ip api calls. With comments to that effect somewhere and flags to turn it all off.
Then, anyone who is actually maintaining an open relay using unix will eventually get the "enhanced" version.
It would also seem reasonable to encourage people to run open relays with this in place where they had been previously not open - it would increase the number of hosts for the spammers to use, granted, but would end up slowing down the spammers. If the code also had ways to track the originating hosts these could be shared and used to augment host checking in the tarpit.
If at the same time some crypto-based signing mechanism were added to the SMTP code, this could be used as a "pass through normally" flag. Non signed messages could be slowed down on receipt.
And, of course the "yellow light" is a reference to Reverend Jim taking his taxi driver license exam in "Taxi".
Then again there is Phoenix - also from mozilla, a stripped down version of mozilla that is aiming at speed and memory footprint. Its still improving, but generally starts and runs much faster than mozilla.
I note with a "ps" that the phoenix process I'm typing this in now has been about 5 days. Works for me, even if it did take an extra minute or so to start up (which I doubt, but didn't check).
First a global kind of classification.....
octave/matlab... are mostly vector/array oriented languages and are useful for doing work in problems that are suited for such - you can experiment easily, then recode in C,fortran... if needed. apl and j are also in this group and should not be ignored - though they're used a bit less frequently.
Macsyma/mathematica/maple/maxima/derive are symbolic math languages and can solve interestingly sized problems and get symbolic answers (that is, things like sqrt(pi/2)) as well as numeric approximations. This can be a very useful tool to have - depending on what I'm doing I use such things a couple times a week (nice to check results done by hand, or to handle all the crufty part of a solution). Most will emit fortran code which can also be useful.
vtk, opendx/khoros(?) are visualization tools - most of the other packages have some visualization tools packaged in them, but vtk and opendx both offer quite a bit more power.
Now the incredibly non specific recommendation
My suggestion is to pick one of each of these and learn it - do enough in it so you know the language/system well. Otherwise you'll be struggling with the language as well as with the problem - and finding bugs will be close to impossible.
If I put on my "computer science professor" hat (probably a wise thing if I'm to keep the top of my head from turning bright red with sunburn), I usually try to recommend that all CS students learn a smattering of these things as well. When you need one of these tools, knowing its there and how to use it can save large and wonderful quantities of time.
And now some more specific comments
On the whole my choices would be as follows - note the caveats - some of them are pretty cave-rnous (sic). I don't have piles of money to spend, so tend to prefer the open source programs just on that basis.
For array/matrix manipulation I much prefer APL or one of its derivatives (check out aplus on sourceforge). Languages in the APL family are also fun to program once you learn how. However the terseness of the syntax (and with APL itself the odd character set) tends to make these a bit forbidding, so a more popular choice would be octave (open source) or matlab. I've had good luck with octave - it seems to handle most matlab programs well enough. If you've got piles of money, go for matlab.
For symbolic math, maxima (sourceforge) is good. Its commercial cousin Macsyma has usually ranked as about the best symbolic math packages for accuracy and power and seems less expensive than the others. Actually writing programs in either of these requires learning quite a bit about the innards of the system though. My second choice for symbolic math would be Mathematica - its programming language is well integrated with the system as a whole and and for general goodness and niceness of the interface it can't be beat. (The other commercial products are building on the best parts of the Mathematica interface - I've not checked recently, but they're getting much better fast.) The visualization capabilities of Mathematica are also very good. Maple is probably the most popular, so using it will probably make it easier to find someone to help you, but on the whole I've just never found Maple as easy to program as Mathematica and I tend to want to program almost everything.
For visualization both vtk and opendx are very nice systems. vtk is more aimed at a programming interface, opendx has a labviewish kind of programming environment. I like both and have both at hand. Both these systems are big enough that you'll want to make sure you understand them before you tackle a project with them.
They don't scale well, but spreadsheets can be very convenient for small models. Careful though, its easy to have errors even in middlin sized models that can be very hard to find.
Odd Zen Endz
As has been noted there are other systems, some smaller, some more specifically focussed on a single domain. Those tend to be harder to match to a problem - unless the problem is right in the center of the domain in question.
There used to be a program AXIOM which had a lot of nice features, but it seems to have gone to that Big Bit Bucket in the sky - but its base language "Aldor" is now available at aldor.org. I have a copy, but haven't looked deeply at it.
Sourceforge is also hosting a new project "lush" - which is a lisp system that has some integration of some of these features. To the extent that I've used it I'm impressed and will probably spend some time working deeper with it in the hopes that it will prove another valuable tool.
Sigh. Probably true. But give a spammer or telemarketer or other sleazeball a tiny crack and they'll stretch it to allow everything.
For instance, the "Do Not Call" list, according to this would have exemptions for a number of groups. And there seems to be a blanket exemption for charities. Just this hole raises lots of potential - the telemarketers will pay the charity some amount per call to call on their behalf -- and then toss in their sales pitch.
Just Say EGBG!
Now "googol" as a noun and "google" as either a noun or a verb are pronounced (as far as I can tell) essentially identically. So the "Google" folks want to protect the spelling, not the word. Is this valid trademark law? That is, can you trademark a spelling variant of a single word? What then happens if people happen to pronounce it the same as the generic term?
On the other hand, maybe the solution is for people to now spell the "search the web" term as googol - or can "googol" as a verb be trademarked despite its common (?) use previously as a noun?
Why not? Its the users computer, the users desktop.
Why should I believe that the UI designer knows whats best for me? Usually they do not.
The way this thread is going makes me think that everyone is quite content to let some idiot make these decisions as long as they call themselves a UI designer and treat the users with sufficient contempt.
I have it set up so a root shell in X for me comes up (usually) in a terminal window with a bright orange background, purple foreground, a big font and a prompt "You Are ROOT ! ". (If you don't know why, perhaps someone should be making decisions for you.) I"m waiting for someone to decide that this is ugly and should not be allowed . (Don't laugh - think of the good ole DOS prompt .)
I wish I had that kind of arrogance. (I have, I'll admit, other kinds of arrogance).
I always want to take these guys who seem to have decided that they know more than I do what is appropriate for my desktop (or editor, or shell or whatever) and chain them to desks with 7 point fonts in dark gray displayed on a black background and 20 by 20 character windows. Then make them do something complex. And respond to every complaint with "Nyah, Nyah - I know better than you do..."
So when someone sez "no will or motive of its own" I always have to ask the important question here - "How would we know?" Since there's no reason for us to suppose that intelligence/sentience/... would look very much like human intelligence, its possible that the net/web has already made this transition.
Of course, there's the converse question too - would an intelligent net recognize us as intelligent/sentient/... ?
Web reviewers are one possibility, of course, but how many reviewers would it take to cover the web as it now sits - google just told me it is "searching 3,083,324,652 web pages".
Blogging and its relatives are probably far more powerful when allied with automatic page classification and ranking.
Suppose Google builds an extended blog format - perhaps with XML tags - and a tool to make entries using that format. This already gives them some more meta information that could be useful in building better searches.
And, as has been said, the ability to track the activity in a blog on a (sort of) real time basis gives them the capability to track news as it happens.
But there are more possibilities yet - just knowing the times entries are made gives you some information. If you have a blog coming from a specific user (track by cookies or even IP) you can correlate blog entries with google searches and with the user looking at other blogs. Sure, much of this will be uncorrelated, but add it all together and I suspect it will start to show interesting patterns. And much of this kind of information will only be available to an organization hosting the blogs.
I think there are other ways to extract more information from a blogger as well.
This could pay off big for Google as a search engine and augmented information indexer - most especially if they can get the human factors right and tempt a few more people into blogging.
(There's more - and in some rather more specific domains and contexts - but google seems uninterested in hiring me, so I don't see any good reason in giving them my ideas.)
All of this and not a single mention of this site which once almost caused me to spray my computer with half swallowed fluids.
Along the same lines, we can easily infer that if the US government were to propose actually dropping the personal income tax, that it would be opposed (and I guarantee you it would) by the same people on the grounds that it would cause so many people to lose their jobs.
Similarly we can expect the "War on Drugs" to continue forever not because there is a "Serious Drug Problem" but because it would cause all those prison guards and cops and lawyers and so on to lose their jobs.
"Hopefully a more compact form."
And here, all this time I thought bigger was better.
In any case, this point always comes up. "XML is too verbose." But a certain amount of verbosity in programming is good (vis Python vs APL) though too much is bad (Cobol vs Java).
So is XML too verbose?
Given the right tools we could easily transform "<quote><text><sentence type="question" language="english">" reversably (thats important) to "<q><t><s t="q" l="e">" which certainly is less verbose. I'd be willing to bet that most XML DTDs/Schema would allow for most tags to be reduced to one or two alphabetic characters (that would be 700+ different elements). If thats too much you could build a simple tool defaulting the attributes, eliding the close "</...>" bits quoting unquoted attributes and so on. Which could give us "<q><t><s t=q>". Too verbose still? I could easily go a few steps further but won't.
In any case, the challenge for those who find XML verbose is to find an isomorphic representation. That is a representation R and transformations XR taking XML to the other representation and RX going the other way so that XR(RX(text)) = text that is less verbose. Lots of people will thank you I expect.
I think a better thing might be a whole website. Include on it the whitepaper and the book - prominantly (front page). But it also would allow the creation of other kinds of information for people interested in the topic: forums (like slashdot) for discussing current issues in the area, announcements (like freshmeat) for software of interest, mailing lists and so on. The site would need to be carefully moderated and edited or it could get out of control quickly with trolls and flamewars. This also allows for people to post articles saying open source does not work - this provides a good balance for the advocates. Such criticism and counter-opinions are important to hear (see the whole thread on Java at Sun).
On a related note though, there could be a fun chance for open source. The state of Oregon recently voted to not raise taxes - thus putting the government in a serious budget crunch. They're already laying off state police and there are threats/promises of more to come.
But if Oregon moved most of its office desktops to open source alternatives the savings could be pretty high. I don't know how many computers the state buys each year for office use, but the software costs - OS + Office + other software - probably adds up pretty quickly. That doesn't count upgrades which will add up to a bit more. I know that as part of the university system we only got a discount (hardware or software) if we bought through the right sources - and most machines came with Windows and Office pre-installed so the discounts didn't always apply on first purchase.
Dish TV however takes their customer interaction guidelines primarily from Ernestine the Telephone Operator ("Cackle, we don't have to care!").
Hence their answer has been uniform. They don't bother to answer.
So I've been using XMLTV to download the listings, and a homegrown XSL transformation to change the listings to a nice grid for viewing in a browser. Works just fine, but I'm sure that the people running the sites with the listings are getting cranky at people doing this or similar things with XMLTV.
Worse yet, I believe that if they provided the listings in a slightly different format and compressed, the downloads would be much less onerous.
I suspect they're trying to figure out how to make downloadable listings available and then charge heavily for them - the paper version is now a couple bucks a month ($3.95?) so they're probably counting on being able to charge at least $30/month for the electronic version.
And they'll undoubtedly justify those high costs by pointing to the load XMLTV places on their systems.
And when they do, they'll stop anyone from using XMLTV or the like. I suspect that EuroTV is just doing the same thing.