(Re)Writing Rails in Go

I spent 12 years writing Ruby on Rails applications. I wrote a lot of them. I was great at it. I could knock an application out in a weekend.

A few years back I found Go. I feel in love. I won't bore you with the details of why, they're un-important. What is important is I wanted to build web apps in Go, but I couldn't. It was painful. I struggled. I tried every "framework", every 3rd party package I could find, but none of them brought me the developer speed I had with Rails. I cried. I drank. I cried and drank.

Finally, I thought, why not take all of the experience I've had with Rails and all the of the experience I've had with all the Go frameworks and packages I've played with and try to smoosh it all together and see what happens. Enter Buffalo.

This talk isn't about trying to convert anyone to using Buffalo over Rails, or Go over Ruby. Instead it's a look at the challenges, the ups and downs, the high and lows, of trying to re-build a framework that is known for it's harrowing use of dynamic meta-programming in a language that knows not of those things.

I'll discuss rebuilding Rake as Grift. Look at the challenges of trying to build an ActiveRecord like system (including migrations) with Pop, and much more.

This talk will hopefully provide light on why you should never want to build your own web framework, and why you should shower those who do with lots of pretty, shiny trinkets.

Speaker
Mark Bates
Room
TBD
Time
TBD

Mentoring Junior Developers through Pair Programming

Pair programming is being taken on as a standard practice in many large corporations all over the globe. The sharing of knowledge between senior engineers and junior engineers minimizes the siloing of skills by increasing the abilities of junior developers, making them productive much sooner.

Pair programming can be an emotional experience, for both for the mentor and the mentee. As seasoned software developers and engineers, mentoring takes a lot of time and patience. It can also be challenging for the mentee to work with someone peering over their shoulder, seeing their every mistake.

This session will go over some of the things that happen unintentionally while mentoring through pair programming and how they can negatively affect the learner, the learning process, and the relationship itself. More importantly, it’ll talk about what a mentor can do to improve the success of the learner by making adjustments to how they teach.

I have been a software engineer for a year and a half and have been pair programming as the mentee with over 15 different software engineers of varying levels. I’ve also had the opportunity to be a mentor to others both inside and outside of the software community with people of many different backgrounds.

Speaker
Jess Stodola
Room
TBD
Time
TBD

Building Our Own Language

Like your Arrays one-indexed, but not a fan of Lua? Want to write PHP with significant whitespace? Feel like adding a GOTO to Scala?

We won’t comment on those particular choices. This talk is all about creating our own language from start to finish, with all the syntax quirks we could ever want! Consider this a primer to start exploring on your own - while we’ll build our tool in Ruby, each step of the process will be generalizable to your compiler language of choice. So what are you waiting for? Let’s build something weird!

Speaker
Kevin Gisi
Room
TBD
Time
TBD

Create Development and Production Environments with Vagrant

Need a Linux box to test a Wordpress site or a Windows VM to test a web site on IE 10? Creating a virtual machine to test or deploy your software doesn’t have to be a manual process. Bring one up in seconds with Vagrant, software for creating and managing virtual machines. With Vagrant, you can bring up a new virtual machine with the software you need, share directories, copy files, and configure networking using a friendly DSL. You can even use shell scripts or more powerful provisioning tools to set up your software and install your apps. Whether you need a Windows machine for testing an app, or a full-blown production environment for your apps, Vagrant has you covered.

In this talk you’ll learn to script the creation of multiple local virtual machines. Then you’ll use the same strategy to provision production servers in the cloud.

I work with Vagrant, Terraform, Docker, and other provisioning systems daily and am excited to show others how to bring this into their own workflows.

Speaker
Brian Hogan
Room
TBD
Time
TBD

Five Things All Developers Should Know About Databases

Throughout my career I have encountered many developers that don’t understand data storage and manipulation. This often leads to designs that create significant technical debt. This talk explores way to avoid these problems.

Every project handles some type of data and there have never been more ways to store that data than there are now. When is a relational database the best choice? How do you take advantage of the power inside your relational database engine? How do you design your data to let your app grow over time? We will explore these topics and more so that you can take your development skills to the next level by learning to love data.

Speaker
Derek Binkley
Room
TBD
Time
TBD

Hardware Education Through Game Boy Emulation

You can write code but do you understand how the processor actually executes it? Let’s learn about hardware by taking a look at the Nintendo Game Boy. This talk will follow me on my journey to write a Game Boy emulator. We will learn how the system works and techniques for writing low-level code.

I wrote a Game Boy emulator in an effort to learn a new language (Rust) and to learn systems level programming. The process was enjoyable and I learned a variety of things I would like to share with the developer community. Many developers do not know how the hardware that runs their code actually works. This talk combines low-level programming topics with an interesting subject matter (video games). The Game Boy happens to be great machine to study since it is so simple compared to the computers of today.

Some topics I will touch on:

  • CPU registers
  • Instructions and opcodes
  • Memory mapped I/O
  • Rendering graphics
Speaker
Nick Wessing
Room
TBD
Time
TBD

WebVR: Make Virtual Reality in your Browser

My wife laughed. “Sure, you can build that!” She wanted a $2500 pre-made ‘real’ shed, but I had power tools. And a design. With Blender3D, Three.js and Cardboard Goggles, I put that design to life. When my wife walked inside our virtual shed, she was sold. So what is WebVR? How can it work for us?

Create your own virtual reality experience using your cell phone, open-source software and an inexpensive VR viewer. We will explore basic 3D modelling and the easy to learn A-Frame WebVR framework. In less than an hour, we will create a simple VR house. The discussion is aimed at hobbyists, coders and graphic designers.

Participants are encouraged to bring a laptop, a smartphone and a pair of VR goggles (I’ll bring a few to share). The technology used is HTML/CSS/JavaScript with the Three.js library. I’ll touch on Blender3D, but will have a .DAE house model available for download. Any text editor works. I’ll be demoing in Notepad++.

Speaker
Nate Otto
Room
TBD
Time
TBD

Being an Open Source Developer

More information coming soon...

Speaker
Cory LaNou
Room
TBD
Time
TBD

Internal Positioning System using WiFi Signal Strength

Ever wonder how malls track your movements to push notifications to your phone when you get near a store? In this sessions we will discuss using WiFi strength and built-in function of networks that will determine where you are in a network.

Tracking people’s movements is helpful in many ways. The most popular use is in malls to push notifications on up coming events or store promotions when you are nearing their locations. Another use for IPS is to help visitors to a company navigate the buildings. In this session I will be talking about using one of the most popular network companies, Cisco, technology to help with the process. I will also be discussing how to accomplish this with out the help of the network and work just based off of WiFi strength. The examples will be in VB.NET but you can use the same techniques in other languages as well.

I will mainly be talking about the theory of how to create an IPS. In order to show the IPS working I would need either a map of the conference area and access points or a already set up network controller that supports user tracking. I believe the talk will beneficial even without the proof of it working. I have been working as an internal programmer for close to 5 years. The reason I am qualified to speak on this subject is I had to research how to accomplish this for work and implement a solution.

Speaker
Wesley Larrabee
Room
TBD
Time
TBD

I <3 IoT - We need to do better

Over the years, I have built and worked on many software systems ranging from automating business processes to medical imaging solutions. Most recently, I am working in the field of connected product. The Internet of Things (IoT) has fascinated me. More and more products are connected to the Internet using Web technologies, often insecurely. A recent survey by IBM shows that only 20% of companies producing IoT products are regularly testing for security vulnerabilities. These products include medical, personal security, and home automation devices. Having worked to both build and secure an IoT product, there are many challenges and constraints that exist when making these products secure. I would like to explore this topic in-depth and offer guidance to software and hardware teams building IoT devices to make them more secure.

Speaker
Dan Zajork
Room
TBD
Time
TBD