Talks

Lightning Talks - Day 1

wroc_love.rb 2016

00:00:12.260 Alright, hello everyone. My name is Yannick, and I would like to tell you a very short story about Docker Cloud at Codebeat, which is a project I am currently working on. We perform static analysis for Swift, Ruby, Go, and Python. At the moment, we plan to expand to more languages later. In the past months, we have experienced a journey of discovering how to deploy complex applications like Heroku, but with multiple constraints. Our project runs CPU-intensive tasks, which require various dependencies, including Ruby, Go, Java, Python, and Protocol Buffers. We basically mix and match those technologies together, and we are a team of two, so the constraints can be quite heavy. Still, when it comes to deployment of our applications, we would like to achieve what we are used to in Ruby: CI/CD, automatic scaling, and high performance. So, how can we do this? I won't tell you everything about how we got there, but I definitely recommend Docker and Docker Cloud.
00:01:06.830 How many of you have tried Docker? Oh, quite a few! Great! Today, I'd like to show you Docker Cloud, which is a platform for orchestrating containers and managing them using a simple web interface. This platform has solved all our problems. We can manage any number of containers, and as you can see here, this is our infrastructure. Our services can be scaled using a single slider, and all of these are Docker containers that allow any customization we want, thanks to the wonderful feature set of available Docker images from Docker Hub and our custom images.
00:01:56.030 So, Docker and Docker Cloud have helped us a lot. I would like to thank the Docker Cloud team, formerly known as Tomb. These are three wonderful guys from Spain who created this platform. I believe this tool can really help us expand to new languages, as Andrew mentioned in his talk about leaving Ruby and exploring new options. When it comes to deploying your apps, Docker Cloud is a great place to start. If you’d like to ask us how we undertook this journey, feel free to chat with us afterward and ask us questions. Thank you very much! I don't know how much time is left, but thanks!
00:02:43.690 I don't have any slides or an agenda here, but it worked well last year, so I am going to try it again. So, let me start with a question: How many of you are on Facebook? Please raise your hand. Great! And how many of you use Snapchat? Not that many, much less. Let me tell you, those of you who are only on Facebook are living in the Matrix—you don't know the real stuff! Let me explain the difference between Snapchat and Facebook. On Facebook, you see all those pretty things, pretty faces, and photos from vacations. There are Instagram photos with filters applied to make us look cute, along with YouTube videos that took hours to prepare. We also share links to blog posts created by others. Facebook creates an image of us as polished professionals, showing how awesome we are because we know potential employers will check our profiles, so we need to look cool.
00:05:09.480 In contrast, Snapchat offers a different experience. When you add something to your story, it is visible for 24 hours, and you can't just share someone else's content. There’s no viral way to make things pretty, as you can on Facebook. On Snapchat, you see things as they truly are, without filters or attempts to present a better version of oneself. If you're following someone on Snapchat, you have a more intimate relationship. You can see what their real life is like because they don’t care about the content appearing in their stories—they disappear after 24 hours.
00:08:05.090 Here's my task for you today: install Snapchat! It will be useful for you, I promise tomorrow! But today, just try to install Snapchat. Get lost in its navigation because it's complicated, and you won't know how to use it right away. It will take you at least a day to figure it out, but I know ten-year-olds can navigate it, so you can too! I've heard of people using Snapchat to communicate with their children, so if they can do it, so can you. Make sure to install it today! Remember, there are three screens: photos, chats, and stories, and it’s not the easiest. I promise you, it’s pretty hard to figure it all out.
00:10:00.000 So tomorrow, you will be posting Snapchat stories, sharing the real you, not the edited version you showcase on Facebook. That's my message for you today. Thank you! Hello! This is my first lightning talk, so please bear with me. First, I’d like to ask, are there any house colors in the room? Please bear with me, as I am still getting accustomed to this. I'd like to introduce you to some high-level concepts in Ruby. First, I’d like to tell you about the new safe navigation operator introduced in Ruby 2.3. Instead of writing traditional nil checks, you can now use this operator to simplify your code. However, what if you are using older Ruby versions? Well, there’s a gem called 'dry-monads' that can come to the rescue.
00:12:40.000 This gem provides an implementation of simple monads that offer idiomatic ways of expressing common programming scenarios. With this approach, you can write more idiomatic Ruby code while utilizing the benefits of monads. Let’s dive into function composition, which is a way of composing functions together seamlessly. This allows for cleaner code and greater flexibility.
00:12:57.000 Additionally, we can use 'Maybe' and 'Either' monads to handle cases where operations may result in nil without throwing errors or exceptions. This means that we can better manage the flow of our applications without running into nil cases that cause errors. Monads like 'Maybe' help us to write cleaner code, especially when dealing with APIs or unreliable data.
00:13:30.000 In closing, I encourage you to experiment with these concepts and tools in your Ruby applications. They may seem confusing at first, but they can help you write more flexible and readable code. That’s it for my lightning talk. Thank you for your patience! If you have any questions, feel free to catch me later.