We’ve all stumbled upon url shortening services like bit.ly, tinyurl.com or goo.gl (this last one was shut down a while ago). They spare us of having to communicate hard-to-spell or too long urls (has anyone tried to dictate over the phone the URL of a Google Drive folder?). Because if you can copy/paste a URL it might easy, but if you need to send it to someone in a limited length text (e.g. a SMS) or you want to encode it in a QR code (where shorter strings are easier to scan), it is preferable to have a url like…


Note: Throughout this article by proposer we’ll refer to a node/entity in the network that is in charge at a specific time of proposing a new block, while validator(s) will designate the nodes/entities that are responsible with validating the block put forward by the proposer, thus effectively “vouching” for the proposer.

The two problems that Elrond tries to solve from the get-go are increase in throughput — achievable through sharding and decrease in energy expenditure — achievable through moving from a proof-of-work based consensus to a proof-of-stake consensus. …


Do All Roads Lead to Rome?

Evaluating complex systems characteristics is always a hard task, because the more complex a system is, the more different it will be from any other system, even if their stated goal is the same. In the distributed systems’ world the word du jour is distributed ledger (often represented as DLT, where T stands for Technology).

DLTs come in a plethora of flavours. For one we have the distinction of permissioned vs permissionless to differentiate between those systems where there’s a guardian that lets people join the network vs the ones where everyone can join. …


I’m currently testing the c-lightning BOLT implementation and, being an incipient technology and all that, the tooling around it is not yet that much developed. This means that, for the moment, we have to heavily rely on the cli interface. And the best part is that all the command outputs are in JSON which is also a bit bad (because humans can’t easily read it, especially if it’s a long JSON), but it’s mostly good because we can use other tools at our disposal to make it more readable. One of these tools is jq.

First thing that jq can…


Marx might’ve not been the one that coined the term “capitalism”, but he’s for sure the one that popularised it by using it in his papers. And, although he’s (along with his pal, Engels) been widely using it, his framing of the capitalism was just as an intermediate step (a placeholder until the people are ready) towards a more ‘advanced’ society structure — the communism (with a preparation stage in socialism). As such they (Marx and, at a lesser extent, Engels) thought that a lot of the value deriving from a worker’s labour might be captured by various middlemen (in…


I keep seeing lots and lots of articles comparing the speed (in transactions per second) between the traditional financial system (but mostly card and mostly Visa) with one or the other of the cryptocurrencies. A recent infographic is the one here, where Visa is listed with 24kTPS vs Ripple’s 1.5kTPS and Ethereum’s 20TPS and Bitcoin’s 7TPS.

But comparing the speed of card schemes transactions with those of cyptocurrencies is ‘apples to oranges’ comparison because

a. looking at the system as a whole (money-banks-cards), Visa is a Layer 2 scheme, it ‘runs’ on a layer provided by the Fed, ECB, other…


When looking for a quick way to bootstrap a Hadoop cluster (maybe for learning or for some kind of staging / testing platform), Clusterdock is a good option. It uses Docker to spin-up 2 or more nodes with CDH (which, of course, takes care of all de dependencies and required versions and prerequisites).

Clusterdock, in the ‘standard’ setup, comes with Spark-on-YARN, Hive, Hue and few others (like Oozie and Zookeeper). And, while Hue solves a big part of the ‘visual’ development (i.e. …


If you work long enough with docker containers (and only work from the command-line) you might be tired of typing docker ps -a to get a list of all containers or docker exec -ti container_name bash to log into the container named 'container_name'.

If so, here are three functions/aliases that you can define and drastically reduce your typing. If you have bash as your shell, you can put these in a file called .bash_aliases in your home directory

#docker helper functions
alias dps='docker ps -a'
function dosh(){
docker exec -ti "$1" bash
}
function dolog(){
docker logs --tail=10 -f "$1"…

If you’re using geth to interface a public or private Ethereum blockchain, you migh’ve noticed that since geth 1.6 the possibility of compiling contracts using IPC/RPC has been removed. This means that if, for instance, you’re running a private network that can’t be accessed by, say, a Mist client or you otherwise want to do contract deployment in an automatic fashion, you’re out of luck.

Until geth 1.6, provided that the rpc was active and you want to deploy a Solidity contract called ctr.sol that implements a contract called ‘token’, one could write a node.js …


When it comes to 1click installs for a wide range of solutions (not only Apache Cassandra, but other relational and non-relational databases, application servers, appliances and whatnot), there are prebuilt solutions available for every major cloud platform out there (AWS, Azure and GCE). I haven’t looked (so I can’t talk about) at the ones for AWS and Azure, but for GCE you have a template to start either a single node or a 3-node cluster. As far as I could tell you can’t choose the machine size in either case and can’t add additional nodes (not to mention that, for…

felix crisan

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