Go is often described as a simple language. It is not, it just seems that way. Rob explains how Go's simplicity hides a great deal of complexity, and that both the simplicity and complexity are part of the design.
The other day, I sat down to write my first bit of Rust code ever. I was working on a simple kata and many other people would just whip up something with all the code in one file. However, working as a C# developer for many years, I am in the habit of organizing my code into namespaces and separate files. I was totally stumped for a while on how to do this in Rust. The documentation of modules wasn’t immediately helpful. I later figured out that certain key sentences did in fact explain how modules work in Rust. However, coming from a C#/Java way of doing namespaces/packages, they weren’t explicit and direct enough to flip around my thinking. Now that I’ve figured out how modules work, I thought I’d share what I figured out.
Explore some of the more interesting things you can containerize on linux and windows. View first hand different workflows for how to run/build different apps in containers. Jessie will cover desktop apps as well as some other apps you would have never thought could run in a container.
Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere.
Docker containers can encapsulate any payload, and will run consistently on and between virtually any server. The same container that a developer builds and tests on a laptop will run at scale, in production*, on VMs, bare-metal servers, OpenStack clusters, public instances, or combinations of the above.
PhD student in PDOS, the Parallel and Distributed Operating Systems group at MIT, advised by Robert Morris and Eddie Kohler. My research interests are in distributed systems, particularly having to do with consistency and performance. I'm graduating soon and looking for opportunities in industry
In architecture, the development and the notion of materiality and technology has always been a catalyst for innovative design. Today, technological innovation is no longer limited to the binary digital field, but takes place in interaction with the complex physical. Thus begins a new understanding of the material to take shape, which calls for new interdisciplinary collaborations and which lead to a new material culture in architecture. Therefore, the materials discussed in the context of actively generating design, and the material conditions adapts to both structural and architectural performativity.
Elcodi is a suite of bundles for Symfony2 which aim to help developers build and quickly scale e-commerce websites. It is written in a clean, straightforward way to ease and smooth the learning curve and it promotes development productivity, SOLID, DRY principles without adding too many layers of indirection. Some of the goals we think we've reached: Balance between flexibility and development speed, Reusable components and foundations for writing custom Model. We'd like to share some insights on how we are approaching those topics by using rigorous coding standards, enforcing coherence and loose coupling, aiming for comprehensible and self-explaining code. See how you can leverage Symfony components for addressing similar challenges and let's discuss the rationales behind some good practices. And above all, see how to do it without pain, because we think that coding should always be a pleasure and crafting developer-friendly software is in our DNA!
Designing multi agent systems for scale creates a number of unique challenges for messaging infrastructure. A key pattern in a pooled multi agent system is broadcast request with single response. As the number of potential responders grows large most messaging platforms just can't handle the load because of the way they are designed. Existing messaging platforms do have a lot of great tooling and resiliency features, but they often come at the expense of latency and throughput, and lead to design that comes to depend on those features.
NSQ is a realtime message processing system designed to operate at bitly's scale, handling billions of messages per day. It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. It is the backbone of bitly's infrastructure, powering realtime data analysis and feeding offline batch processes.
JavaScript is a language with more than its share of bad parts. It went from non-existence to global adoption in an alarmingly short period of time. It never had an interval in the lab when it could be tried out and polished. JavaScript has some extraordinarily good parts.
Network partitions are real, but their practical consequences on complex applications are poorly understood. I want to talk about some of the neat ways I've found to lose important data, the challenge of building systems which are reliable under partitions, and what it means for you, an application developer.