Slashdot Mirror


User: David+Gould

David+Gould's activity in the archive.

Stories
0
Comments
711
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 711

  1. Re:Enough! on Breaking the ATA Addressing Barrier · · Score: 2


    Sectors are referenced by a single number, cylinders and heads are no longer used.

    The problem is that sometimes, for people who need to do seriously high-performance I/O, you want to be able to know the drive's geometry and reference sectors at specific cylinder/head locations, to optimize sequential access and minimize seeks. Sure, they're laid out sequentially, so you can just assign things sequentially and expect access to be "mostly" continuous, but if you don't know where the cylinder boundaries are, you'll occasionally get unlucky and have something spanning two cylinders and causing a lot of unnecessary seeks. Knowing a bit about your access patterns, you could have avoided this if you'd known where the boundaries were. You might even want to get really scary and try to make the locations of things on the disk correspond to the time you expect to need them, so they'll always be just passing under the head when needed.

    Of course, this mainly matters for things like high-end databases, but it might conceivably be worthwhile for other high-end applications like media streaming, video editing, or 3D rendering, or for low-level system things like swap-storage management or filesystem layout, where nobody else would have to worry about it but the benefit would apply across the board.

    David Gould

  2. Re:About your post... on The GPL: A Technology Of Trust · · Score: 2


    Is your post GPLed ?

    Actually, he can't, since it's not his original work -- an interesting twist in this case is that it's precisely the fact that he ripped it out of the Monstrous Compendium that makes it so funny. We can just hope that the copyright owners (I've lost track of who owns all that stuff by now. WotC?) would agree that this qualifies as fair use.


    David Gould

  3. Re:Content Distribution ( was Re:LOTR Trailers) on Lord of the Geeks · · Score: 2


    It's been a while since I've bothered, but I seem to recall that there are also various sorts of tricks they use to try to prevent you from being able to get at the actual file, making it so you can only stream the movie, not save it. Hence the four-line-long URL. It's still a silly goal, of course, since it can be defeated more or less easily. Even if they could make it really work, it's just a bad goal, for so many reasons... For one, having nothing to do with rights management and copying, the quality level you want to see does not necessarily correlate to your bandwidth -- streaming is a neat technology for letting you avoid needing to download the whole file first by compromising quality, but what if you want to see the highest available quality and prefer to wait for the download if that's what it takes? Why would they eliminate that option? Also, do they actually prefer to waste the bandwidth sending it to you ever and over again if you want to watch it more than once? (which of course also means you can only watch it when you're online) Plus, especially when the content in question is movie trailers, which they want to have seen by as many people as possible, what's the point of making it so difficult? If we download the files, show them to our friends, mirror them, etc., they get more exposure for less bandwidth -- since in this case, the content itself is the advertisement, they should pay us!

    Anyway, the point of someone posting the URL here is to save others who want the file instead of the stream the trouble of having to hunt it down (which I guess requires hunting through page sources or something -- I seem to recall that, after some changes they made, even that didn't work, or maybe I just did something wrong that time and didn't want it badly enough to bother figuring it out). Defeating their distribution-balancing system (it that's true, which another reply denies) is more of an unfortunate side effect (and another reason they should just link to the saveable files -- we'll get them anyway; why not build that into the system and save their servers the slashdotting?).

    David Gould

  4. Me, on IE dominance on UK Government Locks Out Non-MS Browsers · · Score: 2


    The biggest problem with IE dominance is this:
    If the day ever comes that [someone like] MS controls [almost] 100% of the browser market, that puts them effectively also in control of the web server market, the content authoring market, the browser plugin market, etc.


    No offense, but this didn't strike me as all that "(Score:5, Insightful)". Not that you're wrong or anything -- actually, I'd say it's dead on target, as far as it goes. It's just that you didn't really shed any new light on the issue with respect to what we've all been discussing for years now. As in, pretty much everyone knew, back when the "Browser Wars" were first starting, that this was what made the issue so strategically important. Or at least the geeks knew, which is what made it so frustrating trying to answer less-technical users who asked, "So what makes Netscape so much better, that I should muck around trying to replace [the pre-installed] IE [on my new Win95 box]?"

    By the way, there is something that I think is an important piece of the "control of the browser gives control of the server" argument, which I don't see stated very often, though maybe it's just because people consider it obvious and don't bother saying it explicitly. Anyway:

    The core of it is, to summarize what you said, They decide to implement [some new feature] in their browsers that only accept data from [their] servers, effectively putting [other] server authors out of business. Here's what I'd like to add: the key is that they wouldn't do it all at once. People sometimes respond that, even if you control one side or the other, the existence of diversity on the other side would prevent acceptance of your proprietary extensions -- your failure to play well on the other side might even endanger your dominance on the first side.

    However, this misses the possibility that you might phase in the proprietary extensions on both sides while also maintaining standards-compliance, meaning that your products on both sides would become not just as good, but actually the best, since they would be the only ones to support both the standard and proprietary features. Only later, once you become dominant on both sides, would you gradually begin to "accidentally" break the standards-compliance on one, the other, or both sides (not necessarily with anything so blatant as real incompatibility; a performance or stability hit would serve just as well) -- it wouldn't hurt anyone, you see, because by then providers could cheerfully switch their servers over to using the proprietary features, confident that everyone (well, almost -- everyone that matters, anyway) would be using the supported browser as well.

    David Gould

  5. I have a clue what he's talking about. on The Art Of The Matrix · · Score: 2


    You claim to have some philosophy education. Well, I do to. That is my primary field of study. What exactly is it that reeks of beginner philosophy? Obviously, the whole movie is a variation on the "Brain in a Vat" hypothesis, which is really just a rehash of Descartes "Deceptive Demon". That is an example used to explain why skeptics are skeptics. If you can give a good explanation as to why that hypothesis is not a good one, please let me know, because I know a lot of philosophical skeptics who would really like to hear it.

    We aren't (or at least I in this comment the other day wasn't) saying that these philosophical questions (Descartes's deceptive demon, the brain in a vat, solipsism, or the mind/body problem in general) aren't interesting, only that The Matrix did a poor job of exploring them and that it doesn't deserve the level of praise that it has received from people like Jon Katz who don't know better than to think that these are original concepts. To quote my favorite sentence from my own comment, they "...find the movie's philosophical questions provocative because [they are] encountering them for the first time, whereas those who have already spent any time pondering those ideas know that they are fascinating and all, but don't give this movie so much of the credit for them, especially given how badly it fumbled them. I think we're mainly annoyed by this because we're disappointed that the movie took a concept that could have been developed into something much more interesting and then failed to take it anywhere new.

    Kope called the storyline "...fresh out of a bad philosophy 101 class". I'd agree, except that "101" implies an upper-division course, whereas we went deeper into the mind/body problem in the "Introduction to Philosophy" that I took in a summer program while still in high school, and even more so in a "Philosophy 39" Freshman seminar (though I guess not all such seminars are with John Searle...) I guess you answered your own question when you said "What exactly is it that reeks of beginner philosophy? Obviously, the whole movie is a variation on the "Brain in a Vat" hypothesis...". I don't claim that those undergrad courses cover the questions exhaustively -- they are low-level, introductory things and of course the field gets much more interesting at the higher levels. However, the movie doesn't contain anything that wasn't in those beginner courses, which is exactly what he said.

    David Gould

  6. Re:Return Value? n/t on Software Problem Linked to Osprey Crash · · Score: 2


    Not that anyone will still be reading this, but...

    It's fun to argue over which ones "count", huh? The ones I had in mind were 1, 2, 3, 4, 5, 6, and 8 above, plus no "#include <stdio.h>", which different environments might or might not give you for free. I didn't count 7 since I didn't think main() is required to take the standard "(int argc, char **argv)", or are we debugging my sig now, too?

    David Gould

  7. Re:Return Value? n/t on Software Problem Linked to Osprey Crash · · Score: 2


    I'm going to guess that the errors (I count eight so far) are intentional -- he's making a joke, see, in the guise of a stuffy response that failed to get the previous guy's joke, while also accusing him of failing to get the previous guy's joke. Very recursive; maybe his program should also have called main() recursively -- ooh, I'm not continuing it, am I?

    David Gould

  8. Re:LOL! CNN's old review of The Matrix on Hollywood and Hackers · · Score: 2


    Right. My best guess is that ClayJar simply objects to the review because he disagrees with it. That is, he thinks The Matrix was a really good movie (philosophically provocative, raising fascinating metaphysical questions, etc. [1]), while the reviewer thought it was garbage (presumably because he was not smart enough to grasp the philosophy, metaphysics, etc. [2]).

    From this, we can infer that ClayJar is, like Jon Katz, one of those people who finds the movie's philosophical questions provocative because he was encountering them for the first time, whereas those who have already spent any time pondering those ideas know that they are fascinating and all, but don't give this movie so much of the credit for them, especially given how badly it fumbled them. That is, someone who's just getting used to the idea of mixing reality and virtual reality would find the story "provocative", not minding that it took a beginning that could have been developed into a real alternate-universe thing and punted it into the easier-to-understand Terminator-style intelligent-machines-enslave-mankind ending. I for one was disappointed.

    There. I've been meaning to get my rant about The Matrix out for all this time. To be fair, though, the "use of humans as batteries" thing wasn't really "the main principle of the movie", except at a very shallow plot-element level. As for the silliness, I got the impression that it wasn't supposed to be just for electricity -- there was at least some attempt to "explain" that there was some mystical property of human nervous systems that the machines needed. On the other hand, this is an even more unfortunate crutch that a lot of mediocre science fiction falls back on: they tend to punt on the question of Strong AI by saying that the intelligent machines aren't regular computers after all -- they are based on some different futuristic technology, e.g., a "positronic brain", a "holographic matrix", or whatever the pods were supposed to be sucking out of the humans in this movie.

    --
    [1] He could have also just liked the effects, but then what's to disagree about? The reviewer acknowledged the cool effects but had different priorities.

    [2] Which may also be true -- there are really three levels on which to understand it: thinking the ideas are old hat and seeing how much better it should have been (me), lacking that context but at least comprehending what was there (ClayJar), and thinking it was all horseshit because it went totally over your head (the review).

    David Gould

  9. line-of-sight bridges? on Free Wireless For Fun And / Or No Profit · · Score: 4


    I know this is talking about short-range omnidirectional signals, but it also gets me thinking about how it could possibly be used in conjunction with longer-range line-of-sight systems as bridges between these "pockets of packets", making the party even bigger. I don't know much about such systems -- the equipment would almost have to be much more expensive, but just how out-of-reach is it? Wasn't there a story a while back about some people "recycling" satellite dishes from a defunct TV service for such purposes?

    For example, my house is in the Hayward hills above the San Mateo Bridge and with a view across the Bay of downtown San Francisco. If any of the people involved in this over there have a corresponding view, maybe we could set up a pair of directional antennas and bridge me in (drop me a line if interested). I can also see a lot of Hayward, San Leandro, and Oakland, so if there are any more LAN pockets there, then with another pair of antennas, I could serve as a bridge between them and SF. It's even possible that I could see someone in or close enough to Berkeley to form a chain between SF and the UCB campus, which is when it would get seriously cool.

    David Gould

  10. Re:Actually.. on Data Mining And The CIA · · Score: 2


    Also without bothering to RTFA, I'll repeat Paradise_Pete's question: Do you know what a neural net is?

    You see, as I assume was his point, "computer chip neurons" work differently from central processing units, but not from the "data structure neurons" that can be trivially implemented in a program running on a "regular computer" to simulate the exact same neural net. The fact that they did it in hardware is interesting in its own right to someone interested in neural net research (I'll probably go read it later), and perhaps the speed factor is so great that a software version couldn't run in real time (which I guess could be what you meant) or would require an astoundingly powerful and expensive conventional computer in order to do so, but there is nothing special about "computer chip neurons" that in principle prevents the same thing from being done in software on a "regular computer".

    Maybe this truly "doesn't run on regular computers" simply because they haven't implemented such a sofware-based simulator, but that's very different from implying that it's based on some kind of exotic technology that a Von Neumann machine is fundamentally incapable of duplicating, which is what it sounded like you were claiming and which is probably what Paradise_Pete objected to (and was wrongly punished for).

    David Gould

  11. Re:Hehhehe on The Ultimate Destination of Banner Ads · · Score: 2


    Ok, it REALLY hates fake HTML tags [...]

    Technical difficulties prevented me from posting this Friday evening; it's not like anyone will actually read it now, but...

    I see others have already posted about how to escape special characters, but my take on the logic behind the "Plain Old Text" formatting option might still be of interest. Anyway:

    <EXPLANATION>
    You'll find it likes them better if you escape the '<' and '>' characters with "&lt;" and "&gt;" (and '&' is "&amp;"), assuming you're using the "Plain Old Text" mode, which, except for inserting a <BR> for each newline and filtering for forbidden stuff, inserts the text that you type directly into the generated page. Thinking about it that way makes it clear (in my opinion) what to expect it to do, though a lot of people seem to feel that it is exactly backwards because they expect the name "Plain Old Text" to refer to the results that they will get (i.e., tags not evaluated) rather than the mechanics of the page generation. Just keep thinking about it in terms of the HTML source -- special characters like angle brackets and ampersands will have the same meaning as if you were just to type everything into a text file "mycomment.html" (inside of the "<HTML><BODY> ... </BODY></HTML>" tags, of course) and drop that on your browser -- and you should have fewer surprises. Oh, and Preview, too.
    </EXPLANATION>

    David Gould

  12. Re:Military methods on How To Really And Fully Wipe A Hard Drive? · · Score: 2


    The version I heard floating around was a somewhat urban-legendish-sounding story of <some vendor, possibly Norton> trying to sell <some product, possibly "wipedisk"> to <some security-paranoid gov guys, possibly the military, Lawrence Livermore Lab, etc.>. The military (or whatever) guys listened politely to the vendor's pitch, then said "That's nice, but let me show you how we destroy classified data..." and led them over to where they had set up some sort of guillotine thing, put a drive in, and chopped it in half; the message was "we don't need no steenkin' software -- if it's important, we can afford a new drive"; the vendor was suitably chagrined, etc...

    Of course, the guillotine thing wouldn't be nearly as effective as the various other versions already posted (acid bath, thermite, etc.), which for that reason sound much more probable, but it's interesting that someone would have said it that way -- I guess to the less-imaginative, the guillotine makes an easier image (embellish the story with loud noises, pieces of platters and arm assemblies flying around, etc.) To me, the acid bath / thermite sound more impressive, but maybe it takes a little more sophistication to visualize. The embarrasing-the-vendor part seems extraneous, especially as it assumes the vendor would have failed to know better.


    David Gould

  13. Re:Misdirected hostility on IBM, TrollTech Integrate Linux Voice Recognition · · Score: 2


    Okay, time to clean up Emacs' auto-saves...

    % rm *~
    *~ not found. Assuming you meant "rm *"
    %


    ...hmm, I guess there weren't any auto-saves.

    % ls
    %


    Hey, where's my code?

    According to the story as told in the Jargon File, DWIM actually stands for "Damn Warren's Infernal Machine", at least in the opinion of the victim of such an accident, who then wanted to tie the author to his chair and enter the same command on his workstation. Twice.

    David Gould

  14. You didn't already know that? on DVD Case Follow-Up · · Score: 5

    The DMCA essentially allows corporations to create new laws on their own.

    I think there are two major points that most desperately need to be pushed in attacking the DMCA:

    First, it is vital to make the logical connection between banning the means to do something and outlawing the action itself. As I recall from reading the law (IANAL and I am not looking at the text right now, but I read it fairly carefully a while back), the prohibition against circumventing access controls does explicitly provide an exception for circumvention to enable non-infringing uses, i.e., "fair use" rights specifically override it. However, the prohibition against distributing circumvention devices recognizes no such exception, leaving the average would-be exerciser of "fair-use" rights in the Kafka-esque situation of being allowed to do something but not capable of it.

    "They" are trying to get away with making the action effectively, but not technically, illegal. The point that needs to be made is the effect of the following logical progression:
    • If an action is possible only through the use of a certain tool, then only people who possess such a tool can do it.
    • If only a very few people have the skills to create such a tool, then the only way anybody outside that group can do it is by getting the tool from someone else.
    • Hence, if distributing the tool is illegal, then the action itself becomes effectively illegal for all but that small group of people.
    The point is that the exception for non-infringing uses needs to be extended to distribution (which I guess would be meaningless, since Eric Corley has no control over what I do with DeCSS after he gives it to me), or, conversely, to show that the exception where it is (presumably put there as a concession to Constitutionality) is "effectively" useless.

    This is all regarding the question of distributing vs. possessing something like DeCSS. From what I've gathered, nobody is being sued for possessing it, because they know as well as we do that that is not illegal, even if they try to spin it that way in the media. The other point is the observation that, if allowed to stand as is, the law, as you said, essentially allows content providers to write their own laws. As we've already established that the "fair-use" exception is no help for practical purposes, the effect is clearly to make it so that the technical measures that the provider implements (which, worse yet, are not even bound by any pretense of Constitutional limits) dictate what a user can and cannot do -- the fact that he may circumvent the controls under certain circumstances makes no difference unless he is capable of doing so, or unless Kafka is making the rules. By a similar line of reasoning as above, this means that the provider's decrees effectively become law. Since corporations are not part of the elected government, they should not be given legislative powers.

    David Gould
  15. Re:Odds... on Reflections on Challenger · · Score: 2


    I think Kimble has it right (at least that's the same answer I got, for whatever that's worth). It's just worded confusingly because there are two kinds of "failure" here: single-wire failures, which are scary but harmless individually because of the backups, and system failures, which make the ship explode. Each line gives the chances of that wire failure not causing a system failure.

    Say you're going to select four wires to cut randomly and want to compute the chances of any two of them being from the same pair, i.e., being each other's backup, i.e., ruining everyone's day. This is all assuming that four is the number of wires that will have deteriorated, which I guess is based on the observation that that is how many had deteriorated in the other ship under whatever conditions caused it. You could also do this for more values and take a weighted sum based on a pretty safe assumption of the distribution of that number (the Laws of Large Numbers kick in way before 6000) and get a pretty similar result. Anyway:

    There are 6056 out of 6056 ways to choose the first wire safely, because it's the first one, so its backup must still be okay.
    There are 6054 out of 6055 ways to choose the second wire safely, because there are 6055 left and one of them has no backup.
    There are 6052 out of 6054 ways to choose the third wire safely, because, assuming you get this far, there are 6054 left and two have no backup.
    There are 6050 out of 6053 ways to choose the fourth wire safely, because, assuming you get this far, there are 6053 left and three have no backup.

    Multiplying these all together gives the chances of making it through all four without hitting both of any pair. Cancelling the 6056es and 6054s, I get 36614600/36650915 =~ 0.99901. (Ironically enough, I also used my Pilot, proving that it wasn't the writer's Pilot that failed him, just his math skills) Anyway, one minus that makes about one chance in a thousand of bad news, which is still pretty good, but not as good as some others have said, and probably not as good as you would hope for.

    David Gould

  16. Re:Stupid website design, but Netscape don't help on Will Browser-Neutral Web Soon Become Thing Of Past? · · Score: 3


    It's that they willfully decided they were going to break IE compatibility by not supporting document.all in favor of (the correct) document.getElementById().

    I haven't really followed all the details of these "standards", but I'll take your word for it -- you sure make Mozilla's position sound wrong. A solution just occurred to me: I agree that they should add support for this (and, I assume, other analogous things), but if they want to do it "with attitude", they could do like OmniWeb, which has a Preferences panel with a label reading "Features" with the quotes included in the label beneath an icon that is a picture of a bug (a fruit fly, it looks like). In this panel, they give checkbox options to turn on the various "nonstandard features", but the label and the icon (especially in combination) never let you forget the old programmers' joke about "feature" being a euphemism for "bug". Programmers, at least, would get it, as well as almost anyone who has spent any time around them.

    It lets them keep a "holier-than-thou" attitude about standards-compliance without impacting their functionality. They could turn them off by default in the "Mozilla" builds and on in the "Netscape" releases or even, if they have the balls, leave them off in the "Netscape" releases too, but with a prominent help message to make people aware of the issues (with the proper spin) by explaining that "For viewing sites designed with certain non-standards-compliant practices, you may wish to select options to support these practices in the 'Features' Preferences panel."

    David Gould

  17. Re:common misconception on The Object Oriented Hype · · Score: 2


    A good solution in C isn't quite as simple as you described. Specifically, your circle is described by parameters top, left, bottom, & right. Not only is that an inefficient way to describe a circle, it is ambiguous for other simple shapes (e.g., two different ellipses can have those 4 parmeters be identical). So, to do it "right" in C, you'd have to do something like having your shape structure hold a pointer to another structure that holds the shape parameters.

    First, let me mention that I had originally included a line "//..." after the "members" and "methods" declaration lines in the struct, to indicate that more would go there, but Taco's so-called "lameness filter" once again demonstrated its own lameness by tagging them as "junk characters", so I had to take them out to post it.

    I don't disagree with you much, but my example still deserves some defense. It may not be a good (efficient or even sufficient) way to describe geometric shapes for mathematical purposes, but it is good for objects that correspond directly to stuff that is to be drawn to some output device. Most 2D graphic toolkits I've seen have a DrawOval() function with exactly the same interface as DrawRectangle(), i.e., they take a Rectangle (struct or individual coordinates), and disambiguate the ellipse by using the one with vertical and horizontal radii. Even if the rectangle coordinates have nothing to do with the specific shape, they are needed because the code that manages the shapes together generically will need to know each one's bounding rectangle, so this information is universal to all shapes. In OOP terms, it would be in the abstract base class; in non-OOP syntax, it would be in the struct as I have it, along with (as you say) a pointer to another struct with any additional (you didn't say that) shape-specific information, which would have gone in the place of my lamented "//...".

    Note the phrases "In OOP terms" and "in non-OOP syntax" -- this gets back to my main point about OOP as a way of coding vs. OOP as a way of thinking. It's not just (as we all seem to agree) that you can do OOP without the syntax by using some (admittedly, increasingly awkward) techniques. I'm also claiming that there's not (necessarily) anything special about "OOPy" code at any level. In some sense at least (I just seem to keep adding that disclaimer everywhere) OOP is in how you think about it, no matter how you implement it, or even whether or nor you implement equivalent techniques at all. Even if you don't use the tricks we have been discussing with structs and function pointers as substitutes for OOP syntax, your code could still be called "object-oriented" as long as it is structured around entities or things with behaviors and interactions that model stuff, which will probably happen to some degree whether you think about it in those terms or not.

    David Gould

  18. Re:common misconception on The Object Oriented Hype · · Score: 2


    I did, just maybe not carefully enough; I guess you did say that, after all. You gave the classic "Draw() method for abstract class Shape with concrete subclasses Circle and Square" example, and claimed at the top that it was something that "With the structure+procedure approach, [...] would have to be [a switch statement]" Following that, the last sentence seemed to be claiming polymorphism as a virtue of OOP over C. Rereading it, though, I see that it sounds more like you are acknowledging that polymorphism can be done without explicit language support, which was also my point. If that's right, then sorry.

    Mainly, I was looking for a good context in which to make the point of my last two paragraphs, namely that OOP is a bigger concept than a feature set of any language. In fact, I still have trouble with your initial argument that:

    According to your definition there's no difference between procedural programming with good practices such as data encapsulation, and OOP. But there IS a difference... an object is self-contained.

    We've already covered methods (explicit and otherwise), including polymorphism, and you specifically mention "good practices such as data encapsulation", so what else does "self-contained" mean? Will it still be anything that a good C programmer doesn't (or couldn't) already do anyway?

    What I'm trying to say is that programming in an OO frame of mind does not necessarily require any particular language, language construct, or even programming technique (see my claim that even the version with the switch statement is in a sense OO).

    David Gould

  19. Hammers, nails, screws... on The Object Oriented Hype · · Score: 2


    I've always liked that saying (in various wordings):
    "If you give someone a hammer, problems will all start to look like nails to him."

    To really drive the point home, I like to add:
    "...and what would he do if given a screw?"

    There's also a response that I came up with once when a friend and I were talking about the coolness and power of some particularly cool and powerful Lisp-related thing (lest my previous post and/or my sig make me seem like just an old-fashioned C hacker):
    "A sufficiently powerful hammer can turn any problem into a nail."

    David Gould

  20. Re:common misconception on The Object Oriented Hype · · Score: 2


    With the structure+procedure approach, the code would have to be...
    [sample switch statement which really isn't that bad, either]

    Oh, yeah?

    typedef struct Shape {
    //"data members" (scare-quoted because it's not really a class)
    int top, left, bottom, right;

    //"methods" (scare-quoted because it's not really a class)
    void (*Draw)(struct Shape *s);
    } Shape;

    void DrawCircle(Shape *s);
    void DrawSquare(Shape *s);

    int main(int argc, char **argv) {
    Shape s1, s2;
    s1.Draw = DrawCircle; //s1 is a Circle
    s2.Draw = DrawSquare; //s2 is a Square
    //set other fields

    s1.Draw(&s1);
    s2.Draw(&s2);
    }

    See the difference? The function pointer makes the struct just as polymorphous as a class would have been. Sure, the extra argument is not as nice aesthetically, but you can't think it makes that much difference. Yeah, yeah, OOP has more powerful features, like inheritance (make the second struct have an instance of the first as a member and refer to its fields explicitly) and mulitple inheritance (being forced to refer to inherited fields explicitly might actually make things clearer to someone trying to figure out what function -- sorry, method -- is being called), but for many purposes, you can do what you really need without it. OO languages provide syntactic sugar to make OOP more convenient, but those constructs are not essential to the idea of OOP; applying OOP concepts without them is just more tedious.

    Even this misses the point, though, if you ask me (not that you did, but let's pretend): I would contend that even your switch statement example is object-oriented "in spirit", even though the code is not, because it is still designed around program entities representing things: there is an abstract concept of something called a "Shape", that concept is extended into concrete things called "Circle"s and "Square"s, and there is an action "Draw" associated with Shapes. OOP syntax has only a little bit to do with OOP design. If your program is designed around entities (whether they are implemented as plain structs, fancy structs with implicit function tables [i.e., classes], data-driven tables, or whatever else you can imagine) that represent the concepts and/or things that the program is intended to deal with, then the design is, at least in some sense, object-oriented. You can call it "structure-oriented" or "thing-oriented" if you want, but really, what's the difference?

    I tend not to think of OOP as necessarily a language feature (though it can be, and in some cases is very useful as such), or even a design methodology (though it can be, and in some cases is very useful as such), so much as a way of thinking about code and how it relates to and reflects the real world. In that sense, almost anything you could possibly do (with some exceptions) will share some of these concepts, even without being directly "object-oriented".

    David Gould

  21. Re:no more on Non-banner Ads Coming to the Web · · Score: 2


    What would be nice is a more advanced mechanism for handling Javascript, such as a global on/off option and a list for specifying which sites shouldn't be processed by that filter.

    I see people have already mentioned some browsers that do this. Just to add to the list, OmniWeb, which is included in a depressingly-crash-prone-but-still-very-nice beta version with the Mac OS X Public Beta, has some really good site-based permission features for cookies: when a site tries to set a cookie, it presents a dialog asking: "For {[radio buttons] 'just this once', 'all cookies from this site', or 'all cookies'}, do you want to {[buttons] 'accept', 'reject', or 'accept but don't save'} this cookie?" The 'all cookies from this site' option lets you build up both a "white list" of sites (Slashdot and whatever shopping sites you may use) whose cookie use you consider legitimate and want to allow, as well as a "black list" of sites (every ad server I've seen yet) whose cookies are to be rejected, plus a list of in-between sites (those that refuse to work without cookies, but that you don't want to allow) that you can accept for the duration of a session but then discard. You can also use the 'just this once' option if you don't want to add a site to any list, or the 'all cookies' option if you want to set a global action and not see the dialog anymore.

    This gives you a pretty powerful interface for controlling your cookies without even having to go to a preferences panel (which also exists, to let you manage them all together). I wish it would do something similar for JavaScript, but the closest it comes is an option to {[radio buttons] "allow", "not allow", or "allow in response to user action"} creation of new windows, separately from completely disabling JavaScript.

    David Gould

  22. Re:There is already prior art - maybe so? on CDDB Joins The Bad Patent Club · · Score: 2


    If I read that right (could happen), it's talking about the technique of identifying an audio CD by matching the list of track lengths, which a) is necessary because (I guess) the audio CD format doesn't contain any other identifying metadata, and b) is nearly-enough unique across albums to provide a pretty good fingerprint of the album. Is that a fair translation? If so, then regarding:

    I can't recall anyone using this method on CDs/DVDs before CDDB.

    What about Apple's audio CD player software, which I believe came pre-loaded on my first Power Mac (a 6100/60 purchased in 1995)? That program has a window visually resembling a CD player's control panel, and beneath that, a CD title field and a list of track title fields. Initially, those fields say "Audio CD 1" and "Track 1", "Track 2", etc., but they are editable, allowing you to type in the information from the CD case. The application stores this information in a database, so that when you next insert that same CD, after having ejected it, done something else, etc., it recognizes it and displays the information as you had typed it. I don't know for sure, but I have always assumed that it did it by associating the user-defined information with some unique information -- probably the track lengths -- from the CD.

    If I'm right that that's how they do it, then it would appear to constitute prior art, no? As far as I can tell, the only new things about CDDB are doing it over the internet and combining entries from many users, so they don't each have to enter the information by hand the first time.

    Also, even if Apple didn't use exactly the same method to identify the CDs, I can honestly claim that it was the first solution that occurred to me when I first thought about it. That it, when I first noticed that the progrm had that feature, my thoughts went something like: "Hey, it remembers what I typed for this CD before! I wonder how it managed that. I know the CD itself doesn't contain the information, or why would I have had to type it the first time? It must have saved what I typed and associated it with some unique identifying information that is on the CD. It's probably keyed on the vector of track lengths -- that's not guaranteed to be unique, but an exact duplicate seems pretty unlikely. Clever." If it occurs immediately to a first-year CS student, which I was at the time, doesn't that qualify the technique as "obvious"?


    David Gould

  23. Like I told the guy... on The Reactionless Space Drive? · · Score: 2


    ...in my dorm back in school who was in shock after his girlfriend had broken into his room and cleaned it. He was taking it pretty hard: "She cleaned my room..." "I can't believe she did that..." "I can't find anything..."

    "Mike," I said. "Remember: for every action, there is an equal and opposite reaction..."

    Anyway. The idea of using a railgun as an engine is that you'd use it to fire slugs backward, while the reactive force accelerates you forward. As you said, that's just the standard rocket principle, with the slugs as your reaction mass. You're probably right that it wouldn't be particularly efficient compared to a chemical rocket, but it does have the interesting feature of being a way to turn electricity into propulsion, which might be nice if you have cheap electricity. Possibly solar (like the ion drive, which as I recall does basically the same thing with a particle accelerator) or nuclear (how would this compare to just using the plasma directly?)

    It might also let you fine-tune the mass/speed tradeoff more optimally -- with rockets, not only do you have to carry the fuel / reaction mass that you'll be using at each part of the trip for all the preceding distance, but most of the energy that you use goes to accelerate the reaction mass backwards instead of you forwards, right? The same force acting over a larger distance means more work done on the reaction mass. That's why a gun's recoil against your shoulder hurts less than getting shot.

    This article seems to be talking about either using a magnet to push against a larger magnetic field, which makes sense, but isn't particularly new, or else some new phenomenon that actually breaks the equal-and-opposite-reaction law, which sounds far-fetched, though I've never claimed to be a physicist (I just play one on Slashdot).

    David Gould

  24. Region-specific addressing on Phone Numbers Instead of URLs? · · Score: 2


    First of all, by the time I'd loaded the page, I'd already mentally composed the obligatory joke about how maybe this could be supplemented by a global directory system that would associate names with the numbers, so you wouldn't have to remember them; it could even be built into the applications, so you would just type the name and have it automatically look up the number... but I see it's been done too many times already.

    Your first point (Local businesses that just want to use their website to advertise a storefront rather than be an e-business) is interesting, though, in that this problem has been one of my biggest gripes all along. Most of us seem to agree that DNS is suffering under the "pollution" of the "com" TLD, which is even spilling over into "org" and "net". I think a large part of the problem is the fact that these global domains flatten everything into a single namespace, which is ironic since DNS' original solution to the namespace problem was to make it hierarchical.

    If a local business just wants to advertise in its area, why should it have to have a unique name in a flat global namespace? It then has to hope that its name has not been "taken" by a big company, a more-ambitious startup, another local business somewhere else, a porn site, etc. This leads to the crowdedness which has given us the "aridiculousnumberofwordsconcatenatedtogether.com" domain names. It's bad enough with all the startups, but at least the local businesses shouldn't have to be in the same fray -- after all, it's okay if another small business with the same name exists somewhere far away, until now, that is.

    Even among the startups, there are lots that are geographic-region-specific -- they even specifically advertise the fact that they concentrate their service in that area (supposedly making it better than the others whose efforts are spread so much thinner). And yet, they use the same global namespace, making their names even messier by mushing the region in. I've lived here all my life, but I'm not arrogant enough to think that the San Francisco Bay Area is the only area in the world near a bay who residents call it "the Bay Area", and yet we have "bayarea.com".

    I've always thought we should use the existing country and region domains for things that are region-specific. Then, "bayarea.com" could be "bayarea.ca.us", "bajobs.com" could be "jobs.sfba.ca.us", and a little mom-and-pop store in Berkeley could be "mom-and-pop.sfba.ca.us" or "mom-and-pop.berkeley.ca.us" without having to worry about collisions with "mom-and-pop.nyc.ny.us", etc. The argument is, of course, that people have been conditioned to think that "website" is synonymous with "something dot com", and would be afraid of anything with more than one dot. I don't know that that's true, though: people can understand phone numbers with area codes, postal addresses with ZIP codes, etc., and I think most would automatically recognize their region code as being analogous, so if local sites advertised with it, it would begin to seem natural. For some reason, though, they are not popular. What makes this phone-number thing interesting is that it puts a novel spin on the idea, which could poularize it, even though it's not really any better.


    David Gould

  25. Re:Predecrement ??? on Intel Says No SMP Support For Pentium 4 · · Score: 1


    Well, my sig contains a preincrement, but the "++i" is not meant to be interpreted as an elitist assertion that "I am assigned a higher value" or anything like that -- it's just the way the program works. Sorry for any confusion.

    David Gould