Posts

Showing posts from October, 2016

The CAP Theorem

" The easiest way to understand CAP is to think of two nodes on opposite sides of a partition. Allowing at least one node to update state will cause the nodes to become inconsistent, thus forfeiting C. Likewise, if the choice is to preserve consistency, one side of the partition must act as if it is unavailable, thus forfeiting A. Only when nodes communicate is it possible to preserve both consistency and availability, thereby forfeiting P. The general belief is that for wide-area systems, designers cannot forfeit P and therefore have a difficult choice between C and A. In some sense, the NoSQL movement is about creating choices that focus on availability first and consistency second; databases that adhere to ACID properties (atomicity, consistency, isolation, and durability) do the opposite. The "ACID, BASE, and CAP" sidebar explains this difference in more detail." Read more here: https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed

Moving to Erlang&NoSql ...

https://www.infoq.com/articles/key-lessons-learned-from-transition-to-nosql?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text

Speedment framework

Pre Java 8: List < Hare > hares = session . createQuery ( "SELECT h FROM Hare h" , Hare . class ). getResultList (); for ( Hare hare : hares ) {   if ( hare . getId () == 1 ) {     System . out . println ( hare . getName ());   } } With Java 8 aware Hibernate 5.2: List < Hare > hares = session . createQuery ( "SELECT h FROM Hare h" , Hare . class ). getResultList (); hares . stream (). filter ( h -> h . getId () == 1 ). forEach ( h -> System . out . println ( h . getName ())); With Speedment hares . stream (). filter ( h -> h . getId () == 1 ). map ( Hare :: getName ). forEach ( System . out :: println ); ??? what happened? How could that work ?!! Where is the query ?! “In the Speedment framework, the resulting SQL query is the responsibility of the framework. Thus, a program leveraging Speedment does not use any explicit query language. Instead, all the data operations are ex

Java 8 / Collection.removeif()

... Java 8 introduced the  removeIf  method as a default method [...]  in the  Collection  interface. This new method 'removes all of the elements of this collection that satisfy the given predicate' https://dzone.com/articles/towards-more-functional-java-using-lambdas-as-pred?edition=233183&utm_source=Spotlight&utm_medium=email&utm_campaign=java%202016-10-25

Designing a REST API ...

https://dzone.com/articles/5-basic-rest-api-design-guidelines?utm_source=Top%205&utm_medium=email&utm_campaign=top5%202016-10-07