It is Friedman and Felleisen's belief "that writing programs recursively in Scheme is essentially simple pattern recognition". (The Little Schemer, Fourth Edition)
I think this sits well with what we know about cognition. Skill acquisition can be treated as a continuum with analytical reasoning lies at one end, and pattern recognition at the other. The more we practice a skill, the less any kind of reasoning is taking place, replaced by heuristics that the brain is excellent at (of which pattern recognition is but one example).
See also Daniel Kahnemann's System 1 and System 2 Thinking.
A whirlwind tour that sheds light on the design of web frameworks that emerged in all language communities (Servlets, WSGI or Rack), reflecting the need to standardize around a portable interface abstracting HTTP.
This is a hands-on post via a take on Ring, the standard framework in Clojure. I went to great length documenting the experience of living and breathing at the REPL.
John McCarthy said that he never had the intention to realize the lambda calculus, but he followed that statement with the corollary that had someone "started out with that intention, he might have ended with something like LISP." Peter Landin was a pioneer in that regard. See "The Mechanical Evaluation of Expressions", published in 1964, and the SECD virtual machine. Machine interpreters like SECD and CEK may come close to a "realization" of the lambda calculus. Their design is directly inspired by its semantics. You don't necessarily end up with something like LISP, but you can, see Lispkit and LispMe.
These are really good points. Thank you.
Currently, Caonima is optimized for China, so our VPS is located in Japan and the use of the obfuscation plugin is required. After registering, users get a link with their client configuration. Users can connect with any device on which they managed to install the Shadowsocks client and the obfuscation plugin. This seems to be a pain
point. Some users do not get past that stage.
Caonima provides a ready-to-use server connection. For client installation, we refer our users to the official Shadowsocks channels. Caonima is compatible with the subset of Shadowsocks clients that support the SIP003 plugins
(https://shadowsocks.org/en/spec/Plugin.html). In other words, the better maintained ones, like the C libev implementation. Shadowsocks has a good installation story on Android, too, with the app store and configuration via QR code or paste link. Last time I checked, Potatso on iOS was not supporting the SIP003 plugins.
With Caonima, I was able to watch Youtube videos in China without lag. If there will be demand, we will provide kcptun connections for further optimization.
So here are some questions to which I have no answers yet. Who needs Shadowsocks as a service? People who travel to destinations where the Internet is restricted, and for which the installation and maintenance of a Shadowsocks server is overkill? Expats who expect the best speed and performance from their proxy? ISP customers who suffer from net
neutrality violations? Organisations that do business with China, whose employees travel to China, and who might benefit from a lightweight solution?
Ultimately, I hope that the service can prove beneficial to its target audience. It's true that I don't know yet who that is, but I do know that it grows everyday, unfortunately. We live in a world where open, unfettered access to the Internet is
becoming less rather than more self-evident.
Caonima provides Shadowsocks as a service. You can think of Shadowsocks as a SOCKS5-based proxy implementation with an extension mechanism. In China, for example, you will want to install and enable the obfuscation plugin to avoid being flagged by the Great Firewall. Like a VPN, a Shadowsocks installation is your gateway to the open Internet in places where access to the network is restricted, whether due to censorship or net neutrality violations.
Caonima grew out of my needs as a frequent China traveler. Current status is a minimally viable prototype servicing a handful of users. At this stage I'm interested in collecting feedback and assessing the service's ability to answer the needs of a broader audience. In return, and for the time being, the service is provided for free.
Correct, and for those interested in approaching Celluloid, here is post that demonstrates a concurrent "Hello, world" program: http://danielsz.posterous.com/167870244
Happy to see informed opinions, thank you. Sounds pretty damning, too. Thomas, are you saying that messaging is always superior to RMI, and that there is no valid use case for RMI?
I am thinking out loud here, but isn't a distributed system that leverages RMI quicker to implement? Might be suitable when prototyping. Or teaching a classroom. Does that make sense?
I wonder why nobody ever talks about drb, a distributed system that ships with ruby. It's active in Japan, and there has been an effort to make it better known in the rest of the world with a book dedicated to the topic in english (published by Pragmatic Programmers). Still, it hasn't stirred much interest. Even if it's less advanced than DCell, it's still a recommended way to start learning about distributed computing.
I think this sits well with what we know about cognition. Skill acquisition can be treated as a continuum with analytical reasoning lies at one end, and pattern recognition at the other. The more we practice a skill, the less any kind of reasoning is taking place, replaced by heuristics that the brain is excellent at (of which pattern recognition is but one example).
See also Daniel Kahnemann's System 1 and System 2 Thinking.