In this series, I try and teach how to program in Clojure . My target audience are people who already know how to program in more traditional imperative, procedural, OOP, and garbage-collected languages such as Python, Java, C#, etc. I assume the reader is proficient in at least one of these. I try to be succinct, to the point, and use more familiar terms and comparisons. Table of Content Chapter…
In this series, I try and teach how to program in Clojure . My target audience are people who already know how to program in more traditional imperative, procedural, OOP, and garbage-collected languages such as Python, Java, C#, etc. I assume the reader is proficient in at least one of these. I try to be succinct, to the point, and use more familiar terms and comparisons. Table of Content Chapter…
I’ve found it was particularly hard to demystify the various kinds of IO that are now offered to software programmers. There is a lot of confusion out there about what are the differences between blocking, non-blocking, multiplexed and async IO. So I thought I’d give a shot at clarifying what each of these kind of IO entails. In Hardware On modern operating systems, IO, for input/output, is a way…
ClojureScript is the Clojure compiler for JavaScript. With it, you can use a dialect of Clojure, called ClojureScript, which is 99% identical in syntax and semantics to Clojure, to write your JavaScript code. So wherever you used to use JavaScript, you can now use Clojure instead! Not sure what ClojureScript has to offer? Well this is the overview for you. Please note that this list was put…
Learning Clojure is like going from driving a car on the right side of the road, to driving a car on the left side of the road. If you can't figure it out in under a month, you're either a hopeless driver, or just didn't really care to try to adapt to the slightly unfamiliar. I've evangelized Clojure at my work. I've seen many people having to learn and try it given different context. There's…
Elixir and Clojure are very similar languages, almost akin to C# and Java, and you won't have much difficulty going from one to the other. The syntax will change. The libraries will not be the same. The target VM will be different. Appart from that, most things will be pretty similar. So when should you choose to use Elixir over Clojure? Whenever you want to use BEAM, or to put it in more details:…
As I program, I always encounter naming issues. What should I call this, and that? Sometimes, I spend more time thinking of a name then implementing. To help me let go of my name paralysis, I've come up with some naming patterns that seem to satisfy my endless pedantic-ism. This way, I can simply refer to these rules, choose a name, and move on with my life. You have re-factored a method, but you…
Inversion of Control [IoC] and Dependency Injection [DI]. They're both related, because DI is a pattern that applies the IoC principal, but they're not similar. Inversion of Control [IoC] This concept describes application control flow. Whenever the flow of control is inverted, that means that the responsibility for the order of execution of some code is relegated to a parent component, then you…
Recently I've been reading more and more of prominent scientists and engineers that warns against the dangers of artificial intelligence. It got me wondering... What is intelligence anyways? When I dissect this to its minimal form, I feel like intelligence is simply the level at which one is able to change the physical world into a form that satisfies a certain need. Or at least to be able to…