Necessary and Sufficient is written by Damien Wintour. Damien has actively been involved with leading small teams of 5-20 people in the process of building scalable, high-performance systems using state-of-the-art technology and modern development philosophies. This weblog contains his personal opinion on various topics and challenges he has faced over the years.
By day, Damien works on quantitative and latency-sensitive trading systems using C++, Java, kdb/q and Linux.
Damien's research interests include:
- High Frequency and Arbitrage Trading algorithms
- Distributed Databases (Dynamo, Cassandra, BigTable, Vertica, Monet, AsterData, CouchDB, SimpleDB)
- Grid Computing Components (Hadoop, MapReduce, GoogleFS, AmazonS3, AmazonEC2, AppsEngine, Azure)
- Information Retrieval and Vector Space Models
- Open source software
- Extremely Agile/Terse Languages like Ruby, Python
- Functional Languages like Haskell, F#, Erlang
- Machine Learning/AI
- Application of Operations Research (OR) to IT Projects
Of course, no warranties or other guarantees will be offered as to the quality of the opinions or anything else offered here.
Apart from technical issues Damien enjoys: Finance, Mathematics, Running, Cycling, Golf, Good Food and Fine Wine, Reading, Arthouse Movies, and spending time with his lovely wife and adorable young children, Oscar and Grace.
What's with the Blog Name?
Necessary and Sufficient is a phrase used in the mathematics of formal logic. What else would you expect from someone who endured 6 years of education including postgraduate study in mathematics?
Definition: The condition A is said to be necessary for a condition B, if and only if the falsity of A guarantees the falsity of B.
Definition: The condition A is said to be sufficient for a condition B, if and only if the truth of A guarantees the truth of B.
These conditions are used in many situations. For instance...
Using the logic of conditions to attempt to state whether one thing will cause another thing to happen (causation arguments) requires clear delineation between the necessary and sufficient conditions. The most common fallacy involving causation arguments and conditions is: not sufficient means not necessary. Clearly that's incorrect. You need both parts to ascribe a cause - necessary AND sufficient conditions.
If you are trying to build a "formal" definition of X, you need to specify what properties all and only X’s have. Then you’ll know the form of X. To do this, you simply need each property to be necessary, and the properties together to be sufficient.