The creator of Ruby, Matz works for Heroku and the Ruby Assocation to improve everything Ruby.
Speakers
Plataformatec co-founder and creator of Elixir Lang. I have signed off from Twitter indefinitely, RTs are automated.
This talk will introduce developers to Elixir and the underlying Erlang VM and show how they provide a new vocabulary which shapes how developers design and build concurrent, distributed and fault-tolerant applications. The talk will also focus on the design goals behind Elixir and include some live demos.
Rails committer. Ruby committer. amatsuda on GitHub. Creator of Kaminari. Founder of Asakusa.rb. Chief organizer of RubyKaigi. A Ruby Hero in Tokyo.
Christopher Adams is a writer, publisher, and software developer. He works on free software and free culture, and specializes in photography and web technologies. He is the maintainer of the community-driven Elixir Style Guide.
Elixir has benefited from extensive prior art in the design of web application packages and frameworks, coming out of the rich ecosystems of both Erlang and Ruby. The benefits have been both direct and low-level in the case of Erlang (building on top of the Cowboy HTTP server), and indirect and high-level in the case of Ruby (drawing on Sinatra and Rails). All of these influenes have come together in the Phoenix Framework.
Although Phoenix touts itself as a MVC framework, it is not strictly limited to the Model-View-Controller pattern. In fact, MVC is a simplistic shorthand that elides rather than clarifies Phoenix's full potential.
This talk will peel back Phoenix's many layers and deconstruct its underlying asumptions. It will explore alternative patterns and architectural styles that can be used productively in Elixir web development.
Damir is a Senior Software Engineer at Netflix. He is a strong advocate of clean coding, automated testing and passionate about constant improvement. On top of that, he is an organizer of Ruby Meetups in Zagreb, a regular blogger, conference speaker, open source lover and contributor.
Want to build a Bot without the hassle of provisioning and managing servers? Amazon’s got a service for that and it’s called AWS Lambda - it executes your code only when needed, scales automatically and you pay only for the compute time you consume.
There’s one problem with Lambda - it doesn’t support Ruby! Let’s checkout multiple options on how to build a Ruby Bot and package it into an executable which you can run on any machine without the need to actually have Ruby installed.
Developer from HeckPsi Lab in Shanghai. Ruby enthusiasts. Main Contributor to Project Midori.
We've been debating on the concurrency solution of Ruby for several years. Numerous custom "evented" drivers have been built, but for most of these projects, developers are required to think in the "evented" way to get things work properly, which not only breaks the elegance of Ruby programming, but also greatly increases the complexity of the refactoring process.
We will then think in Ruby, looking for the solution to make your whole web application "evented" with great meta-programming features of Ruby language itself. So that, you could still concentrate on your business models while programming as usual, but the performance may boost to 5 times faster or more without any hesitation.
Emma is a developer advocate for Google Cloud Platform, focusing on application developers experience. She is trying to make Cloud adorable for everyone through events, demos, and online content. Emma was a site reliability engineer at mobile game company companies before coming to Google. Besides software engineering, shes likes games, traveling, and eating delicious food. She has also been working with the Rails Girls community in Japan and teaching Rails to future developers.
The Twelve-Factor App is a guideline for modern web app development. Kubernetes is an open-source project for container management that gives you great flexibility around application deployments. With containers and Kubernetes, you can deploy and rollback a version, scale out to hundreds of nodes, copy the same configuration to multiple prod, staging, and dev environments, manage deployments through API, and so on.
This talk will review each of the twelve factors using a simple Rails application as an example and see how Kubernetes helps you run your Rails application. Experience with containers is not required.
Eric Hodel is a ruby committer and maintainer of many gems. He works at Fastly building developer tools that allow his coworkers to work on distributed teams with minimum difficulty.
Ezekiel Templin has worked with people to build systems using networked computers for most of the last 20 years. He also works at Fastly building developer and deployment tools.
Writing a system alone is hard. Building a system with other people is harder. Building many systems with many people is hardest.
As our company has grown, we have tried many approaches to user-friendly, shared development environments and learned what works and what doesn't. We incorporated what we learned into a tool called devly. Devly is used to develop products at Fastly that span many services written in different languages.
We learned that the design of our tools must be guided by how teams work and communicate. To respond to these needs, Devly allows self-service, control, and safety so that developers can focus on their work.
1962-, Elixir fans, senior executive coach of Gammatech
This topic is used to demonstrate that Elixir works fine on the raspberry pi. I develop a generalized player on raspberry named QBox, and use Elixir to build the web server, and then, any web browser can control the product remotely. This system works fine, and, therefore, I think it is helpful for a person who wants to develop applications alike. Because this application almost includes all features of raspberry interfaces (besides GPIO), such as wifi, Bluetooth, touch screen, USB, database, voice, HDMI, so, it is a good practice to demonstrate the abilities about Elixir on raspberry. My goals in this talk are: (1) present it works, (2) appreciate to the forum, it is very helpful to me in developing, (3) announce a resource (me), I am glad to provide my experience to any person interested.
Harisankar P S has been building SaaS application and API’s using Ruby and Rails for the past 5 years. He is also the founder of Red Panthers, a Ruby on Rails dev shop based out in Kochi, India. He is interested in open source and organizes Open Source Saturdays and Ruby Meetup in Kochi. He also contributes to open source as well.
Its better to appologize to one user for the app being down for one request rather than to appologize to 100 user for the app being slow. Circuit breakers are an age old technology which we use to save our hour from burning down, even if we are inconvenienced about it breaking light to one part of the house, we are going to use the same concept to make sure that one faulty code or small instantaneous increase in load doesn't bring down the application.
A member of Ruby core team. Rake, rdoc, psych, ruby-build, etc. and He is an administrator of ruby-lang.org and supports to develop the environment of Ruby language.
He is also Executive Officer in GMO Pepabo, Inc. His most interest things are “Productivity” He believes, there's business value in fun. The team member happiness can make valuable products. So his mainly concerns are how to solve pains like legacy code, slow tests and communication conflicts in team members.
How do you install Ruby using any tools? There are various solutions such as installing the binary and building from the source package. Did you know how do these Ruby packages come from the Ruby core team? Did you know that you are being delivered to your hands?
For example, if you are using macOS, you think that you are using third party tools like rvm, ruby-build, ruby-install. If you use Windows, You can choose RubyInstaller on Windows. Finally, If you use Linux, You didn’t need third party tool. You only use standard package manager on Linux.
As standpoint of Ruby's Core team infrastructure, I will show you how Ruby's package was created and released at the time of release. In addition, I will introduce your selections of new Ruby experiences. Therefore, Ruby has a lot of build options for linking shared libraries, changing program name, and others. It’s a too complex thing. I will describe these details.
In finally, I will introduce what kind of things inside ruby-build as a famous build tool for Ruby. It has a mechanism of building. I will explain these mechanism. After that, You can choose a best environment and options for your ruby experiences used ruby-build and Ruby packages.
I am a psychiatrist but interested in programming. I believe there is some connection between programming and human mind.
Elixir is a functional programming, but if you want to build a strong foundation in it, you have to understand the recursion and pattern matching. The best way to do it is to practice again and again. Here comes the little schemer to practice all the recursion.
Jake Morrison runs Cogini, a product development consulting company that helps early stage companies build products. He started with Ruby on Rails in 2006 and Erlang in 2007. He has more than 25 years of experience developing and deploying systems.
This talk covers the process of incrementally migrating a large application to Phoenix, covering some specific issues that may come up when migrating from Ruby on Rails.
Lead Engineer at iCHEF. Ruby lover. Full-stack developer. ErRuby developer. Organizer of Swift Taipei. iOS developer. FP lover.
How many times did you run ruby
directly except ruby -v
for checking version?
Ruby was the descendent of Perl, inherited many handy command line features.
Such as easy file reading, various global variables and executing directly without file.
Let's explore all sorts of little known Ruby Command Line features.
除了用 ruby -v
來檢查版本之外, 你曾經在 command line 直接執行過 Ruby 嗎?
Ruby 作為 Perl 的接班人,延續了許多好用的 command line 功能。
像是方便的讀取檔案,各種實用的預設變數,不用檔案直接執行程式碼。
讓我們一起來探索各種鮮為人知的 Ruby 功能。
Kelsey Pedersen is a software engineer at Stitch Fix on the styling engineering team. She builds internal software used by our stylists to curate clothes for our clients. She works cross-functionally with our styling community and data science team to build new features to better assist our stylists. She had a past life in sales and as a Division I rower at UC Berkeley.
Humans and data science are flawed on their own. Humans lack the ability to process large volumes of information. Machines lack intuition, empathy, and nuance. You’ll learn how to guide users of expert-use systems by applying data science to their user experience. Layering data science within our systems allows us to take advantage of the human-touch while leveraging our large datasets. In this talk, you’ll learn the process for sprinkling data science into your applications, the challenges we have faced along the way, and how to measure the business impact.
A CRuby committer and a researcher at Speee, Inc. I'm currently focusing on making Ruby a data-science-ready programming language.
In this workshop, you can learn the following four topics.
(1) Introduction to the data tools for Ruby (2) How to use pycall to integrate your Ruby scripts and Python's data tools (3) Using Ruby for machine learning (4) Summary and how to join the development of data tools
I've worked at Le Tote for several years as a full stack engineer, before leading our Growth Team and then our i18n Team, which launched Le Tote China in less than 3 months.
Le Tote has been using Elixir in production for over 2 years. In this talk, I'll touch on the practical problems and suggestions resulting from integrating Ruby on Rails and Elixir/Phoenix. I'll focus primarily on the technology with a few notes on team dynamics and infrastructure. I'll speak from the perspective of a Ruby developer who is new to, but interested in Elixir, and also a team lead managing both Ruby and Elixir developers.
Koichi Sasada is a programmer, mainly developing Ruby interpreter (CRuby/MRI). He received Ph.D (Information Science and Technology) from the University of Tokyo,2007. He became a faculty of University of Tokyo (Assistant associate 2006-2008, Assistant professor 2008-2012). After the 13 years life in university, he had joined a member of Matz's team in Heroku, Inc. Now he is a member of Cookpad Inc (engineer). He is also a director of Ruby Association.
One of the Ruby 3 goals is "better concurrency support".
I will talk about the progress report of this goal. I had proposed new concurrency abstraction at RubyKaigi 2016, RubyConf 2016. Our new abstraction is safer than Thread
and can run in parallel. This presentation will introduce concepts of our new abstraction and will show demonstration with preliminary implementation.
五倍紅寶石的 Rails 工程師兼系統工程師,不折不扣的橘貓派,除了工作外的興趣是使用最擅長的 Ruby 語言製作遊戲,目前製作中最大的遊戲專案「白色十一月:軍官之歌」已經超過十萬行程式碼,在臉書上擁有數千的粉絲。
There are more and more web applications with multi-tenant features these days. Such as online forums and e-commerce stores. To accelerate the development, major web frameworks often have multi-tenant plugins for fast-developing prototypes. The gem "Apartment" is the most representative one for Rails applications. It provides fast and isolated multi-tenant environments by making use of PostgreSQL schema functionality. However, when the number of schemas is too large, the drawbacks of using multi-schema database often outweigh the advantages it brings. In this talk, I will share my experience on using Apartment in a production project with over 130000 database schemas, and how I save the system from being paralyzed by the huge number of schemas.
I am a happy rubyist and an anime otaku. I make ruby gems, Rails imageboards, doujinshi's and likes to travel around the world.
There are many use cases where the ActiveModel::Errors interface is tedious to use, such as message formatting and testing. This talk presents these cases, and explains why the limitation can be simply solved by taking an object-oriented approach, which results in the AdequateErrors gem. The gem's implementation is explained, and the talk will showcase examples on how it can make your coding life easier.
Rails Developer for 7+ years. Love testing, refactoring, making process better every day. Love cats.
We all know what the acceptance testing is. However it is difficult to really adopt this into your real-life work. I want to show you how I introduce this technique and solve the problems.
Michael Kohl got interested in computers at the young age of 12. Since then, he has worked in systems administration, systems engineering and devops, Linux consulting, IT security and software development. He’s a programming language enthusiast who’s especially enamored with functional programming languages, but also has a long-standing love affair with Ruby which started around 2003. Michael currently serves as CTO of Lockstap Labs and is based in Bangkok, Thailand.
As web applications grow in scale and complexity, people start realizing that many parts of their domain-specific code do not fit neatly into Rails’ MVC structure. In recent years certain patterns emerged that try to rectify this situation and this talk tried to shed some light on them. Additionally it will explore some of the newer additions to the Ruby web development scene, like Hanami and dry-rb.
Elixir/Ruby Programmer at Drecom Co., Ltd. ElixirConfJapan2017 organizer/speaker , Director of the Japan Elixir Association
We can build chat service with Phoenix PubSub easily. However, can we build the large scale chat service in the same manner? 1,000,000++ of simultaneous connections? PubSub of channels with 100,000++ subscribers? Large scale chat service has many problems. I’m developing game platform and large scale chat service with elixir/phoenix. In this talk, I’ll talk about our huge scale pubsub architecture and some problems encountered and solutions.
I am a new beginner in Elixir too, actually. I first came across Elixir in early 2017, after a short taste, some of its features immediately interested me :) Then there comes a big refactor for the maintaining project and a document store migration is required. I had the chance use Elixir in action and play with all its key features for a few months. I will introduce what I love about Elixir, different philosophy between Elixir and Ruby, and how to jump from the world of object-oriented to the functional world. Last but not least, I will also demonstrate some real-world example in this talk. If you haven't give Elixir a try, I hope this talk will enlighten you with some new ideas!
I'm the RDoc main maintainer. I'm working at Space Pirates, LLC.
RDoc has some steps for generating documents. First, lexical analysis for Ruby code. Second, parsing methods, classes, documentation comments and others from lexical items, and creating their objects. Third, building HTML and lexical analysis again for syntax highlighting of documented code. I'll introduce the internal steps of RDoc. I'll introduce modern Ruby lexical analyzer and parser for documentation.
Sihui spends most of her time writing, reading, and blogging about software. She enjoys learning and talking about software design, refactoring and Ruby. She works at Gusto and blogs at sihui.io Her favorite answers to all questions are: “It depends”, “I don’t know”, and “Does it matter?”
It’s incredibly fulfilling to know your code makes a difference. But, when your code needs to move millions of dollars daily, it can be terrifying. Imagine how dreadful it is when you find a small bug that cost hundreds of millions of dollars. I’m on the payment engineering team at Gusto. We build systems that move money for people’s payrolls: money people depend their lives on. Come and hear me share how we build systems striving for correctness and robustness with Sidekiq and Slack bots. You will learn about best practices and engineering principles we distilled from past expensive lessons. They give us confidence in our code so we can sleep well at night.
I believe most of us love Ruby, but I also believe most of us don't think Ruby it's perfect. So what'd your own version of Ruby look like if you can create your own one?
As some of you may know, I created a language called Goby about a year ago. It's largely inspired by Ruby, and looks very similar to it. But it also have some design choices different than Ruby or have some unique features that Ruby doesn't have. In this talk I'm going to discuss some important things we should focus on when designing a language. And I will also share the design choices made when developing Goby, as well as the philosophy behind these choices.
CTO at SideCI. Interested in program analysis including type system and flow analysis.
In software engineering, repeating things is usually considered harmful. We start our projects with a testing framework to keep running tests without repeating manually. Instead of copy and paste a code snippet, we define a method to make our code structured. When we find ourselves repeating a code review suggestion several times, we try some automation!
This talk will cover the design and implementation of our review assistant tool, comparison with other LINT tools, and how our reviewing workflow has been changed.
In Ruby 2.6, we're planning to merge JIT compiler to MRI experimentally. In this talk, you'll see how it's going, and how it performs better.
Tetsushi Awano joined Rakuten Travel in April 2012. Since 2016, I joined the DevOps team to support DevOps activity within the organisation. My hobby is cycling and having 環島 (Round trip around Taiwan) twice by bicycle. I am passionate about creating software which improves the productivity of the organisation.
I was introduced to Ruby when I was lab student at Aoyama Gakuin University, Software Lab. The professor was Ruby commiter. Since joining Rakuten Travel in 2012, I was coding Java but started to use Ruby again from 2016.
When DevOps team was established in 2016, development teams in Rakuten Travel were working in silos. Development teams had had separate development processes (build-automation tool, release-automation tool, site-operation tool). Also the development environment which all teams used together had infrastructure restrictions and development processes which slowed down the development in the organization level.
DevOps team talked with each development teams and found issues to solve. Then DevOps team standardised the development processes by delivering software in the topic of System/Application Data Centralisation, Multiple Development Environment, High Availability, Data Visualisation, Table Definition Management. Most of our software is written in Ruby. After 2 years of DevOps activity, all development teams follow the standardised development process. Also, operational processes such as release automation and site operation are now consolidated to 1 team. As a result the productivity of our organisation improved dramatically.
In the process of developing software, DevOps team faced many issues. As many members did not have a developer background, we did not write unit-test for our Rails application. So we learned how to write rspec testcases and also introduced guard to achive TDD. Then, as the number of our Rails application increased, many duplicated codes exist such as getting server related information from cross-company internal API. So we learned to package duplicated code into rubygems and store it in internal gem repositories. When we faced a performance issue in our program, we tried to solve it by using multi-threading function. However Ruby was unfit for it and we ended up using Java instead.
Another important part of this DevOps activity was to adapt the standardised software to each development team. Development teams had their own development processes which were already efficient for them. So when we tried to adapt the software, while most development teams were supportive, some were not. In the latter case, we had to do many of the heavy lifting such as making code changes to the product code and testing products on our own. The most difficult part was actually creating testcases and executing testcases which are normally responsible by other development teams. This is mentally tough but very challenging part of DevOps activity.
I've enjoyed Ruby for 7 years and work as a Rails and JavaScript programmer in Japan. Learning Chinese for RubyConf Taiwan!
Ruby has toolchains to parse Ruby code into abstract syntax trees (ASTs) and process. Software such as an IDE, a linter or a formatter) is buit on them. But do you know these toolchains can be useful for your own daily development? This talk will show you how to boost your development with AST toolchains.
Involved in software development and computer networks since 2002, including PHP, Perl, Ruby and now Elixir. Worked for a big companies, outsourcing shops and small startups with eventually starting an own one. Found of cryptocurrencies and believe that even small teams can achieve splendid results.
Practical software engineering involves much more than just a technical framework – it encompasses processes, company culture, and individual team members’ technical abilities. In that sense, every company is like a living organism that is constantly changing under influence of internal and external factors. Due to the small size of our team and limited resources as a technical co-founder, I was forced to look for an optimal architecture and workflow which will allow implementing features according to the CEO’s vision with minimum friction and will distract the team on fixing bugs later on as less as possible at the same time.
The journey began with using Trailblazer with Rails on the Ave88.com and continued with using DDD-Lite with the Phoenix on the Flowmail.com where it undergone a series of transformations.
Our experience made us recognize that: - Any even moderate-size project can’t be based solely on MVC and Service Objects. - It’s possible to implement the practical and reliable architecture in both Rails and Phoenix framework, though some Rails conventions make process a little more tedious. - Having a right architecture is a long, time and resource consuming journey that will eventually pay off. - Changes should be supported at the management level since the governance style may be severely affected in the software development companies.
The talk itself will consist of two parts: technical and non-technical both of which will underpin key points in implementing changes and will contain practical takeaways for a small-mid sized teams/projects.
Noteworthy, some technics and conclusions were recognized and now going through the implementation evaluation on the larger, 200 KLOC RoR codebase.
I'm Yuichiro MASUI. a.k.a. @masuidrive. CTO and co-founder of Toreta, Inc. Ruby on Rails and iOS developer. ex-Appcelarati. I really love programming and bath(Furo in Japanese). So many friends call me "Furo-grammer"
In Rails 5.1, webpacker gem now directly supports Javascript front-end framework such as React and Angular. However, I am running React on the Docker environment without webpacker gem. React has many advantages for making dynamic views. Especially, One way flow provided by React is similar structure with Rails data flow. So It's easy to understanding for server side engineers.
In this session, I will explain the purpose of using React in View, Pros & Cons.