Lucas Reisig

Lightning Talks

wroc_love.rb 2013

00:00:18.560 Hello everyone! I would like to give you an overview of Chef. Chef is particularly useful when you encounter problems while building a server, which involves compiling and downloading various components. You likely want to maintain the same infrastructure across your live systems, whether running on EC2, cloud, or anywhere else. Chef helps to make your infrastructure programmable, ensuring that your servers are repeatable. The key to this capability lies in the abstractions Chef provides. It reminds me a bit of the MVC pattern where you have attributes for the server, controllers that handle the processing, and templates that organize your configuration files. You can practice server building with Vagrant, which serves as a sort of laboratory. You often run 'vagrant provision' to set up your servers. There are many tools available that integrate with Chef, and one of my favorites is Berkshelf, which functions similarly to Bundler. You simply specify the libraries you want to use, like RIT or Postgres, and it automatically downloads the necessary cookbooks for you. Then you can build your server using those cookbooks. I wanted to share an example of a complete web application stack, perhaps with Ruby 2.0. You would typically look at the application cookbook, but you can also manage that on your own. You download the necessary cookbooks with 'b install' and prepare your virtual machine using a Vagrant file. This includes loading configurations from your JSON file, which acts as a wrapper for your virtual machine setup. After running your initial commands, you may need to run the process a few times due to dependencies that might arise. If everything works correctly, you'll end up running Ruby 2.0, which is quite exciting!
00:03:14.519 Now, onto the topic of modern shells. So, I'm frustrated with the slowness of the Bash shell. It annoys me that it's so hacky. Have you ever looked at the completions file and understood even a single line? It's brutally inconsistent. The technology it relies on feels like something from the 1970s. But enough bashing; let's discuss solutions. This morning, I decided enough was enough, and I searched for a modern shell. I discovered Fish shell and I want to tell you why it stands out. Fish is incredibly fast. It uses threads to handle multiple operations simultaneously, which contrasts with Bash's blocking behavior when accessing system commands and file paths. This speeds everything up significantly, particularly on SSDs, as it anticipates what you're about to type. Fish has modern implementations, with very vibrant color support and is well configurable. All suggestions in Fish are drawn from your command history, rather than an auto-completion file. It pulls help directly from manual pages for commands and flags, making assistance readily available when you need it. For those who want to test it, you can easily install Fish using Homebrew and set it as your default shell. I encourage you to modernize the tools you use daily. Don't waste time waiting for responses from a slow shell. Find alternatives that enhance your workflow!
00:08:28.240 At Base, we have regular hackathons, which are a fantastic way for all of us to get together, enjoy some drinks, and code. The last hackathon was particularly memorable—we created 16 vintage games in just five hours! The experience was so enjoyable that we’re planning to collaborate with the HRO team to organize another hackathon in Wrocław. Although we don't have an exact date yet, we expect it to be on a Saturday in the next few weeks. Everyone is welcome, and there will be food, drinks, and prizes! If you're interested in participating and want free tickets, come find me or visit the provided link to sign up. We hope to see you there!
00:12:57.959 Hello, everyone! I'm Tim from Base, and today I want to discuss the most valuable resource in the world: developers. With the increasing demand for skilled professionals, job searches can often feel cumbersome. This leads me to propose an alternative solution known as reverse job searching. Instead of job seekers pursuing opportunities, let's turn the tables. Ideal candidates can create profiles outlining their dream jobs and let employers approach them. I built a simple website to facilitate this idea, which currently contains just one profile—mine! By the end of this weekend, I hope that number will grow significantly. If you have any questions or suggestions, please feel free to reach out.
00:18:51.880 Next, I want to talk about a specific number—12. In the context of scaling distributed systems, it turns out that 12 is a particularly effective number for distribution. You can divide it by multiple smaller numbers (2, 3, 4, 6, etc.), making it useful for various aspects of system design. For example, if you're managing queues or nodes in a distributed system like Cassandra, choosing a multiple of 12 can greatly optimize performance. Beyond that, you can also look at how the concept of the number 12 ties into measurements. For instance, there are 60 seconds in a minute and 360 degrees in a full circle, which can all be traced back to the base-12 system of counting. This understanding of numbers extends into computational areas as well, enabling efficient coding practices and resource management when developing applications.
00:24:56.320 Hi, I’m Bryan Helmkamp, and I work with Code Climate. I want to share with you how our tool analyzes Ruby applications by connecting to git repositories for static analysis. For those unfamiliar, Code Climate provides insights on a project's health through an activity feed and grading system for each class within an application. Recently, we introduced a new feature called Security Monitor, which enhances our capability by detecting potential security vulnerabilities within codebases. Using technologies like Brakeman, we run through your code to identify areas that may need attention. When vulnerabilities are detected, we provide a confidence level for each one, ensuring that your development team can address these issues proactively. Since vulnerabilities often arise due to the complex interplay of unique code behaviors and components, providing targeted alerts before code goes to production is essential. This way, teams can ensure the continued security of their applications amid rapid deployment cycles.
00:31:34.200 In closing, I would like to emphasize the importance of variable naming conventions in software engineering. While it's a highly debated topic, I believe that short variable names (around three or four letters) are easier for programmers to read. Many languages, such as C, use concise variable names effectively. For example, during programming, you don’t read the words in their entirety; you process recognizable structures quickly. This might be a reason our brains can handle short variable names more efficiently, thus aiding our productivity. If we are able to minimize the cognitive overhead during programming, we can achieve greater efficiency, especially in fast-paced environments like hackathons. Thank you all for your time!