Baskin Robbins wishes it had as many flavors as there are JS frameworks, build tools, and cool new "low-level" languages. You just want to solve a problem, not have a 500-framework bake-off! And how will you know whether you picked the right one? Don't flip that table, because we'll use the "hype cycle" and the history of Ruby and Rails as a guide to help you understand which front-end and back-end technologies are a fit for your needs now and in the future.
Collaboration and gaming web software using websockets need a way to mitigate impersonation attacks. Using the togetherjs protocol as an example, we will see how a participant can tamper with messages to impersonate other collaborators and how to prevent these attacks.
I was fortunate to spend a year and half working exclusively on open source software. Along the way, I learned that open source development requires a slightly different approach. In this talk, I will share my story along with some of the lessons I learned.
Teaching computers to play games has been a pursuit and passion for many programmers. Game playing has led to many advances in computing over the years, and the best computerized game players have gained a lot of attention from the general public (think Deep Blue and Watson).
Using the Ricochet Robots board game as an example, let's talk about what's involved in teaching a computer to play games. Along the way, we'll touch on graph search techniques, data representation, algorithms, heuristics, pruning, and optimization.
Sometimes we can forget that there's more under the (networking) sun than HTTP. Rapid7's Metasploit team has been working for awhile on a new, pure-Ruby library for Microsoft's SMB protocol. Doing work like this means analyzing wire traffic, working with binary structs, and wrapping everything up into a nice, clean set of abstractions.
We'd like to share the developer workflows and lessons learned. If you've ever wondered how to set about building a library for a binary protocol, how to reverse-engineer the byte-by-byte traffic on a network, or thought it would be cool to understand Ruby's networking capabilities from the ground up, this talk is for you!
Phoenix is an Elixir web framework for building productive, reliable applications with the performance to take on the modern computing world. Together, we’ll review what makes Phoenix great and how it uses Elixir to optimize code for performance – without sacrificing programmer productivity. Along the way, we’ll see neat features like live-reload and generators and how Phoenix’s realtime layer takes on the modern web.
A juicy, melt in your mouth brisket. A beautifully orchestrated application. These don't just happen. They take experience, which is evolutionary. I have a technique for smoking a brisket, born out of iteration and experimentation, that makes a pretty good brisket. Software development and cooking have a lot in common. I'll tell you about my brisket, but really I'll talk about learning to process information quicker and more efficiently. This not only gives answers a place to land, but tastes good too.
Software connects people and ideas, but what if your ideas are flawed? Cognitive biases derail software development efforts. This talk can help you recognize and overcome them. Gain the benefits of patterns and examples through thoughtful mastery, without being bound by them.
Software engineering pushes us to our limits, not only of cognition, but, perhaps surprisingly, of character. Using the cardinal virtues as a framework, we can see that developers need courage to continue learning, temperance to prioritize goals, a sense of justice by which to discern obligations, and wisdom to optimize our path. By being honest about where we lack virtue, and implementing steps to develop character, we can perform test-driven development, or TDD, on ourselves. This process can help us grow not only as engineers, but as human beings.