and Microsoft implemented a version of those standards before they were standards, and became the Defacto Quirks Mode way things were done for a long time, and that was deemed Evil.
Supporting future standards before they've gone through the full W3C process is not evil. Microsoft were criticised for implementing their own standards, screwing up existing standards, and taking too long to discard failed standards.
Now there are standards around HTML5 being proposed, but probably 10 years off, or at least way off
The HTML5 standard is meant to be implemented incrementally. The sections which browsers are implementing are generally pretty stable.
and Firefox and Google are implementing a version of these standars
And Opera and Apple. Even Microsoft have taken a couple of APIs from HTML5.
Since firefox is funded almost entirely by Google, it's a bit of misdirection to claim that it's "run by a nonprofit organization".
From Wikipedia:
A nonprofit organization is an organization that does not distribute its surplus funds to owners or shareholders, but instead uses them to help pursue its goals.
Being funded by Google doesn't mean that Mozilla isn't a nonprofit organisation.
Had Germany won the Battle of Britain that year and not invaded the USSR, then in all probability Europe would still be in the hands of the Third Reich.
Germany never had much chance of invading Britain. Even if Germany had continued bombing British airfields, the British airforce was pretty evenly matched against the Luftwaffe, and had all the homefield advantages in terms of fuel and being able to parachute out onto friendly soil. The main problem the British had was not loss of equipment, but loss of skilled pilots; however, this was also a problem for the Luftwaffe.
If the Luftwaffe had somehow succeeded, the Germans still needed to get a large number of men across a heavily mined and defended channel, and they didn't have the equipment to do that. D-Day was tricky enough for the Allies to pull off, and they had a much better navy and more coastline to land on. For Operation Sealion to be a success, Germany would have to pull off a much more ambitious feat against Britain.
If all you're concerned about is number of votes, put each candidate on prime time television belting out the worst songs they can think of.
I'm trying to find something wrong with your suggestion, and not succeeding. Gentlemen, if there is such thing as a perfect plan, this is it. Please moderate him insightful.
so you start a small project, "we just need a few hundred/thousand records, a few key value links and the occasional transaction". so you start with a slacker DB.
Eh? No, if anything you'd start with a relational DB, and then increasingly use non-relational databases as you scale. Relational DBs have a lot of functionality, but don't scale particularly well.
Try doing objects in Javascript sometime;-) The "Eigenclass" name seems to be unique to Ruby.
Javascript uses prototype-based inheritance, which is somewhat different again. Ruby has unusually flexible scopes, and eigenclasses provide a way to move from one scope to another. Javascript doesn't have anything like that, so even knowing Javascript fairly well, Ruby still seemed a bit odd to me.
I think the summary is that a decent CS course, even if it majors on a few common languages (and C/C++/Java are probably still the 3 safest bets), should also cover the diversity of languages and paradigms and the underlying theory. Otherwise, why not buy a copy of "Java for Dummies" and save 3 years of your life?
But seriously, if you've done Java, "oh, right, so I can add new methods to an instance" shouldn't be a major conceptual leap (even if it makes you throw up in your mouth a little).
In practise, it's little more complex than that. In Ruby classes are objects, so in the same way you can use an eigenclass to add methods to the class of an instance, you can use an eigenclass to add methods to the class of a class.
class Default
class << self
def default_accessor(attr, val)
define_method(attr) { instance_variable_get(attr) || val }
attr_writer(attr)
end
end end
class Foo < Default
default_accessor:bar, 10 end
If you're coming from Java, it can be a bit tricky to understand that you can add methods onto classes, as well as into them. Or perhaps it was just me that found the concept initially hard to grasp.
Plus, we're giving the benefit of the doubt here and assuming that the OP was on a proper Comp. Sci. course that covered some of the theory behind the various programming paradigms, and will look at Lisp and say "Oh, yeah, that's just lambda calculus".
It doesn't sound like the OP has that level of knowledge, to me.
You don't run across Eigenclasses a lot in Java, after all
Or in commercial programming, I suspect...
They're actually not that uncommon in RoR, especially in ActiveRecord plugins. I've worked on two RoR projects commercially, and both involved eigenclasses.
Although admittedly, RoR isn't that common commercially:)
At least when I went to university, they taught me C as a base to understand how programming works, the logic behind it, and the basics of designing/writing/testing&debugging. From there, all the programming languages are really the same, with their own little differences.
You're not very familiar with a wide variety of programming languages if you think that. It's true that many languages are conceptually similar to C, but there are many more that are very different from it.
For instance, in C you might write a factorial function like:
long factorial(int n) {
long f = 1;
for (int i = 2; i <= n; i++)
f *= i;
return f; }
Whilst in, say, Factor, you'd write it:
: factorial ( n -- n! )
1 [ 1+ * ] reduce;
Or in Haskell:
factorial = product . enumFromTo 1
Still think programming languages only have small differences?
Seriously - if you've studied C/C++/Java to a reasonable level, picking up other procedural/OOP languages like Pascal, C# should be a no-brainer.
OOP in Java and C++ is very different to OOP in, say, Smalltalk or Lisp, so it's not exactly a no-brainer. Even Ruby and Python are a little tricky to get used to. You don't run across Eigenclasses a lot in Java, after all:)
GP is wrong that knowledge of assembly gives one an "intuitive grasp of what is a good C or Fortran program"; it gives one a grasp of what C or Fortran code can be compiled tightly. This is a very good skill to have, but programs that compile tightly can be just as badly organized otherwise as any other program.
You make a good point, and I agree. I was thinking along the lines that even an assembly language program has to be structured, and that structure isn't completely different to a language like C. But yep, programming efficiently and programming well are two different subjects only distantly related to each other.
If the programmer really understands assembly, s/he should "intuitively" acquire a sound grasp of what makes a good program written in C, Fortran or whatever.
C or Fortran, perhaps, but once you start to get into higher level languages, knowing assembly language isn't very applicable. Knowing how to program well in assembly doesn't mean you know how to program well in, say, Ruby or Lisp.
If 90% of the world ran one Linux distribution we would still have a thriving ecosystem viruses, trojans (albeit on a lesser scale). Good design, transparency and rapid patching in OSS only goes so far, it's not magic immunity. There is also a fairly constant amount of problems between the keyboard and chair - now that will not go away.
You could do quite a lot with a trust networks and fine-grained permission systems. If Linux got more popular, and started getting a lot more viruses, I think you'd see distros trying out some interesting security ideas. In this respect, Linux has the advantage by having multiple distros, because anyone can fork a distribution and try out a different security scheme.
Because they spent a whole lot of money on it, and now they have a legal fight they have to get through before they can make full use of that investment.
Potentially it has some pretty big payoffs, though. Digitizing books is time consuming, so getting in early might give Google a big head start over its competition. I'm guessing Google thinks of it as a long term investment.
But other small things (and many large things) help a lot, many other IDEs have some of the features, but not IDEs have all of the features.
The grandparent post made comparisons to Emacs. If I were you, I wouldn't get into a feature comparison between VS and Emacs - Intellisense is neat, but only does a fraction of what SLIME does:)
You look at something like ASP.NET MVC which started out as a research project and is now nearly at release stage and it puts a lot of longer running open source web frameworks (such as CakePHP) to absolute shame.
I think you're exaggerating how good ASP.NET MVC is. I've been working on a six month project with ASP.NET MVC, and whilst it's certainly better than straight ASP.NET (though it would be hard to make something worse), it's nowhere near as good as any of the popular Ruby or Python frameworks.
The main benefit to ASP.NET MVC is the ability to use NHibernate, which is a pretty decent ORM, and IMO better than ActiveRecord. But apart from that, there's not a lot going for it, unless you happen to be stuck in.NET land. Given the choice, I think I'd currently prefer to use DataMapper, Haml and Sinatra for a commercial project.
Well enjoy it while you can, because the free ride isn't going to last forever...
Why not? Putting moral arguments against copyright infringement aside, the industry has failed to find an effective legal or technical solution, and seems unlikely to come up with one in future.
Likewise, it seems unlikely that piracy will be the end of creative content. People are still buying MP3s and DVDs even when they could pirate them instead, and people are still going to concerts and live events.
The problem with the 'open standard' is not necessarily its inferiority, per se, but its complete, utter lack of general market acceptance.
Which market? The browser market is currently tipped toward Theora, because Firefox, being an open source project, is unlikely to implement H.264.
The worst ever devised excepting everything else that has ever been tried.
Uh, actually there have been plenty of relational query languages that are superior to SQL.
and Microsoft implemented a version of those standards before they were standards, and became the Defacto Quirks Mode way things were done for a long time, and that was deemed Evil.
Supporting future standards before they've gone through the full W3C process is not evil. Microsoft were criticised for implementing their own standards, screwing up existing standards, and taking too long to discard failed standards.
Now there are standards around HTML5 being proposed, but probably 10 years off, or at least way off
The HTML5 standard is meant to be implemented incrementally. The sections which browsers are implementing are generally pretty stable.
and Firefox and Google are implementing a version of these standars
And Opera and Apple. Even Microsoft have taken a couple of APIs from HTML5.
Since firefox is funded almost entirely by Google, it's a bit of misdirection to claim that it's "run by a nonprofit organization".
From Wikipedia:
A nonprofit organization is an organization that does not distribute its surplus funds to owners or shareholders, but instead uses them to help pursue its goals.
Being funded by Google doesn't mean that Mozilla isn't a nonprofit organisation.
Had Germany won the Battle of Britain that year and not invaded the USSR, then in all probability Europe would still be in the hands of the Third Reich.
Germany never had much chance of invading Britain. Even if Germany had continued bombing British airfields, the British airforce was pretty evenly matched against the Luftwaffe, and had all the homefield advantages in terms of fuel and being able to parachute out onto friendly soil. The main problem the British had was not loss of equipment, but loss of skilled pilots; however, this was also a problem for the Luftwaffe.
If the Luftwaffe had somehow succeeded, the Germans still needed to get a large number of men across a heavily mined and defended channel, and they didn't have the equipment to do that. D-Day was tricky enough for the Allies to pull off, and they had a much better navy and more coastline to land on. For Operation Sealion to be a success, Germany would have to pull off a much more ambitious feat against Britain.
TellTale have done very well with the Sam & Max games. If they're involved, I'm a lot more confident that this'll turn out well.
If all you're concerned about is number of votes, put each candidate on prime time television belting out the worst songs they can think of.
I'm trying to find something wrong with your suggestion, and not succeeding. Gentlemen, if there is such thing as a perfect plan, this is it. Please moderate him insightful.
so you start a small project, "we just need a few hundred/thousand records, a few key value links and the occasional transaction". so you start with a slacker DB.
Eh? No, if anything you'd start with a relational DB, and then increasingly use non-relational databases as you scale. Relational DBs have a lot of functionality, but don't scale particularly well.
Try doing objects in Javascript sometime ;-) The "Eigenclass" name seems to be unique to Ruby.
Javascript uses prototype-based inheritance, which is somewhat different again. Ruby has unusually flexible scopes, and eigenclasses provide a way to move from one scope to another. Javascript doesn't have anything like that, so even knowing Javascript fairly well, Ruby still seemed a bit odd to me.
I think the summary is that a decent CS course, even if it majors on a few common languages (and C/C++/Java are probably still the 3 safest bets), should also cover the diversity of languages and paradigms and the underlying theory. Otherwise, why not buy a copy of "Java for Dummies" and save 3 years of your life?
True :)
But seriously, if you've done Java, "oh, right, so I can add new methods to an instance" shouldn't be a major conceptual leap (even if it makes you throw up in your mouth a little).
In practise, it's little more complex than that. In Ruby classes are objects, so in the same way you can use an eigenclass to add methods to the class of an instance, you can use an eigenclass to add methods to the class of a class.
If you're coming from Java, it can be a bit tricky to understand that you can add methods onto classes, as well as into them. Or perhaps it was just me that found the concept initially hard to grasp.
Plus, we're giving the benefit of the doubt here and assuming that the OP was on a proper Comp. Sci. course that covered some of the theory behind the various programming paradigms, and will look at Lisp and say "Oh, yeah, that's just lambda calculus".
It doesn't sound like the OP has that level of knowledge, to me.
You don't run across Eigenclasses a lot in Java, after all
Or in commercial programming, I suspect...
They're actually not that uncommon in RoR, especially in ActiveRecord plugins. I've worked on two RoR projects commercially, and both involved eigenclasses.
Although admittedly, RoR isn't that common commercially :)
At least when I went to university, they taught me C as a base to understand how programming works, the logic behind it, and the basics of designing/writing/testing&debugging. From there, all the programming languages are really the same, with their own little differences.
You're not very familiar with a wide variety of programming languages if you think that. It's true that many languages are conceptually similar to C, but there are many more that are very different from it.
For instance, in C you might write a factorial function like:
Whilst in, say, Factor, you'd write it:
Or in Haskell:
Still think programming languages only have small differences?
Seriously - if you've studied C/C++/Java to a reasonable level, picking up other procedural/OOP languages like Pascal, C# should be a no-brainer.
OOP in Java and C++ is very different to OOP in, say, Smalltalk or Lisp, so it's not exactly a no-brainer. Even Ruby and Python are a little tricky to get used to. You don't run across Eigenclasses a lot in Java, after all :)
GP is wrong that knowledge of assembly gives one an "intuitive grasp of what is a good C or Fortran program"; it gives one a grasp of what C or Fortran code can be compiled tightly. This is a very good skill to have, but programs that compile tightly can be just as badly organized otherwise as any other program.
You make a good point, and I agree. I was thinking along the lines that even an assembly language program has to be structured, and that structure isn't completely different to a language like C. But yep, programming efficiently and programming well are two different subjects only distantly related to each other.
Let's be clear here: Python and Perl are not programming languages.
You forgot to mention "scaling" and "enterprise". If you're going to troll, at least get in some up-to-date buzzwords, dude.
If the programmer really understands assembly, s/he should "intuitively" acquire a sound grasp of what makes a good program written in C, Fortran or whatever.
C or Fortran, perhaps, but once you start to get into higher level languages, knowing assembly language isn't very applicable. Knowing how to program well in assembly doesn't mean you know how to program well in, say, Ruby or Lisp.
"But they do it too" stopped being a defense to accusation in the infants school plyaground.
Good thing I didn't say that, then.
This is the labour party exercising its left wing credentials. It wants total control of the populous.
And right-wing politicians don't?
If 90% of the world ran one Linux distribution we would still have a thriving ecosystem viruses, trojans (albeit on a lesser scale). Good design, transparency and rapid patching in OSS only goes so far, it's not magic immunity. There is also a fairly constant amount of problems between the keyboard and chair - now that will not go away.
You could do quite a lot with a trust networks and fine-grained permission systems. If Linux got more popular, and started getting a lot more viruses, I think you'd see distros trying out some interesting security ideas. In this respect, Linux has the advantage by having multiple distros, because anyone can fork a distribution and try out a different security scheme.
Because they spent a whole lot of money on it, and now they have a legal fight they have to get through before they can make full use of that investment.
Potentially it has some pretty big payoffs, though. Digitizing books is time consuming, so getting in early might give Google a big head start over its competition. I'm guessing Google thinks of it as a long term investment.
And some iffy business practices, such as scanning books in copyright
Why is that an iffy business practise?
But other small things (and many large things) help a lot, many other IDEs have some of the features, but not IDEs have all of the features.
The grandparent post made comparisons to Emacs. If I were you, I wouldn't get into a feature comparison between VS and Emacs - Intellisense is neat, but only does a fraction of what SLIME does :)
You look at something like ASP.NET MVC which started out as a research project and is now nearly at release stage and it puts a lot of longer running open source web frameworks (such as CakePHP) to absolute shame.
I think you're exaggerating how good ASP.NET MVC is. I've been working on a six month project with ASP.NET MVC, and whilst it's certainly better than straight ASP.NET (though it would be hard to make something worse), it's nowhere near as good as any of the popular Ruby or Python frameworks.
The main benefit to ASP.NET MVC is the ability to use NHibernate, which is a pretty decent ORM, and IMO better than ActiveRecord. But apart from that, there's not a lot going for it, unless you happen to be stuck in .NET land. Given the choice, I think I'd currently prefer to use DataMapper, Haml and Sinatra for a commercial project.
Honestly, the biggest problem for darknets is bandwidth. Security is no more an issue for darknets than it is for the internet as a whole.
Well enjoy it while you can, because the free ride isn't going to last forever...
Why not? Putting moral arguments against copyright infringement aside, the industry has failed to find an effective legal or technical solution, and seems unlikely to come up with one in future.
Likewise, it seems unlikely that piracy will be the end of creative content. People are still buying MP3s and DVDs even when they could pirate them instead, and people are still going to concerts and live events.