Your entire question, well, sucks. If you think you can test at the end of a product cycle, you're smoking the kind of crack cocain that leads to things like this.
When you write a function for your program, you need to write a test unit that is in the debug project. How it will work is that you write some tests in which you take an input, perform the operation, and test the output versus a contstant answer. Have one of these for each case that it handles in the unit. That way, you can always compile the test unit and examine its output versus the constant known-good value. That's good software engineering practice.
What you're asking, well, is a joke. Nothing's going to save your project if you've been just adding functionality without QAing at each step to verify correctness.
hellbunnia asks "I work with a team of developers who spend most of their time adding functionality to code. While we enjoy just cramming more code onto a source tree, we really never test anything. But even if we tested it, I think we'd miss a lot of bugs because we have no design policy. It's a lot to be tested, and it's all interrelated! So my question is, does anyone have a quick and easy solution that will save us from rewritting things with a proper design?"
"I've read a lot of freshmeat listings for testing, but I've always assumed that they were merely 'Hello, World' programs because nothing beats real testing by real humans. However, as the amount of code grows, I've begun to wish that we wrote a carefully designed set of unit tests as we added functionality, rather than trying to magically make it all work 2 weeks before our shipping deadline. I'm hoping we have some magic QA program which will do everything for us, except actually fix our squirrely code.
Does such a thing exist, or should I start updating my resume? How fucked am I?"
"Video games are big business, and may eclipse movies (if they haven't already)."
They did a long time ago. Super Mario Bros 3 made over half a billion dollars, with enough copies being sold world-wide to give one to every person in Canada, the USA, and a couple of other smallish countries before you ran out.
If Mario 3 was a record, it would've gone platinum 11 times. Michael Jackson, in his career, has gone platinum 11 times.
This is something that cost about 80$ at the time, 4 times that of a CD. That says something.
"But they also want you to ship it back in the ORIGINAL box! "
Have you ever shipped glasswear by freight? No?
Maybe the people who make and ship thousands of monitors made out of brittle glass know how to pack them, and maybe they want to eleminate another variable. My Daytek monitors require you use the original boxes and materials for warrantee and shipping, and I'm right with them on that. I don't want them broken by some drunken mover, nor do they want users claiming a monitor is broken because of improper shipping.
If you really had a bugdet of $150,000 USD, you could easily have the boxes unfolded and stored with the foam, put next to the room where you keep all those Windows licence papers.
Here's a copy of an email response I finally received after many emailings to the original company who are going to be making the BBAs:
Thank you so much for your E-Mail.
About you inquiry we would like to guide you as following.
1.We enciphered the country number(the number identifies
each country)and embedded that in Dream Cast(DC)
2.Since differences of voltage, we fear Broadband Adapter(BbA)
might be a cause of a fire.
3.We sell BbA only for collect on deliverly, but this way of
payment is available only in Japan.
Therfore the function itself of BbA is not adapted to DC (overseas edition) as you have, and that is unavailable for you. We feel sorry and have to apology, but because more than anything else we don't hope to bother you(particularly reason 2.), we decline your subscription.
We will be so glad if you agree above-mentioned reasons and we hope this information helps you. If there is anything more we can do for you, please don't hesitate to let us know.
Best Regards,
--- Dreamcast (Hiragana/Kanji/Katakana redacted due to/. lameness filter) ---
CSI (Hiragana/Kanji/Katakana redacted due to/. lameness filter) URL;http://www.csi.co.jp/dc
-=-=-
They make a good (if engrish-ridden) point. Different power requirements and different country stamps mean that you may be buying 49$ USD paper weights.
If they check everything, people complain that they checked everything. If they don't check everything, people say, "I could've been carrying *ANYTHING*!"
And you wonder why those security idiots still try so hard. It's because they have no coherent policy, and keep hearing mixed signals from people who have to go through these measures.
If you're unwilling to put in the time and effort to learn all about computer science, even the hard parts you hoped to avoid by just getting a job out of high school, then you honestly aren't worth hiring.
Think about it. You are an employer, you see 10 people. 8 of them have degrees, maybe 4 of those are masters, and one of those is a Phd. Do you even consider the lamer just out of high school who doesn't have the work ethic or dedication to even do university? Do you think that lamer will be able to actually meet deadlines?
Plus you're forgoing all you'll ever learn in university, be it from a book, from a prof, or from another student. That's years of life experience you say to your potential employer that you don't want.
Really, for a group of people who like to talk down about stupid people and ignorance, a lot of geeks seem to just want to skip the hard part where they have to learn because they can't coast anymore. That's a disgusting attitude to have towards knowledge.
At the Slashcode BOFH, the QA session was interesting. I was working at Newsforge with Grant , Robin, etc, and we were all there. Someone mentioned duplicates, and this led to a question directed at us -- what do you use to not post duplicate stories?
Our reply? We always search, and we try to skim the headlines to make sure that we always know what's been posted. In the few cases that we do accidently post a dupe, we had no problems hiding the story so that people had more room to read real ones.
Of course, with Slascode, you could just add some perl to check if the URL of the target story matches a URL in a previous story body before posting, reducing all posts that point to the same website (which seems to be the common case). As for ones that point to different websites, that's where proper keyword based searching comes in.
"The slashdot team are treating their users like crap. They're taking us for granted, and frankly, the users make the site." maybe they just don't like having users who remember well. Maybe that's leading to a bit of an inversion, because more users who don't remember previous stories are clamouring to post their duplicates. Unless this was posted JUST by CowboyNeal, some of the blame has to fall on the idiot who submitted this dupe (probably a few hundred times).
It's only a "bad name" because no one recognizes it. Go back to 1997 and try saying MP3 to people in the street -- they'll give you funny looks.
As for your lies about how "hard" it is to type, yeesh, try counting it. 2 unique keypresses using 2 fingers (with one repeat motion) vs. 3 on 3 separate fingers ends up being the same -- 3 motions.
Maybe the name doesn't make sense to people who can't count, but for the rest of us, we'll keep using it.
I'd really like to see it updated. This static file maintained by a user who knows so much about their monitor and chipset and clock timing crap is beyond most people, myself included. And I have UNIX dreams:p
The Q3Demo was released for those platforms first to reduce the number of bug reports. The engine was not completely complete, so Mr. Carmack wanted to get some feedback without flooding iD with useless data. The first story is back here, in April of 1999. There are more if you just look through/.'s Quake section.
"As iD could do it, it would be interesting to see what the fallout would be if they *did* - even if only as a staggered release, such as putting out a Mac/Linux version of Doom III three months before the Windows version hits the shelves. My guess is that at least some people would be anxious enough to play that they'd give the Linux thing a shot. "
This is exactly what happened when Quake 3 demo was released for Linux/MacOS only in 1998 and 1999. The problem was that 3D acceleration on Linux is pretty voodoo, so most people ended up using Macs for their demo.
XFree86's config file needs to be overhauled so that it's entirely GUI-configurable in a similar way to the Mac/Windows display control panels. Have the system-wide base part it/etc (which has the font info, etc), and have a local.XFree86config which contains all the overrides for the user configured by the GUI. The entire thing should flush its configuration to disk everytime there's a change, while the control panels work with the in-memory structures (allowing complete on-the-fly updates).
But no one else seems to be pushing for this, even though X is so hard to configure.
"A company like ID probably can't afford to do it,.... Such a company's total operating costs would be less, and their shareholder responsibilities fewer."
But it could. iD software is wholey owned, and they have lots of money in the bank. John C. does it because he loves his work, and it offers him both the freedom of independant work, with the resources of a real company backing him -- even if the company is a handful of people.
They could certainly only develop for Linux and not go broke, but that's not John's goal. Neither is money for money's sake -- that's why they do the Mac/Linux releases at the same time as the Windows ones. He wants more people to see the work he's done.
gEdit and some other GTK+ based applications have some pretty nifty tabbed effects: basically, dragging one out of a window makes a new window. Dragging it back into another windows combines the tabs into one main parent window.
How handy is that? Very handy! It makes the interface a lot easier to use, and more obvious. You just drag what you want to where it should be and use it:) If Mozilla could somehow support that, I'd be much happier with it.
Google wraps all links with a javascript function and a redirect script so they know exactly which links you are clicking, how long you spend on a results page, etc.
Is an example of the target they insert in every result page link.
This regex: s/<a.*href.*http:\/\/www\.google\.ca\/.*\& q=(.*)\& e=.*>/$1/ig
Is privoxy will strip them from the page. I prefer to not have my browsing so closely scrutinized, although I do not strip their text advertising (which I find useful and non-offensive).
Doom2 and Doom1 used the same engine. It was still the same 2.5D, and the doom.exe 1.9 worked on both the doom1 and doom2 IWAD files.
So I call shinanigans on your "nicer technology,..." stuff. Yeah, Doom2's story-line isn't segmented like the Doom1 one is (in that you have 2 complete episodes), but it still is the same technology, and it does have separate parts of the story.
I mean, dotcom companies can be funny, but 1,590,000 yen is $20,670 CDN, or about $13,022 US per share. LNUX didn't go that high. It seems a little funny.
10,000 yen is about $130 CDN, or about $82 US per share. At that price they must be doing something right, right?
"Ad campaigns tend to coincide with a new product. Those genuinely interested in it, tend to find it on their own, regardless"
Not really. If I live at home, read nothing but/., and only leave to go to social activities or work, I will not be exposed to much advertising beyond the odd billboard (which I have blindness to). In that situation, it will take longer to find out about things.
"The first way to start is simple... Don't throw this stuff into the trash."
Here's a suggestion: if China didn't want it, it'd stop doing it. They'll reap the problems of being loose with their environmental standards soon enough. Nothing you or I can say will do anything about it, they have to make their own mistakes. Once they do, they'll hopefully turn around and clean up their act.
"One of the biggest advantages to pie menus is that you can learn the motions, and perform those actions automatically without visual feedback. This is very hard to achieve with drop-down menus.
However, in a large number of applications this is not particularly useful. I don't think pie menus are very useful when learning the application..."
So you're willing to throw away a menu system which rewards someone who takes the time to learn it, and isn't that much harder to read that a pulldown menu, in favour of the pull down menu which doesn't reward advanced users at all.
No thank you.
That kind of thinking may have been acceptable in the 1980s, but we're starting into the 21st cenutry. If you really think it's so important to coddle newbies (who are only newbies for the first 6 months of using a computer) at the expense of frustrating advanced users (6 months until they die...), then include code to set which kind of user you are -- newbie or advanced. Nautilus has this concept of not limiting the user.
A pull down menu is like a set of training wheels you can't remove, or permanently being on a probationary car licence (no driving at night, etc, etc).
"What makes this process even more lame is that at least in Mozilla, the tabs are on the opposite end of the screen from where I switch tasks on my WM. This means I have to do a lot of unnecessary mousing around. "
Which is once again why I must emphasize that you should use hotkeys on your keyboard. IceWM, at least, has a nice set of defaults that allow people migrating from OS/2 or Windows to settle in quickly, and avoid "unnecessary mousing around." I just wish it was KDE compliant, because KWin doesn't have the depth of features that allow for the same hotkey behaviour (IE: it's not that the defaults aren't Wincompatible, it's that it doesn't support the same features..).
They said they'd replace it, and the next release was the same thing. More stolen code. Just changed a bit because someone moved a few function calls around.
Hardly. In their Spring 2002 in the audio section, the have the first page (like their other sections) discussing the excatly technical details of specs so the consumer can make an informed decision. Super Audio CD is described there. All they standalone CD players that also do it are tagged as such. It's not like Ninjas come into your house at night and rip the little black tape off the SACD logo a week after you buy it.
When the people involved in a transaction are consenting, and the consequences of their actions do not spread elsewhere, how is that wrong?
Yes, you can come up with reasons why you, specifically, may not do it, but freedom of choice is one of those Big Ideas that a lot of people have trouble dealing with.
Social groupings do work on the large scale, you just have to learn how they work. In the case of humans, we still scale up fairly well because our actual social groups are fairly small, and it is fairly hard to hide our actions from within them, unless we cut ourselves off from them. When you walk down the street, you avoid strangers subconciously. You have very segregated and well defined social groups: work friends, normal friends, best friends, etc.
The way humans have adapted from a small social-group climate to city life is very interesting if you study it. On the very grand scale, things like region encoding and the war on drugs won't stop something if enough people feel that it's not a crime, and enough don't care to enforce rules made up by the few people who actually don't like it.
Even the more moderate people see no problem with marijuana because it's demonstraited to be largely harmless, especially compared to the addictive potientials of nicotine or heroine.
Your entire question, well, sucks. If you think you can test at the end of a product cycle, you're smoking the kind of crack cocain that leads to things like this.
When you write a function for your program, you need to write a test unit that is in the debug project. How it will work is that you write some tests in which you take an input, perform the operation, and test the output versus a contstant answer. Have one of these for each case that it handles in the unit. That way, you can always compile the test unit and examine its output versus the constant known-good value. That's good software engineering practice.
What you're asking, well, is a joke. Nothing's going to save your project if you've been just adding functionality without QAing at each step to verify correctness.
hellbunnia asks "I work with a team of developers who spend most of their time adding functionality to code. While we enjoy just cramming more code onto a source tree, we really never test anything. But even if we tested it, I think we'd miss a lot of bugs because we have no design policy. It's a lot to be tested, and it's all interrelated! So my question is, does anyone have a quick and easy solution that will save us from rewritting things with a proper design?"
"I've read a lot of freshmeat listings for testing, but I've always assumed that they were merely 'Hello, World' programs because nothing beats real testing by real humans. However, as the amount of code grows, I've begun to wish that we wrote a carefully designed set of unit tests as we added functionality, rather than trying to magically make it all work 2 weeks before our shipping deadline. I'm hoping we have some magic QA program which will do everything for us, except actually fix our squirrely code.
Does such a thing exist, or should I start updating my resume? How fucked am I?"
"Video games are big business, and may eclipse movies (if they haven't already)."
They did a long time ago. Super Mario Bros 3 made over half a billion dollars, with enough copies being sold world-wide to give one to every person in Canada, the USA, and a couple of other smallish countries before you ran out.
If Mario 3 was a record, it would've gone platinum 11 times. Michael Jackson, in his career, has gone platinum 11 times.
This is something that cost about 80$ at the time, 4 times that of a CD. That says something.
"But they also want you to ship it back in the ORIGINAL box! "
Have you ever shipped glasswear by freight? No?
Maybe the people who make and ship thousands of monitors made out of brittle glass know how to pack them, and maybe they want to eleminate another variable. My Daytek monitors require you use the original boxes and materials for warrantee and shipping, and I'm right with them on that. I don't want them broken by some drunken mover, nor do they want users claiming a monitor is broken because of improper shipping.
If you really had a bugdet of $150,000 USD, you could easily have the boxes unfolded and stored with the foam, put next to the room where you keep all those Windows licence papers.
Here's a copy of an email response I finally received after many emailings to the original company who are going to be making the BBAs:
/. lameness filter) /. lameness filter) URL;http://www.csi.co.jp/dc
Thank you so much for your E-Mail.
About you inquiry we would like to guide you as following.
1.We enciphered the country number(the number identifies
each country)and embedded that in Dream Cast(DC)
2.Since differences of voltage, we fear Broadband Adapter(BbA)
might be a cause of a fire.
3.We sell BbA only for collect on deliverly, but this way of
payment is available only in Japan.
Therfore the function itself of BbA is not adapted to DC
(overseas edition) as you have, and that is unavailable for you.
We feel sorry and have to apology, but because more than anything
else we don't hope to bother you(particularly reason 2.),
we decline your subscription.
We will be so glad if you agree above-mentioned reasons
and we hope this information helps you.
If there is anything more we can do for you, please don't
hesitate to let us know.
Best Regards,
---
Dreamcast (Hiragana/Kanji/Katakana redacted due to
---
CSI (Hiragana/Kanji/Katakana redacted due to
-=-=-
They make a good (if engrish-ridden) point. Different power requirements and different country stamps mean that you may be buying 49$ USD paper weights.
If they check everything, people complain that they checked everything. If they don't check everything, people say, "I could've been carrying *ANYTHING*!"
And you wonder why those security idiots still try so hard. It's because they have no coherent policy, and keep hearing mixed signals from people who have to go through these measures.
If you're unwilling to put in the time and effort to learn all about computer science, even the hard parts you hoped to avoid by just getting a job out of high school, then you honestly aren't worth hiring.
Think about it. You are an employer, you see 10 people. 8 of them have degrees, maybe 4 of those are masters, and one of those is a Phd. Do you even consider the lamer just out of high school who doesn't have the work ethic or dedication to even do university? Do you think that lamer will be able to actually meet deadlines?
Plus you're forgoing all you'll ever learn in university, be it from a book, from a prof, or from another student. That's years of life experience you say to your potential employer that you don't want.
Really, for a group of people who like to talk down about stupid people and ignorance, a lot of geeks seem to just want to skip the hard part where they have to learn because they can't coast anymore. That's a disgusting attitude to have towards knowledge.
"better than Microsoft does"?
The sentence "Microsoft do understand business" makes as much sense as AYBABTU.
At the Slashcode BOFH, the QA session was interesting. I was working at Newsforge with Grant , Robin, etc, and we were all there. Someone mentioned duplicates, and this led to a question directed at us -- what do you use to not post duplicate stories?
Our reply? We always search, and we try to skim the headlines to make sure that we always know what's been posted. In the few cases that we do accidently post a dupe, we had no problems hiding the story so that people had more room to read real ones.
Of course, with Slascode, you could just add some perl to check if the URL of the target story matches a URL in a previous story body before posting, reducing all posts that point to the same website (which seems to be the common case). As for ones that point to different websites, that's where proper keyword based searching comes in.
"The slashdot team are treating their users like crap. They're taking us for granted, and frankly, the users make the site." maybe they just don't like having users who remember well. Maybe that's leading to a bit of an inversion, because more users who don't remember previous stories are clamouring to post their duplicates. Unless this was posted JUST by CowboyNeal, some of the blame has to fall on the idiot who submitted this dupe (probably a few hundred times).
And I feel like I've somehow ended up in a pseudo reality, thanks to this post.
It's only a "bad name" because no one recognizes it. Go back to 1997 and try saying MP3 to people in the street -- they'll give you funny looks.
As for your lies about how "hard" it is to type, yeesh, try counting it. 2 unique keypresses using 2 fingers (with one repeat motion) vs. 3 on 3 separate fingers ends up being the same -- 3 motions.
Maybe the name doesn't make sense to people who can't count, but for the rest of us, we'll keep using it.
I'd really like to see it updated. This static file maintained by a user who knows so much about their monitor and chipset and clock timing crap is beyond most people, myself included. And I have UNIX dreams :p
/.'s Quake section.
The Q3Demo was released for those platforms first to reduce the number of bug reports. The engine was not completely complete, so Mr. Carmack wanted to get some feedback without flooding iD with useless data. The first story is back here, in April of 1999. There are more if you just look through
"As iD could do it, it would be interesting to see what the fallout would be if they *did* - even if only as a staggered release, such as putting out a Mac/Linux version of Doom III three months before the Windows version hits the shelves. My guess is that at least some people would be anxious enough to play that they'd give the Linux thing a shot. "
/etc (which has the font info, etc), and have a local .XFree86config which contains all the overrides for the user configured by the GUI. The entire thing should flush its configuration to disk everytime there's a change, while the control panels work with the in-memory structures (allowing complete on-the-fly updates).
This is exactly what happened when Quake 3 demo was released for Linux/MacOS only in 1998 and 1999. The problem was that 3D acceleration on Linux is pretty voodoo, so most people ended up using Macs for their demo.
XFree86's config file needs to be overhauled so that it's entirely GUI-configurable in a similar way to the Mac/Windows display control panels. Have the system-wide base part it
But no one else seems to be pushing for this, even though X is so hard to configure.
"A company like ID probably can't afford to do it, .... Such a company's total operating costs would be less, and their shareholder responsibilities fewer."
But it could. iD software is wholey owned, and they have lots of money in the bank. John C. does it because he loves his work, and it offers him both the freedom of independant work, with the resources of a real company backing him -- even if the company is a handful of people.
They could certainly only develop for Linux and not go broke, but that's not John's goal. Neither is money for money's sake -- that's why they do the Mac/Linux releases at the same time as the Windows ones. He wants more people to see the work he's done.
gEdit and some other GTK+ based applications have some pretty nifty tabbed effects: basically, dragging one out of a window makes a new window. Dragging it back into another windows combines the tabs into one main parent window.
:) If Mozilla could somehow support that, I'd be much happier with it.
How handy is that? Very handy! It makes the interface a lot easier to use, and more obvious. You just drag what you want to where it should be and use it
Google wraps all links with a javascript function and a redirect script so they know exactly which links you are clicking, how long you spend on a results page, etc.
/ ww w.junkbusters.com/&e=42
& q=(.*)\& e=.*>/$1/ig
http://www.google.com/url?sa=U&start=1&q=http:/
Is an example of the target they insert in every result page link.
This regex:
s/<a.*href.*http:\/\/www\.google\.ca\/.*\
Is privoxy will strip them from the page. I prefer to not have my browsing so closely scrutinized, although I do not strip their text advertising (which I find useful and non-offensive).
OMG, I didn't know Lord Voldemort was responsible for Windows!
It does make sense, though..
Doom2 and Doom1 used the same engine. It was still the same 2.5D, and the doom.exe 1.9 worked on both the doom1 and doom2 IWAD files.
..." stuff. Yeah, Doom2's story-line isn't segmented like the Doom1 one is (in that you have 2 complete episodes), but it still is the same technology, and it does have separate parts of the story.
So I call shinanigans on your "nicer technology,
I mean, dotcom companies can be funny, but 1,590,000 yen is $20,670 CDN, or about $13,022 US per share. LNUX didn't go that high. It seems a little funny.
10,000 yen is about $130 CDN, or about $82 US per share. At that price they must be doing something right, right?
"Ad campaigns tend to coincide with a new product. Those genuinely interested in it, tend to find it on their own, regardless"
/., and only leave to go to social activities or work, I will not be exposed to much advertising beyond the odd billboard (which I have blindness to). In that situation, it will take longer to find out about things.
Not really. If I live at home, read nothing but
"The first way to start is simple... Don't throw this stuff into the trash."
Here's a suggestion: if China didn't want it, it'd stop doing it. They'll reap the problems of being loose with their environmental standards soon enough. Nothing you or I can say will do anything about it, they have to make their own mistakes. Once they do, they'll hopefully turn around and clean up their act.
"One of the biggest advantages to pie menus is that you can learn the motions, and perform those actions automatically without visual feedback. This is very hard to achieve with drop-down menus.
However, in a large number of applications this is not particularly useful. I don't think pie menus are very useful when learning the application..."
So you're willing to throw away a menu system which rewards someone who takes the time to learn it, and isn't that much harder to read that a pulldown menu, in favour of the pull down menu which doesn't reward advanced users at all.
No thank you.
That kind of thinking may have been acceptable in the 1980s, but we're starting into the 21st cenutry. If you really think it's so important to coddle newbies (who are only newbies for the first 6 months of using a computer) at the expense of frustrating advanced users (6 months until they die...), then include code to set which kind of user you are -- newbie or advanced. Nautilus has this concept of not limiting the user.
A pull down menu is like a set of training wheels you can't remove, or permanently being on a probationary car licence (no driving at night, etc, etc).
"What makes this process even more lame is that at least in Mozilla, the tabs are on the opposite end of the screen from where I switch tasks on my WM. This means I have to do a lot of unnecessary mousing around. "
Which is once again why I must emphasize that you should use hotkeys on your keyboard. IceWM, at least, has a nice set of defaults that allow people migrating from OS/2 or Windows to settle in quickly, and avoid "unnecessary mousing around." I just wish it was KDE compliant, because KWin doesn't have the depth of features that allow for the same hotkey behaviour (IE: it's not that the defaults aren't Wincompatible, it's that it doesn't support the same features..).
They said they'd replace it, and the next release was the same thing. More stolen code. Just changed a bit because someone moved a few function calls around.
Hardly. In their Spring 2002 in the audio section, the have the first page (like their other sections) discussing the excatly technical details of specs so the consumer can make an informed decision. Super Audio CD is described there. All they standalone CD players that also do it are tagged as such. It's not like Ninjas come into your house at night and rip the little black tape off the SACD logo a week after you buy it.
When the people involved in a transaction are consenting, and the consequences of their actions do not spread elsewhere, how is that wrong?
Yes, you can come up with reasons why you, specifically, may not do it, but freedom of choice is one of those Big Ideas that a lot of people have trouble dealing with.
Social groupings do work on the large scale, you just have to learn how they work. In the case of humans, we still scale up fairly well because our actual social groups are fairly small, and it is fairly hard to hide our actions from within them, unless we cut ourselves off from them. When you walk down the street, you avoid strangers subconciously. You have very segregated and well defined social groups: work friends, normal friends, best friends, etc.
The way humans have adapted from a small social-group climate to city life is very interesting if you study it. On the very grand scale, things like region encoding and the war on drugs won't stop something if enough people feel that it's not a crime, and enough don't care to enforce rules made up by the few people who actually don't like it.
Even the more moderate people see no problem with marijuana because it's demonstraited to be largely harmless, especially compared to the addictive potientials of nicotine or heroine.