WEBVTT 00:00:16.780 --> 00:00:18.840 SEAN MARCIA:Hi. My name is Sean Marcia. 00:00:18.840 --> 00:00:21.260 I am gonna be talking about saving the world 00:00:21.260 --> 00:00:24.060 with Ruby on Rails. And that's me on the Twitters. 00:00:24.060 --> 00:00:25.400 At seanmarcia. In case you're wondering, 00:00:25.400 --> 00:00:27.220 I'm an early adopter. That's how I was 00:00:27.220 --> 00:00:29.100 able to get my own name. 00:00:29.100 --> 00:00:33.630 I thought was funny. 00:00:33.640 --> 00:00:35.820 So I, I work at George Mason University as 00:00:35.820 --> 00:00:37.530 a software developer, and I'd like to thank them 00:00:37.530 --> 00:00:40.320 for giving me this opportunity to be here and 00:00:40.320 --> 00:00:43.220 do this kind of cool stuff. Thank all of 00:00:43.220 --> 00:00:45.540 you and thanks to my Ruby group for letting 00:00:45.540 --> 00:00:48.160 me practice this talk on them last week. 00:00:48.180 --> 00:00:50.910 So today I'm gonna be talking about the, the 00:00:50.910 --> 00:00:53.559 history of the project. Then I'm gonna talk about 00:00:53.560 --> 00:00:55.921 the technology we use. And then I'm gonna hopefully 00:00:55.921 --> 00:00:58.010 tell you how you guys can all get involved. 00:00:58.010 --> 00:00:59.959 So, but really, I'm just gonna tell you a 00:00:59.960 --> 00:01:03.671 story about bees. And my personal story with bees 00:01:03.680 --> 00:01:06.230 began when I was about six years old, and 00:01:06.240 --> 00:01:09.850 for reference, that's me at six. Yeah. Looks like 00:01:09.850 --> 00:01:12.420 an orange on a toothpick. 00:01:12.420 --> 00:01:14.800 But, but when I was six, my, my good 00:01:14.820 --> 00:01:16.690 friend and I, we were, we were out, we 00:01:16.690 --> 00:01:19.550 were wandering around, and we found a wild beehive. 00:01:19.550 --> 00:01:21.160 And, if you know six year old boys, you 00:01:21.160 --> 00:01:23.230 can probably guess what we did next. We started 00:01:23.230 --> 00:01:24.580 throwing rocks at it. 00:01:24.580 --> 00:01:26.570 And, you know, my good friend, he just took 00:01:26.580 --> 00:01:28.580 off running, and I didn't know why, and it 00:01:28.580 --> 00:01:30.360 wasn't fun to throw rocks at the beehive without 00:01:30.360 --> 00:01:31.930 him. And it turns out that the bees stung 00:01:31.930 --> 00:01:34.970 him twenty, thirty times. And they didn't sting me, 00:01:34.980 --> 00:01:36.970 so. I kind of feel I have this karmic 00:01:36.970 --> 00:01:39.600 debt to the bees for leaving me alone. 00:01:39.620 --> 00:01:41.600 And so, you know let's jump forward to today. 00:01:41.600 --> 00:01:44.910 And like I said, I'm a software developer at 00:01:44.920 --> 00:01:47.670 George Mason University. I was wandering across campus one 00:01:47.670 --> 00:01:49.789 day and I saw this guy was giving a 00:01:49.789 --> 00:01:52.791 talk. This is Herman Pria, and he was giving 00:01:52.800 --> 00:01:56.050 a talk about Amazonian stingerless bees, and the honey 00:01:56.060 --> 00:01:56.939 they collect. 00:01:56.940 --> 00:01:59.491 And, you know, as a developer, I'm really in 00:01:59.491 --> 00:02:00.780 it for the swag, and since he was giving 00:02:00.780 --> 00:02:03.649 honey samples of these bees, that's why I went. 00:02:03.660 --> 00:02:05.471 And so, I was listening to his talk, and 00:02:05.471 --> 00:02:06.980 actually he told me what kind of animal that 00:02:06.980 --> 00:02:09.280 is and I don't remember right now. But I'll 00:02:09.280 --> 00:02:11.920 find out, because it's something interesting. 00:02:11.920 --> 00:02:13.940 But, so I was listening to his talk, and 00:02:13.940 --> 00:02:16.440 after the talk I went to, to talk to 00:02:16.440 --> 00:02:19.680 Herman and, turns out he's doing all this really 00:02:19.680 --> 00:02:22.030 interesting stuff about bees. And you know, bees are 00:02:22.040 --> 00:02:24.590 fascinating. If you don't know anything about them, like, 00:02:24.590 --> 00:02:27.250 you know, there's 4,000 different varieties of bees in 00:02:27.250 --> 00:02:30.000 North America. If you guys didn't know that. 00:02:30.000 --> 00:02:35.070 They're responsible for 90% of the wild, wild plants, 00:02:35.080 --> 00:02:40.150 and they're crazy hard workers. You know, one bee, 00:02:40.160 --> 00:02:42.739 in its lifetime, is gonna gather 1/12th of a 00:02:42.740 --> 00:02:45.180 teaspoon of honey. And that's all it's gonna do. 00:02:45.200 --> 00:02:47.560 But it's gonna visit like, 50,000 flowers to do 00:02:47.560 --> 00:02:48.739 that. 00:02:48.740 --> 00:02:52.990 60-70% of all our food is because of bees. 00:02:52.990 --> 00:02:55.821 Like, from the pollination they do, or they pollinate 00:02:55.821 --> 00:02:58.330 the food that our food eats. 00:02:58.340 --> 00:03:01.390 But, the really crappy thing is, the bees are 00:03:01.390 --> 00:03:05.699 dying. And they're disappearing. And we don't know why. 00:03:05.700 --> 00:03:08.901 And this is actually starting to become big news 00:03:08.901 --> 00:03:11.449 and people are starting to cover it. Just last 00:03:11.449 --> 00:03:14.281 fall, Time Magazine ran an article about, you know, 00:03:14.300 --> 00:03:16.200 a world without bees and what the consequences are 00:03:16.200 --> 00:03:19.599 if we don't start doing something, and, which directly 00:03:19.600 --> 00:03:24.740 leads to what Herman is doing. He's researching this 00:03:24.740 --> 00:03:26.710 thing called Colony Collapse Disorder. 00:03:26.710 --> 00:03:28.791 And if you're not familiar with Colony Collapse Disorder, 00:03:28.800 --> 00:03:31.510 basically what it is, is like, beehives and bee 00:03:31.510 --> 00:03:34.460 colonies will suddenly just collapse and disappear. And for 00:03:34.460 --> 00:03:38.450 no rhyme or reason. And it's, it's serious. Like, 00:03:38.450 --> 00:03:40.410 for managed beehives, like that's beehives where there's like 00:03:40.420 --> 00:03:43.670 a beekeeper watching them, about 35% of them have 00:03:43.680 --> 00:03:45.869 just died out and vanished. 00:03:45.869 --> 00:03:48.530 For wild bees, it's much, much worse. In some 00:03:48.530 --> 00:03:51.191 areas of the country, 90% of the wild bees 00:03:51.200 --> 00:03:56.109 are just gone. Like, Virginia, where I'm from, it's 00:03:56.109 --> 00:03:58.471 about two-thirds. And it, like it's not just our 00:03:58.480 --> 00:04:00.900 problem either. Like, it's happening in Europe. Like, they're 00:04:00.900 --> 00:04:04.320 predicting in England, by 2018, all the bees are 00:04:04.320 --> 00:04:08.680 gonna be gone. And that's, that's really serious. 00:04:08.680 --> 00:04:14.549 Asia, same, same situation. India, India, it's particularly scary, 00:04:14.560 --> 00:04:17.399 because in India, 90% of the pollination of honey 00:04:17.440 --> 00:04:20.901 comes from a wild bee that they can't domesticate, 00:04:20.901 --> 00:04:22.460 and as, like, as we know, it hits these 00:04:22.460 --> 00:04:25.680 wild bees harder. So if those bees get hit, 00:04:25.680 --> 00:04:27.620 India's gonna be devastated. 00:04:27.620 --> 00:04:30.310 And so, you know, some of the, some of 00:04:30.310 --> 00:04:33.830 the theories about what's causing Colony Collapse Disorder, maybe 00:04:33.830 --> 00:04:36.880 it's pesticides. Maybe it's these two variety of mites 00:04:36.880 --> 00:04:39.660 that the bees for some reason can't, can't clean 00:04:39.660 --> 00:04:43.930 from themselves. Could be disease. Genetic factors. Like, we 00:04:43.940 --> 00:04:45.850 just don't know. And it could be a combination 00:04:45.850 --> 00:04:47.120 of any of these. 00:04:47.120 --> 00:04:49.090 I have one of my own theories up there 00:04:49.100 --> 00:04:52.420 that, unfortunately, isn't gaining any traction in the beekeeping 00:04:52.420 --> 00:04:55.200 community. But, I'll let you guys try and figure 00:04:55.200 --> 00:04:57.600 out which one it is. 00:04:57.600 --> 00:05:00.310 And so, hearing all this from Herman, it's like, 00:05:00.320 --> 00:05:03.510 hey, what can I do to help? And, and, 00:05:03.510 --> 00:05:05.580 you know, Herman didn't, doesn't have any technical skills, 00:05:05.580 --> 00:05:07.410 and, and so, but he told me, hey, I 00:05:07.410 --> 00:05:09.900 already have some beehives at George Mason, and it 00:05:09.900 --> 00:05:11.800 turns out they're up on top of a parking 00:05:11.800 --> 00:05:13.690 garage, like. 00:05:13.700 --> 00:05:16.190 And so up, five stories up, you can see 00:05:16.190 --> 00:05:19.940 the top of another building nearby, and Herman said, 00:05:19.940 --> 00:05:22.479 you know, he would love insight into these things. 00:05:22.500 --> 00:05:25.891 Like, the hive temperature, because bees keep the temperature 00:05:25.900 --> 00:05:28.190 in the hive constant, year round. Doesn't matter if 00:05:28.190 --> 00:05:30.650 it's the middle of summer or middle of winter. 00:05:30.650 --> 00:05:33.040 And, actually just in the last, last couple of 00:05:33.040 --> 00:05:34.619 years, they found out that, you know, when they 00:05:34.620 --> 00:05:37.421 pull these combs out of the beehive, and there's 00:05:37.421 --> 00:05:39.670 the little holes in them, they always assume that 00:05:39.670 --> 00:05:41.210 the bees hadn't gotten around to filling them with 00:05:41.240 --> 00:05:41.800 honey. 00:05:41.800 --> 00:05:43.690 But what they've learned is there's a special drone 00:05:43.690 --> 00:05:46.080 bee that breaks its wings off and crawls into 00:05:46.080 --> 00:05:48.900 those holes and just vibrates all day long to 00:05:48.900 --> 00:05:54.320 generate heat. I guess that's a life. 00:05:54.320 --> 00:05:56.700 But, so, and he also wanted hive weight, just 00:05:56.700 --> 00:05:58.700 sort of to see the weight of the hive 00:05:58.700 --> 00:06:01.499 changing over time. And then he wanted the outside 00:06:01.500 --> 00:06:04.451 humidity and temperature just kind of as control, cause, 00:06:04.460 --> 00:06:06.580 like, perhaps there'd be a week of really bad 00:06:06.580 --> 00:06:09.169 weather, and so, like, that's why the weight wouldn't 00:06:09.169 --> 00:06:11.761 go up. They'd be eating their stores. 00:06:11.780 --> 00:06:17.828 And so, I was like, OK, so it, again, 00:06:17.828 --> 00:06:20.811 looking at, at the situation, well, you know, the, 00:06:20.811 --> 00:06:22.450 immediately, you know, we see there's some issues with 00:06:22.450 --> 00:06:25.030 this. You know, like, it's open to the elements. 00:06:25.030 --> 00:06:27.630 We don't have any power. Our budget was really 00:06:27.630 --> 00:06:30.070 small. And we needed something that was really easy 00:06:30.100 --> 00:06:32.540 to repair and maintain because most of the people 00:06:32.540 --> 00:06:34.059 aren't very technical. 00:06:34.060 --> 00:06:35.951 And so the first thing we handled was the 00:06:35.960 --> 00:06:39.090 no power, like this was the low-hanging fruit, and 00:06:39.090 --> 00:06:43.529 we did that simply by, by some solar panels, 00:06:43.529 --> 00:06:46.661 a deep cell battery, and we had some off-grid 00:06:46.661 --> 00:06:49.540 power. And we found that our solar panels and 00:06:49.540 --> 00:06:52.340 battery could power our system for about seven to 00:06:52.360 --> 00:06:54.880 nine days, when there wasn't any sun. And so 00:06:54.880 --> 00:06:56.190 as long as we had sun at least once 00:06:56.190 --> 00:06:59.510 a week, we were, we were good to go. 00:06:59.510 --> 00:07:01.160 So the next thing was we had a limited 00:07:01.160 --> 00:07:04.049 budget. And I, I think we started with less 00:07:04.049 --> 00:07:06.581 than $200 or about $200, and this is how 00:07:06.581 --> 00:07:08.880 things broke down, and, and why, you know, we 00:07:08.880 --> 00:07:10.740 used Raspberry Pis cause we got the first three 00:07:10.740 --> 00:07:13.490 free. Got a bunch of Raspberry Pi devices. You 00:07:13.500 --> 00:07:16.350 know, some SD cards, cables, like, who doesn't have 00:07:16.350 --> 00:07:18.440 a bunch of cables in their closet. 00:07:18.440 --> 00:07:21.020 And you see the solar setup there was about 00:07:21.040 --> 00:07:23.029 $140. That was about the bulk of our initial 00:07:23.029 --> 00:07:25.601 costs. And you know, what I brought to the 00:07:25.601 --> 00:07:29.310 table was this MacGiver-like ability to figure out solutions 00:07:29.310 --> 00:07:32.609 to problems. And, you know, like in the, an 00:07:32.620 --> 00:07:36.391 example of that is, when we built out, when 00:07:36.400 --> 00:07:38.430 we put in our first temperature probe, we needed 00:07:38.430 --> 00:07:41.119 to protect that probe somehow. And so, which led 00:07:41.120 --> 00:07:43.261 me to, you know, to quickly come up with 00:07:43.261 --> 00:07:43.760 a solution. 00:07:43.760 --> 00:07:47.299 I ran to Student Health services, asked them if 00:07:47.300 --> 00:07:49.531 I could get some condoms from them to cover 00:07:49.540 --> 00:07:52.580 the probe, and they didn't even flinch. They handed 00:07:52.580 --> 00:07:54.219 over a bunch of condoms. 00:07:54.220 --> 00:07:56.451 But it really made me realize that these, these 00:07:56.460 --> 00:07:59.360 people in Campus Health Services have seen everything, because 00:07:59.360 --> 00:08:00.690 when I walked in there, I was kind of 00:08:00.690 --> 00:08:02.469 dirty, cause I was outside working, and I was 00:08:02.469 --> 00:08:06.851 carrying duct tape and rope. And, and they didn't 00:08:06.860 --> 00:08:09.670 even flinch. They just handed over a handful of 00:08:09.670 --> 00:08:11.210 condoms, so. 00:08:11.210 --> 00:08:15.640 So, like, this wasn't perfect. But we had a 00:08:15.660 --> 00:08:17.170 start. And I plugged in Twitter so we could 00:08:17.170 --> 00:08:19.199 get, you know, social media going, and some Tweets 00:08:19.200 --> 00:08:22.510 from the beehive. And so our, our initial results 00:08:22.520 --> 00:08:28.481 were, we had a Tweeting beehive. In the picture 00:08:28.481 --> 00:08:30.100 you can't really see, and it's Tweeting hey, it's 00:08:30.100 --> 00:08:32.010 78 degrees in the hive. And the little picture 00:08:32.010 --> 00:08:33.539 of the bee yard. 00:08:33.539 --> 00:08:37.200 And, and we're going. And one of the interesting 00:08:37.200 --> 00:08:42.101 things is once you're out on social media, people, 00:08:42.101 --> 00:08:43.370 I guess, they assume you know a lot about 00:08:43.380 --> 00:08:45.549 bees and they start contacting you. And one of 00:08:45.549 --> 00:08:47.611 the people to contact us, send us a direct 00:08:47.620 --> 00:08:48.870 message, was just like, hey, how do I get 00:08:48.870 --> 00:08:51.600 my dog to stop eating bees? 00:08:51.600 --> 00:08:54.260 You'd think eating the bees would probably be enough 00:08:54.260 --> 00:08:58.330 of a lesson. But, but you know, I, I, 00:08:58.360 --> 00:08:59.970 I Googled, and it turns out lots of dogs 00:08:59.970 --> 00:09:03.800 like to eat bees, and you know, little dogs, 00:09:03.800 --> 00:09:09.560 medium-sized dogs. And even big dogs. 00:09:09.560 --> 00:09:14.310 So, so before I go any further, who's, who's 00:09:14.310 --> 00:09:15.150 familiar with this acronym? 00:09:15.150 --> 00:09:19.420 OK. Some of the people here. This is something 00:09:19.420 --> 00:09:22.700 started by Bryan Liles. Maybe five, six years ago. 00:09:22.700 --> 00:09:27.220 It means test all the fudging time. I always 00:09:27.220 --> 00:09:29.890 get stuck up on the f. But you know, 00:09:29.900 --> 00:09:33.210 no, no offense to Bryan, but he's wrong. 00:09:33.210 --> 00:09:36.739 Really, what it should mean is try awesome things, 00:09:36.740 --> 00:09:40.641 forget testing. Because, if you, because if you forget 00:09:40.641 --> 00:09:43.520 testing, you can get results like this. It's currently 00:09:43.520 --> 00:09:48.170 501 degrees in the hive. 00:09:48.180 --> 00:09:50.610 And you think, oh, why is that valuable? Well, 00:09:50.620 --> 00:09:54.210 it turns out that people, people find stuff like 00:09:54.210 --> 00:09:57.189 this amusing. And suddenly, and, and you can't read 00:09:57.189 --> 00:10:00.731 this, but suddenly we're getting reTweeted. City of Fairfax 00:10:00.760 --> 00:10:02.830 is Tweeting us. And people are asking us, are 00:10:02.830 --> 00:10:05.420 we raising fire bees? It, it, is the hive 00:10:05.420 --> 00:10:07.970 on fire? Are things OK? 00:10:07.970 --> 00:10:12.100 And, and, it's kind of amazing. Like, all these 00:10:12.100 --> 00:10:14.830 Tweeting and reTweets and people getting in on the 00:10:14.840 --> 00:10:19.590 joke suddenly, suddenly was our on Gundam style, just 00:10:19.590 --> 00:10:23.150 making, make everyone aware what we're doing. And it 00:10:23.150 --> 00:10:25.080 really made things happen fast. And it brought us 00:10:25.080 --> 00:10:28.900 into the attention of the SweetVirginia foundation. 00:10:28.900 --> 00:10:31.770 And what they are is they're a non-profit that 00:10:31.780 --> 00:10:35.970 teaches honey, honey bee education to, to students and 00:10:35.970 --> 00:10:38.330 adults. And, and they wanted to help. They didn't 00:10:38.360 --> 00:10:41.180 know we were raising bees at George Mason. And 00:10:41.200 --> 00:10:44.051 so they, they said, well, what can we do? 00:10:44.060 --> 00:10:46.060 We can offer you space. And Herman wanted to, 00:10:46.060 --> 00:10:50.470 to, to have a class of researchers, and we 00:10:50.470 --> 00:10:53.090 didn't have the equipment which was, you know, one 00:10:53.100 --> 00:10:55.620 of the biggest issues. 00:10:55.620 --> 00:10:58.769 And so, so what we did, is we started 00:10:58.769 --> 00:11:01.640 a crowd funding campaign, because it's gonna be about 00:11:01.640 --> 00:11:04.431 a thousand dollars per student. And we, we raised 00:11:04.440 --> 00:11:06.870 twelve thousand dollars, which was amazing, so we could 00:11:06.870 --> 00:11:09.530 have a class of twelve. And the, actually there 00:11:09.530 --> 00:11:10.910 was a waiting list of over a hundred students 00:11:10.910 --> 00:11:14.110 trying to take part in this research. 00:11:14.120 --> 00:11:16.759 But, so we had twelve, and then this, this 00:11:16.760 --> 00:11:21.801 kickstarter campaign, sorry, Indiegogo campaign, also was like, another 00:11:21.820 --> 00:11:26.050 big social media raising awareness for us, and so 00:11:26.050 --> 00:11:29.380 suddenly, suddenly again, you know, people are becoming aware, 00:11:29.380 --> 00:11:33.759 and bees just become crazy popular at, at George 00:11:33.760 --> 00:11:35.281 Mason University. 00:11:35.281 --> 00:11:38.310 And so the, the, one of the Fraternities is 00:11:38.320 --> 00:11:44.259 starting a Bee Global campaign. The magazine, the alumni 00:11:44.260 --> 00:11:46.811 magazine is all about bees. And this is the 00:11:46.820 --> 00:11:51.060 president of George Mason with Herman, there, and, the 00:11:51.060 --> 00:11:52.829 really amazing thing about the, you know, the president 00:11:52.829 --> 00:11:58.912 getting involved is suddenly we have a budget. 00:11:58.920 --> 00:12:00.550 And so now, now, which leads us into the 00:12:00.560 --> 00:12:03.779 technology and the interesting stuff. 00:12:03.780 --> 00:12:06.741 So, for anyone working with Raspberry Pi or is 00:12:06.741 --> 00:12:10.450 unfamiliar with the Raspberry Pi, that's what this is. 00:12:10.450 --> 00:12:13.650 It's a credit-card sized computer. Like, this is an 00:12:13.650 --> 00:12:16.590 entire computer. And so I invite you to come 00:12:16.600 --> 00:12:18.860 up after and look at it and play with 00:12:18.860 --> 00:12:20.400 it. And if you want to come later, one 00:12:20.400 --> 00:12:22.790 of the evenings, I'm probably gonna be hacking on 00:12:22.790 --> 00:12:23.670 it and playing with it, and so I invite 00:12:23.680 --> 00:12:25.730 you to seek me out later. 00:12:25.730 --> 00:12:28.280 But if you are gonna work with Raspberry Pis, 00:12:28.280 --> 00:12:31.080 some advice I'd give you is to, is to 00:12:31.080 --> 00:12:33.900 backup your card often. Like, take an image of 00:12:33.920 --> 00:12:36.450 it and don't, don't go the traditional dev-ops route, 00:12:36.450 --> 00:12:38.460 where you know you're gonna install everything on there. 00:12:38.460 --> 00:12:40.120 Cause if you've ever had to wait for, like, 00:12:40.120 --> 00:12:44.420 Nokogiri to compile on your computer, Nokogiri compiling on 00:12:44.420 --> 00:12:47.610 a Raspberry Pi is about sixty times as long. 00:12:47.610 --> 00:12:48.810 So it's better just to have an image and 00:12:48.820 --> 00:12:52.070 then, you know, copy that image. And, and buy 00:12:52.070 --> 00:12:54.889 a couple, because they're cheap. They're $30 computers that 00:12:54.889 --> 00:12:57.461 are full computers. 00:12:57.461 --> 00:13:00.090 So Raspberry Pis have these GPIO pins on them, 00:13:00.090 --> 00:13:02.749 which is general purpose input output, and it's the 00:13:02.760 --> 00:13:04.741 same kind of thing you have, if you've ever 00:13:04.760 --> 00:13:07.180 opened up a desktop computer and look, looked at 00:13:07.180 --> 00:13:09.970 how your hard drive plugs into the motherboard. 00:13:09.970 --> 00:13:11.440 It's the same kind of thing. And there's these 00:13:11.440 --> 00:13:14.509 pins, and to reference, this is with one of 00:13:14.509 --> 00:13:18.341 the sensors plugged into one of my Pis. You 00:13:18.341 --> 00:13:20.840 plug it in and you may see some tutorials 00:13:20.860 --> 00:13:22.589 online if you're gonna do some of the stuff 00:13:22.589 --> 00:13:26.390 that says, that says solder the wires right to 00:13:26.390 --> 00:13:28.971 your Pi. Don't do that. Because if your, if 00:13:28.980 --> 00:13:31.420 your Pi breaks or you don't know, it's easy 00:13:31.420 --> 00:13:33.579 just to swap it out, take the Pi, throw 00:13:33.580 --> 00:13:35.841 it away and plug it into the new one. 00:13:35.841 --> 00:13:37.790 Or, I guess maybe not throw it away, cause 00:13:37.790 --> 00:13:39.550 it might not be broke. 00:13:39.550 --> 00:13:41.080 And so if you're gonna be working with Pis, 00:13:41.080 --> 00:13:43.489 these are the three gems I'd recommend checking out. 00:13:43.520 --> 00:13:48.101 There's the gpio gem, you know. pi_piper and wiringpi-ruby. 00:13:48.101 --> 00:13:50.480 You know, I'm not gonna suggest which is best 00:13:50.480 --> 00:13:52.160 of the three, cause they're all amazing and it's, 00:13:52.160 --> 00:13:54.950 I guess it's my own, Sophie's choice. 00:13:54.950 --> 00:13:57.340 But, so, as to saving the world with Ruby 00:13:57.340 --> 00:14:02.019 and Rails, I lied. I'm actually using Ruby and 00:14:02.020 --> 00:14:05.101 Sinatra. So I guess if you want to get 00:14:05.101 --> 00:14:10.678 up and leave now, feel free. 00:14:10.680 --> 00:14:13.280 So I, I went with the dashing gem. Originally 00:14:13.280 --> 00:14:15.560 I was using, for creating a dashboard, I was 00:14:15.560 --> 00:14:18.310 using the dashing Rails, but I, I realized, I 00:14:18.320 --> 00:14:21.899 don't need all the, the complexity that Rails brings 00:14:21.900 --> 00:14:23.981 to the table. Especially since we wanted the solution 00:14:23.981 --> 00:14:27.490 that was simple for other beekeepers elsewhere to look 00:14:27.490 --> 00:14:28.970 at and to use. And, you know, we don't 00:14:28.970 --> 00:14:31.559 want to have to explain controllers and spitting out 00:14:31.580 --> 00:14:33.020 JSON and all these kind of, all this kind 00:14:33.020 --> 00:14:35.511 of stuff that they just, they don't need. 00:14:35.511 --> 00:14:38.030 And so, and so using, working with dashing is 00:14:38.030 --> 00:14:40.850 as simple as gem install dashing, and then dashing 00:14:40.850 --> 00:14:43.999 new. Much like using Rails. And if you are 00:14:44.000 --> 00:14:45.831 interesting in more about dashing, I suggest going to 00:14:45.840 --> 00:14:48.770 RubyNation where Carl, Derante and Chris Mar? are giving 00:14:48.770 --> 00:14:52.830 a talk on it, cause their talk is phenomenal. 00:14:52.840 --> 00:14:55.040 But after doing this, you have a dashboard that 00:14:55.060 --> 00:14:57.170 you can't see too well. But you can see 00:14:57.170 --> 00:14:59.460 there's, we're using the green and the gold cause 00:14:59.460 --> 00:15:02.460 that's George Mason's colors. But we have our internal 00:15:02.460 --> 00:15:07.300 temperature, external temperature, internal humidity and outside humidity. 00:15:07.300 --> 00:15:10.160 And if the numbers seem low for the temperature, 00:15:10.160 --> 00:15:13.980 that's cause we're using Celsius. We're, I guess, cause, 00:15:13.980 --> 00:15:16.670 we're not all on the imperial system. And that's 00:15:16.670 --> 00:15:20.610 the weight in kilograms. And, and what this is, 00:15:20.610 --> 00:15:25.549 is it's a, it's, it's being wirelessly served. So 00:15:25.549 --> 00:15:28.952 you walk up to the beehive, open up your 00:15:28.980 --> 00:15:31.980 laptop, connect to the beehive, and then navigate to 00:15:31.980 --> 00:15:34.340 beehive dot local and then this pops up and 00:15:34.340 --> 00:15:38.559 you can see the current statistics in the hive. 00:15:38.560 --> 00:15:39.991 And how did we do this? And we did 00:15:40.000 --> 00:15:45.040 this simply with a series of chron jobs. And, 00:15:45.040 --> 00:15:48.449 if you're unfamiliar with how chron works, you, you, 00:15:48.449 --> 00:15:50.341 the first one is running at zero and twelve 00:15:50.341 --> 00:15:53.429 hours, so midnight, noon. Second one's running at midnight, 00:15:53.429 --> 00:15:57.060 six AM, noon, six PM, and, and so forth. 00:15:57.080 --> 00:16:00.890 And, and that's it. Like, three, three simple scripts 00:16:00.890 --> 00:16:04.331 and it's gathering all our information. 00:16:04.340 --> 00:16:05.480 And this is an example of one of our 00:16:05.480 --> 00:16:09.500 scripts. So making a little, little, an instance of 00:16:09.500 --> 00:16:14.080 our sensor, defining a couple of directories and, if 00:16:14.080 --> 00:16:16.871 you see, directories are in the public, the public 00:16:16.880 --> 00:16:19.040 folder, and the reason, again is just to sort 00:16:19.040 --> 00:16:20.940 of keep it simple. If one of the researchers 00:16:20.940 --> 00:16:24.470 wants to, to get access to the CSE file 00:16:24.470 --> 00:16:26.420 when they're logged onto beehive dot local, they just 00:16:26.420 --> 00:16:29.310 type in inhumid dot csv and it downloads to 00:16:29.310 --> 00:16:32.509 their computer or their tablet or whatever they're using. 00:16:32.509 --> 00:16:35.391 and it's as simple as just writing the humidity 00:16:35.400 --> 00:16:39.179 and the temperature into two different CSV files and 00:16:39.180 --> 00:16:43.541 that's it. And same thing for the outside. And 00:16:43.560 --> 00:16:45.029 so you're probably thinking well, it's hard to get 00:16:45.029 --> 00:16:47.551 it up on the dashboard. And, but, it's not. 00:16:47.560 --> 00:16:50.970 Dashing makes this simple. Every thousand seconds I'm, I'm 00:16:50.970 --> 00:16:54.639 opening up the, the CSV file and then sending 00:16:54.640 --> 00:16:56.431 it to the dashboard. 00:16:56.440 --> 00:17:01.070 And it's as simple as that. It's, you know. 00:17:01.070 --> 00:17:03.340 Nothing too complicated. 00:17:03.340 --> 00:17:05.280 And this is the, the Python code, but I'm 00:17:05.280 --> 00:17:08.220 not gonna explain. It was, came with the scale, 00:17:08.220 --> 00:17:10.888 so I didn't bother redoing it in Ruby. But 00:17:10.888 --> 00:17:13.701 now that our scale's having issues I'm going to 00:17:13.701 --> 00:17:17.800 work on a new solution with a RubyGem. 00:17:17.800 --> 00:17:19.210 And the other thing we used is we used 00:17:19.210 --> 00:17:21.869 Passenger. Just as for our server. We used a 00:17:21.900 --> 00:17:24.900 couple LInux packagages for our, basically creating our wireless 00:17:24.900 --> 00:17:31.510 access point. And the, a wireless, and DHCP server. 00:17:31.510 --> 00:17:33.260 And that was it. 00:17:33.260 --> 00:17:35.400 This is simple. And I think it's so simple 00:17:35.400 --> 00:17:37.880 that anyone here can do it. Anyone who's been 00:17:37.880 --> 00:17:40.029 doing Ruby on Rails for at least, least a 00:17:40.029 --> 00:17:43.882 week, maybe two, like there's nothing to it. And 00:17:43.882 --> 00:17:46.450 I want you all here to go out and 00:17:46.450 --> 00:17:51.310 do stuff like this. 00:17:51.320 --> 00:17:54.210 Because I think we're all amazing, and we, we 00:17:54.240 --> 00:17:58.700 sometimes, we sometimes get this sense in our head 00:17:58.700 --> 00:18:01.460 that, you know, we, we have all these problems 00:18:01.460 --> 00:18:04.370 and we're living in this kind of ivory tower 00:18:04.370 --> 00:18:08.090 that isn't really representative of, you know, the rest 00:18:08.090 --> 00:18:10.519 of the, rest of the country. Like, we're kind 00:18:10.540 --> 00:18:12.290 of the silk on valet mindset. It's like oh, 00:18:12.290 --> 00:18:14.251 I gotta get my queuing speed down from point 00:18:14.260 --> 00:18:17.230 six milliseconds to point five eight milliseconds, or I 00:18:17.230 --> 00:18:19.230 have to, I have to get my tests to 00:18:19.240 --> 00:18:21.700 run faster. Make DHH happy. 00:18:21.700 --> 00:18:24.890 Or, you know, we have all these issues, but 00:18:24.890 --> 00:18:27.460 you know the vast majority of people, like I 00:18:27.460 --> 00:18:30.299 work in the, in a university, and I see 00:18:30.300 --> 00:18:33.141 every day people emailing spreadsheets back and forth. They 00:18:33.141 --> 00:18:35.870 email text files back and forth. And like all 00:18:35.870 --> 00:18:39.670 these solutions that are just horrible. And really educators 00:18:39.670 --> 00:18:41.750 they need our help. And they need us to 00:18:41.760 --> 00:18:45.200 get involved in projects like this. 00:18:45.200 --> 00:18:47.490 And it's super easy to get involved in these 00:18:47.490 --> 00:18:49.730 kind of things. Like, I, I'm involved in three 00:18:49.740 --> 00:18:51.750 projects right now and all of them I got 00:18:51.750 --> 00:18:54.380 involved with just by going to see a Professor 00:18:54.380 --> 00:18:57.759 talk and then after his talk or her talk 00:18:57.760 --> 00:19:00.520 I, you know, I just asked them questions. 00:19:00.520 --> 00:19:03.111 Cause, you know, professors, professors have bigger egos than 00:19:03.120 --> 00:19:05.890 we do, as, as developers. They love to talk 00:19:05.890 --> 00:19:09.040 about themselves. They do. And they love to talk 00:19:09.040 --> 00:19:10.630 about their research. Like even more than we like 00:19:10.640 --> 00:19:12.210 to talk about our code. 00:19:12.210 --> 00:19:15.360 And so I know, I know you're thinking Sean 00:19:15.360 --> 00:19:19.550 you dirty Canadian socialist, you know, like. Why, why 00:19:19.560 --> 00:19:22.820 should I do this, you know? I don't want 00:19:22.820 --> 00:19:24.760 to give my time for free. And I guess 00:19:24.760 --> 00:19:27.940 like the simplest reason is, is I run a 00:19:27.940 --> 00:19:30.300 Ruby meetup group, and one of the first questions 00:19:30.320 --> 00:19:33.320 I'm, I'm generally asked my new people is, you 00:19:33.320 --> 00:19:36.090 know, how can I get involved in opensource? Like, 00:19:36.090 --> 00:19:40.590 like, cause, it, opensource seems like this, this goal 00:19:40.590 --> 00:19:43.210 that you want. But you just don't know how 00:19:43.210 --> 00:19:47.610 to get to, if you're new. 00:19:47.640 --> 00:19:49.870 And And, you know, doing projects that like, projects 00:19:49.880 --> 00:19:52.069 like this, it really is a, is an easy 00:19:52.069 --> 00:19:57.001 gateway into opensource, and to, and to, you know, 00:19:57.001 --> 00:20:01.059 getting opensource credentials on your, on your resume and 00:20:01.060 --> 00:20:03.680 on your github. Because, you know, like it or 00:20:03.680 --> 00:20:05.560 not, when we do apply for jobs, they do 00:20:05.560 --> 00:20:10.740 look at what we do in the opensource community. 00:20:10.740 --> 00:20:16.940 And can't really see this, but this is one 00:20:16.940 --> 00:20:19.330 of the, the extra benefits of, of doing a 00:20:19.330 --> 00:20:24.720 project like this, is, is all the puns. And 00:20:24.740 --> 00:20:26.860 it's like, you know, you can't really see these 00:20:26.860 --> 00:20:29.430 but I gave this talk last week and every 00:20:29.430 --> 00:20:31.600 one of these are bee puns, like, hey, buzz 00:20:31.600 --> 00:20:33.970 off pal! You know. Sean has a tendency to 00:20:33.970 --> 00:20:37.080 wax on, and, what's the buzz about, and ooh 00:20:37.080 --> 00:20:40.990 it's gonna be sweet. It's the bee's knees! 00:20:41.000 --> 00:20:42.980 And so, so if this is the kind of 00:20:42.980 --> 00:20:46.190 thing that interests you and, and you might want 00:20:46.190 --> 00:20:48.690 to go out and get involved in, I'd really 00:20:48.700 --> 00:20:52.130 like you to check out Ruby for Good, and 00:20:52.130 --> 00:20:54.040 it's a conference we're gonna be putting on in 00:20:54.040 --> 00:20:57.840 the Washington, DC area. The first to third of 00:20:57.840 --> 00:20:59.360 August. We're gonna be staying in the Dorms at 00:20:59.360 --> 00:21:03.060 the University. We're gonna hack on opensource social good 00:21:03.060 --> 00:21:04.800 projects. 00:21:04.800 --> 00:21:08.330 It's gonna be 72 people. We're aiming for $200 00:21:08.340 --> 00:21:11.690 or less, and that's all inclusive of your lodging, 00:21:11.690 --> 00:21:14.000 your food, everything. You just have to get their. 00:21:14.000 --> 00:21:16.170 You're welcome to come a day early for no 00:21:16.180 --> 00:21:18.250 extra cost and we're gonna probably do something fun 00:21:18.250 --> 00:21:20.820 the day before. Maybe go do a nighttime tour 00:21:20.820 --> 00:21:24.490 of the DC monuments or something. Not quite sure. 00:21:24.500 --> 00:21:26.490 And, and also maybe to make it more appealing 00:21:26.490 --> 00:21:28.029 for your work, we're gonna hold, we're gonna have 00:21:28.040 --> 00:21:30.400 some training sessions on the second day. We have 00:21:30.400 --> 00:21:31.900 one of the guys from the RSpec core team 00:21:31.900 --> 00:21:35.421 coming out, gonna give a workshop on RSpec. We 00:21:35.421 --> 00:21:37.560 have a guy giving a workshop on Angular. And 00:21:37.560 --> 00:21:40.440 another one of the JSON API committers doing a 00:21:40.440 --> 00:21:43.340 workshop on creating APIs. 00:21:43.340 --> 00:21:47.560 And that's my talk in a nutshell. Thank you 00:21:47.560 --> 00:21:49.180 so much for your time and are there any 00:21:49.180 --> 00:22:00.000 questions?