T quite fantasti If worship value is hard, Na gini dima from her Kwa nise. The last segment of this year this one segment Four the last segment Y254 TV, badawe. And also on Facebook, Y254 channel. And then, the hashtag is still Y in the morning.  And there's somebody who called it a fashion lookbook. But then how do you incorporate that into a business aspect or point you're able to make money for yourself and especially in this day and age where it's all about sharing on social media the likes.  How can you actually capitalize on social media to make a living, to make something for yourself? And this includes cheddar or money or that dial. And joining me live in studio with us is a very powerful gentleman. You can call him pretty boy Flaco, but he is Austin Alinda. He's only 19 years old and the things he's doing on social media are amazing. First of all, good morning. Good morning. Welcome to I2Four4channel. This is why in the morning. Thank you. I'm privileged to be here. And I'm really grateful for this opportunity. All right. So, you know, I was checking through your Instagram and I looked at your Instagram and compared it with Esa Prok. It's like, are you doing something? You know, are you trying to do something with Esa Prok? I normally follow up to the style because the name, even the name, my name pretty boy Flaco, it's basically his other name as they also known us. So basically he's a mentor to me. So as in the designs, the whatever, the way he poses, I'm just looking up to him because I want to be successful like the guy, the guy. The guy is feeling nice right now. All right. So ensure to her, Esa Prok.  You try to send him DMs. I'm trying, but then I will just... I really love your fashion.  All right. Hopefully he'll reply someday. Or maybe I'll get to dress him someday. Amen. Now away from that, let's come back to you.   First of all, what is the name of this brand before we even get to this outfit? It's really an interesting outfit. The name of the brand is Yikes. So this is my brand, my own brand, which I just came up with after I was done with high school, which was last year, April or something. So the brand is just everything is Kenyan made. Everything is locally made. And I guess you can just look at it and you can just think it's from the state. So I want to make the brands in Kenya. You know, people in Kenya are really creative, but then there's no exposure. So we find people who are engaged to me, people who are in Kibihara, but then when they go to machines and start sewing, they can come up with something nice. So we're trying to build a culture where people can find it amusing to dress Kenyan brands, tonavaliankara, tonavaliandini, tonavaliikes, as we project valiamanike and everything because we're giving them money. It's better just put the money in our community and just goes around. It's unique. Right. So that's what keeps inspiring me because I want to build something which I can be old. When I'm 30, I'm like, I'm seeing these people working in town, they have my brand. I'm seeing people working at get-to-places, they have my brand. Nona brand na mufkila pali na pita pali na pati maangusho. Abluanta friend, ajwa this thing is moving. So you're successful. Exactly.  Did you have like an initial business plan or a picture just behind the scenes like, this is what I want to come up with and then you went and researched because I understand most businesses have like a business plan. Did you have it before? I wouldn't say when I started a plan but then it was something more of passion. Okay. When I was back in primary, there was something. I was in Westlands primary. Back in primary, when you were almost closed in school, there was something called fundee. So we would normally pay 300 chillings and then the day which fundee was, you could come to school with home cloth. So that's when you could go home. Onapige savu, nakainende pale, it was a mixed school. We were both girls and boys. Onapige savu, you want to go back then to school tomorrow with some outfit. Upi tei vimbelewa, say me, this boy is looking nice. So you see, that feeling when someone says your outfit is looking nice. You looking... Ah, someone may pay guys. Eh, umo pige. Eh, ni ambi umi fana ni. You are not too happy. Exactly. So back then in primary in Kanzaku, I was me and my friend he's called Alfan. We were the boys, we were too young again. In primary you could find when in class 6 but then piki piga look, not tisha dijana klazei. No na. The girls from klazei, they are coming and they are saying, wah, you look nice. But then you are just small. So one of them come and you know, to adogo, I can't feel nice. So that's when I started loving fashion. It came as a passion. And since then, I never knew I would venture into some business like this. I never knew. Because literally, I never knew even where the clothes were bought or anything. It was just something of learning. I was going to town back when I was in Fumon or something. I went to Shindatang. This place is called Imentia where they normally sell outfits. So that's where I was staying almost the rest of my day and I came to Liyan. Me, I was one of the deliverers. I was allowed to go to Kifungafili and put 500, I put 10 in Liza, Kujitumatumakidogo. So that's when I decided and said, let me learn what they do. I'm just seeing people getting money. Me na patakama 20% am 10% because I'm doing deliveries. But then I'm there. So I decided to give myself a task and just try and learn where they get the clothes, where they get the shoes. Na, ni kama, kumodatu ni kama jundia plan na when the delivery guy was coming, bringing the shoes and I could just bring the shoes at Imentia. Ni kama, mambia, I've been told by this guy, so the guy I was working under, I've been told by this guy, you mentioned it's Tufulu. Nairobi someone? Nairobi snika. Nairobi snika has been giving me a space to work since back then. I'm really appreciative to him. Okay. He's the one who designed shoes for Baba. Yes. That Baba rejected. He rejected or accepted. No, he's never rejected them. As in he's been dressing him fully during the election time fully. He's the dress of Baba, even Baba, you know. Most of the ODIM people, he normally dresses them. He's dressed in a calligraphy. He's been doing things until he left. He left Kenya. So now he's not in Kenya. Oh wow. Exactly. So you're working under him? Yes, I was working under him back then. And stealing notes, you know. Right now I wouldn't say, I would say I'm still working under him because he's been an inspiration to me. Back then I was in school. I used to like his style. He's been a dresser. He's been topping the Nairobi charts of fashion and everything. So when he left, I decided let me take the spot. And trust me, I'm not coming easy. I'm just coming for the spot. Okay. Exactly. I want to maintain the spot he left. At 19. At 19. You know, I'm looking at you and I'm trying to look at somebody who was 18, Juzi.  Yes. No, but I'm Luya. You know, I'm looking at you and I'm looking at you. But look at you, you know. And at some point you said you went to Weston and then came back. You know, how was that transition and how did it affect you? My high school, my high school season, I've been, I've been staying in Nairobi for my whole life and everything. But then when I was done with primary, it looked like I was going to die. So parents were like, you can't stay in Nairobi. We'll have to take you to Weston because parents can't normally believe when they take you to rural homes to learn, you'll be disciplined, you'll be chill. But then they don't know, high school is just high school. Whatever is happening in Nairobi is the same thing happening in Kamaega. So I've been in Kamaega throughout my high school life. So probably made terms, I wouldn't come to Nairobi because it was like five days to four days. So when I was in Niko Sharks, I'm supposed to be posting, I'm supposed to be doing businesses when I ask you if you have a friend, I want shoes. Now because you are in Nairobi. So you have to control from there when you are going to Nairobi after I want one, two and two. Then once the business is done, we'll offer you like 200 shillings. So it has been affecting me for so long because I wouldn't say people knew I was in Weston. I kept playing like hide and seek. I'm taking so many pictures before I leave Nairobi. So when I go back to Weston, I keep doing midterm, I have to come back for the long holidays. Niko na a collection of pictures. So you can just be posting. So people are just thinking the guy is in Nairobi. Kuliza lewta kumfom, nambia ah kidoga mafili nuel, kidoga nini just because you're not around. So it has been affecting my life as in the business wise, my social life taking pictures or whatever. But then we came to finish. It's so late now we're just here. All right. You come with your big brother. You said he is very supportive in terms of navigating through the business because you know at 19 you're still young. For a month they say you are a kid.  I'm a teenager.  Yes exactly. There you go. So how do you handle that pressure of being not that fully adult person but then you have this business running, you're brushing shoulders with some elite people as well. How do you keep it grounded and still make money?  Even the starting capital wherever I started this business with. I never, I really understood how to learn and my uncle by then. By then he told me that he was doing these things because my parents were like he was so me, he was so me, I thought I was going in. It was just, my mum, my mum is a teacher. She really loves books. I thought I was going in and she was like she is like a father and she is a teacher. I'm best director when whatever. So by then I could just seek options other places so I had to go to my uncle. My uncle gave me the starting capital of 10,000 shillings. By then I was in Fomwan. It was a lot of money for me. Now this was in Fomwan. Exactly. The first money. Exactly. That's when I received my 10,000 shillings and that's when I decided this money will boost me from where I'm starting. That's my starting capital. So that's where I started. So what did you buy first? Shoes. So by then. A phone to post. After getting the 10,000 shillings I went for some outfit. By then I said I'm basically going to do other places so I was just buying the fit from the people. So they were just like I bought a 10,000 kit and they gave me 5,000 and they gave me a full fit because the shoes were like 3500 and they chose these 2,000 so I bought the money and went. But then I decided after buying this thing I'll buy this outfit and whatever will come out of it will make me something. And that's when I decided to post it. I said I'll post it if the future generation came. That's when I started fashion and I bought the town. Sunday is the town. I bought the outfit I'm really proud. I'm posing pictures and that's when I arrested. I picked, I picked. So people still love my fashion and my fit and that's how I started. And that's how it picked up. Exactly. And you mentioned that name Pretty Boy Flaco.  But you said if it comes an international brand you're not changing. I'm not changing Do you feel like at some point people are not going to take you serious if you call yourself Pretty Boy Samon? And plus if you add Flaco because you mentioned Flanko is also A$AP Rocky. Exactly, yes. Maybe maybe later on when I'm a big name I know it will bring interruption because you can't call yourself Pretty Boy Flaco because if you go to Google and say Pretty Boy Flaco it will bring A$AP Rocky's pictures. So you see it's temporary in your brand or something. So maybe when I'm big enough like the name is big enough for a brand I'll probably just go back to Othinalinda my official names. But then at the moment I wouldn't say people will just hate me or criticize me because if someone loves what you're doing someone won't say anything. That just embraced. Exactly because there's a stage name and there's an official name.  No. If someone loves you what you're doing I'm sure they won't criticize you. They'll just keep loving you they'll keep supporting you and that's what I love with my fans. My 43,000 followers I'm really grateful to them because whatever I do they just come through the brands they are buying everything promoting sharing everything my post name and that's how I'm growing. So I wouldn't say the name is at trouble to me or something right now but then later on I can think about it and change later on.  It's because I've been loving it it's because I've been loving it you see when you love something when you have something when you have passion for something you can't stop but then if you're doing something because you want to impress people you wouldn't go nowhere. So you know if you have passion even though you're doing business you can't go to January you know January finding someone to buy sneakers it's really hard because people had some sherewa, napege sherewa December then the money came out una patam du tamba kumbe I want this shoe and it's January it's really hard but then because you have passion you won't give up you'd be like it's fine I've woken up today I haven't made any sale there's nothing I'll keep doing it because you have passion and I'll keep posting I'll keep doing my thing but then if you're doing something because you've been forced or because you want to impress someone out there or you want to compete with someone you won't last for long because it's not something you love so that's why you're saying I'm more confident in this because I know I'm shining with it I know when I say I don't see someone as my mentor in Kenya on fashion I know what I'm saying because I'm going to sell you don't see someone that you can look up to in Kenya in the fashion industry there's no one what's happened to John Kavek and Brand Barber? no no no no there's no one because main thing you know why I'm saying I'm not seeing anyone as a mentor in Kenya Kenyan style Kenyan style they tend to do their things underworld and at the moment the people are talking about they're like 28 something 30 no John I knew John Kavek when I was in high school so you knew him back then yeah yeah yeah he designed something for some international stars or he's been doing things for so long yeah for a very long time I know maybe he's doing some good but then for me I keep telling myself I'm my own inspiration I'm my own mentor because I'm doing something which someone can't do with my age but nobody else is doing it exactly most of the things right now they are at home most of them doing it they keep depending on their parents mimi na kumbea if you ask my father or my mother the last time I told them to give me money for buying a fit I don't know it was then it was 2 yeah it was Nikitambu probably back when I was in Fumtut Nikitambu sana because I developed a culture when I have my money you can do what you have with your money but then you know when you don't have your money in your pockets you are restricted to doing something utakachinu sa kuna form lewa pa ali but then it's nakitu so you have to start looking for a story to convince your mum umamwe vins dinini nakpachepesa but then you have your money you can move freely okay even if it's 500 even if it's 200 as long as it's your mind you feel nice having it so that's what drives me you know I'm still stuck at 19 cause you know at 19 and 18 like just transitioning from 17, 18, 19 young people are struggling with identity crisis self-esteem issues trying to understand their mind understanding even adulthood and looking at you seated here on TV talking about how you know you want to be an a fashion mogul and win those awards it's just mind blowing by the way I had an award it was last year you won an award as well yes fashion design of the extreme awards last year all congratulations and good for you oh thanks all right let's backtrack a little bit when it comes to competition there's always there's always someone who is bigger even on TV there's always someone who is big who is a bigger man every actually every company as you know that that elite person how do you actually handle competition cause I believe it's a race you know we are all in a race we eat a business a company school we are competing how do you you know manage healthy competition to a place you don't feel some tap away when somebody you know that you know maybe you never expected they'll be bigger than you but again they just took over by storm how do you stay healthy even mentally and continue to work basically about competition I will say I normally fight competition by being unique when you be unique and you do your thing like right now if you check my feed yes what feed? TV? my Instagram feed oh Instagram feed yes mostly I have on Instagram Instagram Facebook so my Instagram feed that's why I normally do my things because that's the big amigdia I have I have like 40,000 followers so that's why I keep that's a lot of followers you know for a young person so that's why I keep being my things so basically if it's about competition I will say I normally I normally stick on being unique like right now maybe whatever I dressed in December or November is something that is something that someone wants to say right now I mean right now I keep thinking when I live in December I'm doing my self brand you dig because my main goal this year I want to do like every picture I post it has to have my brand because I want to promote my thing it's mine so if it's competition or whatever maybe the sneakers you know coming up with sneakers it's too hard it requires a bigger capital or whatever maybe the sneakers will match but when it comes to an outfit you can never find someone wearing this thing because this leather this leather it's custom made and the leather material you can work with it full day you won't see kama ele niwa na patas dima na kusua niwa niwa niwa it has some lining or it's fading exactly it's just it has some sort of a sleet exactly and you know and it has some more zips you can just do you can put your phones in it so I'm just trying to be unique because kita mumtu api gesa do ya kunda an outfit like this that I've gone through so much so just stay unique and just believe in yourself so you have a tailor you have you have a shop location why you build this from scratch yes it's a team so I normally do the designs I normally do the designs I come up with designs then we put them on paper after putting them on paper I have someone who normally does the software designing and whatever so atakuja atakuja form up these things on computer it looks like some sort of a cartoon alien yes it's an alien it's an alien something like an alien it's embarrassing it has a story behind it okay do you mind telling us the story please basically X the brand X the brand I came up with this brand basically because of introverts in society introverts yes introverts they put a silenc in society and they don't want to be so outside they don't want to be listened they just don't do that thing so that's what made me come up with this brand so the brand it has a story of I took the alien logo because it symbolizes you see utasuki ya kama kuna ma story when you normally all these CNNs these channels for foreign channels utasuki ya they are saying we found some pictures of aliens somewhere in the space exactly in the space so I tried and said the aliens they are there or you believe aliens are there exactly I believe they are there because it's something that has been done and has been proven by this scientist and whatever you know the normal nowadays we normally believe in science because science giving out medicines giving out things giving out science does so many things in society so I believe in aliens so that's why I said there are aliens somewhere and there are human beings somewhere so the aliens so where are these aliens where are they seated I don't know where they are I don't know where they are I will say soon enough I'll just do some investigation once I have the money enough like Elon Musk I'll go to space oh my goodness please don't forget to bring us the whole montage we played when you come up with the final findings I'll come and show you the aliens and everything please do so Yikes it's called Yikes Y-I-K-S symbolizing that introversal in the society but then they don't want to be seen so they have they have I'm trying to tell them if you see the first release the first release the hood is the t-shirts and everything they were written at the back here it was something like we are outside so we are outside basically symbolizing tuko mahali adikamam tuweni we are somewhere because you'll normally find okana kwa children home una pato umana kwa children home una pata you've put some music you'll find a kid dancing and you'll be like this kid can dance like this but then because it doesn't have the support it doesn't have the place to be it doesn't have the platform would out of a new kitu out of a manya maza until the day you put the children home with some food meaning at a fryer and they could dance so I'm trying to say even though we are introversal in the society we are not seen we are not heard we are not listened to but then we are there so we are outside so you consider yourself an introvert as well? I'm an introvert I'm really social I'm really social but then I'm trying to represent them because mendoza kituwa mendoza I'm trying to represent them I'm trying to because most of my friends I've been having some friends they've been having issues they have depression issues they are afraid of their parents because they just that is you are not a goper mostly ladies you find ladies they are just I'm suffering from this my parents are only saying to me so I'm trying to tell them don't worry just learn to speak out because depression nowadays is something really critical it makes people kill themselves I'm trying to find that thing I'm trying to make people be social introverts, introverts come together let's make something one so you are like the SI unit yeah I'm the SI unit exactly fantastic our clients I believe every business has clients I'm really interested to know who are your clients are they teenagers as well just young people like you are my adults as well I'm just a mixture of everyone from all the directions I've been I will say mostly 70% are teenagers but then the 30% the 30% of the adults I've started building it because I've just been done with the school the other year so I'm trying to build the other the other edge bracket but then most of my supporters and most of my clients they're teenagers but then sometimes they normally come with their parents and everything you know sometimes Kenan parents have to confirm what you're going to get so that's why una pata parenta mekujaana you have this thing you have official bids can you dress me can you and when you can dress the person you just tell them I can dress it's fine so you find a really I love language between parents and the teenagers so I'm trying to build that edge bracket of more people like 25 to 30 or something because you know I have to dress bigger people I can't keep telling on teenagers because I have to go if I want to go global I have to dress everyone if I want to make kicks to go global I have to make kicks for kids I have to make kicks for teenagers for parents something that can be dressed by everyone it doesn't have to be focused on areas so I'm trying to focus on that thing right now right so you only make this kind of outfit some have this variety like t-shirts there's shirts there's coats there are different things this one is like a jacket this is a jacket this is a jacket embroidered with another jacket but then there are different things like now I have a t-shirt inside it's something like you have another t-shirt exactly you have that alien yeah so we have plain t-shirts we have plain hoodies we have I mean I'm trying to do something how much especially for hoodies how much is it? 1500 okay that's quite expensive though it's not expensive if you come if you come close and listen to whatever we went through to make the thing this production this printing the fabrics are normally expensive because if you make something bad someone someone said a Kenyan man or a Kenyan woman they normally they normally keep criticizing so if you make something bad if I want to bring you something cheap something for 1,000 Bup in a tuning game do you want to make something yeah somebody will say such a name in the Gikoshi in the Gikoshi in the Gikoshi in the Gikoshi in the Gikoshi 50 50 in the Gikoshi in the Gikoshi in the 50 Bup just print you know I'll bring it no na probably I'll say I'm selling things that expensive but then I'll bring the thing which is cheap but what I want to say is the name is the name so criticizing is always there so I'll say manga maybe someone will find it expensive but then if someone loves something you'll get it no na a human being this something called we have something the attraction we can talk to someone that is a CD and I want this is my CDs even if you don't have money just we can save and get our CDs so if someone says I like the brand it's looking nice I can have it I'm sure someone can do the 2500 it's not something expensive because people normally buy designer if you buy designer like this shoes this Dior I normally get them this is the Christian Dior like the real Dior this shoes are normally going for 5000 shillings imagine okay so you see I wouldn't say I can buy this thing 5000 shillings because it's foreign because it's Dior and I can't buy Yikes because it's locally made and it's 2500 why but why do people prefer to go for the Fendi if it's on Laurent and Dior and not Kenyan everyone wants to be known everyone wants to trend mostly Kenyans Kenyans are really clock chasers so someone will just go back to the store and we Fendi in the second home but you know having a big brand on yourself this kulele kiburiflani nimivalia Dior and feeds you everything you can't tell me nothing I have Fendi on me so I'm sure it's just the love for the thing for the brand or anything and then people want to be known and people want to be praised so that's why I'm trying to build this thing you see these Yikes aren't it somewhere somewhere somewhere in 20 I have myself I have it from 2030 for myself out of 2030 so my vision when my brand comes to a place that's where the brand is you see there are people are normally attracted to the Fendi or whatever aren't it to be the same with the Yikes I'm not like the Yikes the easy type exactly you know the Versace mostly Kenyans mostly Kenyans normally inspire me and I'm trying I'm trying this year I have one goal aren't to aren't to know Kenyan styles they have told me the Kenyan styles they are there Kenyan stylists have ideas they are good they are so nice so I was thinking what if we come together and bring up something you see they will find this Paris Paris walk Paris something the New York fashion week people are coming people are coming from Kenya from South Sudan just going for the fashion week we can decide with the fashion designers we come together and get something like a fashion week to amo 2 kids to come in 2 kids to go to the harley 2 kids to come in to do something and just decorate to invest we bring a culture in Kenya as we are not trying to build Kenya to be something modern to send it to kwishi to it to be growing country growing country see we have something for our own which can go outside to when they say there is someone wearing there is someone wearing Ankara wear there is someone you see there Lupita is taking things to get a height Lupita, Majimbo the likes of those people that's what I'm trying to do that's what I want to do and I want to take that thing as a fashion influencer uta patawaleni comedians uta patam nileni actor Lupita is an actor Majimbo is a comedian I haven't seen a fashion designer from Kenya unless I'm not doing my research well for real? exactly I haven't seen someone who is so highlighted you see there Majimbo and Lupita are everyone knows them even my parent you can have a bangu do you know Lupita nyong what an ambience do you know so that's what I'm saying there's no fashion designer in Kenya when you client on a job maybe I work or if I never do that but then they are silent so it's a matter of come on amo jawak na international said lives wakubu wak yeah something of a sort the clouds so that's the dream that's the dream that's the goal alright we go global we go everywhere as we go outside alright now talk about social media you said you have how many followers on instagram 43,000 followers that's quite a handful when it comes to you know social media how is it important for a business or for anyone who is watching and they want to start something for themselves do you believe that ma mamboga can function well on an instagram pitch and have clients come from there you know to buy skumawiki yes as in the modern world the modern world everything nowadays is digital normally see sometimes you in the house it's 1130 or it's 12 at night but then someone just take the phone and then you go global and it's your food no no some things in the world in the world things are coming to modern way so as in someone who is trying to start a business or something I would advise them to focus on the social media because nowadays social media is really worth it utapata kama there are these brands kama kina den reafrika kina nini see these brands they are not having physical stores utapata kuna thought but then utapata kuna market atji denri denri hingi opata nini basically they are marketing they are using to the instagram on instagram we have influencers on instagram we have we have celebrities we have everyone everyone is there so if you just try and build a target target market well and focus on investing on you can invest in influencers wuna pa take tiyakwa na va wana fadani wana fadani advert or something utapata kuna getting people getting people because nupuflalaya raka raka awana whatever brand has won awana to other thing because brand is my mentor you see so if you focus on an influencer umwan bie daka wende maaliu se me na uza mboga pahali is imboga niki wuza e physical fresh limit zime to kakwa kini ni ni ni ni ni muta na sama tu I saw someone advertising this thing and I love the person because umwaranga me ninspa so let me go and try getting the food from that mamamboga let me go and try getting the food from kili manjaro let me you see I'm sure you've been influenced to go somewhere because of someone I'm sure you're like nilolamta amenda amenda pala kili manjaro they had a good senior why can't I try and go then you never need ego because someone went so I would say if someone is going to build a business yes social media works and that's what I've been selling through during Nikianzanga I was I was having an online shop I never had a shop I did it now in cities like a physical location I never had a physical store it was mainly online long ago I'm coming we're linking up I'm giving you a good you're leaving you see so I've been doing the sales through online and it has been keeping me up so I wouldn't say online doesn't work it works so how do you get your clients for you personally do you get like DMs am I do you share in WhatsApp groups yes I have I have on WhatsApp I have my business number and on Instagram I have a business page it's called Astrohypoa at the same time I have my own page so my page is more big it has 43,000 followers I normally do the market and it's my page uta pata mimi siya fokus on influencers and because I am one so it's better I just work oh you consider yourself a fashion influencer exactly so it's better I just work with it myself niji investia nif anegina and push it because I push my things alone most of my things adi yikes nili push pekiango the videos dek nini nini I had my friends they came through for me de nini atimi angin influencer so it's mostly family friends family friends but then I want diversify this here because I want this thing to go somewhere and I got to get able to push by the time it's reaching December upon asking hey yikes is on the magazine yikes is nini a Kenyan boy a Kenyan underboy doing things the boy is young the boy is having his brand the boy is I want that thing Kenyan boy dresses esaproki exactly below elisem exactly what you want to you know esaproki do you believe it will happen inshallah well they say if you manifest something it works so from my mouth to God's ears esaproki will dress hope one day esaproki will watch this recorded show hello esaproki now let's talk about money on this each and every pwanza that has come on this segment we always talk about money cash dow cheda amam pwanza chapa mula exactly um i always ask them uh what is your relationship with money do you attract money is money attracted to you do you chase money is does money chase you is money running away from you or is money running towards you and do you keep money do you have a love relationship with money everyone loves money this man doesn't love money everyone loves money and money money if you put yourself into if you put your head so much into money you can find sometimes you're confused sometimes maybe you've been doing your work if you've been doing your work then it comes to end man tu na pato me reshua you've been you've woken up unangalia hey you've received seven thousand from this so it's the payment coming in na patangiyo sa adi akili fkiri the mind is just junior and the heart piece junch kweni junch kweni so no one no one no one can say you don't love money everyone loves money and I wouldn't I would say I would say yes attract money when I'm looking like this attract money because someone will be like I'm looking nice when you look nice someone can talk to you when you look nice someone can approach you when you look nice someone can be like how can I get this thing how can I get this leather pant how can I get this jacket so that's attract money at the same time I chase money I chase money with this influence of mine with this dressing of mine uta pata mandi tu fridae you won't find me dressing like this niki kwa mandi tu fridae in takon me valia vans zangu kashu alpale my jeans my t-shirt I'll be in town nanda evi I'm taking delivery zuku niki pata cliente na na pati anapa modern costume na mombasta na ni ni ni ni ni adi people come and just be like flako it's you na mambia emi kumboka I'm working because at the same time if I'm broke and I'll call you you won't send me money so achiwa ni aibike wone flako influencer na tembe atana kifana bitu ni ni ni ni ni me ni you know some influencers as in the influencing thing people normally tend to be hiding because taki na ne kana pata mandi niki atana mbalia mi wani mbalia mask mbalia ni taki na ne kana nistanga hezo because you'll be ashamed people will be like you look different you look different it also happens to us on TV like you're off TV and you're walking people are like this is you this is you this is you so why does it happen does it come from a place of you know self esteem amma just the fear because amma it's anxiety no mainly mainly people are normally afraid of criticizing you know Kenyans Kenyans Kwanza Kenyans on Twitter they decide to criticize you you can just leave the social media and everything so most of the influencers they are normally afraid of the criticizing ju mimi mi taki na ne tembe evi no ne kana mprase me e ni mbalia you know pata you know just Kenyans they like exaggerating rapata umbalia crocs something something normal crocs is just a shoe like something but then okiva uta pata mprase me atu mebalia crocs why wearing crocs you are like it's a shoe you are wearing it too but then brand sakwa kiva it's something different why it's because you are influencer so mainly people are afraid of that thing but then meaning your grind I normally just do my thing I'm not afraid of doing anything all right second last question as you wind up what is that one less than you've learnt since you started this journey yeah fashion influencing coming up with all these amazing brands what is that one less than you've learnt that anyone who is watching right now you can tell them that this is really what I've picked up the main lesson I've gone through main the lessons the lessons have been a lot but then the one lesson I like to tell people just one exactly I like to tell people if you don't believe in yourself is not all believe in yourself is not all believe in you the first thing you have to do you have to believe in yourself before doing something okam kasu buwi ila fose me me me aji amina today I'll get that 500 shillings you see when you wake up with a positive mindset to kijia kia positive mindset I'll do this thing niki drop ya iks people will love it people will love it but then uki anto kusama aji shuku jini drop ita kaji watase man me kama zipning kini me fana nini you have you know the ear you know by the way have you ever received some flock for like you know for when this thing because I understand of african parents you'll be like are you Jay Z or Kanye West are you trying to be Chris Brown I should tell you mama ma super star I'm a super star your mama is easy breezy they understand me right now we had some issues back then because ewa kwa na niliwa at some point even my mom thought I was selling drugs because she was like why are you getting this money spati pesa you are young una pata pi pesa una was a bank una fa my mom was so hard on me na kwa mbia so she was like a partner kwa me until right now nga manza kwa na niniwa it's grind do you live kapa ewa manza kwa na niniwa na fana ali kudja she normally come sometimes you know she's a teacher ana from the rest time so she normally comes ana kudja na pata na fana sales na kudja nama viatu kwa nyumba na una na niniwa this guy was doing something right so you see so as in she has said ma mimi hatiwa they have you see when you just try and show your parents who you are they'll come to understand you but then if you keep hiding what I see me sumbuana me gumbana me fani but then if they understand you you'll find them even supporting you wow so that's what I did I came up and just made them understand me while I happened a fashion while this is my thing this is my grand this is what's paying me and it's what I want to do and here you are and they have my and that peace with everyone everyone loves me even my dad he normally wears my brand he has these t-shirts and I wear and I wear my wardrobe and I say I don't like kutkuihud I don't like fani as in no na una pata kumbe nyam lukum na pend and if you don't lukum adagu if you are too agum you normally love them dressy you normally look so they embraced that mess yes that's now something amazing they have accepted it because they have been seen they have been seen me on magazines they have been seen me on screen they have seen this thing so they have seen the boys doing something shout out to them you know it's not easy to get supportive parents yes yes yes so you are blessed I want you to give your social media we exit first quickly quickly where people can find your outfits a number they can call or an email they can send and blah blah blah that's for you everything everything on Sheldmedia I'm normally focused on Instagram so myself underscore petitboy.flaco my page astrohypua and this brand's page yaks the brand so if you find on Sheldmedia you can communicate on how to talk on WhatsApp yes alright yes that's it you said your shop is located in in Mentihaus alright so it's our room in Mentihaus in Mentihaus this crazy no the story there's another crazy story the story I was back then but I don't know I thought we were like the past is now in the past they didn't go on so that has been Austin Alinda you can call him a pretty boy Flaco that's on Instagram right yes functional influencer businessman but who are some of the celebs you've worked with I'm just butress I'll butress Milena the rapper yes the rapper just recently who else who else have done this thing I didn't go spell artist DJ Mo or DJ Mo whatever yes but then right now I won't focus because I'm outside right now okay so that's my mission right now so all the best bro and good luck so we take a break we come back with staff to close it up stay right here


Hello everyone, I'm Yan Xuzia from Shanghai Jiao Tong University. I'm glad to present our work, a universally comprehensible non-interactive aggregate cash system. This is a joint work with Shi Fengsun, Hong Shengzhou, and Da Wu Gu. In Bitcoin, an attacker can anonymize transactions by clustering and analyzing transaction graph. To prevent the transaction graph from being revealed, there is an approach called CoinJoin to break the linkability. The core idea of CoinJoin is to aggregate the transaction in the same time period. In each aggregate transaction, for each output coin, others cannot know which input coin is its source. Therefore, the transaction graph cannot be recovered. Mimo-Wimbo is a solution that uses CoinJoin to break linkability. Besides CoinJoin, Mimo-Wimbo also uses Peterson commitment to achieve a non-confidentiality. More specifically, in Mimo-Wimbo, the sender and the receiver interact to generate a transaction and send the transaction to the aggregation layer. Then these transactions will be aggregated into a big aggregate transaction. The aggregate transaction will be submitted to the ledger. Mimo-Wimbo also has a beautiful feature called cut-through. This means that if this coin is spined by this coin, then the two coins in the aggregate transaction will be cut, and the storage cores on-chain will be saved. Mimo-Wimbo has a drawback that impacts the usage of Mimo-Wimbo in practice. The sender and the receiver must interact to generate a transaction, which means that the two parties have to be online at the same time. This is because that in each transaction, a signature under the access E is needed. However, each party holds a part of the signing key. So the two party needs to interact to generate the signature. In our work, we aimed to avoid the drawback of Mimo-Wimbo. Mimo-Wimbo was objected to an aggregate cash system. We designed an aggregate cash system that can support non-interactive payments. So we call it non-interactive aggregate cash system, NICS for short. Then we formalize an ideal functionality for NICS. Finally, we prove that our scheme can securely realize the ideal functionality under the universal compensation framework in a hybrid model. We find that in the Mimo-Wimbo, the signature under E has two functions. The first is to prove that the transaction is balanced, and the second is to prove that the sender knows the spending keys of the input coins. In our work, we separate the two functions by adding the notion of address to achieve non-interaction. We also use the signature under E to prove that the transaction is balanced. But we use the signature and an address to prove that the sender knows the spending key of the input coin. Given the initial idea of adding address to achieve non-interaction, there are still some challenges. First, how to bind a commitment and an address. Second, how to bind the proof of the ownership of input coins with the transaction. Third, how to non-interactively transfer the private information of the output coins to the receiver. Finally, how to maintain the important feature cast through. We also define the ideal functionality for NICS. Unlike the original ledger, the ideal functionality for NICS submits the aggregate transaction into the ledger, now the individual transactions. For a transaction, the party not involved in it can only obtain the coin identifications, which hide the coin values and relevant parties. Please see our talk at Azure Script 2022 for more details of our work. I'm looking forward to see you at that time. Thank you.


How and where we work can have a big effect on our lives. Many of us used to spend a lot of time commuting, but we think there could be a way that's better for us, employers and our environment. That's why we want to work with you and businesses to help more of us to work remotely. You could work from home or in your local community instead of travelling to a central workplace. More opportunities for remote working can give us more choice in how we work. By remote working you reduce the cost and time of your commute, which could give you more flexibility in your daily life. You could use that time to do more things and have a healthier work-life balance. As more and more remote working jobs are advertised, you may also find that more opportunities open up for you, keeping you close to your friends and your family. Working remotely can also be great for the environment. It means fewer cars on the road which will help us cut air and noise pollution. Fewer cars on the road could help to make our roads safer and encourage more of us to walk or cycle to a workspace that's closer. Remote working can help us work smarter, be happier and lead healthier lives. To find out more, visit gov.wales.com.


Hi, I'm Doug Seek. Welcome to our operation. We're in north-central South Dakota, Wallworth County. We're about 10 miles east of the Missouri River, about 30 miles north or south of the North Dakota border. My family moved up to this country about 1920, so we've been up here just about 100 years. My great-grandfather came up here first. So my great-grandfather, my grandfather, and my father have all been involved in egg production, and I'm doing it too. We've all raised cattle and cropland, and that's what my operation is too. I use crops and cover crops up on the cropland. We're planting a pheromone on the cropland back to grass as part of the rotation, trying to work with the deep red perennials to build soil organic matter and improve the soil health. We're doing things on the rangeland different too. Where we used to use season-long range periods in the pastures, we've cut it into longer rest periods. We're doing more rotational grazing. We're not doing just rest periods that involve a month or so. We're doing rest periods that involve up to 360 to 364 days a year. This particular pasture right here is using a system called High Density Plant Intensive Grazing. We leave the cattle in here for about 100 days, so we cut it into about 105 acre paddocks. We'll move the cattle into a new paddock each day. There are about 150 cow-calf pairs out here, so we're shooting at a stock density of about 50,000 pounds per acre. What this does, the long rest periods allow the plants to develop better root systems. They can rebuild their roots. I used to think overgrazing was a factor of how short I shoot the grass off. It turns off that overgrazing is a factor of how long I let them keep biting it off. You bite a plant off and it starts growing back about three to five days later. If I let that cow bite the plant again while it starts to grow back, it sets it back a long way. It makes a lot of difference in the root mass underground. I come down once a day and I wind up about 300 feet of string and they move into the next section. I just keep leapfrogging. Once I have leapfrogged for four or five days in a row, I move over and I do another leapfrog section of four or five days in a row in a 20 acre segment. If I need to be out of town for a few days, I'll just give them a bigger segment. If I'm going to be gone for three days, maybe I'll give them a five day segment. Quality of life. We're trying to do things to make it easier to make money and to enjoy life and look at what we're doing with the grass. There's plenty of grass out here. We chipped this off pretty short last year but we gave it a long rest period and the long rest periods used to be key to making this system work. Thanks for joining us today. I'm glad you came out here and looked things over with us. We looked at the cover crops and the different tilling systems and how the water soaked in and we came down here and we've looked at how we're managing cattle different too. The real goal in both systems is to do whatever we can to get the water to soak in better. Anyway, thanks a lot. Have a nice day.


This is what breaks my heart about the modern church. The reality is that millions of people that call themselves Christians have never truly understood the gospel or maybe have never even heard the gospel before. Maybe you're one of them, so stay with me. The gospel is about God and His glory. He created us to image Him to show off His glory to all creation. But we rebelled and dove headfirst into sin, laying dead in our trespasses and sins.  And He rose again on the third day, defeating sin and death.  That through His atoning work, we can be clothed in Jesus' righteousness and are invited to become heirs with Christ, children of God. This is a gift from God, not of work. So it's not about trying to be a good person or cleaning up your act. It's about repenting for your sin and putting your faith in Jesus. Ask Him to save you and He will.


Hello, this is Yanis Varoufakis with a message from the Progressive International and DM25. This Black Friday, Friday the 27th of November 2020, we are asking you to refrain from buying anything from Amazon.com. We are asking you not even to visit Amazon.com on that day, just for one day. We are asking you to join our global campaign to make Amazon pay. On this day, by boycotting Amazon, you will be adding your strength to an international coalition of workers and activists, from the ITUC, UNI Global Union and Public Services International and Amazon Employees for Climate Justice, to the Tax Justice Network and Data for Black Lives. Amazon is not a mere company. It is not merely a monopolistic mega firm. It is far more and far worse than that. It is the pillar of a new techno feudalism. Amazon treats its workers as expendable robots, reducible to their capacity to pick and pack under conditions that crush their souls and bend their bodies. Amazon drives into the ground the small bookshops and businesses that are the fabric of our communities. Amazon is not a mere service provider, nor are its profits the rewards of a service provider. Amazon is a gigantic behavior modification machine. Its data services are under business of government, while its top executives dictate policy to politicians. Its algorithms provoke and tease that which people buy, watch and read. Amazon does not pay for the damage it inflicts upon workers in unhygienic warehouses, for the elimination of small businesses. For the massive damage it inflicts upon the planet, our environment. For the government services that are necessary to repair the damage that Amazon inflicts on our people, on our communities, on our environment. Amazon in short is a clear and present danger to workers, communities, to public health, to the planet, to our democracies and yes, to the notion of the liberal individual that the establishment waxes lyrical about. What can you do to make Amazon pay? Are we not too small to matter? No we are not. Remember, no despot, oligarch or entrepreneur has the power to rule over the millions, the billions of us, without our consent. The truth about despotic power does not lie in the despots weapons, bank accounts or data servers. It lies in the minds of those that despot controls. It lies in our inaction. The beauty and the power of our Black Friday Day of Action lies in the fact that it requires only tiny sacrifice from you. Just don't visit Amazon.com for one day, that's all. But this tiny activism, when carried out by millions or billions out there, will translate into a huge blow for Amazon. Even if we cause a small dent in Amazon's revenues on that one day, on Black Friday. Mr. Jeff Bezos, a very smart man, will take note, he will get it, Amazon's days of impunity are over. Together, this Black Friday, we can make a gigantic difference with a tiny act of solidarity to workers, communities and the planet. This Black Friday, let's make Amazon pay, ok? Cabadim.


This summer, we're offering intensive language classes in Chinese, Japanese, and Korean. Two weeks of intensive study gives you 15 credits, which is equivalent to one term of university study, and then four weeks of intensive study is equivalent to one year of normal university study for 30 credits. And we have, for Chinese and Japanese, the 15 credit beginners module, the 15 credit advanced beginners module, or you can combine those if you're a beginner for 30 credits equivalent to a year of study at university. And then for Korean, we have the two-week beginners version for 15 credits available. The teaching staff in the summer school is the same teaching staff that teaches at the SOAS degrees. So I think it's widely recognized that for Chinese, Japanese, and Korean, the best place to get a BA degree in the UK is SOAS. And this is an opportunity for people who maybe aren't at SOAS to have that experience during the summer. Something unique about language study as opposed to disciplinary subjects is that everyone starts with nothing. Whether you're an 18-year-old or a 25-year-old or a 65-year-old, if you don't know any Japanese, you don't know any Japanese. So these ab initio modules are perfect for anyone who wants to make an earnest, fast start at the study of a new East Asian language.


I've been working on these documents all night and I'm so happy that I can submit it to you today. I'll be grateful for your feedback. The grammatical structure here. Look at all these early errors. You actually want me to submit this document to the Minister for Further Approval? You have to be kidding me.  I want this done by 12 noon. Ridiculous. What happened to you sis? I need some advice from you, I have an interview. I'm frustrated. I am not good enough to look at your questions. Am I responsible for you being stressed? Your own sister you're treating like that really? Oh wait! You're working for a fashion thing? Your own sister really? Are you responsible for the domino effect? Treat people with respect. Treat people how you would like to be treated. Say no to bullying.


Hi, my name is Deep and my colleague Alex and me will be talking about Zstore, which is a columnar store that we've built for Postgres. We both work at VMware and on the Green Plum database server team. So let's get acquainted with the agenda for today. We'll be setting goals and expectations for Zstore and column stores in general to begin with. Then we'll talk about Zstore's design and we'll compare and contrast with the design of heap, which is Postgres's row store. We'll talk about how Zstore is benchmark, show you some performance numbers, and then we'll tell you what the open areas of work we have for Zstore, and we'll show you how to get involved with the project. So let's lay down some expectations for a column store in general. Whenever you think about a column store in database land, you usually refer to laying out the data for a column physically on disk together. So you expect that there will be a high degree of special locality for data belonging to the same column because of the layout. What this means is that that kind of data is much more compressible than the data if you store it row wise. So whenever you think column store, you typically always think about compressibility. Column stores in general handle OLAP style workloads, meaning you're projecting a few columns and selecting a lot of data out, much better than the OLTP style workload where you're just probably doing updates and deletes or you're querying on the entire row, or you just want one row out of the database and there are many transactions. That is a case that column store doesn't really handle well, but for the other OLAP style, it should do well. And because fetching a single or few of the columns takes much less number of disk pages to be brought out of a disk, that means that index builds will also be faster and your selects would also be faster. So those are some of the generic expectations. More specific ones for Zstore would be every Postgres user can use it. This is something that has been discussed in the Postgres community for a long time, that Postgres doesn't have a column store and we need one, and it's demanded by enterprise customers. We want Zstore to be optimized for OLAP workloads. At the same time, we want it to be performed reasonably well for OLTP style workloads and maintain feature parity with the heap storage layer that you get out of the box with Postgres. This is motivated from what we've seen with Green Plum customers. Green Plum has its own column oriented storage and customers were initially satisfied with no updates or no deletes on the columnar tables, but soon they wanted updates and deletes and modifications. So that's something we keep in mind. We want full MVCC support for visibility and transaction isolation, as well as crash safety. We also want to be able to automatically absorb improvements to Postgres, any part of Postgres that doesn't involve Zstore. And the way we get to that is with the fact that Zstore is an implementation of the Postgres stable access method API, which allows you to plug your own storage layer essentially. Now, keeping it a strict implementation means that we can benefit from other improvements to Postgres without having to change Zstore's code. At the same time, we want to be able to contribute to the table AM API, make it better while we're developing Zstore. That's a nice side goal. Let's talk about Zstore's design. So overall, we'll be discussing where the table access method API sits in the Postgres layers. We'll be talking about the unique B3-based architecture for Zstore, what the file layout looks like, how we do compression, and then finally finish things off with a single row insert example and a single row select example. So there will be some jargon that we might be using very often, a tuple is a row, an attribute is a column, a block in Postgres is a page, in Postgres is 8kbunit4, that it's 8k in Linux, then Linux kernel will be 4k, but here it's 8k by default. You can configure it, but it's usually still 8k. Then visibility and MVCC basically dictates whether a row is visible or not to another transaction. And we store this kind of information in undo pages in Zstore. Finally, a datum refers to a single value of a column, and we'd be referring to that quite often. So let's talk about Postgres' layers and where the table access method fits in to Postgres' backend. So you can see that it lies between the query planner, query executor, which handles DML and select queries, and the table commands interface, which handles DDL, and the buffer manager, which handles the shared buffers, which basically buffers in main memory on disk pages that pertain to the relation. So we see that the access method API and manager lies just in between, and these are some of the implementations. heap is the default row store for Postgres, this is Zstore, this is us, and we both heap and Zstore go through the buffer manager. This means we can utilize all of the code responsible for Postgres' buffer management, like buffer misses, hits, things like that, eviction policies and whatnot, a lot of code there that we can leverage. Buffer manager delegates to the storage manager, pulls stuff out of the disk and page cache, and all of that we can leverage. If you want to implement your own access method, you can opt not to go through the buffer manager. If this TOAAM could be an in-memory AM, for example, that's completely up to the implementer, but we opt to use the buffer manager, because this has a lot of benefits for observability and things like that, so which means Zstore tables look and feel the same as heap tables to a database administrator or user. These are the methods that are involved with implementing a table AM API in Postgres. The only requirement you can implement any subset of these methods, so if your table AM doesn't want to support deletes and updates, don't implement these methods. All of these methods do depend on one little thing, which is that every tuple should have a tuple identifier, and we'll be going into detail about the tuple identifier very soon for Zstore, but this is the only big strict requirement, really. So this is a link to a TOAAM access method, which is basically a stopped version of the entire access method API, and it's a great starting point to see what an access method really looks like. With that, I'll let Alex cover Zstore's internal design. Hi, I'm Alex, and right I'm going to talk about the internal designs of Zstore. So this diagram is a diagram, or the kind of diagram that you would probably see whenever someone talks about real store and calling store, so I put one here as well because of peer pressure. But keep in mind that this is an abstract view and the actual implementations of a real store or a calling store could look different from this. And now let me give you the Zstore implementation. So you can think of a Zstore table or Zstore relation as a forest of bee trees, where each tree represents a column or maybe a column family that consists of multiple columns. And within each tree, each node represents a 8k block that we just talked about for Postgres. So in this diagram, attribute tree at number one stores all the data from column one attribute tree at number two stores all the data for column two, and so on. So all of the bee trees are indexed by a 48-bit integer called Zstore tuple ID or simply TID. As its name indicates, it uniquely identifies a tuple. A tuple's TID never changes and a tuple can be moved around within a block or even between blocks. You may notice that there is a special tree called TID tree. Instead of storing the actual user data, it stores the visibility information of all the tuples. Visibility information means something like transaction IDs of a tuple when it was inserted or deleted, and also the operations can be done to undo when a transaction is committed or a port. So I wanted to talk about the benefit of this design. First of all, the tree is a fast and versatile data structure. In the Postgres world and other databases, we have already used it widely for indexes. So we think it would be really cool to leverage the same data structure as a column store. It is nice. For example, given a tuple ID, you can descend the tree and quickly locate the block that stores that tuple. Also, by having a logical tuple ID, we can move tuples around easily when we insert new data, or when we do compression or split pages. Whereas for the traditional heap table, the TID is tied to a physical location of the tuple. Another feature of that store is that we designed decisions we've made is to leverage the 8K block. That way it's really easy for us to manage, but it requires the compression algorithm to be able to compress that into a certain size. For our case, right now we support our Z4 algorithm, and it works pretty well for us so far. And lastly, by having a separate TID tree, it separates the metadata for visibility information from the actual user data, which is also nice. So bear with me. I'm going to do a quick refresher for Btrace since we're talking about Btrace. So let's take this example of creating a table full using Zstore with two columns, i and j, and we insert 30K rows. And with this nice function, we can see all the blocks that belongs to attribute number j. So as you can see, it has four blocks. Block nine is the root block. It covers the low key of TID 1 to the... It is inclusive until the exclusive high key of the maximum TID. And it stores the downlinks to its children, block six, eight, and 12. Each stores the actual data of the TIDs or tuples it covers. And each of the leaves block has a next pointer to the next blocks. Now let's look at all the blocks we have within table full's relation file. The left side demonstrates the relations between each of the blocks. And the right side sorted all of the blocks by the block numbers. As you can see, the majority of the blocks are B-tree blocks, either for the attribute tree or for the TID tree. And there is a special block or page called metapage. It's always block number zero. It stores the pointer to the root blocks of each attribute tree. And from the TID tree, it stores pointers to an undo page. Undo page stores the actual visibility information. And then if you have oversized data, then you may have a pointer stored in the attribute leaf page that points to a toast page, where the payload of the oversized data are stored. We'll talk about that in a couple of slides. It's not important at the moment. One important thing I wanted to note here is that the block numbers are the numbers the buffer manager gives us. So two consecutive block numbers means the two blocks comes from two consecutive requests from the buffer manager through the storage manager to the operating system. It is not guaranteed that two consecutive blocks are actually physically consecutive to each other on the file system, but that's the best we can hope. Now let's zoom in and look at what we store on A page. So this is the generic, the layout of a generic Postgres block or page. It applies to, it is designed originally for heap table. And it is also applied to other access methods or indexes, for example, like gene index or just index, et cetera. As we can see, in the beginning of the page, we store a header. And that pasted the struct of the header and also the link for the code there and documentations. You can check them out if you're interested. But the interesting things for us are PD lower, PD upper, PD special. PD line pointer is important for heap table, but not for that store. We'll also talk about that. So let's think of this as a heap table page for now. Between the page header and PD lower, we store item pointers to the actual items. And then between PD upper and PD special, we store the actual tuple items. So as we insert new data into the page, PD lower will grow downwards and PD upper will grow upwards. And finally, between PD special and the end of the page is a special area for access methods. You can store whatever you want for access methods there. Now moving on, let's look at the layout for a TID leaf page. As you can see, the layout is actually exactly the same as the heap pages layout, except for the item restore. Instead of storing tuples, we store a thing called ZSTID array item. I'm not going to dive into the details of this item or the structure of this item. But the gist is that restoring them logically is just a set of TIDs and their corresponding undo pointers. The undo pointer could be either an actual pointer to an undo page. It also could be two special pointers. It could be either for a pointer that marks this tuple as visible to all the transactions or it marks this tuple as invisible to all the transactions. The physical content of the item are more compact than the logical content. As you can see, we do data encoding for the TIDs. And we also have done some hack to make the undo pointers more compact. Now moving on to a actual leaf page layout. The actual leaf page looks slightly different from the heap page or the TID leaf page. So between the header and PD lower and also between the upper and special, instead of storing item pointers or items, we store the structure called ZSIStream. It could be either in compressed format as the upper stream or in uncompressed format in the lower stream. So for now, let's just focus on the lower stream and see what are the chunks we store there. So within each chunk, the structure is very similar to what we saw for the TID array items, where we store a set of TIDs. But instead of undo pointers, we store the actual calling data there within each chunk. And again, the physical content is more compact because we've done some special encoding there. And I want to briefly talk about toast. Toast in the PostgreSQL world stands for the oversize attribute storage technique. It's also known as the best thing since sliced bread. It's actually written in the PostgreSQL documentation. I'm not lying. Anyways, whenever you are going to write an oversize datum, a.k.a. Winger datum, is greater than 8k. Then the first thing we try is to compress this datum using the PostgreSQL default compression algorithm called pglz. And after doing compression on that, if the compressed datum can fit into the ad stream or the page, then we just write that directly into the chunk. Otherwise, we would need to allocate a toast page or a set of toast page. And then we write oversize datum there and then store the pointer in the chunk to the first toast page of this datum. Now, you may wonder why do we need to store two streams on a page? Here is why. Whenever we insert new datum, we first append rather chunks. We first append the chunks to the lower ad stream in the uncompressed format. And as we keep doing insertion, the lower stream will consume more of the free space until it consumes all of the free space. And when that happens, we would uncompressed the upper stream and then merge that with the lower stream and then compress them together as one single upstream again. And hopefully, after that, we would have more free space left on the same page. And as we keep doing this, at some point, this page is going to be full of upper stream with datum in compressed format. And when that happens, we would need to allocate a new page. Now, we have talked about the overall design of that store and the page layout. Now, let's go through an example of inserting into a single row into table full. Let's say, insert into full with values hello, 32. Now, with table full, for each of the backends, we have a, we maintain a hash table called tuple buffers. And the hash table is hashed by, the hash key is the relation id. So giving table full, we could locate the entry for table full. And within each entry, we store TIDs that are maybe pre-reserved for this table and most importantly, the add buffers of the table. So let's say we do this insertion, and let's say we do not have pre-reserved TID for table full. Then the first thing we need to do is to descend the TID tree and find out what is the first unused TID. And then create some endo record for this transaction or for this table and then return the new TID, in this case TID 5 back. And then we can use that to write to the add buffers. You may wonder what exactly we store in add buffer. The add buffer itself also has two layers of buffering. The first layer is just a summer erase with the size of 60. The arrays are the TIDs and the diatoms and it's now information. So once we have filled up the arrays with the new diatoms, we want to write them to the add stream buffers, which is the second layer of buffering that add buffers provides. The add stream buffer is actually the in-memory representation of the DS add stream we just saw. So it stores the chunks. So whenever we have filled up the arrays, we write out the raw diatom into the add stream buffer so they're encoded into chunks. And whenever we fill up the chunks, whenever we fill up the add stream buffers, we would need to flush that into the shared buffers of the attribute trees. So for insertion, we always only flush the buffers when the buffer is large enough. For example, when we wish one megabytes, but for some other operations like doing a new selector insertion, we might not wait until that happens. We might flush the buffers sooner than we fill up the add stream buffer. Anyways, this is how we do single insertion. Now let's move on to sequential scan with column projection. So let's say we do select INJ from table full. So whenever it comes to sequential scan with column projection, it's really important for the storage layer to understand what columns it needs to scan. Otherwise, it has to scan all the columns, then there's no difference or no benefit. You can get out of the column store. So this is the API that we added for table AM API. So to let the executor pass down the column informations that the storage layer may need. Anyways, once we have started sequential scan, the next thing we need to do is to do getNextLot. It's lot is just a container for a tuple. Don't be confused by the name. Just think of it as a tuple. So when we do getNextLot, first thing still, we descend the TID tree and get the TID out of the TID tree. Got the next TID out of the TID tree in this case 5 again because I made up the example and I'm not creative. Anyways, with the TID 5, we call this attributeFash function and we make this call to each of the attributes that it needs to scan. And then fetch the column data for those attributes. Eventually, we will stitch all the values we got together into a whole tuple. So this is how select is done. Now I'm going to hand this over to Deepavit for performance. All right. Let's talk about some performance numbers for Zstore. So in this slide, we look at what the on-disk footprint for Zstore looks like. So on the very left is our baseline, which is heap. So for a heap, these tables take so and so many bytes. If you look at Zstore, it takes about half of the size, which is a pretty good result. However, this is for when the table is loaded with one copy session. Copy is the command that is available to load data from an external source such as a CSV file into Postgres. But what happens if you run 16 parallel copies into the same table at the same time, we get a lot of bloat. As you can see, the size has gone up and is now almost equal to heap. This is pretty undesirable, this column. So the reason why this bloat happens is because we are doing out-of-order inserts into the attribute tree because of concurrency. And that leads to very inefficient page splits. And you can get more information as to what these splits look like. But long story short, it's like the pages are underutilized as a result of the splits. So a way to mitigate that is to reserve tids in batches in the tid reservation for copy commands. And we do that in batches of n, which is a configurable number. And as you can see, with an increase in n, we see the size requirement go down drastically for these tables. And we beat heap here with n equals 1,000. A side effect of this is that the copy runtime goes down from 100 minutes, with n is 1, all the way down to 7 minutes as you increase n. And the reason is we reduce contention on the tit tree. And if you reduce contention on the tit tree, it's always a win. In zet store, everything goes through the tit tree. So that is what is happening here as that's a neat result. So let's talk about some of the monitoring tools that we use often. One is timing on. It's a pcql command. A pcql is a command line client for Postgres. If you run any query with timing on, it'll give you the full round trip time of the query, which will, unfortunately, sometimes include the execution time and the time taken to send the tuples over the client connection and also the processing time of the client. So if you want to avoid these two factors and purely look at execution time, you can turn to Explain Analyze. Now, Explain Analyze is going to give you a very detailed output. It'll give you the plan. It'll give you how much time was spent doing input output and things like that. It will only take into account execution. Yeah. So it will only take into account execution time and not the time taken to send tuples over or the client processing time. There's some timing overhead that can be associated with Explain Analyze. So that's a gotcha. On some systems like FreeBSD on a Google Cloud platform, VM, you would notice that Explain Analyze takes a lot longer because of the get time of days is called taking too long. So turn to PG test timing. That's a command line utility available with your Postgres installation to test the impact of the overhead from Explain Analyze. We use Explain Analyze quite heavily as we will see. So single column projection is kind of the best case for a column store. And we are going to scale test that. We are going to primarily look at on-disk performance. So we're going to take one of the TP-CDS, which is a very popular analytics benchmark. One of the tables, pretty white table, as you can see. We'll be using LZ4 for compression to get the best results, both in terms of compression ratios and execution time. We'll be operating on about 100 gigabytes of raw CSV data. We'll be using table spaces to place these tables on SSDs and rotational hard disks to compare the impact of these disks on the on-disk performance. We'll be loading data serial and concurrently, as you could see with the last two slides. As you could see with the slide, a couple of slides back. Concurrent copy does have an impact. We'll be using the track IO timing. These are some of the configuration parameters that we use optimized for data loading. Track IO timing, along with explain, analyze, buffers timing and verbose will give you the results that you're looking for in this case. We ensure that before every run of an experiment, we have nothing in the database shared buffers, and we have nothing in the operating system page cache to begin with, to truly test out on-disk performance. So this is what sample, explain, analyze output looks like. So it will give you the total execution time of the query without showing the query results, without spamming your screen like crazy if you're selecting a lot of stuff. For example, it will also tell you how many buffers were read. Multiply this number by 8K, and you'll get the number of bytes read, and the total input-output time taken to read these bytes. So this is an example. We use this pretty often. And let's take a look at some numbers. So for a table loaded with 16 parallel copies, we're seeing that the heap table size is around 112 gigabytes, whereas ZStro is taking up around 59 gigs. You can see there's a vast difference in the number of bytes read and the number of buffers read, because in ZStro, we have to select a lot less number of columns. And that is kind of reflected in the input-output time. We are beating heap here quite well, but not as well as kind of what we expect, because if you look at the ratio between bytes read, that kind of 112 gigs over 1.4 is not really reflected in 59 over 20. So we would want this number to be a little less. So that's something we want to strive towards. So these results were for SSD. Now let's talk about the results for HDD. On the HDD, we are not seeing as good performance as we are seeing on the SSD. In fact, we're being beaten by heap here. If you run iostap, and you look at the average request read request size, you'll see that for heap, it's around 336, whereas for ZStro, it's around 8. This high number usually typically represents a sequential workload. This one represents a low number, such as this represents a random workload. Now, where is this randomness coming from? Well, if you're having multiple copy sessions writing into the same table and writing into, they're probably writing into the same attribute tree. So you can see that these numbers are apart. They're not consecutive. Consecutive numbers imply they are close to each other on disk. And the gaps between these numbers can only go up if you have more concurrent loading happening. So the attribute trees leaves are scanned in order when you're doing a scan on a column, as Alex was mentioning. So these need to be as sequential. So you kind of want a picture like this for attribute number tree number two here. HDD, a hard disk, definitely suffers more from random reads than an NVM ESSD does. So this is something that we have to work around and get. And we'll show you how we fix this. The way to fix it is for every attribute tree, we maintain a free page map, and we pre-reserve a list of contiguous blocks. The number of contiguous blocks that we reserve is dictated by this rel option that you can specify when you use the create table statement. And this basically, we term this n for the remainder of this presentation. With an increase in n, you will see that the run time, the input output time doesn't change that much for SSD, because it's not that important for an SSD. They do random or semi-random reads pretty well. But you'll get the drastic difference in a hard disk. In the hard disk numbers, you can see we've gone down from 133 seconds input-output time all the way down to 2.7 seconds. Input-output time as a refresher is the amount of time that was taken to populate the disk pages on bring them into shared buffers. So this is a win-win for us. If you run closer inspection, if you run in IOSTAP, you'll see that average read request size improved from 8.01 to 290.90 with our fix. And the figure that we used was 496 for n or the rel extension factor. So that's a pretty good result right there. If you want to look at it deeper, this is a frequency distribution of the read sizes. And you can see that for heap, most of the reads was the average read request size to be 336. Most of the reads are around 128 to 512K, pretty high. If you look at Zstore, all of the reads are the average request size of eight. All of the reads are actually clustered in this bracket. You can see. So that means that the average request size isn't that great. And that's something we alleviate if we increase n. Increasing n to 128 kind of alleviates a situation with more reads of higher length, as you can see. And you can see reads of even higher length when you ramp up n all the way to 4096. You can ramp up n as much as you want. Typically you want to go as high as possible, depending on your workload, depending on the amount of data you're copying, depending on the number of concurrent sessions doing the loading. If you don't have any concurrent sessions doing the loading, you don't need to increase n. A discussion is there. There's a link here to the thread that discusses this. So please take a look. This is what happens when these are some of the results when you're doing a warm run without clearing cache or without clearing the shared buffers. You can see that SetStore outperforms heap just by virtue of the fact that it's lacks a lot less data. It needs a lot less data to be in memory. If you remember that's only 1.4 gigabytes. So that easily fits into the shared buffers and gets good performance a second time, third time, fourth time you run your query, which is great. And this is SelectStar, which is the worst case for a column store. You can see that most more or less, we do well with an increase in n here as well from 447 seconds to 236 seconds. Finally, this is the storage buff test suite. This kind of gives you a holistic view of the many elements such as select, copy, vacuum, delete, update, toasting, inline compression and things like that. It gives you a nice picture of SetStore's performance. All of these numbers are on very small tables, not very large, but significant enough to keep in mind while we develop. So this is kind of, it will give you a kind of overview of what SetStore is like. All of these numbers are to be taken with a grain of salt because changing some of the sizes of the tables, you will get different results. And with that, I'll turn it over to Alex to discuss open areas of work for SetStore. All right, let's move on to the open areas of work for performance. Actually, all of the work are for performance, otherwise we'll just use key table. Before I get started, I wanted to point out that all of these links are linked to a discussion on the Postgres hackers mailing list. So check them out if you're interested. Because we have a long list here, I'm just gonna pick a couple of those to talk about. First, let's see eliminate toast flow. Right now, sometimes toast table doesn't have a good compression ratio in our tests. That's because when you have an oversized item, it may take up two toast pages and the second page sometimes is almost empty. So that leads to bad compression ratio and we want to improve that. And then we want to avoid full table rewrites for alter table column operations, such as add or drop column and set data type because for that store, we don't need to rewrite the entire table for those operations. And today the table access method API doesn't provide interface for that. And then we want to make update and release faster. This is mostly for implementing in place update and we use TIDs. Because when you just want to update one attribute, we want to just patch that one attribute instead of deleting and inserting a new role for every attribute tree. We want to have faster extreme decoding because right now, each tree data structure helps us to locate a tuple to a block quickly. However, once you reach to that block, we also want to have fast access to the tuple within the tongues. Moving on, we want to support calling family and even road floor. We've talked about that before. We have the infrastructure for it. I want to talk about replace undo with upstream undo framework. So Postgres uses redo for crash recovery and the undo framework aims to provide visibility information AKA MVCC as a term we usually use a stance for multi-version currency control. Every access method would need that. Today, heat table stores the same information together with the data file. But as we are adding more new access methods, we want to extract that, we want to extract that out from the table access method and have a common framework that provide the same support to all the access methods. So we definitely are going to leverage the undo framework once it's ready. And then we want to explore more about compression algorithms. Right now, we're using LD4. We wanted to do more exploration there and we wanted to make the prior planner aware of the table access methods. For example, we want the AM to provide more statistics that's specific to the AM and make the planner make more wise decision based on those statistics. And here's the tools you can play with that store. There's a bit of repo and some inspect functions for a developer are interested in the internals. You may want to check it out. And we have an Ansible playbook to do the benchmarking stuff. And we have a more lightweight storage per suite for development. And this is how to run regression tests for that store. And we have this discussion throughout going on in the Postgres hackers list. We have a Slack channel in the open source Gwynplum Slack instance. We have Twitter accounts and here's the blog we have. So finally, a big thank you to everyone who has involved in the thread and the development of that store. And we're ready for Q&A come talk to us. Okay, we're ready for questions. I'm not yet seeing any questions from the chat or the Slack channel. Our videos are not showing up, but we are all here for questions, Steve and I. We're also going to be, we're gonna wait here for five minutes. And if you have questions afterwards, we are also there in the Slack channel as well. Here is a Slack channel for open source databases. It's called two track open source databases. But please paste your questions in, I don't know what this is called. Paste your questions while we're here. I can see we have 14 attendees here. Okay, I have, I see a question from Josh. How are you handling cost estimation? Right now, we haven't done much yet. We have proposed a few patches throughout the afternoon for calling specific cost estimations. I have also pasted that thread at the end of the slide. Basically, we need more calling specific. Yes, so to the question from Josh, so we, so right now, Postgres planner isn't aware of the column in nature. So we have, as Alex was mentioning, we have a few batches with them right now. So to collect that information and to use that information, specifically like when you do a scan, you're selecting, you're scanning a subset of the pages. So that information is to be made available to planner to really know how many pages are actually being going to be scanned. So that's kind of on our radar. So for a question from Robert, what index types we treat as trend, do you see being useful with that store? Right now, we do support these index types. I think there's a bit of a, well, bit of a performance regression with the trend. I don't believe we have tried just indexes, to be honest, but we do expect the index types to be fully supported. We definitely do. And I see a question from, hold on. I see a question from Cassia. Interested in the workflows for the solution. Can you elaborate this question? I'm not entirely understand what does workflows mean or solution for here? Maybe Cassia is talking about whether this will be good for OLAP or NTP. We do want it to be good for OLAP workloads, for sort of analytic workloads, specifically. And where specifically you have queries that are operating on top set of columns, specifically if you have a wide table, that's great. That's a other high use case for a column store. Other such, workflows where we would want it to be useful is some OLTP workloads as well. We do definitely want to support insert, substitute, delete, and kind of support whatever it does in terms of features. That's what we're striving for. So Robert asked a question. It seems like UUIDB schema might need to also float because it can't be backed in order. So, the table that we use is an N64, but we use like 48 bits of that. So we are not, I'm not sure what we mean by UUID here, but it is like integers and most often the integers are consecutive. So it's very compressed, like each TID item in the TID tree leaves or even the attribute leaves, we can back the TIDs together. And it's very pretty compressible. We use Delta encoding. It was most of the time they were consecutive. So we'll continue the discussion on Slack. I'll, we'll echo the questions that were remaining here and continue on Slack. Thank you very much. Thank you.