<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Adeyinka Adegbenro on Medium]]></title>
        <description><![CDATA[Stories by Adeyinka Adegbenro on Medium]]></description>
        <link>https://medium.com/@adeyinkaadegbenro?source=rss-73840124ab02------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*iwOrZ7BV_RXL2jVhD9eykw.jpeg</url>
            <title>Stories by Adeyinka Adegbenro on Medium</title>
            <link>https://medium.com/@adeyinkaadegbenro?source=rss-73840124ab02------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 17 May 2026 17:27:44 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@adeyinkaadegbenro/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[How to Practice Real Self-Love With Your Money — Mindful Naira]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@adeyinkaadegbenro/how-to-practice-real-self-love-with-your-money-mindful-naira-01509cd72115?source=rss-73840124ab02------2"><img src="https://cdn-images-1.medium.com/max/1024/0*CXVbzZUxovCLoxNz.jpg" width="1024"></a></p><p class="medium-feed-snippet">When we hear self-love, the image that comes to mind might be things like: expensive skincare, a spa day, shopping, vacation, or ordering&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@adeyinkaadegbenro/how-to-practice-real-self-love-with-your-money-mindful-naira-01509cd72115?source=rss-73840124ab02------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@adeyinkaadegbenro/how-to-practice-real-self-love-with-your-money-mindful-naira-01509cd72115?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/01509cd72115</guid>
            <category><![CDATA[nigeria]]></category>
            <category><![CDATA[money]]></category>
            <category><![CDATA[wealth]]></category>
            <category><![CDATA[personal-finance]]></category>
            <category><![CDATA[self-improvement]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Fri, 17 Oct 2025 20:20:14 GMT</pubDate>
            <atom:updated>2025-12-21T19:38:38.635Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[If Today Was Your Last Day, How Would You Feel About Your Life?]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/our-limited-time-21900beb1191?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/21900beb1191</guid>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Wed, 20 Aug 2025 12:45:07 GMT</pubDate>
            <atom:updated>2025-12-15T13:38:44.442Z</atom:updated>
            <content:encoded><![CDATA[<p>I don’t like to think about death. I’ve known people younger than me and people my age who have died. So it’s not like I can con myself into thinking I’m too young to die. An idea that has kept revealing itself to me is how short human time really is. One of the things that I long for is to be able to look back at how I’ve lived my life and be proud.</p><p>I was watching this video of an Indian guru who said:</p><blockquote>If you are conscious that you’re mortal and that you have a limited amount of time, naturally, you would tweak your energies to such a level that time would be enhanced. If you knew your time is very limited, you wouldn’t do one thing that doesn’t matter to you.</blockquote><blockquote><em>Sadghuru</em></blockquote><p>And then the other day, I was listening to an old song by rock band Nickelback, “<a href="https://web.archive.org/web/20220926055851/https://www.youtube.com/watch?v=lrXIQQ8PeRs">If Today Was Your Last Day</a>“, whose lyrics I was paying attention to for the first time through Spotify’s <a href="https://web.archive.org/web/20220926055851/https://www.google.com/search?q=if+today+was+your+last+day+lyrics&amp;oq=if+today+was+your+last+day&amp;aqs=chrome.1.69i57j0i512l2j46i512j0i512l5j46i512.29654j0j7&amp;sourceid=chrome&amp;ie=UTF-8">lyric</a> feature. Previously, I had only enjoyed the song’s instrumentals, but this time I found the lyrics so profound and deep. The song really just encourages you to contemplate how precious time is. And to live a life worth living.</p><blockquote>Against the grain should be a way of life<br>What’s worth the prize is always worth the fight<br>Every second counts ’cause there’s no second try<br>So live like you’ll never live it twice<br>Don’t take the free ride in your own life</blockquote><blockquote><em>Nickelback</em></blockquote><p>For me, the takeaway is this: death is real and inevitable for everyone. I want to be conscious of that daily. I want it to inform my actions, how I navigate life, and how I treat people. Arguing online, keeping malice, seeking revenge, being bitter, and mindless surfing; all a waste of time.</p><p>When considering the life of someone like Mozart, he is regarded as one of the greatest composers of all time, yet he lived a remarkably short life of only 35 years. He was very prolific, as he managed to create a lot of pieces in his short life.</p><blockquote>I have now made a habit of being prepared in all affairs of life for the worst. As death, when we come to consider it closely, is the true goal of our existence, I have formed during the last few years such close relationships with this best and truest friend of mankind that his image is not only no longer terrifying to me but is indeed very soothing and consoling, and I thank my God for graciously granting me the opportunity of learning that death is the <em>key</em> which unlocks the door to our true happiness. I never lie down at night without reflecting that — young as I am — I may not live to see another day. Yet not one of all my acquaintances could say that in my company I am morose or disgruntled. For this blessing I daily thank my creator.</blockquote><blockquote><em>W.A. Mozart</em></blockquote><p>Clearly, he understood how limited our time on earth is. We had better get to work at doing what we want the most. Whether that is being a good parent or being good at a craft. You might not finish it, but you surely would minimize regret and leave a deep mark.</p><p>I want to make valuable use of the precious time I have left. When I’m about to die, I want to have a body of work I can look back on and be proud of. I want to be proud of my relationships and my conduct in them.</p><p>If this year were your last year, what would you do?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=21900beb1191" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Visit]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/the-visit-16f27fac6320?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/16f27fac6320</guid>
            <category><![CDATA[family]]></category>
            <category><![CDATA[storytelling]]></category>
            <category><![CDATA[writing]]></category>
            <category><![CDATA[fiction]]></category>
            <category><![CDATA[short-story]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Sun, 13 Feb 2022 02:13:15 GMT</pubDate>
            <atom:updated>2022-02-13T07:13:56.488Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*Y3gwr-hILg1xNPsvkSbfWA.jpeg" /></figure><p>Dara glanced at her husband, Dapo as he yawned. He was driving them to his hometown, Iwata. The twins were fast asleep in the back seat. She had pulled them out of bed at dawn to get them ready for the trip. They had to start the trip early because it is a long-distance trip from the city to Iwata if they wish to arrive there during the day. Almost 200 kilometers. They beat the usual early morning traffic within the city before the city woke, and burst into the interstate highways. She had packed some sandwiches that morning for the whole family, which they ate earlier, on the trip.</p><p>She stretched and yawned as she looked out the car window to enjoy the fleeting, moving, bushy landscape. Finally, she was going to meet Dapo’s family for the first time since their marriage in 2013, nine years ago. While they were courting, he told her he was estranged from his family. And that when he had gotten a full scholarship for university, the money was paid to his parents, but they pissed it away and refused to repay him, forcing him to fund his schooling by taking odd jobs here and there. He convinced her to forget about meeting his family because they were dead to him.</p><p>When they had their twin boys in 2015, her sister Bola called her aside and said to her, ‘ <em>Dara, you need to get to the root of your husband’s family matter. It makes no sense for you not to know his roots.’</em> Bola wasn’t wrong, in Yoruba culture, it is unheard of for a child to be estranged from her family. A person’s family is thought to be a person’s proverbial clothing in the world, which protects him from the world’s elements. Dara grew up in a very cohesive and happy family. She could not imagine a world where her parents were not in her life. Not to mention depriving them of their grandkids. She knew she would have forgiven her parents long ago had they done to her what Dapo’s parents had done to him.</p><p>She started to convince Dapo to reconcile with his parents, but he refused vehemently. She had tried to find their contacts and address on his phone and in public record. No luck. Over the years, she kept trying to make him see reason, until the day she jokingly told him she was considering putting out ads in the newspaper with his picture to find his parents. Surprisingly, he promised to take her and the kids to visit them in Iwata one day, and to settle the dispute once and for all. Today he fulfills that promise.</p><p>She looked at him, “You look tired, should I come take over?”</p><p>“No, it’s fine. Relax,”</p><p>Dara dozed off. When she came to, they passed a big sign saying ‘WELCOME TO IWATA.’ Dapo looked at her rather sadly, with a grave voice said “We are here.”</p><p>“Honey, are you okay?” she asked.</p><p>“It’s just… it’s been a while since I’ve been here. The last time I was here, it wasn’t.. pretty. And I vowed never to return.” Dara caressed his shoulder as a tear dropped from Dapo’s face which he wiped off. He drove into a quiet neighborhood with old colonial-looking buildings and parked on the side of the road.</p><p>Dara pointed to the house on her right. “This is your house?”</p><p>“No. My house is the first house on the next turn on the right.” He pointed. “I need you to drive down there. Take the kids and introduce yourselves as my family, I will be with you shortly in 30 minutes. I need to visit my friend Henry briefly, before I join you. His house is right there.” He points to a gray colored bungalow across the road on his left.</p><p>Dara frowned. “Why not let us visit him with you. Or we could wait in the car till you are done. It will be too strange for me to show up at your parent’s door with the kids. I’m a stranger to them.”</p><p>“No. I don’t want to expose the kids to Henry’s parents, they are a little weird. I’ll be with you soon I promise.”</p><p>“Can’t you see him later?”</p><p>“It has to be now. It has to be before I see my parents.”</p><p>Dara sighed. “Fine, just don’t take long okay?” she said resignedly. He nodded. He kissed her forehead. He went down to the back of the car and kissed his kids before darting off to the back of the house. Dara was perplexed. Why go through the back of the house? She thought. Then again she was entering his past, which is new territory. She got into the driver’s seat and drove the short distance to the next street. At the spot Dapo described as his family home stood a green two-storeyed building.</p><p>Pondering whether to wait in the car for Dapo to return for some minutes since he had promised to be back soon. She looked back at her kids, they were wide awake now. They told her they were hungry, so she fetched two sausage rolls and a 3 liters water bottle from her traveling bag and gave it to them. She waited a few minutes as her kids ate.</p><p>It became clear Dapo wasn’t coming back soon as he promised. She called his phone, it rang, and rang. No answer. She gave up and decided to go in. After getting the kids, they climbed up to the front porch of the house.</p><p>Dara knocked on the strong wooden door. No reply. She knocked once more, then she heard light footsteps that grew louder as they drew nearer. The door clicked and opened. She was presented with an elderly woman with half gray, half black hair. The woman looked to be in her early sixties.</p><p>“Can I help you?” the old lady asked.</p><p>“Hello ma, my name is Dara. These are my children. I am your son’s wife.” Dara said.</p><p>“Son’s wife? Which son?” the old lady replied dryly.</p><p>“I mean your son, Dapo. Dapo Adeyemi.” Dara said.</p><p>The old lady looked her up and down for a second, as her face slowly contorted into a distressed look. She fell on her knees and screamed. “Get away from here! You prankster. Idiot. Go away now. Get out!” the lady let out, half screaming, half sobbing.</p><p>Abashed, Dara, said “Ma, I know you and Dapo have not been in touch, but he explained everything to me and he is here to reconcile with you.” Dara’s words made her wail louder, as she got on her knees. A man came running to the door looking puzzled, expecting some form of chaos. He had an older wrinkled face, looked at his wife perched on the floor now sobbing, then looking at Dara, expectantly, as if waiting for her to explain herself.</p><p>He put his hands under the woman’s armpits, urging her to get up. “Rali, what is the problem, kilode?”</p><p>Rali pointed at Dara, and opened her mouth to talk, but her sobbing gasps would not let her, then she burst into even more tears. Dara grew uncomfortable, she glanced at her kids and saw their eyes widened as they grabbed tightly at her skirt..</p><p>The man asked “Who are you? What is wrong? What did you say to her?”</p><p>Dara fiddled with her hand bag, not wanting to cause another scene, said “I told her, I know Dapo Adeyemi, her son, and-.”</p><p>He raised a palm to stop her from continuing. He glanced down at Rali, while still holding her, then he looked back up at Dara “Wait here.” And so he took Rali into the house and shut the door. Dara called her husband’s phone once more but it was still just ringing without an answer. She was starting to get irritated.</p><p>Just then, the older man emerged from the house and waved her in. Dara guided her boys into the house. It was a big house, a duplex. There was someone else in the cozy living room, a man who looked to be in his early forties. He looked angry, somewhat. She greeted him, but he gave no response. How rude, she thought. Dara sat her kids, and joined them on a long couch opposite the already seated elder man. The younger man was standing behind the older man.</p><p>The older man cleared his throat. “I am Baba Kolade, Dapo’s father, this is my son, Tunde, Dapo’s brother. Please go ahead with what you were saying.”</p><p>“I was telling Madam the other time that my name is Dara. I am married to your son, Dapo Adeyemi. These are our children, Taiye, Kehinde.”</p><p>Baba Kolade’s eyes widened, while Tunde slowly sat on the arm of the couch near his father. Baba Kolade rubbed his palm over his face. “So you are saying, you- are married to Dapo. Da-Dapo Adeyemi?” he stammered. Dara nodded. “Errm, okay. Where is he now?” he asked.</p><p>“We both arrived from Ilu Tuntun together. He said he wanted to see his friend Henry at one gray house with flowers at No. Five, the street before this one. He will be with us soon. He described this house to me and asked me to come introduce myself and the children.” Dara said. Tunde and Baba Kolade exchanged glances.</p><p>“You’ve seen my brother?” Tunde asked.</p><p>“Yes. I’m married to him.” Dara replied.</p><p>Tunde shook his head with such force, and said, almost yelling. “That is not possible. My brother-”. Baba Kolade smacked Tunde’s mouth with a quickness. He shook his head at him and whispered into his ears. Dara’s shock was apparent. Their father-son interaction seemed strange.</p><p>Baba Kolade said, “My daughter, please give me proof that you are married to my son. He has left us for a long while now. We just want to be sure.”</p><p>Dara nodded. She was so mad at Dapo for making her face his family alone after years of estrangement. Why was he taking so long, she thought. She whipped out her phone and went to the photo gallery. She gave the phone to Baba Kolade. “If you scroll through the photos, you will see our family photos, with Dapo and the kids.”</p><p>Baba Kolade and his son spent some minutes on the phone looking through the photos and videos of Dara and Dapo’s young family. He sighed heavily and whispered into Tunde’s ears for what seemed like two minutes while gesticulating. Tunde nodded his head, got on his feet and left the house without a word. Baba Kolade faced Dara and said “And you say, he is coming to join us?”</p><p>“Yes sir.” she said.</p><p>“How long have you been married to Dapo?”</p><p>“Nine years.”</p><p>“I see.” he says while trying to mask his surprise.</p><p>Dara could tell something was wrong. They were not acting right. It made her uneasy. She was not exactly expecting a welcome parade from her in-laws due to the estrangement, but she was not expecting such bizarre interactions either. She had warned Dapo about showing up unannounced, but he insisted on not calling his family because he did not want them rejecting him beforehand. She thought about making an excuse to leave for their hotel. This is Dapo’s business to handle, not hers. But she dismissed the idea. This was half her family now. “I hope everything is fine, sir. Especially with Madam.”</p><p>Baba Kolade smiled halfheartedly. “Nothing to worry about, everything is fine. My wife is just a very sensitive woman. When Dapo left, it affected her deeply. In fact, let me get her.” he said as he rose. “Can I show her the pictures? That will cheer her up.” Dara nodded enthusiastically, happy to be helpful.</p><p>He disappeared into a room. Dara looked around the house for the first time. There were potted plants in every corner. Her eyes darted across the cream walls adorned with family pictures. She saw one portrait arranged next to another side by side. There was a picture of Baba Kolade, Rali, Tunde in graduation attire, a woman, and then a younger Dapo, her husband in graduation attire.<em> Didn’t Dapo say he stopped talking to his parents after they embezzled his scholarship fund?</em> She thought. <em>But here he was in a graduation gown.</em></p><p>“Mummy, where is Daddy?” Taiwo interrupted her thoughts.</p><p>Dara looked down at her kid, “He’s coming honey. Anytime now.” Just then Baba Kolade returned with his wife Rali. Rali looked better now, though her face looked tight and red just like someone who had been crying. After settling into the couch next to Baba Kolade, she greeted Dara and apologized for her previous outburst.</p><p>The couple spent time asking Dara questions about her marriage, how she met Dapo, the kids, and when she had them. They were more interested in hearing everything they could about their son’s life. They made Dara tell them what Dapo has said about them. This made her spill all she was told about their estrangement. They took it in without judgment.</p><p>Dara tried to call Dapo’s phone once again since she was getting worried. Baba Kola asked her not to worry so much about him. Rali asked the children to come play with her, she made them sit in her laps and gave them treats. She got Dara and the kids drinks and promised to make them a big dinner. Rali entertained the kids, asking them as many questions as she could muster.</p><p>The living room door opened, in came Tunde and an older man just about the same age as Baba Kolade. The man exchanged greetings with Dapo’s parents and Dara. After taking a long look at Dara and the twin, he asked to see Baba Kolade in private outside the house, Tunde followed after his father.</p><p>When they stepped outside, Dara could hear the men’s muffled voices. Her intuition tickled her into suspecting that they were talking about her. Even more so, as Rali’s eyes darted to the window several times. When Rali could not take it anymore, she excused herself to join the men outside.</p><p>* * *</p><p>Baba Kolade followed his childhood friend, Gbadebo out of the house. Gbadebo grew up in an oracular family. His father, while alive, was an Ifa priest. Gbadebo knew much about culture, myths, tales, legends, and their validity. Baba Kolade paused on the porch. “I’m so happy you answered my call, Gbadebo on such short notice.”</p><p>Gbadebo turned back and hurriedly pulled Baba Kolade by the arm to his car parked on the road, behind Dara’s car. Tunde followed after them.</p><p>“Don’t you know walls have ears?” Gbadebo reprimanded. “I had to come. Tunde explained what happened.”</p><p>Baba Kolade nodded. “Thank you, old friend.”</p><p>“Tunde told me that this wife your son sent to you has evidence of Dapo and their whole marriage?”</p><p>“Yes. There were so many videos and I copied them to my phone. Have it.” Baba Kolade said as he opened the photo gallery on his phone and handed them to his friend.</p><p>Gbadebo collected the phone and scrolled through them. Looking up he said, “You don’t think these photos or videos could have been doctored.”</p><p>“No. They look so real. Even if they manage to fake them, did you not see those twin boys? They look so much like my Dapo. I don’t need a soothsayer to tell me that he is their father.”</p><p>Gbadebo sighed.</p><p>Tunde nodded, “It’s true sir, they look so much like Dapo,” he said.</p><p>“Gbadebo, explain to me, how is it possible that my son, whose corpse I washed, whose body I buried could come back to life and even bear children? Eh?” Baba Kolade’s eyes watered.</p><p>Gbadebo placed his palms on Baba Kolade’s shoulders. “Old friend, you have to be strong right now. For your wi-”. Just then, Rali came out the door and walked-run towards them.</p><p>“What are we going to do about this matter now, brother Gbadebo,” she said, spreading both her palms.</p><p>“Rali, I sympathize with you. I-”</p><p>“Who won’t let my son rest in peace? I saw his body. I saw his dead body. There is no way he is alive. Ei.” she started sobbing.</p><p>“Rali, Rali, you have to be calm, we can’t draw attention to ourselves. We can’t let the wife know anything until we decide what to do. Okay? Just breathe.” said Gbadebo.</p><p>“Okay-okay-okay.” she said between breaths as tears fell down her cheek.</p><p>Gbadebo placed a knuckle under his chin, “Are you absolutely sure that there is no way Dapo survived after the accident?” he asked.</p><p>Tunde, his mother and father all shook their heads collectively. “There is no doubt about this. His face was smashed beyond recognition in the accident. I felt his cold hard body. There is no way.” Baba Kolade said.</p><p>Gbadebo shook his head and jutted it forward to his audience,”There’s no two ways about it, this means your son is an Akudaaya.”</p><p>Rali winced and sobbed, while Baba Kolade nodded his head slowly in realization. “I suspected it. That was why I sent for you immediately.”</p><p>Tunde squeezed his face and asked “What is that?” Nobody answered him. He looked everyone in the face, as they all seemed to be in deep thought. He faced Gbadebo and shook him hard, “Baba Gbadebo, what is an Akudaaya?”</p><p>Gbadebo resigned and said “An Akudaaya, in our culture is what we call a living dead. It is believed that when a person dies too soon, before fulfilling his destiny, sometimes, the gods give such a person a second chance. They come back to life at a place very far from where their former life was, with their former memory intact.” Tunde merely stared at him, trying to absorb what he just heard. Gbadebo faced Rali and Baba Kolade, “Did the wife tell you where Dapo is right now?”</p><p>Rali pointed in the direction of the next street . “She said he wanted to see his friend Henry before joining her here. At No Five. Or should we go there and see if he is there?”</p><p>“Don’t bother. You can never meet him there.” Gbadebo said.</p><p>“That house is Henry’s family house. Henry and Dapo both died in the car accident” Tunde said.</p><p>“Ah ah ah ah. I see. That makes sense.” Gbadebo said.</p><p>“What do we do about his wife and children now? What are we supposed to do?” Rali lamented.</p><p>“We can’t tell her.” Baba Kolade who had his hands folded said, as if he just woke out of a trance.</p><p>“Why?” Rali asked, facing him.</p><p>Gbadebo said, “If you tell her Dapo is dead, she will never see him again. In the legend of the Akudaaya, once they know, you know they used to be dead, they will never reappear to you again. If you don’t want her to lose him forever, don’t tell her.”</p><p>“Ah, that is unfair. How can we not tell her? Do we just sit by and continue to let her be married to a ghost?” Rali lamented. “If she were your own daughter, would you not tell her?” She pointed her finger accusingly at Gbadebo.</p><p>Baba Kolade faced her and held her shoulders, “Rali,” he said, in a low voice. “The worst has already happened. She has already married a ghost and produced children for him. You saw her. She is healthy. She didn’t fall sick as a result. She’ll be fine.”</p><p>Gbadebo walked closer to the couple, “Rali, think about those children. If you tell the wife her husband used to be dead, those kids lose their father forever. Your best option is to be hostile to them. Send them away and ask that they never return. If you do that, Dapo’s spirit will know that his secret is still unknown to his wife. This is what will allow him go back to his family, till the end of his appointed days.”</p><p>Rali left the middle of the two men, taking two steps to Gbadebo’s car and rested her back on its door. She folded her arms and sighed. Quiet for a minute. Then she looked up. “Okay. Let’s send her away.”</p><p>***</p><p>Dara held her boys and left Baba Kolade’s house, with hands trembling and feet weak at the knees. Her children could tell something was wrong as they kept looking up at her. She was mostly furious at her husband for putting her in a situation to be embarrassed by his parents. He should have been there. But he took the coward’s way out. Never had she been so insulted in her life. She had never in her entire life met such an unstable family. One minute nice, the other minute hostile. Hot and cold. Such a mess. They had kicked her and the children out. Yelling insults at her and even threatening to call the police if she and Dapo ever came back to their house. No wonder Dapo wants nothing to do with them. She understands now. She will never force him to reconcile with them ever again.</p><p>Dara put the kids in the car and got in. She reversed the car to leave the street when her phone lit up with several message boxes popping up from her husband. This was replaced with her phone ringing. It was her husband calling. Relief washed over. He is okay. This little trip has now come to an end. She was going to pick her husband and they were going back home.</p><p><em>Originally published at </em><a href="https://adeyinka.net/2022/02/13/the-visit/"><em>https://adeyinka.net</em></a><em> on February 13, 2022.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=16f27fac6320" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Rough Play]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/rough-play-e9ba0ee9407a?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/e9ba0ee9407a</guid>
            <category><![CDATA[childrens-stories]]></category>
            <category><![CDATA[short-story]]></category>
            <category><![CDATA[fiction]]></category>
            <category><![CDATA[storytelling]]></category>
            <category><![CDATA[flash-fiction]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Sun, 23 Jan 2022 05:07:02 GMT</pubDate>
            <atom:updated>2022-01-23T05:27:34.840Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*Lxvs-ZQC7SYbL-ulLDjvGg.jpeg" /></figure><p>In September 2005, I was at my aunt’s house on holiday to spend some time with her, and her family. On one particular Sunday, when she had left for work, her daughter Kira and I had decided to go outside the apartment and play. We were still within the gates of the property.</p><p>I being a tomboy, enjoyed rough play that involved running, jumping, and climbing. I suggested to Kira, “Let’s climb the water tank.” Kira, being the dainty and delicate girl she was, refused. She’d much rather play with her barbie dolls. Shrugging, I made to climb the first rung of the high metal stand that held the water tank up, but it was too high for me to reach. I went inside to fetch the heavy stool from the kitchen. Being a rather short six-year-old, I was unable to lift the stool, instead, I dragged it out of the house, as quietly as I could so as not to wake our sleeping maid in the living room. I dragged the stool to the bottom of the tank stand. And I used the stool as a stepping stone to climb the tank stand.</p><p>I found myself standing one rung above the ground and had both hands gripping on a pillar of the stand. I have never felt taller than I did then. The air felt fresher up there. I looked down on Kira, feeling superior and all. I laughed and pointed with one hand free at Kira.</p><p>“You should have joined me.” I giggled in jest. “Look at me now!”</p><p>She looked up in awe with her mouth open, as if I was Neil Armstrong taking her first giant leap for children-kind.</p><p>Feeling more confident, I let my second hand free and took my first step along the rung of the stand with both arms spread on both sides like I believed I could fly. I took a second step, and I must have slipped because the next thing I remember was finding myself on the cold hard concrete pavement with my head spinning and in a daze. I could hear Kira screaming for the maid.</p><p>It’s been so long, but I recall being in the hospital with my parents, and my aunt watching over me. I had broken my left arm, and I had to wear a POP arm cast for a month and a half. I believe my aunt fired her maid, on account of that event.</p><p><em>Originally published at </em><a href="https://adeyinka.net/2022/01/23/rough-play/"><em>https://adeyinka.net</em></a><em> on January 23, 2022.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e9ba0ee9407a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Interview Morning]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/the-interview-morning-867b7a18c9c?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/867b7a18c9c</guid>
            <category><![CDATA[fiction]]></category>
            <category><![CDATA[stories]]></category>
            <category><![CDATA[short-story]]></category>
            <category><![CDATA[flash-fiction]]></category>
            <category><![CDATA[storytelling]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Sat, 22 Jan 2022 00:16:21 GMT</pubDate>
            <atom:updated>2022-01-22T00:22:49.286Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*cdCSJW1IUlPQnZFem5sj_w.jpeg" /></figure><p>The alarm made a shrieking noise that jolted Dan out of his sleep. He flagged his left arm several times till he hit the snooze button on his side table. If his memory serves him right, the last time he had to wake up this early was the day he got fired at work 3 months ago. That moved him to remember he has an interview by 10 AM today. Just then he heard a cock crow. He groaned, resenting having to wake up so early to prepare. He sat up in his bed, placed his face in his palms, still groggy from not sleeping early enough.</p><p>Dan dragged himself out of bed and up, on his feet. First things first, He needs to brush his teeth. He walks into his bathroom, dabbed his face with some water, and made to pick his brush up in the bathroom cabinet, but could not find it. He sighed. Dan has a bad habit of not returning things from where he picked them from. He closed his eyes a minute, trying to visualize where he might have dropped the toothbrush yesterday when he used it. In the past, that’s a trick that has helped him find things he’s misplaced. That did not work this time. All he remembers was brushing while standing and watching the TV yesterday morning. He has no clue where he must have dropped it.</p><p>He went back into his bedroom and switched on the light. There were things littered all over the rug, along with some dust There was one leg of a pair of brown socks, his towel, he bent to check under them for his brush, no luck. He noticed a travel mug near the foot of his bed. He picked it up and opened it. He squeezed his face as his nostrils got hit with what one could only imagine as the smell of a dead fish. The mug was filthy and crawling with maggots. He scanned the room for a minute, his eyes landing on the rotting half-eaten carrot on his bedside table he has pretended not to see for a week. He then glanced at the fridge and his eyes flicked in recognition. He opened the appliance, which he rarely ever cleaned, and found his toothbrush sitting on an expired jar of mayonnaise. He picked it up while smiling with delight. “Ha, now my day can begin.”</p><p>Dan took the brush to the bathroom and passed it over running water to clean it. Then he glanced around for his toothpaste and also could not find it. “Oh not again!” he cursed as he threw his brush in the sink with a force.</p><p><em>Originally published at </em><a href="https://adeyinka.net/2022/01/22/the-interview-morning/"><em>https://adeyinka.net</em></a><em> on January 22, 2022.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=867b7a18c9c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Guardians]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/the-guardians-3c9b629d890a?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/3c9b629d890a</guid>
            <category><![CDATA[flash-fiction]]></category>
            <category><![CDATA[fiction]]></category>
            <category><![CDATA[storytelling]]></category>
            <category><![CDATA[short-story]]></category>
            <category><![CDATA[writing-prompts]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Tue, 28 Dec 2021 14:13:11 GMT</pubDate>
            <atom:updated>2022-01-18T20:56:41.410Z</atom:updated>
            <content:encoded><![CDATA[<p>“So this is what the people of your world have done with magic. You take Cryomancy and call it refrigeration. You take electrokinesis and call it wiring. You take telepathy and call it the internet. You call familiars robots. You have taken all this magic… and you have made it boring!” Apollo said.</p><p>“And what would you have me do? You left, for millions of years without so much as an instruction for us kids. You come back out of thin air and expect things to be in your vision?” Srinska said as she walked from the doorway towards her father. “There was no choice in the matter. It was either this, or the humans would have learned the secrets of creation you so jealously guarded from everyone. You should be thanking me!”</p><p>Srinska watched her father stare down at her as he paced the room with his arms folded. She thought back to the time before he disappeared. He had called all his children to sit before him and told them the secrets of creation. He made them swear to guard it for the entirety of their existence.</p><p>“As soon as you left, Marcus made the stupid mistake of telling some of his human friends, select secrets just to seem smart. Just to get some validation. Marcus descended into madness for centuries, spilling and showing secrets, one after the other.</p><p>The smartest amongst the people he had told, made a name for themselves, and claimed the ideas as their own inventions in the name of science.” Srinska snorted</p><p>“You let Marcus do all that? You should have put him to sleep!” Apollo said, yelling.</p><p>“Put him to sleep? My own brother? I would not risk my brother’s life force to protect your precious humanity. And of course, we could have taken care of the humans, but we did not want to risk revealing ourselves, and our family. Nor could we kill them, knowing the consequences.” Srinska sighed loudly and collapsed into the couch.</p><p>Srinska said in a low voice “Father, we called for you, several times, but since there was no response, it became clear that you had traveled out of the universe. Where were you?</p><p>My sisters and I, watched as the humans celebrated the discovery of these secrets as if it were their own. They have built on top of it, to create an artificial environment much more toxic than we wanted for them.</p><p>We have watched them, descend into madness and war, using the very tools that Marcus unleashed on them.</p><p>Humans, thinking they have made advancements, do not realize they have reduced the soul and the lifespan of their planet.</p><p>I have awaited your arrival for millennia alongside my sisters so we can be free to leave.”</p><p>“You can not leave just yet,” Apollo said.</p><p>Srinska nodded with half a smile. “Oh, we will. If we were to be as selfish as you and Marcus, we would have left for the Dohora a long time ago, leaving your precious humans to suffer and destroy the little round blue ball they live on.” Srinska sunk further into the couch and crossed her legs. She looked up at her father and said “Have you nothing to say for yourself, Father?”</p><p>Apollo stopped pacing and stood still. He looked sideways at her and kept pacing.</p><p>Srinska scoffed and shook her head. “It makes my blood boil that these lost souls call you their God. When you are nothing close to it. You are unworthy. You are just a guardian of this corner of existence. When I leave for Dohora, how would you like me to tell our creator, that for millions of human years, you left your children in charge of earth, and left humans to suffer?”</p><p>Apollo turned sharply to Srinska</p><p>“You dare not!” he said.</p><p>“Watch me, Father. Watch me!”</p><p><em>Inspired by a </em><a href="https://www.reddit.com/r/WritingPrompts/comments/p32jpl/wp_so_this_is_what_the_people_of_your_world_have/"><em>writing prompt</em></a></p><p><em>Originally published at </em><a href="https://adeyinka.net/2021/12/28/the-guardians/"><em>https://adeyinka.net</em></a><em> on December 28, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3c9b629d890a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why girls become tomboys]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/why-girls-become-tomboys-9a8e08daee6b?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/9a8e08daee6b</guid>
            <category><![CDATA[feminism]]></category>
            <category><![CDATA[psychology]]></category>
            <category><![CDATA[girls]]></category>
            <category><![CDATA[gender-equality]]></category>
            <category><![CDATA[women]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Tue, 19 Nov 2019 09:06:01 GMT</pubDate>
            <atom:updated>2019-11-19T09:06:01.272Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EleKLCI4lHxsP7dyUiSkYg.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@kutyawka?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Ekaterina Kuznetsova</a> on <a href="https://unsplash.com/s/photos/tomboy?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>When I was growing up, between ages nine and I think, twenty I was labeled a tomboy by the people around me. I didn’t think anything of it at the time because I felt I was just being myself. The earliest age I remember exhibiting tomboy traits was age five. I don’t remember how it started or why. Looking back, I can only point to a few things that may or may not have shifted my thinking as a girl child and changed my identity.</p><p>One of those events was when my dad went on a trip for some years and returned. He brought with him some presents for me and my little sister. Most of them were gifts meant for boys. We got a lot of boy boots, cargo pants and t-shirts. We got Sega and PS1. My sister showed zero interest in playing sega at the time, being 4 years, she just wanted her dolls and colorful storybooks. I showed a lot of interest in playing the game and played I did. Until we had some cousins and male family friends at our house over for the holidays and suddenly I couldn’t play anymore, because the adults said let the boys play the game, they are not really meant for girls.</p><p>When I was nine. My mom would prohibit my sister and me from playing football outside with the neighbor’s children who were boys. I mean, we had female kids in the neighborhood, but they too were prevented from staying out to play ‘rough’. The girls were only to be seen around when being sent on errands by their mothers. While the boys were always seen chasing each other in the fields, playing football, riding their bicycles and generally being silly. Now that I’m older, I get that it’s probably the case that mothers thought they were being protective of their daughters, but it still sucked being restricted like that.</p><p>In primary school, I would have the same experiences of girls sitting pretty on the bleachers, while the boys played football and ‘rough’. The girls were never encouraged to take up sports or anything. I got the feeling that they were prioritized on the playground and children’s swings. Then you would hear teachers in classrooms favor the boys more than the girls in everything from sports, competitions, school outings. Or hear a teacher say something like “How could you let a girl surpass you in so and so subject”.</p><p>To me, those boys represented freedom. They represented being unencumbered. They could roll around, scrape their knees and be as dirty as they wanted. It seemed like pure joy. I wanted every bit of it, like you wouldn’t believe. The adults, around me were having none of it.</p><p>These events probably seem petty, but as a little kid, they were the greatest injustice in the world to me. I wanted to get ahead of it. I wanted that privilege. I wanted to join the men’s club, if that was where it was.</p><p>Subconsciously, over the years, my identity as a tomboy developed. It didn’t hit the brakes even when I got enrolled in an all-girls boarding school for 5 years. In fact, it made it worse. By then, I had become a full-blown tomboy. I only started to shed the tomboy identity little by little in my third year of university up until now. Currently, depending on who is asked if I am a tomboy. The answer would be one of yes, no and partially.</p><p>Recently I got curious about my development as a kid and it got me asking myself what made me develop this identity. After doing some research about what triggers it in girls, I found answers I didn’t see coming.</p><h3>Who is a tomboy?</h3><p>The first thing that probably pops into your head is a girl who dresses like a boy or maybe a character like Arya Stark and you would be partially right. But it’s so much more than that.</p><p>In the 16th century, the term was first used to describe a rude and loud boy. Now, it’s used to describe girls that exhibit a range of behaviors and traits that society deems appropriate to boys only. One tomboy will definitely be different from the next one. They come in different and complex shades.</p><p>Here’s a list of traits one might notice in a tomboy</p><ul><li>dressing or walking like a boy</li><li>being aggressive</li><li>liking cars and sports</li><li>being a gamer</li><li>hating make-up and dolls</li><li>hating pink, skirts, and dresses</li><li>Loving swords.</li><li>breaking things and putting them together</li><li>playing rough, not caring about getting dirty or about looking pretty</li><li>very active physically and a risk-taker</li><li>a lack of interest in prom, babies, motherhood, marriage, housekeeping</li></ul><p>Some mark their identity strictly by rejecting female clothing. Some may not be masculine but prefer clothing that helps them play sport freely( an athletic girl would avoid heels and skirts).</p><p>Ultimately, the evidence of whether a girl would be labeled a tomboy or not would boil down to how she plays, dresses or spends her free time.</p><p>There’s a misconception that tomboys end up being lesbians. This is actually quite false. Only a very tiny percentage of tomboys end up as lesbians.</p><h3>Why they act the way they do</h3><p>The question has come up time and again as to what causes the development of a tomboy. To what degree is it caused by nature or nurture? There’s some evidence that girls, who were exposed to a male hormone (androgens) in the womb were likely to be tomboys. But these occurrences are very rare, it accounts for a tiny percentage of tomboys.</p><p>I want to explore some of the deeper motivations behind why girls might end up as tomboys according to research. I’ve distilled what I found into several points.</p><blockquote>when you find someone running fast in one direction then you can conclude that he doesn’t want to be in the opposite direction</blockquote><blockquote>- Anon</blockquote><h4>Family Dynamics</h4><p>The dynamics in a girl’s family play a large role in affecting her psychological makeup and her desire to become a tomboy. The family is where nurture begins.</p><p>One of the major instances where girls reject femininity would be if they didn’t see their mothers or women around them as worthy role models they wanted to emulate. In a paper I read about a study on tomboys, one of the respondents Tamika, said</p><blockquote>I’m watching my mother. And I’m like “Wait a minute!” She’s going over to work. She comes home. She’s cooking. She’s washing clothes. She’s washing dishes… Ironing his boxers. But even though my father did cook from time to time… We loved for him to cook. ’Cause he could cook! She could cook too, but it was just <em>special</em> cause he did it. And then on like Saturdays… he would go and bring in crabs… So it was exciting, watching all of this go on. meanwhile , my mother’s in there, ironing clothes. I didn’t like her role. It was always like, “I’m not gonna be waiting on any man.</blockquote><p>Some found it difficult to relate to their mothers as role models because they viewed them as victims, submitting to men. They viewed them as having boring lives, as weak, less adventurous, unambitious, less smart, overworked, unrewarded, and dependent as opposed to their fathers who they thought were providers, strong, outgoing, adventurous, being waited on and served like kings. They looked up to their fathers, they wanted to identify with him, they wanted to be like him.</p><p>Quoting another respondent from the study, Manuela</p><blockquote>“Did I want to be like my mother? Absolutely not. because I thought she lived a pretty boring life…. She used to play bridge. That did not seem to be the least bit interesting to me. Playing bridge. And like my mother, my mother was always — alright, here it comes — was always weaker. She always seemed to be weaker than my father. All ways. Like everything. like she didn’t appear to be as smart as my father. She didn’t appear to be as physically capable as my father. She didn’t do all that fun stuff that my father did. She did boring things. Like play bridge. And shop.”</blockquote><p>The message being passed to these girls from their family dynamics was that femininity is weak, less rewarding, less valuable, and simply without mincing words, less than masculinity. They didn’t think being a woman was cool, neither did they like the future they saw in being a woman, looking forward to the rest of a life where the goal was just getting married, having children and serving a husband. So they flipped. As they grew up, they started to distance themselves from stereotypical female roles like house chores, cooking, sewing, playing with dolls (in their eyes, a child), looking like girls, and started to gain interest in things like sports, camping, etc</p><p>Another family influence could be that while a girl is growing, she is more likely to spend time with other children of the same gender. If she spends more time with little boys, she will learn about masculine specific mannerisms from them. These kinds of girls are more likely to start dating/using makeup later than other girls. For example, an only girl with several male brothers, especially older ones, has a higher chance of turning out as a tomboy because the family is more active and boy-focused. Being surrounded by boys, the only way to cope might be to emulate her brothers while growing up. She might take up their activities as her own. She might be more aggressive, athletic, rugged, etc. Chances of tomboyishness will be low in a family of girls.</p><h4>Safety</h4><p>The tomboy identity is one that protects a girl from the negative aspects of what it means to be female in our society.</p><p>Some girls, as they grow up, witness abuse/harassment in one form or the other from men to women. It might be to their person or their mother or sister. The abuse might be sexual or in the form of physical violence. This experience might make them develop hatred, distrust, and fear of the opposite sex. Ironically, they embrace acting and dressing like the very men, whom they are repulsed by, as a means of defense. They discard their feminity in a bid to not be seen as vulnerable. The rationale here is “if I act tough or dress like a guy, no man would see me as someone to rape or beat up”.</p><p>In reality, the protection the identity offers is limited. It’s a coping mechanism. In a way, they hope that acting like a guy would protect them and the people that they love. They view maleness as physically safer than femaleness. They sacrifice a great part of themselves for that feeling of security.</p><p>I get the feeling this identity camouflage (so to speak) would work with male predators who are repulsed by masculine women because they are only attracted to girly girls.</p><blockquote>“if women are prey, and men are predators, then it’s not safe to be a girl” .</blockquote><blockquote>-a tomboy, somewhere</blockquote><h4>Wanting male privilege</h4><p>Right from birth, it is suggested to the girl child, whether subtly or directly — of her inferiority. She sees it everywhere. At home, the church, mosque, school. It becomes internalized.</p><blockquote>“I couldn’t accept the weakness, passivity, and powerlessness that such ‘femaleness’ required . — Anon</blockquote><p>An instance would be if a girl’s parent or extended family members kept complaining directly or indirectly about how they wished they had a son instead of a girl; or say, a girl grows up in a household where brothers and fathers receive more attention and praise than mothers and sisters.</p><p>Some tomboys expressed some knowledge of the advantages of being male. Some activities were made available to boys but not to girls, like some sports or certain classes such as woodwork or mechanics. Boys were encouraged to go into science and technology while girls were encouraged to go into the arts. Boys were exempted from house chores and babysitting. They were allowed to go out and stay out later. They were taught to aspire to wealth and greatness, while their sisters were taught to aspire to a married life with babies.</p><p>They could sense that there was something different about how society treated men. A different level of freedom. A different level of power that they didn’t feel like they had as girls. It seemed like maleness had power. Maleness could control things. It seemed like having a penis meant you were really important.</p><p>One way or the other they start to get the feeling, that girls are inferior to boys. A potential tomboy will either start to hate the fact that girls are weak or hate the fact that she’s a girl.</p><p>When culture degrades the roles of women compared to men, more girls feel like becoming tomboys. It’s a kind of protest, really. A tug of war between who they are and who they want to be. They protest against their gender. All this can happen subconsciously or not. If you ask her, she might tell you she just loves her boy clothes, she probably does not know why consciously. By rejecting female clothing/mannerisms, girls and women may be trying to deflect negative stereotypes, especially the notion that women are weaker and less competent than men. Or even worse, girls might actually believe these stereotypes and try to distance themselves from feminity.</p><p>In a way, it can be said that the reason some girls turn out to be tomboys is because they reject male superiority. They develop the “if he can do it, I can do it” attitude. While some turn out that way because they have accepted male superiority in the form of a defeat. It’s like saying “ Society treats boys as superior or more important, never girls. I want to be seen as important and worthy. The only way to do that is to be a boy.” So they develop the “If you can’t beat them, join them ” attitude.</p><h4>No Reason, maybe it’ s just who they are</h4><p>Here’s an idea, in the lives of some girls, tomboy-hood may just be a phase where they are highly energetic, physically active, have an “I don’t care attitude”, highly curious, and just all-around adventurous. But because it does not fit in the narrow confines of what the society defines as feminine, they get labeled tomboys. If we genuinely believed girls could be whoever they wanted, we wouldn’t need that label.</p><p>In countries like Canada, Israel, and Australia where you are expected to enjoy the outdoors and be active, it’s interesting to note that fewer girls identify as tomboys. Now, compare that to a country like Saudi-Arabia where women’s activities are very restrictive; you would be more likely to be labeled a tomboy if you did anything slightly “unfeminine”.</p><p><strong>Do tomboys shed their identities?</strong></p><p>Around puberty, girls grow older and develop girly parts, they may begin to shed their identity due to a number of factors.</p><p>They start to get bullied more and may face difficulties with other girls. Boys may not find them as attractive as other girls.</p><p>In high schools, the girly-girls are likely the most powerful girl social groups. A tomboy may want to fit in and tap into some of the advantages that come with being more feminine and attractive.</p><p>It is during this stage they start to develop their first crush. they leave the identity behind if they believe it would help them attract the object of their affection.</p><p>Some don’t want to come across as lesbians probably because of homophobic things that have been said to them in the past.</p><p>Others leave tomboyishness behind when they encounter strong female role models they would like to emulate and realize they don’t have to act or look masculine to be strong.</p><p>The majority of tomboys stop being one at adolescence, and just a few maintain their tomboy identity into adulthood. Good examples are Ellen Degeneres and Pink.</p><p><strong>Conclusion</strong></p><p>Tomboys, ultimately are just people trying to adapt to the world around them. Trying to put forward the best version of themselves, they believe would favor them the most in the world.</p><p>They get a lot of pressure from their families, especially their mothers on how to behave in a socially acceptable way as females. Whenever they try to do stereotypically male things, they get a lot of pushbacks for that like “don’t do that, you are a girl”. To stand out like that, and choose to remain who they want, requires a lot of confidence.</p><p>In my case, I had a masculine complex. I wanted to do things, others considered to be hard. In fact, I made a point of doing things girls would generally leave for boys because I was trying to prove a point to myself and to whoever was watching, that I wasn’t weak. I tried to be as independent as I could, and I generally sought out activities that were considered masculine. I’m ashamed to admit that at some point, I thought I was better than my female peers because I was “the strong one”. In retrospect, I realize, that was my way of coping with the inequality I saw around me. Of course, things changed as I started to grow older. I realized I could be strong and competent while still being feminine.</p><p>Every human being is a mixture of masculine and feminine traits, whether by nature or nurture. There’s nothing feminine about pink or masculine about blue. Society made it so. People are always going to judge because they like to put others in neat little boxes. We are unique and complex beings. We are who we are, and no one can change that.</p><p>Being a tomboy isn’t a bad thing. Although, some of the underlying causes that might have created the identity are less than good. We as a society need to find a way to actively make girl children comfortable in who they are. They need to feel equal to their male counterparts. Not because we don’t want them to become tomboys, but because we want them to grow into confident human beings. We don’t want them feeling inferior. We want them to be free to be whoever they want to be. We want them to believe they are competent enough to change the world.</p><p><strong>Sources</strong></p><ul><li>Tomboy Resistance and Conformity: Agency in Social Psychological Gender Theory — C. Lynn Carr</li><li>Tomboy as a protective Identity — Tracy Craig, Jessica Lacroix</li><li>Tomboys and cowgirls: The girl’s disidentification from the mother — Diane Elise</li><li>Who are Tomboys and why should we study them? — J. Michael Bailey, Kathleen Bechtold Kortte, Sherri Berenbaum</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9a8e08daee6b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Jiji Man-in-The Middle Scam]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/the-jiji-man-in-the-middle-scam-b1a4f0229b55?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/b1a4f0229b55</guid>
            <category><![CDATA[scam]]></category>
            <category><![CDATA[naija]]></category>
            <category><![CDATA[storytelling]]></category>
            <category><![CDATA[lagos]]></category>
            <category><![CDATA[nigeria]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Tue, 06 Nov 2018 09:55:48 GMT</pubDate>
            <atom:updated>2018-11-06T09:55:48.114Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*EgBACVZL4aQOYXxxOo3hdg.jpeg" /><figcaption>Scam Alert Image</figcaption></figure><p>One fine Friday at work, I was about to go have lunch when I came upon some of my other colleagues at the office gate. They seemed to be arguing with two unknown people. One, a tall delivery man covered head to toe in protective clothing. The other, a shorter man who seemed to be doing most of the arguing between the pair. The argument scene was set near the delivery man’s motor bike at the office gate. They all seemed to express a range of emotions ranging from anger, anxiety and surprise.</p><p>After standing around for a minute or two trying to decipher what exactly was going on and failing, I decided to go and have my long overdue lunch, having it at the back of my mind that if I don’t go to the gist, the gist will come to me, eventually.</p><p>Anyway, after the gathering had dispersed, I decided to ask someone, and then I was told it had to do with another colleague of ours, Benjamin, who tried to buy a second-hand phone on jiji.ng and got scammed for it. After listening attentively, I decided to write about it so that people can beware of this scam not just on jiji.ng, but also on other e-commerce sites. I had to hear from the horse’s mouth exactly how it happened. So, here’s Ben’s account of what happened.</p><blockquote><strong><em>How I was scammed on jiji.ng</em></strong><br>*Prelude*<br>The day before I was scammed, I got home to discover that my Infinix X551<br>mobile phone of about a year refused to come on. I was certain it was not a <br>battery problem as I just changed the battery some 2 months earlier. So, being<br>that I was expecting an important call from someone about a business deal <br>(which never came), I decided to get a new phone the following day.</blockquote><blockquote>*Gist*<br>On getting to the office the following day, I went online on my laptop and<br>searched for a fairly used phone on jiji.ng. I was looking to buy an Infinix<br>Hot 6 Pro for which I saw an offer for 35000 Naira.</blockquote><blockquote>I called the number on the profile and the person told me he will deliver it to<br>my destination. On delivery, I discovered that the phone was brand new. The<br>delivery guy wanted me to transfer the money to his account, but I refused because the guy I spoke to over the phone instructed me not to pay to the delivery man and that he will send the account number where I should transfer the money into.</blockquote><blockquote>The account number was sent to me after I told him I had seen the package, and I naively transferred the money to his account. After transferring the money, <br>then the real gist started.<br>The delivery guy called the person who gave him the goods, to confirm if he has <br>received the money before he moves on to deliver other goods. The owner of the <br>good claimed he has not received any cash. Luckily for me, the delivery guy watched me start the transaction and saw that it had been successful and that I had been debited, so he readily handed the phone over to me.</blockquote><blockquote>I opened up the phone, switched it on and started testing it when I realized there was a problem. The name of the owner of the product was different from the name of the account I sent the cash to.<br>The owner of the store, having realized that he had been scammed, came down to my office (thank God it was my office, and not my home, if not I would have been bullied) and tried to make some threats. He claimed he was not the one I paid to and that he was going to take the phone away. My co-workers all weighed in, argued against him, telling him that won’t be possible as I had already paid. This went back and forth until the seller agreed to refund 27000 Naira to me after which I then return the phone back to him.</blockquote><blockquote>So, in the end, I only lost 8000 Naira (it could have been worse — 35000 Naira). I like to believe it was a win-win situation for the both of us (or should I say a lose-lose situation, that’s if the delivery man’s buyer didn’t set up the whole scam).</blockquote><blockquote>*My understanding of the scam*</blockquote><blockquote>For those familiar with encryption and internet security, this is a classic <br>example of a man-in-the-middle attack. The person I contacted on the phone, (let’s call him phone-guy) did not have any product for sale. After receiving an order from me (which included my name, address and phone number),<br>phone-guy in turn made an order from the store where they sell phones claiming that he wanted to order a phone for his girlfriend and that he wanted to surprise her. Phone-guy told the original seller to write a receipt for N35,000 and not disclose the original amount to the person receiving the phone.<br>So, ladies and gentlemen, that was how I fell for a scammer on jiji.ng.<br>A brilliant scammer I must say.”</blockquote><p>This scam exploits a loophole in the buying and selling process at jiji.ng. A fake seller poses as a real seller, when he finds a customer, he uses the real seller to deliver the goods. Fake seller receives the payment for it instead of the real seller. This loophole exists in other e-commerce sites that allow individual sellers to list their products.</p><p>A way to protect against this, is to watch out for red flags. In Benjamin’s case for instance, the fact that the Infinix phone he ordered for was used, but the one delivered was brand new worth more than N35,000 was a red flag. You know what they say, if it sounds too good to be true, it probably is. Well, it’s easy to say that now, hindsight is always 20/20.</p><p>Another way to protect against this scam is to always use the delivery man’s connect to pay for goods, (since the real buyer is usually the one who sends the delivery guy) instead of paying through the contact you got online.</p><p>But what if we are wrong? What if the original seller had set up this whole scam? Made Benjamin pay into a different account and then still claim he didn’t get paid. What if he had planned to bully Benjamin into handing him the phone back, but didn’t count on Benjamin being around co-workers who will stand up for him. How do we explain the seller returning 27000 Naira for a payment he didn’t receive? Or did he do it out of the goodness of his heart? I guess we will never know.</p><p>So watch out for this scam folks. C’est fini.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b1a4f0229b55" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why Abortion should be Legal in Nigeria]]></title>
            <link>https://medium.com/@adeyinkaadegbenro/why-abortion-should-be-legal-in-nigeria-2027a92f16e7?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/2027a92f16e7</guid>
            <category><![CDATA[women]]></category>
            <category><![CDATA[nigeria]]></category>
            <category><![CDATA[abortion]]></category>
            <category><![CDATA[womens-health]]></category>
            <category><![CDATA[lagos]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Thu, 11 Oct 2018 23:06:31 GMT</pubDate>
            <atom:updated>2018-10-11T23:06:31.360Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/986/1*1N3Ze5rEPDQRVlm0S0H4Iw.jpeg" /></figure><p>If you didn’t already know, inducing an abortion is illegal in Nigeria except when the woman’s life is at risk. It is governed by two laws, the Penal Code, for the North and the Criminal Code for the south. The sections concerning abortion are 228, 229 and 230 in the Criminal Code Act of the Constitution of the Federal Republic of Nigeria. It states that</p><blockquote><strong>228.</strong> Any person who, with intent to procure miscarriage of a woman whether she is or is not with child, unlawfully administers to her or causes her to take any poison or other noxious thing, or uses any force of any kind, or uses any other means whatever, is guilty of a felony, and is liable to imprisonment for fourteen years…<a href="http://www.nigeria-law.org/Criminal%20Code%20Act-PartIII-IV.htm">more</a></blockquote><p>So, if you are seeking abortion or already sought it, you are liable to 7 years in prison, but if you are the provider of abortion, you are liable to even greater punishment, 14 years in prison.</p><p>Data on provision of abortion &amp; post-abortion care were collected from a sample size of 772 health facilities by <a href="https://www.researchgate.net/publication/294108045_The_Incidence_of_Abortion_in_Nigeria">Nigerian researchers</a> at the Guttmacher Institute, New York to estimate the incidence of abortion and unintended pregnancy in Nigeria in 2012. An estimated 1.2 million induced abortions occurred in Nigeria in 2012. This is equivalent to 33 abortions per 1000 women. Estimated unintended pregnancies were 59 per 1000 women between ages 15 &amp; 49. About 56% of those unwanted pregnancies were resolved by abortion. About 212,000 women were treated for complications of unsafe abortion, representing a treatment rate of 5.6 per 1,000 women. A staggering 285, 0000 women experienced serious health consequences but did not receive the treatment they needed. All of this, in a country where abortion is illegal. So what gives?</p><blockquote><strong><em>*Fun Fact</em></strong><em>:</em> Did you know, that Nigeria and Ghana have the highest online search for abortion pills despite ban?</blockquote><p>It’s not a question of whether women will try to procure an abortion or not regardless of the law, whether we like it or not, it’s going to happen, no matter if it is safe or not. The data has shown this. It’s a question of whether they get to have these abortions safely under close monitoring of quality health professional. It’s a question of whether they are not afraid of getting help when things go terribly awry from inducing an abortion.</p><p>No woman should have to go to jail because they don’t want a pregnancy. A pregnancy which if carried to term, would solely be her responsibility <em>for a major part of her life</em>! By the way, the government doesn’t care if you can’t afford to take care of that baby, but they are going to try and force you to keep that baby. No such thing as welfare/aid for you if you are a poor mother in Nigeria. The closest you are going to get to welfare in this country is rice or money shared by political aspirants during election season.</p><p>With the high cost of living and low income plaguing the country, raising an unwanted child is very expensive. It is time consuming, it drains you financially and emotionally. The onus is on the woman to bear the burden of taking care of the baby alone in majority of the cases of unwanted pregnancies. If she’s lucky, the baby’s father or family members help out.</p><p>Poor mothers with unwanted pregnancies are usually the ones who bear the brunt of the abortion ban. They are more likely to be desperate for an abortion than women of means, because of their low/zero income and the potential future cost of raising a new child and as a result, are more likely to seek the help of a quack doctor or even worse do it themselves because they can’t afford a better specialist willing to perform the illegal procedure; which may or may not lead to abortion complications and in extreme cases, future infertility or death.</p><p>Teen moms are not left out. There’s a huge social stigma around sex out of wedlock, talk less of pregnancy. A pregnant young teen, because of the stigma and shame from society, will try to prevent people, most especially her parents from finding out she’s pregnant. There’s even a saying used to shame unmarried ladies with unintended pregnancies; <em>“Belle don come, shakara don end”, </em>meaning “Pregnancy has come, thus posing/showing off has ended”. This stigma is strong enough to drive most girls to get an abortion at all costs. I’ve heard horror stories of pregnant boarding school girls aborting their baby by using an iron cloth hanger to pull the fetus out. There’s a kind of desperation that makes a woman insert an hanger into her body, regardless of bleeding to death or facing prison. Social pressure is hard. No woman should have to face that.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g5GW4fHb27TgG6Dg_ecH_Q.jpeg" /></figure><h3>Oppositions</h3><p>There are some common arguments people give against why abortion should be illegal all over the world.</p><h3>Should have used a condom</h3><p>People will say things like, you should have used a condom, you should have kept it in your pants, you should have used Postinor 2. That logic is faulty. You might as well tell someone who contracted HIV/AIDS that they don’t deserve to get treated for it because they should have been more careful. These people are forgetting that contraception does fail. Contraception failure doesn’t discriminate against married or unmarried women. So, when contraception fails, what happens then? In your opinion, do they deserve to have an unwanted pregnancy?</p><p>Apart from that, not everybody knows what they are doing when it comes to sex, especially teenagers. In Nigeria, sex education from parents to their children is nothing to write home about. Most parents try to avoid it or even sugar-coat it. You won’t hear the average Nigerian father tell his son to use a condom, because they don’t want it to seem like they are encouraging their kids to have sex, so they avoid the conversation all together.</p><p>Doesn’t a woman with five/six/enough kids, who has an unwanted pregnancy deserve an abortion? Should a naive, immature fifteen year old girl with an unwanted pregnancy who made the mistake of having sex without condom have to pay for that mistake for the rest of her life? Should a woman who gets pregnant after being raped have to be reminded of this humiliation forever by keeping that child? Should a university student that can’t fend for herself have to keep an unwanted pregnancy by a man who could not care less? Should a career driven woman who is not emotionally/psychologically ready to care for a baby have to keep her pregnancy?</p><p>Well the government thinks they should, by keeping that law in place, and preventing medical practitioners from openly helping these women exercise their human rights over their own body. Abortion is an issue that most people feel doesn’t concern them, until it does.</p><p>Not to mention, we have a population problem in Nigeria. The fact is, Nigeria is lacking a concrete population control plan, since we are depending on family planning alone to curb our population explosion. The government of China uses abortion as a family planning tool and also as a remedial measure for controlling their population.</p><h3>Religion</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vzYOrVFZDdry9OU8ZTRAXw.jpeg" /></figure><p>Some give religion as a reason that abortion should continue to be illegal. A lot of people believe that God is against abortion. Personally, I challenge the belief/argument that abortion is forbidden by religion, but that’s a story for another day. Abortion is not treated anywhere in the christian/Islamic scriptures; you might then give a rebuttal, saying <em>thou shall not commit murder </em>is a part of the ten commandments and that a fetus is a living human. Is it though? At what point do we draw the line between an unborn’s right and the mother’s rights.</p><p>I believe we should let the woman decide herself, if she wants to commit the <em>sin</em> of abortion <em>(since we are discussing something that affect her person)</em>, the same way condoms are provided to the general public and people are left to decide if they want to commit the sin of premarital sex, after all, <em>thou shall not fornicate </em>is a law in religion.</p><p>The matter of whether abortion bans should be removed should be decided by conscience and reason, not by religion. The woman is the closest one to the decision. She is the one who has her life on the line, whose body and future are at stake. She should be left to decide what she wants.</p><p>So called killing of the unborn child is a lesser evil compared to not giving a woman the sole right over her body. We don’t get to force people to have a baby earlier than they are ready to or at all.</p><h3>Risk</h3><p>A lot of people believe that abortion can cause a woman to die or can lead to future infertility. They are not wrong. But so can pregnancy. The risks referred to, do happen when abortions and pregnancies take place in unsafe ways without close monitoring by qualified health professionals. According to a study by <a href="https://journals.lww.com/greenjournal/Fulltext/2012/02000/The_Comparative_Safety_of_Legal_Induced_Abortion.3.aspx">Obstetrics &amp; Gynecology</a>, the risk of death associated with childbirth is approximately 14 times higher than that with abortion. This actually makes sense, because as the fetus grows bigger, the placenta gets stronger, and the baby depends on the mother more, delivering a baby that has come to term comes with larger risks.</p><p>Abortion has a scary reputation, and rightfully so, but this believe is based on outdated and unsafe techniques of abortions being carried out in the country. Abortions are unsafe in Nigeria, because people don’t have access to safe procedures; they don’t have access to safe procedures because there’s a ban on it. If the ban remains, the procedure remains unsafe. We can’t have one without the other.</p><h3>The Way Forward</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*E59iJZBKKQZNLV2p1Z6dTg.jpeg" /></figure><p>It’s the government’s job to make sure women don’t die unnecessarily from unsafe abortion. The right way for the government to reduce abortion is to make it less necessary instead of less available. Programs should be made available to educate people on the use of various means of contraceptives. Also, parents should be encouraged to educate their children on premarital sex and contraceptives. Another way is to make sure, women have the financial means and access to health care should they choose to keep the baby. This is by far, a better way of reducing unintended pregnancies.</p><p>Women should also have access to safer abortion procedures. They can make sure of this by lifting the ban first and then training professionals who can carry out the procedure safely on a world class level.</p><p>***************************************************************</p><p><em>In Nigeria and around the world, organizations have been set up to help women who want an abortion. So if you are a girl/woman and you wants an abortion you can get help from the likes of </em><a href="https://www.womenonweb.org/en/i-need-an-abortion"><em>WomenOnWeb</em></a><em> and </em><a href="https://twitter.com/msrosy1"><em>Miss Rosy</em></a><em>. Also, if you want to read about other people’s abortion stories, read </em><a href="https://www.pregnancychoicesdirectory.com/peoplesstories/abortion/"><em>this site</em></a><em> and </em><a href="https://www.womenonweb.org/en/page/488/i-had-an-abortion"><em>this site</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2027a92f16e7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Handle POST/PUT requests in offline applications using Service Workers, IndexeDB and…]]></title>
            <link>https://medium.com/formplus-blog/how-to-handle-post-put-requests-in-offline-applications-using-service-workers-indexedb-and-da7d0798a9ab?source=rss-73840124ab02------2</link>
            <guid isPermaLink="false">https://medium.com/p/da7d0798a9ab</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[service-worker]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Adeyinka Adegbenro]]></dc:creator>
            <pubDate>Fri, 03 Aug 2018 07:48:36 GMT</pubDate>
            <atom:updated>2018-08-07T07:48:39.677Z</atom:updated>
            <content:encoded><![CDATA[<h3>How to Handle POST/PUT requests in offline applications using Service Workers, IndexeDB and Background Sync</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/544/1*dYDGoBWO5hPLYcGuEGvMgg.jpeg" /><figcaption>Credit: <a href="http://www.safaribooksonline.com">www.safaribooksonline.com</a></figcaption></figure><p><em>*If you know nothing about taking a web page offline, you will learn this from my previous article, which is a </em><a href="ttps://blog.formpl.us/a-simple-guide-to-taking-a-web-page-offline-using-service-workers-f4c42e7b4ada?utm_source=Fpls_Blog&amp;utm_content=Handle_POST_PUT_requests_in_offline_applications"><em>Simple Guide to taking a Web Page Offline using Service Workers</em></a><em>. So this article is sort of a sequel, and I will only be explaining how I handled POST requests offline</em></p><p>A while back, I worked on taking an app offline using service workers. While working on this project, I had to make sure that all the key parts of the application work offline. With the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API">service worker API</a>, making icons, text, images and fonts display offline was no biggie. The headache came when I had to deal with sending file uploads and other requests to the server that were POST requests. I realized then that the service worker API does not support caching POST/PUT requests, only GET.</p><p>Since it was a must for me to make the POST requests work offline seamlessly, I looked to Google to find workarounds to this problem, only to find inadequate information on how to make that happen on the internet.</p><p>Let’s say I have a form in my web application, and I’d like it to work offline, there’s a way to make it happen using a combination of Service Workers, IndexeDB and Background Sync.</p><p>At <a href="https://www.formpl.us">Formplus</a>, where I work, our forms are usable offline in the browser for all kinds of fields, including file uploads <em>(we also have an hybrid app in the works)</em>, so if you don’t want to go through all the trouble of implementing such, we are here for you.</p><p>What we will be doing is this, once there is an attempt to send a POST request,</p><ol><li>we save that request to the user’s browser using IndexeDB, and then</li><li>with the help of <a href="https://developers.google.com/web/updates/2015/12/background-sync">Background Sync</a> <em>(which only works on chrome 49 &amp; up),</em> once the user’s browser is back online we detect it.</li><li>At this point we then retrieve our POST request from the IndexedB and send it on its merry way to the server.</li></ol><p>For this tutorial, I’m going to be using a Flask form I wrote a while back. You can find it <a href="https://github.com/AdeyinkaAdegbenro/Flask_Form">here</a>. We are going to be taking it offline, just like I did <a href="https://blog.formpl.us/a-simple-guide-to-taking-a-web-page-offline-using-service-workers-f4c42e7b4ada?utm_source=Medium&amp;utm_campaign=PUT_POST_REQUESTS&amp;utm_term=Offline_Applications">here</a>. We won’t stop there, we would make sure that while it is offline, a user can submit a form; and then once they are back online, we send their data to our server. This way, a lack of internet won’t affect your user experience. Before we take the app offline, let’s review how the Flask app works on a normal basis. It is a Flask app that features a web form.</p><p>*<em>please follow along with the github code </em><a href="https://github.com/AdeyinkaAdegbenro/Flask_Form"><em>here</em></a><em> and </em><a href="https://github.com/AdeyinkaAdegbenro/Offline_Flask_Form"><em>here</em></a></p><p>We have our app.py</p><pre>from flask import Flask, render_template, request</pre><pre>app = Flask(__name__)</pre><pre><a href="http://twitter.com/app">@app</a>.route(&#39;/&#39;)<br><a href="http://twitter.com/app">@app</a>.route(&#39;/index&#39;)<br>def home():<br>    return render_template(&#39;index.html&#39;)</pre><pre><a href="http://twitter.com/app">@app</a>.route(&#39;/submit&#39;, methods=[&#39;POST&#39;])<br>def submit_form():<br>    payload = request.get_json()<br>    print payload<br>    first_name = payload[&#39;first_name&#39;]<br>    middle_name = payload[&#39;middle_name&#39;]<br>    last_name = payload[&#39;last_name&#39;]<br>    date_of_birth = payload[&#39;date_of_birth&#39;]<br>    address = payload[&#39;address&#39;]<br>    hobby = payload[&#39;hobby&#39;]<br>    print first_name, middle_name, last_name, date_of_birth,<br>    address, hobby<br>    return &#39;&#39;</pre><pre>app.run(debug=True)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*45Tsfq4qDzqEkw2Txw4msg.png" /></figure><p>Parts of our index.html looks like this</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UwofRhAQCdj0SA2Df4OuCA.png" /><figcaption>Image of parts of the index.html code</figcaption></figure><p>The web form look like below</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YbkNBujsq5rSq5bjfh6eyA.png" /><figcaption>A filled web form</figcaption></figure><p>On submission, it sends a POST request to the/submit endpoint in the server via ajax in scripts.js, including the data you filled in the form.</p><pre>function submitFunction (event) {<br>  event.preventDefault()<br>  console.log(&#39;submitted&#39;, event)<br>  first_name = $(&#39;#first_name&#39;).val()<br>  middle_name = $(&#39;#middle_name&#39;).val()<br>  last_name = $(&#39;#last_name&#39;).val()<br>  date_of_birth = $(&#39;#date_of_birth&#39;).val()<br>  address = $(&#39;#address&#39;).val()<br>  hobby = $(&#39;#hobby&#39;).val()<br>  console.log(&#39;values,&#39;, first_name, middle_name, last_name,<br>  date_of_birth, address, hobby)<br>  $(&#39;#my_form&#39;).hide()</pre><pre>  // send  to server<br>  data = {<br>    first_name: first_name,<br>    middle_name: middle_name,<br>    last_name: last_name,<br>    date_of_birth: date_of_birth,<br>    address: address,<br>    hobby: hobby<br>  }</pre><pre>$.ajax({<br>    type: &quot;POST&quot;,<br>    url: &#39;/submit&#39;,<br>    contentType: &#39;application/json&#39;,<br>    data: JSON.stringify(data),<br>    success: function () {<br>      console.log(&#39;data sent to server successfully&#39;)<br>    },<br>    dataType: &#39;json&#39;<br>  });<br>  <br>  message = &#39;Your data has been sent to the server&#39;<br>  $(&#39;#message&#39;).append(message)<br>  return false<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BJmQZFkLWTFokghkTWizYA.png" /><figcaption>Sending data to the server via jquery ajax</figcaption></figure><p>Before clicking the submit button you can inspect this by doing ctrl shift i and then clicking the network tab . On clicking the submit button you should see something like below. We can see details about our request, including our payload.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8vkI_gNsrzoz2xSSfwyKvQ.png" /><figcaption>How /submit looks like in the network tab</figcaption></figure><p>In the Form Data section, in your own case you should see the data you inputted in the web form.</p><p>Now let’s take it offline. We do this by first creating a service worker script as sw.js</p><pre>var CACHE_NAME = &#39;offline-form&#39;;<br>var urlsToCache = [<br>  &#39;/&#39;,<br>  &#39;/static/style.css&#39;,<br>  &#39;/static/script.js&#39;,<br>  &quot;<a href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.11.8/semantic.min.css">https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.11.8/semantic.min.css</a>&quot;,<br>  &quot;<a href="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js">https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js</a>&quot;,<br>  &quot;<a href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.11.8/semantic.min.js">https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.11.8/semantic.min.js</a>&quot;<br>];</pre><pre>self.addEventListener(&#39;install&#39;, function(event) {<br>  // install file needed offline<br>  event.waitUntil(<br>    caches.open(CACHE_NAME)<br>      .then(function(cache) {<br>        console.log(&#39;Opened cache&#39;);<br>        return cache.addAll(urlsToCache);<br>      })<br>  );<br>});</pre><pre>self.addEventListener(&#39;fetch&#39;, function(event) {<br>  // every request from our site, passes through the fetch handler<br>  // I have proof<br>  console.log(&#39;I am a request with url: &#39;,<br>  event.request.clone().url)<br> <br>});</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0qmgp6HlVyObBh7Ho88ReA.png" /><figcaption>Service Worker Script — Sw.js</figcaption></figure><p>And registering the service worker in static/script.js</p><pre>if (&#39;serviceWorker&#39; in navigator) {<br>    // we are checking here to see if the browser supports the service worker api<br>     window.addEventListener(&#39;load&#39;, function() {<br>       navigator.serviceWorker.register(&#39;/sw.js&#39;).then(function(registration) {<br>        // Registration was successful<br>        console.log(&#39;Service Worker registration was successful<br>           with scope: &#39;, registration.scope);<br>         }, function(err) {<br>           // registration failed :(<br>           console.log(&#39;ServiceWorker registration failed: &#39;,<br>           err);<br>         });<br>      });     <br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ermvBcO9JMd6Cn62_XyjHg.png" /><figcaption>How script.js looks</figcaption></figure><p>And then by adding an handler for our service worker script (sw.js) in our Flask app, in app.py</p><pre><a href="http://twitter.com/app">@app</a>.route(&#39;/sw.js&#39;, methods=[&#39;GET&#39;])<br>def sw():<br>    return app.send_static_file(&#39;sw.js&#39;)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nMrf-3A8fBi3z2f02Uih4A.png" /><figcaption>added Flask handler for the route /sw.js in app.py</figcaption></figure><p>After saving all of our files, let’s test our offline app, by loading the page to refresh it and then when we are offline <em>(also with our flask server shut) </em>we reload the page<em>.</em></p><p>On my end, I am able to load the page offline.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*F60BmAu_X5vRDUVE-tCHZg.png" /><figcaption>Our page loaded offline</figcaption></figure><p>Now I’m going to try and submit the form and see what happens.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N3qmKBh74onoyWjIGZ9u1A.png" /><figcaption>Error in my console: POST <a href="http://localhost:5000/submit">http://localhost:5000/submit</a> net::ERR_FAILED jquery.min.js:4</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*D9IzIDPOkvFGLsYVAaLwRw.png" /></figure><p>The message on the page seems to be saying “<em>Your data has been sent to the server”.</em> However, I am not fooled by this, because on inspecting my network tab, at the url submit, I can clearly see a red which stands for an error. On clicking &amp; checking the response section, I can also see that its empty; which means our request did not get to the server at all. At the very least, if a request gets to the server we are supposed to get a response, even if there’s a 500 server error or 404 not found error.</p><h3>Handling Post Requests in Service Workers</h3><p>We are now at the heart of the matter. Our next step is to capture our POST request along with its payload, and then find a way to store it on the user’s browser temporarily until such a time when they are back online. We are going to be <a href="https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB">using Indexedb</a> for storing the requests in-browser. Please go through the <a href="https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB">documentation</a> to understand what I am doing here</p><h4>Create Database</h4><p>First, we create a database that is going to hold our offline data. And we create it in our service worker script (sw.js)</p><pre>function openDatabase () {</pre><pre>  // if `flask-form` does not already exist in our browser (under<br>  our site), it is created</pre><pre>  var indexedDBOpenRequest = indexedDB.open(&#39;flask-form&#39;,<br>  IDB_VERSION)</pre><pre>  indexedDBOpenRequest.onerror = function (error) {</pre><pre>    // error creating db</pre><pre>    console.error(&#39;IndexedDB error:&#39;, error)</pre><pre>  }</pre><pre> indexedDBOpenRequest.onupgradeneeded = function () {</pre><pre>   // This should only executes if there&#39;s a need to <br>   // create/update db.</pre><pre>   this.result.createObjectStore(&#39;post_requests&#39;, {<br>    autoIncrement:  true, keyPath: &#39;id&#39; })</pre><pre> }</pre><pre>  // This will execute each time the database is opened.</pre><pre>  indexedDBOpenRequest.onsuccess = function () {</pre><pre>    our_db = this.result<br>  }<br>}</pre><pre>var our_db</pre><pre>openDatabase()</pre><p>We just created a database for our app with the name flask-form. We also created something called an <strong>object store</strong> for our database named post_requests. You can think of it as a table like in SQL or like a file in a folder. A db can contain several object stores.Now our database can be accessed via our_db. Now refresh the page, visit the Application tab in your console, go to the Indexedb section; right click on it and refresh database. There should be a drop-down on it containing our database flask-form and under that, our object store post_requests.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*X1ny2_zgASE63ronz-L4iw.png" /><figcaption>How our database looks like in the console</figcaption></figure><h4>Send form data to Service Worker</h4><p>Next we need to find a way to get our form data across to the service worker. We do this by using the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Client/postMessage">Client.postmessage</a> API to send and receive data between our script.js and sw.js. So immediately submission occurs we should send our payload via post message.</p><pre>var data = {<br>    first_name: first_name,<br>    middle_name: middle_name,<br>    last_name: last_name,<br>    date_of_birth: date_of_birth,<br>    address: address,<br>    hobby: hobby<br>}<br>// send message to service worker via postMessage<br>var msg = {<br>  &#39;form_data&#39;: data<br>}<br>navigator.serviceWorker.controller.postMessage(msg)  // &lt;-This<br>// line right here sends our data to sw.js</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LciBCtwRRc1CJGZ0ry3iTQ.png" /><figcaption>An image of how postmessage is used in script.js (in context)</figcaption></figure><p>Next, we set a message listener in sw.js. Its job is to receive our message once it arrives.</p><pre>self.addEventListener(&#39;message&#39;, function (event) {<br>  console.log(&#39;form data&#39;, event.data)<br>  if (event.data.hasOwnProperty(&#39;form_data&#39;)) {<br>    // receives form data from script.js upon submission<br>    form_data = event.data.form_data<br>  }<br>})</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2yDAr4qPDzNM-mc0ZE6Nrg.png" /><figcaption>An image of our message listener in sw.js always alert to new messages from other scripts</figcaption></figure><h4>Save form data in indexedb</h4><p>Now, we are ready to intercept our POST requests in the fetch handler to prevent errors when we are offline. So we update our fetch handler with the following code</p><pre>self.addEventListener(&#39;fetch&#39;, function(event) {<br>  // every request from our site, passes through the fetch handler<br>  // I have proof<br>  console.log(&#39;I am a request with url: &#39;,<br>   event.request.clone().url)<br>  if (event.request.clone().method === &#39;GET&#39;) {<br>    event.respondWith(<br>      // check all the caches in the browser and find<br>      // out whether our request is in any of them<br>      caches.match(event.request.clone())<br>        .then(function(response) {<br>          if (response) {<br>            // if we are here, that means there&#39;s a match<br>            //return the response stored in browser<br>            return response;<br>          }<br>          // no match in cache, use the network instead<br>          return fetch(event.request.clone());<br>        }<br>      )<br>    );<br>  } else if (event.request.clone().method === &#39;POST&#39;) {<br>    // attempt to send request normally<br>    event.respondWith(fetch(event.request.clone()).catch(function<br>    (error) {<br>      // only save post requests in browser, if an error occurs<br>      savePostRequests(event.request.clone().url, form_data)<br>    }))<br>  }<br>});</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*k8sPDZhKA14AdHZcnJGaMw.png" /><figcaption>Our new fetch handler</figcaption></figure><pre>function getObjectStore (storeName, mode) {<br>  // retrieve our object store<br>  return our_db.transaction(storeName,mode<br>   ).objectStore(storeName)<br>}</pre><pre>function savePostRequests (url, payload) {<br>  // get object_store and save our payload inside it<br>  var request = getObjectStore(FOLDER_NAME, &#39;readwrite&#39;).add({<br>    url: url,<br>    payload: payload,<br>    method: &#39;POST&#39;<br>  })<br>  request.onsuccess = function (event) {<br>    console.log(&#39;a new pos_ request has been added to indexedb&#39;)<br>  }</pre><pre>  request.onerror = function (error) {<br>    console.error(error)<br>  }<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jGDBgwiHr1KCiLq6V6p4xw.png" /><figcaption>An image showing how we saved the form payload, request url and method type</figcaption></figure><p>Above, we are saving our payload, request url and method type into our object store, which was retrieved with the help of getObjectStore. In the event that you are trying to save a PUT request, you can just change &#39;POST&#39; to &#39;PUT&#39;.</p><p>It’s time to check whether our request gets saved in the Indexedb database flask-form. Shut down your flask server, put off the wifi and try to submit the form offline, and see if it is in flask-form. You do this by going to the Application tab in the console and then the Indexedb section, right click &amp; refresh database. In the drop down you should see flask-form-&gt; post_requests and also the data you have filled in the form.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1022/1*kLKUZuVK2Nh9_zNusYukOw.png" /><figcaption>An image of how the form data from two responses look in the indexedb</figcaption></figure><h3>Syncing to Server with Background Sync</h3><p>Now that we have form data stored in the browser, we have to figure out two things. One, how to automatically detect when the user/browser is back online; two, how to retrieve our form data from the Indexedb database and send the data to the server.</p><h4>Automatically detecting when the browser is online</h4><p>This is when Background Sync comes into play. We can request a background sync for our app by registering it in our script.js and then listening for the <strong>sync</strong> event in the service worker script. Here’s how to register a sync. I have given my sync a unique name that represents what I need it to do sendFormData</p><pre>navigator.serviceWorker.ready.then(function(registration) {<br>  console.log(&#39;Service Worker Ready&#39;)<br>  return registration.sync.register(&#39;sendFormData&#39;)<br>}).then(function () {<br>   console.log(&#39;sync event registered&#39;)<br> }).catch(function() {<br>   // system was unable to register for a sync,<br>   // this could be an OS-level restriction<br>   console.log(&#39;sync registration failed&#39;)<br> });</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Dq-euG44vVXdxkUR3wnOFA.png" /><figcaption>Image showing how background sync was registered in script.js (in context)</figcaption></figure><p>Next, we need to listen for the sync event in the sw.js. This event is triggered whenever the browser comes online. Notice below, how we use sendFormData to check if the event being triggered was the one we registered.</p><pre>self.addEventListener(&#39;sync&#39;, function (event) {<br>  console.log(&#39;now online&#39;)<br>  if (event.tag === &#39;sendFormData&#39;) { // event.tag name checked<br>    // here must be the same as the one used while registering<br>    // sync<br>    event.waitUntil(<br>      // Send our POST request to the server, now that the user is<br>      // online<br>      sendPostToServer()<br>      )`<br>  }<br>})</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LKDzbxitaR0hFbEcUynv-Q.png" /><figcaption>An image of our sync event listener</figcaption></figure><h4>Retrieving form data &amp; sending to server</h4><p>We are going to retrieve all of our saved requests from the browser’s indexedb with cursors and save then into an array savedRequests.</p><pre>function sendPostToServer () {<br>  var savedRequests = []<br>  var req = getObjectStore(FOLDER_NAME).openCursor() // FOLDERNAME<br>  // is &#39;post_requests&#39;</pre><pre>  req.onsuccess = async function (event) {<br>    var cursor = event.target.result</pre><pre>   if (cursor) {<br>    // Keep moving the cursor forward and collecting saved<br>    // requests.<br>    savedRequests.push(cursor.value)<br>      cursor.continue()<br>   } else {<br>     // At this point, we have collected all the post requests in<br>     // indexedb.<br>     for (let savedRequest of savedRequests) {<br>       // send them to the server one after the other<br>       console.log(&#39;saved request&#39;, savedRequest)<br>       var requestUrl = savedRequest.url<br>       var payload = JSON.stringify(savedRequest.payload)<br>       var method = savedRequest.method<br>       var headers = {<br>         &#39;Accept&#39;: &#39;application/json&#39;,<br>         &#39;Content-Type&#39;: &#39;application/json&#39;<br>       } // if you have any other headers put them here<br>       fetch(requestUrl, {<br>         headers: headers,<br>         method: method,<br>         body: payload<br>       }).then(function (response) {<br>         console.log(&#39;server response&#39;, response)<br>         if (response.status &lt; 400) {<br>          // If sending the POST request was successful, then<br>          // remove it from the IndexedDB.<br>          getObjectStore(FOLDER_NAME,<br>             &#39;readwrite&#39;).delete(savedRequest.id)<br>         } <br>      }).catch(function (error) {<br>         // This will be triggered if the network is still down. <br>        // The request will be replayed again<br>       // the next time the service worker starts up.<br>       console.error(&#39;Send to Server failed:&#39;, error)<br>        // since we are in a catch, it is important an error is<br>        //thrown,so the background sync knows to keep retrying <br>        // the send to server<br>        throw error<br>      })<br>     }<br>    }<br>  }<br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jUzrEGiZpwlVpY4fHPgnfA.png" /><figcaption>An image showing the function sendPostToServer and the sync event listener (in context)</figcaption></figure><p>We iterate through savedRequests and retrieve that particular request’s url, payload and method. We then use the fetch API to send the request to our server; after which, we delete that particular savedRequest from the indexedb if the response was successful. We delete it because we wouldn’t want to send our POST request twice in the event of another sync. If the request fails, whether because of a slow network or a 500 server error, you can leave the savedRequest in the indexedb so it can retry next time, if you want.</p><p>*After updating your code, it is important that you update the service worker by going to the application tab, then the service worker and check <strong>Update on reload; </strong>then reload the page. Click the blue little sw.js to confirm that the source code has been updated.</p><p>To test, fill the form offline <em>(with your flask server shut down) </em>as many times as you want, and then bring your server back up and put on your wifi. You should monitor your console while all this is happening. In mine I see this</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1001/1*2xtmFdNBZxXH9uniQNlraQ.png" /><figcaption>An image showing the background sync in action as soon as the network comes back on</figcaption></figure><p>Both of my two saved requests were a success. In my server too, they were received</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4pmiPi81mMFeAoDuDv0VmA.png" /><figcaption>An image of my server receiving both requests after the server was started back and wifi is on</figcaption></figure><p>At this point, we are exactly where we are supposed to be, and we’ve done what we set out do; which is save POST requests in the browser when offline, and when back online, send saved requests to the server.</p><p>You can find the before and after code for this tutorial, <a href="https://github.com/AdeyinkaAdegbenro/Flask_Form">here</a> and <a href="https://github.com/AdeyinkaAdegbenro/Offline_Flask_Form">here </a>respectively.</p><p>I hope you’ve been able to learn a thing or two. Please, let me know if you have questions/corrections. I want to hear from you. Cheers.</p><p><a href="https://www.formpl.us/blog/post/top-20-online-form-builders-and-their-use-cases-4550518121693184?utm_source=Medium&amp;utm_campaign=PUT_POST_REQUESTS&amp;utm_term=Offline_Applications"><em>See also: Top 20 Online Form Builders (and their Use Cases)</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=da7d0798a9ab" width="1" height="1" alt=""><hr><p><a href="https://medium.com/formplus-blog/how-to-handle-post-put-requests-in-offline-applications-using-service-workers-indexedb-and-da7d0798a9ab">How to Handle POST/PUT requests in offline applications using Service Workers, IndexeDB and…</a> was originally published in <a href="https://medium.com/formplus-blog">FormPlus Blog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>