Much like web services, the importance seems to be in the interfaces. After scanning the developer's guide, the most important aspect of this language seems to be that it's a C# plus Axum libraries that allow you to describe "channels" with input/output keywords.
After scanning the guide as well, it reads a lot like Erlang as "improved" by a Java/C# lover. You get a lot of syntax to make strict specification, which is a win, but the result is that the language isn't very light on its feet or Lispy in the way Erlang is.
For example: Axum seems to have a pretty strict type system, which gives you the ability to catch compile-time errors more cleanly, but on the other hand, there doesn't seem to be a simple way of creating a Tuple or Array literal without using a function. And at that, while it uses concurrency like Haskel or Erlang, it doesn't appear to be at all pure-functional, or maybe it is but the design is already burping with an "isolated" keyword that warns the compiler to forbid modification of static vars within the function body.
If the EU wants higher-quality software, they should support an industry-wide system for the licensing and qualification of programmers, like we have for other engineering disciplines and professions. For example, they could require that all government software, or software for use in aircraft and life-critical functions. These developers wouldn't be "better" than anyone else, but they'd have taken an exam and be nominated by their peers, like a state bar.
If the software is developed by professional developers with licenses, it gets a big seal on it, and then people can choose to buy it or not based on the rep of the licensing body, and their risk tolerance.
Re:Fans are disconnected
on
Reviews: Star Trek
·
· Score: 2, Interesting
It is a sad day for Roddenberry's vision of the future.
It's important to understand the business context all of this is happening in.
When I came to LA in 1996, about 50% of the Paramount lot was dedicated to the production of Star Trek episodes (of various series) and films. Paramount was basically dependent on the revenues on the showings and reruns and reissues of the various Star Trek franchises -- to the point that they were commissioning expensive digital remasterings of the original episodes, let alone remixes and redoes of all the visual effects for the special editions.
TNG has never had the superb rerun performance that TOS did, and it's by far the best series of the new batch, and now that we're more than a decade past the end of TNG, it's become clear that the industry isn't going to be able to make money on any reruns of any kind, because of the Internet. This as much as anything else made Par finally stick a fork in the series. It wasn't so much that the shows were bad or underviewed, though that was a problem, it's that the syndication and reruns looking forward were looking like they wouldn't be there like they were for TOS, which was the Golden Goose that got Par through the 70s in one piece (when Robert Evans greenlit very chancy and expensive shows like Chinatown and Godfather II, he was spending money that, to a large extent, was being raised from TV stations re-airing TOS).
Fast-forward to today. Paramount limps along, with a heavily curtailed release schedule. It has torn down several stages in order to build a new post-production complex that many people seriously believe will never go into operation, because Par may not live to see the completion. Par's executives that tended to cultivate the niche-e-ness of the ST franchise are gone, as is the money from the various syndications that allowed Par to keep the brand distinct and nitch-y, and the new people are focused heavily on trying to get a film that runs well overseas. Star Trek has never been terribly successful overseas, it's very American in tone and content, and though it may have been inspiring to Trekkies living behind the Iron Curtain in 1983, it has never been a big revenue getter.
Enter JJ Abrams, someone who can wind a good yarn, never lets you see the inside of the magic box, and made Par a lot of money on Cloverfield. He's never really watched the series, but this is a plus because they're looking for a "fresh perspective".
So you have a situation where a studio is almost frantic to exploit the Most Successful IP it ever had, and that IP happens to do bad overseas, so they get a generalist to turn the work into a generalist entertainment.
The quality of the TV serieses, and Par's ability to turn that money into movies that reinforced the consumption and brand of the serieses, was critical to their business, and the side effect was that the content of the universe was distinct and unusual and somewhat uncommmercial, because the effect of catering to the ST fanbase was a force multiplier when it came time to collect money from TV stations showing the serieses. When rerun syndication failed, there was no money in keeping the brand a niche.
I mean how long does even the most sensitive data need to remain protected? 30 years?
The exact method for constructing an atomic bomb is still secret, though most nuclear physicists could give you a good surmise... The exact method for constructing a Tellar-Ulam thermonuclear bomb is also still a secret that we wouldn't want to be generally available, and that's over 50 years old.
You do make a good point though, that "planned obsolescence" is a good feature to look for, particularly in a government encryption algorithm. The problem is that when attacks are found in these algorithms, they tend to reduce the amount of time required to crack the key by a factor of thousands, so suddenly your 30-year signature on the data is only good for a month, before some attacker can start passing off his messages as yours.
Al Gore saying that global warming is man-made, dangerous, and can be stopped with effective public policy.
Dick Cheney chaining a guy to a wall for a month in freezing cold, defecating on himself, subjected to mock executions and simulated drownings, all to force him to say that Bin Laden and Saddam Hussein are buddies. Oh, and he taps your phone.
This really isn't something that should be in the core language... but then again PHP has friggin' soundex functions in the core language, so what do I know that they don't?
Doesn't Cake or some other PHP framework provide something like this?
I wasn't replying to the article, I was replying to Kell Bengal. The article excludes embryonic stem cells artificially, probably because the author didn't want to start a fight, even though everything he says applies to embryonic cells too. He's a coward.
You can chill, I'm not a pro-lifer or anything, I'd just like to know that embryos are destroyed to saving life and curing disease, not make some guy rich peddling a fraud. Even if they ain't people, and even if we're talking about adult stem cells, they're both still human tissue; I wouldn't want someone selling chunks of human liver as an ingredient in a "miracle cure" either. There's really only a difference of degree between that and chopping of the arms of albinos to make potions...
If I'm dying of cancer, sure, I'll try damn near/anything/ in my last days.
Yes, and you'll agree to damn near any price, even if the treatment in question only works in one in a thousand cases. Even if you're dying, it's still not permissible for an unscrupulous doctor or medical service company to defraud you (or your insurance, as the case may be), and divert gobs of money from desperate people. Money that should be going to the genius that can cure cancer, and not to some dude that's selling Persian wheat infused with "medicinal silver ions" in an alcohol suspension.
I'm particularly not crazy about stem cells being cultivated, and possibly embryos destroyed, for frivolous treatments.
Users get used to periodic failures and work around them, just like desktop users do.
It seems to me that failures like this are tolerable as long as the different systems have enough decoupling, and enough human attention is in the loop to modulate the system. If the system reporting your 3-month historical blood pressure crashes, no biggie, but if the actuator making my respirator move relied on a web page's embedded OLE control always returning the right value over XMLRPC, I'd be a little more nervous. Well, a lot more nervous.
So, you're right in that Hungarian doesn't reflect what's on the metal.
You're right, but I wasn't really talking about the implementation, either (and I never mentioned in-memory rep, heaven forfend). As you started off saying, Hungarian notation is used as an ergonomic aid to the people who have to read the code. And my point is that any imputation of type or class onto a variable in a duck-typed language is a leaky abstraction. Some idiot's going to look at your line one day and to a test for (iFoo.class == Integer), and get a nasty surprise, or is going to declare a method on Integer and be shocked that iFoo doesn't have the method when he tries to use it, or is going to try to serialize iFoo when he should in fact be reading the client method to make sure it returns a value that not only acts like an Integer but is also serializeable. For integers these are sorta silly examples, but you run into this all the time when you're request a new array from something like the NSArray class in Objective-C, and it in fact hands you an instance of a private subclass of NSArray optimized for your platform, or the number of indexes it has. Or in another case you might request the selection of a table view, and the table view hands you an object that looks like the represented object of the table view's selected row, and responds to all of the methods of the object, but is in fact a proxy that refers all your relevant calls to the underlying object, using the proxy as a way of keeping the original table view notified of changes to the underlying object.
But the whole point was to distinguish identical representations on the metal, like loop indicies and scalar multipliers in Lua, both of which have to be represented by a double.
That's not what you said before; your original claim was HN should be used to explicate type, to wit:
the only way to know what type Foo is (when writing code, not reflexivly at run time) is that is called iFoo. Why is it guaranteed to be an integer? Cause that's the rule, and if you break it, your code is wrong...
Using "iFoo" to denote the role of the variable (as an accumulator in the case of a loop) is quite a different matter and I can get behind that. But I would still hasten to add that, even using reflection, you really can't tell if the value bound to iFoo is an integer. You can test to see if it responds to a certain method or protocol, that's really all you can do. You can also, in some languages, test the value of iFoo to see what class it is or what it inherits from, but this would give you false negatives in situations where a client was handing you an object that looked like an Integer and quacked like an Integer but was really something else, like in the delay/force example.
The claim "Why is it guaranteed to be an Integer?" is based on the false premise that it's guaranteed to be anything.
you'll never, under any circumstance, be able to guarantee, in any provable way, that it will hold an integer
In a weak or duck-typed language, it's impossible to write an expression that is guaranteed to evaluate a value of a particular type. Even a simple statement like "1+1" is not guaranteed to return an integer, only perhaps to return an object that has all of the methods of an integer (or a value that has all the properties thereof).
Think about it in Scheme or Lisp. The form "+" adds two integers, but the only thing that tells you that is the documentation. This is supposed to be a good thing, since now in Scheme for instance, instead of + returning an immediate value, it can return a list using (delay x y) so that instead of receiving an instant answer, you have a value that contains all of the information to find the solution, but doesn't eval it until needed (it's "lazy"). + in this case returns a proxy value that only behaves like an integer.
Proxy pattern is used all over the place in weak languages. A string-extraction function might not return a substring, but a trampoline object that merely consults the original string every time you try to inspect it's contents. etc. The proxy object has all the methods of a string and can be used in all the places a string can be used, but it ain't a string, it's just a shadow of the original.
correct, Hungarian doesn't give you any guarantees. that's what type systems are for.
Weakly-typed languages don't have type systems, or if they do, they're on an advisory basis only.
then you know that's probably an error without having to look elsewhere.
Unless somewhere someone opened the Integer class and implemented in it all of the string methods, in which case using strFoo with methods that expect a string will work perfectly.
The part of Lucasfilm now called Pixar, it might be added.
I always thought that Duff's device wasn't an example so much of optimization as much as it was an example of how strange C's switch statement semantics were. That you can have switch cases both inside and outside a do loop strikes most people as being very strange. That the compiler takes this and actually interprets it into optimized assembly is even more confounding and interesting.
Actually, in weakly typed languages, the only way to know what type Foo is (when writing code, not reflexivly at run time) is that is called iFoo. Why is it guaranteed to be an integer? Cause that's the rule, and if you break it, your code is wrong....
I run into this misconception a lot, I think it has to do with the way people from strict languages try to duck or non-typed languages in their brains. You can name a variable iFoo, but you'll never, under any circumstance, be able to guarantee, in any provable way, that it will hold an integer, because in a weak- or duck-typed language, you have no guarantee that a function or any operation will return a value of any particular type. It simply returns what it wishes, and you write your code around the presumption that the value of Foo merely provides the methods and behaviors you need. Foo may not hold an Integer, it might hold a string representation of an integer or an array, but as long as ArrayOfSize(Foo) (or whatever) returns an array of size Foo as if Foo were an integer, the code "works," and in a weakly-typed language this is the equivalent of "correct" (setting aside "maintainable" or "well-coded" or "efficient").
Hungarian Notation to imply "type" on named variables in a weak-typed language just give you a false sense of security, because they imply a guarantee that the language is generally incapable of making. The only way you can know if iFoo is an integer is by running its "isInteger()" method against it, and in a weakly-typed language, that only guarantees that it has an isInteger method, and that it merely will behave as an integer for all intents and purposes, not that it is truly an "Integer."
The only way you can guarantee the "type" of the value bound to a variable is by assigning it to a literal, and even then, most weak languages give you ways of redefining the methods and behaviors of literals.
The Cold War is over, so being a communist is not grounds for immediate US intervention.
I wasn't aware it was "grounds" during the cold war. Being communist doesn't make you a Soviet ally, or even a material threat to the US or US interests. A state actually has to act for there to be grounds for anything...
The US regime with a tendency to interfere in other countries in support of corporate interests has recently been removed from power.
Ah, well, I guess we'll see, but Bay of Pigs was authorized by a Democrat, and a relatively sober, pragmatic center-leftist at that. same guy also escalated our involvement in Vietnam, and his successor and secretaries, all sober establishmentarians, prosecuted the vietnam war quite zealously. Eisenhower, a very serious, non-partisan, conservative-in-the-old-sense conservative, who warned us of the military-industrial complex, authorized the CIA-led overthrow of a center-left government in Guatemala and another CIA-inspired coup in Iran, over another left-socialist, but very nationalistic and non-communist/non-soviet government. US Imperialism cuts pretty deep into the establishment and is non-partisan, and even if Barack Obama is a good diplomat, he hasn't really challenged the assumptions of people who think America should still be first among equals, and simply presume that the US should take a leading role in, oh, pacifying Pakistan border areas, or Kashmir, or fighting for the rights of Tibetans, or the many other myriad things that sound nice and humanist and ideal, but in the end are just interventionist.
Where are you going to 'get' hydrogen? Number 1 source presently is extraction from fossil fuels, a process that liberates carbon, I might add, and is less efficient than plain burning the fossil fuel. Number 2 method of electrolysis of water, which just turns electricity input into chemical potential energy as free hydrogen, minus losses. You can't mine hydorgen, and no one has a process wherein you put x amount of energy and get x+y in hydorgen potential energy back.
You understand the point I'm making, right? Lithium doesn't actually "have" energy, it's just a way of moving energy around. The comparison with Saudi Arabia is false because Saudi Arabia has mineral resources that actually manifest terawatts of potential energy. Lithium in the ground can't run a pocket calculator, and the amount of energy you spend processing it and turning into a battery and then CHARGING it will never be less than the amount of work the battery will perform.
Lithium may be an important strategic asset I suppose, like palladium or gold or Indium, but it isn't a power source.
Lithium can't power anything. A lithium battery is mostly a repository of power that you generated somewhere else. It's the same problem that we have with hydrogen. It's just a carrier medium; it's not like oil or coal, or Uranium, (or the Sun), which actually have intrinsic exploitable energy.
I knew I should have looked this up before clicking submit: this makes Wolfram Alpha 1.25 million times more complicated than the entire universe
All of this time we've been worried about the LHC hoovering-up the solar system with a black hole, when in fact a search engine running mathematica will in fact be frying the galaxy by increasing local entropy by a factor of millions:)
I swear I've seen contestants answer questions like this as
"What is 'Why did the chicken cross the road'?" The response to a jeopardy "answer" is always an answer token preceded by 'who (verb phrase)' or 'what (verb phrase)', even if the particular 'what' is a phrase beginning with a different interrogative. The whole answers/questions formalism has always been very strange...
I am enlightened. Thank you.
After scanning the guide as well, it reads a lot like Erlang as "improved" by a Java/C# lover. You get a lot of syntax to make strict specification, which is a win, but the result is that the language isn't very light on its feet or Lispy in the way Erlang is.
For example: Axum seems to have a pretty strict type system, which gives you the ability to catch compile-time errors more cleanly, but on the other hand, there doesn't seem to be a simple way of creating a Tuple or Array literal without using a function. And at that, while it uses concurrency like Haskel or Erlang, it doesn't appear to be at all pure-functional, or maybe it is but the design is already burping with an "isolated" keyword that warns the compiler to forbid modification of static vars within the function body.
That's exactly what "professionals" use to limit competition. Great idea. NOT!!!
You must be disappointed you can't get your immunization shots from a vet...
If the EU wants higher-quality software, they should support an industry-wide system for the licensing and qualification of programmers, like we have for other engineering disciplines and professions. For example, they could require that all government software, or software for use in aircraft and life-critical functions. These developers wouldn't be "better" than anyone else, but they'd have taken an exam and be nominated by their peers, like a state bar.
If the software is developed by professional developers with licenses, it gets a big seal on it, and then people can choose to buy it or not based on the rep of the licensing body, and their risk tolerance.
It is a sad day for Roddenberry's vision of the future.
It's important to understand the business context all of this is happening in.
When I came to LA in 1996, about 50% of the Paramount lot was dedicated to the production of Star Trek episodes (of various series) and films. Paramount was basically dependent on the revenues on the showings and reruns and reissues of the various Star Trek franchises -- to the point that they were commissioning expensive digital remasterings of the original episodes, let alone remixes and redoes of all the visual effects for the special editions.
TNG has never had the superb rerun performance that TOS did, and it's by far the best series of the new batch, and now that we're more than a decade past the end of TNG, it's become clear that the industry isn't going to be able to make money on any reruns of any kind, because of the Internet. This as much as anything else made Par finally stick a fork in the series. It wasn't so much that the shows were bad or underviewed, though that was a problem, it's that the syndication and reruns looking forward were looking like they wouldn't be there like they were for TOS, which was the Golden Goose that got Par through the 70s in one piece (when Robert Evans greenlit very chancy and expensive shows like Chinatown and Godfather II, he was spending money that, to a large extent, was being raised from TV stations re-airing TOS).
Fast-forward to today. Paramount limps along, with a heavily curtailed release schedule. It has torn down several stages in order to build a new post-production complex that many people seriously believe will never go into operation, because Par may not live to see the completion. Par's executives that tended to cultivate the niche-e-ness of the ST franchise are gone, as is the money from the various syndications that allowed Par to keep the brand distinct and nitch-y, and the new people are focused heavily on trying to get a film that runs well overseas. Star Trek has never been terribly successful overseas, it's very American in tone and content, and though it may have been inspiring to Trekkies living behind the Iron Curtain in 1983, it has never been a big revenue getter.
Enter JJ Abrams, someone who can wind a good yarn, never lets you see the inside of the magic box, and made Par a lot of money on Cloverfield. He's never really watched the series, but this is a plus because they're looking for a "fresh perspective".
So you have a situation where a studio is almost frantic to exploit the Most Successful IP it ever had, and that IP happens to do bad overseas, so they get a generalist to turn the work into a generalist entertainment.
The quality of the TV serieses, and Par's ability to turn that money into movies that reinforced the consumption and brand of the serieses, was critical to their business, and the side effect was that the content of the universe was distinct and unusual and somewhat uncommmercial, because the effect of catering to the ST fanbase was a force multiplier when it came time to collect money from TV stations showing the serieses. When rerun syndication failed, there was no money in keeping the brand a niche.
IMHO. Either that or it's all Manny Coto's fault.
I mean how long does even the most sensitive data need to remain protected? 30 years?
The exact method for constructing an atomic bomb is still secret, though most nuclear physicists could give you a good surmise... The exact method for constructing a Tellar-Ulam thermonuclear bomb is also still a secret that we wouldn't want to be generally available, and that's over 50 years old.
You do make a good point though, that "planned obsolescence" is a good feature to look for, particularly in a government encryption algorithm. The problem is that when attacks are found in these algorithms, they tend to reduce the amount of time required to crack the key by a factor of thousands, so suddenly your 30-year signature on the data is only good for a month, before some attacker can start passing off his messages as yours.
Avoid bignums whenever possible
(2^57)/(2^52) = 2^(57-52) = 2^5 = 32 times speedup
Powers of 2 sneak up on you! :)
Moral equivalency of the day:
This really isn't something that should be in the core language... but then again PHP has friggin' soundex functions in the core language, so what do I know that they don't?
Doesn't Cake or some other PHP framework provide something like this?
Whenever I get those, I just put an @ sign in from of "echo," then everything will work great! \dumbPHPkoder
I wasn't replying to the article, I was replying to Kell Bengal. The article excludes embryonic stem cells artificially, probably because the author didn't want to start a fight, even though everything he says applies to embryonic cells too. He's a coward.
You can chill, I'm not a pro-lifer or anything, I'd just like to know that embryos are destroyed to saving life and curing disease, not make some guy rich peddling a fraud. Even if they ain't people, and even if we're talking about adult stem cells, they're both still human tissue; I wouldn't want someone selling chunks of human liver as an ingredient in a "miracle cure" either. There's really only a difference of degree between that and chopping of the arms of albinos to make potions...
If I'm dying of cancer, sure, I'll try damn near /anything/ in my last days.
Yes, and you'll agree to damn near any price, even if the treatment in question only works in one in a thousand cases. Even if you're dying, it's still not permissible for an unscrupulous doctor or medical service company to defraud you (or your insurance, as the case may be), and divert gobs of money from desperate people. Money that should be going to the genius that can cure cancer, and not to some dude that's selling Persian wheat infused with "medicinal silver ions" in an alcohol suspension.
I'm particularly not crazy about stem cells being cultivated, and possibly embryos destroyed, for frivolous treatments.
Users get used to periodic failures and work around them, just like desktop users do.
It seems to me that failures like this are tolerable as long as the different systems have enough decoupling, and enough human attention is in the loop to modulate the system. If the system reporting your 3-month historical blood pressure crashes, no biggie, but if the actuator making my respirator move relied on a web page's embedded OLE control always returning the right value over XMLRPC, I'd be a little more nervous. Well, a lot more nervous.
So, you're right in that Hungarian doesn't reflect what's on the metal.
You're right, but I wasn't really talking about the implementation, either (and I never mentioned in-memory rep, heaven forfend). As you started off saying, Hungarian notation is used as an ergonomic aid to the people who have to read the code. And my point is that any imputation of type or class onto a variable in a duck-typed language is a leaky abstraction. Some idiot's going to look at your line one day and to a test for (iFoo.class == Integer), and get a nasty surprise, or is going to declare a method on Integer and be shocked that iFoo doesn't have the method when he tries to use it, or is going to try to serialize iFoo when he should in fact be reading the client method to make sure it returns a value that not only acts like an Integer but is also serializeable. For integers these are sorta silly examples, but you run into this all the time when you're request a new array from something like the NSArray class in Objective-C, and it in fact hands you an instance of a private subclass of NSArray optimized for your platform, or the number of indexes it has. Or in another case you might request the selection of a table view, and the table view hands you an object that looks like the represented object of the table view's selected row, and responds to all of the methods of the object, but is in fact a proxy that refers all your relevant calls to the underlying object, using the proxy as a way of keeping the original table view notified of changes to the underlying object.
But the whole point was to distinguish identical representations on the metal, like loop indicies and scalar multipliers in Lua, both of which have to be represented by a double.
That's not what you said before; your original claim was HN should be used to explicate type, to wit:
the only way to know what type Foo is (when writing code, not reflexivly at run time) is that is called iFoo. Why is it guaranteed to be an integer? Cause that's the rule, and if you break it, your code is wrong...
Using "iFoo" to denote the role of the variable (as an accumulator in the case of a loop) is quite a different matter and I can get behind that. But I would still hasten to add that, even using reflection, you really can't tell if the value bound to iFoo is an integer. You can test to see if it responds to a certain method or protocol, that's really all you can do. You can also, in some languages, test the value of iFoo to see what class it is or what it inherits from, but this would give you false negatives in situations where a client was handing you an object that looked like an Integer and quacked like an Integer but was really something else, like in the delay/force example.
The claim "Why is it guaranteed to be an Integer?" is based on the false premise that it's guaranteed to be anything.
you'll never, under any circumstance, be able to guarantee, in any provable way, that it will hold an integer
In a weak or duck-typed language, it's impossible to write an expression that is guaranteed to evaluate a value of a particular type. Even a simple statement like "1+1" is not guaranteed to return an integer, only perhaps to return an object that has all of the methods of an integer (or a value that has all the properties thereof).
Think about it in Scheme or Lisp. The form "+" adds two integers, but the only thing that tells you that is the documentation. This is supposed to be a good thing, since now in Scheme for instance, instead of + returning an immediate value, it can return a list using (delay x y) so that instead of receiving an instant answer, you have a value that contains all of the information to find the solution, but doesn't eval it until needed (it's "lazy"). + in this case returns a proxy value that only behaves like an integer.
Proxy pattern is used all over the place in weak languages. A string-extraction function might not return a substring, but a trampoline object that merely consults the original string every time you try to inspect it's contents. etc. The proxy object has all the methods of a string and can be used in all the places a string can be used, but it ain't a string, it's just a shadow of the original.
correct, Hungarian doesn't give you any guarantees. that's what type systems are for.
Weakly-typed languages don't have type systems, or if they do, they're on an advisory basis only.
then you know that's probably an error without having to look elsewhere.
Unless somewhere someone opened the Integer class and implemented in it all of the string methods, in which case using strFoo with methods that expect a string will work perfectly.
The part of Lucasfilm now called Pixar, it might be added.
I always thought that Duff's device wasn't an example so much of optimization as much as it was an example of how strange C's switch statement semantics were. That you can have switch cases both inside and outside a do loop strikes most people as being very strange. That the compiler takes this and actually interprets it into optimized assembly is even more confounding and interesting.
Actually, in weakly typed languages, the only way to know what type Foo is (when writing code, not reflexivly at run time) is that is called iFoo. Why is it guaranteed to be an integer? Cause that's the rule, and if you break it, your code is wrong....
I run into this misconception a lot, I think it has to do with the way people from strict languages try to duck or non-typed languages in their brains. You can name a variable iFoo, but you'll never, under any circumstance, be able to guarantee, in any provable way, that it will hold an integer, because in a weak- or duck-typed language, you have no guarantee that a function or any operation will return a value of any particular type. It simply returns what it wishes, and you write your code around the presumption that the value of Foo merely provides the methods and behaviors you need. Foo may not hold an Integer, it might hold a string representation of an integer or an array, but as long as ArrayOfSize(Foo) (or whatever) returns an array of size Foo as if Foo were an integer, the code "works," and in a weakly-typed language this is the equivalent of "correct" (setting aside "maintainable" or "well-coded" or "efficient").
Hungarian Notation to imply "type" on named variables in a weak-typed language just give you a false sense of security, because they imply a guarantee that the language is generally incapable of making. The only way you can know if iFoo is an integer is by running its "isInteger()" method against it, and in a weakly-typed language, that only guarantees that it has an isInteger method, and that it merely will behave as an integer for all intents and purposes, not that it is truly an "Integer."
The only way you can guarantee the "type" of the value bound to a variable is by assigning it to a literal, and even then, most weak languages give you ways of redefining the methods and behaviors of literals.
The Cold War is over, so being a communist is not grounds for immediate US intervention.
I wasn't aware it was "grounds" during the cold war. Being communist doesn't make you a Soviet ally, or even a material threat to the US or US interests. A state actually has to act for there to be grounds for anything...
The US regime with a tendency to interfere in other countries in support of corporate interests has recently been removed from power.
Ah, well, I guess we'll see, but Bay of Pigs was authorized by a Democrat, and a relatively sober, pragmatic center-leftist at that. same guy also escalated our involvement in Vietnam, and his successor and secretaries, all sober establishmentarians, prosecuted the vietnam war quite zealously. Eisenhower, a very serious, non-partisan, conservative-in-the-old-sense conservative, who warned us of the military-industrial complex, authorized the CIA-led overthrow of a center-left government in Guatemala and another CIA-inspired coup in Iran, over another left-socialist, but very nationalistic and non-communist/non-soviet government. US Imperialism cuts pretty deep into the establishment and is non-partisan, and even if Barack Obama is a good diplomat, he hasn't really challenged the assumptions of people who think America should still be first among equals, and simply presume that the US should take a leading role in, oh, pacifying Pakistan border areas, or Kashmir, or fighting for the rights of Tibetans, or the many other myriad things that sound nice and humanist and ideal, but in the end are just interventionist.
Where are you going to 'get' hydrogen? Number 1 source presently is extraction from fossil fuels, a process that liberates carbon, I might add, and is less efficient than plain burning the fossil fuel. Number 2 method of electrolysis of water, which just turns electricity input into chemical potential energy as free hydrogen, minus losses. You can't mine hydorgen, and no one has a process wherein you put x amount of energy and get x+y in hydorgen potential energy back.
You understand the point I'm making, right? Lithium doesn't actually "have" energy, it's just a way of moving energy around. The comparison with Saudi Arabia is false because Saudi Arabia has mineral resources that actually manifest terawatts of potential energy. Lithium in the ground can't run a pocket calculator, and the amount of energy you spend processing it and turning into a battery and then CHARGING it will never be less than the amount of work the battery will perform.
Lithium may be an important strategic asset I suppose, like palladium or gold or Indium, but it isn't a power source.
Lithium can't power anything. A lithium battery is mostly a repository of power that you generated somewhere else. It's the same problem that we have with hydrogen. It's just a carrier medium; it's not like oil or coal, or Uranium, (or the Sun), which actually have intrinsic exploitable energy.
Forty-two. Think about it. ;)
I knew I should have looked this up before clicking submit: this makes Wolfram Alpha 1.25 million times more complicated than the entire universe
All of this time we've been worried about the LHC hoovering-up the solar system with a black hole, when in fact a search engine running mathematica will in fact be frying the galaxy by increasing local entropy by a factor of millions :)
My English professor once explained to me that the human brain tricks most people into believing that they understand English.
I swear I've seen contestants answer questions like this as "What is 'Why did the chicken cross the road'?" The response to a jeopardy "answer" is always an answer token preceded by 'who (verb phrase)' or 'what (verb phrase)', even if the particular 'what' is a phrase beginning with a different interrogative. The whole answers/questions formalism has always been very strange...