Ruby and home brewing

31 views
Skip to first unread message

Brandon Casci

unread,
Mar 3, 2016, 7:03:01 PM3/3/16
to boston-r...@googlegroups.com
Do any Rubyists out there happen to brew beer as well? I started working on a Padrino based home brewing app. Happy to share details off list if anyone is interested...or on if anyone wants to talk Padrino, which I like a lot now!

Joel Oliveira

unread,
Mar 3, 2016, 8:19:32 PM3/3/16
to boston-r...@googlegroups.com
I don't (space is a rough commodity in my home), but, boy would I love to some day. Would love to hear more, Brandon!

Why not share ON list, though? :)

On Thursday, March 3, 2016, Brandon Casci <brando...@gmail.com> wrote:
Do any Rubyists out there happen to brew beer as well? I started working on a Padrino based home brewing app. Happy to share details off list if anyone is interested...or on if anyone wants to talk Padrino, which I like a lot now!

--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygro...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Brandon Casci

unread,
Mar 4, 2016, 10:54:12 AM3/4/16
to boston-r...@googlegroups.com

Hi Joel, I didn't want to abuse the the list with an overwhelming amount of unrelated hobby or product specific talk. Though I was hoping to connect with some other Ruby developers that share the same interest.

It's very basic so far, but here is a screen recording a recipe being created.

https://youtu.be/xjH3bqvhJCE

Basically I want a way to accumulate a list of recipes I like, and log the brewing results for each one. Also to discover recipes through other users, and view their brewing results as well. I'm working on it alone, so time available time is a challenge. At the current rate I might hit all the critical requirements in a couple months. 

I decided to take a break from Rails and ActiveRecord so I could learn something new. I went with Padrino as the web framework and Sequel for the ORM. Although Volt was pretty compelling. 

Padrino has been pretty nice to work with overall. I will probably use it for other projects. The learning curve was minimal because it's somewhat similar to Rails.  It has far fewer conveniences but I didn't feel like I was missing anything.  Routes and controllers are a bit different though. Padrino is Sinatra based, so if you've spent a lot of time with Sinatra then it's controller, routing, request and response interfaces won't be anything new.

Sequel is nice, but it's a shift from ActiveRecord. I think ActiveRecord is slightly easier to use fresh out of the box when it comes to associations and scope chaining. Though Sequel is really powerful once you get over a few core concepts. The documentation is extensive too. The library includes a lot of plugins (validations, hooks, timestamps, trees, and more)  that you load in as needed on specific models, or across all models. Also when you need to dive a bit closer to SQL, I like it's query building interface more than Arel.

Patrick Robertson

unread,
Mar 4, 2016, 11:42:44 AM3/4/16
to boston-r...@googlegroups.com
As both an admin and someone doing a homebrew tonight I believe you can feel free to use this thread for the topic!

One thing that bugs the ever-loving crap out of me is that most brew software doesn't use gram measurements for things like hops that I am most assuredly measuring out on my gram scale. Would love to see that in addition to ounces/lbs as a measurement option :).

- Patrick

Brandon Casci

unread,
Mar 4, 2016, 1:06:33 PM3/4/16
to boston-r...@googlegroups.com
Patrick,

Ya, one thing I want to do is make the unit of measurements up to the user. So you can input and read measurements  the way you want. That will make recipe scaling easier too, so you can pull an ingredient list for for a 1/2 or double batch.


Steve Morss

unread,
Mar 4, 2016, 4:45:51 PM3/4/16
to boston-r...@googlegroups.com
I'm not a beer brewer, but I do use Padrino in an automation project I'm working on (see www.catalinacomputing.com).  I also do quite a bit of work with sensors and Arduinos.  I've even helped a friend set up sensors on his professional still for making spirits (uses a lot of PT100 temperature sensors).

Not sure if you are looking for any sensors or control for making beer, but I know quite a bit about them.  I've also got a Padrino based graphing program for monitoring sensors.

Steve

Brandon Casci

unread,
Mar 6, 2016, 10:56:14 AM3/6/16
to boston-r...@googlegroups.com
Hi Steve, I haven't been to a meet up in years but I think recall meeting you when it was held in a small room at the CIC. You were showing some people a hackable network switch. If I'm remembering correctly, it was controlling lights over ethernet cables by using  modified firmware that was running your Ruby code.

This al sounds pretty cool. What exactly did you set up for you friend?

Steve Morss

unread,
Mar 7, 2016, 10:28:11 AM3/7/16
to boston-r...@googlegroups.com
Hi Brandon,
I remember that meeting.  I used an ASUS router running Linux (OpenWRT) as a host - it was one of the best and most reasonably priced solutions at the time.  Good memory.

My friend has a still (see photo below) which requires precise temperature monitoring and control throughout the distillation process.  It came with 5 PT100 sensors (sensors made out of platinum whose resistance changes with temperature).  We set things up so he could use his cell phone to monitor the temperatures of the 5 sensors.  We used a Raspberry Pi, 2 Arduinos, and 2 RTD shields (see http://www.catalinacomputing.com/docs/Devices/ArduinoDevice/ArduinoDevices/ProtoVoltaicsDevices/ProtoVoltaicsDevices).  The whole set up costed around $250 (including power supplies and cases), which was a lot cheaper than comparable solutions costing a few grand.  (PT100 sensors can be bought on Amazon for around $10.)

The Arduinos are particularly handy, because they have lots of I/O pins, so we can add control when and where we need it.  I've got lots of scripts for setting up systems, which makes things pretty easy.

Here's the still:




Here's our Pi, 2 Arduinos (and 2 RTD shields).  There's also a wireless access point for getting our Pi onto a local wireless network.




A few days ago, the Raspberry Pi group announced they are coming out with a new Pi (still costing $35) which is adding WiFi and Bluetooth, plus a new faster 64 bit quad core processor.  If you can live with 1 Gigabyte of memory, Pis are a suitable replacement for many Linux PCs.

Steve

Brandon Casci

unread,
Oct 29, 2016, 12:52:31 PM10/29/16
to boston-r...@googlegroups.com
Here is an update on my home brewing app.



This video shows selecting a recipe, and configuring it's variables for a brew day. You can scale a recipe up or down, and convert recipes between US Customary and Metric. 

The backend is ruby. The UI is ReactJS because I wanted to try something that's on the rise in today's job market. React, it's OK I guess. It's value become most apparent during recipe conversion and scaling. Though at the end of the day I feel there are simpler solutions available for these sorts of cases.

I shifted my focus  exclusively to brewers that use the BIAB (brew in a bag) method AKA single step mashing.

Overall the workflow is pretty simple. You enter your recipes. Recipes are just free text, but the format is enforced and validated. You set up a new brewing by applying variables against a recipe (scale up/down, water volumes...) and then lock it in for that batch. Each time you brew, you get a time stamped brew log entry with the recipe and variables you used for that brew. You can add entries to the brew log to record gravity levels, how long the batch has been conditioning and whatever else you want.

I dropped ingredient profiling for a few reasons. First I have five large brewing books and the Internet for recipes. Designing a beer from scratch is something I've only wanted to do a couple times. Ingredient profiling is difficult to do because there is no single reliable place to get profiles on hops, malts and yeasts. The downside, which is minor to me,  means there is currently no way to estimate IBU, gravity and color.

To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygroup+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages