September 2018 Summaries
3 posts from Stream
Filter
Month:
Year:
Post Summaries
Back to Blog
Stream extensively uses the Go programming language, citing its significant impact on productivity and speed, which has allowed them to implement crucial components of their technology stack. The Go 1.11 compiler is highlighted for its role in transforming Go source code into executable files, with a focus on three key phases: scanning, parsing, and code generation. The scanning phase breaks down the source code into tokens, while the parsing phase organizes these tokens into an Abstract Syntax Tree (AST), providing a structured representation of the code. Code generation then converts the AST into machine code, using an intermediate Static Single Assignment (SSA) form that allows for optimization. The text explains that these optimizations make the resulting code more efficient, by eliminating redundant code and enhancing execution speed. The Go compiler's approach to generating and optimizing SSA results in a faster implementation, underscoring the language's efficiency and performance. The document also offers insights into the practical application of Go's scanning and parsing packages, although these are not directly used by the Go compiler itself.
Sep 25, 2018
2,524 words in the original blog post.
The tutorial explores the Go programming language by guiding readers through building a highly concurrent web server that leverages SpaceX rocket images from the Unsplash API, while incorporating seam carving for image resizing. Highlighting Go's performance and simplicity, comparable to languages like Java and C++ but easier to write like Python, the tutorial emphasizes Go's suitability for backend development, evidenced by its adoption by companies like Netflix and Stripe. It covers Go's syntax, including statically-typed variables, inferred types, the use of packages, and the role of pointers. Advanced topics such as Goroutines and Channels are introduced for handling asynchronous programming, showcasing Go's concurrent capabilities by demonstrating how to download and process images concurrently. The tutorial also touches on error handling best practices and provides an overview of helpful libraries and tools within the Go ecosystem, emphasizing the language's balance of speed and ease of use, and its effectiveness in production environments, as experienced by Stream in powering news feeds for millions of users.
Sep 18, 2018
4,742 words in the original blog post.
Google's feed on Android exemplifies best practices in content discovery by effectively balancing machine learning with user controls. The feed utilizes Google's advanced machine learning capabilities to automatically personalize content based on user interests, inferred from browsing behavior and search history, while also allowing users to manually follow or unfollow topics and specify disinterest in particular articles or sources. This dual approach empowers users to shape their content experience, providing a means to step outside their filter bubbles by aggregating multiple articles on the same event. Google's strategy emphasizes ease of use, offering intuitive customization options directly within the feed, thus ensuring a superior user experience despite the imperfections of machine learning data.
Sep 05, 2018
898 words in the original blog post.