Profile cover photo
Profile photo
Jeffrey Wang
81 followers
81 followers
About
Jeffrey's posts

Post has attachment
Distributed Systems and the CAP Theorem
In the field of distributed systems, the CAP theorem  is an important result that often guides the design of such systems. The theorem states that a distributed system cannot satisfy consistency, availability, and partition tolerance simultaneously (see the...

Post has attachment
Matrix Sketching
Last time , I wrote about a clever algorithm for approximating the histogram for a stream using bounded memory. The post was motivated by this paper , which is an extension of that algorithm to a problem that seems unrelated at first glance, which is matrix...

Post has attachment
Streaming Frequency Approximation
It's been a while, but I finally motivated myself to write another blog post! Today's topic is approximating the frequency of items in a stream. With all the data that is generated today, streaming algorithms  have become very popular as one of the efficien...

Post has attachment
Bitcoin
The virtual currency  bitcoin  has been getting a lot of hype and news recently, as the price per coin has gone from about \$14 at the beginning of the year to a high of over \$1200 last week with a subsequent drop to its current value, which is between \$7...

Post has attachment
Asynchronous HTTP with spray
Last time , I wrote about the high-level ideas behind the Scala libraries akka and spray , namely the concept of reactive programming in order to meet the demands of modern applications. I finally got the chance to play around a bit with spray in order to g...

Post has attachment
Reactive Programming
There's an interesting idea being pushed forward by the Scala community about the way systems should be built, and it's called reactive programming. The reactive manifesto  gives a nice summary of their views on the future of distributed applications and ho...

Post has attachment
For Comprehensions
In Scala, the concept of a "for loop" doesn't really exist. Instead, we get " for comprehensions ," which cover for loops, foreach loops, and more as we will see. Suppose you have the following line of Scala: for (i <- 0 until 10) yield i It looks roughly l...

Post has attachment
Gumball Technique
Using memcached on top of a traditional relational database (RDBMS) has become the most popular way of building large-scale web services, as it is both simple and fast in the majority of cases. Loads are typically read-heavy because for each piece of conten...

Post has attachment
Kafka
Apache Kafka  is a distributed messaging system developed by LinkedIn. It functions similarly to a message queue , but is more specialized for the simultaneous use-cases of real-time and batch log processing. In particular, Kafka emphasizes throughput, scal...

Post has attachment
Google Go (Part 3, Types)
In the previous two posts, I introduced Google's Go programming language  and the model of concurrent programming that it adopts. We've seen that Google has made a number of interesting choices in the design of the language, and their approach to types is y...
Wait while more posts are being loaded