Because Sun could sue the pants off everyone who has ever even remotely considered doing a JVM implementation if they chose to.
Not true; the Java specification is an open standard. Anyone can write their own implementation of a Java virtual machine. What they can't do is call it a Java virtual machine, though, not unless it passes the Java certification standards--otherwise Sun smacks them for violating trademark law.
A C++ compiler with a JVM backend and your argument is moot.
No such beast exists and no such beast can exist. JVM supports neither strong generics nor multiple inheritance, both of which are required for a conformant C++ compiler. You might be able to get a substantially restricted subset of C++ to compile to bytecodes (but you'd lose most of the Standard Library, since generics factor in so heavily there), but it wouldn't be ANSI/ISO C++.
The "generics" introduced in Java 1.5 are not generics, incidentally.
Given *any* algorithm, I can come up with a c++ implementation that is faster than a Java implementation. Period.
I'd like to see a C++ implementation of the Halting Problem that's faster than a Java implementation, please, thank you.
Oh, wait, you can't do that because nobody can write Halting.
I guess that means there are some algorithms for which you can't write a faster C++ version. Next time, try less rhetoric and more facts. "There exist lots of algorithms for which I can code a C++ implementation that's faster than a Java implementation" is good. The instant you make a unilateral statement like the one you just made, though, it shows that you don't know as much about computer science as you think you know.
Fact: there exist cases where Java is faster due to its ability to optimize on the fly. And if you know C++ as well as you think you do, this shouldn't surprise you. C++ beats C so handily for many tasks because C++ is able to do much better compile-time optimization largely on account of the C++ compiler having access to much more type information than a C compiler. When Java beats C++, it's on account of Java having access to much more information about runtime paths than a C++ compiler. ("Much more" may be an understatement; C++ doesn't even try!)
In other words, the JVM (sometimes) beats C++ for the exact same reason that C++ almost always spanks C; the faster implementation has access to more information and uses that information to make more efficient use of cycles.
I don't think these situations will appear all that often, and I am deeply skeptical of this guy's "in the general case, Java is faster" conclusion. But my skepticism isn't leading me to make rash statements which cannot be backed up.
Re:One example of why the tests are BS
on
Java Faster Than C++?
·
· Score: 2, Insightful
My prior message might not have shown why it's not wise to build a C++ iostreams implementation on top of the conventional C facilities. So let's try something nice and simple.
char *foo = "Hello, World!\n"; printf("%s", foo);
Straightforward, right? So here's the question: when does the program figure out how to display foo?
The answer is--at runtime. Printf takes two arguments, has to evaluate them, has to parse the format string, has to figure out how to splice the data into the format string, etc., etc. (Note that printf doesn't even know what kind of data you're giving it; it literally has to interpret the parameter list at runtime. That's the major performance problem with vararg functions.) Compare this to
... where, thanks to C++'s much superior type system, the C++ compiler knows at compile-time that foo is a string, and that allows the C++ iostreams facility to generate much better code than the C-style "let's figure everything out at runtime" way.
Short version: a decent implementation of C++ iostreams will wipe the floor with C-style I/O. If you're seeing performance penalties from C++ iostreams, the first thing you should do is make sure the problem isn't in your own code; the second thing you should do is make sure your iostreams library isn't built on C libraries that determine type information at runtime.
C++ iostreams are built on top of C io functions, no?
The C++98 spec doesn't specify mechanism, only policy. You can make a conformant C++ iostreams mechanism out of C tools, but why would you want to? You can do an awful lot better.
That, and using cout instead of printf, are probably why this is slower than the "equivalent" Java.
Apparently, you're unaware that one of the major benefits of C++ iostreams over C-style IO is iostreams have better performance.
Nor is the allocation/deallocation going to be a killer. The inner loop dominates, and the inner loop has to look up the method via vtable. Pointers to objects are slower than direct object calls. I wonder how the metric would change if the C++ code was written with this in mind.
MBA expertise tends to be organised more around larger companies rather than startups.
Right, which is why I think a VC/angel would want to see an MBA in a securities firm--not because the MBA is necessary for the company itself, but because the MBA is necessary to understanding the inner workings of the larger companies on which this startup will be reporting. Maybe I wasn't as clear about that as I should've been; my apologies.
Like, for instance, you're talking about a financial-securities website. If I were Joe Venture Capitalist and you came to me with a financial-securities idea, here are the questions I'd ask you before I'd even look at your business plan. Don't have good answers? Bye. Want your business plan back?
Who's representing you? Don't have legal counsel lined up? You're opening a securities firm and you don't have a securities lawyer hired? Buhbye.
Who among your executives is an SEC-licensed broker or agent? Nobody? Buhbye.
From where did you receive your MBA? Wait, you're trying to run a securities firm and you don't have an MBA in an executive position? Oh, right, right, you have "extensive trading experience". Right. Just like every other daytrader who lost his shirt. No MBA, no investment. Buhbye.
What services are you offering which nobody else offers? You aren't offering unique services? Buhbye.
Those questions aren't nice, but those are questions which will be asked straightoff, and if you don't have good answers for them you won't even get your foot in the door.
Most American Christians are opposed to abortion, even the ones who are pro-choice. (Me, for example. I'm in favor of a woman's right to control her body; but I strongly advocate choosing life over choosing an abortion.) Fanatic anti-abortion activity, up to and including violence, cuts across a wide spectrum of American Christian denominations.
The Catholic Church is, as a whole, one of the most fanatically anti-abortion institutions out there... and it is equally fanatically anti-violence-against-abortionists. After the assassination of an abortionist, Cardinal O'Connor had this to say:
"If anyone out there is considering killing an abortionist, let him kill me first!"
Seems to me that, contrary to what you're implying, the Catholic Church has spoken out at very high levels against violence to abortion providers.
O'Connor's speech was affirmed by the Vatican and published widely in Catholic newspapers. It even made CNN. So if you think Christian churches are turning a blind eye to Matthew Shepard, abortion violence and other things done ostensibly in God's name, then all that shows is you're not paying attention.
Accusing the student as just being lazy or stupid is not the mark of a good teacher.
On the contrary; it's often the mark of an excellent teacher. A teacher who, based on evidence, comes to the conclusion "Johnny just doesn't want to work" or "Jane doesn't understand this material" has made some very useful observations. The next questions then become, why doesn't Johnny want to work? and how much remedial education does Jane need?
Saying that we can't say people are unmotivated or uneducated, on the basis that it's the mark of a bad teacher, is political correctness of the first order.
How certain is the original poster that his mother wants to learn to program? Is it possible his mother doesn't really want to learn to program, but rather wants to understand something about why computers are so important in her child's life? If so, that would explain a lot about why she's having difficulties; because he's trying to teach her something technical, and what she's looking for is to learn a social reason.
How certain is the original poster that his mother has the education necessary to learn programming? I entirely agree that "the last time the average adult engaged the 'basic mathematics' [I'm] talking about would be 30 some-odd years ago". But if that's the case, then the original poster needs to worry about the fundamentals first before trying to teach his mother something built on top of those fundamentals.
The key is to keep it interesting, not get bogged down in constructs and concepts (like lambda-calculus)
Quite true. Which is why an introduction to lambda can wait until later. You only need lambda calculus when you start talking about functions as first-class data. It's not even a necessary keyword for creating functions.
If your argument is based on the claim that Steele, Sussman, Abelson, et. al. "can't", then my only question is who are you to accuse them of incompetence, and what are your accomplishments?
There is simply no point in teaching a language that will never be really used.
As a counterexample, I submit the Turing Machine. I've never written a line of code for a real Turing Machine--how can I, given a TM is just a mathematical abstraction?--but learning the language of the TM was, for me, an essential part of learning how to be a good programmer.
Even Pascal was useless until Borland extended it so much that it hardly resembles the original p-system versions.
Pascal was never intended for production use. Wirth has gone on the record as saying that, had he known industry would take Pascal so seriously, he would've designed a much different language.
one might as well focus their effort on a language that will really be used... rather than so-called teaching languages that represent one or two people's do it my way religious views on programming
"I would consider belief in One True Way to be a childhood disease, if it wasn't for the fact so many adult programmers suffer it." Bjarne Stroustrup wrote that somewhere in The C++ Programming Language, and it's the best piece of practical advice I've ever heard. So why do you want students to learn your own One True Way?
There's more than one way to skin a cat. Being an excellent programmer requires you to learn many different ways to skin cats. You simply aren't going to do that in C, which is procedural, procedural, procedural. (Even so-called "object-oriented C" is really a procedural hack.) In Scheme, you've got access to generic programming, logic programming, procedural programming, functional programming, etc. You can practice lots of cat-skinning without needing to learn a new language for each.
In stark contrast to your claim about Scheme being "one or two people's religious views on programming", Scheme is explicitly designed to be areligious. It's as flexible as you are.
I suspect you do not know Scheme, and are instead basing your objections to it on your preconceptions.
... therefore, nobody should've ever taught you anything about programming, since most people aren't capable of programming and shouldn't attempt it.
What you're talking about is morally bankrupt. It says "some people are worthy of education, but the majority aren't, and they shouldn't be educated in order to reduce the inconvenience to those of us who are worthy".
Anyone who wants to learn should be given the opportunity to learn. Period. Anything less is intellectual fascism, and that is something I will have absolutely nothing of.
If someone is going to learn to program, then at least do it with a language that is actually used, not one that was "created" to hype a book
Scheme wasn't created to hype a book. Steele and Sussman created Scheme because they needed a clean and simple programming language with which to teach undergraduates. Then along came a book called Structure and Interpretation of Computer Programs, which has never once been a victim of hype. It's only hype if it doesn't live up to its billing, and SICP certainly does. It's a worthy addition to any programmer's shelf, and deserves to be put right next to the Knuth volumes.
That you think SICP is a book that's been victim of hype is excellent evidence that you've not read SICP, nor understand the lessons SICP tries to teach its readers.
I find it incredibly hard to believe that Python or Scheme are `too complicated' to teach to adults. I mean, realistically, Scheme is an excellent language to use for teaching computer science to adults. Look at something like Structure and Interpretation of Computer Programs as an example.
Scheme is not a complicated language. In fact, that's its biggest advantage. It's dead freakin' simple, so much so that the entire language specification is only a few pages long.
Compared to it, Python is an abomination of complexity--and Python's not a complex language, either.
You're not going to find a simpler, more straightforward pair of languages than Scheme and Python. If you're not able to make either of those languages comprehensible to your mother, then I'd respectfully suggest one of these is true:
She doesn't want to learn (isn't willing to make the investment in time, effort, etc.)
She doesn't understand basic mathematics ("what's a function?", etc.)
You don't understand the languages you're trying to teach
You're not communicating effectively
Any of those would seem far more likely to me than "Python and Scheme are too hard".
I'm not a lawyer. On the other hand, I have enough relatives who are judges, prosecutors and ex-cops to have a decent idea of how the system works.
First off: find your state Attorney General's office and email them. Almost every state AG office has an email address, and many of them give timely responses. Don't wait until morning: do this tonight.
Second off: tomorrow look up the Federal District Attorney's phone number. Call first thing in the morning (9:00am sharp!) and ask to speak to the Financial Crimes Division. Someone in that office is tasked with financial crimes, believe you me, and that's the person you want to talk to. Get that person's name and phone number. Make an appointment as soon as possible--this is the entire reason for calling early in the morning, since their schedules are more open then. Make sure to tell them that you've received a solicitation to purchase stolen credit card numbers, and the numbers appear real.
Third: call the Secret Service during regular business hours. Again, ask for Financial Crimes. They may not have an office in your area. If they don't, they'll pass the buck back, perhaps to the FBI, perhaps to some other Treasury department. If they do this, ask the Secret Service agent for a particular agent to call, and ask the Secret Service agent to let this particular agent know you'll be calling. Federal law-enforcement tends to pay more attention to you if you're directly referred by another law-enforcement type than if you say "yeah, the Secret Service told me I needed to call you guys..."
Fourth: contact your local bank. As in, the bank you do business with. Calling the credit-card companies will be a fool's errand; there are tons of them and you have no clue how many of these numbers are Visa, how many are Mastercard, how many are Discover/Novus, etc. Your bank most probably has business relationships with all of them. Call your bank and ask for an appointment with whoever's responsible for fraud control.
At this point, you've covered your bases pretty well. Banks, prosecutors, FBI/Secret Service, state attorney general's office. Take a breather. You've done good. Wait for them to get back in touch with you.
Tomorrow, call the news media. Make sure to tell them which agencies got back in touch with you and which agencies didn't, which agencies took it seriously and which agencies couldn't be bothered to give a damn.
They've gotta co-operate in an investigation just like everybody else
Journalistic privilege is very real and very powerful. If journalistic privilege didn't exist, don't you think Woodward and Bernstein would still be in Guantanamo today over the fact they wouldn't reveal who was leaking material to them from inside the Nixon White House?
If journalistic privilege didn't exist, would Novak really have been able to get away with publishing the identity of a CIA operative, and been able to shield the source of the leak by claiming journalistic privilege?
There are dozens, if not hundreds of pieces of caselaw which point to a journalistic privilege existing. However, this journalistic privilege is not absolute. (Then again, no privilege is absolute! Even before USA PATRIOT was passed, attorney-client privilege wasn't absolute. Doctor-client privilege isn't absolute. Priest-penitent privilege isn't absolute.) This means that, under very specific circumstances, a court can order a journalist to cough up a source, evidence, etc.
But it's an uphill battle and it usually ends very, very poorly for prosecutors. It's a lose-lose situation. If they lose, then they look like jackasses in public and they don't want that. If they win, then the next time they're up for re-election every newspaper will endorse the other guy, and they don't want that.
It's called a "keylogger", and it intercepts passphrases. They're pretty commonplace nowadays. My favorite's a little dongle you plug into a USB port and then plug the laptop's USB port into the dongle.
An encrypted filesystem is not, repeat, is not, any kind of defense against untrustworthy people with ongoing physical access to the hardware. If you've got a laptop and you're concerned about it being stolen, an encrypted filesystem makes a lot of sense. But in this situation it makes almost no sense at all.
This I can't entirely recommend (like I suppose everything else, but the FAS is particularly suspect; they and this essay are certainly open about their agenda).
I wholeheartedly agree that they've got a very distinct agenda. On the other hand, they're also fairly good about separating the facts from their interpretation of the facts. As it happens, I disagree with their ultimate conclusions--pretty solidly, in fact--but I find their factual content to be top-notch.
Morland's essay, in the strictly factual bits, is quite excellent--his explanation about how modern "fusion" weapons are really primarily fission devices is spot-on and lucid. His knack for coming to dicey conclusions based on those facts is equally excellent.
the fireball of a nuke is its liberated gamma rays interacting with the atmosphere and being turned into heat
The majority of a fission reaction's fireball comes from the Brehmsstrahlung Effect. Uranium fisses into two incredibly ionized fragments each with a +46 charge on average. Those fragments have a huge amount of kinetic energy and, due to their enormous charge, tend to stop within inches of the detonation--meaning all that energy gets liberated as heat inside a sphere about the same size as a beach ball.
That's the fireball for you.
The entire idea that "gamma is easily absorbed by air" is nonsense. If gamma is easily absorbed by air, then why did I have to wear a lead apron whenever I was around a gamma source? Because gamma travels through air quite readily, and ionizes holy hell out of your body tissues as it travels through you.
Witness Microsoft's endless buffer overflow problems. Switching to C++ has not helped at all.
Microsoft never used MFC for their own development of code. It's all C. Nor was C++ ever really a priority at Microsoft until Visual Studio.NET; the Visual C++ 6.0 standard library was considered a sick and cruel joke, almost gratuitously incompatible with the real C++ standard library.
The C++ language development community is dominated by people who like to do really l33t things with templates.
You obviously haven't seen some of the things they're doing with templates. I never would've thought I could get better-than-FORTRAN performance out of an object-oriented language, but that's what Blitz is giving me.
I wish there were something decent and mainstream to program in.
Python and Ada95 are both excellent, general-purpose languages with wide industry support.
Note: I haven't compiled this, so please consider it just pseudocode. But the point of the matter is, old non-bounds-checked arrays exist in C++ only because it's necessary for the C heritage. The vast majority of new C++ code out there should not use non-bounds-checked arrays, and if it does, it reflects more on the programmer than the language.
Perhaps you only know one person who admits to doing enough that you would call them a cracker
I didn't say I didn't know any people in the industry who have cracker backgrounds. I said I had yet to meet one single reputable ex-cracker.
Part of the problem is how the term "cracker" gets defined. Do I know people who've cracked systems? Yep. Do I know people who've cracked systems they didn't own and didn't have permission to crack? Yep. Did these people always have solid ethical reasons for it? Yep. For instance, RMS has cracked systems several times, and each time with solid ethical reasons for it. I wouldn't call RMS a cracker.
But people who've done these things for less than ethical reasons? No, I haven't met one single person in the industry with that sort of background who's taken in any way seriously.
Admittedly, I don't know the entire backgrounds of every single person I've met. But all the reputable people I've met have been unanimous in this opinion: if in the past someone's decided to disregard all social law and ethical concerns, there's absolutely no reason to suspect that they're now walking the straight and narrow.
The security field runs on integrity. If you don't have integrity, you've got absolutely nothing. Anyone who hires a security geek whose integrity is blemished is making critical gambles with their essential infrastructure.
I work in the security industry (okay, so right now I'm on hiatus from the security industry while I finish my Master's, focusing in security) and I've yet to meet one single reputable ex-cracker. I know plenty of people who have cracker skills (myself included): but we develop those skills by penetrating boxes we control. Realistically, this is a far better way to learn how to penetrate systems than to attack some random box on the 'Net. Some random box on the 'Net is probably running an unpatched and old Win98. But in an environment you set up, you can scale the adversary arbitrarily high. (Trusted Solaris, anyone?)
Reading the article, I found absolutely nothing to indicate Raven's past is anything less than aboveboard. She has pretty much the same skillset I do (albeit she's better than me in a few areas). I came by my skillset via purely ethical means, so until and unless I get evidence otherwise, I'm going to assume the same holds true for how she got her skills.
First, in the spirit of full disclosure: I know Raven. I know her well enough to be thoroughly impressed by her and her competency. By "thoroughly impressed" I mean "vaguely intimidated", too, and you know, that's not a bad thing to feel. Gives me an incentive to work that much harder. Competition is good.
Reading this thread so far has led me to dismay. What thread dominates? Something that's so crude that it ought to be beneath our dignity to respond, even to condemn it. A few people have jumped on the trolls, modding them down into oblivion or responding to them.
Here's a question: why? All it's doing is giving the trolls publicity. All it's doing is making people think that gender is an issue, because if it wasn't an issue, why would such a firestorm exist? If it wasn't an issue, why wouldn't the trolls just get modded into oblivion and go ignored, like the GNAA trolls?
If you want to make a statement, if you want to condemn the immature and third-grade behavior of the trolls, if you want to say "look, I for one welcome competent people and I don't give a damn what plumbing they've got", the best response is not to jump on the troll bandwagon and respond to them.
Mod them into oblivion, and let them be forgotten.
They are nothing. For nothing, let there be nothing.
If you want to make a statement, if you want to make a stand, if you want to say "look, I have no clue who this woman is, but frankly I'm appalled by some of the behavior here"... well, hey. Respond to this thread. Mod up responses in this thread. Let's take the publicity away from the trolls and put it to productive use. Let's see if we can't get a few dozen Slashdotters to make a positive stand instead of going around and giving the trolls what they want--furor.
The "generics" introduced in Java 1.5 are not generics, incidentally.
Oh, wait, you can't do that because nobody can write Halting.
I guess that means there are some algorithms for which you can't write a faster C++ version. Next time, try less rhetoric and more facts. "There exist lots of algorithms for which I can code a C++ implementation that's faster than a Java implementation" is good. The instant you make a unilateral statement like the one you just made, though, it shows that you don't know as much about computer science as you think you know.
Fact: there exist cases where Java is faster due to its ability to optimize on the fly. And if you know C++ as well as you think you do, this shouldn't surprise you. C++ beats C so handily for many tasks because C++ is able to do much better compile-time optimization largely on account of the C++ compiler having access to much more type information than a C compiler. When Java beats C++, it's on account of Java having access to much more information about runtime paths than a C++ compiler. ("Much more" may be an understatement; C++ doesn't even try!)
In other words, the JVM (sometimes) beats C++ for the exact same reason that C++ almost always spanks C; the faster implementation has access to more information and uses that information to make more efficient use of cycles.
I don't think these situations will appear all that often, and I am deeply skeptical of this guy's "in the general case, Java is faster" conclusion. But my skepticism isn't leading me to make rash statements which cannot be backed up.
The answer is--at runtime. Printf takes two arguments, has to evaluate them, has to parse the format string, has to figure out how to splice the data into the format string, etc., etc. (Note that printf doesn't even know what kind of data you're giving it; it literally has to interpret the parameter list at runtime. That's the major performance problem with vararg functions.) Compare this to... where, thanks to C++'s much superior type system, the C++ compiler knows at compile-time that foo is a string, and that allows the C++ iostreams facility to generate much better code than the C-style "let's figure everything out at runtime" way.
Short version: a decent implementation of C++ iostreams will wipe the floor with C-style I/O. If you're seeing performance penalties from C++ iostreams, the first thing you should do is make sure the problem isn't in your own code; the second thing you should do is make sure your iostreams library isn't built on C libraries that determine type information at runtime.
Nor is the allocation/deallocation going to be a killer. The inner loop dominates, and the inner loop has to look up the method via vtable. Pointers to objects are slower than direct object calls. I wonder how the metric would change if the C++ code was written with this in mind.
- Who's representing you? Don't have legal counsel lined up? You're opening a securities firm and you don't have a securities lawyer hired? Buhbye.
- Who among your executives is an SEC-licensed broker or agent? Nobody? Buhbye.
- From where did you receive your MBA? Wait, you're trying to run a securities firm and you don't have an MBA in an executive position? Oh, right, right, you have "extensive trading experience". Right. Just like every other daytrader who lost his shirt. No MBA, no investment. Buhbye.
- What services are you offering which nobody else offers? You aren't offering unique services? Buhbye.
Those questions aren't nice, but those are questions which will be asked straightoff, and if you don't have good answers for them you won't even get your foot in the door.Most American Christians are opposed to abortion, even the ones who are pro-choice. (Me, for example. I'm in favor of a woman's right to control her body; but I strongly advocate choosing life over choosing an abortion.) Fanatic anti-abortion activity, up to and including violence, cuts across a wide spectrum of American Christian denominations.
O'Connor's speech was affirmed by the Vatican and published widely in Catholic newspapers. It even made CNN. So if you think Christian churches are turning a blind eye to Matthew Shepard, abortion violence and other things done ostensibly in God's name, then all that shows is you're not paying attention.
Saying that we can't say people are unmotivated or uneducated, on the basis that it's the mark of a bad teacher, is political correctness of the first order.
How certain is the original poster that his mother wants to learn to program? Is it possible his mother doesn't really want to learn to program, but rather wants to understand something about why computers are so important in her child's life? If so, that would explain a lot about why she's having difficulties; because he's trying to teach her something technical, and what she's looking for is to learn a social reason.
How certain is the original poster that his mother has the education necessary to learn programming? I entirely agree that "the last time the average adult engaged the 'basic mathematics' [I'm] talking about would be 30 some-odd years ago". But if that's the case, then the original poster needs to worry about the fundamentals first before trying to teach his mother something built on top of those fundamentals.Quite true. Which is why an introduction to lambda can wait until later. You only need lambda calculus when you start talking about functions as first-class data. It's not even a necessary keyword for creating functions.
There's more than one way to skin a cat. Being an excellent programmer requires you to learn many different ways to skin cats. You simply aren't going to do that in C, which is procedural, procedural, procedural. (Even so-called "object-oriented C" is really a procedural hack.) In Scheme, you've got access to generic programming, logic programming, procedural programming, functional programming, etc. You can practice lots of cat-skinning without needing to learn a new language for each.
In stark contrast to your claim about Scheme being "one or two people's religious views on programming", Scheme is explicitly designed to be areligious. It's as flexible as you are.
I suspect you do not know Scheme, and are instead basing your objections to it on your preconceptions.
... therefore, nobody should've ever taught you anything about programming, since most people aren't capable of programming and shouldn't attempt it.
What you're talking about is morally bankrupt. It says "some people are worthy of education, but the majority aren't, and they shouldn't be educated in order to reduce the inconvenience to those of us who are worthy".
Anyone who wants to learn should be given the opportunity to learn. Period. Anything less is intellectual fascism, and that is something I will have absolutely nothing of.
That you think SICP is a book that's been victim of hype is excellent evidence that you've not read SICP, nor understand the lessons SICP tries to teach its readers.
Scheme is not a complicated language. In fact, that's its biggest advantage. It's dead freakin' simple, so much so that the entire language specification is only a few pages long.
Compared to it, Python is an abomination of complexity--and Python's not a complex language, either.
You're not going to find a simpler, more straightforward pair of languages than Scheme and Python. If you're not able to make either of those languages comprehensible to your mother, then I'd respectfully suggest one of these is true:
- She doesn't want to learn (isn't willing to make the investment in time, effort, etc.)
- She doesn't understand basic mathematics ("what's a function?", etc.)
- You don't understand the languages you're trying to teach
- You're not communicating effectively
Any of those would seem far more likely to me than "Python and Scheme are too hard".I'm not a lawyer. On the other hand, I have enough relatives who are judges, prosecutors and ex-cops to have a decent idea of how the system works.
First off: find your state Attorney General's office and email them. Almost every state AG office has an email address, and many of them give timely responses. Don't wait until morning: do this tonight.
Second off: tomorrow look up the Federal District Attorney's phone number. Call first thing in the morning (9:00am sharp!) and ask to speak to the Financial Crimes Division. Someone in that office is tasked with financial crimes, believe you me, and that's the person you want to talk to. Get that person's name and phone number. Make an appointment as soon as possible--this is the entire reason for calling early in the morning, since their schedules are more open then. Make sure to tell them that you've received a solicitation to purchase stolen credit card numbers, and the numbers appear real.
Third: call the Secret Service during regular business hours. Again, ask for Financial Crimes. They may not have an office in your area. If they don't, they'll pass the buck back, perhaps to the FBI, perhaps to some other Treasury department. If they do this, ask the Secret Service agent for a particular agent to call, and ask the Secret Service agent to let this particular agent know you'll be calling. Federal law-enforcement tends to pay more attention to you if you're directly referred by another law-enforcement type than if you say "yeah, the Secret Service told me I needed to call you guys..."
Fourth: contact your local bank. As in, the bank you do business with. Calling the credit-card companies will be a fool's errand; there are tons of them and you have no clue how many of these numbers are Visa, how many are Mastercard, how many are Discover/Novus, etc. Your bank most probably has business relationships with all of them. Call your bank and ask for an appointment with whoever's responsible for fraud control.
At this point, you've covered your bases pretty well. Banks, prosecutors, FBI/Secret Service, state attorney general's office. Take a breather. You've done good. Wait for them to get back in touch with you.
Tomorrow, call the news media. Make sure to tell them which agencies got back in touch with you and which agencies didn't, which agencies took it seriously and which agencies couldn't be bothered to give a damn.
If journalistic privilege didn't exist, would Novak really have been able to get away with publishing the identity of a CIA operative, and been able to shield the source of the leak by claiming journalistic privilege?
There are dozens, if not hundreds of pieces of caselaw which point to a journalistic privilege existing. However, this journalistic privilege is not absolute. (Then again, no privilege is absolute! Even before USA PATRIOT was passed, attorney-client privilege wasn't absolute. Doctor-client privilege isn't absolute. Priest-penitent privilege isn't absolute.) This means that, under very specific circumstances, a court can order a journalist to cough up a source, evidence, etc.
But it's an uphill battle and it usually ends very, very poorly for prosecutors. It's a lose-lose situation. If they lose, then they look like jackasses in public and they don't want that. If they win, then the next time they're up for re-election every newspaper will endorse the other guy, and they don't want that.
An encrypted filesystem is not, repeat, is not, any kind of defense against untrustworthy people with ongoing physical access to the hardware. If you've got a laptop and you're concerned about it being stolen, an encrypted filesystem makes a lot of sense. But in this situation it makes almost no sense at all.
Morland's essay, in the strictly factual bits, is quite excellent--his explanation about how modern "fusion" weapons are really primarily fission devices is spot-on and lucid. His knack for coming to dicey conclusions based on those facts is equally excellent.
That's the fireball for you.
The entire idea that "gamma is easily absorbed by air" is nonsense. If gamma is easily absorbed by air, then why did I have to wear a lead apron whenever I was around a gamma source? Because gamma travels through air quite readily, and ionizes holy hell out of your body tissues as it travels through you.
For an excellent reference on the physics of nuclear weapons, check the Federation of American Scientists' website, particularly the essay The Holocaust Bomb: A Question of Time .
And if you don't use it, you're a damnfool idiot. Consider:
try {
vector<int> foo(10, 0);
std::cout << foo.at(10) << std::endl;
} catch (exception &e) {
std::cerr << e.what() << std::endl;
}
Note: I haven't compiled this, so please consider it just pseudocode. But the point of the matter is, old non-bounds-checked arrays exist in C++ only because it's necessary for the C heritage. The vast majority of new C++ code out there should not use non-bounds-checked arrays, and if it does, it reflects more on the programmer than the language.
Part of the problem is how the term "cracker" gets defined. Do I know people who've cracked systems? Yep. Do I know people who've cracked systems they didn't own and didn't have permission to crack? Yep. Did these people always have solid ethical reasons for it? Yep. For instance, RMS has cracked systems several times, and each time with solid ethical reasons for it. I wouldn't call RMS a cracker.
But people who've done these things for less than ethical reasons? No, I haven't met one single person in the industry with that sort of background who's taken in any way seriously.
Admittedly, I don't know the entire backgrounds of every single person I've met. But all the reputable people I've met have been unanimous in this opinion: if in the past someone's decided to disregard all social law and ethical concerns, there's absolutely no reason to suspect that they're now walking the straight and narrow.
The security field runs on integrity. If you don't have integrity, you've got absolutely nothing. Anyone who hires a security geek whose integrity is blemished is making critical gambles with their essential infrastructure.
Reading the article, I found absolutely nothing to indicate Raven's past is anything less than aboveboard. She has pretty much the same skillset I do (albeit she's better than me in a few areas). I came by my skillset via purely ethical means, so until and unless I get evidence otherwise, I'm going to assume the same holds true for how she got her skills.
First, in the spirit of full disclosure: I know Raven. I know her well enough to be thoroughly impressed by her and her competency. By "thoroughly impressed" I mean "vaguely intimidated", too, and you know, that's not a bad thing to feel. Gives me an incentive to work that much harder. Competition is good.
Reading this thread so far has led me to dismay. What thread dominates? Something that's so crude that it ought to be beneath our dignity to respond, even to condemn it. A few people have jumped on the trolls, modding them down into oblivion or responding to them.
Here's a question: why? All it's doing is giving the trolls publicity. All it's doing is making people think that gender is an issue, because if it wasn't an issue, why would such a firestorm exist? If it wasn't an issue, why wouldn't the trolls just get modded into oblivion and go ignored, like the GNAA trolls?
If you want to make a statement, if you want to condemn the immature and third-grade behavior of the trolls, if you want to say "look, I for one welcome competent people and I don't give a damn what plumbing they've got", the best response is not to jump on the troll bandwagon and respond to them.
Mod them into oblivion, and let them be forgotten.
They are nothing. For nothing, let there be nothing.
If you want to make a statement, if you want to make a stand, if you want to say "look, I have no clue who this woman is, but frankly I'm appalled by some of the behavior here"... well, hey. Respond to this thread. Mod up responses in this thread. Let's take the publicity away from the trolls and put it to productive use. Let's see if we can't get a few dozen Slashdotters to make a positive stand instead of going around and giving the trolls what they want--furor.