1 00:00:16,780 --> 00:00:18,840 SEAN MARCIA:Hi. My name is Sean Marcia. 2 00:00:18,840 --> 00:00:21,260 I am gonna be talking about saving the world 3 00:00:21,260 --> 00:00:24,060 with Ruby on Rails. And that's me on the Twitters. 4 00:00:24,060 --> 00:00:25,400 At seanmarcia. In case you're wondering, 5 00:00:25,400 --> 00:00:27,220 I'm an early adopter. That's how I was 6 00:00:27,220 --> 00:00:29,100 able to get my own name. 7 00:00:29,100 --> 00:00:33,630 I thought was funny. 8 00:00:33,640 --> 00:00:35,820 So I, I work at George Mason University as 9 00:00:35,820 --> 00:00:37,530 a software developer, and I'd like to thank them 10 00:00:37,530 --> 00:00:40,320 for giving me this opportunity to be here and 11 00:00:40,320 --> 00:00:43,220 do this kind of cool stuff. Thank all of 12 00:00:43,220 --> 00:00:45,540 you and thanks to my Ruby group for letting 13 00:00:45,540 --> 00:00:48,160 me practice this talk on them last week. 14 00:00:48,180 --> 00:00:50,910 So today I'm gonna be talking about the, the 15 00:00:50,910 --> 00:00:53,559 history of the project. Then I'm gonna talk about 16 00:00:53,560 --> 00:00:55,921 the technology we use. And then I'm gonna hopefully 17 00:00:55,921 --> 00:00:58,010 tell you how you guys can all get involved. 18 00:00:58,010 --> 00:00:59,959 So, but really, I'm just gonna tell you a 19 00:00:59,960 --> 00:01:03,671 story about bees. And my personal story with bees 20 00:01:03,680 --> 00:01:06,230 began when I was about six years old, and 21 00:01:06,240 --> 00:01:09,850 for reference, that's me at six. Yeah. Looks like 22 00:01:09,850 --> 00:01:12,420 an orange on a toothpick. 23 00:01:12,420 --> 00:01:14,800 But, but when I was six, my, my good 24 00:01:14,820 --> 00:01:16,690 friend and I, we were, we were out, we 25 00:01:16,690 --> 00:01:19,550 were wandering around, and we found a wild beehive. 26 00:01:19,550 --> 00:01:21,160 And, if you know six year old boys, you 27 00:01:21,160 --> 00:01:23,230 can probably guess what we did next. We started 28 00:01:23,230 --> 00:01:24,580 throwing rocks at it. 29 00:01:24,580 --> 00:01:26,570 And, you know, my good friend, he just took 30 00:01:26,580 --> 00:01:28,580 off running, and I didn't know why, and it 31 00:01:28,580 --> 00:01:30,360 wasn't fun to throw rocks at the beehive without 32 00:01:30,360 --> 00:01:31,930 him. And it turns out that the bees stung 33 00:01:31,930 --> 00:01:34,970 him twenty, thirty times. And they didn't sting me, 34 00:01:34,980 --> 00:01:36,970 so. I kind of feel I have this karmic 35 00:01:36,970 --> 00:01:39,600 debt to the bees for leaving me alone. 36 00:01:39,620 --> 00:01:41,600 And so, you know let's jump forward to today. 37 00:01:41,600 --> 00:01:44,910 And like I said, I'm a software developer at 38 00:01:44,920 --> 00:01:47,670 George Mason University. I was wandering across campus one 39 00:01:47,670 --> 00:01:49,789 day and I saw this guy was giving a 40 00:01:49,789 --> 00:01:52,791 talk. This is Herman Pria, and he was giving 41 00:01:52,800 --> 00:01:56,050 a talk about Amazonian stingerless bees, and the honey 42 00:01:56,060 --> 00:01:56,939 they collect. 43 00:01:56,940 --> 00:01:59,491 And, you know, as a developer, I'm really in 44 00:01:59,491 --> 00:02:00,780 it for the swag, and since he was giving 45 00:02:00,780 --> 00:02:03,649 honey samples of these bees, that's why I went. 46 00:02:03,660 --> 00:02:05,471 And so, I was listening to his talk, and 47 00:02:05,471 --> 00:02:06,980 actually he told me what kind of animal that 48 00:02:06,980 --> 00:02:09,280 is and I don't remember right now. But I'll 49 00:02:09,280 --> 00:02:11,920 find out, because it's something interesting. 50 00:02:11,920 --> 00:02:13,940 But, so I was listening to his talk, and 51 00:02:13,940 --> 00:02:16,440 after the talk I went to, to talk to 52 00:02:16,440 --> 00:02:19,680 Herman and, turns out he's doing all this really 53 00:02:19,680 --> 00:02:22,030 interesting stuff about bees. And you know, bees are 54 00:02:22,040 --> 00:02:24,590 fascinating. If you don't know anything about them, like, 55 00:02:24,590 --> 00:02:27,250 you know, there's 4,000 different varieties of bees in 56 00:02:27,250 --> 00:02:30,000 North America. If you guys didn't know that. 57 00:02:30,000 --> 00:02:35,070 They're responsible for 90% of the wild, wild plants, 58 00:02:35,080 --> 00:02:40,150 and they're crazy hard workers. You know, one bee, 59 00:02:40,160 --> 00:02:42,739 in its lifetime, is gonna gather 1/12th of a 60 00:02:42,740 --> 00:02:45,180 teaspoon of honey. And that's all it's gonna do. 61 00:02:45,200 --> 00:02:47,560 But it's gonna visit like, 50,000 flowers to do 62 00:02:47,560 --> 00:02:48,739 that. 63 00:02:48,740 --> 00:02:52,990 60-70% of all our food is because of bees. 64 00:02:52,990 --> 00:02:55,821 Like, from the pollination they do, or they pollinate 65 00:02:55,821 --> 00:02:58,330 the food that our food eats. 66 00:02:58,340 --> 00:03:01,390 But, the really crappy thing is, the bees are 67 00:03:01,390 --> 00:03:05,699 dying. And they're disappearing. And we don't know why. 68 00:03:05,700 --> 00:03:08,901 And this is actually starting to become big news 69 00:03:08,901 --> 00:03:11,449 and people are starting to cover it. Just last 70 00:03:11,449 --> 00:03:14,281 fall, Time Magazine ran an article about, you know, 71 00:03:14,300 --> 00:03:16,200 a world without bees and what the consequences are 72 00:03:16,200 --> 00:03:19,599 if we don't start doing something, and, which directly 73 00:03:19,600 --> 00:03:24,740 leads to what Herman is doing. He's researching this 74 00:03:24,740 --> 00:03:26,710 thing called Colony Collapse Disorder. 75 00:03:26,710 --> 00:03:28,791 And if you're not familiar with Colony Collapse Disorder, 76 00:03:28,800 --> 00:03:31,510 basically what it is, is like, beehives and bee 77 00:03:31,510 --> 00:03:34,460 colonies will suddenly just collapse and disappear. And for 78 00:03:34,460 --> 00:03:38,450 no rhyme or reason. And it's, it's serious. Like, 79 00:03:38,450 --> 00:03:40,410 for managed beehives, like that's beehives where there's like 80 00:03:40,420 --> 00:03:43,670 a beekeeper watching them, about 35% of them have 81 00:03:43,680 --> 00:03:45,869 just died out and vanished. 82 00:03:45,869 --> 00:03:48,530 For wild bees, it's much, much worse. In some 83 00:03:48,530 --> 00:03:51,191 areas of the country, 90% of the wild bees 84 00:03:51,200 --> 00:03:56,109 are just gone. Like, Virginia, where I'm from, it's 85 00:03:56,109 --> 00:03:58,471 about two-thirds. And it, like it's not just our 86 00:03:58,480 --> 00:04:00,900 problem either. Like, it's happening in Europe. Like, they're 87 00:04:00,900 --> 00:04:04,320 predicting in England, by 2018, all the bees are 88 00:04:04,320 --> 00:04:08,680 gonna be gone. And that's, that's really serious. 89 00:04:08,680 --> 00:04:14,549 Asia, same, same situation. India, India, it's particularly scary, 90 00:04:14,560 --> 00:04:17,399 because in India, 90% of the pollination of honey 91 00:04:17,440 --> 00:04:20,901 comes from a wild bee that they can't domesticate, 92 00:04:20,901 --> 00:04:22,460 and as, like, as we know, it hits these 93 00:04:22,460 --> 00:04:25,680 wild bees harder. So if those bees get hit, 94 00:04:25,680 --> 00:04:27,620 India's gonna be devastated. 95 00:04:27,620 --> 00:04:30,310 And so, you know, some of the, some of 96 00:04:30,310 --> 00:04:33,830 the theories about what's causing Colony Collapse Disorder, maybe 97 00:04:33,830 --> 00:04:36,880 it's pesticides. Maybe it's these two variety of mites 98 00:04:36,880 --> 00:04:39,660 that the bees for some reason can't, can't clean 99 00:04:39,660 --> 00:04:43,930 from themselves. Could be disease. Genetic factors. Like, we 100 00:04:43,940 --> 00:04:45,850 just don't know. And it could be a combination 101 00:04:45,850 --> 00:04:47,120 of any of these. 102 00:04:47,120 --> 00:04:49,090 I have one of my own theories up there 103 00:04:49,100 --> 00:04:52,420 that, unfortunately, isn't gaining any traction in the beekeeping 104 00:04:52,420 --> 00:04:55,200 community. But, I'll let you guys try and figure 105 00:04:55,200 --> 00:04:57,600 out which one it is. 106 00:04:57,600 --> 00:05:00,310 And so, hearing all this from Herman, it's like, 107 00:05:00,320 --> 00:05:03,510 hey, what can I do to help? And, and, 108 00:05:03,510 --> 00:05:05,580 you know, Herman didn't, doesn't have any technical skills, 109 00:05:05,580 --> 00:05:07,410 and, and so, but he told me, hey, I 110 00:05:07,410 --> 00:05:09,900 already have some beehives at George Mason, and it 111 00:05:09,900 --> 00:05:11,800 turns out they're up on top of a parking 112 00:05:11,800 --> 00:05:13,690 garage, like. 113 00:05:13,700 --> 00:05:16,190 And so up, five stories up, you can see 114 00:05:16,190 --> 00:05:19,940 the top of another building nearby, and Herman said, 115 00:05:19,940 --> 00:05:22,479 you know, he would love insight into these things. 116 00:05:22,500 --> 00:05:25,891 Like, the hive temperature, because bees keep the temperature 117 00:05:25,900 --> 00:05:28,190 in the hive constant, year round. Doesn't matter if 118 00:05:28,190 --> 00:05:30,650 it's the middle of summer or middle of winter. 119 00:05:30,650 --> 00:05:33,040 And, actually just in the last, last couple of 120 00:05:33,040 --> 00:05:34,619 years, they found out that, you know, when they 121 00:05:34,620 --> 00:05:37,421 pull these combs out of the beehive, and there's 122 00:05:37,421 --> 00:05:39,670 the little holes in them, they always assume that 123 00:05:39,670 --> 00:05:41,210 the bees hadn't gotten around to filling them with 124 00:05:41,240 --> 00:05:41,800 honey. 125 00:05:41,800 --> 00:05:43,690 But what they've learned is there's a special drone 126 00:05:43,690 --> 00:05:46,080 bee that breaks its wings off and crawls into 127 00:05:46,080 --> 00:05:48,900 those holes and just vibrates all day long to 128 00:05:48,900 --> 00:05:54,320 generate heat. I guess that's a life. 129 00:05:54,320 --> 00:05:56,700 But, so, and he also wanted hive weight, just 130 00:05:56,700 --> 00:05:58,700 sort of to see the weight of the hive 131 00:05:58,700 --> 00:06:01,499 changing over time. And then he wanted the outside 132 00:06:01,500 --> 00:06:04,451 humidity and temperature just kind of as control, cause, 133 00:06:04,460 --> 00:06:06,580 like, perhaps there'd be a week of really bad 134 00:06:06,580 --> 00:06:09,169 weather, and so, like, that's why the weight wouldn't 135 00:06:09,169 --> 00:06:11,761 go up. They'd be eating their stores. 136 00:06:11,780 --> 00:06:17,828 And so, I was like, OK, so it, again, 137 00:06:17,828 --> 00:06:20,811 looking at, at the situation, well, you know, the, 138 00:06:20,811 --> 00:06:22,450 immediately, you know, we see there's some issues with 139 00:06:22,450 --> 00:06:25,030 this. You know, like, it's open to the elements. 140 00:06:25,030 --> 00:06:27,630 We don't have any power. Our budget was really 141 00:06:27,630 --> 00:06:30,070 small. And we needed something that was really easy 142 00:06:30,100 --> 00:06:32,540 to repair and maintain because most of the people 143 00:06:32,540 --> 00:06:34,059 aren't very technical. 144 00:06:34,060 --> 00:06:35,951 And so the first thing we handled was the 145 00:06:35,960 --> 00:06:39,090 no power, like this was the low-hanging fruit, and 146 00:06:39,090 --> 00:06:43,529 we did that simply by, by some solar panels, 147 00:06:43,529 --> 00:06:46,661 a deep cell battery, and we had some off-grid 148 00:06:46,661 --> 00:06:49,540 power. And we found that our solar panels and 149 00:06:49,540 --> 00:06:52,340 battery could power our system for about seven to 150 00:06:52,360 --> 00:06:54,880 nine days, when there wasn't any sun. And so 151 00:06:54,880 --> 00:06:56,190 as long as we had sun at least once 152 00:06:56,190 --> 00:06:59,510 a week, we were, we were good to go. 153 00:06:59,510 --> 00:07:01,160 So the next thing was we had a limited 154 00:07:01,160 --> 00:07:04,049 budget. And I, I think we started with less 155 00:07:04,049 --> 00:07:06,581 than $200 or about $200, and this is how 156 00:07:06,581 --> 00:07:08,880 things broke down, and, and why, you know, we 157 00:07:08,880 --> 00:07:10,740 used Raspberry Pis cause we got the first three 158 00:07:10,740 --> 00:07:13,490 free. Got a bunch of Raspberry Pi devices. You 159 00:07:13,500 --> 00:07:16,350 know, some SD cards, cables, like, who doesn't have 160 00:07:16,350 --> 00:07:18,440 a bunch of cables in their closet. 161 00:07:18,440 --> 00:07:21,020 And you see the solar setup there was about 162 00:07:21,040 --> 00:07:23,029 $140. That was about the bulk of our initial 163 00:07:23,029 --> 00:07:25,601 costs. And you know, what I brought to the 164 00:07:25,601 --> 00:07:29,310 table was this MacGiver-like ability to figure out solutions 165 00:07:29,310 --> 00:07:32,609 to problems. And, you know, like in the, an 166 00:07:32,620 --> 00:07:36,391 example of that is, when we built out, when 167 00:07:36,400 --> 00:07:38,430 we put in our first temperature probe, we needed 168 00:07:38,430 --> 00:07:41,119 to protect that probe somehow. And so, which led 169 00:07:41,120 --> 00:07:43,261 me to, you know, to quickly come up with 170 00:07:43,261 --> 00:07:43,760 a solution. 171 00:07:43,760 --> 00:07:47,299 I ran to Student Health services, asked them if 172 00:07:47,300 --> 00:07:49,531 I could get some condoms from them to cover 173 00:07:49,540 --> 00:07:52,580 the probe, and they didn't even flinch. They handed 174 00:07:52,580 --> 00:07:54,219 over a bunch of condoms. 175 00:07:54,220 --> 00:07:56,451 But it really made me realize that these, these 176 00:07:56,460 --> 00:07:59,360 people in Campus Health Services have seen everything, because 177 00:07:59,360 --> 00:08:00,690 when I walked in there, I was kind of 178 00:08:00,690 --> 00:08:02,469 dirty, cause I was outside working, and I was 179 00:08:02,469 --> 00:08:06,851 carrying duct tape and rope. And, and they didn't 180 00:08:06,860 --> 00:08:09,670 even flinch. They just handed over a handful of 181 00:08:09,670 --> 00:08:11,210 condoms, so. 182 00:08:11,210 --> 00:08:15,640 So, like, this wasn't perfect. But we had a 183 00:08:15,660 --> 00:08:17,170 start. And I plugged in Twitter so we could 184 00:08:17,170 --> 00:08:19,199 get, you know, social media going, and some Tweets 185 00:08:19,200 --> 00:08:22,510 from the beehive. And so our, our initial results 186 00:08:22,520 --> 00:08:28,481 were, we had a Tweeting beehive. In the picture 187 00:08:28,481 --> 00:08:30,100 you can't really see, and it's Tweeting hey, it's 188 00:08:30,100 --> 00:08:32,010 78 degrees in the hive. And the little picture 189 00:08:32,010 --> 00:08:33,539 of the bee yard. 190 00:08:33,539 --> 00:08:37,200 And, and we're going. And one of the interesting 191 00:08:37,200 --> 00:08:42,101 things is once you're out on social media, people, 192 00:08:42,101 --> 00:08:43,370 I guess, they assume you know a lot about 193 00:08:43,380 --> 00:08:45,549 bees and they start contacting you. And one of 194 00:08:45,549 --> 00:08:47,611 the people to contact us, send us a direct 195 00:08:47,620 --> 00:08:48,870 message, was just like, hey, how do I get 196 00:08:48,870 --> 00:08:51,600 my dog to stop eating bees? 197 00:08:51,600 --> 00:08:54,260 You'd think eating the bees would probably be enough 198 00:08:54,260 --> 00:08:58,330 of a lesson. But, but you know, I, I, 199 00:08:58,360 --> 00:08:59,970 I Googled, and it turns out lots of dogs 200 00:08:59,970 --> 00:09:03,800 like to eat bees, and you know, little dogs, 201 00:09:03,800 --> 00:09:09,560 medium-sized dogs. And even big dogs. 202 00:09:09,560 --> 00:09:14,310 So, so before I go any further, who's, who's 203 00:09:14,310 --> 00:09:15,150 familiar with this acronym? 204 00:09:15,150 --> 00:09:19,420 OK. Some of the people here. This is something 205 00:09:19,420 --> 00:09:22,700 started by Bryan Liles. Maybe five, six years ago. 206 00:09:22,700 --> 00:09:27,220 It means test all the fudging time. I always 207 00:09:27,220 --> 00:09:29,890 get stuck up on the f. But you know, 208 00:09:29,900 --> 00:09:33,210 no, no offense to Bryan, but he's wrong. 209 00:09:33,210 --> 00:09:36,739 Really, what it should mean is try awesome things, 210 00:09:36,740 --> 00:09:40,641 forget testing. Because, if you, because if you forget 211 00:09:40,641 --> 00:09:43,520 testing, you can get results like this. It's currently 212 00:09:43,520 --> 00:09:48,170 501 degrees in the hive. 213 00:09:48,180 --> 00:09:50,610 And you think, oh, why is that valuable? Well, 214 00:09:50,620 --> 00:09:54,210 it turns out that people, people find stuff like 215 00:09:54,210 --> 00:09:57,189 this amusing. And suddenly, and, and you can't read 216 00:09:57,189 --> 00:10:00,731 this, but suddenly we're getting reTweeted. City of Fairfax 217 00:10:00,760 --> 00:10:02,830 is Tweeting us. And people are asking us, are 218 00:10:02,830 --> 00:10:05,420 we raising fire bees? It, it, is the hive 219 00:10:05,420 --> 00:10:07,970 on fire? Are things OK? 220 00:10:07,970 --> 00:10:12,100 And, and, it's kind of amazing. Like, all these 221 00:10:12,100 --> 00:10:14,830 Tweeting and reTweets and people getting in on the 222 00:10:14,840 --> 00:10:19,590 joke suddenly, suddenly was our on Gundam style, just 223 00:10:19,590 --> 00:10:23,150 making, make everyone aware what we're doing. And it 224 00:10:23,150 --> 00:10:25,080 really made things happen fast. And it brought us 225 00:10:25,080 --> 00:10:28,900 into the attention of the SweetVirginia foundation. 226 00:10:28,900 --> 00:10:31,770 And what they are is they're a non-profit that 227 00:10:31,780 --> 00:10:35,970 teaches honey, honey bee education to, to students and 228 00:10:35,970 --> 00:10:38,330 adults. And, and they wanted to help. They didn't 229 00:10:38,360 --> 00:10:41,180 know we were raising bees at George Mason. And 230 00:10:41,200 --> 00:10:44,051 so they, they said, well, what can we do? 231 00:10:44,060 --> 00:10:46,060 We can offer you space. And Herman wanted to, 232 00:10:46,060 --> 00:10:50,470 to, to have a class of researchers, and we 233 00:10:50,470 --> 00:10:53,090 didn't have the equipment which was, you know, one 234 00:10:53,100 --> 00:10:55,620 of the biggest issues. 235 00:10:55,620 --> 00:10:58,769 And so, so what we did, is we started 236 00:10:58,769 --> 00:11:01,640 a crowd funding campaign, because it's gonna be about 237 00:11:01,640 --> 00:11:04,431 a thousand dollars per student. And we, we raised 238 00:11:04,440 --> 00:11:06,870 twelve thousand dollars, which was amazing, so we could 239 00:11:06,870 --> 00:11:09,530 have a class of twelve. And the, actually there 240 00:11:09,530 --> 00:11:10,910 was a waiting list of over a hundred students 241 00:11:10,910 --> 00:11:14,110 trying to take part in this research. 242 00:11:14,120 --> 00:11:16,759 But, so we had twelve, and then this, this 243 00:11:16,760 --> 00:11:21,801 kickstarter campaign, sorry, Indiegogo campaign, also was like, another 244 00:11:21,820 --> 00:11:26,050 big social media raising awareness for us, and so 245 00:11:26,050 --> 00:11:29,380 suddenly, suddenly again, you know, people are becoming aware, 246 00:11:29,380 --> 00:11:33,759 and bees just become crazy popular at, at George 247 00:11:33,760 --> 00:11:35,281 Mason University. 248 00:11:35,281 --> 00:11:38,310 And so the, the, one of the Fraternities is 249 00:11:38,320 --> 00:11:44,259 starting a Bee Global campaign. The magazine, the alumni 250 00:11:44,260 --> 00:11:46,811 magazine is all about bees. And this is the 251 00:11:46,820 --> 00:11:51,060 president of George Mason with Herman, there, and, the 252 00:11:51,060 --> 00:11:52,829 really amazing thing about the, you know, the president 253 00:11:52,829 --> 00:11:58,912 getting involved is suddenly we have a budget. 254 00:11:58,920 --> 00:12:00,550 And so now, now, which leads us into the 255 00:12:00,560 --> 00:12:03,779 technology and the interesting stuff. 256 00:12:03,780 --> 00:12:06,741 So, for anyone working with Raspberry Pi or is 257 00:12:06,741 --> 00:12:10,450 unfamiliar with the Raspberry Pi, that's what this is. 258 00:12:10,450 --> 00:12:13,650 It's a credit-card sized computer. Like, this is an 259 00:12:13,650 --> 00:12:16,590 entire computer. And so I invite you to come 260 00:12:16,600 --> 00:12:18,860 up after and look at it and play with 261 00:12:18,860 --> 00:12:20,400 it. And if you want to come later, one 262 00:12:20,400 --> 00:12:22,790 of the evenings, I'm probably gonna be hacking on 263 00:12:22,790 --> 00:12:23,670 it and playing with it, and so I invite 264 00:12:23,680 --> 00:12:25,730 you to seek me out later. 265 00:12:25,730 --> 00:12:28,280 But if you are gonna work with Raspberry Pis, 266 00:12:28,280 --> 00:12:31,080 some advice I'd give you is to, is to 267 00:12:31,080 --> 00:12:33,900 backup your card often. Like, take an image of 268 00:12:33,920 --> 00:12:36,450 it and don't, don't go the traditional dev-ops route, 269 00:12:36,450 --> 00:12:38,460 where you know you're gonna install everything on there. 270 00:12:38,460 --> 00:12:40,120 Cause if you've ever had to wait for, like, 271 00:12:40,120 --> 00:12:44,420 Nokogiri to compile on your computer, Nokogiri compiling on 272 00:12:44,420 --> 00:12:47,610 a Raspberry Pi is about sixty times as long. 273 00:12:47,610 --> 00:12:48,810 So it's better just to have an image and 274 00:12:48,820 --> 00:12:52,070 then, you know, copy that image. And, and buy 275 00:12:52,070 --> 00:12:54,889 a couple, because they're cheap. They're $30 computers that 276 00:12:54,889 --> 00:12:57,461 are full computers. 277 00:12:57,461 --> 00:13:00,090 So Raspberry Pis have these GPIO pins on them, 278 00:13:00,090 --> 00:13:02,749 which is general purpose input output, and it's the 279 00:13:02,760 --> 00:13:04,741 same kind of thing you have, if you've ever 280 00:13:04,760 --> 00:13:07,180 opened up a desktop computer and look, looked at 281 00:13:07,180 --> 00:13:09,970 how your hard drive plugs into the motherboard. 282 00:13:09,970 --> 00:13:11,440 It's the same kind of thing. And there's these 283 00:13:11,440 --> 00:13:14,509 pins, and to reference, this is with one of 284 00:13:14,509 --> 00:13:18,341 the sensors plugged into one of my Pis. You 285 00:13:18,341 --> 00:13:20,840 plug it in and you may see some tutorials 286 00:13:20,860 --> 00:13:22,589 online if you're gonna do some of the stuff 287 00:13:22,589 --> 00:13:26,390 that says, that says solder the wires right to 288 00:13:26,390 --> 00:13:28,971 your Pi. Don't do that. Because if your, if 289 00:13:28,980 --> 00:13:31,420 your Pi breaks or you don't know, it's easy 290 00:13:31,420 --> 00:13:33,579 just to swap it out, take the Pi, throw 291 00:13:33,580 --> 00:13:35,841 it away and plug it into the new one. 292 00:13:35,841 --> 00:13:37,790 Or, I guess maybe not throw it away, cause 293 00:13:37,790 --> 00:13:39,550 it might not be broke. 294 00:13:39,550 --> 00:13:41,080 And so if you're gonna be working with Pis, 295 00:13:41,080 --> 00:13:43,489 these are the three gems I'd recommend checking out. 296 00:13:43,520 --> 00:13:48,101 There's the gpio gem, you know. pi_piper and wiringpi-ruby. 297 00:13:48,101 --> 00:13:50,480 You know, I'm not gonna suggest which is best 298 00:13:50,480 --> 00:13:52,160 of the three, cause they're all amazing and it's, 299 00:13:52,160 --> 00:13:54,950 I guess it's my own, Sophie's choice. 300 00:13:54,950 --> 00:13:57,340 But, so, as to saving the world with Ruby 301 00:13:57,340 --> 00:14:02,019 and Rails, I lied. I'm actually using Ruby and 302 00:14:02,020 --> 00:14:05,101 Sinatra. So I guess if you want to get 303 00:14:05,101 --> 00:14:10,678 up and leave now, feel free. 304 00:14:10,680 --> 00:14:13,280 So I, I went with the dashing gem. Originally 305 00:14:13,280 --> 00:14:15,560 I was using, for creating a dashboard, I was 306 00:14:15,560 --> 00:14:18,310 using the dashing Rails, but I, I realized, I 307 00:14:18,320 --> 00:14:21,899 don't need all the, the complexity that Rails brings 308 00:14:21,900 --> 00:14:23,981 to the table. Especially since we wanted the solution 309 00:14:23,981 --> 00:14:27,490 that was simple for other beekeepers elsewhere to look 310 00:14:27,490 --> 00:14:28,970 at and to use. And, you know, we don't 311 00:14:28,970 --> 00:14:31,559 want to have to explain controllers and spitting out 312 00:14:31,580 --> 00:14:33,020 JSON and all these kind of, all this kind 313 00:14:33,020 --> 00:14:35,511 of stuff that they just, they don't need. 314 00:14:35,511 --> 00:14:38,030 And so, and so using, working with dashing is 315 00:14:38,030 --> 00:14:40,850 as simple as gem install dashing, and then dashing 316 00:14:40,850 --> 00:14:43,999 new. Much like using Rails. And if you are 317 00:14:44,000 --> 00:14:45,831 interesting in more about dashing, I suggest going to 318 00:14:45,840 --> 00:14:48,770 RubyNation where Carl, Derante and Chris Mar? are giving 319 00:14:48,770 --> 00:14:52,830 a talk on it, cause their talk is phenomenal. 320 00:14:52,840 --> 00:14:55,040 But after doing this, you have a dashboard that 321 00:14:55,060 --> 00:14:57,170 you can't see too well. But you can see 322 00:14:57,170 --> 00:14:59,460 there's, we're using the green and the gold cause 323 00:14:59,460 --> 00:15:02,460 that's George Mason's colors. But we have our internal 324 00:15:02,460 --> 00:15:07,300 temperature, external temperature, internal humidity and outside humidity. 325 00:15:07,300 --> 00:15:10,160 And if the numbers seem low for the temperature, 326 00:15:10,160 --> 00:15:13,980 that's cause we're using Celsius. We're, I guess, cause, 327 00:15:13,980 --> 00:15:16,670 we're not all on the imperial system. And that's 328 00:15:16,670 --> 00:15:20,610 the weight in kilograms. And, and what this is, 329 00:15:20,610 --> 00:15:25,549 is it's a, it's, it's being wirelessly served. So 330 00:15:25,549 --> 00:15:28,952 you walk up to the beehive, open up your 331 00:15:28,980 --> 00:15:31,980 laptop, connect to the beehive, and then navigate to 332 00:15:31,980 --> 00:15:34,340 beehive dot local and then this pops up and 333 00:15:34,340 --> 00:15:38,559 you can see the current statistics in the hive. 334 00:15:38,560 --> 00:15:39,991 And how did we do this? And we did 335 00:15:40,000 --> 00:15:45,040 this simply with a series of chron jobs. And, 336 00:15:45,040 --> 00:15:48,449 if you're unfamiliar with how chron works, you, you, 337 00:15:48,449 --> 00:15:50,341 the first one is running at zero and twelve 338 00:15:50,341 --> 00:15:53,429 hours, so midnight, noon. Second one's running at midnight, 339 00:15:53,429 --> 00:15:57,060 six AM, noon, six PM, and, and so forth. 340 00:15:57,080 --> 00:16:00,890 And, and that's it. Like, three, three simple scripts 341 00:16:00,890 --> 00:16:04,331 and it's gathering all our information. 342 00:16:04,340 --> 00:16:05,480 And this is an example of one of our 343 00:16:05,480 --> 00:16:09,500 scripts. So making a little, little, an instance of 344 00:16:09,500 --> 00:16:14,080 our sensor, defining a couple of directories and, if 345 00:16:14,080 --> 00:16:16,871 you see, directories are in the public, the public 346 00:16:16,880 --> 00:16:19,040 folder, and the reason, again is just to sort 347 00:16:19,040 --> 00:16:20,940 of keep it simple. If one of the researchers 348 00:16:20,940 --> 00:16:24,470 wants to, to get access to the CSE file 349 00:16:24,470 --> 00:16:26,420 when they're logged onto beehive dot local, they just 350 00:16:26,420 --> 00:16:29,310 type in inhumid dot csv and it downloads to 351 00:16:29,310 --> 00:16:32,509 their computer or their tablet or whatever they're using. 352 00:16:32,509 --> 00:16:35,391 and it's as simple as just writing the humidity 353 00:16:35,400 --> 00:16:39,179 and the temperature into two different CSV files and 354 00:16:39,180 --> 00:16:43,541 that's it. And same thing for the outside. And 355 00:16:43,560 --> 00:16:45,029 so you're probably thinking well, it's hard to get 356 00:16:45,029 --> 00:16:47,551 it up on the dashboard. And, but, it's not. 357 00:16:47,560 --> 00:16:50,970 Dashing makes this simple. Every thousand seconds I'm, I'm 358 00:16:50,970 --> 00:16:54,639 opening up the, the CSV file and then sending 359 00:16:54,640 --> 00:16:56,431 it to the dashboard. 360 00:16:56,440 --> 00:17:01,070 And it's as simple as that. It's, you know. 361 00:17:01,070 --> 00:17:03,340 Nothing too complicated. 362 00:17:03,340 --> 00:17:05,280 And this is the, the Python code, but I'm 363 00:17:05,280 --> 00:17:08,220 not gonna explain. It was, came with the scale, 364 00:17:08,220 --> 00:17:10,888 so I didn't bother redoing it in Ruby. But 365 00:17:10,888 --> 00:17:13,701 now that our scale's having issues I'm going to 366 00:17:13,701 --> 00:17:17,800 work on a new solution with a RubyGem. 367 00:17:17,800 --> 00:17:19,210 And the other thing we used is we used 368 00:17:19,210 --> 00:17:21,869 Passenger. Just as for our server. We used a 369 00:17:21,900 --> 00:17:24,900 couple LInux packagages for our, basically creating our wireless 370 00:17:24,900 --> 00:17:31,510 access point. And the, a wireless, and DHCP server. 371 00:17:31,510 --> 00:17:33,260 And that was it. 372 00:17:33,260 --> 00:17:35,400 This is simple. And I think it's so simple 373 00:17:35,400 --> 00:17:37,880 that anyone here can do it. Anyone who's been 374 00:17:37,880 --> 00:17:40,029 doing Ruby on Rails for at least, least a 375 00:17:40,029 --> 00:17:43,882 week, maybe two, like there's nothing to it. And 376 00:17:43,882 --> 00:17:46,450 I want you all here to go out and 377 00:17:46,450 --> 00:17:51,310 do stuff like this. 378 00:17:51,320 --> 00:17:54,210 Because I think we're all amazing, and we, we 379 00:17:54,240 --> 00:17:58,700 sometimes, we sometimes get this sense in our head 380 00:17:58,700 --> 00:18:01,460 that, you know, we, we have all these problems 381 00:18:01,460 --> 00:18:04,370 and we're living in this kind of ivory tower 382 00:18:04,370 --> 00:18:08,090 that isn't really representative of, you know, the rest 383 00:18:08,090 --> 00:18:10,519 of the, rest of the country. Like, we're kind 384 00:18:10,540 --> 00:18:12,290 of the silk on valet mindset. It's like oh, 385 00:18:12,290 --> 00:18:14,251 I gotta get my queuing speed down from point 386 00:18:14,260 --> 00:18:17,230 six milliseconds to point five eight milliseconds, or I 387 00:18:17,230 --> 00:18:19,230 have to, I have to get my tests to 388 00:18:19,240 --> 00:18:21,700 run faster. Make DHH happy. 389 00:18:21,700 --> 00:18:24,890 Or, you know, we have all these issues, but 390 00:18:24,890 --> 00:18:27,460 you know the vast majority of people, like I 391 00:18:27,460 --> 00:18:30,299 work in the, in a university, and I see 392 00:18:30,300 --> 00:18:33,141 every day people emailing spreadsheets back and forth. They 393 00:18:33,141 --> 00:18:35,870 email text files back and forth. And like all 394 00:18:35,870 --> 00:18:39,670 these solutions that are just horrible. And really educators 395 00:18:39,670 --> 00:18:41,750 they need our help. And they need us to 396 00:18:41,760 --> 00:18:45,200 get involved in projects like this. 397 00:18:45,200 --> 00:18:47,490 And it's super easy to get involved in these 398 00:18:47,490 --> 00:18:49,730 kind of things. Like, I, I'm involved in three 399 00:18:49,740 --> 00:18:51,750 projects right now and all of them I got 400 00:18:51,750 --> 00:18:54,380 involved with just by going to see a Professor 401 00:18:54,380 --> 00:18:57,759 talk and then after his talk or her talk 402 00:18:57,760 --> 00:19:00,520 I, you know, I just asked them questions. 403 00:19:00,520 --> 00:19:03,111 Cause, you know, professors, professors have bigger egos than 404 00:19:03,120 --> 00:19:05,890 we do, as, as developers. They love to talk 405 00:19:05,890 --> 00:19:09,040 about themselves. They do. And they love to talk 406 00:19:09,040 --> 00:19:10,630 about their research. Like even more than we like 407 00:19:10,640 --> 00:19:12,210 to talk about our code. 408 00:19:12,210 --> 00:19:15,360 And so I know, I know you're thinking Sean 409 00:19:15,360 --> 00:19:19,550 you dirty Canadian socialist, you know, like. Why, why 410 00:19:19,560 --> 00:19:22,820 should I do this, you know? I don't want 411 00:19:22,820 --> 00:19:24,760 to give my time for free. And I guess 412 00:19:24,760 --> 00:19:27,940 like the simplest reason is, is I run a 413 00:19:27,940 --> 00:19:30,300 Ruby meetup group, and one of the first questions 414 00:19:30,320 --> 00:19:33,320 I'm, I'm generally asked my new people is, you 415 00:19:33,320 --> 00:19:36,090 know, how can I get involved in opensource? Like, 416 00:19:36,090 --> 00:19:40,590 like, cause, it, opensource seems like this, this goal 417 00:19:40,590 --> 00:19:43,210 that you want. But you just don't know how 418 00:19:43,210 --> 00:19:47,610 to get to, if you're new. 419 00:19:47,640 --> 00:19:49,870 And And, you know, doing projects that like, projects 420 00:19:49,880 --> 00:19:52,069 like this, it really is a, is an easy 421 00:19:52,069 --> 00:19:57,001 gateway into opensource, and to, and to, you know, 422 00:19:57,001 --> 00:20:01,059 getting opensource credentials on your, on your resume and 423 00:20:01,060 --> 00:20:03,680 on your github. Because, you know, like it or 424 00:20:03,680 --> 00:20:05,560 not, when we do apply for jobs, they do 425 00:20:05,560 --> 00:20:10,740 look at what we do in the opensource community. 426 00:20:10,740 --> 00:20:16,940 And can't really see this, but this is one 427 00:20:16,940 --> 00:20:19,330 of the, the extra benefits of, of doing a 428 00:20:19,330 --> 00:20:24,720 project like this, is, is all the puns. And 429 00:20:24,740 --> 00:20:26,860 it's like, you know, you can't really see these 430 00:20:26,860 --> 00:20:29,430 but I gave this talk last week and every 431 00:20:29,430 --> 00:20:31,600 one of these are bee puns, like, hey, buzz 432 00:20:31,600 --> 00:20:33,970 off pal! You know. Sean has a tendency to 433 00:20:33,970 --> 00:20:37,080 wax on, and, what's the buzz about, and ooh 434 00:20:37,080 --> 00:20:40,990 it's gonna be sweet. It's the bee's knees! 435 00:20:41,000 --> 00:20:42,980 And so, so if this is the kind of 436 00:20:42,980 --> 00:20:46,190 thing that interests you and, and you might want 437 00:20:46,190 --> 00:20:48,690 to go out and get involved in, I'd really 438 00:20:48,700 --> 00:20:52,130 like you to check out Ruby for Good, and 439 00:20:52,130 --> 00:20:54,040 it's a conference we're gonna be putting on in 440 00:20:54,040 --> 00:20:57,840 the Washington, DC area. The first to third of 441 00:20:57,840 --> 00:20:59,360 August. We're gonna be staying in the Dorms at 442 00:20:59,360 --> 00:21:03,060 the University. We're gonna hack on opensource social good 443 00:21:03,060 --> 00:21:04,800 projects. 444 00:21:04,800 --> 00:21:08,330 It's gonna be 72 people. We're aiming for $200 445 00:21:08,340 --> 00:21:11,690 or less, and that's all inclusive of your lodging, 446 00:21:11,690 --> 00:21:14,000 your food, everything. You just have to get their. 447 00:21:14,000 --> 00:21:16,170 You're welcome to come a day early for no 448 00:21:16,180 --> 00:21:18,250 extra cost and we're gonna probably do something fun 449 00:21:18,250 --> 00:21:20,820 the day before. Maybe go do a nighttime tour 450 00:21:20,820 --> 00:21:24,490 of the DC monuments or something. Not quite sure. 451 00:21:24,500 --> 00:21:26,490 And, and also maybe to make it more appealing 452 00:21:26,490 --> 00:21:28,029 for your work, we're gonna hold, we're gonna have 453 00:21:28,040 --> 00:21:30,400 some training sessions on the second day. We have 454 00:21:30,400 --> 00:21:31,900 one of the guys from the RSpec core team 455 00:21:31,900 --> 00:21:35,421 coming out, gonna give a workshop on RSpec. We 456 00:21:35,421 --> 00:21:37,560 have a guy giving a workshop on Angular. And 457 00:21:37,560 --> 00:21:40,440 another one of the JSON API committers doing a 458 00:21:40,440 --> 00:21:43,340 workshop on creating APIs. 459 00:21:43,340 --> 00:21:47,560 And that's my talk in a nutshell. Thank you 460 00:21:47,560 --> 00:21:49,180 so much for your time and are there any 461 00:21:49,180 --> 00:22:00,000 questions?