You know what an Object is, why not learn about the Monad?

Generative abstract artwork for cover by Noisemaker Bot
Generative abstract artwork for cover by Noisemaker Bot
celebrate (seed 2568290493) by @noisemakerbot, Algorithmical/Generative artwork

Monads, with a name that originated in metaphysics and its roots in pure mathematics, is a concept that might seem esoteric at first. The “aha!” moment that builds our intuition for it is a Satori that many developers trying to understand functional programming want to reach, finally consummating in a blog post such as this one. In the book What I Wish I Knew When Learning Haskell, Stephen Diehl suggest an Eightfold Path, of which the first two are:

There’s also a known “monad tutorial fallacy,” which basically…

A glimpse into a more civilized (yet challenging) tool in the JavaScript ecosystem

Art for ReScript Blog, credit to Bettina Steinbrecher

This is not evangelism of ReScript or a one-to-one comparison with TypeScript. I love TypeScript. I decided to rewrite a small TypeScript+React+Jest side project into ReScript.

ReScript is not new. In a way it’s as old as JavaScript itself. ReScript is a rebranding of ReasonML (Facebook) and BuckleScript (Bloomberg), which wrap OCaml on both ends. The former is an interface of the OCaml syntax, while the latter makes sure to compile the AST into JavaScript. ReasonML was created by Jordan Walke, the creator of React.

Untitled, Computer Assisted Drawing, 1975, Paul Brown, written with FORTRAN punched cards on a ICL 1903A mainframe, plotted on a Calcomp Drum Plotter

Unit Tests and Coverage

Unit tests are the best way to determine the reliability of code. Tests assert that specific code behaves as intended by running it in isolation. This assures that we notice breakage as code evolves and grows.

Coverage checks can determine which parts of the code are run by unit tests and which aren’t. This is done “under the hood” by pre-processing the source code to add “sensors” to each statement (in case we measure line-coverage) or to each scope (for branch-coverage).

This sensor is an inline function which increases a counter when triggered, mapped to metadata such as file name…

Sometimes works of fiction hit the nail in the head when it comes to expressing deep fears and emotions with the right metaphors. In such cases, the meaning reveals itself in their lasting impression, in the feelings and moods the work aroused in us. The right analysis takes the work as an intense dream after we are awaken, in which the premise only serves to bind together the medley of deep REM-stage emotions, and the plot are our coping mechanisms.

This analysis contains all the spoilers, even in the movie stills.


Bird Box reveals a person estranged and alienated from…

Originally published for BlockTV, 02 November, 2018. Copyright © BLOCKTV. All rights reserved.

Vitalik Buterin presented the new Ethereum roadmap at the opening of Devcon 4 in Prague this week. The first iteration of this conference took place in 2014 in Berlin and it was where the first visions of Ethereum were presented to core developers. Four years later, Devcon has become one of the most anticipated gathering for blockchain developers.

Buterin layed out what will eventually become Ethereum 2.0.

Ethereum has been divided by the community into four phases of release: Frontier, Homestead, Metropolis and now Serenity. it is…

Beam is built on Mimblewimble protocol¹, a wonderful piece of technology that achieves confidentiality while significantly improving blockchain scalability. However, this comes with a significant caveat. In Mimblewimble there are no addresses, and transactions need to be built interactively by the participating parties.

That poses a challenge: if Alice wants to send money to Bob, both their wallets have to connect and perform the necessary actions. Creating a direct socket connection every time is not really practical (most people sit behind NATs). Also, what if Bob’s computer is offline at the moment Alice wants to send funds?

Beam’s Secure Bulletin…

Abraham Ibn Ezra was a Jewish philosopher and sage from the Middle Ages. Lived in Spain under Moorish rule before escaping persecution from the Almohads. He then became a wanderer, a destitute poet. Full of satirical wit, he had brilliant correspondences with sages such as Yehuda Halevi, wrote concise biblical commentary, and above all, looked at the stars for guidance.

This is a free translation of a treatise from his commentary on the Book of Names (Exodus). I’ve transated השם literally as “the name” where others have transated it as “God.” …

Ronen Lahat

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store