 Good morning again. Journalists have a harder and harder time because they're oppressed by governments that don't want to listen to the stuff they have to say. The other hand, hate and fear of the other grows everywhere. We see it in Turkey, in the USA, in England, probably also in the Netherlands, but I don't read the news. What can we do to stop this? Andrazine and Landred came all the way over from California to present their silent protests, which is an offline network to share art and have fun partying. So, please give a warm welcome to Andrazine and Landred. Thank you, Charles. Thank you for waking up early. Yeah, you want a part? Cheers. So, the upside is that it's party time. So we're going to present you a tool which is going to allow us to party. I don't get to see the slides. Here we go. Party like a hacker. Show me. Okay, so the real motivation behind the talk today is like to help a bit the larger world to share art using technology. And we're going to show you on the way, like, how we apply it to our lives. All the pictures are taken from, like, parties we organize using these tools. And it's an invitation to, like, you know, help you to contribute to this open source tool and extend it to your needs. Show me, baby. Okay, so we're going to start with a demo. There's a network currently running from this box up there, which is an open network called Silent. If you join it and open a web browser and then go to anything, you'll get to stream the music that I'm going to play right now. So there's a controller right here connected to this Mac. It's somehow streaming to this box. And you can, using those headphones, join the network. And, you know, we'll have a silent discoverer IP, essentially. So to summarize that, go ahead, man. Yeah, we can do that. Absolutely. So we're going to show you a quick video to show you how to join the network. Welcome to Silent Party, baby. The SilentProtest.io. Okay. So there should be a network called Silent Red, which is open. And if you open any URL from the DNS, we'll automatically redirect you to party.silentprotest.io, where there's two streams. If you play the first video, you're going to be streaming where we're playing right now on stage. Yep, way too slow. When you connect just, you'll see this little player here. Just click play, and it will play the stream that, and Rosina is DJing with you live right now. Party time. Okay, the agenda. We're going to introduce you to the team that helped us build this. We're going to speak a bit about motivation, or we envisioned the project, or we ended up delivering it, and we'd like to take it from there, and what we need your help for that. For the team. So quickly, we had like three main engineers, Ian, who helped us with hardware hacking, the network stack. Yeah, very decent party animal, shall I say. Thanks for your help with all this project, by the way. I've been here mostly with prototyping, like the early prototypes, and we had another engineer who was, okay, all three of us work for Salesforce in San Francisco. Richard could not make it. He helped us tremendously, notably in the DJ side. We'd like to thank very quickly, like, our friends who helped us build that stuff, in particular Sean, who solved like, yeah, some non-trivial prototyping from car batteries, which was very cool. Our DJ friends who helped us gather a crowd big enough to prototype RIDs. Justine for the logistics, and yeah, all our friends who helped us beta test RIDs. Okay. The motivation behind this talk. So, if you look at like, you know, NGO reports from like, reporters without borders, Amnesty International, over the past few years, they notice a trend in diminution of freedom of expression worldwide, which, you know, there are things we can do little about, like journalists being threatened, position newspapers being shut down. An example which really strikes me is playing music in Iran in public. It's forbidden. And it's actually enforced. And we thought like, well, maybe that one we can do something about. So yeah, that's the motivation behind the talk. All right. So let's start with like, a bit of like, are we envisioning a project, and where that took us. So we thought it'd be cool to have some sort of network. We were observing people partying in particular in San Francisco where this device called the silent disco is popular. It's basically RF. So you have a DJ who's streaming over radio frequencies to people who need a special receiver. You could do that over standard FM, for instance. Typically that's not what they do. There's like, the FTC has liberalized like one band on the 2.4 gigahertz, which is also shared with Wi-Fi, and they use that with like custom receivers. We thought this is not exactly what we want, because we'd like people we don't know to be able to join our parties, and we don't want to give them a set that will never get back. So we thought, hey, how about we try to, you know, do something more tailored to your needs, and where participants can also contribute. So for that RF sucks, like you receive RF, but typically you don't transmit back to the server. So we thought, right, let's do a network which is portable so we can do outdoor parties, use it for protesting and things like this. I'd like it to be steered as a silent disco. We want some level of redundancy so that imagine we're all at a protest somewhere, we have five people carrying part of the network, somebody gets arrested, we want the network to survive. So yeah, we want to achieve that through redundancy and we want it to be extensible in the sense we want participants to the protest or the party or the event to be able to share their own art or what they're seeing and bring their own IP services, essentially. Which leads us to this beautiful graphic. We basically want an IP network, we want it to be free and open source, to be scalable to hundreds of participants, maybe thousands because of the order of magnitude of parties as we like them. We want to be able to have custom IP services on top of this and yeah, we want minimal configuration because not everybody is actually a hacker. So let's see how we actually implemented this. To translate this into a requirement first, we'd like an offline Wi-Fi network. The reason for not using the GSM stack is because of the fear of MC catchers. So we thought maybe people can use their phone but not the GSM. Let's see how that's going to work. We want basic network encryption and things like this, adaptable power so that we can carry our device for several hours if we need to be outdoors or we can plug it for like days or months if it's an indoor party. We'd like to be able to stream music at a reasonable speed. We want to use web browsers as clients because that allows no configuration and everybody has typically access to a web browser if they can join the network. And we'd like complex services like video conferencing and it's party time. You're on the network already, you're streaming music? You're someone streaming. Sorry, I'm not super multitasking in the morning. Alright, so I'll talk a little bit about the implementation now. So the photo tip here is of what we have on the stage. This is the main idea. We have our DJ here. Streams via IceCast to the Silent Protest setup was on streams to all of you nice people here. The logo is cool, but... So going into actual hardware for the access point we're using a Unify APAC Pro primarily because it is sports gigabit Wi-Fi, hundreds of clients. For the computer that does all the transcoding and streaming on the server zone we're using Raspberry Pi 3 because it's portable, doesn't use too much power. And for the battery, using a nice lithium-ion battery shipped straight from China hasn't exploded yet. So far so good. And this is what the entire setup looks like outside the box. The battery is a 12-volt battery, goes to a transformer that steps up to 48 volts for the AP and then plugs right on into the Pi. Of course this is our software stack. Linux on the Pi and using OpenWT for the access point. Engine X does the web server video conferencing by Hublin. Liquid soap does transcoding from the AUG stream from Tractor to MP3 so you can all play it. That was a requirement because iOS devices do not play AUG streams. They only accept MP3 in a few other small formats. And of course IceCast 2 and Docker to help us automate the whole thing. So of course it's going back to what I was saying earlier that this is what we ended up doing. We wanted a gigabit IP network over Wi-Fi. 2.4 and 5Hz access point costs about $120 for the UniFi or AP Pro. The network is entirely offline. No internet access which is both an advantage because you do not want to be tracked when you're on this network. Each AP can have up to 200 clients. We stream at 120 kilobits. And of course we want to eventually add mesh networking for scalability and redundancy. Jonathan here had the initial project idea back in March. And of course later just a few weeks later we had a prototype streaming to 100 clients in our office. Worked pretty well. Then we made a battery powered month or two later when we had the giant car battery provided by our coworker. Then earlier this summer I worked on getting everything running with Docker so we can distribute the builds. And now in the summer we're launching the product. The service not product. But we're not done yet. This is the actual features that are resulting. We have the wireless network. We have live streaming of the audio which hopefully you're all able to listen to right now. Video conferencing. Below the stream you click on the hublin link that should open up a WebRTC video stream. You can all do a video chat at the same time. Extended file sharing over the IP network so you can share media or other files. And of course everything is open source and we can view it on our GitHub page. Now Jonathan you're talking about some of our previous prototypes. These are my favorite. This is my favorite slide. You can see the huge car battery pouring on the first device up there. Huge transformator also. This is all recycled for Burning Man. That's our first decent prototype. Let's call it that way. We call it San Francisco camouflage because it's covered in glitter. And this is a ghetto one we actually used like at our last party because it was very small. It's made of cardboard. Amazon box I believe. As basic as it gets. All right now for some demo videos. Let's do this. All right so that's the final prototype. So it looks like a proper box. I actually carried this on the plane a few times now. So yeah it looks like a bomb. I got TSA last week on the way back from Vegas. It's absolutely fine. Okay so from the point of view of a DJ basically they're using this kind of software. This one is called Tractor. There's equivalent open source. The best one is called Mix. And those things can stream to a server typically online. So that's not what we do. We have an offline network. But the functionality to stream to Icecast is already built in. It's streaming in OGG which interestingly is not supported by any iPhones. I mean if you have Chrome on an iPhone it cannot read OGG. So either we could use like other application like force people to use VLC and stuff like that. But we thought no that's really not what we want. We want the thing to work for everybody with a browser with no configuration. So we actually ended up transcoding this stream to MP3 because MP3 is understood by any phone as far as we can tell. So that works pretty well. Okay that's always set up for parties. You can see the device are there. The DJs are there. This is in a cave somewhere in a public location. We strongly support peaceful parties in public locations. Consult the law of the place where you do this before you do it. In San Francisco the big deal is between federal land where it's a no-go and city land where it's okay to party. So that was the day before the party in a huge cave. We set up this environment. Yeah we have the DJs sit on the floor. That's how we receive them. Can you show me the next one? Yeah that's the same setup again. Can you show me the party the next day? So that's basically the same spot with the same people the next day. It looks a bit better. We used both our silent disco setup which amazingly covered the entire cave. To be honest like proper speakers at times. So we know we can accommodate 100 people easy on our setup in all those conditions. Thanks for the people who helped us better test your ideas. Okay. You can skip that. You can skip that. That one is cool. That's one we did at a non-location. It's outdoors again. And you're going to see in the next video that after a few hours so we did that for the full moon because we thought it was cool and after a few hours the police showed up and they were like you're too noisy. We don't mind you being here but you're too noisy. So we showed them up. We've got a silent disco setup. So we're going to shut down the speakers and switch to silent disco. And amazingly they let us party for a few more hours. So yeah that's one of our colleagues at Salesforce was a DJ. That's the police right here. And they were like yeah we don't mind what you're doing but you should do it silently. Cool. Okay. That's the first time the thing actually worked. So yeah my apartment looks like a haggle space. We have tractor right here which was streaming for the first time. So we could stream from a laptop. We could stream from an Android phone. We could stream from an iPhone. And yeah that was working properly. So that was very cool. Okay you can skip that. That the first time the iPhone worked. But I think everybody now has understood the point. Yeah that's also at a public location in a park. So I think we get to see the DJs in that one. Maybe maybe not. So yeah we have them sit on the floor right. She's actually a professional DJ. She was nice enough to come over to test her environment. So we had her sit on the floor. She has a very small controller next to her. There's a pack of generator. And that's basically what you need to like through a party. If you connected right now you might see that there's a video chat. And amazingly this takes no resources on our side. Like the video chat is like entirely client side. Meaning that this case really well. We particularly happy about that one. I mean and this is useful in real life condition. I don't know where you live but there were serious protests in Auckland. Which is like you know across the bridge from where we live. After the Trump elections. And filming police and being able to see what each other see at a protest. And being able to carry your shit without being caught by UNC catchers. I'm some political value. Okay I think we're good with the demos. Alright this is a quick video. Before we had Iowa support we had the people in Iowa who saw VLC. So they could actually stream the live stream. Nope. There's the videos. Oh yeah. Back when we were doing the car battery setup with a giant transformer. Not as portable. So at this stage my landlord was convinced I was building a bomb. And this one is particularly rough. The art of prototyping baby. Lots of time spent prototyping. This is just going through demoing all of the configuration. So the code is on GitHub. If you want to play with it. Commit. We have an interesting architecture now which is Docker based. So it should be easier for you to add your own services. Island protest baby. Okay. So we're going to talk a bit about. Okay that was the layout of the demos. We're going to talk a bit about like where we'd like to take the project further. Yeah where we want to go from here. I'd like to add decentralization because if you're at a protest or an event and someone gets taken away by the cops or is no longer able to be with the rest of the group we want the network to still work so distributing both the access points and all of the CPU intensive parts, the streaming video chat, the same thing with redundancy in case something goes down or doesn't work. And mesh and of course we're valuing using IPv6 to help us remove the need on some of the centralized IPv4 necessities such as a DHCP server or DNS which IPv6 can help redistribute. And of course to make the project more portable and ideally wearable. Right now we have it in this nice little small briefcase, it's very portable but being able to be like on your person and not obvious will be much helpful so people can identify you as one of the crucial parts of this network. And of course we want people to help us get involved. Find more information on our website, everything is open source and we welcome any sort of contributions or additions. Last slide. Never mind. Alright, so if you have any questions feel free to ask. We would like very much to contribute to our small open source projects and we hope you enjoy the party. Thank you. Thank you. There's plenty of time for questions and suggestions and answers. I have one myself. You must have so much fun traveling. Yeah, it's been a bit of a nightmare to be here, my first try to cancel. But we're so happy to be here and it makes the experience even more worthwhile. Anyone? Please go to the microphone, yes. Can you talk into the microphone please? Can you tell us more about your choice of router and what modifications you had to make to that or if any? I saw you used open WRT and stuff. Yeah, so you're right. It's an interesting, I mean basically when we bought the hardware, we bought it for the hardware because it was a dual band, it was a cheap dual band Wi-Fi router and we know we wanted a gigabit network given the number of people we want to accommodate. I tried to use the vendor software first and at some stage it told me, hey, if you want a DHCP server on your access point you need to buy a physical dongle. At this stage I was like, what? So yeah, from the open WRT was like an obvious choice to me because of the number of platforms supported and we had to tune you right, certain things to make you work on every phone. In particular, if you're using iPhone, iPhone has been a nightmare from A to Z. Like I told you about the OGG stack which is not supported natively inside the web browser but that's just a tip of the iceberg. So they were not connecting at all. And we were like, what the hell? And we had like, you know, the two bands like the 2.4 and the 5 GHz like working correctly with Android and it turned out that if the band is too thin for the iPhone, then it won't connect. So we had to switch it from bands of like 20 MHz to 40 and that allows us to like, yeah, so the connectivity problem. Who question? Additionally, the choice also to use OpenWRT open support for people who want to replicate the setup they can use the OpenWRT config and don't need to use the exact same hardware as us. Some very cool stuff with OpenWRT though is that they can now support meshing of the Wi-Fi and I mean, that's something which allows you to build redundancy like you couldn't before in terms of speed of the network and like scale you can cover. Like this little case can accommodate like 200 people and it can mesh with other such suitcases I have another one there and yeah, this is fucking dope. This is for real. So there's a bit of tuning to do with like the kernel modules and stuff like that. That's not the default config but yeah, you can support two things. 800211R which is the meshing and K which is the fast switching of one access point to the other. Yeah, very cool. Dope question. Any other questions? Anyone? I have one more question. Where's the protest? Where's the protest? The idea that, you know, we support the idea of non-violent forms of expression and what you do with the platform is up to you. We hope you create art with this and tailor it to your need but that's not your objective. It's just to, you know, provide the framework to do that especially to people who know nothing about technology. Cool. Thanks. Can I have applause, please, for Androsine and Landrat. Thank you very much. Thank you.