Well, personally I am agnostic/atheist, but I’ve heard from several people that believe in God, that they believe “he exists” more than they believe that 1≠2.
Please put aside for one moment the exact meaning of the sentence “God exists”. All knowledge is, to an extent, subjective. I know that 1≠2 because it is a mathematical theorem, but also is a theorem that Zorn’s Lemma is provable from the Axiom of Choice – my level of confidence in these two theorems being true is rather different.
I claim that anyone (if he understands logic), even if he believes that “God exists”, should place more confidence in the statement “1≠2” than in his belief in God *. Why? Let’s assume 1=2, and prove God does not exists:
- Assume 1=2, and suppose by negation that God exists
- 1≠2 (from standard arithmetic axioms and inference rules)
- If God exists, then 1=2 and 1≠2 (from 1 and 2)
- Therefore, God does not exist (from 3, by Proof by Contradiction)
So, one can prove from 1=2 that God exists, but I doubt you’ll find a proof that 1=2 from the assumption God exists. So believing 1=2 requires more faith, and provides more information, than believing God exists (because it implies God exists, but the other way around does not hold).
* Of course, there is at least one flaw in the above argument. Can you find it?
I’ve been playing around with Facebook Apache Thrift recently. I had a tough time finding working Thrift binaries for win32, and the compilation process was not trivial, so I’ve decided to put them online.
So here they are, compiled with cygwin from Thrift 0.1.0. This will probably require cygwin to run (remember to add cygwin binary directory to your path).
Note, the compilation process created two different files named thrift.exe – one small (16kb) file and the larger 10mb file I’ve put online (this one actually works).
I just attended my first alt.net conference (some would call it unconference). The story is about a group of 40 people that came to talk about … whatever they decided to talk about. The conference is self-organizing, with no predetermined lectures or lecturers, and with one healthy rule – if you don’t feel you are learning or contributing at the discussion you are currently having, you have to get up and find another discussion.
Here are some of the talks I attended (here is a semi-readable list of all the talks):
Aspect Oriented Programming
Usages other than logging, AOP frameworks.
Links: Cthru, Post#, Wicca.
Reiterate the basic paradigm, emphasize on TypeMock. They are considering a UI tool adding to Visual Studio to help create mocks – meant for people just starting with mocking. The intended usage is:
- Write a test, without any mocking
- The test will usually fail because some deep class is not configured correctly.
- You will see the chain of calls that caused the exception, and be able to automatically generate a mock for any class in the chain.
- Rinse & repeat until your test passes
High Scale & Distributed Caches
The discussion focused around what I’d call medium scale – 2-10 nodes that used shared caches like memcached & Azure.
There was a comparison of Microsoft CCR and Parallel Extensions. It seems people still think of parallelization as simply utilizing all your cores, when it’s much more than that. Some applications benefit from multithreading even on a single core machine (think web crawler).
One interesting link – PowerThreading library (see this video for a demonstration of Asynchronous Programming Model using PowerThreading).