1,400 karma · joined October 12, 2008
Contact: reginaldo at ubercomp.com
Links: http://www.ubercomp.com/ https://github.com/ubercomp/
Also, because they're in New Zealand, you can ask for stuff late at night (in the US) and they'll answer promptly.
Depending on what you want, http://prq.se/ might also be a good choice.
I do a lot of book-learning to, but I rarely find the SICP-kind of book that clicks on me. So book learning is more informative than practical... So the way I read many books (not the SICP kind, of course), is I quickly devour then and keep most of the stuff in the back of my head, so that when I'm doing the real thing I know what I don't know. After reading in a fast-pace, I try to do whatever I'm reading about and use books as references.
The way he thinks about processes, communication and synchronization is just beautiful. When I was able to "prove" that the implementation of a two-bit buffer as a chain of two one-bit buffers actually behaves as specified, it was as enlightening as when I first saw a higher order function in Scheme.
If someone is not satisfied with Flash, they can go ahead and build another Rich Internet Application Plaftorm, as Microsoft is doing with Silverlight and Sun is (was?) with JavaFX. So everyone can, in principle, have access to the part of the Web that Flash "conquered". It is hard, but possible.
Apple, on the other hand, is the one true gatekeeper that ultimately defines what runs in their systems. You can only have access to their platform by abiding to their terms. They are just impossible to bypass.
Imagine that you add fields/services to a class, without breaking the API. As long as you don't change the ids on your definition, clients with code generated for an old version of the class should still be able to call its services, without serialization/deserialization errors.
Any plaintext-equivalent protocol (including the recommended http digest) will be susceptible to a wide range of attacks. For digest, authentication, there's chosen plaintext Attack, man in the middle, online dictionary attack, and others. And, given enough motivation, there will certainly be someone to carry those attacks. So security is never too much. And I think we're responsible to use schemes that are harder too break, once they are known.
These days when I need a simple auth protocol (one that doesn't require a trusted third party), I stick with Stanford's SRP. It's a zero-knowledge protocol (the client doesn't leak any information about the password, not even to the host, except the fact that it knows it). At first this looks like black magic, but in the end it's easy to understand (and implement).