Laurie Hannon introduces you to Mycroft, an open source virtual assistant similar to Siri, Alexa, and the Google Assistant. Laurie explains what it takes to code your own custom skill for Mycroft and details how Microsoft’s open source Bot Framework can be used for cross-platform chatbots.
Sarah Novotny explains why open source is more important now than ever. First, customers need the ability to freely choose which combination of services and providers will best meet their needs over time. Second, customers need to orchestrate their infrastructure effectively across different environments to ensure adherence to business and industry standards.
Introducing a new programming language at work can be a challenge, especially if it is a functional language. Robert Kluin shares a failed attempt and an ongoing success story that will help you understand how to sell the idea to management and improve the odds that your pilot project will be a success.
Knowing how to test Go code is a key job requirement. It can also help you master Go faster by letting you easily test your hypotheses as you practice the language. Luciano Ramalho offers an introduction to test-driven development, covering essential testing techniques that make the test-first approach practical and even enjoyable.
Ever sat in one of the shaking cable cars in San Francisco and ordered the wrong pizza because the train was rattling so much that you pushed the wrong the button? There are many situations like this in daily life. Elena Makarenko explains why context-related accessibility is a relevant topic for everyone, whatever your specific abilities may be, and how adaptive web components can help.
MQTT, an extremely lightweight publish/subscribe protocol, has taken off quickly in the IoT space. Sean Dague explores the MQTT protocol and demonstrates how it is used in projects like Home Assistant (open source home automation), cloud-based IoT hubs, and projects based on the ESP8266 platform.
Since Bitcoin was open sourced in 2009, we've been reading about how cryptocurrencies are the new internet. But how do they actually work? Lucy Wyman offers a deep dive into blockchains, covering what a blockchain is, how it works, the cool math and theory that it uses, and applications beyond cryptocurrencies.
Yahoo! Japan has implemented an internal centralized messaging platform using Apache Pulsar. Nozomi Kurihara explains why the company chose Pulsar over other messaging platforms, such as Apache Kafka, and details actual use cases.
Building cross-platform desktop applications with Vue.js is fairly straightforward, since Vue.js plays really well with Electron. Learn how, as Syue Siang Su walks you through making a minimal browser-like application, from ideation to deployment.
No one likes it when an API doesn’t work as expected. The idea of testing APIs is not a novel concept, but the concept of testing based on a specification is an underexplored space. Taylor Barnett explains how to utilize contract testing with the OpenAPI Specification to create better APIs.
Mahdi Yusuf discusses new ways to unlock hidden potential from data you currently generate with smart health devices. Along the way, he dives into key health metrics and misconceptions past, present, and future, illustrates insights with real-world data examples, and details the effects they've had on respective candidates.
Deb Nicholson explains why, before “disrupting” existing systems by replacing them with the blockchain, we must ensure that the power and potential to improve lives is real and reasonably evenly distributed. We owe it to the future to make good early decisions and to refrain from overselling the blockchain’s potential to be a force for good until we’re certain it is.
Personal transportation is on the cusp of the first major revolution in 100 years. Valentin Bercovici discusses the unexpected role blockchains will play in giving us all mobility choices we soon won't be able to live without.
The blockchain is a formerly niche idea that’s on the path to becoming a standard technology (think responsive design or containers). The sweet spot for the blockchain is transactional data. Using an ownership-tracking example, Erin Morrissey walks you through the technical ideas behind the blockchain to show how each contributes and explains why any of it even matters.
I love open source. You love open source. But your company doesn't get why it's a Very Good Thing™ and won't let you participate. Daniel Ruggeri explains how some open source-loving engineers at Mastercard were able to create a program and change the tone about open source in the enterprise.
The Apache OpenWhisk project (supported by IBM, Adobe, Red Hat, and others) provides a polyglot, autoscaling environment for deploying cloud-native applications driven by data, message, and REST API call events. Daniel Krook explains why serverless architectures are great for cloud workloads and when to consider OpenWhisk in particular for your next web, mobile, IoT, bot, or analytics project.
Continuous integration and delivery (CI/CD) systems are part and parcel of today’s software delivery pipelines. Today, there are two choices for a CI/CD system: you either pay for a service or host your own. Anubhav Mishra explains how to use serverless computing to create a cost-effective and reliable CI/CD pipeline.
Do you want to create robust and composable abstractions? Eric Normand shares an iterative process to define the essence of a domain and build composability into the core and then demonstrates how to apply this process to the Processing graphics library to develop a composable vector graphics system.
Most people assume architectures are hard to change. Evolutionary architecture is an approach to overturning this assumption. Join Mike Mason and Zhamak Dehghani to explore the family of software architectures that support evolutionary change and learn how to build evolvable systems. You'll discover a different way to think about software architecture.
Angie Brown explains how leading do-it-yourself retailer The Home Depot is hammering the application of open source technology to build its award-winning customer experiences across its interconnected environment. You’ll learn how the company uses open source for its OS in stores, online search, order management, analytics, and more.
Just as coal miners used canaries as an early-warning sign of mine contamination, you can use canary deployments to test new software releases in your production environment with minimal impact to users. Darren Bathgate details the layers of a canary system and outlines the benefits to your organization.
Eddie Satterly explains how a very old legacy company transformed into a modern customer-driven powerhouse using tools and methodologies from open source. Eddie covers cost savings, changes in culture, and new capabilities derived from this key shift, as the company went from zero to open-sourcing two of its own internal projects in 18 months.
Blockchain == buzzword * 10^10. By now, most of us have heard something about blockchains. Josh Butikofer walks you through building a very basic blockchain to demonstrate how the underlying technologies work and what they might be good for besides the cryptocurrency use case. Join in to go beyond yet another alt-coin to invest in and dig deeper into the tech.
Do you have a real understanding of the performance of your new Kubernetes service, or do you just know what the average user is seeing? Fred Moyer explains how to get a comprehensive understanding of your Kubernetes infrastructure with a little math and an Istio service mesh implementation for your container-based infrastructure.
Imagine a language with the syntax of Ruby but an order of magnitude faster. That's the short pitch for Crystal, a statically typed compiled language with a whole lot more to offer. James Thompson takes you through the history and the current state of Crystal and explains how to use it effectively and where it needs your help.
Andrew Kim leads a technical deep dive into how DigitalOcean uses anycast IPs, BGP, and Kubernetes to run globally distributed services on containers. Along the way, Andrew discusses design considerations for scalability, architectural trade-offs, data center networking, lessons learned in production, and challenges to adopting containers for latency sensitive applications.
Richa Khandelwal explores where engineering fits in machine learning land and shares software engineering and DevOps practices that help in taking a machine learning-powered end-user experience from inception to production.
Alyssa Columbus walks you through building data visualizations using the R Shiny web framework. You'll learn how to build simple Shiny applications with interactive elements and customized layouts and discover best practices to make these applications suitable for production deployment.
Liam White covers the basics of the Istio-Envoy interaction and explains how to debug issues that might occur between them. Liam then leads a live demonstration of some of the tools and tricks at your disposal for debugging issues with Istio itself.
Simon Corston-Oliver offers an introduction to deep learning in Python using Apache MXNet. Starting with deep learning fundamentals, Simon then walks you through training and evaluating a model and explores advanced topics such as training on multiple GPUs.
Though thousands of distributed systems are activated every day, designing and building them is more black art than science. However, the study of such systems reveals a collection of repeated patterns and practices that can be applied to quickly construct reliable systems. Brendan Burns describes these patterns and explains how they can be used with the Kubernetes container orchestrator.
Alena Hall walks you through setting up and building a distributed streaming architecture on Azure using open source frameworks like Apache Kafka and Spark Streaming. You'll use these distributed systems to process data coming from multiple sources in real time and perform machine learning tasks.
Fabio Buso offers demonstrations of frameworks for building distributed TensorFlow applications on the Hops platform and walks you through the whole model lifecycle, from debugging and visualizing models on TensorBoard to parallel experimentation and distributed training (with the help of Spark) to model deployment and inferencing using TensorFlow Serving and Kubernetes.
Open source has been a fundamental strategy for technology collaboration and innovation at Huawei. Ying Xiong explains how Huawei collaborates with industry leaders and innovates together through open source projects like Kubernetes and Kata Container at CNCF and the OpenLab project at OpenStack.
Elixir's Phoenix web framework is powerful and complex. Join Jay Hayes to explore a small slice of the Phoenix framework. Jay walks you through building a simple version of the Elixir Phoenix web app framework in about 80 lines of code to illustrate how some key features of Phoenix are implemented. Along the way, you'll also learn more about Elixir and its metaprogramming roots.
Suresh Pandey explores event-driven architecture and explains why modern messaging brokers are game changers for distributed applications. You'll learn what it takes to build a distributed application using eventing (and the benefits of doing so) and dive into offerings from RabbitMQ, Kafka, and Kinesis so you can determine which is suitable for your application.
FFmpeg is a FOSS, cross-platform solution to record, convert, and stream audio and video. Jess Portnoy explains how to use the CLI tools included in this project (ffmpeg and ffprobe) to accomplish everyday video manipulation and streaming tasks.
Join Ram Gopinathan to go from 0 to 60 with cloud-native application development. You'll design and build a cloud-native app from scratch using the Netflix OSS stack and deploy and run it on PCF and container platforms such as DC/OS and Kubernetes.
Tracy Kuhrt offers an introduction to Hyperledger Indy, a distributed ledger built for decentralized identity. It provides tools, libraries, and reusable components for creating and using independent digital identities rooted on blockchains or other distributed ledgers.
In the wake of the financial crisis, Thomson Reuters released a novel text-mining-based credit risk model to assess the default risk of publicly traded companies by quantitatively analyzing text. Six years later, the company is updating it to use deep learning. Ryan Roser discusses the benefits and trade-offs involved in transitioning existing analytics to use deep learning.
Developing deep learning models with TensorFlow is often only half of the story. To be useful to the public, the model needs to be deployed. Hannes Hapke explains how to deploy your TensorFlow model easily with TensorFlow Serving, introduces an emerging project called Kubeflow, and highlights some deployment pitfalls like model versioning and deployment flow.
Are you developing microservices or just considering splitting your monolith? And what is the right way for your services to communicate with each other? Alex Borysov and Mykyta Protsenko compare gRPC, a modern high-performance RPC framework from Google, and REST, an established architectural pattern, so you can determine the right choice for your project. Let's get ready to rumble!
Being a good developer isn’t just about slinging code. We’re part of a community, and interacting with other community members means feelings are involved. John Sawers explains how emotions are affecting you by modeling them as an API and looking at the code.
Distributed systems are becoming more prevalent, since they can provide lower latency and greater reliability than single machines. Laura Hampton discusses the difficulties in replicating data across multiple machines, explains how the Raft algorithm, used in Kubernetes and Docker Swarm, provides reasonable guarantees, and shares proposed solutions to the consensus problem (and why they work).
Caliper is a benchmark framework that allows users to measure the performance of a blockchain system under test. Victor Hu introduces the concept and architecture of the framework, explains how to integrate it with various blockchain systems, and demonstrates how to use Caliper to define and run a test flow.
Joshua Shanks discusses how Indeed increases its delivery velocity by using a service mesh for their communication features. With this approach, Indeed product teams no longer need to worry about service discovery, load balancing, or retries, and they get rate limiting and authentication for free. This has led to faster, happier teams.
While adopting microservices leads to increased agility and developer productivity, it also exposes production environments to new security threats. Samrat Ray, Tao Li, and Mak Ahmad explain how Istio helps protect against these emerging security threats to service-based applications.
BPF technology is bringing Linux kernel capabilities up to speed with modern workload requirements. Cilium helps make BPF consumable for microservices architectures and enables Istio with the most powerful security solution by way of the kernel. Cynthia Thomas and Romain Lenglet explain why you should use Cilium to enforce API-aware policy while coordinating with Istio.
A key requirement for connected Linux devices is the ability to deploy remote software updates to them so that bugs, vulnerabilities, and new features can be addressed. Drew Moseley shares best practices and the current state of software updates for connected devices, drawn from interviews with more than 100 embedded developers undertaken as part of the Mender.io project.
Kenneth Kousen offers an overview of Kotlin, with a focus on using it for Android development. You'll learn about Kotlin's essential syntax, data classes, operator overloading, extension functions using the Anko library, generics, working with collections and functional operations, interacting with the Sqlite database, and more.
It is a truth universally acknowledged that a techie in possession of any production code whatsoever must be in want of a container orchestration platform. What's up for debate, according to noted thought leader Jane Austen, is how many pizzas the team is going to eat. Join Bridget Kromhout to learn how to create and operate a Kubernetes cluster in order to answer this crucial question.
Live coding sounds really scary, but it's a fear worth conquering. To show how fun it can really be, Suz Hinton rolls the dice and live-codes an entertaining hardware solution in front of your eyes.
Flutter is a new, open source, mobile SDK. Matt Sullivan and Emily Fortuna walk you through live-coding a Flutter app from scratch. You'll learn how to design a UI using Flutter's subsecond hot reload, pull in live data over a network, manage that data using streams, and even access some native code for those tricky platform-specific APIs.
Your continuous integration process produces torrents of data. Joseph Gregorio explains how to mine that data to drive improvements in your development process and offers an overview of Skia—an open source 2D graphics library that provides common APIs that work across a variety of hardware and software platforms.
Many companies that provide an API also include SDKs as part of their DX. Elmer Thomas explains how he rebuilt SendGrid’s seven SDKs (Python, PHP, C#, Ruby, Node.js, Java, and Go) to support 233 API endpoints.
Rob Reilly explains how he brought Hedley, his robotic skull, to life. Hedley uses a JeVois smart machine vision sensor and artificial intelligence algorithms (developed by Laurent Itti) to track subjects as they move around in the skull's field of view. Come meet Hedley and learn about the latest developments in open source sensors, AI algorithms, and Linux-based physical computing.
Excited about augmented reality? Waiting to get your hands on that new shiny Magic Leap device? Think ARKit and ARCore are the best things to happen to mobile AR? Rabimba Karanjaiall explores all these examples in detail and explains how you can build your own mixed reality experiences using them together in an open platform—the web—running directly from the browser in your mobile device.
Michael Van Kleeck leads a frank discussion of Mozilla’s multiyear journey to take all of its apps from the data center to the cloud. Join in to hear about the adventure, in which Mozilla vanquishes a multitude of organizational and technical challenges and emerges ready to empower its mission of protecting the open internet.
Docker and rkt have made it easy to package and ship applications, but running them at scale remains a challenge. Anubhav Mishra leads a hands-on dive into Nomad, a single binary cluster scheduler that can be used to build a multiregion, self-healing production environment that runs a diverse set of workloads, including noncontainerized applications.
The 14th Annual O’Reilly Open Source Award winners will be announced.
Rob Reilly demonstrates how to combine Linux, physical computing, and practical application into an attention-grabbing, steampunk-themed, wearable conference badge. Rob walks you through the motivation, idea generation, research, prototyping, build, challenges, and use. And watch for it: he'll wear the badge into the session and then use it to run his tech-talk slide presentation.
Applying open practices increases the reach and impact of projects in the market, and the unique characteristics of working open (e.g., understandable, participatory, and extensible) provide the best platform to solve problems we face today. Abigail Cabunoc Mayes draws on her experience mentoring hundreds of open projects to discuss how and why working open gives you a competitive edge.
Banks are now just starting to embrace open source. Ed Cable and James Dailey share case studies on banks and fintech startups from four different continents that built on top of the Apache Fineract core banking platform, accelerating their innovation, lowering their costs, and transforming them from consumers to contributors of open source.
Tim O'Reilly considers how to extend the values and practices of open source in the age of AI, big data, and cloud computing.
Megan Kostick, Michael Brewer, and Manuel Silveyra explain how they tackle the issue of working across large distributed teams, share solutions to data persistence challenges, and offer an overview of their automated data model for bringing data from multiple teams into a single place in a consistent manner.
Jay Gambetta offers an overview of Qiskit, a comprehensive open source quantum computing framework built for creating quantum experiments, programs, and applications. Written in Python and maintained on GitHub, Qiskit is designed to make quantum computing accessible to everyone.
Alex Mejias and Jim Schreckengast discuss the intricacies of open-sourcing software for enterprise from a program and development perspective.
Using aggregate analysis of O'Reilly Safari usage and search data, Roger Magoulas shares key insights and trends that are impacting the open source tools ecosystem—trends you can use to help make decisions that affect your next project, your organization’s strategic direction, and your own career.
Sandi Metz explains what object-oriented programming wants, using straightforward examples to indoctrinate you into object-oriented thinking. You’ll leave raring to write loosely coupled, message-centric, small-object object-oriented code that isolates conditionals and leans on polymorphism. Once you understand object-oriented programming's natural affordances, everything becomes easy.
If you're doing anything with open source these days, the chances are very high that you're working with Git. Many people know enough of Git's basic operations to get them through but haven't found the time to learn about Git's advanced functionality. Join Brent Laster to take your Git skills to the next level and learn useful techniques for managing your source code more easily than ever before.
Prometheus is an open source monitoring and alerting toolkit, while Grafana is the leading open source software for time series analytics. Jess Portnoy explores the Prometheus architecture and its various tools and walks you through erecting an end-to-end monitoring and alerting infrastructure with the Prometheus stack.
Are you trying to move beyond REST for your internal services? Ryan Michela offers an overview of binary-based protocol gRPC and explains how its built-in features allow you to build reactive services that can support RxJava and handle back pressure natively over the wire.
Camille Eddy walks you through how the services we all use everyday have adapted machine learning to become more inclusive. Camille also explains what we can do to create culturally sensitive computer intelligence and why that is important for the future of AI.
First open source won. Then DevOps won. Now there's talk of DevSecOps, which by its very name suggests DevOps isn’t secure. But security, just like DevOps, isn’t a destination; it’s a journey. Josh Bressers asks, rather than trying for perfect security, what if we think of security as a minimum viable product?
Serverless architectures are the natural evolution of microservices design. While Lambda has become synonymous with serverless in AWS, there are several new patterns that take serverless architectures to the next level. Manish Pandit explains how to identify these patterns and put them to use, using Marqeta's efforts to move its payments infrastructure to the public cloud as an example.
The lines between static and dynamic content are blurred, and it’s more difficult than ever to choose the right technologies for your requirements and budget. John Chapin takes you on a step-by-step journey from hosting static content on AWS S3 to deploying dynamic, complex business logic mere milliseconds away from your users, with AWS CloudFront, Lambda@Edge, and more.
This year TensorFlow 1.4 was released. Rustem Feyzkhanov explains how he ported it to AWS Lambda and built an image recognition tool. The tool is cheaper than almost any alternatives and very scalable (a thousand functions can be run in parallel), and it integrates into cloud infrastructure.
Companies worldwide have started InnerSource programs to increase innovation and quality and cut time to market and costs. But many fail to recognize that above all else, InnerSource is a cultural transformation initiative, and it's difficult to get people to change their behavior. Join in to hear a panel of experts discuss the critical aspects of change management required for true success.
Many utilities are about prettifying text-based code, but what if a program was written "diagram first"? (This isn't a new idea.) Goroutines and channels make sense on a canvas. Josh Deprez leads a live demonstration of Shenzhen Go, a pragmatic blend of visual and textual programming.
Stephen Cleary explains why so many languages are adopting async/await and why that's a good thing.
Catherine Nikolovski, Michael Lange, and Jaron Heard offer an overview of Hack Oregon's CIVIC, a new approach to interactive computing inspired by complex information challenges in the civic space, which packages real-world data into universal standards and provides integration tools and powerful cloud computing to anyone with an internet connection.
Tech can be an isolating industry. Our communities inspire us, support us, bring us together, and help us build better products. It is also our communities that hold us accountable. In this talk, Posey draws on her non-traditional journey into tech to illustrate how honest investments can build a sustainable community that is integral to the advancement of its members.
Drew Moseley explores the malware infecting Linux IoT devices, including Mirai, Hajime, and BrickerBot, and the vulnerabilities they leverage to enslave or brick connected devices. Drew then walks you through specific vectors they used to exploit devices and covers some security hardening basic concepts and practices that would have largely protected against them.
Contributions are an essential part of open source and what sustains us as a community. What is the next wave? How can we all participate, and how can open source projects and mentors prepare well to make the most of the opportunity?
John Dohoney and Kaitlin Carter walk you through deploying the SMACK stack on DC/OS. This architecture enables you to create modern streaming applications that make use of NoSQL databases with Cassandra and message streaming with Apache Kafka using analytics streaming with Apache Spark, all running under Apache Mesos implemented with Akka streaming and asynchronous Java libraries under DC/OS.
Hyperledger was formed with the vision of establishing a community that brings together the smartest minds to solve the challenges of delivering blockchain technology for the enterprise. Christopher Ferris explains how Hyperledger's "greenhouse" is not only incubating new technologies but also entering into the collaboration and consolidation phase.
Cloud Foundry—a multicloud, IaaS-agnostic platform as a service with an active open source community—already has solutions for ingress routing for both HTTP and TCP traffic. Shubha Anjur Tupil and Aaron Hurley share a case study in which their company augmented its routing tier using Istio and Envoy. Join in to hear about the journey and the lessons learned along the way.
Community is an integral part of the success of any open source project. OpenLab is an open source community lab program that gives developers and users access anywhere, at any time. Melvin Hillsman offers an overview of OpenLab, shares how OpenLab is helping to build a vibrant app ecosystem for the cloud, and explains how you can leverage and participate in the program that lets everybody play.
Challenges are what make life interesting. WebOS OSE is what makes development meaningful. Joseph Park, Steve Lemke, and Lokesh Kumar Goel offer an overview of webOS Open Source Edition and explain how to use webOS OSE to create and use apps and services with Enact and Luna. Join in to see how you can get started contributing to the project.
Sentiment analysis can reveal how people are truly responding to a product, service, or social issue. Pierre DeBois demonstrates how to conduct a sentiment analysis in R programming using Twitter.