SEAN MARCIA:Hi. My name is Sean Marcia.
I am gonna be talking about saving the world
with Ruby on Rails. And that's me on the Twitters.
At seanmarcia. In case you're wondering,
I'm an early adopter. That's how I was
able to get my own name.
I thought was funny.
So I, I work at George Mason University as
a software developer, and I'd like to thank them
for giving me this opportunity to be here and
do this kind of cool stuff. Thank all of
you and thanks to my Ruby group for letting
me practice this talk on them last week.
So today I'm gonna be talking about the, the
history of the project. Then I'm gonna talk about
the technology we use. And then I'm gonna hopefully
tell you how you guys can all get involved.
So, but really, I'm just gonna tell you a
story about bees. And my personal story with bees
began when I was about six years old, and
for reference, that's me at six. Yeah. Looks like
an orange on a toothpick.
But, but when I was six, my, my good
friend and I, we were, we were out, we
were wandering around, and we found a wild beehive.
And, if you know six year old boys, you
can probably guess what we did next. We started
throwing rocks at it.
And, you know, my good friend, he just took
off running, and I didn't know why, and it
wasn't fun to throw rocks at the beehive without
him. And it turns out that the bees stung
him twenty, thirty times. And they didn't sting me,
so. I kind of feel I have this karmic
debt to the bees for leaving me alone.
And so, you know let's jump forward to today.
And like I said, I'm a software developer at
George Mason University. I was wandering across campus one
day and I saw this guy was giving a
talk. This is Herman Pria, and he was giving
a talk about Amazonian stingerless bees, and the honey
they collect.
And, you know, as a developer, I'm really in
it for the swag, and since he was giving
honey samples of these bees, that's why I went.
And so, I was listening to his talk, and
actually he told me what kind of animal that
is and I don't remember right now. But I'll
find out, because it's something interesting.
But, so I was listening to his talk, and
after the talk I went to, to talk to
Herman and, turns out he's doing all this really
interesting stuff about bees. And you know, bees are
fascinating. If you don't know anything about them, like,
you know, there's 4,000 different varieties of bees in
North America. If you guys didn't know that.
They're responsible for 90% of the wild, wild plants,
and they're crazy hard workers. You know, one bee,
in its lifetime, is gonna gather 1/12th of a
teaspoon of honey. And that's all it's gonna do.
But it's gonna visit like, 50,000 flowers to do
that.
60-70% of all our food is because of bees.
Like, from the pollination they do, or they pollinate
the food that our food eats.
But, the really crappy thing is, the bees are
dying. And they're disappearing. And we don't know why.
And this is actually starting to become big news
and people are starting to cover it. Just last
fall, Time Magazine ran an article about, you know,
a world without bees and what the consequences are
if we don't start doing something, and, which directly
leads to what Herman is doing. He's researching this
thing called Colony Collapse Disorder.
And if you're not familiar with Colony Collapse Disorder,
basically what it is, is like, beehives and bee
colonies will suddenly just collapse and disappear. And for
no rhyme or reason. And it's, it's serious. Like,
for managed beehives, like that's beehives where there's like
a beekeeper watching them, about 35% of them have
just died out and vanished.
For wild bees, it's much, much worse. In some
areas of the country, 90% of the wild bees
are just gone. Like, Virginia, where I'm from, it's
about two-thirds. And it, like it's not just our
problem either. Like, it's happening in Europe. Like, they're
predicting in England, by 2018, all the bees are
gonna be gone. And that's, that's really serious.
Asia, same, same situation. India, India, it's particularly scary,
because in India, 90% of the pollination of honey
comes from a wild bee that they can't domesticate,
and as, like, as we know, it hits these
wild bees harder. So if those bees get hit,
India's gonna be devastated.
And so, you know, some of the, some of
the theories about what's causing Colony Collapse Disorder, maybe
it's pesticides. Maybe it's these two variety of mites
that the bees for some reason can't, can't clean
from themselves. Could be disease. Genetic factors. Like, we
just don't know. And it could be a combination
of any of these.
I have one of my own theories up there
that, unfortunately, isn't gaining any traction in the beekeeping
community. But, I'll let you guys try and figure
out which one it is.
And so, hearing all this from Herman, it's like,
hey, what can I do to help? And, and,
you know, Herman didn't, doesn't have any technical skills,
and, and so, but he told me, hey, I
already have some beehives at George Mason, and it
turns out they're up on top of a parking
garage, like.
And so up, five stories up, you can see
the top of another building nearby, and Herman said,
you know, he would love insight into these things.
Like, the hive temperature, because bees keep the temperature
in the hive constant, year round. Doesn't matter if
it's the middle of summer or middle of winter.
And, actually just in the last, last couple of
years, they found out that, you know, when they
pull these combs out of the beehive, and there's
the little holes in them, they always assume that
the bees hadn't gotten around to filling them with
honey.
But what they've learned is there's a special drone
bee that breaks its wings off and crawls into
those holes and just vibrates all day long to
generate heat. I guess that's a life.
But, so, and he also wanted hive weight, just
sort of to see the weight of the hive
changing over time. And then he wanted the outside
humidity and temperature just kind of as control, cause,
like, perhaps there'd be a week of really bad
weather, and so, like, that's why the weight wouldn't
go up. They'd be eating their stores.
And so, I was like, OK, so it, again,
looking at, at the situation, well, you know, the,
immediately, you know, we see there's some issues with
this. You know, like, it's open to the elements.
We don't have any power. Our budget was really
small. And we needed something that was really easy
to repair and maintain because most of the people
aren't very technical.
And so the first thing we handled was the
no power, like this was the low-hanging fruit, and
we did that simply by, by some solar panels,
a deep cell battery, and we had some off-grid
power. And we found that our solar panels and
battery could power our system for about seven to
nine days, when there wasn't any sun. And so
as long as we had sun at least once
a week, we were, we were good to go.
So the next thing was we had a limited
budget. And I, I think we started with less
than $200 or about $200, and this is how
things broke down, and, and why, you know, we
used Raspberry Pis cause we got the first three
free. Got a bunch of Raspberry Pi devices. You
know, some SD cards, cables, like, who doesn't have
a bunch of cables in their closet.
And you see the solar setup there was about
$140. That was about the bulk of our initial
costs. And you know, what I brought to the
table was this MacGiver-like ability to figure out solutions
to problems. And, you know, like in the, an
example of that is, when we built out, when
we put in our first temperature probe, we needed
to protect that probe somehow. And so, which led
me to, you know, to quickly come up with
a solution.
I ran to Student Health services, asked them if
I could get some condoms from them to cover
the probe, and they didn't even flinch. They handed
over a bunch of condoms.
But it really made me realize that these, these
people in Campus Health Services have seen everything, because
when I walked in there, I was kind of
dirty, cause I was outside working, and I was
carrying duct tape and rope. And, and they didn't
even flinch. They just handed over a handful of
condoms, so.
So, like, this wasn't perfect. But we had a
start. And I plugged in Twitter so we could
get, you know, social media going, and some Tweets
from the beehive. And so our, our initial results
were, we had a Tweeting beehive. In the picture
you can't really see, and it's Tweeting hey, it's
78 degrees in the hive. And the little picture
of the bee yard.
And, and we're going. And one of the interesting
things is once you're out on social media, people,
I guess, they assume you know a lot about
bees and they start contacting you. And one of
the people to contact us, send us a direct
message, was just like, hey, how do I get
my dog to stop eating bees?
You'd think eating the bees would probably be enough
of a lesson. But, but you know, I, I,
I Googled, and it turns out lots of dogs
like to eat bees, and you know, little dogs,
medium-sized dogs. And even big dogs.
So, so before I go any further, who's, who's
familiar with this acronym?
OK. Some of the people here. This is something
started by Bryan Liles. Maybe five, six years ago.
It means test all the fudging time. I always
get stuck up on the f. But you know,
no, no offense to Bryan, but he's wrong.
Really, what it should mean is try awesome things,
forget testing. Because, if you, because if you forget
testing, you can get results like this. It's currently
501 degrees in the hive.
And you think, oh, why is that valuable? Well,
it turns out that people, people find stuff like
this amusing. And suddenly, and, and you can't read
this, but suddenly we're getting reTweeted. City of Fairfax
is Tweeting us. And people are asking us, are
we raising fire bees? It, it, is the hive
on fire? Are things OK?
And, and, it's kind of amazing. Like, all these
Tweeting and reTweets and people getting in on the
joke suddenly, suddenly was our on Gundam style, just
making, make everyone aware what we're doing. And it
really made things happen fast. And it brought us
into the attention of the SweetVirginia foundation.
And what they are is they're a non-profit that
teaches honey, honey bee education to, to students and
adults. And, and they wanted to help. They didn't
know we were raising bees at George Mason. And
so they, they said, well, what can we do?
We can offer you space. And Herman wanted to,
to, to have a class of researchers, and we
didn't have the equipment which was, you know, one
of the biggest issues.
And so, so what we did, is we started
a crowd funding campaign, because it's gonna be about
a thousand dollars per student. And we, we raised
twelve thousand dollars, which was amazing, so we could
have a class of twelve. And the, actually there
was a waiting list of over a hundred students
trying to take part in this research.
But, so we had twelve, and then this, this
kickstarter campaign, sorry, Indiegogo campaign, also was like, another
big social media raising awareness for us, and so
suddenly, suddenly again, you know, people are becoming aware,
and bees just become crazy popular at, at George
Mason University.
And so the, the, one of the Fraternities is
starting a Bee Global campaign. The magazine, the alumni
magazine is all about bees. And this is the
president of George Mason with Herman, there, and, the
really amazing thing about the, you know, the president
getting involved is suddenly we have a budget.
And so now, now, which leads us into the
technology and the interesting stuff.
So, for anyone working with Raspberry Pi or is
unfamiliar with the Raspberry Pi, that's what this is.
It's a credit-card sized computer. Like, this is an
entire computer. And so I invite you to come
up after and look at it and play with
it. And if you want to come later, one
of the evenings, I'm probably gonna be hacking on
it and playing with it, and so I invite
you to seek me out later.
But if you are gonna work with Raspberry Pis,
some advice I'd give you is to, is to
backup your card often. Like, take an image of
it and don't, don't go the traditional dev-ops route,
where you know you're gonna install everything on there.
Cause if you've ever had to wait for, like,
Nokogiri to compile on your computer, Nokogiri compiling on
a Raspberry Pi is about sixty times as long.
So it's better just to have an image and
then, you know, copy that image. And, and buy
a couple, because they're cheap. They're $30 computers that
are full computers.
So Raspberry Pis have these GPIO pins on them,
which is general purpose input output, and it's the
same kind of thing you have, if you've ever
opened up a desktop computer and look, looked at
how your hard drive plugs into the motherboard.
It's the same kind of thing. And there's these
pins, and to reference, this is with one of
the sensors plugged into one of my Pis. You
plug it in and you may see some tutorials
online if you're gonna do some of the stuff
that says, that says solder the wires right to
your Pi. Don't do that. Because if your, if
your Pi breaks or you don't know, it's easy
just to swap it out, take the Pi, throw
it away and plug it into the new one.
Or, I guess maybe not throw it away, cause
it might not be broke.
And so if you're gonna be working with Pis,
these are the three gems I'd recommend checking out.
There's the gpio gem, you know. pi_piper and wiringpi-ruby.
You know, I'm not gonna suggest which is best
of the three, cause they're all amazing and it's,
I guess it's my own, Sophie's choice.
But, so, as to saving the world with Ruby
and Rails, I lied. I'm actually using Ruby and
Sinatra. So I guess if you want to get
up and leave now, feel free.
So I, I went with the dashing gem. Originally
I was using, for creating a dashboard, I was
using the dashing Rails, but I, I realized, I
don't need all the, the complexity that Rails brings
to the table. Especially since we wanted the solution
that was simple for other beekeepers elsewhere to look
at and to use. And, you know, we don't
want to have to explain controllers and spitting out
JSON and all these kind of, all this kind
of stuff that they just, they don't need.
And so, and so using, working with dashing is
as simple as gem install dashing, and then dashing
new. Much like using Rails. And if you are
interesting in more about dashing, I suggest going to
RubyNation where Carl, Derante and Chris Mar? are giving
a talk on it, cause their talk is phenomenal.
But after doing this, you have a dashboard that
you can't see too well. But you can see
there's, we're using the green and the gold cause
that's George Mason's colors. But we have our internal
temperature, external temperature, internal humidity and outside humidity.
And if the numbers seem low for the temperature,
that's cause we're using Celsius. We're, I guess, cause,
we're not all on the imperial system. And that's
the weight in kilograms. And, and what this is,
is it's a, it's, it's being wirelessly served. So
you walk up to the beehive, open up your
laptop, connect to the beehive, and then navigate to
beehive dot local and then this pops up and
you can see the current statistics in the hive.
And how did we do this? And we did
this simply with a series of chron jobs. And,
if you're unfamiliar with how chron works, you, you,
the first one is running at zero and twelve
hours, so midnight, noon. Second one's running at midnight,
six AM, noon, six PM, and, and so forth.
And, and that's it. Like, three, three simple scripts
and it's gathering all our information.
And this is an example of one of our
scripts. So making a little, little, an instance of
our sensor, defining a couple of directories and, if
you see, directories are in the public, the public
folder, and the reason, again is just to sort
of keep it simple. If one of the researchers
wants to, to get access to the CSE file
when they're logged onto beehive dot local, they just
type in inhumid dot csv and it downloads to
their computer or their tablet or whatever they're using.
and it's as simple as just writing the humidity
and the temperature into two different CSV files and
that's it. And same thing for the outside. And
so you're probably thinking well, it's hard to get
it up on the dashboard. And, but, it's not.
Dashing makes this simple. Every thousand seconds I'm, I'm
opening up the, the CSV file and then sending
it to the dashboard.
And it's as simple as that. It's, you know.
Nothing too complicated.
And this is the, the Python code, but I'm
not gonna explain. It was, came with the scale,
so I didn't bother redoing it in Ruby. But
now that our scale's having issues I'm going to
work on a new solution with a RubyGem.
And the other thing we used is we used
Passenger. Just as for our server. We used a
couple LInux packagages for our, basically creating our wireless
access point. And the, a wireless, and DHCP server.
And that was it.
This is simple. And I think it's so simple
that anyone here can do it. Anyone who's been
doing Ruby on Rails for at least, least a
week, maybe two, like there's nothing to it. And
I want you all here to go out and
do stuff like this.
Because I think we're all amazing, and we, we
sometimes, we sometimes get this sense in our head
that, you know, we, we have all these problems
and we're living in this kind of ivory tower
that isn't really representative of, you know, the rest
of the, rest of the country. Like, we're kind
of the silk on valet mindset. It's like oh,
I gotta get my queuing speed down from point
six milliseconds to point five eight milliseconds, or I
have to, I have to get my tests to
run faster. Make DHH happy.
Or, you know, we have all these issues, but
you know the vast majority of people, like I
work in the, in a university, and I see
every day people emailing spreadsheets back and forth. They
email text files back and forth. And like all
these solutions that are just horrible. And really educators
they need our help. And they need us to
get involved in projects like this.
And it's super easy to get involved in these
kind of things. Like, I, I'm involved in three
projects right now and all of them I got
involved with just by going to see a Professor
talk and then after his talk or her talk
I, you know, I just asked them questions.
Cause, you know, professors, professors have bigger egos than
we do, as, as developers. They love to talk
about themselves. They do. And they love to talk
about their research. Like even more than we like
to talk about our code.
And so I know, I know you're thinking Sean
you dirty Canadian socialist, you know, like. Why, why
should I do this, you know? I don't want
to give my time for free. And I guess
like the simplest reason is, is I run a
Ruby meetup group, and one of the first questions
I'm, I'm generally asked my new people is, you
know, how can I get involved in opensource? Like,
like, cause, it, opensource seems like this, this goal
that you want. But you just don't know how
to get to, if you're new.
And And, you know, doing projects that like, projects
like this, it really is a, is an easy
gateway into opensource, and to, and to, you know,
getting opensource credentials on your, on your resume and
on your github. Because, you know, like it or
not, when we do apply for jobs, they do
look at what we do in the opensource community.
And can't really see this, but this is one
of the, the extra benefits of, of doing a
project like this, is, is all the puns. And
it's like, you know, you can't really see these
but I gave this talk last week and every
one of these are bee puns, like, hey, buzz
off pal! You know. Sean has a tendency to
wax on, and, what's the buzz about, and ooh
it's gonna be sweet. It's the bee's knees!
And so, so if this is the kind of
thing that interests you and, and you might want
to go out and get involved in, I'd really
like you to check out Ruby for Good, and
it's a conference we're gonna be putting on in
the Washington, DC area. The first to third of
August. We're gonna be staying in the Dorms at
the University. We're gonna hack on opensource social good
projects.
It's gonna be 72 people. We're aiming for $200
or less, and that's all inclusive of your lodging,
your food, everything. You just have to get their.
You're welcome to come a day early for no
extra cost and we're gonna probably do something fun
the day before. Maybe go do a nighttime tour
of the DC monuments or something. Not quite sure.
And, and also maybe to make it more appealing
for your work, we're gonna hold, we're gonna have
some training sessions on the second day. We have
one of the guys from the RSpec core team
coming out, gonna give a workshop on RSpec. We
have a guy giving a workshop on Angular. And
another one of the JSON API committers doing a
workshop on creating APIs.
And that's my talk in a nutshell. Thank you
so much for your time and are there any
questions?