I.e. a stupid masturbating around ideas which lost credibility hundred years ago mixed with ignorance and spiced with ad-hominems.
Pray tell me, what is a an error of a grandparent? Science and religion ARE incompatible. Science investigates the real world, while religion 'investigates' mostly itself - religion is not linked with reality.
Oh, of course a scientist can be religious. But this only shows that humans are perfectly capable to glance over contradictions.
Sorry, English is not my native language and it was past the midnight in my timezone.
NX requires much less bandwidth than plain X protocol, it achieves this by caching and compression. Plain X protocol has no compression whatsoever, and piping through a general-purpose compressor does not work well either.
NX caches and compresses streams of commands, so if you open a menu (for example), it will cache the stream of commands and just refer to them in future.
This achieves great levels of compression, so NX can require hundreds of times less bandwidth than plain X.
Small correction: arithmetic modulo prime does not form a field.
It forms a ring - a slightly less strict structure, without requirements for multiplicative identity (and existence of multiplicative inverse) and commutativity for multiplication.
ECC does not require fields as well, it works fine with rings.
"How much is man influencing THIS warming trend and how much is part of the same natural cycle that has occured many times before?"
Almost all of it. The "warming trend" is the current Milenkovich cycle, but it's a very sloooooow trend (1 degree changes require _tens_ _of_ _thousands_ years). It can't attributed to anything but human actions. If we look at proxies for CO2 emissions, then we'll see this: http://www.global-greenhouse-warming.com/images/Ocean_pH.jpg - ocean currently serves as a buffer, absorbing some of emitted CO2. But that won't go on forever.
Oh, and we know that almost all emitted CO2 is anthropogenic - that can be directly determined by measuring carbon isotopes abundance.
Besides, why do you think positive feedback loops are impossible? We _know_ that the Earth was much hotter before, even though the Sun was less active. The Earth is not your thermostat, it just happens that the current climate conditions create a stable equilibrium.
NACKs in the IP layer won't be a violation of layered model if we move NACKs down to the IP level (as an optional feature, of course):)
In fact, we already have half-assed attempts like ICMP Source Quench. They are not sufficient, though.
Virtual circuits (I mean real circuits with guaranteed bandwidth) are cool, but they are inefficient - you have to reserve bandwidth even if circuit is not used right now. That makes sense for telecom apps, but not for HTTP and other 'bursty' protocols.
Flow control can be greatly improved by adding NACKs to protocol. I.e. a router will (try to) send a NACK packet after it drops your packet.
This NACK might get lost, sure, so a timeout mechanism is still required. But in general NACKs give much better flow control. Another variant is heartbeat ACKs (used in SCTP), they allow a range of other optimizations.
It's possible to do better than TCP. Though of course, circuit-switched networks are still superior in flow control.
You can make RPC protocols with time-outs, so a supervisor process can kill offending child tab. Of course, you'll need to design your protocol to support timeouts, but I assume that Google and Microsoft developers are not stupid.
Next, you can easily isolate a process. Operating systems are GOOD at that, especially Linux with SELinux, seccomp and other _kernel-level_ sandboxing solutions.
Empirically, Google Chrome which also uses multi-process approach works _faster_ than IE and FireFox.
"1) High performance VM".NET is quickly gaining on Sun JVM. So not for long.
"2) Code that does what it says without hidden conversions, text substitutions, and macros."
So?
"3) Other languages that are actually useful like Scala and Clojure."
And.NET has F# (officially supported now!), Ruby, IronPython and so on. Microsoft has even made changes to the CLR to better support custom languages, while Scala and Clojure have to use horrible hacks to implement closures and continuations.
"And LINQ? Why are you doing database and 'data sources' queries in something like C#? Use python or something like that. You need that super-fast JIT "cc -O0" speed to print out customer numbers and such?"
YES! I need a super-fast JIT to print out customer numbers. Have you EVER written a sizable business application? Do you propose to move all data queries to a separate application and then what, use text files for data exchange?
Also, LINQ is typesafe. You can check at compile-time that your queries are correct and IDE can (and does!) use type information for rich autocomplete and inspections.
Besides, there's also Parallel LINQ ( http://www.ddj.com/windows/212700663 ) which allows me to write parallel queries with nice logical syntax.
No. Reified generics instantiations create a new instance of a generic class. I.e. a List will be different from List in C#.
While in Java they would be the same. It's pretty efficient in practice, more so because C# allows to parametrize generics with primitive types and structs.
Of course, templates in C++ are way more powerful (they are Turing-complete!!!)
"I'm not trying to say I think Java's generics are entirely inferior, or anything like that -- just that what you've cited isn't really exactly the same thing."
Well, I wrote a fair amount code in C# 3.5 and I haven't found an instance where reified generics were a problem. On the other hand, type erasure has bitten me in the ass a few time in Java. And it's also possible to create reified generics with full backwards compatibility (read the comments to the article you've posted).
"A dynamic class means you can create a new class at run time. A dynamic method means you can create a new method for an existing class at run time."
Yup. And C# (or more exactly, CLI) can do both. Java also plans to add invokedynamic instruction, but it's not here yet.
I know how garbage collector works in Sun JVM to the level of assembly language generated for write barriers, I know how HotSpot compiles byte-code, etc.
VB is not a bastardized Java, it's a separate language (quite powerful in its VB.NET form), related to C#. It even has a few features not accessible from C#.
>Absent? (Admittedly, I don't code in Java, but I got those links just by googling all your points.)
Yep. Absent.
These are hacks, they are nowhere close to power of LINQ in C#. True LINQ support requires language changes (anonymous types, Expression Tree, Extension Methods).
Admittedly, these are clever hacks and make life somewhat easier (I myself currently contribute to http://code.google.com/p/jaque/ ).
C# right now has the following features that are absent in Java: 1) LINQ !!!! 2) Delegates. 3) Anonymous types and type inference. 4) Reified generics. 5) Support for dynamic methods.
C# 1.0 was just a carbon copy of Java. C# 3, not so much.
A simple contradiction: a person might believe in whatever god that suits him most.
A person can't make gravitational constant behave differently for him by not believing in it.
That's the difference.
Nope. Einstein was a Christian/Jewish atheist - he did not believe in a personal god.
Your post is a great example of all theology.
I.e. a stupid masturbating around ideas which lost credibility hundred years ago mixed with ignorance and spiced with ad-hominems.
Pray tell me, what is a an error of a grandparent? Science and religion ARE incompatible. Science investigates the real world, while religion 'investigates' mostly itself - religion is not linked with reality.
Oh, of course a scientist can be religious. But this only shows that humans are perfectly capable to glance over contradictions.
No problem!
"I see similar expressions used in advertising all the time." - that's probably why I wrote it, it seemed familiar.
Sorry, English is not my native language and it was past the midnight in my timezone.
NX requires much less bandwidth than plain X protocol, it achieves this by caching and compression. Plain X protocol has no compression whatsoever, and piping through a general-purpose compressor does not work well either.
NX caches and compresses streams of commands, so if you open a menu (for example), it will cache the stream of commands and just refer to them in future.
This achieves great levels of compression, so NX can require hundreds of times less bandwidth than plain X.
X-protocol SUCKS for low-bandwidth high-latency links.
NX can require 100x less of bandwidth on some tasks. I remember reading news using 19200 modem link other the NX connection.
Encryption can easily be beaten by thermorectal cryptoanalysis (http://en.wikipedia.org/wiki/Rubber-hose_cryptanalysis).
Sorry, for noise. My abstract algebra is a bit rusty, modulo n arithmetic indeed forms a finite field if n is prime.
Small correction: arithmetic modulo prime does not form a field.
It forms a ring - a slightly less strict structure, without requirements for multiplicative identity (and existence of multiplicative inverse) and commutativity for multiplication.
ECC does not require fields as well, it works fine with rings.
Links: http://en.wikipedia.org/wiki/Ring_(mathematics)
http://en.wikipedia.org/wiki/Field_(mathematics)
"How much is man influencing THIS warming trend and how much is part of the same natural cycle that has occured many times before?"
Almost all of it. The "warming trend" is the current Milenkovich cycle, but it's a very sloooooow trend (1 degree changes require _tens_ _of_ _thousands_ years). It can't attributed to anything but human actions. If we look at proxies for CO2 emissions, then we'll see this: http://www.global-greenhouse-warming.com/images/Ocean_pH.jpg - ocean currently serves as a buffer, absorbing some of emitted CO2. But that won't go on forever.
Oh, and we know that almost all emitted CO2 is anthropogenic - that can be directly determined by measuring carbon isotopes abundance.
Antarctic ice melting ALREADY causes rising sea levels - http://en.wikipedia.org/wiki/Current_sea_level_rise
Besides, why do you think positive feedback loops are impossible? We _know_ that the Earth was much hotter before, even though the Sun was less active. The Earth is not your thermostat, it just happens that the current climate conditions create a stable equilibrium.
NACKs in the IP layer won't be a violation of layered model if we move NACKs down to the IP level (as an optional feature, of course) :)
In fact, we already have half-assed attempts like ICMP Source Quench. They are not sufficient, though.
Virtual circuits (I mean real circuits with guaranteed bandwidth) are cool, but they are inefficient - you have to reserve bandwidth even if circuit is not used right now. That makes sense for telecom apps, but not for HTTP and other 'bursty' protocols.
Flow control can be greatly improved by adding NACKs to protocol. I.e. a router will (try to) send a NACK packet after it drops your packet.
This NACK might get lost, sure, so a timeout mechanism is still required. But in general NACKs give much better flow control. Another variant is heartbeat ACKs (used in SCTP), they allow a range of other optimizations.
It's possible to do better than TCP. Though of course, circuit-switched networks are still superior in flow control.
There are several community astronomy projects.
You can contribute to http://www.galaxyzoo.org/ - it's easy, doesn't require any prior knowledge and might help us make interesting discoveries.
Yes. There ARE inherent advantages.
You can make RPC protocols with time-outs, so a supervisor process can kill offending child tab. Of course, you'll need to design your protocol to support timeouts, but I assume that Google and Microsoft developers are not stupid.
Next, you can easily isolate a process. Operating systems are GOOD at that, especially Linux with SELinux, seccomp and other _kernel-level_ sandboxing solutions.
Empirically, Google Chrome which also uses multi-process approach works _faster_ than IE and FireFox.
I like IDEs and debuggers :(
"1) High performance VM" .NET is quickly gaining on Sun JVM. So not for long.
"2) Code that does what it says without hidden conversions, text substitutions, and macros."
So?
"3) Other languages that are actually useful like Scala and Clojure."
And .NET has F# (officially supported now!), Ruby, IronPython and so on. Microsoft has even made changes to the CLR to better support custom languages, while Scala and Clojure have to use horrible hacks to implement closures and continuations.
"And LINQ? Why are you doing database and 'data sources' queries in something like C#? Use python or something like that. You need that super-fast JIT "cc -O0" speed to print out customer numbers and such?"
YES! I need a super-fast JIT to print out customer numbers. Have you EVER written a sizable business application? Do you propose to move all data queries to a separate application and then what, use text files for data exchange?
Also, LINQ is typesafe. You can check at compile-time that your queries are correct and IDE can (and does!) use type information for rich autocomplete and inspections.
Besides, there's also Parallel LINQ ( http://www.ddj.com/windows/212700663 ) which allows me to write parallel queries with nice logical syntax.
It's just easier to write "C# 3.5" than "C# 3 under .NET 3.5".
No. Reified generics instantiations create a new instance of a generic class. I.e. a List will be different from List in C#.
While in Java they would be the same. It's pretty efficient in practice, more so because C# allows to parametrize generics with primitive types and structs.
Of course, templates in C++ are way more powerful (they are Turing-complete!!!)
"I'm not trying to say I think Java's generics are entirely inferior, or anything like that -- just that what you've cited isn't really exactly the same thing."
Well, I wrote a fair amount code in C# 3.5 and I haven't found an instance where reified generics were a problem. On the other hand, type erasure has bitten me in the ass a few time in Java. And it's also possible to create reified generics with full backwards compatibility (read the comments to the article you've posted).
"A dynamic class means you can create a new class at run time. A dynamic method means you can create a new method for an existing class at run time."
Yup. And C# (or more exactly, CLI) can do both. Java also plans to add invokedynamic instruction, but it's not here yet.
Friend, I _wrote_ a JVM implementation.
I know how garbage collector works in Sun JVM to the level of assembly language generated for write barriers, I know how HotSpot compiles byte-code, etc.
Well, the current C# is not very much like Java. It's actively moving towards functional languages (while Java is not moving anywhere) to the point where you can write purely-functional lazy-evaluated functions as LINQ expressions, something crazy like this: http://blogs.msdn.com/lukeh/archive/2007/10/01/taking-linq-to-objects-to-extremes-a-fully-linqified-raytracer.aspx
VB is not a bastardized Java, it's a separate language (quite powerful in its VB.NET form), related to C#. It even has a few features not accessible from C#.
>Absent? (Admittedly, I don't code in Java, but I got those links just by googling all your points.)
Yep. Absent.
These are hacks, they are nowhere close to power of LINQ in C#. True LINQ support requires language changes (anonymous types, Expression Tree, Extension Methods).
Admittedly, these are clever hacks and make life somewhat easier (I myself currently contribute to http://code.google.com/p/jaque/ ).
"C# is VB with C syntax."
Sorry. You don't know a shit about C#.
Nope.
C# right now has the following features that are absent in Java:
1) LINQ !!!!
2) Delegates.
3) Anonymous types and type inference.
4) Reified generics.
5) Support for dynamic methods.
C# 1.0 was just a carbon copy of Java. C# 3, not so much.
What I'd like to see is a good monitoring support for JMX-capable Java services.
It'd be nice to set up an alarm based on time spent in garbage collector in a JVM running our application, for example.
Q: Why do the suicide bombers commit acts of terrorism? Why would a lot of people drink cyanide-laced Kool-Aid (OK, I know it wasn't Kool Aid)?
A: Because people are not rational, stupid! We can make ourselves believe in what we want to believe up to the point we start to deny reality.