Sessions – DevFestDC 2016

Sessions

Sessions

DevFestDC – 2016 – Friday Sep 23 & Sat Sep 24 @ 1680 Capital One Dr, McLean, VA

We’re constantly impressed with the advances in technology that we see all around us, from virtual reality handsets to self-driving cars. Yet, another area in our industry often goes unnoticed, and that’s how far we’ve advanced culturally. No longer are we all colocated in the same office. We’ve expanded to embrace more innovative ways of collaborating globally. In this talk, we’ll take a look back at how far we’ve come as an industry and what lies ahead for each of us as we take advantage of the current climate!

2 hours TensorFlow and Machine Learning APIs Codelabs.
This workshop will take you through the Exponential Sprint and give you a first-hand experience on what’s like being a part of a high-impact team. The specially formulated design sprint will get you ideating and prototyping 10x solutions to some of the most difficult challenges facing humanity.
Today’s technology is moving fast towards using containers and managing a fleet of containers. This session will give hands-on experience with creating containers using Docker and deploy a fleet of containerized Java microservices into Kuberenetes. You’ll get to:
 – Build a Java microservice
 – Build Docker container
 – Deploy the container into a private container registry
 – Deploy a fleet of containerized microservices
 – Learn service discovery
 – Perform rolling update, canary, and roll backs
In addition, we will also explore advanced features such as:
 – Secret – securely give your application the credentials and configurations
 – Daemon set – run the same workload across all of the cluster nodes
 – PetSet – running stateful applications such as Cassandra or Zookeeper
 – Persistent volume / claims – store persistent data using volume mounts in the pods
 – Health checks – check to see if your application is alive and ready to serve traffic
 – Autoscaling – automatic horizontal pod scaling using CPU utilization metric
The lab can be self-paced – pick your own adventure depending on how familiar you are w/ Kubernetes.
Monet or Picasso? In this talk, you’ll learn how to use TensorFlow to build an image classifier that runs on your phone, using your own data. No prior machine learning experience necessary
Firebase helps mobile and web developers create extraordinary apps. It abstracts complex infrastructure and simplifies the development process. By using Firebase, developers can build the best user experience in the shortest amount of time, all without having to spin up servers or manage infrastructure. We explore how Firebase authenticates users and synchronizes data by creating an app on stage. You’ll experience first hand how easy it is to build with Firebase!
The Firebase Database lets you synchronize data between clients in real time, which is perfect for building multi-player games. In this talk I will describe a collaborative web-based sci-fi game I built using Firebase, what I learned along the way and how it made me a better dad.
Traditional mobile and web applications focused on performance, scalability and responsive design, making those the norm for a new generation of mobile web apps. However, the modern user increasingly expects real-time, reactive and offline experiences to be supported by default. In this talk, we will explore what this means in terms of requirements and implementation. In particular, we will look at two potential platforms that can support rapid prototyping, design and deployment of such applications by even novice programmers. Technologies that the talk will cover include: Meteor, React, Firebase and Material Design
The entranceways to the dorms at Hogwarts were guarded by paintings that talked and asked for passwords. What if that were real? In this talk, we will look at a Harry Potter style ‘security’ system that can hear spoken passwords and see the people and objects that wish to gain entrance. Learn about how machine learning APIs will enable the next generation of smart devices.
Want to take advantage of machine learning without building and training your own models? We’ll take a look at some of the machine learning functionality behind Google Photos, Google Images, and the speech recognition in “Ok, Google.” We’ll then discuss how the Google Cloud Vision and Speech APIs expose this machine learning functionality so developers can build these features into their apps with a simple REST API call. We’ll provide an overview of these APIs, dive into code, and risk it all with a live demo.
Dave Erickson will walk through visualizing large data sets three ways in the popular open source BigData Search and Analytics tools Elasticsearch and Kibana. Dave will talk through spinning up cloud hosted resources to do large scale data visualization with three distinct techniques as well as talking through more advanced topics like cloud deployment options, securing data in Elasticsearch and configuring for high availability and resiliency.
Mobile devices are becoming more and more powerful. They come with all sorts of wonderful hardware like cpu/gpus, tons of ram and blazing fast download times. Smart phones have become commoditized in a sense. What’s the next evolution of mobile? Now these devices are coming with a really solid set of sensors and apis that allow developers to determine a user’s context. How does that work? Developers fuse the sensor output to infer context and infer events from the data. This talk will discuss ways to do it, challenges and drawbacks.
gRPC is a high performance, open source, general RPC framework that puts mobile and HTTP/2 first. gRPC is based on many years of Google’s experience in building distributed systems – it is designed to be low latency, bandwidth and CPU efficient, to create massively distributed systems that span data centers, as well as power mobile apps, real-time communications, IoT devices and APIs. It’s also interoperable between multiple languages.
But beyond that fact that it’s more efficient than REST, we’ll look into how to use gRPC’s streaming API, where you can establish server-side streaming, client-side streaming, and bidirectional streaming! This allows developers to build sophisticated real-time applications with ease.
In addition to learning about gRPC and HTTP/2 concepts with code and demonstrations, we’ll also deep dive into integration with existing build systems and:.
 – Configuring projects to generate gRPC stub code
 – Using Protobuf3 to define services
 – Creating synchronous and asynchronous services, with streaming.
 – Load balancing
 – Live coding a real-time chat application

This talk will examine the common options for doing periodic work in an Android app, such as AlarmManager and JobScheduler. We will see the pros and cons of these techniques, particularly in light of Android 7.0’s “Doze mode” and “app standby” features — along with earlier similar capabilities from device manufacturers — to see how best to implement periodic work in your app.

Developers talk a lot about new technologies, cool frameworks, hot languages, and the latest tech to be ‘over’.  Ever feel like you can’t keep up, or don’t belong? It could be your impostor syndrome trying to hold you down!  As we work towards more diversity in tech, and with that, an inclusive environment for all our developers, how do we combat impostor syndrome and the feeling of not belonging in your team?  This talk is aimed at those looking to mentor new hires, tech leaders working on diversifying their teams, new techies navigating the workplace, and more senior dev’s keeping up with the pace of the field. Jessica Bell from Deloitte Digital, Mark Brown II from the Department of Commerce, and Lougenia Bailey from Excella Consulting talk about these issues in a town hall-esque panel take your questions and share experiences. Come join the conversation!

Do your product owners, designers and the people that pay you understand what in the world your Espresso tests are doing and why they are valuable? You’ve spent so much time and effort writing these tests and your whole team deserves to get the most benefit out of them. In this talk you’ll learn how to setup your Espresso tests to take programmatic screenshots, and leverage the Robot pattern of testing for clean, readable, and maintainable tests.

Pitch
Heard of MongoDB? Want to get a quick introduction so you can begin introducing a new way to build something GIANT? This talk gets you introduced to MongoDB and how to get started with it quickly.
Learn about the basics behind MongoDB's structure, replication and tools to scale for your application. Get the information required to make a decision if you need to do all of the work, some of the work or none of the work to run MongoDB.
Outline
1. Introduction to myself and goals of talk.
2. Discuss “BuzzFeed” The Dress" and how MongoDB was part of the story.
3. Explain how MongoDB fits in current ecosphere of databases and development.
4. Discuss internals of MongoDB (DBs, Replication, Sharding)
5. Introduce DBA tasks
6. Introduce management tools for MongoDB automation, backups, deployment and
monitoring.
7. Discuss Cloud Providers
8. Summarize
9. Q/A
 OutcomesAudience of the talk will walk away having a working knowledge of how begin working with MongoDB. They will have a better understanding how and why organizations have chosen to store their data in MongoDB. They will also get a look at how MongoDB strives to end the single point of failure data source.
Intended Audience
Anybody who wants to understand what MongoDB is and how they can begin using immediately.
Sometimes the Android platform layouts and widgets are all you need. Sometimes you may want more control over the rendering and behavior of a view. Sometimes you may want to break up your UI into reusable components. Sometimes you may need performance help. Custom Views and ViewGroups are powerful tools, but with great power comes great complexity. In this session we will discuss why and when you would want to build a custom View, go through an example of a simple custom View and a custom ViewGroup, and talk good practices.

Have you ever hit a wall with REST? Does modeling your problem domain into CRUD-able entities feel like fitting a square peg into a round hole? Perhaps instead of modeling our services like little databases, we should instead model them like reactors to event streams. REST APIs are great, but their typical implementation tightly couples various concerns that would be better separated: * Reads (perception) from writes (action) * Current state from historical narrative * Business logic from HTTP design from operational concerns like metrics and monitoring Commander is a pattern for writing REST APIs that de-couples these concerns, thereby alleviating common frustrations with CRUD-flavored REST. This pattern imposes a clear separation of action from perception, and uses immutable values conveyed by Kafka and the Kafka Streams library to separate business logic from HTTP concerns, all while preserving the historical narrative of the entire event stream. In this talk, I’ll discuss the benefits and tradeoffs of this approach, and demonstrate my implementation using Clojure in the HTTP layer, and using Java with the new Kafka Streams library in the event stream processing layer.

What’s the deal with Kotlin? Why would you want to learn a new programming language to write Android apps – isn’t Java good enough? This talk is for those unacquainted with Kotlin, and might teach those who are familiar some new tricks. This talk will cover:
-Why Kotlin is a good choice for Android Developers
– How to solve problems in more expressive ways with Kotlin’s language features
– Some interesting Kotlin libraries and tools
The most suffering part of mobile online apps use is going offline. You’re entering the metro, and there is no way to do anything. But wait! There are lot of offline possibilities, and lot of methods to transition between offline and online modes. Caching, prefetching, local and remote execution, etc. I’ll show an example of Android app that works seamlessly even when connection is not ideal.
In-app navigation is an increasingly important feature for the global app market. Whether you’re building a ride-sharing app or a food delivery service, a smooth user experience is key to customer satisfaction. Fast, performant mapping — even in areas with slow connections — is vital. Since Android serves 85% of the market worldwide, creating a good offline mapping experience is a critical piece of incorporating navigation inside your application. In this talk, we’ll focus on creating maps that maintain your app’s branding, smoothly guide users to their destination, and cache map for offline use.
This talk explores best practices for running an inclusive open source software team, especially within a larger company such as Google. We’ll briefly cover the basics (the range of open source code of conduct documents available to project leads) before diving into advanced topics. In-depth topics include: 1. Effective techniques for recruiting women and people of color to contribute code 2. Managing common issues when incorporating contributors commits 3. Maintaining inclusivity when managing volunteers.
In this presentation cum code lab, the presenter, a google cloud platform authorised instructor, will be delivering selected modules and labs from a new course being developed by Google Cloud Platform team called CPB201 – Cloud Bigtable and Cloud Dataproc.
 
Cloud Dataproc is a managed Spark and Hadoop service that lets you take advantage of open source data tools (Spark, Pig, Hive and Hadoop) for batch processing, querying, streaming, and machine learning. Cloud Bigtable is Google’s NoSQL Big Data database service designed to power massive workloads that requires consistent low latency and high throughout. As such Big Table is powers core Google’s products such as Gmail, Search.
The agenda for this code lab looks as follows
1. Introduction to Google Cloud Dataproc (25 min)
2. Dataproc Lab 1, Part 1 (15 min)
3. Dataproc Lab 1, Part 2 (35 min)
4. Introduction to Cloud Bigtable  (20 min)
5. Bigtable Lab 1 (35 min)
On a platform that reaches both business owners and consumers, develop an experience that makes everyone’s life a lot easier. In this session you will learn about a new platform to develop your Android apps for. It will cover a brief introduction to the platform and also show how to integrate with other API’s to make a custom experience.
The Android community is growing by leaps and bounds these days, connecting thousands of developers with values like openness, respect, and diversity. But what can we do to make sure these values are maintained? How can we contribute to building a strong culture?
2 hours of AngularJS Hands-On Code Lab
In this session Liz will cover the basics of creating 3 types of glance-able display. The session will also review research Liz did as part of a team at Stanford University that used the Nexus 1 to get people to sit less and move more with widgets and wallpapers. Slides
With only a minimum of coding, Firebase provides your Android app with simple push notifications and collects analytics to measure user engagement. However, if you need to customize the notifications or their behavior, you need to implement everything yourself. For a recent Android news app I developed, I wanted to use push messaging to inform users when new articles were published. This talk will describe how I used three Firebase tools (Notifications, Cloud Messaging, and Analytics) to implement custom notifications and analytics to track their performance.
Kubernetes 1.3’s new role based access control feature is in alpha, but offers many advanced capabilities. I’ll talk about the RBAC model, how it could be used in a multi-tenant deployment and demo its use with OpenUnison. Slides
We live in a world of data. When it comes to developing with that data, we need to do more than show numbers to our users. With the combination of D3 and AngularJS, we can take that data and create versatile and interactive visualizations that respond to dynamic data. In this talk, we’ll look at how to create visualizations of data with D3 combined with Angular 1.5 directives and Angular 2 Components.

With the evolution of Google’s Tag Manager, there are new ways to customize and control existing web applications without a full deployment. By adding GTM to your site, as well as creating the appropriate tags, many aspects of your experience can be controlled. GTM can create custom audience segments, changes to business logic, customized UI enhancements, complex “what-if” tests, click-tracking, and other user interface instrumentation, as well as all sorts of custom metrics and reporting. GTM can be used to control tests, and experiments, prototype alternative implementations, vary ad network behavior, and all sorts of other things. GTM allows centralized management via an online portal, and allows a team to manage tests, updates, rollbacks, and other aspects from a central location.

In this presentation, we’ll look at the fundamentals of GTM, and some examples of using it to instrument, and control aspects of your web applications, and sites.

This session is based on usage of Amazon services to process, store and query data cost effectively and securely at AOL. We will discuss the benefits of decoupling compute and storage, how to process data taking advantage of cloud parallelism using transient Spot EMR Architecture.We will talk about how to horizontally scale your cluster up or down dynamically and introduce you to keep your Amazon EMR cluster cost-efficient. How Lambda can be used to create process pipeline to ensure dependencies evaluation,trigger EMR’s and validate data along with DynamoDB. Overview of Presto as our DB solution on cloud using Scalable persistent EMR cluster backed by S3 as Data Warehouse and MySQL RDS as Hive metastore.
There are no chicken and egg causality dilemmas with your startup idea when you take the time to understand your user. Slides

Progressive Web Apps are generating a lot of buzz and for a good reason.  Service Workers enable PWAs to take mobile-first web development down to the network level.  Through a discussion of the Service Worker API and available tools, we’ll explore different ways that you can build a Progressive Web App and engage users even when they’re offline. Slides

JHipster is a free and open-source application generator used to quickly develop a modern web application using AngularJS and Java Spring. JHipster uses tools and APIs popular in the Java community and constantly evolves as the tools and technology changes. JHipster also includes sub-generators that can create entities or handle deployments. The latest sub-generator supports deployments to Kubernetes. This presentation shows how easy it is to create a new web application using JHipster and then deploy that to Kubernetes.

Go was invented by Google to help it rapidly build large-scale services. One of the features of Go that makes it well suited for modern cloud computing is its concurrency support. Unlike most other programming languages, concurrency is a core part of Go. This talk introduces Go’s concurrency features, shows how they work together, and outlines some tips, traps, and tricks for using concurrency effectively.

The easy button for application development: automate your build and deployment to the cloud with Red Hat’s Openshift Container Platform, the leading open source Platform-as-a-Service. With DevOps-oriented features based on Kubernetes and Docker containers, you’ll discover during our discussion and live demo how to exploit these paradigm changing technologies to get to production faster with the technologies of your choice, while securely using and scaling your infrastructure more efficiently.

Every day people watch hundreds of millions of hours of video on YouTube and that number is steadily increasing. So how can you take advantage of video to help promote your personal brand and/or share your expertise? In this talk, I’ll walk you through the steps I took to develop my first video course, from outlining the initial structure down to actual video creation. Walk away with the tools you need in order to create short, informative video content for the web!

First part will be on Material Design in Android

The second part will be:

Notification enhancements and multi window support in Android 7.0 Nougat.

Requirements:
Experience working with Android Platform
Android Studio 2.2 installed
Android SDK installed with v4 and v7 support libraries
Test Android device with cable or Emulator installed and setup. (Android 4.4 and above preferred)
For the notifications part please follow  requirements as well
v7 appcompat library 23.4.0 or above (com.android.support:appcompat-v7:23.4.0)
Android N device or emulator (API 24)