Physics should be about particles, their properties and their
interactions, the only physical stuff there is. Everything else is either abstract or voodoo.
Damn right! I blame it all on those damn micro-scopes and instraments. Why, when I was young we used to do physics by using our God-given eyes, and consulting the Aristotle when we weren't sure.
Okay, more seriously, what the hell are you talking about? It's all abstract voodoo. Have you seen an electron? No, you can't. Electrons and all your beloved particles are invisible. You can see the effects of them, I suppose. But are you really sure it's not fairies doing the real work? Are you really sure it's not God, setting up little games for us to figure out? I mean, if He plants bones in the ground to test our faith, it doesn't seem far fetched that He'd come up with other little games. Or maybe it's multidimensional strings?
You've never seen an atom, not to mention an electron... and certainly not quarks. All that makes you think that they exist is some model, which apparently has been consistent in predicting a wide range of experiments. It's a nice enough model that you have been able to internalize its metaphors, even with only indirect evidence.
But it's just a model made up of a bunch of equations and notions and assumptions. It isn't magic. It isn't Truth. And that model is not somehow endowed with some status that makes it somehow more The True Model than any other mathematical model. Atom theory predicts things good. Newton's theories predict things good. Aristotle was a idiot, and he didn't predict crap, but that's an aside.
So far, no model has predicted and explained everything. Maybe no such model exists, or maybe it does. Maybe many such models exist. You want underlying causes, but you won't get them, ever (unless maybe God is proven to exist). You can only get models. One after another, which by some really long chain of deduction end up in something you can directly sense. Or, at least, you think you can sense, because this all might just be a dream in the mind of Shiva.
meanwhile other KDE developers worked on a free Qt version
Correct me if I'm wrong, but as I remember it the main KDE developers didn't help with the free Qt (Harmony), and even worse, they wouldn't commit to using it even when it was finished. If they had actually backed Harmony I don't think Gnome would have existed.
That was when I saw that the KDE people not only were willing to make serious compromises to expediate their goals, but weren't really committed to Free Software or doing the right thing.
And if it wasn't for Harmony and Gnome and Debian, Qt never would have had its foundation, the QPL, or eventually the GPL. Those things didn't happen because of pressure from KDE developers, they happened because of pressure from the (idealistic and uncompromising) Free Software community.
In all truthfullness, you shouldn't: Java is faster than Python, and servlets kick ass.
Java probably is faster than Python, but that should seldom make a difference. Add a few processors, whatever. The database is where you should be doing most of the heavy lifting anyway.
Webware gives you servlets in Python. I would recommend it -- Zope isn't by any means the only way to use Python on the web (thankfully).
I've never used Java servlets, but I've read a few bits of sample servlets. They seem to me to be painfully verbose. I'm all for long variable names and all that jazz, but Java just seems to make you jump through hoops for no good reason. It's not just that it isn't fun, or requires lots of typing, but verbosity makes for a bad language. You should be able to say things as you mean them, verbosity obscures that.
However, Java may not be so bad on a larger scale. Perhaps the example code doesn't want to build even a small library (since its just an example) and in a real project you'd do that and simplify things.
Another thing I like about Python is the extremely dynamic nature. You can have a dynamic inheritance tree, for instance -- consider an entire framework where you could subclass major components and those subclasses can easily insinuate themselves into the depths of the framework. This allows you to make radical changes to the framework without compromising the distinction between your local code and the upstream code. To do this requires that classes be first-class objects, so you just can't do it in Java.
I think it is mostly due to issues of deployment. Python's biggest gain has been that it is now pretty ubiquitous on modern Unix installations. It's also pretty easy to install on Windows. Most Unix web hosts have it installed. Etc.
This hasn't and isn't going to happen for Smalltalk. There's no clean, well-partitioned way to install a Smalltalk runtime. It's overintegrated and overly insular. So it can't come in slowly, with small programs and utilities being written in Smalltalk.
That's like a free brake inspection -- places that give those are usually dishonest, and the results of the inspection are always suspect. I'd assume the same with a computer consultant. And just like with cars, most of the people paying the money don't actually understand what they are really paying for. So it requires a lot of trust. Being sneaky isn't the way to get people to trust you.
There is no clear focus for any of it. Do you think the world would be better if those engineers worked on a farm to feed the poor, rather than on computers for the poor? Do you have the real solution that people should be working towards instead of this?
There is no shortage of food on Earth. Most starvation is accompanied by war -- famine alone seldom causes starvation. Malnutrition is widespread, but is not due to a lack of food in a larger sense -- it is due to social upheavals in rural areas, social injustice, global food markets, etc., etc., etc.
If the food that exists was given to everyone fairly, then people wouldn't be starving anywhere. This computer is as much a step towards that (far off) goal as anything else. Free communication and justice go hand in hand, and this computer is a step towards that communication.
Books about making bombs are illegal? Really? When did that happen?
It's been a while, but a couple decades ago the Progressive magazine printed instructions on how to make a nuclear bomb. I don't believe it was found to be at all illegal (there's some reference to the article here).
The Anarchist Cookbook still seems to be easily available -- though maybe that's just because it's a right-wing conspiracy to get dumb anarchists to blow themselves up:)
And, several years ago when I knew someone who was into that sort of thing, books on converting weapons seemed easily available.
To me it seems like DeCSS (and the DMCA) is a radical departure from normal law. (Though I wonder if similar censorship has occurred for manufacturing LSD, etc.?)
Smalltalk completely exposes as much of its implementation as you need to do all of this. It's not all built in, because that's not what Smalltalk is about -- it's philosophically more like a Scheme that actually does useful things. But that doesn't mean its less powerful -- as I said, I disagree that features is the best way to judge a language, and though Smalltalk has less features it has a more powerful metaphor and cohesive core.
Ummm... maybe you missed what he was talking about. This is an application for making online stores -- not a store itself (though I suppose it is that too). This is in line with WikiWiki, or some of the homepage builders that have come about. It's not a shopping cart application.
This story isn't about Lisp being used for a kick-ass user interface or a 3d engine because (IMHO) Lisp isn't as well suited to those things.
This story is all about a user-interface (over the web). This story isn't about applications deployed client-side, and it isn't about applications that are redeployed to local programmers (e.g., SQL), and it isn't about applications that have very high performance requirements (e.g., 3D). I think it's unfair to say Lisp isn't good at UI, though.
Anyhow, having said all that, could someone who knows Lisp better than me explain what it is about Lisp that makes it so good for AI?
It's nothing magic -- there's not really any particular fancy features that make Lisp and AI go together (unlike, say, Prolog). In part it is tradition -- currently there may be other languages just as capable of Lisp, but when it all started there wasn't.
The real reason Lisp and AI go together is because Lisp is a very high level language, and as such is very good for prototyping and experimentation. In AI research this is very important, while the ease of deployment is very unimportant. Lisp scales into complexity well, and you can fit pieces together well. Lisp is just a good language.
The reasons it is good for AI are all the reasons that it is good for server-side web development. That said, I think there's other languages that are just as high-level (or higher). Smalltalk, in particular, is just as high level as Lisp if not higher. I say this not because of the features that Smalltalk has compared to Common Lisp -- in fact, Smalltalk as a language has only a handful of features, and CL has very thick books worth of features. I think the author was wrong to say that languages are good just because of features. But Smalltalk does everything CL does without features, and if that doesn't make it higher level, it at least makes it wiser.
I really like Python, but I can't claim it's on that level.
Our plan was to write software that would let end users build online stores. What was novel about this software, at the time, was that it ran on our server, using ordinary Web pages as the interface. (...) as far as I know, Viaweb was the first Web-based application.
I think in that context, his statement seems much more reasonable. The Xerox map server is not nearly as interactive, or as stateful, as what he was doing. There was a novelty to it.
I think Scheme might be a better place to start, whether or not you go on to learn Common Lisp. The basic syntactic trauma of Lispish languages is softened by the small size of Scheme, and nearly everything you learn in Scheme will apply to Common Lisp.
In a funny sort of way, while Scheme isn't used for many large projects, it's nearly as alive as Common Lisp -- which is to say, not very alive. Scheme is more popular in Academia at this point, in large part due to the book Structure and Interpretation of Computer Programs, by Abelson and Sussman, which is a great book for learning to think differently about programming. It's the standard introductory text for programming at MIT.
Common Lisp is far more practical than Scheme. It has every feature you would want to use, and many features that you would never want to use (e.g., dynamic scoping). It was designed by committee by smushing a bunch of previous Lisps together, and it shows. But it actually has a lot of useful code for it, and a lot of useful features.
Scheme is designed by a committee of mathematicians posing as computer scientists, and that shows too. Common Lisp has an ANSI standard, Scheme has a strong standard that is only endorsed by convention and the academic credentials of the committe. It's an interesting difference.
Common Lisp is also interesting in part because of its rather novel object system, CLOS. It implements what's called a Meta-Object Protocol, and is supposed to be very Deep (though I haven't used it myself). It uses a style of generic programming, as opposed to object methods -- it looks reminiscent of C++ function overloading, but is somewhat more general (arguably more general than methods). There are comparible object systems (e.g., TinyCLOS) available for Scheme, but not generally built into the language.
Common Lisp has been used more in AI, where Scheme is a more important foundation for language design.
Here here, the Kinesis Essential keyboard is great. I can touch type numbers with ease, and it has a nice subset of a keyboard just including the actually useful keys. There might be a couple problems for some people, though:
My girlfriend hates it. She never uses it enough to really learn it, so it's just annoying to her
It really feels best when I type with it on my lap. I don't know if you'd get the same benefit if you have it sitting on your desk.
It has a really wimpy Escape key. I find this really annoying. And I don't know what it is about xmodmap, but every attempt to map the Insert key or other not-so-useful key to Escape ends up failing.
The function keys are all little and wimpy, but that's pretty appropriate since I use almost no function keys during the day. The windows keys are almost inaccessible (some random keys when in keypad mode), which would be annoying on Windows since you won't be able to use all the keyboard shortcuts that will make your hands happier. But I'm sure there's some xmodmap-like program for Windows you could use to fix this.
You still have to hit shift with your pinkies, and so my pinkies are the first fingers to get tired. But Control, Alt, space, delete, backspace, and enter are all done with the thumbs, so it's still a lot better.
While there is a button to put the keyboard in keypad mode (where the right side acts like arrow keys or a number pad), it's rather lame. Worst part, the space becomes a zero, so if you want to type spaces with your arrows or numbers, you'll have to switch back and forth (which would be too annoying to bother). This usually isn't a problem, but when using certain games that don't allow you to remap keys it is very very annoying (I have another normal keyboard sitting around, though).
OTOH, with games that do allow you to remap keys (first person shooters, particularly), it's really nice -- you have reliable access to quite a few keys from one hand, much better than a normal keyboard (especially because of the numerous thumb keys).
Still, highly recommended. I think it's definately a step up from the MS Natural-style keyboards, and is fairly non-intrusive. While it takes a little while to learn (less if you already practice proper touch typing), it's entirely worth it if you type a lot (and who here doesn't?) I'd choose the Essential over the Maxim or similar conservative split-keyboard design any day, and it's entirely worth the money.
The keyboard is pretty good quality, but after several years mine is starting to have some problems with some keys repeating too much (like I hit the backspace once and the computer gets two signals). Still, good quality.
I know, it's awful. The idea that any citizen would be allowed to express their perspective to the general populace is both dangerous and irresponsible. Doesn't the consitution have something about press badges in the first amendment? Or maybe it's just about free speach being the special responsibility of media corporatations? I can't recall off the top of my head.
I won't bother to argue about the facts that you propose, as opposed to leftist opinions. I doubt that would get anywhere.
However, I would point out that you seem to utterly miss the real issue.
The issue here is not whether the protesters are right or wrong, but whether they will be allowed to protest at all. And, in turn, whether anyone who has a strong opinion will be allowed to effectively voice that opinion (as opposed to just writing useless messages in comment sections like this).
This is a serious attack on free speach. The powers that be do not imprison these leftists (generally), but harass them at every turn. The way pepper spray and other non-lethal deterents have been used is simply torture -- more than once police have applied a pepper spray to the eyes of handcuffed or chained, nonviolent protesters with Q-tips.
During protests hundreds of people are arrested, but actual trials have been on the order of one or two per demonstration, generally with no convictions. This is obviously an abuse of the system, and systematic unjustified arrests.
These are the issues at hand. Now the FBI wants to find out who more of these protesters and dissidents are -- it is unlikely that this is because they have any intention of seeking conviction of anyone. The FBI has consistently shown itself to have no respect for basic civil rights, and is commonly used to sabotage and harass dissidents in the United States. COINTELPRO is largest such project by the FBI, continuing over more than a decade. It is well documented, and to my knowlege no one has ever been disciplined at all over this illegal and immoral operation.
It should also be noted that the FBI and other government institutions have often used agent provacateurs -- government agents and informants that incite dissident groups to violent, and usually self-destructive actions. I would be surprised if this has not been the source of at least some of the (relatively minor) violence.
These are the issues at hand. And you just seem to side with the thugs, ignoring their immoral behavior.
But there isn't any ambiguity. The order gives far less meaning than the names. In the languages I've used that have named arguments (Python, Common Lisp, Smalltalk), this is never a problem. You don't assume any order, because you read the names, not the order. It reads more like a real language.
Named/out of order arguments- will cause confusion and bugs
You are so very, very wrong with this. Named arguments are, IMHO, entirely and completely positive, with no negative effects whatsoever.
Any function/method with more than, oh, two arguments causes confusion and bugs. Most of the time there is no real natural order to the arguments -- perhaps some conventions, but that's about it. Does the file come first in fputs, or is that fprintf...? Does either of those make more sense then the other?
Argument ordering is usually arbitrary, but named arguments are never arbitrary. For large function calls (which would include object instantiation) keywords (named arguments) are very good.
I put GE on the list mostly because it's a large arms manufacturer. 10 Worst Corp. of 1988 notes how GE is one of the biggest Nuclear Weapons manufacturer.
There was a large boycott on the company in the early 90s. GE practiced censorship
at NBC during this time in regards to the matter. I honestly can't remember all of what the boycott was about.
They also show up on the
10 worst corporations of 1994, and 1992, and 1991. I think they've fallen off since then because nuclear issues aren't a big deal now. I'd be more concerned about other weapons dealing, but I really don't know how GE markets their weapons, or what kind they make.
Those 10-worst lists also note that GE has consistently practiced fraud and bribery in their dealings with the government. Considering military spending is currently up, while any need for a military is significantly down, I imagine fraud and bribery is more powerful than ever among military contractors. OTOH, bad as those things are, it's only money and greed, not like having people assassinated or anything (like Shell).
What I wonder about is why charities are taking this blood money in the first place.
Geez, get some perspective. Bill Gates $'s are "blood money"?
For all his flaws, Bill Gates has been relatively moral. Did he kill anyone to make his money? Did he impoverish anyone? Did he bust unions? Did he hire thugs? Did he employ children? Did he deliberately harm his customers?
No, he did none of those things. Maybe he has been anti-competitive, and all the problems that come with that, but considering the evils of the world that doesn't rank so high.
Money from GE, Nike, Shell, Big Tobacco -- now that's blood money. The heads of those companies are immoral bastards, and they make me wish I believed in Hell so I could imagine some final justice to it all. But Microsoft is rather tame. Anyone MS hurt was pretty damned privileged and wasn't caused any real harm, merely withheld potential benefits.
Of course Java, PHP, and Perl aren't the only languages. But everyone already knew that.
I've been using Webware lately, which is a Python servlet engine. Very similar to the Java servlets, except without a lot of the verboseness that Java demands. For Python there's Zope as well, but I found it unwieldy, and not very Pythonic.
PHP certainly has regular expressions as part of the standard library, but they are considerably more annoying to use. You give the RE using a normal string, which makes it very difficult. "\\s+" instead of/\s+/ and so on.
Python, which similarly has REs as a set of procedures (well, classes) instead of being part of the syntax, does this much better. It's a nearly trivial addition to the language: you put a r before the string, and \'s don't get substituted, like r"\w+\s+\w+". It makes a big difference, and really easy to add to a language.
Another annoying part is that PHP doesn't document their regular expressions -- merely says "oh, read the Perl manual, or POSIX definition or whatever." That's just intensely dumb, it makes it look like PHP is just a poor copy of another language. They really ought to fix that.
When I say Smalltalk is too insular, I mean in the really simple ways. Like, developing Smalltalk code when you can only access the server with shell and FTP access. It's hard to partition -- you can't easily split the Smalltalk application from the giant environment that comes with it. How do you ship an application based on that?
Yes, these things can be done (well, I still don't know about developing Smalltalk code and uploading it), but they can't be done easily. This is the sort of thing that comes almost for free when you use C or Python. But just getting started can be a royal pain in the butt with something like Smalltalk, or heck, even Java.
I spend an inordinate amount of time dealing with the environment already. (inordinate being anything more than zero -- but in practical terms it can be quite high)
I can learn new things -- any decent programmer should enjoy learning all sorts of new things -- and when I learn them I know them. I'm always moving forward (even though expectations always increase). But with the environment stuff I always feel like I'm wasting time, and that the time I spend I'll just have to spend again when I move, or set up something new. I guess it's time spent that would be considered accidental, rather than essential -- and it's totally unsatisfying.
It's petty, I know, which is probably why I sound really annoyed in this post. It annoys me that petty things create serious blocks to being able to use something cool. I wish it weren't so.
Okay, more seriously, what the hell are you talking about? It's all abstract voodoo. Have you seen an electron? No, you can't. Electrons and all your beloved particles are invisible. You can see the effects of them, I suppose. But are you really sure it's not fairies doing the real work? Are you really sure it's not God, setting up little games for us to figure out? I mean, if He plants bones in the ground to test our faith, it doesn't seem far fetched that He'd come up with other little games. Or maybe it's multidimensional strings?
You've never seen an atom, not to mention an electron... and certainly not quarks. All that makes you think that they exist is some model, which apparently has been consistent in predicting a wide range of experiments. It's a nice enough model that you have been able to internalize its metaphors, even with only indirect evidence.
But it's just a model made up of a bunch of equations and notions and assumptions. It isn't magic. It isn't Truth. And that model is not somehow endowed with some status that makes it somehow more The True Model than any other mathematical model. Atom theory predicts things good. Newton's theories predict things good. Aristotle was a idiot, and he didn't predict crap, but that's an aside.
So far, no model has predicted and explained everything. Maybe no such model exists, or maybe it does. Maybe many such models exist. You want underlying causes, but you won't get them, ever (unless maybe God is proven to exist). You can only get models. One after another, which by some really long chain of deduction end up in something you can directly sense. Or, at least, you think you can sense, because this all might just be a dream in the mind of Shiva.
It's just turtles, all the way down.
Is Tivo sold at a loss? Sure, this is true of consoles, but this seems more like an appliance of sorts, no?
That was when I saw that the KDE people not only were willing to make serious compromises to expediate their goals, but weren't really committed to Free Software or doing the right thing.
And if it wasn't for Harmony and Gnome and Debian, Qt never would have had its foundation, the QPL, or eventually the GPL. Those things didn't happen because of pressure from KDE developers, they happened because of pressure from the (idealistic and uncompromising) Free Software community.
Webware gives you servlets in Python. I would recommend it -- Zope isn't by any means the only way to use Python on the web (thankfully).
I've never used Java servlets, but I've read a few bits of sample servlets. They seem to me to be painfully verbose. I'm all for long variable names and all that jazz, but Java just seems to make you jump through hoops for no good reason. It's not just that it isn't fun, or requires lots of typing, but verbosity makes for a bad language. You should be able to say things as you mean them, verbosity obscures that.
However, Java may not be so bad on a larger scale. Perhaps the example code doesn't want to build even a small library (since its just an example) and in a real project you'd do that and simplify things.
Another thing I like about Python is the extremely dynamic nature. You can have a dynamic inheritance tree, for instance -- consider an entire framework where you could subclass major components and those subclasses can easily insinuate themselves into the depths of the framework. This allows you to make radical changes to the framework without compromising the distinction between your local code and the upstream code. To do this requires that classes be first-class objects, so you just can't do it in Java.
This hasn't and isn't going to happen for Smalltalk. There's no clean, well-partitioned way to install a Smalltalk runtime. It's overintegrated and overly insular. So it can't come in slowly, with small programs and utilities being written in Smalltalk.
That's like a free brake inspection -- places that give those are usually dishonest, and the results of the inspection are always suspect. I'd assume the same with a computer consultant. And just like with cars, most of the people paying the money don't actually understand what they are really paying for. So it requires a lot of trust. Being sneaky isn't the way to get people to trust you.
There is no shortage of food on Earth. Most starvation is accompanied by war -- famine alone seldom causes starvation. Malnutrition is widespread, but is not due to a lack of food in a larger sense -- it is due to social upheavals in rural areas, social injustice, global food markets, etc., etc., etc.
If the food that exists was given to everyone fairly, then people wouldn't be starving anywhere. This computer is as much a step towards that (far off) goal as anything else. Free communication and justice go hand in hand, and this computer is a step towards that communication.
It's been a while, but a couple decades ago the Progressive magazine printed instructions on how to make a nuclear bomb. I don't believe it was found to be at all illegal (there's some reference to the article here).
The Anarchist Cookbook still seems to be easily available -- though maybe that's just because it's a right-wing conspiracy to get dumb anarchists to blow themselves up :)
And, several years ago when I knew someone who was into that sort of thing, books on converting weapons seemed easily available.
To me it seems like DeCSS (and the DMCA) is a radical departure from normal law. (Though I wonder if similar censorship has occurred for manufacturing LSD, etc.?)
Smalltalk completely exposes as much of its implementation as you need to do all of this. It's not all built in, because that's not what Smalltalk is about -- it's philosophically more like a Scheme that actually does useful things. But that doesn't mean its less powerful -- as I said, I disagree that features is the best way to judge a language, and though Smalltalk has less features it has a more powerful metaphor and cohesive core.
Ummm... maybe you missed what he was talking about. This is an application for making online stores -- not a store itself (though I suppose it is that too). This is in line with WikiWiki, or some of the homepage builders that have come about. It's not a shopping cart application.
The real reason Lisp and AI go together is because Lisp is a very high level language, and as such is very good for prototyping and experimentation. In AI research this is very important, while the ease of deployment is very unimportant. Lisp scales into complexity well, and you can fit pieces together well. Lisp is just a good language.
The reasons it is good for AI are all the reasons that it is good for server-side web development. That said, I think there's other languages that are just as high-level (or higher). Smalltalk, in particular, is just as high level as Lisp if not higher. I say this not because of the features that Smalltalk has compared to Common Lisp -- in fact, Smalltalk as a language has only a handful of features, and CL has very thick books worth of features. I think the author was wrong to say that languages are good just because of features. But Smalltalk does everything CL does without features, and if that doesn't make it higher level, it at least makes it wiser.
I really like Python, but I can't claim it's on that level.
Our plan was to write software that would let end users build online stores. What was novel about this software, at the time, was that it ran on our server, using ordinary Web pages as the interface. (...) as far as I know, Viaweb was the first Web-based application.
I think in that context, his statement seems much more reasonable. The Xerox map server is not nearly as interactive, or as stateful, as what he was doing. There was a novelty to it.
In a funny sort of way, while Scheme isn't used for many large projects, it's nearly as alive as Common Lisp -- which is to say, not very alive. Scheme is more popular in Academia at this point, in large part due to the book Structure and Interpretation of Computer Programs, by Abelson and Sussman, which is a great book for learning to think differently about programming. It's the standard introductory text for programming at MIT.
Common Lisp is far more practical than Scheme. It has every feature you would want to use, and many features that you would never want to use (e.g., dynamic scoping). It was designed by committee by smushing a bunch of previous Lisps together, and it shows. But it actually has a lot of useful code for it, and a lot of useful features.
Scheme is designed by a committee of mathematicians posing as computer scientists, and that shows too. Common Lisp has an ANSI standard, Scheme has a strong standard that is only endorsed by convention and the academic credentials of the committe. It's an interesting difference.
Common Lisp is also interesting in part because of its rather novel object system, CLOS. It implements what's called a Meta-Object Protocol, and is supposed to be very Deep (though I haven't used it myself). It uses a style of generic programming, as opposed to object methods -- it looks reminiscent of C++ function overloading, but is somewhat more general (arguably more general than methods). There are comparible object systems (e.g., TinyCLOS) available for Scheme, but not generally built into the language.
Common Lisp has been used more in AI, where Scheme is a more important foundation for language design.
- My girlfriend hates it. She never uses it enough to really learn it, so it's just annoying to her
- It really feels best when I type with it on my lap. I don't know if you'd get the same benefit if you have it sitting on your desk.
- It has a really wimpy Escape key. I find this really annoying. And I don't know what it is about xmodmap, but every attempt to map the Insert key or other not-so-useful key to Escape ends up failing.
- The function keys are all little and wimpy, but that's pretty appropriate since I use almost no function keys during the day. The windows keys are almost inaccessible (some random keys when in keypad mode), which would be annoying on Windows since you won't be able to use all the keyboard shortcuts that will make your hands happier. But I'm sure there's some xmodmap-like program for Windows you could use to fix this.
- You still have to hit shift with your pinkies, and so my pinkies are the first fingers to get tired. But Control, Alt, space, delete, backspace, and enter are all done with the thumbs, so it's still a lot better.
- While there is a button to put the keyboard in keypad mode (where the right side acts like arrow keys or a number pad), it's rather lame. Worst part, the space becomes a zero, so if you want to type spaces with your arrows or numbers, you'll have to switch back and forth (which would be too annoying to bother). This usually isn't a problem, but when using certain games that don't allow you to remap keys it is very very annoying (I have another normal keyboard sitting around, though).
- OTOH, with games that do allow you to remap keys (first person shooters, particularly), it's really nice -- you have reliable access to quite a few keys from one hand, much better than a normal keyboard (especially because of the numerous thumb keys).
Still, highly recommended. I think it's definately a step up from the MS Natural-style keyboards, and is fairly non-intrusive. While it takes a little while to learn (less if you already practice proper touch typing), it's entirely worth it if you type a lot (and who here doesn't?) I'd choose the Essential over the Maxim or similar conservative split-keyboard design any day, and it's entirely worth the money.The keyboard is pretty good quality, but after several years mine is starting to have some problems with some keys repeating too much (like I hit the backspace once and the computer gets two signals). Still, good quality.
However, I would point out that you seem to utterly miss the real issue.
The issue here is not whether the protesters are right or wrong, but whether they will be allowed to protest at all. And, in turn, whether anyone who has a strong opinion will be allowed to effectively voice that opinion (as opposed to just writing useless messages in comment sections like this).
This is a serious attack on free speach. The powers that be do not imprison these leftists (generally), but harass them at every turn. The way pepper spray and other non-lethal deterents have been used is simply torture -- more than once police have applied a pepper spray to the eyes of handcuffed or chained, nonviolent protesters with Q-tips.
During protests hundreds of people are arrested, but actual trials have been on the order of one or two per demonstration, generally with no convictions. This is obviously an abuse of the system, and systematic unjustified arrests.
These are the issues at hand. Now the FBI wants to find out who more of these protesters and dissidents are -- it is unlikely that this is because they have any intention of seeking conviction of anyone. The FBI has consistently shown itself to have no respect for basic civil rights, and is commonly used to sabotage and harass dissidents in the United States. COINTELPRO is largest such project by the FBI, continuing over more than a decade. It is well documented, and to my knowlege no one has ever been disciplined at all over this illegal and immoral operation.
It should also be noted that the FBI and other government institutions have often used agent provacateurs -- government agents and informants that incite dissident groups to violent, and usually self-destructive actions. I would be surprised if this has not been the source of at least some of the (relatively minor) violence.
These are the issues at hand. And you just seem to side with the thugs, ignoring their immoral behavior.
But there isn't any ambiguity. The order gives far less meaning than the names. In the languages I've used that have named arguments (Python, Common Lisp, Smalltalk), this is never a problem. You don't assume any order, because you read the names, not the order. It reads more like a real language.
Any function/method with more than, oh, two arguments causes confusion and bugs. Most of the time there is no real natural order to the arguments -- perhaps some conventions, but that's about it. Does the file come first in fputs, or is that fprintf...? Does either of those make more sense then the other?
Argument ordering is usually arbitrary, but named arguments are never arbitrary. For large function calls (which would include object instantiation) keywords (named arguments) are very good.
There was a large boycott on the company in the early 90s. GE practiced censorship at NBC during this time in regards to the matter. I honestly can't remember all of what the boycott was about.
They also show up on the 10 worst corporations of 1994, and 1992, and 1991. I think they've fallen off since then because nuclear issues aren't a big deal now. I'd be more concerned about other weapons dealing, but I really don't know how GE markets their weapons, or what kind they make.
Those 10-worst lists also note that GE has consistently practiced fraud and bribery in their dealings with the government. Considering military spending is currently up, while any need for a military is significantly down, I imagine fraud and bribery is more powerful than ever among military contractors. OTOH, bad as those things are, it's only money and greed, not like having people assassinated or anything (like Shell).
For all his flaws, Bill Gates has been relatively moral. Did he kill anyone to make his money? Did he impoverish anyone? Did he bust unions? Did he hire thugs? Did he employ children? Did he deliberately harm his customers?
No, he did none of those things. Maybe he has been anti-competitive, and all the problems that come with that, but considering the evils of the world that doesn't rank so high.
Money from GE, Nike, Shell, Big Tobacco -- now that's blood money. The heads of those companies are immoral bastards, and they make me wish I believed in Hell so I could imagine some final justice to it all. But Microsoft is rather tame. Anyone MS hurt was pretty damned privileged and wasn't caused any real harm, merely withheld potential benefits.
I've been using Webware lately, which is a Python servlet engine. Very similar to the Java servlets, except without a lot of the verboseness that Java demands. For Python there's Zope as well, but I found it unwieldy, and not very Pythonic.
Python, which similarly has REs as a set of procedures (well, classes) instead of being part of the syntax, does this much better. It's a nearly trivial addition to the language: you put a r before the string, and \'s don't get substituted, like r"\w+\s+\w+". It makes a big difference, and really easy to add to a language.
Another annoying part is that PHP doesn't document their regular expressions -- merely says "oh, read the Perl manual, or POSIX definition or whatever." That's just intensely dumb, it makes it look like PHP is just a poor copy of another language. They really ought to fix that.
Yes, these things can be done (well, I still don't know about developing Smalltalk code and uploading it), but they can't be done easily. This is the sort of thing that comes almost for free when you use C or Python. But just getting started can be a royal pain in the butt with something like Smalltalk, or heck, even Java.
I spend an inordinate amount of time dealing with the environment already. (inordinate being anything more than zero -- but in practical terms it can be quite high)
I can learn new things -- any decent programmer should enjoy learning all sorts of new things -- and when I learn them I know them. I'm always moving forward (even though expectations always increase). But with the environment stuff I always feel like I'm wasting time, and that the time I spend I'll just have to spend again when I move, or set up something new. I guess it's time spent that would be considered accidental, rather than essential -- and it's totally unsatisfying.
It's petty, I know, which is probably why I sound really annoyed in this post. It annoys me that petty things create serious blocks to being able to use something cool. I wish it weren't so.