What's up everybody once again it's Brandon Shawn and I'm back with another video and I got a special guest today you guys I have Nate also known as Lucid Dancer and yes he is a dancer dudes been killing it on tiktok I want you guys to check out this story not only because of what he does and his tiktok success also we're going to talk about one of his stories from complex con that's super dope that's going to be worth y'all hearing just from a networking standpoint so even if you know if you aren't a dancer for one you might want to reach out to him might go ahead and plug right we'll make sure y'all you might want to video the post the video because he's popping on tiktok but also he's going to have a lot of great tips for you guys influencer artist networking so much this thing is at your impact let's get into it I appreciate you being here Nate what's good how you doing I'm great man thank you for having me I appreciate you reaching out to him for sure man for sure give a little bit background how long have you been on tiktok let's start with tiktok and then we'll flip into some of the other stuff yeah I have tiktok since august so it's just been about four to five months okay yeah and now you're right about at 100k you're close to that you got a video that took off for five million views what do you feel like was your success on tiktok no actually were you popping on other platforms before tiktok no and not like this tiktok uh became my biggest platform in five months in comparison to instagram youtube facebook twitter where my biggest platform at the time was ig like 1200 followers so tiktok is what started blowing me up and then it kind of traveled around the internet got you got you traveled around the internet yeah what do you mean by that uh it blew up on tiktok um overnight and then made it onto the four u page uh started to get million after million on tiktok and then i posted it on youtube actually the same day i posted it on tiktok but it took about two weeks for it to catch on and then it got two million in a week then in the same day someone posted it on twitter and then it got posted on funny hood vids on ig and both accumulated like two million each and then yeah so hold up the twitter got two million the ig got two million you were already passing two million ultimately we know you had the five million on tiktok and then how did the youtube video do i posted that on my own channel and it got two million uh in a week on your own channel your own youtube channel my own 55 subscribe subscriber channel yeah i think people were looking for it and then saw that it was not only on tiktok but on youtube because i didn't want just i didn't want it to be limited to be seen on tiktok so i put it everywhere yeah yeah okay yeah man look you already are speaking to what i've told people again and again and again about tiktok it's a different beast man yeah it's trans transferability is different like you don't have people locked in they will go and stuff for whatever reason you can get into those nuts and bolts on another time but people really do travel from just being on tiktok your music your videos all that stuff so i'm before i even get some of the details with you and some of the things tips and tricks that you kind of went through and experienced what did that feel like bruh uh when i was dancing with them the video that got viral um i wasn't expecting it to go viral i was just enjoying myself dancing with who the java walkies the java walkies yeah two of the java walkies are complex and uh the quick quick the quick story is that i got a picture with them originally and that's all i wanted was just to have a picture just to be like java walkies and then i shot my shot with them i was like can we do a video real quick and they were down and then it was just a minute long and that was pretty much the end of it posted on facebook ig and that's where i thought it would stop and then i was like let's put this on tiktok to see what happens and tiktok is a thing that made everything else happen and i only had 80 followers on tiktok yeah of course not surprised so let's let's walk back because i do want people to get the value of um the java walkies how you approach them and just complex con in general because so many people ask me do i think complex con is worth it and i say when people ask me do i think a3c is worth it do i think so many events are worth it and i'll say the primary thing with most of these types of events are the ability to network the ability to be certain people and hopefully leverage that into something so walk through kind of how that encounter happened and then we can get back to tiktok um anyone who's been to complex con understands that there are celebrities and content creators all over the place from king vader to loku j chance a rapper to shon heavens and um like i said i use it as a place to network and there's a lot of areas and opportunities are for nests for nests at complex con you can kind of sneak back to you know back stages and back rooms and uh sometimes say someone has a VIP bracelet but they don't want to go to complex con the next day you can take it from them if they didn't put the wristband on too tight and there's just these little cheat codes throughout complex con like even sparking up a quick little conversation with someone who's working there and if the relationship goes well they might be you know nice enough to let you back somewhere so because of the nature of this this event um it would kind it just kind of happened upon itself that i saw the japa walkies and i just took the opportunity to shoot my shot and to ask them if they would be down to shoot a video but i'm networking and talking to everyone else uh king vader the bentis these are guys that are huge on tiktok hit key to the great he's huge in the dance community and i'm just talking to them asking for advice looking for contact to you know uh collaborate with these people okay got you so he's approaching them like yo i dance too i appreciate what you're doing yeah let's talk like that kind of thing yeah have a quick video ready to just you know 15 30 second video sometimes a little quick highlight reel to show different things in a very short amount of time that's okay so they can see that you and you aren't a wack dancer yeah um and then even just dancing whenever there's music around uh people always got the phones on looking for a moment to put on the internet so that's exactly what ended up happening so that the goal was met got you it's interesting so you basically your promo is one you already have a snippet to show people if you meet specific people and then also doing it or live in real time for other people to capture and for for all they know you could be somebody that they just don't know the name of but you're good at what you do oh oh shit who's this yeah yeah okay i like that strategy i like that strategy so with the jab walkies you said you came up you asked for a picture and then and i'm a reset it just they walked away right after the picture though yeah that was almost it i and i almost didn't make a tiktok guys think i was corny for kids but my boy was like just make it stop being stubborn i have an issue where like i can be stubborn and i used to not be too open to ideas outside of what i like to do what is why i reached out to you because this is the type of stuff you say on your channel all the time yeah yeah i appreciate that man a lot of people are like that but especially creators yeah they get set in their own ways of different and ways of thinking kind of make who you are yeah but cool so you got at your own weight and next thing you know you blew up yeah and the rare thing is i don't i didn't expect to blow up off of something that wasn't following any trends that's not a challenge that wasn't a dance challenge although that is the plan to reach out to kita let's wins and be like fiction and say this is what got me viral with the jab walkies i want to do like a handshake dance challenge at this point you know what i mean okay handshake dance challenge what do you mean by that uh so in the video i walk up to and we shake hands and uh it's the three of us and we're passing kind of like dance moves back and forth while holding each other's hands and uh i would in theory walk up to let twins or fiction and just go for a handshake then it turns into a dance so it's like oh every time this guy meets a famous dancer they he shakes their hand and then like a cool video or a cool dance move starts happening you know it's crazy okay got you i wonder if i let me see if i pull that up real quick so people can get some context since we are on on the video here we go go ahead and whip this up no man it's not letting me all right i'm gonna get it up at one point in this conversation but so what did you do when it comes to hold up can you hear that oh man okay so obviously this is it i'm not gonna let the music play or whatever just let people get a vibe yeah yeah yeah i hear you uh uh yeah they nice it was a lot of pressure i'm not gonna lie okay yeah i mean look the jab walk is definitely one of my favorite groups obviously i mean there's there's a lot of people yeah what show was that again that they uh yeah that's not s and l you said s and l oh uh america's best dance crew there it is yeah and we're just on s and l with the baby that's what i thought you were gonna say oh no no no man i've been watching them i actually you too yeah like watch walk with the dance community heavy man i don't i'm not like an active involved person but i've been yeah i didn't like that dancers yeah um for from that show to the even so you think you can dance all the weird shows yeah why youtube binges i knew about all that stuff yeah yeah it's interesting i love dope dances but um okay so you you did this you had this moment and i i like the fact that it was creative it wasn't just like dope dancing it was that interactive piece right mm-hmm because i see this as a challenge you do have to make this a challenge because automatically you're involved in multiple people those ones tend to just move you more virally yeah and it's it's a novel at the same time mm-hmm it's definitely something you should leverage and i think people who are trying to figure out challenges should look at it from this angle too often we look at challenges to just be dances and yes it could be a dance because technically y'all are dancing in that but you don't stop at just okay let's dance or let's do this dance or let's make it simple all right because why why would somebody do that when there's all these dances just like there's all this music being promoted why would they stop to listen to your new song yeah why would they stop to check out your dancing if i'm not an active person who's looking for dancers i just like dancers why would i stop to do your challenge versus everybody else's challenge that's that's being um created these days you know yeah it's easy to do it is it yours yours is easy to do and it is easy to be creative beyond the norm and you just take the time to do it what made you because you didn't pre-plan this you didn't know you're gonna do something with the jabber walkies how did y'all come up with that dance that fast that's that's an easy answer the jabber walkies are just amazing dancers and i'm not so bad myself so we were able to just freestyle it but to so specifically y'all just thought to hold hands and i walked up to them he shook my hand and then the third and middle put his hand down and we all danced to no music by the way i threw the song on there because it came out the same day and it was playing all the way in the background you could barely hear we weren't even really dancing to hot by gunna and uh young thug future and gunna and i was just tacked on before i put it on tiktok because i was like this needs music to feel a little better and now we're the shirt a lot because i'm realizing people recognize me when i wear a striped shirt and striped shirt wasn't even really my thing but now it's gonna be my thing for a while yo that's crazy so many elements in that because you have one the post-production understanding how to take a raw moment and then still make it digestible to go viral because yes i need to add this music and all these little things okay make it digestible it's cool by itself how can we make it even more digestible and then for you to even run with the branding aspect of look people recognize me in this shirt now i gotta wear the shirt you call travis scott because the braids are like travis and the last pressure to wear that hairstyle all the time now it's hey i they say man whatever blows up whether it's a specific song a specific you know dance all these things that's that's that association and now you have to figure out how to follow up from that so what have you been doing to think about following up is it just being the challenge so far you've been thinking about uh planning on the challenge uh contacting i've been emailing dancers that have gone viral salif kita that's wins um fiction what else have i done reached out to you i also work at a bar philadelphia eagles came by and then an event and uh swoop the mascot was there and i walked over to the guy that was part of the crew and i asked them hey look i have a viral i have a video that went viral and i have this idea i came up with this right on the spot i was like hey what if i showed up to a eagles game and i walked up to swoop and i shook his hand and we did like this handshake dance that i did in the video so um some of these things kind of come together in the moment but even that is still uh that's still a technique or a skill that people should do whereas like you see an opportunity you just go for it because that's how i went viral i just went for it so i just quickly came up with the idea ask them if they would be down showed them the video real quick showed them the numbers showed the legitimacy of the fact that i went viral showed that it went viral multiple platforms showed all the followers i gained and then asked for specific emails from coordinators and other people that are important to approve of me just being at the eagles game um posting more videos this is very important if you go viral you should go live on that platform the day you go viral i go live on tiktok because i found though i can go live because i watch your channel you said that and i was like i'm gonna go live right now i went live 300 people were in my live the numbers were going up even faster so i was already getting followers because of the video but then followers were tacked on because it'll let you know how many people followed you through your life and people were sending me pandas which is like a former tiktok currency and um translates to real money by the way yes it does and then um twitter i was very active on twitter respond all of them i was active on tiktok twitter instagram responding to all the comments and i you know just being funny and joking here and there and just interacting with all the people engaging with the people um answering all the questions i say hi to everyone who pops up on the live to acknowledge every person like i don't care if your name is user<PHONE_NUMBER> i will say the whole thing it's just like sense of humor so it's not just showing that i'm a dancer but showing the other parts of me that i know are also just as marketable personality and being someone that people like outside of dancing the same thing happened on instagram when funny hood bids posted it on their account i went live and that was the most amount of people that ever like been on my live all at once it was about 60 70 people uh brought some people on live with me and we talked and they asked me like oh how'd it happen so i repeated the story so many times over the past month um posting my own content wearing this shirt more often plans to do a dance video to hide i email the java walkies like i spam them which is a technique you know that you have uh you've said to do you know like don't feel like you're bothering them or annoying them the point is to get their attention right um i emailed a lot of uh other dance companies dm'd a lot of other dance instagram accounts that post viral videos dance viral videos and i just would like send the same message over and over like uh like once every couple days so those are things that i've done got you so i see that you have a great ability to move in the moment recognize those opportunities and act on them at least you you're being you know on a hot streak right now right now and then you're talking about following up hitting people up to get more more things posted all that stuff now tell me what's the plan though like in terms of a dancer then what does that look like to okay yeah you work with these other guys or you actually do get a video with king vader or okay you actually do end up on the philadelphia eagles field and do that dance in the middle of the game and then they put you on the jumbo tron and go viral from content and all that kind of stuff okay that happens what what does sustainability look like for you that'll be taking uh me as a dancer and my skillset and this moment that is now a part of my resume bringing into agencies bringing into auditions call castings and uh hopefully getting signed to an agency that's a direction that a lot of dancers go and through the agencies they get booked for uh you know music videos commercials uh you know they go on tour stuff like that is the goal of mine is to be able to tour with artists uh you know i have dreams with performing with certain favorite artists but it's not like i would turn and down if it's someone that i don't listen to but it's it's all about being able to um build build build a larger platform from this point on and create consistent work and start getting paid and stuff like that okay got you who i'm just curious because okay agency agency is not necessarily a record label but right i'm trying to imagine if that doesn't happen right because at the end of the day you you are building things up competition is heavy and you still have to look for somebody else's approval on that side of things what ability do you have or have you seen anybody build their own kind of indie fan base from a from a dancer standpoint and flip that themselves where they can control their own destiny a little bit more that way yeah i think he's led twins as an as an example they um they they have such a strong brand being twin dancers with big afros tall black guys from french uh from france that they they kind of they already had that working for them and they dance very differently than everyone else yeah their style is super unique yeah and um that was able to help them win i mean their skill set alone was able to win battles and then they were able to collect money from winning competitions and then um they get noticed by world of dance and they perform on there and then they started to tour they started doing master classes and workshops all over the world they were able to travel and get that going that's something that um i and other dancers can um that's another direction we can go in as well is we can become teachers we can become instructors we can become owners of our own dance studio there's an iam fresh dance studio and philly owned by smart mark and who's also worked with schizo let's win and um he's been a world of dance as well so you can always go in the direction of investing in opening the dance studio even if you're able to run out just you can go to already an established studio and start having classes there because that's happened to me too i've been asked to work at community centers with kids and you know go a couple days a week that's dance that's consistent dance work if that's you know the kind of answer you're looking for got you um somewhat but i'm also thinking about the aspect of like a rock star dancer or something i guess yeah that's that's going to america's god talent abdc world of dance okay holds all the higher profile of um companies and platforms like that auditioning and those folks will lock you into contracts though don't they yeah they can nearly lock you into contracts so that comes down to you bringing the right personality the right brand um being marketable and bringing your skill set you're just you being a great dancer does still kind of come down to how good can you dance because you can't be on tv and not be great like you talked about your shirt and what that did for brand what about and then you talked about like twins with the afro french uh twins all those things right that that stand out for brand have you ever thought about what could make you like a brand you know what i mean yeah there's i'm still building um the brand because this happened without me realizing what would i what i didn't plan for what happens if i go viral i only knew what i can do afterwards um and watching your video helped to know like what to do after you you go viral because you have a video about that but i wasn't really prepared for that to happen the way it did and um so i like i said i have the shirt i have the hair i have like my dance style was a little unique in how i look i don't really dance like other people there's nuances that you can detect if you're savvy with dancers and see you got a little bit of this guy in that girl in but it comes down to uh like my name is lucid so i want to go in a direction where my videos kind of start taking a psychedelic turn um you know dreams and reality and you know inception type of stuff and that's a lot of big budget stuff big budget ideas that i have but i'm already thinking how can i come up with content videos photo shoots that are affordable that you know won't burn my savings into you know into dust i got you so using post production to tell a story brand around as well okay what are some tips that you have when it comes to tiktok well if you do have a video that gets you on to the for you page like me like i said go viral i mean go live as soon as it happens and interact with everyone and um post consistently i only post a few times a week i would recommend posting daily if not a few times a day um that does require you to have a long list of stuff of ideas that you know check off the list so that you can and constantly come up with ideas stuff that's consistent to whatever your your um your tiktok is about some videos i made right on the spot and it's not even dance related one was like uh me watching an old video game and making fun of the old like graphics so some stuff is just like right on the spot i make it right then and there and i post it um what else would i say go live more often in general uh pay attention to the trends and the challenges and how would you go more live more often in general um to just just be around to talk it's kind of like you checking in with the people that are following you especially if you have a lot of followers if you're in the 10k 100k um i think they're engaging with the people who are following you is a really good way to um know what they want from you that they can actually give you the ideas by just you talking to them and just kicking it with them i've been on tiktok for two to three hours sometimes and all the kids they're middle school kids and they'll tell me the rappers that are coming up that they like and i'm like okay well i'm gonna make videos of these artists look at their videos look for the vibe look for the look in the video and make dance video versions of that to connect with y'all more and then we have a closer relationship so interesting i like that the the customer feedback essentially and yeah because at some point they're gonna be running the newest trends they're gonna be running what is relevant so as much as i like the artists that you know i like in my age bracket i still want to connect with what's going to be the next wave 100 by also also implementing my own unique self into it because i have my own ideas that will you know it all come together got you okay yeah that makes sense that makes sense well cool man i i appreciate just all the gems you dropped today first and foremost and then telling the story because i think it's interesting to hear a different perspective obviously we talk about artists and and you know a lot of things are transferable to so many influencers and people who want to build a following but hearing it directly from someone outside of that box i think is extremely valuable to see what you have going on and again yo man if y'all want to get some videos post it you know i mean you know hit Nate up you know hit him up at lucid dancer well obviously he's dope you know he held us on with the jabberwockies hopefully you get that challenge going that would be my last question like what would be so the point of that challenge and getting that to blow up would be showing other people as a resume that you pop the challenge off yeah that i got other people that don't even dance all the time to do it man it just doesn't sit right with me man that doesn't sit right with me and that's why i like we'll start to ask and pry so deeply into like some of the next things and what things look like for dancers because i feel like there should be a way that bump what what everybody else could offer you directly in terms of agency bump becoming a teacher and some of those things it seems like there should be a way we're just directly off of who you are and what you build like to in the same way running up a challenge for behind an artist song does shit for artists there should be something that it pulls back to for you whether it's at the very least merch of lying shirts you know what i mean um you know the backpack kid how he was able to create an entire thing and brand off of that whole thing and i guess he realized yelp got a key wearing his backpack right recording glasses yeah like but there has to be something that makes you the guy not just being a performer with rappers or artists and things like that which is cool that's work just like you have i can be the superstar artist and then i can also do sing deals i can be backup singer and i can do and i can write music there's all those versions but i'm just thinking about the way where you can be the guy so now you have even more leverage to do the other things because you have this thing built on yourself so i encourage you to think more about that and feel free to hit me up on it when you come up when um when you come up with some ideas and things not going live it's the first time i've ever had an interview of this nature because um i've most of the time i'm just figuring a lot of figuring this out as i go your channel helped me go in certain directions and be more open minded my homie also he's also just making sure i'm not being so stubborn and closed minded because i have a tendency to do that so i'm still someone who is learning what to do along the way like i don't have all the answers yet that's why i do encourage people that if you are trying something and they're not getting the results you want you definitely should be open to more than what you're comfortable with because like i said he told me to get a tiktok and i almost didn't do it and i was like okay you know what let me get out of my own way and just do it what do i have to lose but other than him being right and i would be happy to be wrong in a situation and look how it turned out that's a good way to sum it up i like that okay with being wrong sometimes be okay with being wrong quit being stubborn try tiktok a lot of y'all know that i'm i'm pushing tiktok heavy these days but it's for a reason and you can check out how to push your music anybody who's in the music or have friends in music you can check out some music artist specific courses at tiktok music promo dot com there's a free training get on that and definitely reach out to lucid dancer check out his tiktok his videos are dope and look state commission what'd you say new commissions people people DM me all the time i'll pay you to dance to this song this song can't be garbage though uh unless you'll put up a lot of stacks this is a small thing i will say about tiktok i don't know if i said this anywhere um i feel like i might have said it whatever somewhere but look i think also trying to get tiktok influencers to post your shit is a good a and r situation where you find out if your stuff is trash or not because if you can't get anybody to post it then that's starting to let that gives you an idea so there's a good feedback loop there so you'll find out yeah go to complex kind of your long beach cali area too i'm in an affiliate area and i flew out there once a year so i made it worth it uh like i said there's so much that can happen at tiktok there's you never know who shows up on top of the list of people that do show up and uh there's so many members of each team you want to talk to those guys too it means one thing to talk directly to say freeway or talk directly to chance but there's usually a manager or team member that's around that you would rather want to talk to instead too yep great insight great advice definitely talk to the to the other guy because the other guy has a lot more power than you perceive yeah sure and be consistent with your um content 100 i appreciate you once again man everybody if you like this video go ahead to like what if you like it you might as well share it and if you're not subscribed you know what to do hit that subscribe button


Hello and welcome to this presentation of the STM32 SDMMC controller module. It covers the main features of the controller which is used to connect the CPU to an SD card, MMC card, or an SDIO device. The SDMMC controller provides a communication interface for the microcontroller to communicate with multimedia cards, SD memory cards, and SDIO devices. This interface is fully configurable, allowing the easy connection of external memories, thereby extending mass storage capability when more memory is needed. Applications benefit from the reduced pin count required to interface with memory cards. With the SDMMC interface, applications can easily manage high speed read and write operations in external flash memories. The SDMMC controller supports data bus widths of 1-bit mode, default, 4-bit mode, and 8-bit mode for enhanced data throughput. The SDMMC interface interconnects with the internal DMA, or IDMA, to offload the CPU during data read or write transfer periods. The SDMMC clock generator can generate signals up to 400 kHz for the initialization phase, and up to 204 MHz for cards supporting high speed mode. To enhance power consumption, the SDMMC clock can be disabled when the command and data buses are idle. The controller can interface with SDIO modules with advanced features like read-weight, suspend or resume operations, and standard operations like multi-byte transfer and interrupt signaling in 1- and 4-bit modes. In MMC mode, it supports stream mode, boot, and sleep operations. The SDMMC controller is an SDMMC bus master that provides all SD, SDIO, and MMC functions needed to interface with cards. It consists of an SDMMC adapter and an APB interface. The SDMMC adapter provides functions such as clock generation, command, and data transfer, while the AHB interface manages the control and status registers, FIFO buffers, as well as IDMA with linked list support and interrupt requests. Two clocks are available for the SDMMC controller, the APB clock or PCLK for the APB interface, and the SDMMC clock or SDMMC CLK for the SDMMC adapter. The SDMMC adapter includes a control unit that contains a power management module and a clock control module with the clock divider for the card clock, SDMMCCK. The clock control module provides a 10-bit pre-scaler for SDMMCCK clock generation, which allows it to generate a clock ranging from SDMMC CLK down to SDMMC CLK 2046. DDR memory devices are not supported in divide by one mode. The control unit can disable SDMMCCK generation when the bus is idle. The command path circuit is used to program a command response sequence. When enabled, the command path shifts out the command index and argument on the SDMMC CMD pin. After the last payload bit is sent, a CRC7 is computed and sent on the bus before generating the end bit. SDMMC CMD IN and SDMMC CMD OUT are two modes indicating how the SDMMC CMD pin is working. When a response is expected, the command path is configured to SDMMC CMD IN and waits for the device response. The transmission and reception of commands is controlled by the command path state machine or CPSM. When no command or response is in progress, the command path is in idle state. When the CPSM is enabled to send a command, the command path moves to send state until the last bit of the command is sent. Then depending on whether a response is expected or not, the CPSM can return to idle state when no response is expected or move to a wait state and wait for a start bit on a command pin. Start of the response transmission. When a response start bit is detected within the allocated time period, the CPSM moves to receive state. After receiving the last bit of the response, the CPSM verifies the response's integrity using the received CRC and then returns to idle state. The CPSM returns to idle state after a timeout if a response start is not detected. The CPSM can be configured to send a command synchronized with the end of data transfer. When this feature is enabled, the CPSM moves to pending state and waits for the end of the MMC stream transfer. When the last data signal is triggered by the data path, the CPSM moves to send state. The CPSM can be configured to initiate the boot normal or alternative boot procedure. To trigger this boot phase, the CPSM moves to boot state. When all data in the normal boot mode has been received, the CPSM terminates the boot phase and returns to the idle state. When all data in the alternative boot mode has been received, the CPSM moves to the send state to terminate the boot phase by sending the CMD0 reset command. The SDMMC controller offers high flexibility for configuring the command indexes and arguments. With a flexible 32-bit register for configuring arguments and an independent 6-bit field for the command index, this architecture ensures that the firmware can address any type of card. The command path state machine is able to generate all command tokens with no restrictions on command index or argument. In addition, the start-bit, transmitter-bit, CRC, and end-bit fields are automatically generated and sent on the bus. Our response is a token that is sent from the card as an answer to the previous command. There are two types of responses, short and long. With four 32-bit response registers and no response constraints, the SDMMC interface supports both long and short responses to correctly initialize the card and communicate with it. Short responses have a total length of 48 bits and are composed of a mirrored command index, 32-bit command status, start-bit, stop-bit, and CRC7 checksum. When a short response is received, the command status is saved in the SDMMC RESP1 register, and the mirrored command index, when available, is copied to the SDMMC RESP CMD register. Long responses have a total length of 136 bits and are composed of the 120-bit CID CSD register content with the start-bit, stop-bit, and CRC7 checksum. When received, the CID CSD card register is copied to one of the four SDMMC RESPX registers. The SDMMC interface also features the automatic detection of a start-bit, command index extraction, 32 or 128-bit response extraction, and automatic CRC7 verification. Once the SDMMC ARG and SDMMC CMD registers are programmed with CMD index, weight RESP equals 01 or 11, and CPS men equals 1, the CPSM moves from idle to send state, and the host starts driving the SDMMC CMD line to send the command to the card. If the CPSM is programmed to wait for a response, weight RESP equals 01, 10, or 11, it enters the wait state, and the command timer starts running. If the card doesn't respond within the maximum NCR time, the timeout flag is set, and the CPSM returns to idle state. When no response is programmed, weight RESP equals 00, the CPSM returns to the idle state. Once a start-bit is driven by a device, it is detected on the command line, and the CPSM moves to receive state. When the response is fully received, the received CRC code and the internally generated checksum code are compared, and the appropriate status flags are set in the SDMMC interface status register. Then the CPSM enters the idle state. Note that the CRC fail flag will only be set for responses with a CRC, and when the CRC check failed. After a complete command with a response is received, the CPSM remains in idle state for at least eight SDMMCCK clock periods to meet command-to-command timing or NCC, and response-to-command timing or NRC constraints. The data path transfers data both to and from the SD, SDIO, or MMC card. In single data rate, or SDR mode, on each SDMMCCK clock cycle, the data path can send one, four, or eight bits depending on the bus width configuration. In double data rate, or DDR mode, on each SDMMCCK clock cycle, the data path can send two, eight, or sixteen bits depending on the bus width configuration. Transfer logic is clocked by the SDMMCCLK clock. It is divided into two subunits, one for data sent and one for data received with a dedicated control bit and status flags. The data buffer is not part of the data path. Transmit and receive FIFO logic are mapped in the AHB domain. All signals from the different subunits are resynchronized. The CRC calculator guarantees data integrity between the card and host. At the end of the data packet, the CRC is calculated automatically. In single data rate, or SDR mode, depending on the configured data bus width, the data path sends data blocks over one, SDMMCD0, four, SDMMCD0 to SDMMCD3, or eight pins. SDMMCD0 to SDMMCD7. First, a start bit is generated on the bus followed by the data packet with the first to last bytes of the sequence, the fourth byte in our example. Then the CRC16 and end bit are appended to the data packet on the bus line. In a four-bit data width configuration, each line has its own start bit, end bit, and CRC16 check sum. When the data is sent to the card, the card returns a CRC status on the SDMMCD0 pin. In this example, the four bytes are sent over the SDMMCD bus in eight-bit mode. For each SDMMCDCK clock cycle, a byte is shifted out with a start bit, end bit, and CRC16 check sum on each data line. When the data is sent to the card, the card returns a CRC status on the SDMMCD0 pin. The data path state machine or DPSM controls the transmission and reception of all data. When the DPSM is in idle state, the first transition is triggered when the DPSM enable bit and transfer direction are set. Note, the DPSM enable bit must not be used to transfer data with SD, SDIO, and MMC cards. For data transmission, when enabled, the DPSM moves from idle to wait S state and then to send state. While in wait S state, the DPSM waits until the data FIFO empty flag is de-asserted. When data is available in the FIFO buffer, the DPSM moves to the send state. In send state, the DPSM starts sending data to a card according to the data rate, the bus mode, and the bus width set in the control register. At the end of each data packet, the DPSM sends an internally generated CRC code and end bit and moves to the busy state. In busy state, the DPSM waits for a CRC status flag. If it receives a positive CRC status, it moves to wait S state when the card is not busy. From wait S state, a new packet transmission can start or the DPSM can return to idle state when all the data is transmitted or the transfer is disabled. A negative CRC status from the card or a FIFO underrun error can force the DPSM to return to idle state when the card is not busy. For data reception, the DPSM moves from idle to wait R state. When a start bit is detected on the bus, the DPSM moves to receive state where it remains until a full packet is received. As long as the end of data transfer flag and errors are not detected, the DPSM will keep switching between wait R and receive states. If an error or the end of data transfer flag is detected, the DPSM will return to idle state. If the transfer is to be disabled, the DPSM moves to the idle state. A read wait state is an SDIO specific operation to stall the transfer in order to execute other commands or internal operations. It can be reached from receive state while a transmission is ongoing or from idle state. When the firmware requests a read wait stop operation, the DPSM moves to wait R state and waits for a start bit from the SDIO device. For boot acknowledgement, the DPSM moves from idle to wait AX state. When a positive acknowledgement is detected, the DPSM moves to wait R state to receive the boot data as for data reception. If a boot acknowledgement timeout or a negative boot acknowledgement is received, an abort command has to be sent by the CPSM where after the DPSM moves to the idle state. In double data rate or DDR mode, depending on the configured data bus width, the data path sends data blocks over four SDMMC D0 to SDMMC D3 or eight pins, SDMMC D0 to SDMMC D7. First, a full cycle start bit is generated on the bus followed by the data packet with the first to last bytes of the sequence with odd byte data on the falling edge of the clock and even byte data on the rising edge, the fourth byte in our example. Then the odd and even CRC16 check sums and full cycle end bit are appended to the data packet on the bus lines. In a 4-bit data width configuration, each line has its own start bit, end bit, and odd and even CRC16 check sums. When data is sent to the card, the card will return a full cycle CRC status on the SDMMC D0 pin. Double data rate mode is not available in 1-bit mode. In this example, the four bytes are sent over the SDMMC bus in double data rate 8-bit mode. For each SDMMC CK clock cycle, two bits are shifted out with a full block cycle start bit and end bit and odd and even CRC16 check sums on each data line. When data is sent to the card, the card will return a full cycle CRC status on the SDMMC D0 pin. In MMC stream mode, the data path sends a stream over one pin, SDMMC D0. First, a start bit is generated on the bus, followed by the data stream with the first to last bytes of the sequence, the fourth byte in our example. Then, the end bit is appended to the stream on the bus line. In stream mode, there is no CRC, and the card will not return a CRC status after having received data. A 32-bit wide 16-word deep FIFO is used to buffer data between the slave AHB domain and the IDMA on the master AHB domain. A single data FIFO is the data source for the data path transmit and receive packets. Depending on the DPSM status, the data path FIFO can be disabled, transmit enabled or receive enabled. Dedicated receive and transmit FIFO status flags are available to ease firmware implementation. When enabled, the IDMA transfers data between the FIFO and an external memory offloading the CPU. The integrated DMA inside the SDMMC transfers data between memory and the SDMMC FIFO, allowing reduction of the CPU processing and AHB bus load. Two IDMA operating modes are supported. Single buffer mode, where all transfer data is located in a single linear buffer and linked list buffer mode, used to transfer data located in multiple variable size buffers addressed by a linked list op pointers. The IDMA linked list buffer mode allows firmware to update one buffer while the SDMMC transfers the data of other buffers. Each linked list buffer has a base address and buffer size. Every time the IDMA reaches the end of one buffer, an IDMA buffer transfer complete interrupt may be generated when a subsequent linked list buffer is requested. Each linked list buffer provides an acknowledgement for data availability. At the end of the SDMMC transfer, a data end interrupt is generated. The hardware flow control function is used to avoid FIFO underrun when DPSM is in send mode and overrun errors when DPSM is in receive mode. The hardware flow control logic stops the SDMMC CK PIN signals and freezes the DPSM when a risk of underrun overrun is detected. Hardware flow control must not be used with a variable delay, for example, SDR104. In send state, the SDMMC CK PIN clock signal is stretched and the DPSM is frozen to prevent any FIFO underruns. The clock and DPSM are restarted when the FIFO is half-full or all the last transfer data is available in the FIFO. In receive state, the SDMMC CK clock is stretched and the DPSM is frozen in receive state while the FIFO is full, risk of overrun. The clock and DPSM are restarted when the FIFO becomes half-empty. Concept. The read-wait operation is an STIO-specific operation that allows the host to temporarily stall the data transfer between data blocks for better managing the data buffer or for sending commands to other functions of the STIO device. The SDMMC controller supports two read-wait modes, either by stopping the SDMMC CK or using SDMMC D2 signaling. The advantage of SDMMC D2 signaling is that you are still able to communicate with the card while in read-wait mode. When the RW start bit is set, after the data block is fully transferred and the CRC code is correct, the DPSM moves to the read-wait state. The DPSM remains in read-wait state until terminated by writing 1 to the RW stop bit. The RW stop bit is auto-cleared by hardware once the read-wait phase is terminated. If the CRC code fails any further, all data transfers are stopped and the DPSM remains in the received state. An abort command needs to be sent by the CPSM which moves the DPSM to idle state. In this case, the read-wait state will not be entered. Read-wait mode must be used with a variable delay, such as SD104, to handle FIFO flow control. With multifunction cards, there are multiple devices that share the access to the SD bus. When the function supports suspend-resume, the host can temporarily halt data transfers to perform other internal operations or to communicate with other functions and then resume the suspended transaction. If a card supports the suspend-resume feature, the host can temporarily halt a data transfer operation to one function or memory in order to free the bus for a higher priority transfer to a different function or memory. A command with the CMD suspend bit set must be sent to indicate to the SDMMC that the current command is a suspend command. If a suspend request is accepted, the DPSM will wait in waitR state as the function is only suspended after a complete data block. When IDMA mode is used, it empties the reception FIFO. If the application reads the FIFO, it has to empty the reception FIFO before setting the DT hold bit to idle state. When the FIFO is empty and the DT hold bit is set, the DPSM moves to idle state. Only then can the firmware start communication with a higher priority portion of the card. In order to restore a suspended transaction, the firmware needs to reconfigure the DPSM to read the remaining data before requesting a function resume. This function is no longer supported in SDIO version 4 or more recent. The interrupt concept is used to inform the host of changes in the card status using the SDMMC D1 IRQ pin in one bit or in four bit data bus mode. SDIO interrupts are sent from the card to the SDMMC host when the card detects an external event. Interrupts are only sent outside the data transfer periods. The SDMMC host detects interrupts sent on the SDMMC D1 pin once the SDIO EN configuration bit in the data control register is enabled. While the DPSM remains in idle state and in busy state between data blocks for DS, HS, SDR12, and SDR25 speed, or after the last data block in all speed modes, all low levels on the SDMMC D1 pin are detected as interrupts from the card to the host. Here is an overview of CPSM interrupt events related to commands. Correct command transfers are either signaled by CMD sent, command without response, or CMDR end, command with response. Command transfer errors are signaled with CCRC fail and C-timeout. CPSM ACT signals when a command transfer is in progress. Here is an overview of DPSM interrupt events related to data transfers. Correct transfers of all data is signaled by data end. Correct transfer of a data block is signaled by DBCK end used with the read weight feature. Data transfer errors are signaled with DCRC fail, D-timeout, TX under R, and RX over R. Aborting an ongoing data transfer or after a transfer error is signaled with D abort. Data send transfer busy indication is signaled with busy D0 and busy D0 end used with the R1B command, SD voltage switch feature and SDMMC sleep feature. DPSM ACT signals when a data transfer is in progress. Here is the list of flags available for FIFO management in interrupt and polling modes. DMA requests are internally generated when triggered by FIFO threshold events. Here is an overview of interrupt events related to IDMA, boot, voltage switch, and SDIO interrupt. An IDMA master AHB transfer error is signaled by IDMATE. Correct transfer of a complete data buffer is signaled by IDMA BTC used with double buffer mode. Boot acknowledgement errors are signaled with ACT fail and ACT timeout. Voltage switch progress is signaled with VSW end and CK stop. The SDIO interrupt is signaled with SDIO IT. Here is an overview of the peripheral status at specific low power configuration modes. The device is not able to perform any communication in domain or system stop mode and lower. It is important to ensure that all transmissions are completed before the SDMMC controller is disabled or the domain or system is switched down to stop or standby mode. Note that the AHB bandwidth must be at least three times greater than the SDMMC bandwidth. Performance depends mainly on the SDMMC bus width and clock configuration. The SDMMC interface can generate clock signals up to 204 MHz, but real speed can be decreased by the application and depends on several factors. The SDMMC bus capacitance has to be considered as PCB track and card input capacity can play a significant role. GPIO settings also have an effect. Fast GPIO mode should be applied on command, data and clock signals. Lower power supply voltages and extreme ambient temperatures slow down the edges and in some cases the application can't always manage fast data flows, especially due to overly frequent exception servicing or long time spent in interrupt handlers. Note that the AHB bandwidth must be at least three times greater than the SDMMC bandwidth. The SDMMC interface can be used in a wide range of applications where a low pin count is needed to interface with removable or permanent mass storage data memories. The SDMMC controller can be used to extend device connectivity when using external SDIO devices, for example Bluetooth SDIO modules. Here is a list of peripherals related to the SDM32 SDMMC interface. Users should be familiar with all the relationships between these peripherals to correctly configure and use the SDMMC controller.


So yeah, let me do the PGA, right? Yeah. Or there's a GMI tool here in the microphone. It's here, or you can grab this one and see what you like. Yeah, I think it's easier with this one here. Or I don't know. What with slides, that's fine. So we have 40 minutes and five people, or I don't know how. No, no, no, no, it will be yourself. It's OK with Yanduk, you know, we expect people not to use Yanduk. So in the end, maybe someone won't show up at such a high level. So it's not waiting for anyone. So it's VGA? OK. OK, so we can start. So I think we can start. OK, guys, so let's start our lightning talks. The format will be, each speaker has up to 10 minutes. And then we exchange without a break. And we'll be here until seven, right? It's six now. I don't know what time it is. So yeah, let's give our welcome to Michael. So thank you. My talk is seven unseeable tips and tricks in seven minutes. So about me, my name is Michael. But I don't have time to present myself. You can see all the other talk about it. So I guess that everybody knows what is unseeable. Please raise your hand if you do. Good, perfect. So I said that it will be a lightning talk. So it's packed with action and all kind of stuff. And the first trick is the action module that you can use with a variable called unseeable package manager, which is a nice trick, but it's deprecated with unseeable 2.0. And the way it works is that you can use that to install something on Debian, on Fedora, on a rail, because it's able to dynamically detect what kind of package manager you want using the setup and the fact, and create an action that depends on that variable, which means that you do not need to set specifically UM or DNF. So that's how I make a portable unseeable playbook. So tips number two. When people are using unseeable on the command line, you see that you need to give the group for the Hadox command and you have the group all. And it turns out that that group, well, you can use it for other stuff. For example, for a group variable. So we should have a variable that needs to be set for every possible server. You can use that. So this one is not a good tip because it's documented. But you can also use that group to get the list of all hosts on your system, which is quite useful, for example, for monitoring. Let's say that you want to declare an Agios server. You want to ping all the servers. You can either get a second copy of the list, which is quite bad because each time there is duplication, there is a risk of error. Or you can use that trick, which is just a loop. And when you add a new server, it gets added. When you remove a new server, it gets removed. Quite easy. Tips number four. It's also a tips with a variable. It's a nice one. So you get your Nagios server and you want to get the IP address of the remote system. How do you do that? Well, it turns out that you can use two stuff. The first one is a variable, well, an array called the host var, where you give the name of the server, which can be the name given by the for loop from the previous tips. And then you can use a nifty stuff, which is ansible underscore default underscore IPv4. So you get the default IPv4 for ansible, which is kind of equivalent to the public IP address. And ansible does that magically. If you get two IPs, one of them will be the good one. And that prevents you from doing complicated stuff like I do with other tools. So the fifth tips is more complicated. I think that a lot of people here are using CentOS or well. And you may have seen that CentOS was out two weeks after well 7.2. And for well 7.2, system D got changed. And I wanted to use a journal D and the export feature, but it was only on 7.2 or Fedora or newer distribution on the old one. So in a needy world, you should just say, okay, for well version superior to 7.2, let's use that. But you cannot do that with ansible. You can only give IP address or this kind of stuff. And it turns out that using group buy and a specific ginger expression, you can just test for the major version, create a group, and then apply journal D remote to that specific group. So you can filter on any kind of variable, so group and be done with it. And it's working. Now it's no longer a problem because all hosts are updated, but in the future, well, it will help. So tips number six, that's my favorite. That ansible by default work with SSH. That's fine. SSH is secure. Everybody knows how to use it. But most people do not know that you can use for other stuff. So for example, you can use it with SSH foot. You can use it with... What do I have? You can use it with windows. And well, you can use it with Gus Fish. So you can connect to a NISO file, modify the NISO file and write it. You can use it over Solstack. So if you already have a Sold infrastructure, like I do have for the Gluster project, and if you want to just get rid of this, well, you can start with ansible over the bus. And because, well, it will not be a good lightning tool if you didn't speak about Docker. You can also use it to connect directly to a Docker container and modify the inside of the container, which is a complete relation of the immutable principle, but I do not care. And the last tip is... Well, the last tip is not so impressive, but I didn't have time. It's basically that you are not forced to declare everything directly. You can add your own host. Like I can decide to make a playbook that connects to a remote host that I can't manage, but I can still add the host and make sure that ansible connect to it using delegate to and remote user. And I don't know if people can read from that that you can use the add host module. And that's it. If you have a question, well, it's a lightning tool, so wait for me outside. And if you want to contact me, see the same stuff, my email, my IRC, no Twitter, no Facebook, no LinkedIn. Thanks for listening. Yeah, very lightning. Okay, next one is Jakub or Alexander if he showed up. Okay, then Tomasz. Then we may have to repeat this like three times, both of you guys. Okay, hello. My name is Tomasz Kukral, and I work at the ICT department at Czech Technical University, and my lightning talk is called Fun with Kubernetes. Sorry. How we get to do Kubernetes? We have the prehistoric era, which we are using bare metal machines and deploying virtual machines manually and this horrible stuff. Then we discovered that we need more virtual machines and deploy them faster. So we started to use OpenEbula. And then we decided that we don't love our virtual machines. We just want to throw them away and use a different one. Now we are playing with containers and Kubernetes. Our deployment is very smart. We have just two Kubernetes nodes and one master, and a few running apps. I think it's two or three apps currently. But the deployment is backed by the self-storage. And the self-storage is running on seven servers, which means that we need ten servers to run our small deployment of Kubernetes. Sorry. Yeah. That's the map of our network. You can see here that we have the two physical nodes. They are called I1 and I2. And IMAS is a virtual machine. And it's running the controlling components of Kubernetes. Every component of Kubernetes runs in a container, except the kubelet. I will talk about it later. We are using self-storage for persistent data. And the bird darting daemon is running OSPF and distributing routes to other servers. But the image gets a little more complicated when we started to think about the high-level a bit and the full torrent. You can see that there is I1 and I2. But there are so many links and so many switches. And the image is inverted, so everything which is yellow is red and it means that we are missing it. It's not done this way. The most important thing we need in Kubernetes is persistent storage. Because as one OpenShift developer called us, we are the crazy guys running MySQL databases and containers. And from my point of view, NFSN really sucks because it's center point of failure and huge bottleneck. If this server goes down, then your whole storage is down. So we are using self, as I said before, and we are using a RBD plugin in Kubernetes. But it's not as easy as it may look because developers run just one proxy. It's your engine, the application and the database. But when I try to deploy it in Kubernetes, I have to put Qproxy behind these three containers. But in production, it has many problems because the app container knows static assets. So I have to remove this static assets from app container to proxy container. There are some CSS files and stuff like this. So I need another shared there which is used an empty plugin and I need this hook called exec command which is used for copying shared assets from app to proxy. In proxy as well as in app. So just one container with app get, I think, five containers in Kubernetes after deploying. And there are because we are running databases in containers, we need to backup them sometimes. And we are using Bakula and it makes even more difficult because in every port must be running Bakula file DEMON and this file DEMON must be able to communicate with the Bakula master and it make it even better, even worse. It use two connections in both ways. So I have one crazy dream that I would like to use backup in a stream way. The same way as we are using for streaming Docker logs streaming Kubernetes logs that I would like to use my SQL dump and put it somewhere in the backup stream or something like this. And I don't want to care because Bakula container is necessary to configure it and to take care of the networking. And when I was preparing the presentation that I get a really crazy idea that I can use my favorite my SQL dump and put it into the standard output which means that this my SQL dump will be saved in Kubernetes logs and it's kind of backup and I can recover it later. But I didn't try it. Maybe if you have tried you can tell me if it works or not. And we sometimes need monitor servers because if it's not running that you know. And our current status monitoring is not very good because we are monitoring just physical servers they are good in good condition and we are monitoring only the Kubernetes status because it's not easy to go into the Kubernetes and monitor each spot and the container. We are using rock solid solution based on Nagios and Observeum but it's not as easy as I would like to reconfigure this rock solid because you cannot move rock very fast. So our current solution is not able to monitor the pot which is monitoring in seconds because pots go down and up. So we are currently not monitoring the pots itself. Sorry. And another favorite thing is ATCD. If you have ever tried to run ATCD you know that's not very easy to monitor it. There are so many metrics it's not just up and down and Nagios wants free statuses. Okay, warning and critical. And ATCD has so many statuses that I currently didn't write the whole script to monitor all the metrics. Sorry. It's all. Thank you for listening. If you have any questions and we have time I can try to answer it now or just catch me outside and we can talk about the Kubernetes later. Thank you. Thank you, Tomash. And next I think it's Chunip Adra. Do you have slides? And Alexander, did you show up? Are you here? Good evening, everyone. So today morning I gave a deep dive workshop on the topic comparing the different orchestration tools for containers. So in the last slide of the GitHub page which I have used for the workshop today, you can just go back and try if you want to dig more into. So running containers on a single machine is not something what is meant for. You need to run containers in a production where you have multiple machines working in a cluster and then you should be able to run containers in production with features like replication rolling updates and all those features which you need in the real cluster or production environment. So that's where containers are going to be deployed or the real use case will be there. So why we need them? Because first of all we kind of get a lot of follow up kettles. If some application is very complex you want to make sure that it becomes very easy and you should be able to deploy them and very easily rather than waiting for some complex operation to happen. We want zero downtime, we want auto scaling and we want eventually reach to a place from one command line. So there are different tools already available which are kind of helping out with orchestration. Swam, Kubernetes, Mezos, Diego, Apache Aurora, Amazon ECS, Azure Container Service. So they can all help you out to move your containers in a cluster environment. So just want to briefly go about that what we needed to have those orchestration . So basically we need, first of all, multiple nodes to be part of cluster. So as we know that whenever you want to deploy a cluster you need definitely multiple nodes. There would be some of them would be a master, some of them would be slaves or the minions what you call them. So master can basically go and say okay now deploy some containers on some nodes and come to more detail in that. So you need somewhere to identify that in a cluster environment which is master which is slave. So you need some kind of mechanism to handle that. Like in Docker swarm you have a token. So with that token you create the cluster and in that cluster once you create the cluster then they become part of the cluster. So basically in the same environment you can have multiple swarm cluster but they will be identified with different token ID. So in the same environment we have master and slaves. Then we need a container engine to run on each one of the nodes which is going to host your applications. So we have Docker, Rocket which is going to host your run your containers on that, on top of that. Then you need a single source of truth about configuration and other details for the cluster. So it's like if you are saying that I want to run my application, then there should be five of them. There should not be either four, either three or less. So you need some kind of key value pair mechanism through which everybody can refer and say, okay, am I the right configuration what I want to be? So the key value pair helps you out with that and for other users also. So you have at CD console this kind of tools which is being available for you to manage that single source of truth. Then when you try to move to the containers with multiple machines you would want container from one machine to talk to the container on the other machine in the node. So for that you need to have some kind of over network or some kind of way to basically reached to one container to another point. So how do you do that? So it's like you have a network from a Docker network, then you have a different solution which has been built through which you can solve that problem. Then you have a scheduler to schedule the containers on the node. So basically you would like to have some kind of a scheduler which would define how my nodes, how my container will be deployed on particular nodes. So you would like to have this particular part application on the node which has SSDs. So you need some kind of mechanism to identify that. So scheduler would help you out in figuring out that if you have put some kind of constraint there that should be able to handle that. Then once you have prepared the application now containers are mortals. Container can come and go any point of time. So it comes back on machine 2. But your application should not be worrying or the client which is accessing that particular application should not be worried about that. So there should be a service discovery mechanism through which cluster should know that how I am going to change my path or basically the correct path to the correct container which came on different node. Then you need some kind of a proxy process. So let's say you are a client. You just want to connect to one endpoint and in the back end you might be running five containers. You might move to hundreds of them. So whatever would happen client should not be aware of that. Should be accessing the one endpoint and they should be able to do that. And once you have that then you would also want to have some kind of shared storage. So for example if you are a user of the other machine and if it's writing some data on the disk then the same data should be available on the other machine. So there should be no interruption in the writing as well as the data should be there what you have been writing there. So what you have some kind of shared volume like cluster FSF, flocker, they are different plugins which will help you out to maintain and move from one to another note. Data is already there because of shared storage. These are kind of broad features what we need in the different orchestration mechanism already available. Now just quickly see what the difference between them in Kubernetes, Swarm and Adbanzos. So we will just go and quickly just look at them. So Swarm uses to identify the cluster . Currently he just has a docker as an engine available to run the containers. Swarm has different key value pair plugins. So basically you can say I want you at CDConsult, ZooKeeper, BoltDB, whatever you want to use. You can just do plug and play with that. That's what we're going to do with Docker Swarm. There's a lib network which would give you different drivers but it also support different network plugins like Veeve and Calico. That's supported in Swarm. For the scheduling part, you have a couple of filters and strategies what you can follow. You can have some filters based on containers like I want to run this container only when my DB is running on this node, something like that. You can have the container in different strategies like you can spread my nodes, spread my containers across different machines or you can say just pick the one node and fill it first and then move to someone else. You can do a random . You can do some things called interlock which you have to have an extra one. Basically, Docker Swarm by default as a final, they don't provide by default our internal DNS server or service discovery mechanism other than putting the details of the containers on the ATC host file but there's work in progress through which you can have internal DNS or service discovery. So, the interlock can also work as HAProxy. You need to have HAProxy if you want to do load balancing with Swarm. And there are plugins like Rekstrae Flocker which you can use with Swarm. This is the setting in this laptop? Yeah, sure. Can you help me out someone? I'm really sorry about this. I don't know. I want to go back. We're running out of time but did Alexander or Jacob show up or we can give more time here? So, I just want to know. No, that didn't show up. We'll give you three more minutes to fight with GNOME. Not me. So, for Kubernetes, quickly, we'll just finish off. Kubernetes has master and slaves. It can support Docker right now but Rocket work is in progress. It currently has KVLupers at CD. It can have Flannel, OpenV Switch, Veeve, Calico as a plugin for the networking. And in the scheduler you would have predicates and priorities to decide where you want to build your containers as well as you can have some kind of like an OpenShift we have different kind of strategies like SSD strategy. So, basically put this particular container on a machine which has SSDs, different zone and all that. Then you have inbuilt cluster DNS server which is so you can have an add-on in the Kubernetes which can help you also in discovery . So, this is an architecture for Mesos. I'm just going to skip that for time being. So, okay. Out of time. So, you can just go and look at this up. GitHub slash NKHRE. I don't know. Yeah. Okay. Thank you. Thank you. Okay. Thanks everybody for listening and for participating. Please do rate the lightning talks and talks and we hope to see you here tomorrow. That's it for today.


Switchboard is a LGBT plus helpline. We're a support and listening service and we are in the office of Switchboard in the heart of London. Switchboard started back in 1974. It was off of the back of the partial decriminalisation of homosexuality, which happened here in 1967. So we turned 45 this year. As an organisation we tried to move with the evolving nature of culture and education and society. G3 for non-profits has really helped us. We worked really hard with Google ad grants to ensure that whatever people are typing it in, it somewhere hopefully will directly link them to Switchboard. It's difficult now to realise quite how radical Switchboard was. I first phoned in 1979. I was just coming up to 15 at that point and I was told about the first groups in this country supporting young LGBT people. My life changed and I will be forever grateful. As someone who identifies as queer, I wanted to get involved with my own community doing some type of direct outreach. We've always come from within the community to support the community. In the beginning we were 24 hours, now we're 10 am to 10 pm. We have 200 volunteers, so it is a lot of people to coordinate and G Suite for non-profits is what enables all of that. Collaboration on documents, attending meetings, it makes all of that seamless. We use Gmail for most of our collaboration. Google Drive is useful for sharing, so when I need to write a proposal for something that gets shared with the trustees, the trustees then comment and review that directly. Hangouts is a really useful tool that we've used within Switchboard and due to the nature of being a volunteer-led organisation, everyone gets to have a say and it feels like a much more unified, consensus-driven meeting than before. So I started out as a volunteer and I've taken many calls over the years. Some of them are good, some of them are bad. Some days I think I've wasted my time, some days I'm basically on the verge of tears because it's been such a powerful call of help of somebody.  We listen, we try to understand, we suggest places that might help. Switchboard is able to help people to be their authentic selves.