I say, nuclear power becomes a more viable option when you can tell me what to do with the waste it generates. And the answer has to be better than 'bury it'.
Besides reusing it, you can always look into Photoremediation. Pump the stuff full of X-Rays, and watch it become harmless in a few minutes. Of course, tell that to the government. Terrorists might get ahold of the materials while they're being remediated! Bah.
We aren't living in the 50s anymore. Nuclear development hasn't shown the results it promised and we today we know about more options.
What options do we have today that we didn't have in the 1950's? How many of those are capable of outright replacing the Coal/Oil/Nuclear infrastructure?
This was extended in C++ to allow non-scalar comparisons so now one can write equality operators to do what ever one wants for a given pair of objects.
Which does the EXACT SAME THING as the Java function. The only difference is that C++ allows operator overloading while Java does not. Given the number of bone-headed ways operator overloading has been abused, I'm inclined to agree with Java's way of handling things.
So in C for instance the equality operator would promote 3 == 3.00 to 3.00 = 3.00. This is a convince.
Which is different from what you said. The original poster claimed that 3 and 3.00 are not equal. He was correct in his statement. You then called him a liar. Now you're doing an about face. Seems you owe the original poster an apology.
Yucca mountain is perfectly safe, but it's kind of stupid. We have the technology to reprocess most of the stuff into more fuel for reactors. Other stuff is useful in medicine and micro power sources. The remainder can be made safe via a process known as "Photoremediation".
The reason why this isn't done (save for some allowance for the second case I listed), is that the government considers it a threat to national security. Their problem with these options is that evil terrorists may intercept nuclear materials shipments, then use them for evil deeds. So their solution is to pile it all in a big cave somewhere. *sigh* Things are pretty bad when our own government doesn't understand.
Coal is one of the most impure of fuels. Its impurities range from trace quantities of many metals, including uranium and thorium, to much larger quantities of aluminum and iron to still larger quantities of impurities such as sulfur. Products of coal combustion include the oxides of carbon, nitrogen, and sulfur; carcinogenic and mutagenic substances; and recoverable minerals of commercial value, including nuclear fuels naturally occurring in coal.
MORE NUCLEAR MATERIALS ARE RELEASED BY COAL BURNING THAN ANY NUCLEAR PLANT HAS EVER RELEASED. That's a VERY important thing to know, because COAL KILLS PEOPLE.
it shows alpha-particles being deflected more than beta-particles, although they have a greater mass
I believe that's correct. The greater mass of Alpha particles causes them to be more easily deflected than beta particles. Gamma radiation has a near-zero mass, so it can penetrate most forms of matter. (Penetration being the act of "missing" most of the matter.)
I think you may be getting confused by Neutron radiation, which is the most massive type of radiative particle. Neutrons do a LOT of damage due to their mass, but they don't actually have a lot of penetrating power.
One of the most interesting bits of the interview is this:
What do you think about nuclear power?
I'm fine about it, as long as safety is put head and shoulders above any other concern, financial or whatever. If you keep safety as your number one priority at all stages of planning and running a plant, it should be OK.
There you have it. From a man who nearly died and is still sick today from Nuclear power.
It's imperative for people to realize that Nuclear Power is not devil incarnate. By stopping Nuclear development, you are slowly killing yourselves with Coal and Oil plants. The number of people killed by nuclear power rate in the dozens (most at Chernobyl). The number of people killed by coal plants rate in the hundreds of thousands. Think about it.
It's cumbersome and unnecessary, and yes 3.00 does equal 3.
If you think:
0 10000000 110000000000000000000000
is equal to:
0000 0000 0000 0000 0000 0000 0000 0011
then you need to go back to school. It just so happens that 3.00 is NOT equal to 3 in binary. However, the two are equivalent (sorry for the complex math term) and can be converted to check for equality.
Additionally, I don't need dweebs telling me what profession to be in.
Perhaps if you were a bit more of a dweeb yourself, you'd know "simple" things like binary number encoding. This stuff isn't a secret. Many documents exist that explain encodings.
Another thing that's explained in even the simplest of school books, is the necessity of "abstract data types". The theory behind ADTs is that situations may occur that are unknown to the compiler writer. For example, let's say I write fixed-point math code instead of floating point math. In that situation, it is imperative that I be able to test for equality in a different fashion from FP numbers. Java's equals() method exists to support situations such as this.
You need to access an area of physical memory. JAVA has no pointers.. what do you suggest? (this is a memory mapped device so yeah, to write a driver for it, I do need to access its physical address space)
You use the APIs provided for Device Driver writing. Java allows you to access memory mapped areas (see the java.nio package). All that's needed is an API to obtain that area. Since you normally don't want to give that functionality to developers, it would have to be part of a Device Driver API like Sun's JDDK or JNode's OS services.
I don't know why you find that funny. That's exactly what Symbolics did. They beat Unix to the "Workstation" market by several years, too. Many Unix Haters were very upset when their LISP machines were replaced with Unix:
This is the fifth day I've used a Sun. Coincidentally, it's also the fifth time my Emacs has given up the ghost. So I think I'm getting a feel for what's good about Suns.
One neat thing about Suns is that they really boot fast. You ought to see one boot, if you haven't already. It's inspiring to those of us whose LispMs take all morning to boot.
Another nice thing about Suns is their simplicity. You know how a LispM is always jumping into that awful, hairy debugger with the confusing backtrace display, and expecting you to tell it how to proceed? Well, Suns ALWAYS know how to proceed. They dump a core file and kill the offending process. What could be easier? If there's a window involved, it closes right up. (Did I feel a draft?) This simplicity greatly decreases debugging time because you immediately give up all hope of finding the problem, and just restart from the beginning whatever complex task you were up to. In fact, at this point, you can just boot. Go ahead, it's fast!
Besides, it's not like a task scheduler is a hard piece of code to write. It's actually stupidly simple to write. The hard part is creating an algorithm that will most effectively extend CPU resources to running programs. What is effective depends on the purpose of the OS. See "The Dining Philosophers Problem" for an example of the issues that task schedulers must resolve.
AFAIK, its not the API but the language features (VM and garbage collector) that don't allow deterministic behavior.
1. VMs by their very nature are deterministic. If they weren't, your CPU wouldn't be either.
2. Garbage Collection is as deterministic as the algorithm behind it. Standard "mark and sweep" algos are indeed deterministic.
None of this has anything to do with compiled Java code, which runs in as deterministic a fashion as you code it. Do you even know what "deterministic" means?
I'm not saying that C/C++ are better languages but you don't have these problems there.
Yes you do. Any problem you code, you have in any language you code it. If you choose to write a device driver with a random timeout inserted, you must take responsibility for that behavior, no matter what the language. If you require that your device driver have an uninterrupted time slice of X milliseconds, then you must use the OS services available to ensure that you have a time slice of X milliseconds.
It's not a question of performance, but deterministic behavior and guaranteed maximum latency.
Maximum latency is not a determinable factor in ANY language, save for when real-time services are utilized. If you utilize real-time services, then it doesn't matter what language you use as long as you have access to those real-time services.
I've written small servers in java before, and they always got really unreliable after about 2-3 days of running. If I restarted the program, it'd work fine
Then you did something wrong. There's nothing inherent in Java that causes it to be unstable. It's possible you were leaking threads or objects in your program, and that's what caused you problems. I can almost guarantee that you'll run into the same issue with a server written in any other language. C/C++ would be particularly bad, because memory can leak in ways that are nearly undetectable.
If you have an example of a small server, feel free to mail it to me. I'll take a look at it and see if I can spot the problem.
anyway, I need something to search through my logs faster. I'm getting tired of having to jump to the console and do a "cat * | grep what I am looking for"
When you've got 75MB of chat logs in thousands of files, that can take a bit of time.
Fair enough. I still think SQL Server is an overkill, but to each their own. In case you're interestedd, here's a small SQL engine that can be easily embedded into your program.
The history books are wrong. An example from wikipedia:
The Burroughs Corporation's B5000 and its successors were and are stack machines designed to be programmed in an extended ALGOL; indeed their operating system, or MCP (Master Control Program) as they are called, is written in an extended ALGOL back in 1961. The Unisys Corporation still markets machines descended from the B5000 today, running the MCP and supporting several extended ALGOL compilers.
1961 predates the release of Unix by nearly 10 years. In addition, Symbolics LISP workstations actually gained popularity as workstations *before* Unix did. The only use of Unix at that point was as an environment for computer research. Companies like Sun, Digital, HP, and IBM didn't start fighting over the Workstation market until the late 80's, and didn't manage to make real inroads into the server room until the 90's.
Unix's success as an OS primarily extends from its use as an early networked computer. BSD, for example, was used by DARPA as a platform on which to create the TCP/IP protocol, and eventually found ARPANet (the internet we know today). This gave Unix a head start in business when the Internet became a realistic concern.
You sir, are an idiot. I'm downright amazed at the chutzpah you display in posting this. You are comparing a Virtual Machine platform designed to optimize large and long running programs, against simple scripting languages? With a Hello World program no less!
Allow me to repeat: You sir, are an idiot.
Now go back to school for Comp-Sci, and learn about the tradeoffs programmers must make in order to make things "fast", "small", or "abstract". Hint: It's a lot like Physics. You don't get something for nothing.
Oh, and I love your web page. A "Windows Perl Hacker" you say? Lord save me.
Java is being worked on to deliver stable guaranteed time to interrupt?
Exactly. It was the first JSR created as part of the Java Community Process. The final API can be viewed on the JCP website. The "reference implementation" being used for testing can be found here.
Keep in mind that the API is most likely to show up on hard real time systems and probably won't be available on your standard desktop OSes. (Windows? Hard realtime? *rolls eyes*)
add a sql server to that to do log queries through a "SysOp" screenname, and it makes it even better...
I'm not sure I'd bother with a full blown database. Use a good logging API (like the java.util.logging package), and you should be able to write more than enough information to disk to make parsing easy as pie.
I've got a lot of this thing planned out in my head, but don't have enough experience programming threads and sockets in anything other than java (blah) to implement it.
Uh, that's a REALLY odd thing to say. Java would actually be perfect for this sort of development. Why are you considering other languages?
It's interesting that people are working on this. But you wouldn't use that in production systems, would you?
20 years ago, you wouldn't have used a C based Unix machine in place of a Mainframe, now would you? Back then, OSes were written in "safe" languages like ALGOL, FORTRAN, and LISP.
Because you can't do the low level stuff in Java.
You can, and you can't. Generally, you can't do it in Java because the API has been designed to prevent it. This is INTENTIONAL for security reasons. You wouldn't want an ActiveX control to install itself as a device driver, would you? But it *can* be done in Java as long as you have an appropriate API toolkit. JNode has one, and Sun actually provides such a kit for all the embedded Java development going on.
I never wrote about the slowness thing, I just didn't like the "you can do anything in Java" statement made by the parent poster.
I apologize if I misinterpreted, but your post did make it sound like you were referring to Java having too poor of performance to act as a platform for things like Device Drivers.
Oh, go jump off a (virtual) cliff. Java can handle "soft" realtime just fine, and extensions are being worked on for "hard" realtime support. And yes, some people actually write device drivers in Java. Java isn't slow because it's actually slow, it slow because:
1. C programmers write 10 lines of REALLY LOUSY Java code and decide that proves their point about Java being slow.
2. People like you WANT it to be slow. I'm sorry, comparing Java programming against device driver writing? That's the height of hypocrisy. Just because you're sore that *you* can't write high performance Java code while maintaining the beauty of an OO design, doesn't mean you have to take it out on everyone else.
Simple. It means that *this* dictionary has adopted it as a word, even though it wasn't. It does happen on occasion, like with words like "ain't". Here's a page that confirms the "non-wordness" (ha, ha) of the word.
The ones I'm familiar with are all Russian Jews, most of whom spent significant time in Israel. Her immediate family was in Uzbekistan when she was born, and according to her her accent is somewhat "country" and very different than the way a person from Moscow would speak.
That explains it. (Not the Jew part. My wife is 1/4 Jewish herself.) Moscow residents have a much more business like accent, whereas the country people have a very different sort of drawl. Much like our northern accents to southern accents.
It's of particular interest that she's not from Russia itself, Some satellite countries actually speak their own variant of Russian that's really not Russian. For example, Ukrainians speak their own language, and Polish is a derivative of the Russian language. (Although Polish is a bit more like Japanese to Chinese.)
I'm using it on Mozilla right now. The only thing you have to do is set Mozilla to not block popups for "aimexpress.aim.com". It should actually give you a helpful message about that. *shrug*
I say, nuclear power becomes a more viable option when you can tell me what to do with the waste it generates. And the answer has to be better than 'bury it'.
Besides reusing it, you can always look into Photoremediation. Pump the stuff full of X-Rays, and watch it become harmless in a few minutes. Of course, tell that to the government. Terrorists might get ahold of the materials while they're being remediated! Bah.
I already addressed your concern here.
We aren't living in the 50s anymore. Nuclear development hasn't shown the results it promised and we today we know about more options.
What options do we have today that we didn't have in the 1950's? How many of those are capable of outright replacing the Coal/Oil/Nuclear infrastructure?
P.S.: Is it ok to copy a paragraph from a copyrighted article if I reference it?
Yes. There's an exception in copyright laws for referencing.
This was extended in C++ to allow non-scalar comparisons so now one can write equality operators to do what ever one wants for a given pair of objects.
:-)
Which does the EXACT SAME THING as the Java function. The only difference is that C++ allows operator overloading while Java does not. Given the number of bone-headed ways operator overloading has been abused, I'm inclined to agree with Java's way of handling things.
So in C for instance the equality operator would promote 3 == 3.00 to 3.00 = 3.00. This is a convince.
Which is different from what you said. The original poster claimed that 3 and 3.00 are not equal. He was correct in his statement. You then called him a liar. Now you're doing an about face. Seems you owe the original poster an apology.
Dweeb.
Standing tall and proud.
Yucca mountain is perfectly safe, but it's kind of stupid. We have the technology to reprocess most of the stuff into more fuel for reactors. Other stuff is useful in medicine and micro power sources. The remainder can be made safe via a process known as "Photoremediation".
The reason why this isn't done (save for some allowance for the second case I listed), is that the government considers it a threat to national security. Their problem with these options is that evil terrorists may intercept nuclear materials shipments, then use them for evil deeds. So their solution is to pile it all in a big cave somewhere. *sigh* Things are pretty bad when our own government doesn't understand.
No, that's not correct. For example, over 3,000 people died in one week in 1952. The problem is the makeup of most coal. From this link
Coal is one of the most impure of fuels. Its impurities range from trace quantities of many metals, including uranium and thorium, to much larger quantities of aluminum and iron to still larger quantities of impurities such as sulfur. Products of coal combustion include the oxides of carbon, nitrogen, and sulfur; carcinogenic and mutagenic substances; and recoverable minerals of commercial value, including nuclear fuels naturally occurring in coal.
MORE NUCLEAR MATERIALS ARE RELEASED BY COAL BURNING THAN ANY NUCLEAR PLANT HAS EVER RELEASED. That's a VERY important thing to know, because COAL KILLS PEOPLE.
it shows alpha-particles being deflected more than beta-particles, although they have a greater mass
I believe that's correct. The greater mass of Alpha particles causes them to be more easily deflected than beta particles. Gamma radiation has a near-zero mass, so it can penetrate most forms of matter. (Penetration being the act of "missing" most of the matter.)
I think you may be getting confused by Neutron radiation, which is the most massive type of radiative particle. Neutrons do a LOT of damage due to their mass, but they don't actually have a lot of penetrating power.
-1 Troll? It seems that someone around here doesn't like hearing how computers ACTUALLY WORK. *shakes head*
One of the most interesting bits of the interview is this:
What do you think about nuclear power?
I'm fine about it, as long as safety is put head and shoulders above any other concern, financial or whatever. If you keep safety as your number one priority at all stages of planning and running a plant, it should be OK.
There you have it. From a man who nearly died and is still sick today from Nuclear power.
It's imperative for people to realize that Nuclear Power is not devil incarnate. By stopping Nuclear development, you are slowly killing yourselves with Coal and Oil plants. The number of people killed by nuclear power rate in the dozens (most at Chernobyl). The number of people killed by coal plants rate in the hundreds of thousands. Think about it.
If you think:is equal to:then you need to go back to school. It just so happens that 3.00 is NOT equal to 3 in binary. However, the two are equivalent (sorry for the complex math term) and can be converted to check for equality.
Additionally, I don't need dweebs telling me what profession to be in.
Perhaps if you were a bit more of a dweeb yourself, you'd know "simple" things like binary number encoding. This stuff isn't a secret. Many documents exist that explain encodings.
Another thing that's explained in even the simplest of school books, is the necessity of "abstract data types". The theory behind ADTs is that situations may occur that are unknown to the compiler writer. For example, let's say I write fixed-point math code instead of floating point math. In that situation, it is imperative that I be able to test for equality in a different fashion from FP numbers. Java's equals() method exists to support situations such as this.
You need to access an area of physical memory. JAVA has no pointers.. what do you suggest? (this is a memory mapped device so yeah, to write a driver for it, I do need to access its physical address space)
You use the APIs provided for Device Driver writing. Java allows you to access memory mapped areas (see the java.nio package). All that's needed is an API to obtain that area. Since you normally don't want to give that functionality to developers, it would have to be part of a Device Driver API like Sun's JDDK or JNode's OS services.
Yeah, let's write task schedulers in LISP! ROFL
I don't know why you find that funny. That's exactly what Symbolics did. They beat Unix to the "Workstation" market by several years, too. Many Unix Haters were very upset when their LISP machines were replaced with Unix:
This is the fifth day I've used a Sun. Coincidentally, it's also the fifth time my Emacs has given up the ghost. So I think I'm getting a feel for what's good about Suns.
One neat thing about Suns is that they really boot fast. You ought to see one boot, if you haven't already. It's inspiring to those of us whose LispMs take all morning to boot.
Another nice thing about Suns is their simplicity. You know how a LispM is always jumping into that awful, hairy debugger with the confusing backtrace display, and expecting you to tell it how to proceed? Well, Suns ALWAYS know how to proceed. They dump a core file and kill the offending process. What could be easier? If there's a window involved, it closes right up. (Did I feel a draft?) This simplicity greatly decreases debugging time because you immediately give up all hope of finding the problem, and just restart from the beginning whatever complex task you were up to. In fact, at this point, you can just boot. Go ahead, it's fast!
Besides, it's not like a task scheduler is a hard piece of code to write. It's actually stupidly simple to write. The hard part is creating an algorithm that will most effectively extend CPU resources to running programs. What is effective depends on the purpose of the OS. See "The Dining Philosophers Problem" for an example of the issues that task schedulers must resolve.
AFAIK, its not the API but the language features (VM and garbage collector) that don't allow deterministic behavior.
1. VMs by their very nature are deterministic. If they weren't, your CPU wouldn't be either.
2. Garbage Collection is as deterministic as the algorithm behind it. Standard "mark and sweep" algos are indeed deterministic.
None of this has anything to do with compiled Java code, which runs in as deterministic a fashion as you code it. Do you even know what "deterministic" means?
I'm not saying that C/C++ are better languages but you don't have these problems there.
Yes you do. Any problem you code, you have in any language you code it. If you choose to write a device driver with a random timeout inserted, you must take responsibility for that behavior, no matter what the language. If you require that your device driver have an uninterrupted time slice of X milliseconds, then you must use the OS services available to ensure that you have a time slice of X milliseconds.
It's not a question of performance, but deterministic behavior and guaranteed maximum latency.
Maximum latency is not a determinable factor in ANY language, save for when real-time services are utilized. If you utilize real-time services, then it doesn't matter what language you use as long as you have access to those real-time services.
I've written small servers in java before, and they always got really unreliable after about 2-3 days of running. If I restarted the program, it'd work fine
Then you did something wrong. There's nothing inherent in Java that causes it to be unstable. It's possible you were leaking threads or objects in your program, and that's what caused you problems. I can almost guarantee that you'll run into the same issue with a server written in any other language. C/C++ would be particularly bad, because memory can leak in ways that are nearly undetectable.
If you have an example of a small server, feel free to mail it to me. I'll take a look at it and see if I can spot the problem.
anyway, I need something to search through my logs faster. I'm getting tired of having to jump to the console and do a "cat * | grep what I am looking for"
When you've got 75MB of chat logs in thousands of files, that can take a bit of time.
Fair enough. I still think SQL Server is an overkill, but to each their own. In case you're interestedd, here's a small SQL engine that can be easily embedded into your program.
The history books are wrong. An example from wikipedia:
The Burroughs Corporation's B5000 and its successors were and are stack machines designed to be programmed in an extended ALGOL; indeed their operating system, or MCP (Master Control Program) as they are called, is written in an extended ALGOL back in 1961. The Unisys Corporation still markets machines descended from the B5000 today, running the MCP and supporting several extended ALGOL compilers.
1961 predates the release of Unix by nearly 10 years. In addition, Symbolics LISP workstations actually gained popularity as workstations *before* Unix did. The only use of Unix at that point was as an environment for computer research. Companies like Sun, Digital, HP, and IBM didn't start fighting over the Workstation market until the late 80's, and didn't manage to make real inroads into the server room until the 90's.
Unix's success as an OS primarily extends from its use as an early networked computer. BSD, for example, was used by DARPA as a platform on which to create the TCP/IP protocol, and eventually found ARPANet (the internet we know today). This gave Unix a head start in business when the Internet became a realistic concern.
You sir, are an idiot. I'm downright amazed at the chutzpah you display in posting this. You are comparing a Virtual Machine platform designed to optimize large and long running programs, against simple scripting languages? With a Hello World program no less!
Allow me to repeat: You sir, are an idiot.
Now go back to school for Comp-Sci, and learn about the tradeoffs programmers must make in order to make things "fast", "small", or "abstract". Hint: It's a lot like Physics. You don't get something for nothing.
Oh, and I love your web page. A "Windows Perl Hacker" you say? Lord save me.
Java is being worked on to deliver stable guaranteed time to interrupt?
Exactly. It was the first JSR created as part of the Java Community Process. The final API can be viewed on the JCP website. The "reference implementation" being used for testing can be found here.
Keep in mind that the API is most likely to show up on hard real time systems and probably won't be available on your standard desktop OSes. (Windows? Hard realtime? *rolls eyes*)
add a sql server to that to do log queries through a "SysOp" screenname, and it makes it even better...
I'm not sure I'd bother with a full blown database. Use a good logging API (like the java.util.logging package), and you should be able to write more than enough information to disk to make parsing easy as pie.
I've got a lot of this thing planned out in my head, but don't have enough experience programming threads and sockets in anything other than java (blah) to implement it.
Uh, that's a REALLY odd thing to say. Java would actually be perfect for this sort of development. Why are you considering other languages?
It's interesting that people are working on this. But you wouldn't use that in production systems, would you?
20 years ago, you wouldn't have used a C based Unix machine in place of a Mainframe, now would you? Back then, OSes were written in "safe" languages like ALGOL, FORTRAN, and LISP.
Because you can't do the low level stuff in Java.
You can, and you can't. Generally, you can't do it in Java because the API has been designed to prevent it. This is INTENTIONAL for security reasons. You wouldn't want an ActiveX control to install itself as a device driver, would you? But it *can* be done in Java as long as you have an appropriate API toolkit. JNode has one, and Sun actually provides such a kit for all the embedded Java development going on.
I never wrote about the slowness thing, I just didn't like the "you can do anything in Java" statement made by the parent poster.
I apologize if I misinterpreted, but your post did make it sound like you were referring to Java having too poor of performance to act as a platform for things like Device Drivers.
FYI, Java is Just In Time compiled, not interpreted. Otherwise, I agree completely.
Oh, go jump off a (virtual) cliff. Java can handle "soft" realtime just fine, and extensions are being worked on for "hard" realtime support. And yes, some people actually write device drivers in Java. Java isn't slow because it's actually slow, it slow because:
1. C programmers write 10 lines of REALLY LOUSY Java code and decide that proves their point about Java being slow.
2. People like you WANT it to be slow. I'm sorry, comparing Java programming against device driver writing? That's the height of hypocrisy. Just because you're sore that *you* can't write high performance Java code while maintaining the beauty of an OO design, doesn't mean you have to take it out on everyone else.
BTW:
4k games
Amazing OpenGL game
More Java games
JDiskReport
Best BitTorrent client ever
etc, etc, etc.
Simple. It means that *this* dictionary has adopted it as a word, even though it wasn't. It does happen on occasion, like with words like "ain't". Here's a page that confirms the "non-wordness" (ha, ha) of the word.
The ones I'm familiar with are all Russian Jews, most of whom spent significant time in Israel. Her immediate family was in Uzbekistan when she was born, and according to her her accent is somewhat "country" and very different than the way a person from Moscow would speak.
That explains it. (Not the Jew part. My wife is 1/4 Jewish herself.) Moscow residents have a much more business like accent, whereas the country people have a very different sort of drawl. Much like our northern accents to southern accents.
It's of particular interest that she's not from Russia itself, Some satellite countries actually speak their own variant of Russian that's really not Russian. For example, Ukrainians speak their own language, and Polish is a derivative of the Russian language. (Although Polish is a bit more like Japanese to Chinese.)
Note what it says under "usage".
I'm using it on Mozilla right now. The only thing you have to do is set Mozilla to not block popups for "aimexpress.aim.com". It should actually give you a helpful message about that. *shrug*