Talks

Lightning Talks - Day 1

Lightning Talks - Day 1

by Janek Grodowski and Michał Zając

The video titled 'Lightning Talks - Day 1', presented by Janek Grodowski and Michał Zając at the wroc_love.rb 2016 event, showcases a series of short discussions primarily focused on technology and programming, particularly centered around Docker and Ruby. The presenters share insights from their project at Codebeat, emphasizing the versatility of Docker for deploying complex applications that require multiple languages and dependencies.

Key Points Discussed:
- Introduction to Docker: One of the main topics is Docker Cloud, which offers an intuitive web interface for managing and orchestrating containers. The presenters highlight its effectiveness in handling CPU-intensive tasks and scaling applications automatically.
- Deployment Experience: Grodowski speaks about the journey of deploying applications similar to Heroku, facing various constraints as a small team. He illustrates how Docker greatly alleviated their deployment challenges through its customizable images and straightforward management interface.
- Encouragement to Use Docker: The importance of using Docker is strongly recommended for other developers looking to expand their programming capabilities across different languages.
- Comparison of Social Media Platforms: The talk shifts gears with an engaging comparison between Facebook and Snapchat. The presenter argues that Snapchat provides a more authentic view of life compared to the curated content of Facebook, and encourages attendees to download the app to explore this more genuine mode of sharing.
- Ruby Concepts Introduction: Additionally, Grodowski introduces high-level concepts in Ruby, such as the safe navigation operator from Ruby 2.3 and the 'dry-monads' gem, which facilitates writing idiomatic Ruby code and managing nil cases gracefully. He elaborates on function composition and how certain monads can enhance code readability and flexibility.

Conclusions/Takes Away:
- Adopting Docker and Docker Cloud can significantly improve the deployment process of applications by simplifying management and scaling.
- Engaging with new media like Snapchat can help individuals showcase their true self rather than a curated online persona.
- Exploring advanced Ruby concepts such as monads can lead to more effective coding practices.

The session wraps up with an invitation for the audience to ask questions, reinforcing the community's collaborative spirit at the event.

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.