2017 started out with a bang for MemphisRuby. Daniel Pritchett, Memphis Ruby Users Group (MRUG) founder, and Clear Function developer gave a presentation entitled: “The Secret about Makefiles Front-end Developers Don’t Want You To Know!”
Daniel showed us a Rails project his team built using NPM scripts and Webpack instead of the Asset Pipeline.
He was looking to rely less on his Continous Integration’s (CI) settings and more on a configurable script inside the project. That lead him to Makefiles. By creating a Makefile in his project, he was able to tell the CI to rely on the Makefile, instead of explicitly telling the CI what steps to take to build the tests.
Once Daniel completed his presentation and let us grasp the magic he had just shown us, he took the opportunity to show us some of his favorite SideKiq code in the project. If you’ve been to a MRUG meetup before, then you know the love Ruby developers in Memphis have for SideKiq.
In fact, so much so that Mike Cochran gave us an impromptu presentation on some SideKiq code he has written in a project. Mike also recently gave a SideKiq presentation at our November meetup. We love SideKiq.
We’d love to see you at the next meetup!
Hello again! Last night we had our July 2016 meetup at the FedEx Institute of Technology. Our resident microservice expert Josh W. Lewis gave us a fantastic, and well balanced, look at microservices. Starting with an overview of microservices, Josh showed us some of the pros and cons of microservices compared to the “monolithic” approach. He then explained how the different services communicate, as well as some examples of individual responsibilities each service can have.
Josh wrapped up the presentation with a walkthrough of Pliny. Pliny seems like a fascinating approach to building APIs with Ruby. I found Josh’s talk to be a very good way to help developers decide when microservices are appropriate. The night didn’t stop with microservices! We ended with a walk around the University of Memphis catching Pokemon.
If you’re interested in Ruby, new to Ruby, experienced with Ruby, or just wanna hang out- come check out our next meetup!
Special thanks to the University of Memphis for hosting the event, as well as LensRentals for the Pizza.
This month, we had a great meetup at Coroutine’s new office space on Broad Ave.
Jason Charnes educated us on how to decorate your models as an alternative to Rails' helper system. A tradidtional Rails view helper might look like this:
module ChurchesHelper
def remove_church_from_name(name)
name.split(" ").reject{ |e| e == "Church" }.join(" ")
end
end
And you’d use it like this:
<h5><%= remove_church_from_name(c.name) %></h5>
This works, and helps keep your code DRY, though you usually end up with long method names, and several concerns mixed into a module.
Draper is a RubyGem for adding decorating methods to models. With Draper, you can do something like this:
class ChurchDecorator < Draper::Decorator
def name
model.name.split(" ").reject{ |e| e == "Church" }.join(" ")
end
end
Which you can use in your views like this:
<h5><%= @church.name %></h5>
It certainly feels more Object Oriented, and in my book, it’s a little clearer. Jason showed us how to get setup with Draper, and explained some of the deeper semantics. Check out Jason’s slides here.
We concluded the event with an inpromptu editor showdown. Various developers showcased their editors, with varying degrees of success (I hope I didn’t turn anyone off on Vim). We saw Vim, Atom, and PHPStorm, and talked about others like Sublime and TextMate.
Thanks to Coroutine for the meeting space and the awesome Broadway Pizza.
Our September meetup featured an extensive look at the gem Unitwise. Unitwise is a Ruby library for unit measurement conversion and math.
Josh, Unitwise creator and fellow Memphis Rubyist, walked us through Unitwise. For those who haven’t needed such in-depth measurement conversion, myself included, he shared his initial use case for a unit conversion tool. Once everyone was on the same page, he moved to the core of the gem and all it’s amazing capabilites. Josh loaded up a Ruby console and showed us the inner workings of Unitwise, while showing us the code behind it all.
For me to try and explain all of Unitwise’s true capabilites wouldn’t give it justice. Josh has set up a demo site that will let you see it in action. I recommend you check it out!
Have something you want to share with us? Slots are still open for next month.
This month, we had another fun an informative meetup at Coroutine. Just one presentation this time, but a good one:
John Dugan gave us a great walkthrough of Caracal. It’s an open source library for generating Microsoft Word documents with an HTML-like Ruby API. Caracal lets you build word documents like this:
Caracal::Document.save 'example.docx' do |docx|
# page 1
docx.h1 'Some Title'
docx.hr
docx.br
docx.h2 'Some Section'
docx.p 'Lorem ipsum dolor....'
docx.br
docx.table @my_data, border_size: 4 do
cell_style rows[0], background: 'cccccc', bold: true
end
# page 2
docx.page
docx.p 'Lorem ipsum dolor....'
docx.ul do
li 'Item 1'
li 'Item 2'
end
docx.br
docx.img image_url('graph.png'), width: 500, height: 300
end
The review demonstrated the library’s functionality but also a good portion of the libraries internal architecture.
The overall response was very positive. Caracal appears to be a well thought out library. It has a great API, and it’s internals abide by the principles of SOLID.
Thanks to all who came, and to Coroutine for the food and meeting space.
Last Tuesday’s meetup at Coroutine was another great one. We had two presentations:
I got us started with a quick demonstration on Ruby’s Enumerable. I covered some simple use cases of enumerable’s methods, then finished it up with an example scenario using Enumerable and Comparable as mixins. You can check out the slides and the sample code.
Daniel Pritchett gave us a great tour of Spree Commerce. It’s a complete e-commerce solution built on Ruby on Rails. He walked us through a demo site he had setup, where he highlighted products, checkout, site administration, and hub integration.
Thanks to all who came, and to Coroutine for the food and meeting space.
Slots are still open for next month! If you have something you want to present, contact us - we would love to see it!
We had another great meetup at Coroutine tonight! While the initial crowd was small, we had more attendees trickle in for a pretty good turnout. We had pizza, some nice conversation, and two presentations:
Daniel Soskel went over the development process he used for his parts store app. This was a Rails application that he built for his senior project. He showed us how he determined his database structure and data modeling, and finished with a nice demo.
Mike Cochran demonstrated a very interesting use case for Go. He replaced his resource intensive Ruby Sidekiq workers with equivalent ones written in Go. Watching these workers run highlighted how well Go’s focus on concurrency and performance can pay off.
Thanks to both of our presenters, and Coroutine for the pizza and meeting space. I am looking forward to the next meeting, where Daniel Pritchett will present about an unknown topic related to Spree Commerce.
Last night’s meetup went off well - thanks Jessica and Daniel for presenting and thanks everyone for attending!
Jessica’s slides are up for her Scoped Invitations for User Group presentation. She’s also posted some of the code as a gist.
Daniel had to improvise his gem presentation somewhat due to time constraints so there’s no slideshow. The gem itself is up on RubyGems for you to check out as whateverman.
We’ve just received our first publisher-donated books from Informit’s Professional Ruby series. Contact me if you’d like access to Eloquent Ruby, Practical Object-Oriented Design in Ruby (My personal favorite!), or Rails Tutorial. I’ll need to create a public spreadsheet for listing and tracking the library contents. Volunteers welcome.
Check out our sweet new website! Thanks Keith Mattix and Josh Lewis for all your hard work. Click the red github banner at the top of this page to submit your own enhancements or new blog posts.
Don’t forget to sign up for the MemphisRuby mailing list! You can also swing by #memphisruby on freenode. Links to these are at the bottom of the Memphis Ruby homepage.
Time: 6:00pm - 8:00pm
Location: Coroutine - 516 Tennessee Street Suite 422, Memphis, TN
Signup: Meetup.com
This month’s presentation will feature Jessica Biggs who will walk through how to build an invitation system for an app with “User Groups” (a user can invite other registered users to their group through the app or unregistered users through email)“. We will also have Daniel Lissner talk on how to build and host your own private gems.