Slashdot Mirror


User: CDarklock

CDarklock's activity in the archive.

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

Comments · 552

  1. Re:Danger Will Robinson, Danger! on Open-source Licensing: BSD or GPL? · · Score: 2, Insightful

    One of the questions we need to ask ourselves is what our goal really is. Are we trying to develop useful code to help people (BSD/MIT), or are we trying to make other people develop useful code to help us (GPL/LGPL)?

    One of those goals doesn't sound very much like freedom. If we're going to champion freedom for software, including a convenient pair of shackles in every project looks a little suspicious.

    The problem with the GPL is that it doesn't work on anyone except a developer. It says "if you want to use this code to complete your project, you must release the source to that project". The alternative is to develop your own code, which takes a lot of time, and the developer doesn't want to spend that time on something that has already been done.

    From a commercial perspective, that license also says "this code has commercial value; if you develop your own code, you can sell it". So the natural business response is to identify the value of the code to the average project, multiply by the number of projects expected to need this code, and subtract the expected cost of developing a commercial replacement to give an anticipate revenue stream:

    V * P - C = R

    Then you compare this to using the GPL code. The business benefit comes when the value is greater than the anticipated revenue, or:

    V > V * P - C

    Reducing and simplifying:

    C > V * (P - 1)

    In other words, for the commercial interest to release its code, the cost of development must exceed the value of the code to all other projects that might use it. But the open source community uses roughly the same metric to decide what code to write, so this is virtually never true.

    The end result is that useful GPL code is most often used in the business world to identify a new market niche, not to contribute to the community. The BSD license may allow commercial interests to use and not contribute, but it *doesn't* inspire the commercial sector to directly compete with the open source code, and it *doesn't* encourage commercial users to seek commercial alternatives.

    Sure, people will get bitten. But the demand that people contribute back NOW is short-sighted, every bit as much so as building a commercial project instead of an open source project. The best long-term benefits are realised with a truly free license, not a semi-free backscratching arrangement. The BSD license allows the benefits of open source to speak for themselves, and they are very convincing in the long run.

  2. Gay/homosexual on Sun's COO Distorts Free In Free Software · · Score: 2, Interesting

    I actually researched this once. In the early 1960s (1963?), the heterosexual community had largely figured out that "queer" meant "homosexual" and started using it as a slur. So in a weird sort of grassroots movement, homosexuals began referring to themselves as "gay" instead. I believe the term started in New York, although I could be wrong; I have a nagging doubt saying it was Chicago, and another saying "everything gay comes from San Francisco". The latter is almost certainly wrong.

    The primary purpose of choosing the new term was to allow homosexuals to discuss their lifestyle in the presence of heterosexuals without identifying themselves as homosexuals. The moral propriety of this intent is left as an exercise for the reader.

    Insert the usual soapbox lecture about subcultures co-opting words and refusing to let them evolve naturally without that subculture's approval of the evolution. You've heard it before, pretend I said it again. While you're at it, pretend it was really smart and convincing.

  3. Re:New name for free as in freedom or free as in b on Sun's COO Distorts Free In Free Software · · Score: 4, Funny

    I suggest we use "gay". Here's a good slogan:

    "SOFTWARE FREEDOM IS GAY!"

    That way, the gay software movement can encourage people to make their software gay, too. When people ask you what you do, you can say "I'm a gay software developer".

    Come on, it would be funny. Let's start a petition.

  4. Re:What was interesting on Supreme Court Rules against Grokster · · Score: 1

    Well, after you smoke enough, you can't be bothered to grow anything. So in the end, people who DON'T smoke will get rich off the people who DO smoke... just like now. Yeah, the fry cook probably smokes weed, but chances are the district manager doesn't.

    Marijuana makes illegal aliens out of our own people. They're not doing anything really wrong, but they don't want to get caught, so they'll suffer all kinds of indignities and abuse without going to the authorities. And that's how you run a sweatshop on American soil: you use people who are too afraid to tell anyone what goes on.

    And in my book, if you're outside the law because you wanted to get high -- you deserve it. I'll happily go to bat for the illegal immigrant who ran screaming from his shithole of a country in the hope of finding some small bit of happiness in America, and I think anyone who exploits his desperation for profit should be shot. But pot smokers? Shut up, take another hit, and get your ass back to work. Be glad we pay you at all.

  5. Re:Dammit! on Wil Wheaton Strikes Back · · Score: 1

    It was always my understanding that a good player was a card sharp, while a *cheat* was a card shark. Same with pool. Play well, you're sharp; hustle the crowd, you're a shark.

    In retrospect, I do not really know where I got this idea, and it's probably just something I made up in my youth while trying to make sense of things. I know I'd heard both terms used, and I figured there had to be some difference between the two, but I don't recall asking anyone or looking it up.

  6. Re:Finding it hard to get upset on BnetD v. Blizzard Suit Moves Forward · · Score: 1

    This is ABSOLUTELY the wrong battle, because the BnetD developers have clearly *not* operated in good faith. They have not exerted even *minimal* effort to preserve the anti-piracy measures of Blizzard's games.

    The technicality they have introduced -- that they don't know how to validate a CD signature to ensure it is a true Blizzard CD key -- would hold water IF they had done what they *knew* how to do: verify that the serial LOOKS valid, and is not already in use on the network. Their failure to do even this much is fairly damning evidence that they not only did not exercise due diligence in discouraging piracy, but they actively chose a development path which permitted it. The project has *always* had a certain "grin-grin-wink-wink" attitude on the question of piracy, anyway.

    This case was never decided on the reverse engineering question or on the EULA provisions. It was decided purely and simply on the grounds that the BnetD developers deliberately chose not to implement ANY anti-piracy measures on their system, which is the primary distinguishing feature of the network, which is *blatantly* in violation of the DMCA. The appeal doesn't really mean anything in terms of reverse engineering, because the appeals court will take the same course: BnetD is unconscionable due to its lack of antipiracy measures, so the question of reverse-engineering is irrelevant.

  7. Re:The Difference is the Fans on Neal Stephenson on Star Wars in the NYT · · Score: 1

    Some people are able to both enjoy the movie for what it is, and tear it apart later.

    I liked ROTS. I enjoyed it. But I do not by *any* stretch of the imagination consider it a good movie. Many much smarter people have explained why ROTS is a bad movie or doesn't fit in the saga, so I won't belabor the point. But you know what? Who cares! I HAD FUN. So maybe it doesn't get on my list of "really good movies". Big deal. Not every movie needs to be there.

    I still had fun. And when I compare that to the alternative of bitching and whining that it wasn't the most fun I've ever had... I'll take what fun I had, and be happier for it.

  8. Speaking as an open-source agnostic... on Converting Users to Open Source- Why Do You Care? · · Score: 2, Insightful

    Once, Nasrudin was presiding over a court case. "First," he said, "I will hear the plaintiff."

    The open-source plaintiff stepped forward and said, "You cannot trust a heartless and soulless corporation to care about your needs!"

    "I believe you are right!" cried Nasrudin.

    The closed source defendant objected, "You haven't heard our side of the story yet!"

    Nasrudin nodded. "Then let us now hear the defendant."

    The defendant stepped forward and said, "You cannot trust strangers to help and support you out of the goodness of their hearts!"

    "I believe you are right!" cried Nasrudin.

    The bailiff coughed, and said "Your honor... we can't decide the case if they are BOTH right."

    "I believe you are right!" cried Nasrudin.

  9. Re:Not enough options in most games today... on MMOG Market Mutterings · · Score: 2, Interesting

    > For any MMORPG to really succeed in keeping
    > it's fanbase happy it will have to have
    > constant expansion.

    I suggest that in order to force the playerbase to progress, the world must not only constantly expand, but constantly be destroyed. If you don't kill off the old areas, people get bored with them.

    If the world could be generated algorithmically, and areas could "expire", previously expired areas could be resuscitated at later times and reused. Consider your average text MUD: instead of having 400 areas, have thirty, and every day just remove the oldest and tack in a new one. It would take slightly more than a year for an expired area to reappear, at which time it would be new and interesting again. Couple this with a system where everyone can adventure in the same areas (instead of having level-based difficulties), and it could keep people engaged for a very long time.

    Just an idea.

  10. Re:Shadows in the shadow world on Longhorn Beta is Disappointing · · Score: 1

    > every single one of us, to a man,
    > would be ashamed to show something
    > like that in public.

    You know, the Microsoft approach reminds me of children doing cool things for the first time. "Hey! Hey, lookit! See, you click this... and that happens! Hee hee!" *claps hands* "Wait, wait, watch this! Lookit!" *click* "Isn't that COOL?!"

    Hey, call me simple, but I *like* that. When some Linux jerk comes out and starts puffing up his chest about three years of uptime, he's just a jerk. When some Apple jerk comes out and starts gloating over how Apple did this first and that first and it's so much prettier, he's just a jerk. And, yes, when a Microsoft jerk comes out and says Microsoft makes bunches of money so they must be right -- he's just a jerk.

    But Bill and his posse aren't jerks. They're geeks. They think this is cool. And I like that.

  11. Re:Even more annoying... on Comments are More Important than Code · · Score: 1

    > Ive come to the conclusion that introductory
    > programming courses are taught all wrong.

    I've always thought the best way to teach such a course would be to group your class into three or four teams, and give them a REAL APPLICATION to write, with a bonus of some sort for the best program.

    Then, two days before finals, cancel the project and give them a test on something unrelated to it. Don't grade it, just start everyone with an A and deduct points for whining...

  12. Re:Apple and Microsoft have different ideas here. on Brief Tutorial on Reverse Engineering Mac OS X · · Score: 1

    > They changed it on us by reversing
    > the order of all parameters. That's
    > adding insult to injury.

    IIRC, I had this problem with VB routines: VB passed and handled parameters in the opposite order, so if a VB routine was rewritten in C++ (or vice-versa, if you were crazy) the parameter order would reverse. I also seem to recall Microsoft eventually bowed down to the de facto standard and changed VB to handle parameters in the same order as most other languages.

    So I wouldn't attribute this to any malice on Microsoft's part, but maybe you know something I don't about this particular situation. Microsoft *has* engaged in some awfully petty crap.

    > Also untrue.

    I won't pull Gödel out of my pocket on this one, but the fact is that every O/S will do interesting and useful things if an application interfaces with it in unexpected ways. Since these ways are unexpected, they cannot be documented -- but since they *are* ways for an application to interface with it, they are APIs.

    It is worth noting that while the truly brilliant is inevitably unexpected, the unexpected is almost *never* truly brilliant.

    > Your statement is trivially true, but
    > not very profound.

    Which is precisely what confuses me about this conversation. If it is true, what is the problem? Do I need to say it in some pseudo-zen fashion that makes people nod their heads wisely as though it is some vast cosmic truth? Sometimes things are just... simple. Profundity isn't always necessary.

    > This isn't because of a deficiency in
    > the first API, which is what you're
    > implying

    Implying? I'm outright saying it: undocumented APIs exist to fulfill special purposes for which the documented APIs are unsuitable.

    However, if you don't HAVE that particular special purpose, you don't need to mess with the undocumented API. And that special purpose is, in most cases, special enough to sound like a stupid idea: "This function creates a shortcut, calls the shell to execute it, then deletes the shortcut." If you know what you're executing, why not just call the shell directly to execute it? Why go through a temporary shortcut? WTF is the point?

    That's why it's undocumented. It would take a long time to explain, and you probably still wouldn't get it. Questions cascade into more questions, and next thing you know it's eight in the evening and neither of you got any work done. When you finally understand why it does what it does the way it does it, you'll realise exactly what we were saying in the first place by not documenting it: "You don't need this function. Use something else."

    For the unstoppably curious, using a shortcut serves as a semaphore. If another thread is running a program, the current thread can't overwrite the shortcut, so it can't run a second one. The purpose of this is to spawn multiple threads that run multiple programs, but guarantee that only one program runs at a time. If you think this sounds cool, stop: this mechanism does not guarantee IN WHICH ORDER the programs run. If it's important that they run in the order specified, you need to do something else. There also exist other problems and implications which are left as an exercise for the reader, because this post is already too long.

    I used this method to throttle database connections when I needed to have a solution running in twenty minutes. In the next release, I did something much more complicated, deleting the undocumented function altogether.

    Which is the real danger of undocumented functions; it's not just that they do something weird, it's that without the documentation, you have no contract that the API you're using is going to stick around. It's a Bad Idea to nail your app to something that uncertain, so if you have ANY choice in the matter, don't do it. Use documented, stable, reliable APIs.

    But sometimes you can't. ;)

  13. Re:Apple and Microsoft have different ideas here. on Brief Tutorial on Reverse Engineering Mac OS X · · Score: 1

    > So what you're doing it coming
    > from a Windows perspective and
    > trying to make intelligent and
    > topical assertions about the mac
    > development platform.

    Is this not a platform-independent question? Every O/S has undocumented APIs. They're undocumented for a reason, often because there are strange subtleties to their operation that are hard to understand. But they *exist* because someone needed to do something that they *couldn't* do under the documented API. Is the Mac somehow different? Why?

  14. Re:In a word, Don't. on Brief Tutorial on Reverse Engineering Mac OS X · · Score: 1

    > The difference is, if he's sticking to
    > supported API, help is available.

    Why, yes, that WOULD be the difference between "supported" and "unsupported". Why didn't *I* think of that? It's so... obvious.

    > I see some truly brilliant work on a
    > daily basis, from developers who are
    > sticking to published API

    I'm not saying you can't be truly brilliant *unless* you use undocumented APIs; brilliance can be achieved with any tools you have. I'm just saying that *sometimes* the documented and supported API isn't sufficient for specific goals. It's probably a lot easier to do something stupid with them than it is to do something brilliant, but there are times when it's *impossible* to do what you need without them.

  15. Re:Wow. Got ego? on Brief Tutorial on Reverse Engineering Mac OS X · · Score: 1

    > The mac development community is small.
    > We tend to notice who the major players
    > are. You sir, are not one of those players.

    That's true. I'm a Windows guy. But the statement holds: if you're pushing the envelope, the documented API doesn't always reach where you need to go. I would expect it's the same for Macs; it used to be.

  16. Re:The whole PIE thing really bugs me on Slashback: Pie, Election, Alarm · · Score: 1

    This is getting tedious.

    Let me spell it out for you. My company *used* to do web advertising. We never used popups. We never installed malware. We just wanted people to accept a cookie so we could gather data.

    Unfortunately, people were so reluctant to accept cookies, we couldn't gather valid data. We'd have twelve thousand impressions in a week, and only two hundred cookies returned. So no matter *how* much we wanted to cater to people's preferences, we didn't have the information to do it.

    We're not in the web advertising business anymore. We're not in the SEO business, either. We've had to retarget our entire company focus, because you can't succeed in those businesses *honestly* anymore. We won't conduct dishonest business, full-stop. Not gonna happen.

    So I have something of a problem with your position, because I *enjoyed* working in web-based marketing. It was fun. For a while, we could actually make decent money from it. But today, you don't make anything unless you're ready to operate in the multi-million impression range. That's where you start getting enough economies of scale that you can sell trash to idiots at random and make a profit.

    And blocking cookies doesn't hurt those people, because they don't care what you think *anyway*. Blocking the ads doesn't help, because they don't *expect* you to click; you're not their target market. So what you're doing DOESN'T WORK. It is never GOING to work. It just drives the honest companies out of the business. And that's sad.

    But if that's what you want, you go right ahead.

  17. Re:The whole PIE thing really bugs me on Slashback: Pie, Election, Alarm · · Score: 1

    > That presumes that my computer is a
    > democracy and that you and your
    > advertisers are citizens of it and
    > have votes.

    Nope. It presumes that your connection to my web site is a shared property, because you are on one end and I am on the other, and if either end is dropped the connection doesn't exist. Your end of the connection contains exactly one person: you. My end, on the other hand, contains all the people involved in the maintenance of the site. So you get one vote on how this connection is used, and we get several... but you still have the right to veto the entire connection at will.

    Your example is flawed, anyway, because there's no rational reason I couldn't turn it around and say every web site you ever visit has a vote over your browser. That would be clearly wrong, so your converse argument is probably just as wrong.

    > Let's say you run a stall selling apples.

    Bad analogy. We're not talking about passive failure, we're talking about active subversion.

    Let's say I make some lemonade, and an advertiser agrees to pay me for the lemonade by counting how many cups people throw away and giving me a nickel for each one. So I put up a sign that says "free lemonade".

    You come over with your *own* cup, and you fill it with lemonade. (This is an ad blocker that DOESN'T leave you counted as having seen the ad.) It's not illegal! I said "free lemonade". I didn't say "free lemonade in my cups but not yours".

    So I say "hey, you know, I don't get paid for the lemonade unless you use my cups; my advertiser counts the cups in the trash every day". You say "oh, I'm sorry, I didn't know" -- and you throw away a few cups. (This is an ad blocker that DOES count you as having seen the ad.)

    Not the perfect analogy, but somewhat closer. If you want the lemonade, someone has to pay for it, and if YOU don't want to pay for it -- you have to deal with the conditions someone *else* sets on paying for it.

    > You do not get to define the rules of the
    > game to suit yourself.

    I didn't. I defined the rules of the game as they currently exist: advertisers don't share information. They consider the information they have on who likes which ads to be a "trade secret", so each of them has to research and discover these things separately. Attempts to centralise -- most famously, DoubleClick -- have been met with suspicion at best and complete outrage at worst. So instead of having one election, we have a whole bunch of them.

    And while I sympathise with your decision never to vote in any election, and fully support your right to make such a decision, those votes still don't get counted. Installing ad blocking software isn't a vote, because by its very nature it can't register that vote with the advertiser. Standing up and screaming "I refuse to vote!" is not a vote.

    > I have no faith in cookies as a feedback
    > mechanism.

    It doesn't matter; they're the only feedback mechanism we have. We need to say "who are you?" and get something back that can be looked up in a database to figure out what ads will suit you best. Cookies can do that. What else can do that?

    > I'm not offering so much to change my
    > behavior as explaining how to craft an
    > advert in such a way that I will suffer
    > its presence on my desktop.

    Surely you understand that to gather this kind of information from EVERYONE is an overly large burden without automated response systems, right?

    But you've opted out of the automated systems. You're making things harder for the advertisers, and then complaining that they still haven't gotten it right.

    This whole thing is a massive Catch-22. The advertisers say "give us your information", the public says "what about our privacy?!", and the advertisers say "trust us!"... which obviously means you can't.

    My take: it will get worse before it gets better. We need to just bite the bullet and let the advertisers gather their data for a while, bec

  18. Re:Microsoft? on Microsoft Abandons Gay Rights Bill · · Score: 1

    Well, there's a reason "faggot Mac user" is a cliche, you know.

  19. Re:In a word, Don't. on Brief Tutorial on Reverse Engineering Mac OS X · · Score: 1

    People who push the envelope aren't readily supported by public APIs, because those APIs leave a substantial margin to prevent inexperienced developers from falling over the edge. Innovators who set out to achieve the truly briliant are all the way at the edge, looking over and getting ready to jump.

    Everything's relative. If you don't think it's small, maybe you're just not all that big. There's a lot of room to play in the OS X sandbox at first, but anyone worth his salt is constantly growing -- and will eventually outgrow the sandbox.

  20. Re:Apache 2 and PHP on Apache 2.0.54 Released · · Score: 1

    Saying a program is not thread-safe essentially means that it doesn't do the proper chicken dancing to coordinate its memory usage with other threads. This doesn't mean it won't work, it just means that you can't GUARANTEE it. Threads often interact in surprising and unexpected ways, and this can create some very strange problems that depend on the phase of the moon and are difficult to track down.

  21. Re:In a word, Don't. on Brief Tutorial on Reverse Engineering Mac OS X · · Score: 1

    This is wonderful advice for people who are only going to play in the little sandbox O/S developers give them. I like those people. I think everyone should go be one of those people.

    Why? Because the people who actually understand systems, who are capable of reverse-engineering the O/S to get at the functionality they want, who write software that does new and amazing things... those people are my competition.

    And while I believe competition is good for innovation, I also understand that a LACK of competition is good for my wallet.

    I find it terribly amusing as Microsoft opens more and more information up to developers, and the developers STILL cannot manage to fill in the huge gaping holes Microsoft leaves in Windows for extended periods of time. Why doesn't Outlook have a newsreader, for example? Outlook Express does. Any company could walk in and plug a newsreader onto Outlook, and if they do it well I'll bet that company will make a boatload of cash. But no one does.

  22. This is cool on Microsoft to Support Linux in Virtual Server · · Score: 5, Interesting

    Now that Microsoft has given the thumbs up to Linux on Virtual PC, I can slaughter one of the big objections people have to moving web servers off Windows: the developers don't have a Linux box on their desktop. Now they can install Virtual PC and set up a test environment there, which kills the problem and might get some Windows web servers off the net.

    Not that I have a problem with Windows, but it makes a really *bad* web server.

  23. Re:The whole PIE thing really bugs me on Slashback: Pie, Election, Alarm · · Score: 1

    > According to whom?

    According to the site's owner and advertisers, which outvotes *you* at least two to one.

    > For my ad blocking to be considered
    > theft, I would have to have made a
    > formal agreement.

    Not really. If you do something that costs me money, and you *know* it's going to cost me money, and I haven't agreed to let you do it, most legal precedents I've seen seem to be in agreement that you are in fact liable.

    Of course, nobody is going to sue you for two bucks, so it doesn't make much practical difference to YOU; it only makes a difference to the webmaster with thousands of people who *all* steal two bucks. But that's not your problem, is it?

    I have noticed a certain pattern where people who don't produce anything of value seem to believe that they should have free and unlimited access to anything *I* create, if they find it valuable. However, I propose that the time I spend *creating* something is more valuable than the time you spend *consuming* it, and that through the act of consuming it you necessarily place yourself in my debt. I also propose that while the give-and-take sort of evens out in the grand scheme of things among serious content creators, the vast majority of content *consumers* are not content creators at all, let alone serious ones.

    (After seeing your comment about insults, I feel compelled to clarify that the above is not a personal accusation, merely an observation of a pattern.)

    > One thing that seems beyond dispute
    > is that your argument has no legal
    > force.

    It's *legal* to take things out of someone else's cart at the supermarket, because technically it's still the property of the supermarket until they buy it. That doesn't make it right.

    > Unfortunately, not annoying people
    > doesn't see to be a high priority
    > with online ad agencies.

    The highest priority at ad agencies is to sell more ads, which they do by making better ads. How do they do this? Why, by tracking consumer response. Viewing ads and accepting cookies is how you vote, and if you don't vote, you can't complain.

    And since you don't vote, you're the most convenient place to dump garbage! Consider this: an advertiser has a contract to give five thousand ad impressions to a company that makes cool stuff, and another five thousand to a company that makes crap. Looking over the tracking cookies he sees, everybody hates crap, so he shows the cookie-accepting viewer ads for cool stuff. Unfortunately, he still has to show crap five thousand times... but luckily, here you come with no cookie! Maybe you *like* crap! We certainly have no evidence to the contrary, so you get to see a bunch of ads for crap.

    Believe it or not, advertisers WANT to make better ads, but if you don't tell them what's wrong... well, they can't fix it. That's how things work.

    > In fact unless you count personal
    > insults

    Where did you see a personal insult? I don't even *know* you.

  24. Re:The whole PIE thing really bugs me on Slashback: Pie, Election, Alarm · · Score: 1

    > If we accept the notion that time
    > is money, and my time is most
    > definitely worth money, then these
    > advertisers, by wasting my time, are
    > stealing from me.

    No, they're not. You *trade* watching the ad for using the web site, so you don't have to pay any actual money.

    But you're stealing from *them* when you use an ad blocker. Either they paid for something they didn't get (showing you the ad), or you DIDN'T pay for something you DID get (viewing the web site).

    Which is just like my example. Only instead of getting your WHOLE internet connection for free, you get little slices of it, and the cost is spread out among all the various people who operate web sites you like. So when you really think about it, you're hurting THEM, not the big bad advertiser.

    And besides, it's people like you that give the advertisers an excuse to make all the ads that waste MY time. They have to try so much harder to make their numbers, you know, because of all the ad blockers!

  25. Re:They have cracked strong hashes, huh? on Finnish Firm Claims Fake P2P Hash Technology · · Score: 2, Informative

    > Two 160bit hashes are prolly
    > somewhere in between as strong
    > as a 320bit hash and a 160bit
    > hash

    That's exactly what I'm saying. If the two hashes are completely independent -- zero bits of redundancy -- then you have a 320 bit hash. If they're completely redundant, you have a 160 bit hash. So the question is how independent MD5 and SHA1 are; if they're completely independent, then they combine to a 288 bit hash. If they're completely redundant, they combine to a 160 bit hash and you may as well just use SHA1.

    The birthday attack isn't really relevant to practical hashing, anyway. Hashes collide; that's why we use them. When you use 128 bits to represent two megs of data, there's going to be something else that has the same hash. The existence of multiple messages with the same hash is a natural, normal, and NECESSARY quality of a hash function.