I've never had a real programming job, so I don't know if this idea would work in such a situation...
Didn't Thompson say, "When in doubt, use brute force"? Whenever I have had programmer's block, it's always been because I was far too worried about making the code fast, or extensible, or portable, or perfect. By copmparison, writing a bubble sort algorithm is almost like meditation... it can be very therapeutic.
Once, I was so sick of a C++ project that I just rewrote the whole thing from scratch in Tcl. It was fun, and the it cleared my mind enough to allow me to get back to the real code.
Of course, another advantage of this method is that you actually end up with working code. You may even find that your brute force algorithm is good enough to keep after all.
Windows95 unfortunately introduced some UI elements that can only be activated by double-clicking
Like what? Every double-click that I can think of can be replaced by selecting an item from a context menu.
There's even a convention for it: Opening a context menu and selecting the item in bold should always have the same affect as double-clicking the object. I'm not aware of any programs that violate that rule, certainly not MS programs.
In fact, once you start paying attention to the feeling, it becomes rather uncomfortable.
You're right, I've noticed that too. Conventional mouse wheels are in a pretty awkward position.
As I was reading your comment and stroking my mouse, though, I thought of something: Why not put the wheel in a thumb-accessible position, at about a 45 degree angle to horizontal? You could turn the wheel by opening and closing your thumb grip, which is about the most natural hand movement I can think of (for humans, anyway.)
X-Windows is designed with 3.... do you see where I'm going? Different OSes have different minimal mousing requirements. Apple's OS needs only 1. If _you_ need more to function on the Mac OS, by all means, buy one.
The funny thing is, the MacOS interface has been ripping off Windows features more and more in recent versions... Almost any feature that is activated by a right-click in Windows, is activated by a ctrl-click or cmd-click in MacOS... er... 9, is it? Context menus are a notorious example. It's a real pain.
I know Applescript still exists, I was speaking in the past tense mainly because I haven't touched it for a few years.
But I stand by my main point... The "natural language" aspect of Applescript actually makes it harder to learn than a conventional language, even if the code is much easier to understand.
Applescript, which was in some ways the successor to Hypercard, took the natural language idea to new lows. It sounded like a great idea at first... Applescript code would actually contain lines like:
Tell the Finder to close the active window.
(That may not be actual Applescript, but it's very close.)
Of course, anyone who can read English can understand what that means. There's only one possible interpretation. The problem is, there are a million different ways that it might be written, and only a few of them actually work. I.e. "Ask the Finder to get rid of the active window," "Close the window that is in use," etc. The language did accept an impressive number of variations, but it couldn't be more than a small fraction of what the average user might come up with.
The result was a read-only language, which doesn't really help clueless newbies.
This bug is a standard buffer overflow vulnerability, an accident, and not a design bug
It's interesting, although I agree with all the facts in your post, I disagree with your attitude. In my opinion, this bug is much more disturbing than the damage caused by clueless users who run untrusted applications after countless warnings not to. This is a security hole; allowing users to send attachments is not.
Of course, it is true that this is simply a bug, and it could have happened to anyone. But it didn't happen to anyone, it happened to Microsoft, and they deserve some measure of condemnation for it.
I concur. My computability theory knowledge is mostly swapped to disk right now, but I know that a pure functional language can easily be Turing complete. There's a reason why the term "recursive function" is synonymous with "Turing-computable function".
The best part is the title of that page: "How to sue MAPS".
You'd think people would take the hint and not mess with them. But then, you'd think any lawsuit would get laughed out of court, and that apparently hasn't happened yet...
Anyhow, what is the criterion for determinining if it's a language or a dialect? Mutual comprehensibility? (kinda like the EASY definition of a species)
Actually, it's exactly like defining "species", with all the same pitfalls. If you you're determined to come up with an unambiguous way of differentiating them, you inevitably come to one of two conclusions: everybody speaks the same language, or everybody speaks a different language.
Mutual comprehensibility is usually the benchmark. Language has an additional problem, though: comprehensibility isn't transitive. For example, apparently Romanians can understand Italian, but Italians can't understand Romanian.
We spent a whole day on this in my Typology class. It's a mess.:-)
People have the bad habit of counting regional dialects as a language instead of stating that it's dialectic.
Linguists would probably say that people have a bad habit of underestimating the differences between "dialects."
It's a religious issue, but I tend to agree more with the linguists. The problem is that the general public hasn't quite grasped how rapidly and profoundly languages can change. We call the language that we speak "English," but we'd probably have as hard a time with 15th century English as we would with modern French. Similarly, even if Billy Bob's great-great-grand-dad had the same English teacher as my great-great-grand-dad, that doesn't mean that he and I speak the same language today.
Most of the posters here seem to be under the impression that NASA wants to avoid Europa and Io do to some kind of twisted environmentalist ethic. That's not it at all, although the reasoning might be a little distorted by the time it's filtered for public consumption.
As the article says, NASA wants to "safeguard the scientific integrity of future studies of Europa's biological potential." Good scientists are naturally skeptical, and as any science knows, "extraordinary claims require extraordinary proof." In order to prove the "extraordinary claim" that native life exists on Europa, scientists would have to eliminate any more mundane possibilities. The claim that said life is not native to Europa, but was carried there by Galileo, would be almost impossible to dispute.
Let me put this another way: Let's say NASA let Galileo crash into Europa. Now it's 2040, and our first Europa lander finds the moon teeming with life. Any good scientist would say, "So what? It was probably left there by Galileo." And they'd be right. On the other hand, if NASA keeps Europa uncontaminated, any life on Europa would indisputably be extraterrestrial.
I'm no Luddite, but I'm not too thrilled about the idea of making permanent modifications to my body. (Especially if those modifications replace existing organs.)
I see a simpler solution: Tiny LCDs in contact lenses. The could be used with the eyes open, acting as a kind of HUD, or with the eyes closed, with some sort of backlight.
You know what really pisses me off about people who do that? It works. At least, it works in EverQuest... Diablo 2's graphics might be too primitive to trigger those protective instincts.
I've wasted so much time and money helping out naked wood elves. I know they're all played by creepy middle-aged men, but... they're just so cute!
Basically what I'm trying to say is this, they don't go out of their way to not be interoperable, it simply is that interoperability never crosses their minds when creating software.
I would propose, mostly without evidence, that it's actually just the opposite: Microsoft programmers and designers do go out of their way to be interoperable by default... They only break things when management requires them to.
I'm trying to think of a specific example... the best that I can come up with is Internet Explorer 3.0 for the MacOS. This was one of the best web browsers of all time, and it was specifically designed to work closely with the MacOS. And, for the record, it was released before the infamous alliance between MS and Apple. I suppose the project just kept a low profile at Microsoft, so the programmers were allowed to do it right.
FWIW, Visual Basic passes all arguments by reference by default, but you can override this by using the ByVal and ByRef qualifiers in function declarations. For some types anyway; I don't think VB will let you pass an array or an object by value.
I don't think that's quite right (and the mere fact that it's disputed is an indication that it's evil.) I was under the impression that VB, like C# (and apparently Java also -- I was mistaken about that,) passes objects by value but passes "primitives" by reference. I believe String counts as a primitive, too. It also has other, more obscure ways of confusing the issue, like the AddressOf operator (which gives you a bare function pointer, even though there is no function pointer type to put it in.)
Does anyone know if VB still supports ye right-antient BASICKE convention of parenthising (sp?) arguments in procedure calls to force them to be passed by value?
I'm pretty sure that does work in VB. Actually, that makes a lot of sense... depending on how it compiles, that might even work in C++.
Looks like a bastard child of C and Pascal. A Borland influence, maybe?
Not really. It's hard to come to any conclusions about C# after reading the first page of the language reference... Having read some of the other pages, it seems to me that C# is java (as everyone expected,) with two differences:
1) It allows you to break the memory model manually, i.e. turn off garbage collection. I don't think I like garbage collection, but if your language is going to be garbage-collected anyway, allowing exceptions is definitely a bad idea.
2) It avoids "confusing" pointers and references, using the same technique that Visual Basic uses: it just hides the difference, so you never really know whether you're working with a reference or a copy. Having used VB quite a bit, I can tell you that this is really bad. That feature alone would be enough to keep me from going near C#.
umm, Sun won't let them do it unless they're 100% compliant with Sun's spec, which means VB apps could be compiled to run on Linux/Solaris/Mac OS/etc.,
That's exactly the point. MS makes a relatively small addition to the VB compiler, and boom! Suddenly they have a simple, powerful, cross-platform language, suitable for web applets and similar network-based apps. It would take a big chunk out of the Java market very quickly.
Anyway, I know freedom of speech has taken a lot of hits lately, but I'm pretty sure that Sun doesn't yet have the power to decide who can compile to Java bytecode, any more than Intel has the power to decide who can compile to x86 machine code.
Anyone else find it ironic that the above post was lifted without permission from the RIAA, without even including proper attribution?
FWIW, it appears to come from here: http://www.riaa.com/MD-US-7.cfm
I've never had a real programming job, so I don't know if this idea would work in such a situation...
Didn't Thompson say, "When in doubt, use brute force"? Whenever I have had programmer's block, it's always been because I was far too worried about making the code fast, or extensible, or portable, or perfect. By copmparison, writing a bubble sort algorithm is almost like meditation... it can be very therapeutic.
Once, I was so sick of a C++ project that I just rewrote the whole thing from scratch in Tcl. It was fun, and the it cleared my mind enough to allow me to get back to the real code.
Of course, another advantage of this method is that you actually end up with working code. You may even find that your brute force algorithm is good enough to keep after all.
Wouldn't it be more efficient to just nuke the Mars colony? Then everybody's happy.
There's even a convention for it: Opening a context menu and selecting the item in bold should always have the same affect as double-clicking the object. I'm not aware of any programs that violate that rule, certainly not MS programs.
As I was reading your comment and stroking my mouse, though, I thought of something: Why not put the wheel in a thumb-accessible position, at about a 45 degree angle to horizontal? You could turn the wheel by opening and closing your thumb grip, which is about the most natural hand movement I can think of (for humans, anyway.)
The funny thing is, the MacOS interface has been ripping off Windows features more and more in recent versions... Almost any feature that is activated by a right-click in Windows, is activated by a ctrl-click or cmd-click in MacOS... er... 9, is it? Context menus are a notorious example. It's a real pain.
But I stand by my main point... The "natural language" aspect of Applescript actually makes it harder to learn than a conventional language, even if the code is much easier to understand.
Applescript, which was in some ways the successor to Hypercard, took the natural language idea to new lows. It sounded like a great idea at first... Applescript code would actually contain lines like:
Tell the Finder to close the active window.
(That may not be actual Applescript, but it's very close.)
Of course, anyone who can read English can understand what that means. There's only one possible interpretation. The problem is, there are a million different ways that it might be written, and only a few of them actually work. I.e. "Ask the Finder to get rid of the active window," "Close the window that is in use," etc. The language did accept an impressive number of variations, but it couldn't be more than a small fraction of what the average user might come up with.
The result was a read-only language, which doesn't really help clueless newbies.
Variety reports today: "Sales of 'Plant' Wilt on King's Website"
Although the 78% voluntary payment rate is pretty impressive, apparently 41,000 downloads is "hardly terrifying" in the publishing industry.
I'm feeling even lazier than usual, so I'll be brief:
Underwater rail guns?
Of course, it is true that this is simply a bug, and it could have happened to anyone. But it didn't happen to anyone, it happened to Microsoft, and they deserve some measure of condemnation for it.
Is it all a matter of personal preference, or experience? Or am I a mutant?
The best part is the title of that page: "How to sue MAPS".
You'd think people would take the hint and not mess with them. But then, you'd think any lawsuit would get laughed out of court, and that apparently hasn't happened yet...
Mutual comprehensibility is usually the benchmark. Language has an additional problem, though: comprehensibility isn't transitive. For example, apparently Romanians can understand Italian, but Italians can't understand Romanian.
We spent a whole day on this in my Typology class. It's a mess.
It's a religious issue, but I tend to agree more with the linguists. The problem is that the general public hasn't quite grasped how rapidly and profoundly languages can change. We call the language that we speak "English," but we'd probably have as hard a time with 15th century English as we would with modern French. Similarly, even if Billy Bob's great-great-grand-dad had the same English teacher as my great-great-grand-dad, that doesn't mean that he and I speak the same language today.
I don't know what Scientific American said, but Ethnologue is probably a better source, and they list 6,703 languages at the moment.
Most of the posters here seem to be under the impression that NASA wants to avoid Europa and Io do to some kind of twisted environmentalist ethic. That's not it at all, although the reasoning might be a little distorted by the time it's filtered for public consumption.
As the article says, NASA wants to "safeguard the scientific integrity of future studies of Europa's biological potential." Good scientists are naturally skeptical, and as any science knows, "extraordinary claims require extraordinary proof." In order to prove the "extraordinary claim" that native life exists on Europa, scientists would have to eliminate any more mundane possibilities. The claim that said life is not native to Europa, but was carried there by Galileo, would be almost impossible to dispute.
Let me put this another way: Let's say NASA let Galileo crash into Europa. Now it's 2040, and our first Europa lander finds the moon teeming with life. Any good scientist would say, "So what? It was probably left there by Galileo." And they'd be right. On the other hand, if NASA keeps Europa uncontaminated, any life on Europa would indisputably be extraterrestrial.
Got it?
I'm no Luddite, but I'm not too thrilled about the idea of making permanent modifications to my body. (Especially if those modifications replace existing organs.)
I see a simpler solution: Tiny LCDs in contact lenses. The could be used with the eyes open, acting as a kind of HUD, or with the eyes closed, with some sort of backlight.
We could practically do this today, couldn't we?
I've wasted so much time and money helping out naked wood elves. I know they're all played by creepy middle-aged men, but... they're just so cute!
Sorry, I'm sure it would be easy to look up the answer to this question, but I'm in a lazy mood.
I'm trying to think of a specific example... the best that I can come up with is Internet Explorer 3.0 for the MacOS. This was one of the best web browsers of all time, and it was specifically designed to work closely with the MacOS. And, for the record, it was released before the infamous alliance between MS and Apple. I suppose the project just kept a low profile at Microsoft, so the programmers were allowed to do it right.
It sure beats 42 balloons and a lawn chair.
I'm pretty sure that does work in VB. Actually, that makes a lot of sense... depending on how it compiles, that might even work in C++.
1) It allows you to break the memory model manually, i.e. turn off garbage collection. I don't think I like garbage collection, but if your language is going to be garbage-collected anyway, allowing exceptions is definitely a bad idea.
2) It avoids "confusing" pointers and references, using the same technique that Visual Basic uses: it just hides the difference, so you never really know whether you're working with a reference or a copy. Having used VB quite a bit, I can tell you that this is really bad. That feature alone would be enough to keep me from going near C#.
Anyway, I know freedom of speech has taken a lot of hits lately, but I'm pretty sure that Sun doesn't yet have the power to decide who can compile to Java bytecode, any more than Intel has the power to decide who can compile to x86 machine code.