"My tax dollars shouldn't be paying for that stuff. To each their own - I shouldn't have to fund vaccine programs, education, international response, world heritage sites, international disputes, distributing funds, or working for better labor conditions in any country other than my own. Should I choose to do so, I'd make a difference by spending my money only on things that aren't part of nations that do things I'm against. "...and yet, you expect other people to fund the police to protect you, the fire service, the military? Is it fun being that selfish and hypocritical or...? just wondering.
"as individual organizations could fill these roles"
Er, they do. The UN is made up of a number of individual organisations.
"The UN is just an attempt by the powers that be to form a one world government."
Who might I ask are the powers that be? The fairies? Aliens? Lizardmen?
The UN has always done a better job of this sort of thing than the US alone, you only have to look at the history of WIPO and the WTO to see how bad the US is at playing fair.
WIPO was historically democratic, but America disliked this because in being democratic it let the poorer nations of the world vote for weaker intellectual property laws so that they too could benefit from medical and technological advancements much earlier than the US mandated IP laws allow. Because America didn't like this it decided to create the WTO which the US created strict rules for entry on, whilst trying to turn it into the defacto organisation for international trade using it's own economic clout to initially offer preferable trade deals to build up initial membership, then the threat of exclusion from an international trade body ever since. The problem is, that whenever the WTO rules against the US (Brazilian cotton, European steel, Canadian lumber/water, Antiguan gambling etc. etc.) the US ignores the ruling, whilst simultaneously insisting everyone else adheres to rulings against them.
Honestly, this article is just yet another US sourced scare mongering story. The fact is the world is getting pissed off at US internet censorship like the ICE domain seizures which have destroyed legitimate foreign businesses as well as the likes of SOPA, PIPA, ACTA and so forth. Self interested Americans are thus stirring up typical paranoid xenophobic sentiment with repeated stories like this, which you'll note have those words that always make Americans shit bricks in, yes those words, "China", "Iran", "Russia". They're just FUD peices plain and simple, and whilst America continues with these desperate attempts at propaganda the rest of the world will continue to say "Meh" and eventually the US will be left with little choice in the matter anyway. It's a declining superpower that can no longer unilaterally decide what should happen in the world, it just seems to be the only one at the party that doesn't know it yet.
Really it's tiresome, and rather than recognise that America could get out of this downward spiral by simply being a bit nicer again, by focussing on being a bit smarter again, and focussing on working hard, it just seems determined on pursuing this tea-party sponsored downward spiral into oblivion where anyone non-religious is a heretic to be ignored, strict IP enforcement is going to somehow save the economy whilst everyone continues to ignore it, and where adding universal healthcare to the list of public services people should be able to receive alongside things like police protection, fire protection, and military protection regardless of their wealth like just about every other country in the world is a danger that could bring the country to it's knees.
"The UN can kiss both sides of my rear - what have they actually done in the past 10-20 years that has actually been beneficial?"
You mean apart from ensure post can move between countries, international telephone calls can be routed, that international flights don't collide with each other, delivering aid and vaccination programmes to millions of people, coordinating international response to countless crises, ensuring important world heritage sites are designated as such, ruling on international disputes both trade and political, maintaining and distributing funds to countries whose collapse would also otherwise cause subsequent collapse of other nations economies, making sure nuclear materials and programmes are kept to civilian uses as best as possible and limiting the ability of nuclear material to fall into the wrong hands, managing and maintaining global meteorological records, helping to spread better education across the globe, monitoring and sponsoring improved labour conditions for every working person, and doing work to protect the cultures of indiginous communities?
Other than those things, not much I guess. They're a bit like the Romans, I mean, what did the Romans ever do for us?
Or are you one of those numpties who thinks The UN Security Council = The UN?
"While I can't speak for Haskell's implementation of alebra, I'd have to say that mathematically, an algebra is far more than just a definition of "actions upon an object" in the OO sense. An algebra also defines the results of those actions, while in OO, an interface only defines the type signature of those actions. So you can happily define your interface as "supports-add-and-subtract" without defining that "x - x must equal zero". This is only half of an algebra - if that."
It's the implementation of the interface that defines the actual restrictions on the type signature. The interface may declare addition and subtraction, but it is the Matrix class that implements that interface and defines the limits on how a Matrix can be added and subtracted. This isn't really any different to actual math itself, we have common operators like addition, subtraction, multiplication and so forth, but it is the type that defines how those actions are carried out and what their limitations are. The multiplication symbol (x) says nothing about how multiplication is carried out, it is just a general concept, it is the use of x in conjunction with a type that defines it - the operator acts different whether you're dealing with natural numbers, integers, or matrices and it is those types that determine the implementation.
"Personally I think we'll only move forward in language define when we switch from "types as calling signatures of methods which do who knows what" to "types as strong guarantees of results of operations". But I don't see any languages actually working on that. Some of the work on "contracts", maybe, but how many languages that have contracts make this the fundamental design feature?"
Microsoft have been working on Code Contracts for.NET, and I suspect it'll become a full feature of 4.5 or 5. It's usable now though. Fundamentally though all this is just a set of libraries, you can implement it yourself right now if you need that strict a level of checking.
Whilst I don't disagree with what you say and it being great if we had much better checks on bounds and such, I think there's a more fundamental problem with it though that technology wont solve. The problem is that to correctly bounds check all inputs and outputs is massively time consuming, and is still very error prone - a programmer is just as likely to make a mistake in defining the bounds and a hacker only has to find that one mistake.
We have techniques for writing software that offers this guarantee of rigidity already, and we long have, but the cost of the additional time it takes to put in place just isn't justifiable in business. Even the cost of a hack attack is likely lower than making sure all your code adheres to contracts or whatever.
I don't see why you'd have to implement it many times, you only implement it if it changes, and then you have to implement it.
Most of the solution revolves round breaking down the problem, and reusing those broken down chunks. If you're implementing a functon that has many many lines of code and then complaining about needing to reimplement that then the chances are that you could have broken down that function more and reused parts of it.
"Or to be less mathy. I have "imports" and "cars" as classes why not inherit both for Toyota objects?"
I don't really understand this example. Are you saying you might have imported cars? If not why not have Toyota inherit from ImportedCar, which inherits from Car? If your assertion is that you might have other types of imports than cars, then your base class is Import, from which Car inherits. I don't really see the problem?
"There is value in declaring that instances of a class can participate in a some pattern or other. The concept of interfaces is a way of doing this that is used in Java (and in variations in a number of other languages too)."
Agreed, you at least need the facility to do that.
"Ontologically, multiple inheritance is not a problem either: it's just the is-a (well, strictly the is-a-specialization-of) relationship."
Indeed, but how often is something actually two things? that's what multiple inheritance implies. Part the problem when a lot of people use MI is that they miss the hierarchy, they'll say "Well a Frog is an Animal and an Amphibian so it should inherit from both!", when in reality the hierarchy is that an Amphibian is an Animal, so Frog should inherit from Amphibian, which should inherit from Animal. That's the most common mistake I see when people claim MI is important - they miss the fact that they've missed the correct hierarchy and use MI as a fudge to fix that.
I know as I say there are rare cases where it does make sense, but they seem so rare to the point that where direct multiple inheritance is available, it's misused a thousand times over for every time it's used correctly.
Sure, but in an OO language it makes far less sense, which is what I was referring to - specifically why the lack of support for actual MI in Java isn't a problem - apologies for not making that explicit.
In an OO language you'd recognise that algebra defines actions upon an object, and so you'd simply implement algebra the interface against a Matrix class, and define the Matrix specific implementations of algebraic actions there. Then anything that is a matrix, is a matrix, and anything that is a matrix, can have algebraic actions performed upon it.
"Program in Java? Everywhere you see interfaces, that's multiple inheritance"
Yes, but when most people talk about MI they're talking about the ability to perform actual inheritance of real classes, rather than the ability to implement interfaces - it's that that I'm referring to.
"Which means every class that implements it has to rewrite that code. Depending on the interface and the class, that may or may not be a good idea. But I'll frequently find myself writing very similar code for multiple classes that implement the same interface."
I find this nearly always boils down to a poor inheritance hierarchy. Chances are it means you should have another class somewhere up the chain that implements that common interface, rather than reimplement it for each class in a similar way.
Yes that was the entire point. We need something that isn't HTML/HTTP whether it's implemented as a new type of browser that lets you interact with apps, or whether it's a first class citizen in existing browsers.
Some browsers already handle other protocols, like FTP, my point was that we indeed need a new protocol, and new set of technologies (even if they utilise existing technologies at first) to facilitate web applications.
We can't go on hacking technology to fit indefinitely, there comes a limit where the flaws that result become so common that you just end up with a trainwreck. As I said, if you had a new protocol handler like app:// or whatever and implement support in the browsers you could still maintain links between HTTP based sites, and online apps using this new handler. The point is we could then really advance online applications, far more so than we can with the current bolted together crap.
You seem to be fixated on existing technology, that's not what I'm talking about, though as I say it may well be that some existing technology is at least part of the solution (XML? Javascript or some other existing language bindings at least as a starting point until a new language is build and bound to it perhaps even if not a permanent solution?).
Flash isn't a bad idea per-se, just the implementation of it, my point is that it should be open, platform agnostic, much better designed, and natively supported by the browser. Fundamentally I believe that HTML is best left to displaying content, whilst I agree building apps with it is okay for now, I believe it should (and possibly even can) only be an interim solution. There is just too much legacy with web technologies for them to continue to be able to evolve to support online interactive application demands indefinitely because that's never what it was designed for, so we should build something that is.
"Operator overloading and multiple inheritance are both examples where subtle shifts in code can lead to enormous shifts in how the compiler views the code."
That and I've still not really seen many, if any convincing arguments where multiple inheritance is a good idea. We've had a few MI zealots extoll their virtues here and give us examples of why MI was essential to their project. The problem is, each time they've done so so far on Slashdot at least, they've only served to prove they have absolutely no idea how to write good OO code and seemed completely oblivious of the fact that not only did they not use MI, but their example was an example of why MI leads to bad code.
Well, I suppose I did see one good C++ example years ago, but it was about one example in a decade, and I can't even remember what it was now.
It might not be, but is it still built on the HTTP stack? is it platform agnostic?
I note it still makes use of AJAX which doesn't get us away from the fact that AJAX/HTTP is still fundamentally a hack, rather than a proper solution.
Javascript itself is rather crippling in terms of the way it can be used to support the client side of application development in part because it's not fully functional, and it's not properly OOP. Even with the efforts in recent years to improve the toolchain it's performance is still subpar compared to say JIT'd languages, and it's debugging support etc. is still pretty poor.
Don't get me wrong, you can do a lot with HTML, Javascript, and CSS, you only have to look at examples like Google apps. This said, when you do look at Google apps you also see the limitations of HTTP stack based applications too - they're still a pretty poor show compared to their desktop counterparts.
But they're only half-arsed proprietary attempts. I'm not talking about something that's just a plugin for a browser, but something that is equivalent to a browser for accessing apps, or even something that is natively supported in all browsers.
I'm talking about a standardised format (based on say, XML) for defining user interfaces that are designed to be event driven, sat on a protocol that supports event driven client-server communication, with the ability to pass blocks of executable (but sandboxed and secure) code for any offline processing.
It's not that different from the fundamental concept of HTML now, but without the cruft that makes HTML/HTTP bad at it - like the fact that HTTP was always designed to be stateless and with a toolset that is far better for web applications than HTML/Javascript is.
He can voice his opinion but there's a massive difference between encouraging improved support for Linux, and basically trolling companies who do support Linux, one is productive, the other isn't. Torvald's is carrying out the unproductive one.
My point is if the Jesus Christ of Linux, Torvalds, is attacking them for their support, then that risks harming their marketshare. It may actually lead to the Linux not being worth supporting, that's kind of the point.
I think his point is that Linus should be grateful that they even support his project at all, rather than bitching at them. If it costs them money to support Linux and they're damned if they do, damned if they don't, then what incentive is there to continue even supporting them at all?
I think a large part the problem is that Linus has a way of sounding like a dick. There are much more diplomatic ways of saying nVidia could certainly do better on Linux than the way Linus goes about these things. No one is suggesting nvidia couldn't do better, but when he attacks a company over this sort of thing it just makes him sound like an ungrateful prick.
The fundamental problem is that it's all entirely backwards.
The web is moving more towards apps so rather than continuing to butcher HTTP and HTML into supporting apps, we'd be better off creating a new protocol handler (is app:// taken?) and creating a set of technologies better meant to facilitate that.
XAML may not be the best option, but it illustrates the concept - it would make much more sense to have something like this built for the web/desktop than it would badly butchering HTTP/HTML.
I agree with you on where HTML5 is going but it frankly scares me, it's a throwback to the bad development practices that came around in the 90s, culminating in Visual Basic 6 being used for actual commercial apps.
I get the feeling it's a new generation of developers pushing all these things, one that hasn't learnt from the mistakes of the previous generation. All the problems with HTML5 have long be solved, but for some reason the solutions have been ignored, and so the problems are merely being repeated. I get the feeling we've got a decade of really bad software ahead of us. Time will tell I guess.
Indeed, I've always just worked on the principle that if I'm doing something on the internet from work, it's more likely someone could be watching.
If it's something that could thus get me in trouble, or cause problems, I wouldn't do it from work, it's as simple as that.
Thankfully I've always had jobs where things like reading the news online, using Facebook or whatever are accepted, so I've never found it to be a problem.
For me it's not even that I believe for a second my employer right now for example would snoop. It's about the fact that it's not a network I control, so I just don't trust it like I do my home network. The same goes for things like airport Wifi, Cybercafes etc. - I don't know the networks well enough to fully trust, so I don't do things on them that require a level of trust.
So to answer the original question, not, I don't think it's worth leaving your job over, the only reason to leave your job is if you do not like your job (whether it's because of pay, conditions, enjoyability of the work itself or whatever), which is a different issue that takes into account far more factors.
"Honestly, I'm not a big fan. Taking what basically amounts to the (current generation) Xbox user interface and applying it to desktops and portable devices just seems like a massive step backwards."
It was a step backwards on the XBox too to be fair. It really doesn't work well there IMO.
They developed the interface for Windows Phone, where it works, and are now trying to carry it everywhere else, where it doesn't work. It's stupid.
"The HTML 5 standard looks good"
Does it? It's bad enough as a web standard, god only knows how terribly it's going to map to the desktop paradigm. I can't really see many existing desktop developers wanting to use the HTML5 path, because the HTML5 spec causes such utter rape of the concept of separation of concerns that the likes of WPF developers have long gotten used to that it's going to make them vomit if they see it. It'll be used more by web developers wanting to make desktop apps, but I guess that's the idea.
"Also, am I the only one who reads Windows RT and thinks 'Windows Re-Tweet'?"
"This guy is a complete moron. First, it's called the CLI, not the CIL."
No it's not. CIL is the Common Intermediate Language, it is.NET's bytecode format, that is part of the CLI (Common Language Infrastructure) and runs on top of the CLR (Common Language Runtime). The CIL is important for portability as it is effectively the abstraction layer that separates the actual code, from the underlying architecture. The CLR then acts as an architecture specific implementation to execute that bytecode on the architecture in question.
"Second, it's called the Windows Runtime or WinRT and it runs.NET apps and HTML5/js apps."
Just to clarify, as someone responding to you didn't seem to quite get it, it doesn't run existing.NET apps, that's done elsewhere. It does allow you to write new apps utilising parts of the.NET toolset however.
Despite this, I agree, the guy is indeed a complete moron writing an article about something he generally doesn't really seem to get.
"What I see is that in each sector of competence, the skills are different for attacker and defender. While some black-hats may actually be good defenders, there is no reason to believe they are, besides a general understanding of the area. And no, you do not look at every possible attack vector even on the very top of attacker competence. There you look for a vector that fits your requirements. For example: How important is it that you remain undetected after the fact? For how long? How much time do you have? What must be compromised, what is nice to have? How much budget and what skills? Is there intelligence support available or maybe even somebody undercover?"
You don't have that luxury that's the point, you can't pick and choose your point of entry on a well secured system, you have to find one.
"Can a hardware shipment be compromised? Can somebody be bribed? And so on."...which proves the point? It's about checking every possible point of entry until you find one, which requires knowledge of all possible points of entry to find one that works.
"It really boils down to the attackers just having to find one working attack vector, while the defenders have to secure all of them."
Yes and again, HOW do you think they find it? As I said before, there isn't just some magical red arrow that says "Point of entry, here".
The problem with defenders is that they're generally bought into the field based entirely on only a theoretical basis. They do not have the understanding that a former blackhat might, because the theoretical field is always one step behind what is actually happening in the real world. Textbooks can't tell you everything - nothing beats practical experience, and you can't get practical experience defending against an attack that hasn't been publicised or happened yet, when it actually happens it's too late.
Throughout the history of the internet those who have attacked systems have shown an impressive level of knowledge they attack - most often more so than the system admins administering those systems. It was the same when kids were attacking AT&T's cellphone network, it's the same when hackers sponsored by organised crime are breaking into steal credit cards, and and it's the same now that groups protesting against the world or whatever do serious hacks. If you don't think talented attackers have at least as good an understanding of the systems they break into as those defending them then you've missed decades of news on the subject.
Like I said, even the Lulzsec crew, who were relatively low brow had to understand a lot about the system they were entering to penetrate so deep, from software versions, to the topology of the network such that they could pinpoint the weakest target to start with, to password hashing algorithms, to the people and their jobs at the company to pull off a social engineering stunt.
I think the problem is that you're still conflating low brow script kiddies against extremely talented defenders, it's just not a fair comparison.
The fact is, to perform a highly skilled attack against a system that is well defended you do need to understand everything the defender does, because the system will be locked down so tight you'll need to be able to consider every possibility, and look so deep into every aspect of a system to find a way in.
Attacking a well protected system ultimately relies on attacking areas of that system where there is a lapse in security, or an unpatched exploit. The problem is you can't guarantee that will be the same from target to target, and it's highly unlikely that every security expert is going to be making the exact same lapse on the exact same type of system on every target you attack. Effectively you're having to develop a completely bespoke route of entry that could be so incredibly different from target to target that the chance of you finding one that will work everywhere against well secured systems is negligible. You cannot look high and low for that point of entry on each well secured system you attack unless you have at least as good an understanding of the complete set of attack vectors that someone defending a system will have.
The idea of having one method of entry that you use for everything only works for script kiddies who are just throwing mud at everything and seeing where it sticks. To defend against the kind of attacker who is willing to go the extra mile and craft a bespoke method of entry for your systems then it absolutely is a massive advantage having someone on your team with the talent to do that themselves. This is also the precise type of attacker the likes of the Pentagon will face.
Yes because it's not as if various US policy figures have suggested this is what should happen, or the US has a history of extraordinary rendition or anything is it?
"I'm just assuming that US, UK, and Swedish courts, judges, and prosecutors are generally doing their job until there is clear evidence to the contrary."
There does seem to be evidence to the contrary though, historically as I say British courts have been pretty good, but recently in the UK the supreme court was created, which has been given the power to overrule lower courts. Since it was created it's rulings seem to be consistently at odds with lower courts in cases where the lower courts ruled against the wishes of the government.
Similarly in Sweden we've seen how a judge who has a vested interest in the prosecution succeding, and who was personal friends with the prosecutor can be allowed to preside over a case.
I don't think it is safe to assume the courts in question are doing their jobs properly.
"I think Assange is probably not guilty under US law, due to First Amendment protections. But I would have no problem with a US court making that determination; the case is important enough that clarity either way would be good for everybody. Of course, so far, he hasn't been indicted yet."
I'm assuming now in this case you're referring to the Wikileaks leaks rather than the rape case? If so then I have to ask why you think it's even anything to do with US courts? Everything he did surrounding Wikileaks he did not do on US soil, nor was it illegal in the countries he did do it in. There is absolutely no case for him to answer in the US, period. This is why it's such a sham if he does get extradited to the US, and is an extremely disturbing precedent. It implies that Iran would be justified in expecting extradition of US porn producers because they had breached Iranian law from the US.
Manning got the documents out of the US, and to Assange, Assange was in a country where it was legal to receive these leaked documents when he received them, and he was in a country where it was legal to whistleblow when he published them too.
If you don't understand why it's a problem that if someone does something in one country that is perfectly legal, and is then extradited elsewhere because what he did is illegal elsewhere, even if he did not commit the crime there, then I don't think you have enough of an understanding of the concept of jurisdictions to even be engaging in this discussion. If you don't understand that, you don't understand that this precedent would mean that even you, yourself, could be yanked out of the comfort of your home in the US, and taken to foreign country, tried under foreign laws, for something that wasn't even breaking the law in your home country. I really hope you can at least understand why that's a major problem and shouldn't happen, ever.
"All this b.s. about "revenge" and "embarassment" is tin-foil-hat conspiracies that exist only in your mind."
So out comes the childishness I see? I think you'll find there's a lot of other people (probably a majority) who actually believe this too. It's not just in my mind, it's a pretty well established concern regarding revenge. As for the embarassment part, I'm sorry, are you seriously suggesting world governments and the US in particular weren't embarassed by Wikileak's revelations?
"You do not have the slightest idea whether the Swedes are "bending the rules" or what the rules in Sweden even are."
Thank you for deciding that for me, it's just a shame you aren't actually in a position to know what I do and do not know. The rules have been well discussed, and there are a lot of clear quirks in this case - some published by members of the Swedish judiciary themselves who are concerned about how things have been done. But then, I suppose you'll tell me other members of the Swedish judiciary don't understand Swedish law either? well, good luck arguing that one.
"He's had his day in court in the UK, he's going to get his day in court in Sweden, and sooner or later, he's probably going to get his day in court in the US."
I think you're probably right, but as I say the fundamental problem is that he has absolutely no reason to be tried in US court in the first place, as he has not broken any law (outside the rape case if he's deemed to be guilty) so does not even have any case to answer in the US.
"My tax dollars shouldn't be paying for that stuff. To each their own - I shouldn't have to fund vaccine programs, education, international response, world heritage sites, international disputes, distributing funds, or working for better labor conditions in any country other than my own. Should I choose to do so, I'd make a difference by spending my money only on things that aren't part of nations that do things I'm against. " ...and yet, you expect other people to fund the police to protect you, the fire service, the military? Is it fun being that selfish and hypocritical or...? just wondering.
"as individual organizations could fill these roles"
Er, they do. The UN is made up of a number of individual organisations.
"The UN is just an attempt by the powers that be to form a one world government."
Who might I ask are the powers that be? The fairies? Aliens? Lizardmen?
The UN has always done a better job of this sort of thing than the US alone, you only have to look at the history of WIPO and the WTO to see how bad the US is at playing fair.
WIPO was historically democratic, but America disliked this because in being democratic it let the poorer nations of the world vote for weaker intellectual property laws so that they too could benefit from medical and technological advancements much earlier than the US mandated IP laws allow. Because America didn't like this it decided to create the WTO which the US created strict rules for entry on, whilst trying to turn it into the defacto organisation for international trade using it's own economic clout to initially offer preferable trade deals to build up initial membership, then the threat of exclusion from an international trade body ever since. The problem is, that whenever the WTO rules against the US (Brazilian cotton, European steel, Canadian lumber/water, Antiguan gambling etc. etc.) the US ignores the ruling, whilst simultaneously insisting everyone else adheres to rulings against them.
Honestly, this article is just yet another US sourced scare mongering story. The fact is the world is getting pissed off at US internet censorship like the ICE domain seizures which have destroyed legitimate foreign businesses as well as the likes of SOPA, PIPA, ACTA and so forth. Self interested Americans are thus stirring up typical paranoid xenophobic sentiment with repeated stories like this, which you'll note have those words that always make Americans shit bricks in, yes those words, "China", "Iran", "Russia". They're just FUD peices plain and simple, and whilst America continues with these desperate attempts at propaganda the rest of the world will continue to say "Meh" and eventually the US will be left with little choice in the matter anyway. It's a declining superpower that can no longer unilaterally decide what should happen in the world, it just seems to be the only one at the party that doesn't know it yet.
Really it's tiresome, and rather than recognise that America could get out of this downward spiral by simply being a bit nicer again, by focussing on being a bit smarter again, and focussing on working hard, it just seems determined on pursuing this tea-party sponsored downward spiral into oblivion where anyone non-religious is a heretic to be ignored, strict IP enforcement is going to somehow save the economy whilst everyone continues to ignore it, and where adding universal healthcare to the list of public services people should be able to receive alongside things like police protection, fire protection, and military protection regardless of their wealth like just about every other country in the world is a danger that could bring the country to it's knees.
"The UN can kiss both sides of my rear - what have they actually done in the past 10-20 years that has actually been beneficial?"
You mean apart from ensure post can move between countries, international telephone calls can be routed, that international flights don't collide with each other, delivering aid and vaccination programmes to millions of people, coordinating international response to countless crises, ensuring important world heritage sites are designated as such, ruling on international disputes both trade and political, maintaining and distributing funds to countries whose collapse would also otherwise cause subsequent collapse of other nations economies, making sure nuclear materials and programmes are kept to civilian uses as best as possible and limiting the ability of nuclear material to fall into the wrong hands, managing and maintaining global meteorological records, helping to spread better education across the globe, monitoring and sponsoring improved labour conditions for every working person, and doing work to protect the cultures of indiginous communities?
Other than those things, not much I guess. They're a bit like the Romans, I mean, what did the Romans ever do for us?
Or are you one of those numpties who thinks The UN Security Council = The UN?
"While I can't speak for Haskell's implementation of alebra, I'd have to say that mathematically, an algebra is far more than just a definition of "actions upon an object" in the OO sense. An algebra also defines the results of those actions, while in OO, an interface only defines the type signature of those actions. So you can happily define your interface as "supports-add-and-subtract" without defining that "x - x must equal zero". This is only half of an algebra - if that."
It's the implementation of the interface that defines the actual restrictions on the type signature. The interface may declare addition and subtraction, but it is the Matrix class that implements that interface and defines the limits on how a Matrix can be added and subtracted. This isn't really any different to actual math itself, we have common operators like addition, subtraction, multiplication and so forth, but it is the type that defines how those actions are carried out and what their limitations are. The multiplication symbol (x) says nothing about how multiplication is carried out, it is just a general concept, it is the use of x in conjunction with a type that defines it - the operator acts different whether you're dealing with natural numbers, integers, or matrices and it is those types that determine the implementation.
"Personally I think we'll only move forward in language define when we switch from "types as calling signatures of methods which do who knows what" to "types as strong guarantees of results of operations". But I don't see any languages actually working on that. Some of the work on "contracts", maybe, but how many languages that have contracts make this the fundamental design feature?"
Microsoft have been working on Code Contracts for .NET, and I suspect it'll become a full feature of 4.5 or 5. It's usable now though. Fundamentally though all this is just a set of libraries, you can implement it yourself right now if you need that strict a level of checking.
Whilst I don't disagree with what you say and it being great if we had much better checks on bounds and such, I think there's a more fundamental problem with it though that technology wont solve. The problem is that to correctly bounds check all inputs and outputs is massively time consuming, and is still very error prone - a programmer is just as likely to make a mistake in defining the bounds and a hacker only has to find that one mistake.
We have techniques for writing software that offers this guarantee of rigidity already, and we long have, but the cost of the additional time it takes to put in place just isn't justifiable in business. Even the cost of a hack attack is likely lower than making sure all your code adheres to contracts or whatever.
I don't see why you'd have to implement it many times, you only implement it if it changes, and then you have to implement it.
Most of the solution revolves round breaking down the problem, and reusing those broken down chunks. If you're implementing a functon that has many many lines of code and then complaining about needing to reimplement that then the chances are that you could have broken down that function more and reused parts of it.
"Or to be less mathy. I have "imports" and "cars" as classes why not inherit both for Toyota objects?"
I don't really understand this example. Are you saying you might have imported cars? If not why not have Toyota inherit from ImportedCar, which inherits from Car? If your assertion is that you might have other types of imports than cars, then your base class is Import, from which Car inherits. I don't really see the problem?
"There is value in declaring that instances of a class can participate in a some pattern or other. The concept of interfaces is a way of doing this that is used in Java (and in variations in a number of other languages too)."
Agreed, you at least need the facility to do that.
"Ontologically, multiple inheritance is not a problem either: it's just the is-a (well, strictly the is-a-specialization-of) relationship."
Indeed, but how often is something actually two things? that's what multiple inheritance implies. Part the problem when a lot of people use MI is that they miss the hierarchy, they'll say "Well a Frog is an Animal and an Amphibian so it should inherit from both!", when in reality the hierarchy is that an Amphibian is an Animal, so Frog should inherit from Amphibian, which should inherit from Animal. That's the most common mistake I see when people claim MI is important - they miss the fact that they've missed the correct hierarchy and use MI as a fudge to fix that.
I know as I say there are rare cases where it does make sense, but they seem so rare to the point that where direct multiple inheritance is available, it's misused a thousand times over for every time it's used correctly.
Sure, but in an OO language it makes far less sense, which is what I was referring to - specifically why the lack of support for actual MI in Java isn't a problem - apologies for not making that explicit.
In an OO language you'd recognise that algebra defines actions upon an object, and so you'd simply implement algebra the interface against a Matrix class, and define the Matrix specific implementations of algebraic actions there. Then anything that is a matrix, is a matrix, and anything that is a matrix, can have algebraic actions performed upon it.
"Program in Java? Everywhere you see interfaces, that's multiple inheritance"
Yes, but when most people talk about MI they're talking about the ability to perform actual inheritance of real classes, rather than the ability to implement interfaces - it's that that I'm referring to.
"Which means every class that implements it has to rewrite that code. Depending on the interface and the class, that may or may not be a good idea. But I'll frequently find myself writing very similar code for multiple classes that implement the same interface."
I find this nearly always boils down to a poor inheritance hierarchy. Chances are it means you should have another class somewhere up the chain that implements that common interface, rather than reimplement it for each class in a similar way.
Yes that was the entire point. We need something that isn't HTML/HTTP whether it's implemented as a new type of browser that lets you interact with apps, or whether it's a first class citizen in existing browsers.
Some browsers already handle other protocols, like FTP, my point was that we indeed need a new protocol, and new set of technologies (even if they utilise existing technologies at first) to facilitate web applications.
We can't go on hacking technology to fit indefinitely, there comes a limit where the flaws that result become so common that you just end up with a trainwreck. As I said, if you had a new protocol handler like app:// or whatever and implement support in the browsers you could still maintain links between HTTP based sites, and online apps using this new handler. The point is we could then really advance online applications, far more so than we can with the current bolted together crap.
You seem to be fixated on existing technology, that's not what I'm talking about, though as I say it may well be that some existing technology is at least part of the solution (XML? Javascript or some other existing language bindings at least as a starting point until a new language is build and bound to it perhaps even if not a permanent solution?).
Flash isn't a bad idea per-se, just the implementation of it, my point is that it should be open, platform agnostic, much better designed, and natively supported by the browser. Fundamentally I believe that HTML is best left to displaying content, whilst I agree building apps with it is okay for now, I believe it should (and possibly even can) only be an interim solution. There is just too much legacy with web technologies for them to continue to be able to evolve to support online interactive application demands indefinitely because that's never what it was designed for, so we should build something that is.
"Operator overloading and multiple inheritance are both examples where subtle shifts in code can lead to enormous shifts in how the compiler views the code."
That and I've still not really seen many, if any convincing arguments where multiple inheritance is a good idea. We've had a few MI zealots extoll their virtues here and give us examples of why MI was essential to their project. The problem is, each time they've done so so far on Slashdot at least, they've only served to prove they have absolutely no idea how to write good OO code and seemed completely oblivious of the fact that not only did they not use MI, but their example was an example of why MI leads to bad code.
Well, I suppose I did see one good C++ example years ago, but it was about one example in a decade, and I can't even remember what it was now.
It might not be, but is it still built on the HTTP stack? is it platform agnostic?
I note it still makes use of AJAX which doesn't get us away from the fact that AJAX/HTTP is still fundamentally a hack, rather than a proper solution.
Javascript itself is rather crippling in terms of the way it can be used to support the client side of application development in part because it's not fully functional, and it's not properly OOP. Even with the efforts in recent years to improve the toolchain it's performance is still subpar compared to say JIT'd languages, and it's debugging support etc. is still pretty poor.
Don't get me wrong, you can do a lot with HTML, Javascript, and CSS, you only have to look at examples like Google apps. This said, when you do look at Google apps you also see the limitations of HTTP stack based applications too - they're still a pretty poor show compared to their desktop counterparts.
Out of interest, what languages do you think are simple?
But they're only half-arsed proprietary attempts. I'm not talking about something that's just a plugin for a browser, but something that is equivalent to a browser for accessing apps, or even something that is natively supported in all browsers.
I'm talking about a standardised format (based on say, XML) for defining user interfaces that are designed to be event driven, sat on a protocol that supports event driven client-server communication, with the ability to pass blocks of executable (but sandboxed and secure) code for any offline processing.
It's not that different from the fundamental concept of HTML now, but without the cruft that makes HTML/HTTP bad at it - like the fact that HTTP was always designed to be stateless and with a toolset that is far better for web applications than HTML/Javascript is.
He can voice his opinion but there's a massive difference between encouraging improved support for Linux, and basically trolling companies who do support Linux, one is productive, the other isn't. Torvald's is carrying out the unproductive one.
Absolutely, you're dead right.
My point is if the Jesus Christ of Linux, Torvalds, is attacking them for their support, then that risks harming their marketshare. It may actually lead to the Linux not being worth supporting, that's kind of the point.
I think his point is that Linus should be grateful that they even support his project at all, rather than bitching at them. If it costs them money to support Linux and they're damned if they do, damned if they don't, then what incentive is there to continue even supporting them at all?
I think a large part the problem is that Linus has a way of sounding like a dick. There are much more diplomatic ways of saying nVidia could certainly do better on Linux than the way Linus goes about these things. No one is suggesting nvidia couldn't do better, but when he attacks a company over this sort of thing it just makes him sound like an ungrateful prick.
The fundamental problem is that it's all entirely backwards.
The web is moving more towards apps so rather than continuing to butcher HTTP and HTML into supporting apps, we'd be better off creating a new protocol handler (is app:// taken?) and creating a set of technologies better meant to facilitate that.
XAML may not be the best option, but it illustrates the concept - it would make much more sense to have something like this built for the web/desktop than it would badly butchering HTTP/HTML.
I agree with you on where HTML5 is going but it frankly scares me, it's a throwback to the bad development practices that came around in the 90s, culminating in Visual Basic 6 being used for actual commercial apps.
I get the feeling it's a new generation of developers pushing all these things, one that hasn't learnt from the mistakes of the previous generation. All the problems with HTML5 have long be solved, but for some reason the solutions have been ignored, and so the problems are merely being repeated. I get the feeling we've got a decade of really bad software ahead of us. Time will tell I guess.
Indeed, I've always just worked on the principle that if I'm doing something on the internet from work, it's more likely someone could be watching.
If it's something that could thus get me in trouble, or cause problems, I wouldn't do it from work, it's as simple as that.
Thankfully I've always had jobs where things like reading the news online, using Facebook or whatever are accepted, so I've never found it to be a problem.
For me it's not even that I believe for a second my employer right now for example would snoop. It's about the fact that it's not a network I control, so I just don't trust it like I do my home network. The same goes for things like airport Wifi, Cybercafes etc. - I don't know the networks well enough to fully trust, so I don't do things on them that require a level of trust.
So to answer the original question, not, I don't think it's worth leaving your job over, the only reason to leave your job is if you do not like your job (whether it's because of pay, conditions, enjoyability of the work itself or whatever), which is a different issue that takes into account far more factors.
"Honestly, I'm not a big fan. Taking what basically amounts to the (current generation) Xbox user interface and applying it to desktops and portable devices just seems like a massive step backwards."
It was a step backwards on the XBox too to be fair. It really doesn't work well there IMO.
They developed the interface for Windows Phone, where it works, and are now trying to carry it everywhere else, where it doesn't work. It's stupid.
"The HTML 5 standard looks good"
Does it? It's bad enough as a web standard, god only knows how terribly it's going to map to the desktop paradigm. I can't really see many existing desktop developers wanting to use the HTML5 path, because the HTML5 spec causes such utter rape of the concept of separation of concerns that the likes of WPF developers have long gotten used to that it's going to make them vomit if they see it. It'll be used more by web developers wanting to make desktop apps, but I guess that's the idea.
"Also, am I the only one who reads Windows RT and thinks 'Windows Re-Tweet'?"
Yes.
"This guy is a complete moron. First, it's called the CLI, not the CIL."
No it's not. CIL is the Common Intermediate Language, it is .NET's bytecode format, that is part of the CLI (Common Language Infrastructure) and runs on top of the CLR (Common Language Runtime). The CIL is important for portability as it is effectively the abstraction layer that separates the actual code, from the underlying architecture. The CLR then acts as an architecture specific implementation to execute that bytecode on the architecture in question.
"Second, it's called the Windows Runtime or WinRT and it runs .NET apps and HTML5/js apps."
Just to clarify, as someone responding to you didn't seem to quite get it, it doesn't run existing .NET apps, that's done elsewhere. It does allow you to write new apps utilising parts of the .NET toolset however.
Despite this, I agree, the guy is indeed a complete moron writing an article about something he generally doesn't really seem to get.
"What I see is that in each sector of competence, the skills are different for attacker and defender. While some black-hats may actually be good defenders, there is no reason to believe they are, besides a general understanding of the area. And no, you do not look at every possible attack vector even on the very top of attacker competence. There you look for a vector that fits your requirements. For example: How important is it that you remain undetected after the fact? For how long? How much time do you have? What must be compromised, what is nice to have? How much budget and what skills? Is there intelligence support available or maybe even somebody undercover?"
You don't have that luxury that's the point, you can't pick and choose your point of entry on a well secured system, you have to find one.
"Can a hardware shipment be compromised? Can somebody be bribed? And so on." ...which proves the point? It's about checking every possible point of entry until you find one, which requires knowledge of all possible points of entry to find one that works.
"It really boils down to the attackers just having to find one working attack vector, while the defenders have to secure all of them."
Yes and again, HOW do you think they find it? As I said before, there isn't just some magical red arrow that says "Point of entry, here".
The problem with defenders is that they're generally bought into the field based entirely on only a theoretical basis. They do not have the understanding that a former blackhat might, because the theoretical field is always one step behind what is actually happening in the real world. Textbooks can't tell you everything - nothing beats practical experience, and you can't get practical experience defending against an attack that hasn't been publicised or happened yet, when it actually happens it's too late.
Throughout the history of the internet those who have attacked systems have shown an impressive level of knowledge they attack - most often more so than the system admins administering those systems. It was the same when kids were attacking AT&T's cellphone network, it's the same when hackers sponsored by organised crime are breaking into steal credit cards, and and it's the same now that groups protesting against the world or whatever do serious hacks. If you don't think talented attackers have at least as good an understanding of the systems they break into as those defending them then you've missed decades of news on the subject.
Like I said, even the Lulzsec crew, who were relatively low brow had to understand a lot about the system they were entering to penetrate so deep, from software versions, to the topology of the network such that they could pinpoint the weakest target to start with, to password hashing algorithms, to the people and their jobs at the company to pull off a social engineering stunt.
No he's just been green lighted for extradition to a country that is more accepting of further US extradition under rather suspicious circumstances.
But I'm sure there's no getting through to you, you're an American Patriot after all! God bless America.
I think the problem is that you're still conflating low brow script kiddies against extremely talented defenders, it's just not a fair comparison.
The fact is, to perform a highly skilled attack against a system that is well defended you do need to understand everything the defender does, because the system will be locked down so tight you'll need to be able to consider every possibility, and look so deep into every aspect of a system to find a way in.
Attacking a well protected system ultimately relies on attacking areas of that system where there is a lapse in security, or an unpatched exploit. The problem is you can't guarantee that will be the same from target to target, and it's highly unlikely that every security expert is going to be making the exact same lapse on the exact same type of system on every target you attack. Effectively you're having to develop a completely bespoke route of entry that could be so incredibly different from target to target that the chance of you finding one that will work everywhere against well secured systems is negligible. You cannot look high and low for that point of entry on each well secured system you attack unless you have at least as good an understanding of the complete set of attack vectors that someone defending a system will have.
The idea of having one method of entry that you use for everything only works for script kiddies who are just throwing mud at everything and seeing where it sticks. To defend against the kind of attacker who is willing to go the extra mile and craft a bespoke method of entry for your systems then it absolutely is a massive advantage having someone on your team with the talent to do that themselves. This is also the precise type of attacker the likes of the Pentagon will face.
Yes because it's not as if various US policy figures have suggested this is what should happen, or the US has a history of extraordinary rendition or anything is it?
"I'm just assuming that US, UK, and Swedish courts, judges, and prosecutors are generally doing their job until there is clear evidence to the contrary."
There does seem to be evidence to the contrary though, historically as I say British courts have been pretty good, but recently in the UK the supreme court was created, which has been given the power to overrule lower courts. Since it was created it's rulings seem to be consistently at odds with lower courts in cases where the lower courts ruled against the wishes of the government.
Similarly in Sweden we've seen how a judge who has a vested interest in the prosecution succeding, and who was personal friends with the prosecutor can be allowed to preside over a case.
I don't think it is safe to assume the courts in question are doing their jobs properly.
"I think Assange is probably not guilty under US law, due to First Amendment protections. But I would have no problem with a US court making that determination; the case is important enough that clarity either way would be good for everybody. Of course, so far, he hasn't been indicted yet."
I'm assuming now in this case you're referring to the Wikileaks leaks rather than the rape case? If so then I have to ask why you think it's even anything to do with US courts? Everything he did surrounding Wikileaks he did not do on US soil, nor was it illegal in the countries he did do it in. There is absolutely no case for him to answer in the US, period. This is why it's such a sham if he does get extradited to the US, and is an extremely disturbing precedent. It implies that Iran would be justified in expecting extradition of US porn producers because they had breached Iranian law from the US.
Manning got the documents out of the US, and to Assange, Assange was in a country where it was legal to receive these leaked documents when he received them, and he was in a country where it was legal to whistleblow when he published them too.
If you don't understand why it's a problem that if someone does something in one country that is perfectly legal, and is then extradited elsewhere because what he did is illegal elsewhere, even if he did not commit the crime there, then I don't think you have enough of an understanding of the concept of jurisdictions to even be engaging in this discussion. If you don't understand that, you don't understand that this precedent would mean that even you, yourself, could be yanked out of the comfort of your home in the US, and taken to foreign country, tried under foreign laws, for something that wasn't even breaking the law in your home country. I really hope you can at least understand why that's a major problem and shouldn't happen, ever.
"All this b.s. about "revenge" and "embarassment" is tin-foil-hat conspiracies that exist only in your mind."
So out comes the childishness I see? I think you'll find there's a lot of other people (probably a majority) who actually believe this too. It's not just in my mind, it's a pretty well established concern regarding revenge. As for the embarassment part, I'm sorry, are you seriously suggesting world governments and the US in particular weren't embarassed by Wikileak's revelations?
"You do not have the slightest idea whether the Swedes are "bending the rules" or what the rules in Sweden even are."
Thank you for deciding that for me, it's just a shame you aren't actually in a position to know what I do and do not know. The rules have been well discussed, and there are a lot of clear quirks in this case - some published by members of the Swedish judiciary themselves who are concerned about how things have been done. But then, I suppose you'll tell me other members of the Swedish judiciary don't understand Swedish law either? well, good luck arguing that one.
"He's had his day in court in the UK, he's going to get his day in court in Sweden, and sooner or later, he's probably going to get his day in court in the US."
I think you're probably right, but as I say the fundamental problem is that he has absolutely no reason to be tried in US court in the first place, as he has not broken any law (outside the rape case if he's deemed to be guilty) so does not even have any case to answer in the US.