{"id":58,"date":"2016-09-12T18:08:31","date_gmt":"2016-09-12T18:08:31","guid":{"rendered":"http:\/\/cors1601.unl.edu\/cdrhdev\/?p=58"},"modified":"2017-04-12T19:55:06","modified_gmt":"2017-04-12T19:55:06","slug":"rails-conf-2016","status":"publish","type":"post","link":"https:\/\/cdrhdev.unl.edu\/log\/2016\/rails-conf-2016\/","title":{"rendered":"Rails Conf 2016"},"content":{"rendered":"<p>[Originally posted by Jessica Dussault, September 12, 2016 on Github Pages]<\/p>\n<p>I\u2019ve been sitting on this blog post for several months now, so my apologies for a rather late update! In May the dev team (Karin, Greg, and I) headed to Kansas City for the Ruby on Rails 2016 conference.<\/p>\n<div class=\"img_caption\">\n<p><figure id=\"attachment_170\" aria-describedby=\"caption-attachment-170\" style=\"width: 144px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-170\" src=\"https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/railsconf.png\" alt=\"Railsconf logo: a railroad crossing sign which says &quot;Rails Conf Kansas City&quot;\" width=\"144\" height=\"236\" \/><figcaption id=\"caption-attachment-170\" class=\"wp-caption-text\">People in the conference hotel thought that there was a train convention going on.<\/figcaption><\/figure><!-- image source: http:\/\/railsconf.com\/assets\/railsign@2x-1a72e3f7754db1202dc8273bc86b4cbad70848a6208aab92a38d5eaa44cfa437.png --><\/p>\n<\/div>\n<p>Most of our dev team was not particularly familiar with Rails before going. I had worked haphazardly with Rails, but not with ActiveRecord (which is kind of the heart of Rails, in my opinion). I was interested in hearing about general Rails advice, Rails 5 news, and interesting features I might not have heard about from just getting some basic apps set up. Karin was really interested in the asset pipeline, design, and dev team management. Greg spent a lot of time in the security track.<\/p>\n<p>I was happy to get my history fix in when one of the keynotes addressed dev team organization using <a href=\"https:\/\/en.wikipedia.org\/wiki\/Skunk_Works\">Skunk Works<\/a> as an example of <a href=\"https:\/\/www.youtube.com\/watch?v=ggPE-JHzfAM&amp;list=PLE7tQUdRKcyZGYLfj6oRQWPxB6ijg1YsC&amp;index=2\">creative team structure and the importance of thinking outside the box<\/a>.<\/p>\n<p><figure id=\"attachment_171\" aria-describedby=\"caption-attachment-171\" style=\"width: 145px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-171\" src=\"https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/skunkworks.png\" alt=\"Skunk Works Logo\" width=\"145\" height=\"145\" \/><figcaption id=\"caption-attachment-171\" class=\"wp-caption-text\">If you don&#8217;t know what Skunk Works is, I recommend <a href=\"https:\/\/en.wikipedia.org\/wiki\/Skunk_Works\">reading about it<\/a>. Particularly if you like things like the SR-71! And who doesn&#8217;t?<\/figcaption><\/figure> <!-- image source: By Source, Fair use, https:\/\/en.wikipedia.org\/w\/index.php?curid=13354884 --><\/p>\n<p>Here are some of the talks which I found very interesting. I\u2019m sure that Karin and Greg have more they would recommend, too!<\/p>\n<h2 id=\"making-a-rails-app-with-140-characters-or-less-by-nate-berkopec\">Making a Rails App with 140 Characters (or less) by Nate Berkopec<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=SXV-RRsjsFc&amp;list=PLE7tQUdRKcyZGYLfj6oRQWPxB6ijg1YsC&amp;index=4\">Making a Rails App with 140 Characters<\/a><\/p>\n<p>Nate Berkopec\u2019s talk was good old fashioned fun. He took an almost inane idea and made it incredibly interesting. While he cavalierly ripped code from the framework, I learned a lot about all of the libraries that Rails loads up, how things are loaded, when they are loaded, why they are loaded, and if they MUST be loaded.<\/p>\n<figure class=\"highlight\">\n<pre><code class=\"language-bash\" data-lang=\"bash\">rackup <span class=\"se\">\\<\/span>\r\n-r action_controller\/railtie <span class=\"se\">\\<\/span>\r\n-b <span class=\"s1\">'run Class.new(Rails::Application)(config.secret_key_base=?x).initialize!'<\/span><\/code><\/pre>\n<\/figure>\n<div class=\"img_caption\">&#8220;All this application can do is serve empty 404 responses. But it is a Rails application!!!&#8221; &#8212; Nate Berkopec<\/div>\n<h2 id=\"multi-table-full-text-search-with-postgres-by-caleb-thompson\">Multi-table Full Text Search with Postgres by Caleb Thompson<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=OzHhJPlgZaw&amp;list=PLE7tQUdRKcyZGYLfj6oRQWPxB6ijg1YsC&amp;index=27\">Multi-table Full Text Search<\/a><\/p>\n<p>This is one that is noteworthy because I \u2026.pretty much completely disagreed with the presenter. Thompson did an admirable job connecting tables in a massive query that I surely would have struggled with substantially, but the whole time I was thinking \u201cwhy don\u2019t you just use Solr or Elasticsearch?\u201d He did address them at the end, but said he didn\u2019t want to use tools like Solr or ES because it would add to the technology stack (true) and that then you need additional steps to populate them and keep them in sync with your databases (also true). However, at a certain point, it seems like the time spent upfront getting one of those types of tools set up would vastly outweigh running gigando queries constantly. I might be biased since we use Solr quite a bit here.<\/p>\n<h2 id=\"rspec-and-rails-5-by-justin-searls\">RSpec and Rails 5 by Justin Searls<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=vntVoC5uSYk&amp;list=PLE7tQUdRKcyZGYLfj6oRQWPxB6ijg1YsC&amp;index=82\">RSpec and Rails 5<\/a><\/p>\n<p>This presentation was one of the more memorable ones of the conference. He started quite a discussion that people were still talking about over meals and snacks a few days later. Searls was not actually supposed to be presenting on RSpec, but stood in when the original speaker was unable to attend, so it might not be that surprising that his talk was not nearly as much about RSpec as it was about the state of the Rails community. Searls is an incredibly gifted speaker and really pulled the audience along on a fun adventure\u2026at least it was fun until he went Real Talk on us.<\/p>\n<blockquote><p>\u201cWhen an ecosystem is popular everything is easy, cuz there\u2019s just, you know, wave after wave of person on the internet who\u2019s gonna write open source for free just for the ego, just for the fame, to be attributed to the new, popular thing.\u201d<\/p><\/blockquote>\n<p>He goes on to explain that things like Java, Go, and JavaScript are unlikely to die out because large companies are relying upon them and therefore will lend their support to maintaining them. Rails, on the other hand, largely depends on a volunteer community. But once something like Rails matures, then \u201cwhen you maintain a popular gem like RSpec it no longer makes you rich and famous.\u201d<\/p>\n<p>Searls is concerned that as it ages, Rails will no longer have the vibrant community that it once did. The talk was extremely relevant, as one of the primary maintainers of Sprockets had <a href=\"http:\/\/schneems.com\/2016\/05\/31\/saving-sprockets.html\">recently excused himself from working on it<\/a>, leaving a huge void in his wake.<\/p>\n<div class=\"img_caption\">\n<p><figure id=\"attachment_172\" aria-describedby=\"caption-attachment-172\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-172\" src=\"https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/sprockets.jpg\" alt=\"Image of Richard Schneeman as Indiana Jones\" width=\"630\" height=\"434\" srcset=\"https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/sprockets.jpg 630w, https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/sprockets-300x207.jpg 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><figcaption id=\"caption-attachment-172\" class=\"wp-caption-text\">&#8220;Sprockets, why did it have to be sprockets?&#8221; &#8211; from Richard Schneeman&#8217;s talk titled <a href=\"https:\/\/www.youtube.com\/watch?v=imE397wVWgY\">Saving Sprockets<\/a><\/figcaption><\/figure><!-- image source: http:\/\/www.sandimetz.com\/99bottles --><\/p>\n<\/div>\n<h2 id=\"succession-by-katrina-owen\">Succession by Katrina Owen<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=59YClXmkCVM&amp;list=PLE7tQUdRKcyZGYLfj6oRQWPxB6ijg1YsC&amp;index=81\">Succession<\/a><\/p>\n<p>This talk was probably my favorite talk of the entire conference. It was essentially just a step by step demo of how to refactor some code, presented in an incredibly approachable way. Because of my unorthodox introduction to programming (\u201cSo, your CV says that you \u2018learn things pretty fast and stuff and probably you could learn to program?\u2019\u201d), I often feel like I\u2019m lacking some basic knowledge that other devs magically know. Code design practices and refactoring tips are among them, so I was really enchanted by Owen\u2019s presentation.<\/p>\n<p>Owen is also the creator of <a href=\"http:\/\/exercism.io\/\">Exercism<\/a> which provides interesting programming challenges in different languages, which received a burst of applause when she mentioned it at the conference, so that might be an interesting resource to try out sometime.<\/p>\n<div class=\"img_caption\">\n<p><figure id=\"attachment_174\" aria-describedby=\"caption-attachment-174\" style=\"width: 100px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-174\" src=\"https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/exercism.png\" alt=\"Exercism Logo\" width=\"100\" height=\"100\" \/><figcaption id=\"caption-attachment-174\" class=\"wp-caption-text\">It has a pretty sweet logo, too.<\/figcaption><\/figure><!-- image source: http:\/\/exercism.io\/icons\/logo.svg --><\/p>\n<\/div>\n<h2 id=\"get-a-whiff-of-this-by-sandi-metz\">Get a Whiff of This by Sandi Metz<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=PJjHfa5yxlU&amp;list=PLE7tQUdRKcyZGYLfj6oRQWPxB6ijg1YsC&amp;index=78\">Get a Whiff of This<\/a><\/p>\n<p>I said that Owen\u2019s talk on Succession was my favorite presentation at the conference, but honestly it\u2019s really hard for me to say that this wasn\u2019t also my favorite talk.<\/p>\n<p>I was reminded of early in my programming life when when of my coworkers said he was nervous anytime he saw a \u201cprivate\u201d JavaScript method being called anyway other than <code class=\"highlighter-rouge\">this._blah()<\/code>. That is, if you say <code class=\"highlighter-rouge\">this.some_other_class._blah()<\/code> then you should consider rethinking why you\u2019re doing that at all. That was the first time I learned about \u201ccode smell\u201d though it would be until this summer\u2019s Rails Conf to realize that it was, in fact, \u201ccode smell.\u201d<\/p>\n<p>I was vaguely familiar with the term \u201ccode smell\u201d but I didn\u2019t know much about it. I certainly didn\u2019t know that people have been compiling lists of warning signs and recipes for corrective steps to take. I took pages of notes during the talk, and I intend to do a lot more reading on the topic. I spent some time almost immediately after the convention rethinking and refactoring some code, and I credit Owen and Metz for points of inspiration there.<\/p>\n<div class=\"img_caption\">\n<p><figure id=\"attachment_173\" aria-describedby=\"caption-attachment-173\" style=\"width: 288px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-173\" src=\"https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/99bottles.jpg\" alt=\"99 Bottles of OOP book cover\" width=\"288\" height=\"373\" srcset=\"https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/99bottles.jpg 288w, https:\/\/cdrhdev.unl.edu\/log\/wp-content\/uploads\/2016\/09\/99bottles-232x300.jpg 232w\" sizes=\"auto, (max-width: 288px) 100vw, 288px\" \/><figcaption id=\"caption-attachment-173\" class=\"wp-caption-text\">Since I liked Metz and Owen on their own, I&#8217;m guessing that <a href=\"https:\/\/www.sandimetz.com\/99bottles\">their book<\/a> is AWESOME.<\/figcaption><\/figure><!-- image source: http:\/\/www.sandimetz.com\/99bottles --><\/p>\n<\/div>\n<h2 id=\"closing-keynote-by-paul-lamere-of-spotify\">Closing Keynote by Paul Lamere of Spotify<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=f7XN3RuDzmc&amp;list=PLE7tQUdRKcyZGYLfj6oRQWPxB6ijg1YsC&amp;index=89\">Closing Keynote<\/a><\/p>\n<p>One of the most interesting and enlightning talks of the entire conference was the final keynote. Paul Lamere of Spotify spent an hour talking to us about the interesting things that Spotify is doing with user data, audio manipulation, music generation, and more. This talk was not particularly specific to Rails, but it was fascinating. I really recommend taking a listen to it if you have a spare hour of your time. Sadly, the American Sign Language interpreters did not make it into the official conference video, which is a tragedy because they were amazing during this keynote. On the fly, they had to interpret everything from metal to rap to pop and did a fantastic job! It was a great way to end the Rails Conference, and I\u2019m glad that we had the opportunity to experience it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Originally posted by Jessica Dussault, September 12, 2016 on Github Pages] I\u2019ve been sitting on this blog post for several months now, so my apologies for a rather late update! In May the dev team (Karin, Greg, and I) headed to Kansas City for the Ruby on Rails 2016 conference. Most of our dev team&hellip;<\/p>\n <a href=\"https:\/\/cdrhdev.unl.edu\/log\/2016\/rails-conf-2016\/\" title=\"Rails Conf 2016\" class=\"entry-more-link\"><span>Read More<\/span> <span class=\"screen-reader-text\">Rails Conf 2016<\/span><\/a>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"Layout":"1c","footnotes":""},"categories":[3,16],"tags":[19,18,20,17],"class_list":["entry","author-jdussault","post-58","post","type-post","status-publish","format-standard","category-conference","category-rails","tag-code-smell","tag-railsconf","tag-refactoring","tag-spotify"],"_links":{"self":[{"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":4,"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":207,"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/posts\/58\/revisions\/207"}],"wp:attachment":[{"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cdrhdev.unl.edu\/log\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}