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?