Cubism.js. Time Series Visualization.
Powering big data at Pinterest. Mohammad Big data plays a big role at Pinterest.
With more than 30 billion Pins in the system, we’re building the most comprehensive collection of interests online. One of the challenges associated with building a personalized discovery engine is scaling our data infrastructure to traverse the interest graph to extract context and intent for each Pin. We currently log 20 terabytes of new data each day, and have around 10 petabytes of data in S3. Bolshchikov/js-must-watch. Broken by Design: MongoDB Fault Tolerance.
As you're undoubtedly well-aware, there are some very strong geek fashion trends in the valley. I don't mean fashion in the sense of geek haute-couture -- the fashion trends we're talking about here have to do with tech components. You've heard of it before: "here's how we built fubar.com using X, Y and Z. " The blogosphere regurgitates this dreck, and people base their adoption strategies on how much noise they have heard about various X's, Y'z and Z's. A mockery of good engineering. This kind of software construction is the modern equivalent of the bolt-on motorcycle shows on TV. MongoCycle: unsafe at any speed. For a while, I thought that the problem with this approach was that the engineering had been outsourced. And us geeks are no better. How is Mongo Broken? MongoDB is a NoSQL data store. Programming analysis and commentary: O'Reilly Radar. Questioning the Lambda Architecture The Lambda Architecture has its merits, but alternatives are worth exploring.
Nathan Marz wrote a popular blog post describing an idea he called the Lambda Architecture (“How to beat the CAP theorem“). The Lambda Architecture is an approach to building stream processing applications on top of MapReduce and Storm or similar systems. This has proven to be a surprisingly popular idea, with a dedicated website and an upcoming book. Since I’ve been involved in building out the real-time data processing infrastructure at LinkedIn using Kafka and Samza, I often get asked about the Lambda Architecture. What is a Lambda Architecture and how do I become one? The Lambda Architecture looks something like this: Read more… Revisiting “What is DevOps” If all companies are software companies, then all companies must learn to manage their online operations. Web Performance Matters - Journal.
Local Euler: Now with all 476 puzzles and images. Concurrency is the New Memory Management - Aaron Schlesinger. These days, we all need to build "cloud apps.
" We've heard "cloud" so many times at this point that it's a buzz word, but underneath the hype lives a real fact for us developers: everything we build needs to be a distributed system. For our apps to run, we must have servers and they need to respond to requests from our apps, all the time. So we need to build systems that have many computers to provide all the fault tolerance, throughput, etc... we need.
Kahun/awesome-sysadmin. Case Interview. Java to the Limit. Let it crash. In Akka. Concurrency and distributed systems are probably among the hardest parts of software engineering.
Basic Java EE apps usually don’t need to deal with these issues that much, but increasing parallel computing resources in servers and constantly open client-server connections, like WebSockets, bring these problems closer to web app developers as well. Although average web developers don’t that often need to fight with these hard “academic” problems, there are some areas of engineering where the problems of concurrency, distributed systems and their reliability play possibly the most important role.
In e.g. telecom, nodes must be working tightly together, but one failing node can’t take the whole system down. New nodes and roles must be pluggable to a live system and it must even be able to heal itself from malfunctions automatically. An actor can be seen as protected zone, in which its execution is always “thread safe”. Actor.tell("hello", ActorRef.noSender()); Measuring Page Load Speed with Navigation Timing. Measuring Page Load Speed with Navigation Timing People like web pages that load quickly.
Google experiments show that a delay as small as a hundred milliseconds can have an adverse effect. But how do we measure web page load speed? And what does "page load" actually mean? This article describes the API and shows ways to make use of the timing data it exposes. How can I use it? The API is accessed via the properties of the window.performance object: navigation: how the user navigated to the page timing: data for navigation and page load events.