2016-12-11Home
Starting out this week, I'd like to share something different. It's My Showdown with MJ by my hero Manu Ginobili recollecting his only game with Michael Jordan, his childhood hero. I believe it's called inheritance. I've always been fascinated by Manu's passion, his magic and how he saved his team and fans from despair. I even named myself "Manu"!
Let's get back to technical session.
data Artisans guys debunked six stream processing myths. These are long-time misconceptions on streaming people get from early versions of streaming systems.
Ever heard of Reactive Streams but wondering what it actually does? Let's get into A Journey into Reactive Streams. Reactive Streams is a specification to solve stream processing problems and its implementations will be able to communicate via the Reactive Streams protocol.
Li haoyi explored how old design patterns apply apply to Scala. I like his definition of Design Patterns
A Design Pattern is something you do over and over when building software, but isn't concrete enough to be made into a helper method, class or other abstraction.
In short, Scala has built-in support for some Java design patterns in the language to make your programming easier and less error-prone.
Not all people buy in Scala or functional programming. Disadvantages of purely functional programming threw cold water on it. Given my short experience with Scala, a impurely functional programming, it's true that some data structures are not efficient and sometimes I got bitten by its laziness but I will never go back to Java. In Java, after working out a solution, I spend extra time to figure out how to implement it while I can easily express it in Scala. I also like immutable which reduces errors in my codes.
Akka is using Aeron as the underlying transport in the new remoting implementation (codenamed Artery) for Actor messages. It is based on UDP, providing the same guarantees as TCP but more efficient.
Artery is designed from the ground up to support high-throughput in the magnitude of 1 million messages per second and low-latency in the magnitude of 100 microseconds.
Plumber share their experiences on the reasons why JVM crashes and where to look for evidence.
Takipi compare popular Java logging frameworks from the logging statements used by GitHub's top Java projects.
From Martin Fowler's Bliki (Blog + Wiki)
How long should a function be?.
The argument that makes most sense to me, however, is the separation between intention and implementation.
Hidden precision can lead to some subtle bugs.
The more general conclusion is that floating point is tricksy when it comes to comparisons.
Aliasing bug occurs when the same memory location is accessed through more than one reference.
So if we want changes to be shared, we need to handle that as the exception rather than the rule.
Value Objects should be immutable to avoid aliasing bugs.
Objects that are equal due to the value of their properties are called value objects.
Google open source the Embedding Projector for visualizing high dimensional data.
Do you know how to write a git commit message? The author gives seven rules of a great a git commit message.
Apache HBase is built on HDFS. Theoretically, it could be ported to other Hadoop File Systems or general distributed file systems. FINRA migrated to HBase on EMR using S3 for storage and have lowered their costs by 60%.
How To Make Your Database 200x Faster Without Having To Pay More?. The key is returning 99.9%-accurate answers for low-priority queries, and 100% for the rest, or Approximate Query Processing. Some proposals are BlinkDB and SnappyData.