Well, I don't know if this means anything, but I met him a couple months ago when he was at the University of Washington in Seattle, and if memory serves me correctly he was wearing a gray turtleneck. Perhaps the facade is cracking!
You definitely can hide instance variables in JavaScript. You have to employ JS's lexical closures, and it might seem a little odd to someone who's not used to it, but such as it is:
// Constructor for Pie object function Pie() { ...// Create an instance variable inaccessible to the outside world ...var flavor = "blueberry";
...// A method of Pie which accesses the hidden instance variable ...this.getFlavor = function() ...{ ......// We can access 'flavor' because getFlavor is closed over its environment of definition ......return flavor; ...} }
var mypie = new Pie(); var str = "I like " + mypie.getFlavor() + " pie!";
(Note: Give me a break, Slashdot! Why no "pre" formatting in code blocks???)
As for classes, it should be noted that JavaScript is prototype-based, which is really a very nice way of approaching OO once you get used to it. There is something of an effort to make ECMAScript more class-based, though, and the next version of JavaScript from the Mozilla guys will include support for classes.
Continuations are not supported as such, but Mozilla's JS 1.7 does include support for generators, which are very nice and can be used to do some of the things you could do with continuations.
9 minutes? No fricking way. They were sold out within 30 seconds. I know because I managed to get through their confirmation page at 11:00:30AM PST, and I got the "sold out" message. I live near Seattle, so the worst I had was waiting about ten seconds for each page to load.
Actually, I managed to get the confirmation page by 11:00:15, but I somehow didn't notice a little "I agree to these terms" checkbox before I clicked through. The confirmation failed, and I had to do it again. If it wasn't for that extra 15 seconds, I might've got one.:-(
Nah; just off the top of my head, it was also used for Super Scope 6 (a set of 6 crappy mini-games that I believe was packaged with the Super Scope), and Yoshi's Safari. There's a list of other games it was used for in the Wikipedia article.
While there might be some small benefit, it would not be as large as you think. Gravitational acceleration is still very significant at 500km up.
Acceleration toward an object due to gravity is given by g = GM/r^2, where G = 6.67e-11 is the gravitational constant, M is the mass of the object, and r is the distance from the center of mass of the object. The mass of the earth is about 5.97e24 kilograms, and its mean radius is about 6.37e6 meters. Thus, the acceleration due to gravity at the planet's surface is approximately (6.67e-11 * 5.97e24) / (6.37e6^2) = 9.81 m/s^2.
Go up another measly 500 kilometers, and your new acceleration is approximately (6.67e-11 * 5.97e24) / (6.87e6^2) = 8.44 m/s^2. That's only a 14% difference; a very noticeable reduction, but not enough to have significant savings. Your rocket fuel wouldn't go much farther at all, at least when the goal of the space elevator is to reduce cargo costs by orders of magnitude.
It's not so much pride as a complete lack of necessity. The Starmen.Net team consists of Tomato, demiforce, and Gideon Zhi. That is the freaking dream team of ROM hacking and translation. Tomato has brought us tons of awesome translations like Bahamut Lagoon and Star Ocean; he also worked for Funimation translating various anime shows, including Dragonball Z (personally I'm willing to forgive him for that one;-). Demi brought us the original EarthBound Zero ROM. Gideon has done so many awesome hacking projects it would make your head spin. There is nothing you could possibly add to that team to make it better.
Ultimately, I think having two different translation projects will be great. The different interpretations will give us fans an interesting insight into the game; I know I will appreciate playing both. I've heard that the Mother3.Org team has been having problems though - they recently canned their translator or something like that. Here's hoping both teams can see their projects to completion!
Well, I was replying mostly to the AC's apparent claim that sacrificing some graphical performance for larger environments was a bad thing. The way he phrased it sounded like he was saying that the graphics were the only important consideration.
Check again. The receipt was for $903.97 CAD, and the auction closed for $734.98 CAD. He lost $168.99, less whatever his markup on shipping was. Maybe not "several hundred" dollars, but he certainly did fail to set a reserve that was at least his cost, and he lost quite a bit as a result. Assuming he actually shipped the item, that is... He's no longer a registered eBay user.:-P
And the Halo team has recently come out and stated that they are not going to be able to match Gears of War due to the larger scale of the Halo environments.
Good! I'd rather have immersive huge-scale environments that merely look good rather than small environments that sacrifice gameplay potential to add a little extra smoothness to the zillion+ triangles already being pushed out by the GPU.
I've never had huge memory issues on my primary desktop, but on my notebook I've had Firefox 1.5 push the 1 gigabyte memory consumption mark, after several hours of normal browsing. I think I have mostly the same plugins installed on both, but I'll admit I haven't investigated rigorously.
Interestingly, I tried disabling Firefox's memory cache, and that fixed the memory problem, but then random websites started loading as blank pages...
A common way is to just use a constructor function that builds a specialized object from a prototype by adding new fields and methods to it. Then you set the constructor function's prototype property to the desired "base" object.
function Rodent() { this.isFuzzy = true; }
function Squirrel() { this.gatherNuts = function() { alert("I like pistachios."); } }
// base each new Squirrel object on a Rodent object Squirrel.prototype = new Rodent();
This approach is simple enough, and IMHO doesn't need any top-heavy syntactic sugar to make it look or feel like class inheritance.
Those are pretty much finalized and sorely needed for any webdeveloper who had to hack up their own "extends" or "private/public/protected" conventions (i.e. any JS developer working on more than 30-40 lines of code).
JavaScript is a prototype-based language. If you are trying to write class-like code (extends) in a prototyped language, maybe you should rethink your designs? Between prototypes and lexical closures, JavaScript currently has great support for object-oriented programming; you just have to use it the way it was meant to be used, not the way you'd use Java or C++.
Don't get me wrong; I'm looking forward to class support in JavaScript 2.0, if that ever comes along. I use Mozilla's JavaScript engine as a scripting system for games, so I don't particularly care about the browser and standards issues. The addition of generators in JS1.7 is especially nice for me, since I had hacked in my own cooperative multitasking solution for scripting actor coroutines; my solution worked (it was a higher-order function in JS which produced execution state-managed continuations from functions with yields - a generator generator, if you will;-), but using theirs will be much cleaner. I recognize I'm in a tiny minority of JS users, though, and your points about standards are valid. Ultimately these features will either have to be accepted as standard (unlikely), or Mozilla will have to completely dominate the browser market (more unlikely), or these shiny new goodies may simply be not worth using for practical web developers.
Still, I have to admit I can be like a kid in a candy shop when it comes to new features. They all look so tasty.:-)
Uh, this may come as a surprise, but Google actually does not own a massive network of multi-billion-dollar imaging satellites. All the images on Google Earth are cobbled together from various collections of satellite and aerial photographs, and are anywhere from one to ten years old. New images will be available whenever somebody else takes them, and once Google gets a hold of them.
Yes, I agree that it would be a mistake to idolize the "founding fathers". They did many things we revile today. But you gotta admit, the British were asking for it.;-)
Revolutions, also known as insurgencies, rebellions and terrorism, are illegal.
Well, duh they're illegal. Why do you think such a thing would be necessary in the first place? That doesn't mean they're always wrong. Worked for us in 1776.
And you're committing an error by lumping revolution in with terrorism - the two are most certainly not the same, though they are all too often good fellows.
Someone who is truely pro-life wouldn't start or go to war. Nor would they allow guns to be freely sold to the mass public.
Buh? First, I must say I'm not exactly pro-life (I think abortion is a terrible thing, but I can't agree that it should be made illegal). I am, at any rate, a strong proponent of the second amendment, and I do not see how belief in the sanctity of innocent life would necessitate opposition to freedom of gun ownership. Remember that there are two things we must defend in America: life and liberty, the latter being more important than the former.
That said, I am completely and totally against Bush because of his overt contempt for basic human rights and civil liberties. Whether or not he supports the second amendment is immaterial, considering he would love nothing more than to do away completely with the rest of them. His religious views, his economic policies; these are also strikes against him, but pale in comparison to his view of the Constitution.
Yes, it is. The whole reason this country is here is because some people felt that liberty was worth fighting for; worth dying for. We should be Americans, dammit, not cowards.
Well, I don't know if this means anything, but I met him a couple months ago when he was at the University of Washington in Seattle, and if memory serves me correctly he was wearing a gray turtleneck. Perhaps the facade is cracking!
You definitely can hide instance variables in JavaScript. You have to employ JS's lexical closures, and it might seem a little odd to someone who's not used to it, but such as it is:
(Note: Give me a break, Slashdot! Why no "pre" formatting in code blocks???)
As for classes, it should be noted that JavaScript is prototype-based, which is really a very nice way of approaching OO once you get used to it. There is something of an effort to make ECMAScript more class-based, though, and the next version of JavaScript from the Mozilla guys will include support for classes.
Continuations are not supported as such, but Mozilla's JS 1.7 does include support for generators, which are very nice and can be used to do some of the things you could do with continuations.
A check for 0.2 cents? Somehow I don't think that's gonna pay his phone bill. :-)
9 minutes? No fricking way. They were sold out within 30 seconds. I know because I managed to get through their confirmation page at 11:00:30AM PST, and I got the "sold out" message. I live near Seattle, so the worst I had was waiting about ten seconds for each page to load.
:-(
Actually, I managed to get the confirmation page by 11:00:15, but I somehow didn't notice a little "I agree to these terms" checkbox before I clicked through. The confirmation failed, and I had to do it again. If it wasn't for that extra 15 seconds, I might've got one.
Nah; just off the top of my head, it was also used for Super Scope 6 (a set of 6 crappy mini-games that I believe was packaged with the Super Scope), and Yoshi's Safari. There's a list of other games it was used for in the Wikipedia article.
While there might be some small benefit, it would not be as large as you think. Gravitational acceleration is still very significant at 500km up.
Acceleration toward an object due to gravity is given by g = GM/r^2, where G = 6.67e-11 is the gravitational constant, M is the mass of the object, and r is the distance from the center of mass of the object. The mass of the earth is about 5.97e24 kilograms, and its mean radius is about 6.37e6 meters. Thus, the acceleration due to gravity at the planet's surface is approximately (6.67e-11 * 5.97e24) / (6.37e6^2) = 9.81 m/s^2.
Go up another measly 500 kilometers, and your new acceleration is approximately (6.67e-11 * 5.97e24) / (6.87e6^2) = 8.44 m/s^2. That's only a 14% difference; a very noticeable reduction, but not enough to have significant savings. Your rocket fuel wouldn't go much farther at all, at least when the goal of the space elevator is to reduce cargo costs by orders of magnitude.
It's not so much pride as a complete lack of necessity. The Starmen.Net team consists of Tomato, demiforce, and Gideon Zhi. That is the freaking dream team of ROM hacking and translation. Tomato has brought us tons of awesome translations like Bahamut Lagoon and Star Ocean; he also worked for Funimation translating various anime shows, including Dragonball Z (personally I'm willing to forgive him for that one ;-). Demi brought us the original EarthBound Zero ROM. Gideon has done so many awesome hacking projects it would make your head spin. There is nothing you could possibly add to that team to make it better.
Ultimately, I think having two different translation projects will be great. The different interpretations will give us fans an interesting insight into the game; I know I will appreciate playing both. I've heard that the Mother3.Org team has been having problems though - they recently canned their translator or something like that. Here's hoping both teams can see their projects to completion!
Well, I was replying mostly to the AC's apparent claim that sacrificing some graphical performance for larger environments was a bad thing. The way he phrased it sounded like he was saying that the graphics were the only important consideration.
Check again. The receipt was for $903.97 CAD, and the auction closed for $734.98 CAD. He lost $168.99, less whatever his markup on shipping was. Maybe not "several hundred" dollars, but he certainly did fail to set a reserve that was at least his cost, and he lost quite a bit as a result. Assuming he actually shipped the item, that is... He's no longer a registered eBay user. :-P
Good! I'd rather have immersive huge-scale environments that merely look good rather than small environments that sacrifice gameplay potential to add a little extra smoothness to the zillion+ triangles already being pushed out by the GPU.
If the fundies are right and there's a Hell, you're going there for sure, and I'm going right along with you for laughing.
...It was worth it.
Considering the number of live sacrifices I had to make to ensure the success of my last x86 project, yes, I'd say that sounds reasonable.
I've never had huge memory issues on my primary desktop, but on my notebook I've had Firefox 1.5 push the 1 gigabyte memory consumption mark, after several hours of normal browsing. I think I have mostly the same plugins installed on both, but I'll admit I haven't investigated rigorously.
Interestingly, I tried disabling Firefox's memory cache, and that fixed the memory problem, but then random websites started loading as blank pages...
Sticks and rocks will no longer protect you. You're going to need to get some kind of gun that fires dogs.
Is it bad that this almost made me snort orange juice all over my keyboard? :-X
A common way is to just use a constructor function that builds a specialized object from a prototype by adding new fields and methods to it. Then you set the constructor function's prototype property to the desired "base" object.
This approach is simple enough, and IMHO doesn't need any top-heavy syntactic sugar to make it look or feel like class inheritance.
JavaScript is a prototype-based language. If you are trying to write class-like code (extends) in a prototyped language, maybe you should rethink your designs? Between prototypes and lexical closures, JavaScript currently has great support for object-oriented programming; you just have to use it the way it was meant to be used, not the way you'd use Java or C++.
Don't get me wrong; I'm looking forward to class support in JavaScript 2.0, if that ever comes along. I use Mozilla's JavaScript engine as a scripting system for games, so I don't particularly care about the browser and standards issues. The addition of generators in JS1.7 is especially nice for me, since I had hacked in my own cooperative multitasking solution for scripting actor coroutines; my solution worked (it was a higher-order function in JS which produced execution state-managed continuations from functions with yields - a generator generator, if you will ;-), but using theirs will be much cleaner. I recognize I'm in a tiny minority of JS users, though, and your points about standards are valid. Ultimately these features will either have to be accepted as standard (unlikely), or Mozilla will have to completely dominate the browser market (more unlikely), or these shiny new goodies may simply be not worth using for practical web developers.
Still, I have to admit I can be like a kid in a candy shop when it comes to new features. They all look so tasty. :-)
Forget choking! All you have to do is count "McDonald's" as "food", and then look at heart disease statistics... :-P
I dunno about you, but I'd rather have somebody try to sell me useless crap than break into and compromise the security of my system...
Yes, god forbid Al Qaeda get their hands on fart powder. Not even George W. "Cowboy" Bush could save us then! :-O
Uh, this may come as a surprise, but Google actually does not own a massive network of multi-billion-dollar imaging satellites. All the images on Google Earth are cobbled together from various collections of satellite and aerial photographs, and are anywhere from one to ten years old. New images will be available whenever somebody else takes them, and once Google gets a hold of them.
Yes, I agree that it would be a mistake to idolize the "founding fathers". They did many things we revile today. But you gotta admit, the British were asking for it. ;-)
Well, duh they're illegal. Why do you think such a thing would be necessary in the first place? That doesn't mean they're always wrong. Worked for us in 1776.
And you're committing an error by lumping revolution in with terrorism - the two are most certainly not the same, though they are all too often good fellows.
Buh? First, I must say I'm not exactly pro-life (I think abortion is a terrible thing, but I can't agree that it should be made illegal). I am, at any rate, a strong proponent of the second amendment, and I do not see how belief in the sanctity of innocent life would necessitate opposition to freedom of gun ownership. Remember that there are two things we must defend in America: life and liberty, the latter being more important than the former.
That said, I am completely and totally against Bush because of his overt contempt for basic human rights and civil liberties. Whether or not he supports the second amendment is immaterial, considering he would love nothing more than to do away completely with the rest of them. His religious views, his economic policies; these are also strikes against him, but pale in comparison to his view of the Constitution.
Yes, it is. The whole reason this country is here is because some people felt that liberty was worth fighting for; worth dying for. We should be Americans, dammit, not cowards.