 Hi everybody. I'm happy to see the room full again. Thanks for that. So it's our last talk and it will be given by Helio. He's from Brazil, but he lives in the U.S. He works for now for a non-profit organization providing free literacy to students. And he will talk to you about how you can do home monitoring with Raspberry Pi and Ruby. So please welcome him with me. Hello everybody, so let me get started and a little bit about myself. My name is Helio and I'm working in a non-profit organization called Common Leeds. We do free literacy tools and student tracking tools, mostly students and teachers, empowering teachers to improve education for kids. I've been doing software development for about 16 years and I've been working for Ruby on Rails for about seven years roughly. So the agenda of my talk is gonna follow these kind of follow these major steps, which is why Helio Raspberry Pi, Parallela, or MicroPCs. What is available for you guys to poke around by install setup, your development environment, and EmotionSense app that I use to monitor my house when I was on vacation. So before I start, let me just ask a quick question here. I think there is three main topics in my talk. One of them is Ruby, the other one is Raspberry Pi and Parallel, and the other one is Ghost Stories. So who is here? Who is in this room? It's like Ruby and Rails developer. Can you raise your hand? Who is Raspberry Pi? Kind of like stuff. And how about Ghost Stories? All right, cool. So let me get started. So why Raspberry Pi and Parallela? So there's not a lot of things here in this slide that's kind of serious, but I was curious. I was not bored and I wasn't even doing some renovations in my house. And pretty much all these restarted because of Ray Hightower. I saw one of his lightning talking in a conference a couple years ago talking about Parallela. And I was like, oh, yeah, there is Parallela now and there is Raspberry Pi. I've heard about these things. So one day I'm going to poke around that. So that's how these next chapter of my career started. So what is available? Let's talk Raspberry Pi. You have Pi 0, Pi 1, Model A, Pi 2, Model B, Pi 3, Model B. These are the ones available now. And a little bit of visual for you guys. Pi 0, Pi 1, all of them. They pretty much look like the same difference in size. To get a little bit of perspective, this is a Pi 0 and that's a quarter. So a Pi 0 is probably the size of your thumb. It's like this. And a Pi 3, a Raspberry Pi 3 case is like this. So that is this case over here. So this is pretty much the size, the Pi 3, which is the one that I bought and have been using it, is the size of a credit card. And this is that case. It's a plastic case for Raspberry Pi 3. A little bit of the differences between them. So you see mostly what's mattered to me is CPU and RAM. So you can see Pi 0 is a single core gigabyte, Pi 1A plus. Pi 2 and Pi 3, they're quad core processors already. And the Pi 3B, which is the latest one that was released maybe a year or so ago, is like 1.2 quad core. This is the one that I've been poking around. And this was also the first one to have wireless and Bluetooth. There is one interesting thing about this Pi 1A plus, which is that is the low power. It's like 1 watts and half a watt. And usually they recommend this if you want to, one of the scenarios that they describe that this is useful for is for if you're a balloon or something that's going to fly around and is going to collect some data and you really need low power because it's up in the air. It's not in your desk. That's the one for it. But it doesn't have Ethernet. So it is for embedded stuff, not for you to poke around in your basement. As far as price goes, the Pi 0 is $5.00, freaking cheap. The Pi 3 goes to $40. A little bit of about dimensions of them and some GPIOs. All the latest ones, they have 4 GPIO pins for you to plug sensors in whatever you want. So now moving on to Parallela. Parallela is pretty much another Raspberry Pi board. And they have these three options, a Microsoft or desktop and embedded. Although they are pretty much the same, close to the same size, they are quite different in price and in power. All the Parallelas, they have 18 cores. And the starting price is $9.00 and the embedded one is $2.60. So they all come with one gigabyte of RAM. The desktop and embedded has HDMI, the Microsoft doesn't and they have only one USB port. So you need to plug something else if you want to poke around with that, mouse, keyboard, that kind of stuff. And the desktop has 24 ports. And the embedded 48. I haven't bought one of those yet, but it's on my to-do list as soon as I finish all the stuff that I want to do with the Raspberry Pi. I'm kind of curious to see what these 18 cores are really going to do and compare with the Raspberry Pi for whatever basic simple application that I usually, that I want to do and to do my home monitoring. Apart from Parallela and Raspberry Pi, there are other things. So Intel, Asus, all these big PC companies, they have their own version. So this Intel Galileo, Intel Galileo seems to run Linux, but the Asus, no, it doesn't. And that one over here, this one, it does not come with a processor. You have to buy separately. And there is also these stick PCs. Not sure if, has anybody here ever used one of these? Okay, two people. All right, three. All right, so this is mostly Windows based. And the way, this is Intel one and this is an Asus one. And the way these stuff is, you plug in the back of your monitor and then you have a Windows. And that's it. So buy, install and set up. So now let's start getting into the Pi stuff. Where to buy? Element 14, other fruit, Amazon, or any way you find these micro centers near you. So I bought all mine from Amazon. And now what is your buy? That's a good question because it depends on what you're going to do. If you like balloons and you want to put your pie in a balloon, you have to go to a Pi one because that's the low power and that's the one you need. If you're not, if you're going to do these stuff in your basement, in your house, then you probably should go with the Pi 3, which is the latest one, has Wi-Fi in it and that. That's the one I started. And it's easy for you to find these starter kits, which comes with a Pi 3, a Pi, a case, a power supply, heat sink. And you're going to need to buy these stuff separately, these SD cards. That's the basics. With that you can have a Linux running on your home and poke around with that. You plug in a monitor on the TV and that's it. You don't need much more than that. The extras on these is camera sensors and a 7-inch touchscreen display. With my starter kit, I also bought some sensors because I want to do a home monitor and a motion presence app. So I bought that at the beginning and then later on I did buy the camera and a 7-inch display, 7-inch screen, which is this one. This is the 7-inch with a case and the Raspberry Pi is here at the back. There's a board and this is the Raspberry Pi board over here. So let's keep going. Installing setup. So depending on what machine you use at home, Windows, Linux or Mac, these are some references. If you do use Linux as your main laptop at home or at work, I suggest you go for the second reference, which is from Ubuntu Mate that's just going to fuse at home to you. The other one is more perhaps for Windows and Mac users. Now I'm at a third of my talk and I want to kind of breathe in a little bit and I want you guys to look at this slide. If there is one thing that I want you guys to remember is what is written on this slide. So if you ever start working with Raspberry Pi for the first time because you came here and listened to me, this is what I want you guys to remember. So my tip to you, as soon as you start installing OS, I mean I'm talking about Linux, not talking about Windows, but as soon as you start installing a Linux OS, that's where you end up executing a couple of commands that will have some of these ones. And one of them is BS equals to 32M and the other one is BS equals to 1M. And I hope that you remember me about this and for the first time you use BS equals to 1M. Because if you use the other one and you happen to follow the steps I followed, you're going to miss a lot of hours of your life, trouble shooting something without finding a solution. And I think it's related to that BS 32M, which is kind of block size, 32 megabytes versus block size, 1 megabyte. So I bought these stuff as a cool toy, comes at home. The family go to sleep and you go to your office to do some work and to poke around with a new toy. And you spend five hours in there trying to install a freaking Linux on it and it doesn't work. And then you go to sleep really sad because your new toy doesn't work. So that's kind of what happened with me from 10 a.m. to 3 a.m. in the morning, something like that. Download! So these are the three main OSes that I would like to try and that I picked at the beginning. So Core is just a plain Linux core. There is no graphical interface. Open to make another one that has a nice set of installation steps. Pretty cool. And there is these things, Windows 10 for IoT Core. I was like, what? And I was like, okay, I mean, I decided to try. So when I started, I bought only one of these, the SD cards. And then I bought two more. And this is Ubuntu Mate. This is Ubuntu Core. And this is what I've been trying to do with Windows. So it's still my to-do list. And the SD is still in the package. So if you are a Mac user and you're going to install one of these Linux machines in your SD card, you mostly are going to run these three commands, a DD list. In those references, you have more step-by-step on how to execute these and what to do. And I have one slide at the end with all the references. And I'm going to publish these after the talk. And you guys can look around. But basically, you're going to run these three DD lists to find. I mean, let me go from the beginning. So you're going to download an image. You're going to unarchive it. And you're going to stick a SD card in your Mac. And then as soon as that is done, you're going to run your DD list, which is just going to find what is your SD drive. You're going to do a disk U2 to amount my disk to you. And then you're going to do this DD, which kind of install that Linux distribution on your SD. And the third one is the one that's going to take a little longer. Maybe 20 to 30 minutes. And then as soon as you have your SD card all done with your Linux on it, and you're going to put on the Raspberry Pi, plug in the power, put in a monitor or a TV or anything like that. And you're going to boot. So the first boot will take a little longer. And you're going to be sweating because you want these to work. And sometimes, depending on the Ubuntu that you decide, it's automatically going to extend the file system. If you use Ubuntu Mate, you have to manually do that. But there is a simple command in there in the installation procedures that you just need to run and it's easy and fast. You may need to do something else. So just following structures on the display. You may need to configure a network and create an admin account. The first one that you have. And this is a little picture of my Raspberry Pi, my TV and a keyboard. So if you look over here, this small display here is actually this box, which is the 7-inch display with the Pi at the back. And that's my living room TV and a keyboard and mouse that I was using. That's what I use for all the stuff that I did for the testing and I plug it on my TV because I don't have an HDMI monitor and I have the TV. And this is the Raspberry Pi. This is exactly this box. And what you see over here is this is a motion sensor, infrared motion sensor with a black tape on the kind of covering it to minimize the noise and so I could test. So this is actually what I end up installing in my house and that I did my experiment. And as soon as you get... So you can use your TV monitor and keyboard to use your Raspberry Pi. You can use a 7-inch touchscreen or you can just SSH to your Linux machine for whatever laptop you have. So as soon as you do that, then you have your Linux... The Raspberry Pi is done. The installation is done. Now it's just another Linux machine that you are poking around. So now as soon as... Now that you have that Linux machine there, let's do some development, right? So my main development environment is playing old Ruby style, RVM, RVM V, Postgres, PGademy and Text Editor, a browser and I hooked these up on my TV and then I have it. And I kind of toggle between using the TV and the keyboard and just SSH from our Mac to the Pi and then do some stuff in there using Veeam but you can do whatever if it's better for you. It's a plain Ruby and Rails development environment as it gets, as classic as it gets. So this is the 7-inch touchscreen. There's a reference in there. It crosses twice, close to three times more than the Pi itself. So, but if you're playing to do some infotainment system or do anything that requires some kind of display for someone else other than you do, so you may need that. It does not look well. It does not play well if you want to poke around the Linux itself because the screen is too small for you to open a terminal, to type a bunch of terminal commands. But it can be used as well. And this is an image that is started. I just pulled it up. That way you see my login page, my login screen. This is a terminal screen, my keyboard and a mouse somewhere in there. These 7-inch screens also have a soft keyboard. That's what you're seeing there in the bottom. And then you can type in there but it's small. You're not going to be able to type. You're going to need some commands to do like you do on a tablet. You're not going to be able to use that to type anything soft to the terminal related. I was unable. So, now let's move forward. Let's go to our MotionSensor app. That's what I was wanting to do from the first place. So, that is my hello world for Raspberry Pi. That's the one that I decided to do. And basically what I wanted from this MotionSensor app is pretty simple. Detect a movement. And as soon as you detect a movement, you do something, which is... And then if you go into the Ruby arrays, Ruby world is calling an API. It's pretty simple. Sound and alarm, then you go back to the Pi and maybe you're going to use an external buzzer to do that. Turn on the lights and play the music. Again, you go back to the Pi and interface out. Turn on the camera, record something and make a video from what your surroundings are and stop when there is no more presence. And then report an event in a video. So, those are the kind of stuff that you can do. The idea of... There is a very simple code to do, this scenario over here. Detect the presence, turn on the camera, record and then turn off the camera. On the Raspberry Pi website, I can probably try to find that link and put in the references. It's 20 lines of code and you can do that in Ruby and Python. And my motion sensor app started very, very simple because I don't want to build a motion sensor app. I want to build... I want to move to the sensor, but if you look at the data model, just users have locations, sensors, events and data. If you want to... Locations and sensors can be kind of a bundle together. But if you want to have separate my living room or one house A, house B and house C, your user can do that. And then each house has a bunch of sensors and each sensor has the events and each event has data, which is the video or whatever else data you capture, sound or anything. And I wanted to build this basic app because I want to detect presence of my house and I want to be able to see that from my cell phone or from outside my house. And I use one of these admin apps on Rails to build these very simple apps that just create a sensor and allow me to login and deploy that to Heroku and that's what it looks like. That's how I was monitoring my house. And that you do in an hour or something, maybe a little bit more, you build that simple app for you to collect and store the data that's being generated by your sensors and by monitoring whatever environment you are. And now comes back now to this infrared motion sensor. This is the one that I used. These are the one that I tested that I left in there. I kept the black tape in there just to minimize the area and try to get less noise. But basically these are all the same. This is another one that I bought and this is a zoom version of that. It's just infrared motion sensor. And basically there is a nice reference here. If you're curious about infrared motion sensor, I strongly suggest you to read this PDF. It's pretty cool and that's where I got this picture. And basically the infrared sensor has two areas, the red and the green, which is the hot and the cold. It comes through the hot area. The sensor is going to generate a high voltage. As soon as you leave that and you go through the cold and you leave the area, the sensor generates a low voltage. That's pretty much roughly from what I understood. That's how this sensor works. But in that PDF there is a lot more information about this. But that's what I thought I was smart enough to share with you guys. And then now monitoring a sensor. So this is a little bit of code. I use this gem called Piper. And the references there is on GitHub, it's open source and all of that. And this is a pretty simple Ruby code that actually does my monitoring. Because the one thing that I wanted most is to get this stuff working in my house. So you run this on your, that's what's going to be running on your Raspberry Pi. And basically what it does here is I have my PIN 14. My PIN 14, I don't think I'm going to be able to show this, but it's a GPIO pin where you just put some jumper cables. And these cables here, these connect to the sensor. And the other side goes directly into your Pi. So in that PIN 14, that's where the motion sensor is connected. That's where the data is. The other two cables of the motion sensor, one is power grounded in data. The data goes in the 14 and then you say, hey, as soon as 14 goes high, throw me an event. And then I'm going to do something. That means that the sensor detects the presence. And then basically I do a little bit of logic in here. I don't want to generate every single little thing going on through my living room. So if the burglar or my wife or whatever else goes to my living room within the same minute, I'm going to consider that as a single presence. I don't want to have five motion events within a minute for the same person walking around. And that's the logic that I do on current presence and last presence. And these simple mapping here are to do that. And as soon as I do that, then I'm reporting. I'm going to call my, that API, the Rails app that I have that has that credit app and also very basic API. And it does not use any common practice of API because this is a post and not a get. But 3 a.m. in the morning I did a get to report the sensor. And everything is high-decoded in here. As soon as I started doing this for real, I high-decoded the Heroku app in here. And the Heroku app, the sensor ID is one. So these scripts are only going to work for that scenario because I didn't have much time. And I was just experimenting playing with it. And that's how you monitor infrared sensor. And one interesting thing here now is I'm going to, I think it's really unfortunate. Let me make a side note here. I think it's really unfortunate that now we live in a world that I cannot travel with all these electronics. I was encouraged enough to board an airplane coming from the US to Europe, bringing all these electronics. The maximum that I bought was these. But there is one interesting aspect to all these sensors is every single sensor, regarding whether it's an infrared sensor or whatever the sensor, if they work in a high-low, then your code is pretty much the same. And what you have to know, the binding between these data engineers in the field in the Raspberry Pi and whatever your cloud system you have is which sensor goes in which pin. And there is a lot of software that you can build to make sure that your Pi is slaved and you pull the data from the cloud to do that, but there is nothing like that on these demo that I have. So let me show you a little bit of sensor. Let me take you on a sensor journey and show you some of them. So that's the classic one that I showed you guys, the motion sensor. This is smoke and combustible gas. I think they actually sent these wrong to me because they seem to be exactly the same, but they came as two different sensors. In this one, guess which one this is? I'm not sure if I heard anything, but this is just a buzzer. If you want to play some sound after you detect something. This is a carbon monoxide. These all, for example, these also have the three pins, the power ground and data. So it will work the same way that the infrared sensor works. So you're going to send zero one and that's going to buzz or stop buzzing. So carbon monoxide. How about this one? Guess which one this is? The kind of pressure is a digital touch. If you touch your hand in there, it's going to throw an event. This is a flame. I don't want to check whether my house is on fire, but it came on a box and that's fine. This is a vibration, this temperature and humidity. I don't want to poke around that. This one is sound. That's interesting as well. But it doesn't seem this one is going to give you the sound. It's just going to say, hey, there is some sound level over here and not. This is the coolest one that came in the box and also the biggest. Can you guess which one is this? Water level. Exactly. Oh man, I never could guess anybody would find out that this is a water level. This is a water level. I want to play around with this so much. My home monitor system. Let me go through now my experiment that I did on my house. This is what I actually installed on my house. I deployed that app into Hiroku and it's going to there running. I went on a vacation, on a very long vacation. All my family went on a vacation for two months, sometime November, December last year. And our contractor was, he was going to come to the house regularly. A side note on this contractor. He's been doing all the renovations that are done in the house for the last four or five years. And he was just there going to go to the house, walk through and make sure he's not on fire when we are gone. And I asked him, hey, there will be some stuff there in the living room. So every time you come by, you walk around the living room a couple of times as you're doing your chores. That's not bad for me because I have this thing that probably you're going to have to install at my house next year. And I want to test it. And that's what happened. So we flew away on November 1st and we came back. And the experiment was planning to start November 1st, which is the day that we leave until 21st, which is the last day that the contractor is supposed to go to our house before we come back. And I left through running. I had a piece of running with that sensor on my living room connected. The sensor is there. And let me show you a little bit of the logs of that. So here we go. It's running local hosts, but these... Sorry. Oh, that is going to be... Okay, that is... Display. There we go. So this is that Rails app that is running on my Mac, but is a backup database from what I got reported on Hiroko. And during the time I got 679 reports of presence in my house. And I was like, whoa. And so everything started around there. You see, October 29th. This is probably some tests. The first one, ID 1, ID 2. So November 1st was the day that I was trying to finish these stuff and get it working. So I had to stay late night and I was testing. You see, 3.30 a.m. This is 3.30 a.m. My time, whatever time zone in U.S., 3.45. And the tests keep going. Here's where I realized that... You see, 3.40 is when I realized that I need some kind of timer because I don't want to see three presence because I just crossed my hand in front of the sensor. That's why I'm like, all right. Maybe five minutes or one minute is the time that... If you pass here, that takes presence five times in a minute. I just want to find out that happened once. So that's what I did the two minutes. The one minute. So November 1st, I kept working. 3.50, 3.55, 4.00 a.m., 4.00 a.m. And then 4.20 and then I went to sleep. And 7.00 a.m., I don't know, my wife, my kids, I don't know what happened. Here's us probably going, packing up and going on a vacation. November 1st and then November 5.00 p.m. And let me keep going here, so... Oops, sorry. Went too fast. November 1st, 5.00 p.m. This is probably us packing up and going and traveling. And then here we left the house, somewhere around this. But I don't know what happened at that night at my house. And it kept going. You see, 3.00 a.m. I know the contractor that was going to my house pretty well. And that is extremely unlikely was him. But I have to make another side note in here. And this guy, he believes in ghosts. He believes in ghosts. Once, a couple years ago, he came back for another round of renovation at the house and he said, we were talking about something. Hey, I see a lot of noise in your house. There's something going on in here. And he's scared of that. But anyway, that happened way before I started working with this pie stuff. We had this conversation. So, my sensor kept going. My sensor kept going. The infrared motion sensor kept detecting infrared where that is. This was installed in my living room near my TV. It was winter in the US. So, the house was, the heating system was coming and going as it's too cold and heats up. So, it's possible it was that. I don't know. But there was no direct air going into the sensor. And I had the black tape on the sensor. So, I wasn't trying to catch a lot of small things. I just want to see these working. And this kept going. November 3rd, 4th, 5th, 6th at all times of the day. During the day, night and afternoon. Some of these days are really my contractor here coming to the house and check it up. Make sure that everything is fine. November 8th, and then that kept going. So, I'm not going to keep going over here. But if you scroll to these, that's going to keep going. And I was gone. And you see, every time from 2 to 4, every time between 1 a.m. and 4 a.m., there was some event. And even if my contractor went to my house to throw some parties when I'm gone, he didn't do that every day. So, and that kept going, kept going. And one day I called him, he called me and I told him that this was happening. And he told, guess what he told me? I told you that he's a ghost in your house. And around November 19th, I asked him to shut down. Because when I said that this was happening in the house, he said, no, no, I'm not going there. And he goes, all right, go power off that stuff, go and unplug from the power, and that's it. I'm done with my experiment. And it was planned to last until December, but it just took a couple of weeks. Now, let me display off and come back to my presentation. So that was my experiment. So here goes, here are my theories, right? So what happened in my house? So one of the things is that it is a ghost in my house. It's possible that that's happening. And that ghost is generating some infrared in my sensor. As soon as the ghost wakes up and walks through my house, it detects my sensor is detecting that. My infrared sensor is detecting that. So the other theory is there is an infrared noise near my sensor, which is, I don't know, which one is more likely. But it's a possibility. The other possibility is my sensor is broken. That's another thing, it's hard to test. That's not like pushing your code to GitHub and let your CI run your test. That's not how you test sensors. And it's hard to find out whether it's broken or not. But I do suspect this one is broken. Or it can be bugging my code. I work on the code every night from 10 p.m. to 3 p.m. Not every night, but I didn't have a lot of time before I travel. And because I wanted these, to leave these running on my house, when I was gone, I didn't have much time. I had to finish by the time I was leaving. But the code is pretty straightforward. Most likely the sensor is broken. Or there is some noise. I don't know. Or maybe there is a ghost. So here are all the references that I have throughout the presentation. And that's what I came up here to talk to you guys. So thank you for your time. And if you have any questions, I'll be more than happy to answer. We have 10 minutes for questions. Do you have multiple pies or just cables from the sensor of the house? Can you repeat the beginning of the question? Do you have multiple pies or just one with lots of cables going through the whole house? Okay, so the question is if I have multiple pies or only one pie, multiple pies through the house, right? No, I only have one. So far I've only bought one. But my idea for my next renovation prior to the house is to kind of install maybe two, one at the front door and one at the back door of the house. I'll probably try to do that sometime this summer this year. What are some of the debugging tools that you use with Raspberry Pi? Like saying, you know, say you plug in the SD card and it's like boot up. What are some of the things you do to figure out why that's happening? So the question is what are the debugging tools that I use to troubleshoot the pie? And if I put the SD in a boot up and it doesn't run, what do I do? So that's a good question. I didn't use any fancy tools. The problem that I had with the block size 32 megabytes, I Googled the hack out of that to see if I could find anything I couldn't find. Nothing explaining why it was breaking, why my pie was not the linux wasn't starting up. For the sensor stuff, that's a simple script. And so there is not a lot of... I never really came across any tool to test the sensor itself, but it's just logging in. So I didn't really use any debugging tool other than trying to find an answer on the internet. Any more questions? Can you read like... You can only read one or zero from the sensor. You can read if it's like too hot or not too hot. Okay, I'm not sure if I follow your question. Isn't there a way to measure if there is too hot? How hot it is from the sensor? It's only one or like two or four? Okay, so the question is if there is a way to measure how hot is the sensor? So this is infrared, so it just gives you high and low. But I do believe there are some temperature sensors that can give you the water level. The water level is going to give you something else other than two or four. It has to give you 10, 20, 30, whatever percentage on that level. So that's going to vary on sensor by sensor. Most like on a sensor like that, you may need more than three pins. Or maybe it's going to vary. Everything changes, I give you a number. So I give you 10, 20 and then in that case only one pin should be enough. I think that changing your approach and using camera instead? So the question is if I look into changing my approach and use a camera to detect... That's an interesting question. Is there an application that does that good motion? Yeah, so instead of detecting infrared and saying oh there is an infrared in here, you keep taking pictures and then you detect movement and you can compare images and see if there is anything. The one reason why I didn't go for that is because I want to test the sensor itself. The camera is just a software and you put a camera in there in your USB and then a bunch of software doing that. The sensor is a piece of hardware that you have to jump in and your cable into the pie and do that. So that's why I decided to do that. But I do want to extend that to use that or the code that detects the presence and light up the camera record. Because if there is a ghost in my house, maybe the camera is going to tell me something. Any more questions? I have a question. Did you resolve the case? No, no, I have not. I have not resolved the case. What about the mouse? It could be a mouse that only gets in my house when we are gone because I've never seen a mouse living there for four years. I've never seen a mouse in the house. But it could be. Maybe it's a math mouse. A fly. The one reason that I put that tape in there is... So the infrared sensor has two... Two imperameters. One is sensitivity and one is timing. I tuned it really down, but to the minimum sensitivity possible. And I put the tape to try to go around that. So if a fly goes around, it's not going to hit the sensor, but it could be. So maybe the camera was going to help me to find out if there is a fly or a mouse. What did you use that for? Thank you for asking this question. So the question is, what do I use this rack for? And the question is, I still don't know. This is a freaking cool toy. This is a Raspberry Pi cluster. So over here we have five boards. One board, two, three, four and five. On top this is a switch that connects all of them at an end. And you can get out to the web. And at the bottom is a 500 gigabytes SD card. And all these spies have Linux using NFS. So that instead of using the SD card, these 32 gigabytes SD card, they're using Linux NFS on the SD drive, on the SSD drive. And I got this picture from the references here. This is a guy from Google that made this presentation in DC a couple of months ago. And he found out these in a conference here in Europe. And you can buy these and you can do that yourself. But these cost like $600, so it's not that cheap. And I'm still trying to find a use for that. So if you guys have any idea, let me know, because I'm really interested in buying one of those. But for that kind of money, I need to find a better usage other than hunting ghosts. Okay, but where does Barry can boot directly from NFS or you need the SD with a boot loader? So the question is if the pie can boot directly from the NFS. I don't know. There's a good question. But on that link, there is a whole article that the guy did. It's possible that he did something. But it's possible that he might have an SD card in there. I'm not sure if you can boot directly from the NFS. But that's all Linux. I think mostly it was with an SD card because I wasn't able to do it myself. But have you tried using NFS? I tried just starting it up. Okay. You may need the SD because you need to get the Linux, something the Linux in there, then the Linux know that needs to go to the NFS. Thank you, my man. Thank you guys.