Iterators as described are still a bit on the feeble side for my taste.
Sather iterators had it right - incredibly powerful and able to leap tall buildings in a single bounds-check.
I'll bet that use of Sather iterators reduced my code size by half.
Someday someone will reinvent them, graft them poorly on to some other language and people will find out what they've been missing. Sigh.
But then Sather also had a great program-by-contract feature, very very nice support for generics and FABU!(tm) support for operator overloading in a way that I could understand.
For the most part I tend to like shortcuts in code - it reduces code size and complexity and usually increases readability.
But it is true that its possible to build syntactic shortcuts that do unexpected things. I think that operator overloading has the potential to do this in C++ - not so much because of the kind of example given as because of some of C++'s added, um, features.
In particular reference parameters tend to give me problems (but I should say up front that I'm nowhere near smart enough to use C++). The fact that "x=y+z" might do odd conversions (such as given in the parent article) is annoying enough, but the fact that because of operator overloading and reference parameters all of x, y, z might get changed and in odd ways, just makes me cringe.
Of course, there are good reasons why someone might want to do that - or at least there is a someone out there who will think that the reasons are good. But its all too much for me.
I haven't looked carefully into the boxing/unboxing mechanisms described so I don't know if they might be abused in similar ways. (Crossing fingers for luck.)
I prefer to refer to myself as a computerologist rather than a computer scientist, computer engineer or whatever. Sadly most organizations (companies, universities...) don't like the word at all and refuse to let me put it on my business cards or anything.
It feels like the right word to me, but the reactions of others are interesting. Often it takes a bit of explanation (which is ok). But a few times (maybe three over the years I've used the term) I've had people respond with serious anger. I have no idea (despite explanations of a sort) why.
Computer Evolution
on
Digital Darwin
·
· Score: 2, Insightful
I've worked with various kinds of things related to genetic algorithms and its a wonderful field and very interesting to work in.
Its wonderful how these things can find odd and interesting solutions to problems in some cases and completely miss them in others.
One of the things that anyone learns who has tried this kind of method is that you can't hurry things to a result - that you often need to actively intervene to slow the evolutionary march, or even back it up (as in the article) or the system can easily get stuck exploring an area with a local optimimum extensively and miss a better one thats just a ways away.
Wonderfully fun stuff though and well worth investigating.
I have learned a few tricks - which follow. Even so, nobody (least of all myself) will claim that most of my web pages are pretty - I will claim that the information in them is easy to find and accessible.
The first is to find a simple style that you like, encode it in a style sheet and just use it consistently. Simple is best. You can usually find a reasonable style somewhere in some web page.
Secondly - find someone who does have a sense of style and get them to help with the style, maybe using some website builder.
Thirdly, critique websites. Spend some time just visiting random websites and saying what is good or bad about them. I'd suggest making a kind of web notebook and rate pages on usability, style, and so on - you can use a web page with forms to enter this information as well as the page url so you can revisit things.
Finally, experiment. Try building all kinds of pages with all sorts of different styles. Get someone else to look at them and tell you how they look. The more you do the better, so just slap them together.
I tend to be very much in favor of hiring a college kid to do a web site - trading off pay for the opportunity to put it in their online portfolio as said.
However in many colleges the people learning about web sites do not learn about building decent web sites, do not learn about accessibility, do not learn about usability, do not learn about maintaining the site, do not learn about reading logs to see if the site is used.
They do learn how to make huge and pointless flash animations, how to make IE only sites, how to make sites that show off fancy (and usually unnecessary) features, how to add in every feature they've heard of.
Too often they're like the webmaster I talked to once who (several years back when bandwidth was not easily accessible to most people) repeatedly said that streaming audio and video were to be an important part of his site. When I said that this would be a problem for much of his audience on slow lines, he told me "Then they don't deserve to see my site."
And for far too many, HTML is still one of those opaque programming language things for geeks. And often enough the web site designer types are told that such things are only for geeks and that learning any of those icky details is beneath them.
I'd still recommend the college kid - but ideally with sensible supervision.
It seems to me that this kind of journalistic sell-out is the norm these days rather than the exception. In the US there are only a few news organizations that seem to aspire to some sort of independence.
Television news doesn't even seem to try any more, and worse yet, they dont even seem to want to be seen as trying.
Independence is even more rare, to the point of virtual non-existence, in areas that might not be called "news" such as arts, business, technology... In these areas it is tough to find articles that are not just puff pieces of one sort or another.
So is it any wonder that a Seattle newspaper runs what amounts to a free ad for Microsoft?
I've used this now a number of times. There's something just so much fun about keeping them talking and then finishing with "OK, thanks, been good talking to you..." and
hanging up before they have the chance to launch into their spiel.
A couple times I've heard the person on the other end make comments to someone else that it sounds like I'm using a script like he/she has.
I've also experimented with moving off this script and trying to get personal information about the person at the other end (name, home address....). They get seriously disturbed for some odd reason.
The law is only a set of governmentally supported rules about power.
At its best the law is intended to grant power to those who would otherwise lack it. For example, it may be used to help protect the individual against murder, theft, rape and so on. (Note "is intended to"!)
But the law is also used to deny power. Think of Auschwitz.
In this slashdot comment someone says that one problem bureaucrats have with open source is that there's nobody to sue.
So, here's a solution - buy Open Office (er, "Luxurious Office") from this (unprintable description removed) and then sue him every time it doesn't work.
Or the Gimp (sorry, "Luxuriousity Photo")(for 25 bucks).
I can't look much further, the sleazoid-site is (grin) slashdotted.
They've invented new file formats - almost on the order of one every year for every major product.
They've invented a way to be a monopoly (not just my opinion - the courts agreed) and to use monopolistic tactics to crush their competitors and still be considered to be heroic in doing so.
They've invented methods that enable them to require people to pay for software they don't use.
They've invented licenses that deprive their customers of their rights.
They are getting very good at spinning FUD. Sure they didn't invent it but they've certainly gone a long way toward perfecting it (I suspect Mr. Goebbels would be proud of how far they've managed to push it and how well they use it especially since he also enjoyed calling his enemies "communists".)
They've invented.NET (whatever that is) and invented a wonderful new, tremendously innovative programming language called C# that is clearly The Most Important Advance In Programming Languages Since Java.
The've invented all sorts of new and fun ways to use email to spread information around the network. That their critics often call this "worms" or "viruses" clearly indicates just how hard up the critics are.
Microsoft Bob. Are any comments even needed on that?
There are countless other minor innovations as well, of course. They invented the web browser As We Now Know It. The spreadsheet As We Now Know It. The What You See Is A Pain to Build But Its What You Get word processor As We Now Know it. A whole new set of standards for the Web As We Now Know It. Kerberos (As We Will Know It). Networked file systems As We Now Know Them. And the list goes on and on...
And, finally, they've invented Slashdot - oh, I don't mean they actually wrote the code (though give them a few years and they can fight Al Gore over who gets the credit), but without MS where would Slashdot be?
Many have stated here (in response to articles on the proposed Oregon law that would require consideration of Open Source) that such laws are not needed - that Open Source Software would be considered by any competent bureaucrat. This is a cogent argument that any such claim is nonsense.
(I'll further advance the argument that "competent bureaucrat" is something that occurs with vanishingly small probability and that this story illustrates that as well.)
How about OSS licensing (GPL and its cousins and its aunts) is an attempt to protect the rights of the people who develop the software and the people who use the software against those who would restrict those rights or impose fees on usage of the software (without necessarily having actually contributed anything of value to it).
EULA's (and their cousins and uncles) are an attempt to restrict the rights of the people who use the software in order to protect the ability of those who own it (not necessarily the developers) to further restrict its use and to charge arbitrary fees for such use and to protect the owners from liability or other responsibility.
Or: the Open Source licences try to maintain rights for as many of the people involved as possible and EULA's try to remove rights from as many people involved as possible.
If nothing else, this will have served well by reminding us of Gil Scott-Heron whose voice and words have haunted me since I first heard him many years ago. If you don't know his work, give it a listen. "The Revolution Will Not Be Televised" is likely to be the easiest to find - but there's more than that worth listening to.
I'm increasingly using xml to save information for a specific run of the program. Usually this is ad-hoc and the markup tends to be simple enough so that the program itself, or the driver will handle building it.
Then I use xslt (again, ad hoc) to digest this and produce output (often in html these days) that I can look at.
I could do it all in other ways - the advantage of xml is that I can describe the markup somewhere so later on I'll not forget what the data actually was, and that I can use XSLT with some extra stuff to build html pretty directly.
So the answer is, no tools in particular. The ideas are only those of trying to keep my poor befuddled brain from being overwhelmed by the output from this stuff.
Given that the powers-what-am seem to be determined to sell themselves (and by extension all the rest of us) out, what options might there be?
One possibility might be to get as many people as possible to vote absentee - thus returning the voting process to paper form. Perhaps overwhelming the election workers as well. Not, of course, that that would ever be part of anyone's motivation.
If you go in to the election location and refuse to vote on a machine, do the election types have to provide alternatives? (Such as they might for someone who is visually impared, for instance.) If you get hauled off to court, could the potential for election fraud be used in your defense?
Perhaps volunteering to be an election observer/counter could work - including a demand to audit the software before certifying the ballots. It would probably be best to get people from both/all parties involved in this though. Or might they just toss out the votes from that precinct?
Probably though, the authorities would just find a way to toss you in jail for trying this, refuse to consider the problem and continue to sell out what vestiges of democracy remain to us.
I do the same kind of thing with computational experiments and
I'd like to agree with those who've suggested using a variety of tools.
Its not strange, for example, for me to use python to generate the actual program runs, the shell to actually manage the run and move the input/output data files, then any of several graphics programs to handle the output (and often output graphs are done automatically as the programs run).
This gives me a pile of flexibility which is often useful. For instance, when doing stuff that might run for a while, I'll often sample things at widely spaced data points, then fill in the gaps. For things that are less long running, I'll just chomp through them all in order.
It also allows me to rename input/output data files as things work, compress them when needed and so on.
Its also nice sometimes to be able to set things up to recompile the source with different numbers for efficiency instead of feeding the numbers to the executable on the command line or on stdin.
XML and XSLT are also becoming increasingly useful in describing input data, recording results and keeping track of things done.
Remember the make-up of the current supreme court. And remember that Justics Scalia seems to believe that the American people currently have "too many rights". Look at the current administration and their notion of good laws (Patriot and Patriot II).
Then be an optimist.
But do remember that there seems to be an evolutionary/genetic predisposition to optimism.
Clearly things like food, water, medical support, electricity need to be the top priority.
But I'd say that access to information and freedom of speech/press are also essential parts of a healthy democratic society - and I'd even suggest that the lack of such is usually a major factor in the survival of totalitarian regimes. It is not coincidence that early symptoms of a government in the process of becoming fascist include restrictions on what people can say and to whom, the construction of an information monitoring infrastructure to spy on what people are thinking, and increasing numbers of things (rules, groups and the like) which are maintained as secrets.
Selling ".iq" domain names though is just a transparent way for some company with no other products worth selling to make a quick buck or three.
Somehow though, seeing things like the Patriot Act and Patriot II, I doubt that the current administration has any more interest in supporting free speech in Iraq than they do in the US.
<personal-odd-note> I suggested rather a while back that it might be an interesting alternative to war to find an effective way to increase free speech in Iraq (and Afghanistan) by building and distributing simple/cheap internet access devices along with a robust network and sufficient encryption to foil attempts by the totalitarian governments to block/intercept communications. Undoubtedly a completely crazy notion. But I look at what must be done to produce and maintain a stable democratic government and believe that education and freedom of speech are surely essentials. So I wonder if its probably not more effective to try to make a totalitarian regime difficult to maintain (or to build) than to need to destroy it afterwards. (Isn't it generally cheaper to provide vaccinations than to have to cure a disease?) </personal-odd-note>
When I was in fifth grade (at a time lost in the mists of prehistory) I had a science teacher who insisted that all the students take down what she wrote on the board verbatim in notebooks, then every week we were supposed to take it home to our parents and get drilled on it for a weekly quiz.
My parents loved the idea and supported it with serious enthusiasm.
I'm seriously incapable of memorizing things so
I came close to just flunking the course until I stopped taking notes, stopped taking the notebook home and cut my parents out.
After that I got straight A's in the class. I managed to stop hating the teacher (well, maybe I just didn't hate the teacher quite so much) and seriously resenting my parents.
Notifying parents and getting them involved is not always a good thing for the kids. (And yes, not everyone learns in the same way so this is quite unlikely to apply to all kids.)
I agree - businesses that want to remain hidden in this or other ways make me very, very suspicious.
A year or so back I got swamped with email bounces when someone sent out a pile of spam with my email as the "Reply-to: " address. I counted over 60,000 messages - so I have very, very little sympathy for claims that the poor spammers are being horribly ill used.
After a couple of days of work, I discovered that the things seemed to trace back to the "Be a Detective" software package you've probably all seen and to a couple of distributors for it. These distributors all used "clickbank" as their payment mechanism. So, I called clickbank to ask for information on the vendors I'd identified as being possibly associated with the spammers - I wasn't accusing them - I just wanted to talk to them and find out. They refused to give me any such information. They did take a complaint from me and said that they'd pass on my problems to those responsible - and that they would not let me know how it turned out. I should trust them. This is their policy and they will take complaints from a customer - but they see no need to give a customer any other information. Since clickbank is located in Idaho, I suspect that a customer seeking legal action might find that getting lawyers to across state lines could be interestingly expensive.
The Idaho Better Business Bureau agreed with clickbank. Evidently customers have no right to privacy, but vendors do - to the point where filing a complaint has been made almost impossible.
Since then I've made a point of noting who clickbank does business with. For the most part the products look like scams, seem seriously overpriced, or have in my experience been associated with spammers. I won't say not to do business with clickbank or their conveniently anonymous customers. Investigate them for yourselves - it is certainly possible that they changed their policies and their customer base. Me, I think they're scum.
I think that mozilla had become a monster - a friendly one, perhaps (just look at the endearing pointy toothed grin on that red monster), but a monster all the same. And that kind of "lets pile everything together into a heap" integration is a pain for users who want to be able to pick and choose. There are lots of examples - both in the windows world and in the unix/linux... worlds.
In the windows world this is to be expected - one company wants to build one product - make you buy a new one every time any of the components changes. Given that most windows users are going to put about as much thought into selecting the products they buy/use as they do when they drive to macdonalds and have to choose between a "large" and "super size" fries, thats not unreasonable. (I'm not saying they're stupid - just that they're not putting any intellectual effort into their computing systems.)
But in the unix world, this grates on me
Both KDE and Gnome seem to want to build bigger and burlier integrated thing-a-ma-bobs.
Consider, for example, the rise of the desktop managers vs window managers. Or evolution - quite a nice mail client, an address book, a calendar and who knows what else - and I always managed to click on the wrong button and lose things. Or open office - nice spreadsheet - absolutely crappy word processor - but they come as a unit.
I would like to see XUL continued, and the roadmap looked like it was not being dropped - I think it offers lots of potential.
I'd also like to say in response to the person who asked "why chatzilla" that chatzilla might not be a requirement for most users - but it was probably a very good thing for mozilla - as chat has different requirements (in user interaction, display and in performance) than a browser does. As such, it has probably helped to shape the way mozilla has developed. Then too, I'm kind of tired of everyone saying that MIRC is IRC as though the only things allowed to exist on the network are windows applications.
I'm seeing more and more flash and hearing more and more webmonsters, er, webmasters say that flash is their preferred platform.
There seem to be a number of reasons for this - one is that flash is pretty standard - most versions of flash work alike - much more than can be said for html on internet exploder, netscape, opera, mozilla, phoenix and so on - all of which exist in various versions with various oddnesses.
Another is that web developers put time into learning flash and thus have an intellectual investment in continuing to use it (and I'll refrain from commenting on how much of their intellectual capital they've used up in the process - for some people learning new technology seems to open new ways to think, for too many it seems to close them off).
There's the notion that flash provides a spiffy keen looking interface full of motion, color and all kinds of "cleverness" That these are usually ugly does not seem to matter much. That the clever interactions are usually almost completely unfathomable by the users matters less. That the files can take forever to download and use up lots of processor is the users fault - not the developers. My favorite quote from a web developer came in response to a comment on my part about the download time needed for his idea website. He said "Well, if they can't download it or watch it, they don't deserve to see my website."
Finally there is the notion that a web developer can determine more exactly what flash provides the user - things like eliminating the ability to save images, presenting exactly what the developer/marketroid wants the user to see in the order they choose. Don't want those users to mess all that up.
For all these reasons, I suspect that we'll be seeing more and more flash and similar products.
Indeed, I'm seeing many web sites that are flash only. And I'm wondering if the time that this could be effectively countered has already passed
(but then I'm a cynical old fart - all grown up from the cynical young fart I used to be).
Sather iterators had it right - incredibly powerful and able to leap tall buildings in a single bounds-check.
I'll bet that use of Sather iterators reduced my code size by half.
Someday someone will reinvent them, graft them poorly on to some other language and people will find out what they've been missing. Sigh.
But then Sather also had a great program-by-contract feature, very very nice support for generics and FABU!(tm) support for operator overloading in a way that I could understand.
But it is true that its possible to build syntactic shortcuts that do unexpected things. I think that operator overloading has the potential to do this in C++ - not so much because of the kind of example given as because of some of C++'s added, um, features.
In particular reference parameters tend to give me problems (but I should say up front that I'm nowhere near smart enough to use C++). The fact that "x=y+z" might do odd conversions (such as given in the parent article) is annoying enough, but the fact that because of operator overloading and reference parameters all of x, y, z might get changed and in odd ways, just makes me cringe.
Of course, there are good reasons why someone might want to do that - or at least there is a someone out there who will think that the reasons are good. But its all too much for me.
I haven't looked carefully into the boxing/unboxing mechanisms described so I don't know if they might be abused in similar ways. (Crossing fingers for luck.)
It feels like the right word to me, but the reactions of others are interesting. Often it takes a bit of explanation (which is ok). But a few times (maybe three over the years I've used the term) I've had people respond with serious anger. I have no idea (despite explanations of a sort) why.
Its wonderful how these things can find odd and interesting solutions to problems in some cases and completely miss them in others.
One of the things that anyone learns who has tried this kind of method is that you can't hurry things to a result - that you often need to actively intervene to slow the evolutionary march, or even back it up (as in the article) or the system can easily get stuck exploring an area with a local optimimum extensively and miss a better one thats just a ways away.
Wonderfully fun stuff though and well worth investigating.
I have learned a few tricks - which follow. Even so, nobody (least of all myself) will claim that most of my web pages are pretty - I will claim that the information in them is easy to find and accessible.
The first is to find a simple style that you like, encode it in a style sheet and just use it consistently. Simple is best. You can usually find a reasonable style somewhere in some web page.
Secondly - find someone who does have a sense of style and get them to help with the style, maybe using some website builder.
Thirdly, critique websites. Spend some time just visiting random websites and saying what is good or bad about them. I'd suggest making a kind of web notebook and rate pages on usability, style, and so on - you can use a web page with forms to enter this information as well as the page url so you can revisit things.
Finally, experiment. Try building all kinds of pages with all sorts of different styles. Get someone else to look at them and tell you how they look. The more you do the better, so just slap them together.
However in many colleges the people learning about web sites do not learn about building decent web sites, do not learn about accessibility, do not learn about usability, do not learn about maintaining the site, do not learn about reading logs to see if the site is used.
They do learn how to make huge and pointless flash animations, how to make IE only sites, how to make sites that show off fancy (and usually unnecessary) features, how to add in every feature they've heard of.
Too often they're like the webmaster I talked to once who (several years back when bandwidth was not easily accessible to most people) repeatedly said that streaming audio and video were to be an important part of his site. When I said that this would be a problem for much of his audience on slow lines, he told me "Then they don't deserve to see my site."
And for far too many, HTML is still one of those opaque programming language things for geeks. And often enough the web site designer types are told that such things are only for geeks and that learning any of those icky details is beneath them.
I'd still recommend the college kid - but ideally with sensible supervision.
Television news doesn't even seem to try any more, and worse yet, they dont even seem to want to be seen as trying.
Independence is even more rare, to the point of virtual non-existence, in areas that might not be called "news" such as arts, business, technology... In these areas it is tough to find articles that are not just puff pieces of one sort or another.
So is it any wonder that a Seattle newspaper runs what amounts to a free ad for Microsoft?
Just business as usual.
A couple times I've heard the person on the other end make comments to someone else that it sounds like I'm using a script like he/she has.
I've also experimented with moving off this script and trying to get personal information about the person at the other end (name, home address....). They get seriously disturbed for some odd reason.
The law is only a set of governmentally supported rules about power.
At its best the law is intended to grant power to those who would otherwise lack it. For example, it may be used to help protect the individual against murder, theft, rape and so on. (Note "is intended to"!)
But the law is also used to deny power. Think of Auschwitz.
Justice has little or nothing to do with it.
So, here's a solution - buy Open Office (er, "Luxurious Office") from this (unprintable description removed) and then sue him every time it doesn't work.
Or the Gimp (sorry, "Luxuriousity Photo")(for 25 bucks).
I can't look much further, the sleazoid-site is (grin) slashdotted.
They've invented new file formats - almost on the order of one every year for every major product.
They've invented a way to be a monopoly (not just my opinion - the courts agreed) and to use monopolistic tactics to crush their competitors and still be considered to be heroic in doing so.
They've invented methods that enable them to require people to pay for software they don't use.
They've invented licenses that deprive their customers of their rights.
They are getting very good at spinning FUD. Sure they didn't invent it but they've certainly gone a long way toward perfecting it (I suspect Mr. Goebbels would be proud of how far they've managed to push it and how well they use it especially since he also enjoyed calling his enemies "communists".)
They've invented .NET (whatever that is) and invented a wonderful new, tremendously innovative programming language called C# that is clearly The Most Important Advance In Programming Languages Since Java.
The've invented all sorts of new and fun ways to use email to spread information around the network. That their critics often call this "worms" or "viruses" clearly indicates just how hard up the critics are.
Microsoft Bob. Are any comments even needed on that?
There are countless other minor innovations as well, of course. They invented the web browser As We Now Know It. The spreadsheet As We Now Know It. The What You See Is A Pain to Build But Its What You Get word processor As We Now Know it. A whole new set of standards for the Web As We Now Know It. Kerberos (As We Will Know It). Networked file systems As We Now Know Them. And the list goes on and on...
And, finally, they've invented Slashdot - oh, I don't mean they actually wrote the code (though give them a few years and they can fight Al Gore over who gets the credit), but without MS where would Slashdot be?
Now how can anyone deny such innovation?
Many have stated here (in response to articles on the proposed Oregon law that would require consideration of Open Source) that such laws are not needed - that Open Source Software would be considered by any competent bureaucrat. This is a cogent argument that any such claim is nonsense. (I'll further advance the argument that "competent bureaucrat" is something that occurs with vanishingly small probability and that this story illustrates that as well.)
EULA's (and their cousins and uncles) are an attempt to restrict the rights of the people who use the software in order to protect the ability of those who own it (not necessarily the developers) to further restrict its use and to charge arbitrary fees for such use and to protect the owners from liability or other responsibility.
Or: the Open Source licences try to maintain rights for as many of the people involved as possible and EULA's try to remove rights from as many people involved as possible.
If nothing else, this will have served well by reminding us of Gil Scott-Heron whose voice and words have haunted me since I first heard him many years ago. If you don't know his work, give it a listen. "The Revolution Will Not Be Televised" is likely to be the easiest to find - but there's more than that worth listening to.
I can see it now - Microsoft brings you "Bob++"
And the cutesy dog could be the voice of DRM and growl/bark at you when you do something he doesn't like. Cool! This has real potential!
Then I use xslt (again, ad hoc) to digest this and produce output (often in html these days) that I can look at.
I could do it all in other ways - the advantage of xml is that I can describe the markup somewhere so later on I'll not forget what the data actually was, and that I can use XSLT with some extra stuff to build html pretty directly.
So the answer is, no tools in particular. The ideas are only those of trying to keep my poor befuddled brain from being overwhelmed by the output from this stuff.
"It's not the programmer that programs the machine."
One possibility might be to get as many people as possible to vote absentee - thus returning the voting process to paper form. Perhaps overwhelming the election workers as well. Not, of course, that that would ever be part of anyone's motivation.
If you go in to the election location and refuse to vote on a machine, do the election types have to provide alternatives? (Such as they might for someone who is visually impared, for instance.) If you get hauled off to court, could the potential for election fraud be used in your defense?
Perhaps volunteering to be an election observer/counter could work - including a demand to audit the software before certifying the ballots. It would probably be best to get people from both/all parties involved in this though. Or might they just toss out the votes from that precinct?
Probably though, the authorities would just find a way to toss you in jail for trying this, refuse to consider the problem and continue to sell out what vestiges of democracy remain to us.
Its not strange, for example, for me to use python to generate the actual program runs, the shell to actually manage the run and move the input/output data files, then any of several graphics programs to handle the output (and often output graphs are done automatically as the programs run).
This gives me a pile of flexibility which is often useful. For instance, when doing stuff that might run for a while, I'll often sample things at widely spaced data points, then fill in the gaps. For things that are less long running, I'll just chomp through them all in order. It also allows me to rename input/output data files as things work, compress them when needed and so on.
Its also nice sometimes to be able to set things up to recompile the source with different numbers for efficiency instead of feeding the numbers to the executable on the command line or on stdin.
XML and XSLT are also becoming increasingly useful in describing input data, recording results and keeping track of things done.
Then be an optimist.
But do remember that there seems to be an evolutionary/genetic predisposition to optimism.
But I'd say that access to information and freedom of speech/press are also essential parts of a healthy democratic society - and I'd even suggest that the lack of such is usually a major factor in the survival of totalitarian regimes. It is not coincidence that early symptoms of a government in the process of becoming fascist include restrictions on what people can say and to whom, the construction of an information monitoring infrastructure to spy on what people are thinking, and increasing numbers of things (rules, groups and the like) which are maintained as secrets.
Selling ".iq" domain names though is just a transparent way for some company with no other products worth selling to make a quick buck or three.
Somehow though, seeing things like the Patriot Act and Patriot II, I doubt that the current administration has any more interest in supporting free speech in Iraq than they do in the US.
<personal-odd-note>
I suggested rather a while back that it might be an interesting alternative to war to find an effective way to increase free speech in Iraq (and Afghanistan) by building and distributing simple/cheap internet access devices along with a robust network and sufficient encryption to foil attempts by the totalitarian governments to block/intercept communications. Undoubtedly a completely crazy notion. But I look at what must be done to produce and maintain a stable democratic government and believe that education and freedom of speech are surely essentials. So I wonder if its probably not more effective to try to make a totalitarian regime difficult to maintain (or to build) than to need to destroy it afterwards. (Isn't it generally cheaper to provide vaccinations than to have to cure a disease?)
</personal-odd-note>
My parents loved the idea and supported it with serious enthusiasm.
I'm seriously incapable of memorizing things so I came close to just flunking the course until I stopped taking notes, stopped taking the notebook home and cut my parents out.
After that I got straight A's in the class. I managed to stop hating the teacher (well, maybe I just didn't hate the teacher quite so much) and seriously resenting my parents.
Notifying parents and getting them involved is not always a good thing for the kids. (And yes, not everyone learns in the same way so this is quite unlikely to apply to all kids.)
I agree - businesses that want to remain hidden in this or other ways make me very, very suspicious.
A year or so back I got swamped with email bounces when someone sent out a pile of spam with my email as the "Reply-to: " address. I counted over 60,000 messages - so I have very, very little sympathy for claims that the poor spammers are being horribly ill used.
After a couple of days of work, I discovered that the things seemed to trace back to the "Be a Detective" software package you've probably all seen and to a couple of distributors for it. These distributors all used "clickbank" as their payment mechanism. So, I called clickbank to ask for information on the vendors I'd identified as being possibly associated with the spammers - I wasn't accusing them - I just wanted to talk to them and find out. They refused to give me any such information. They did take a complaint from me and said that they'd pass on my problems to those responsible - and that they would not let me know how it turned out. I should trust them. This is their policy and they will take complaints from a customer - but they see no need to give a customer any other information. Since clickbank is located in Idaho, I suspect that a customer seeking legal action might find that getting lawyers to across state lines could be interestingly expensive.
The Idaho Better Business Bureau agreed with clickbank. Evidently customers have no right to privacy, but vendors do - to the point where filing a complaint has been made almost impossible.
Since then I've made a point of noting who clickbank does business with. For the most part the products look like scams, seem seriously overpriced, or have in my experience been associated with spammers. I won't say not to do business with clickbank or their conveniently anonymous customers. Investigate them for yourselves - it is certainly possible that they changed their policies and their customer base. Me, I think they're scum.
I think that mozilla had become a monster - a friendly one, perhaps (just look at the endearing pointy toothed grin on that red monster), but a monster all the same. And that kind of "lets pile everything together into a heap" integration is a pain for users who want to be able to pick and choose. There are lots of examples - both in the windows world and in the unix/linux... worlds.
In the windows world this is to be expected - one company wants to build one product - make you buy a new one every time any of the components changes. Given that most windows users are going to put about as much thought into selecting the products they buy/use as they do when they drive to macdonalds and have to choose between a "large" and "super size" fries, thats not unreasonable. (I'm not saying they're stupid - just that they're not putting any intellectual effort into their computing systems.)
But in the unix world, this grates on me Both KDE and Gnome seem to want to build bigger and burlier integrated thing-a-ma-bobs. Consider, for example, the rise of the desktop managers vs window managers. Or evolution - quite a nice mail client, an address book, a calendar and who knows what else - and I always managed to click on the wrong button and lose things. Or open office - nice spreadsheet - absolutely crappy word processor - but they come as a unit.
I would like to see XUL continued, and the roadmap looked like it was not being dropped - I think it offers lots of potential.
I'd also like to say in response to the person who asked "why chatzilla" that chatzilla might not be a requirement for most users - but it was probably a very good thing for mozilla - as chat has different requirements (in user interaction, display and in performance) than a browser does. As such, it has probably helped to shape the way mozilla has developed. Then too, I'm kind of tired of everyone saying that MIRC is IRC as though the only things allowed to exist on the network are windows applications.
There seem to be a number of reasons for this - one is that flash is pretty standard - most versions of flash work alike - much more than can be said for html on internet exploder, netscape, opera, mozilla, phoenix and so on - all of which exist in various versions with various oddnesses.
Another is that web developers put time into learning flash and thus have an intellectual investment in continuing to use it (and I'll refrain from commenting on how much of their intellectual capital they've used up in the process - for some people learning new technology seems to open new ways to think, for too many it seems to close them off).
There's the notion that flash provides a spiffy keen looking interface full of motion, color and all kinds of "cleverness" That these are usually ugly does not seem to matter much. That the clever interactions are usually almost completely unfathomable by the users matters less. That the files can take forever to download and use up lots of processor is the users fault - not the developers. My favorite quote from a web developer came in response to a comment on my part about the download time needed for his idea website. He said "Well, if they can't download it or watch it, they don't deserve to see my website."
Finally there is the notion that a web developer can determine more exactly what flash provides the user - things like eliminating the ability to save images, presenting exactly what the developer/marketroid wants the user to see in the order they choose. Don't want those users to mess all that up.
For all these reasons, I suspect that we'll be seeing more and more flash and similar products. Indeed, I'm seeing many web sites that are flash only. And I'm wondering if the time that this could be effectively countered has already passed (but then I'm a cynical old fart - all grown up from the cynical young fart I used to be).