Start programming and experimenting with a functional programming language like Scala might not seem simple at first sight. So, to get your feet wet it’s useful to have the very essential in a single place. I started writing this post in the form of a gist, but then I realized that maybe it was better to share it with the community.
sbt (aka Simple Build Tool) is a general purpose build tool written in Scala for JVM developers. It took advantage of previous ideas developed by other similar tools like Maven, Gradle and Ant.
In order to have a better understanding of the main tool you’ll use programming with Scala you must read:See full post
|SOLID Initial||Stands for||Concept|
|S||Single responsibility principle||A class should have only a single responsibility (i.e. only one potential change in the software’s specification should be able to affect the specification of the class)|
|O||Open/closed principle||“software entities … should be open for extension, but closed for modification.”|
|L||Liskov substitution principle||“objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.”|
|I||Interface segregation principle||“many client-specific interfaces are better than one general-purpose interface.”|
|D||Dependency inversion principle||one should “Depend upon Abstractions. Do not depend upon concretions.”|
A distributed system essentially is a software system in which components located on interconnected systems communicate and coordinate their actions by passing messages.
We generally make the following two assumptions: we have a system that stores data within an asynchronous network. Given that, we want to achieve three core features:
The CAP theorem states that a system can satisfy at most two of these three features above.See full post
TL;DR: Links I collected during 2016
The following topics are still the most important ones
/* Command(Handler) */ val command = new Command("bar"); val handler = new FooCommandHandler(); handler.execute(command);
Commands do not expect a return value and are perfect for asynchronous jobs like:
Think about commands as services accessible through a queue protocol (e.g. AMQP).See full post
We are programmers, and editors are our lightsabers!
I want to configure Vim in the best manner in order to have a sort of lightweight IDE.
GREAT starting point (from /u/joedicastro)
Taken from this reddit discussionSee full post
The problem I am facing today is “how to find the center of a polygon?”. The first idea that came to my mind was based on the elementary plain geometry: calculation of the center of a regular polygon. But the problem is certainly more complex. One could imagine to have a set of points given as latitude/longitude of a particular plain representation of a portion of the Earth (a map with a specific projection - usually based on the common WGS84 ellipsoid), but how to tell if this set of points form or not a closed surface; and if this set arranges one or more closed irregular polygons?See full post
Two days ago I looked for a good project to partecipate with the purpose of enhancing my skills about writing good alghoritms. So I moved my very first steps searching a good starting point in this matter; as a gift of the holy fate I received a mail from coursera reminding me the forthcoming of a new session of the Algorithms I course by the Princeton University College, but this is not what I was looking for, at least not completely. For the gods sake I then recalled the presence of an unfinished project of my friend @origama, here on GitHub, under the Zencoders group (read the manifesto and feel free to take part). This project moved from the original idea of @etr to make a set of libraries in C++.See full post
A software engineer constantly keen on improving his skills and open-minded about cutting edge technologies, particularly on the web-environment spectrum, because the Internet will become the playground where dev-platforms will flow together.