Automating OpenApi Spec Validation with Gradle and Spring Boot

Recently, the front-end team I’m on really saw how the back-end team was swamped. During the sprint retro, we expressed that we wanted to help out any way we could. So, with their help, we got set up in IntelliJ and back-end’s Spring Boot application. My team ended up getting wrapped up in our main projects. I put aside some time on my own to look at back-end’s backlog. After touching base with them and seeing where I could best help them, I picked up a technical debt ticket around automating the validation of the OpenAPI spec.

It was really a great adventure and learning opportunity! I had never worked before with Gradle and Spring Boot in any professional capacity, but I know my way around Gradle now. 😀

The requirements were:

  • the validation would be automated
  • it could be integrated into the CI/CD flow with GitHub actions

At first, I fell down a deep rabbit hole with trying to implement a custom Gradle Task with plain Java files. The Gradle 8.4 documentation actually pointed people to write them in Groovy or Kotlin, but I think I must have hit a random blog through a Google search, and gotten stuck there. I’m sure it could have worked, but I had already surpassed my initial timebox.

Then, I tried to solve it the simplest way, by using the springdoc-OpenAI Gradle plugin. But that required to run the application, and we wanted to avoid that in the CI/CD flow.

Finally, I went back to the original concept of custom Gradle Tasks, but kept it simple with plain Groovy. Then, I found the winning combination. A blog suggested validating the OpenAPI spec in test cases. The final solution was as follows:

  1. Writing custom Gradle Tasks in plain Groovy that executed test cases
  2. This case would manually generate the OpenAPI spec from the code
  3. Then executing a local shell script that loads a npm library to manually validate the generated spec.

It’s lightweight, it can run easily in a CI/CD flow, and implementing it with straight Groovy keeps the `build.gradle` file light.

“Final product!”

I added the custom task to the gradlew command in the appropriate GitHub Action workflow file.

I added the variables extraction.api-spec.json and springdoc.api-docs.path to the application.properties file.

build.gradle

tasks.register("validateOpenApiDocs", Exec) {

    group = "documentation"

    description = "Validates locally generated OpenApi spec"

    def stdout = new ByteArrayOutputStream()

    ignoreExitValue true

    doFirst() {

        println "Validating generated Open API docs..."

    }

    commandLine './validate-docs.sh'

    doLast() {

        ObjectMapper mapper = new ObjectMapper();

        JsonNode taskResult = mapper.readTree(stdout.toString())

        if (taskResult.valid.equals(false)) {

            println "FAILED"

            println taskResult.errors

        } else {

            println "OpenAPI spec validation passed!"

        }

    }

}

validate-docs.sh

#!/bin/bash

npx -p @seriousme/openapi-schema-validator validate-api docs.json

ApiSpecJsonFileExtractor.java

@SpringBootTest

@ActiveProfiles("test")

public class ApiSpecJsonFileExtractor {

  @Value("${extraction.api-spec.json}")

  String filename;

  @Value("${springdoc.api-docs.path}")

  String apiDocJsonPath;

<snip>

  MockMvc mvc;

  @BeforeEach

  public void setup() {

    mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();

  }

  @Test

  void extractApiSpecJsonFile() throws Exception {

    File file = new File(filename);

    Path filePath = file.toPath();

    if (file.exists()) {

      Assertions.assertThat(file.isFile()).isTrue();

    } else {

      Path path = file.getParentFile().toPath();

      if (Files.notExists(path)) {

        Files.createDirectory(path);

      }

      if (Files.notExists(filePath)) {

        Files.createFile(file.toPath());

      }

    }

    mvc.perform(MockMvcRequestBuilders.get(apiDocJsonPath))

        .andDo(

            result ->

                Files.write(file.toPath(), result.getResponse().getContentAsString().getBytes()));

  }

}

Hamba Kahle, Siya

My friend Siya slept in Christ 2 years ago today. He left suddenly and in much pain.

I haven’t been able to visit his grave or see his family since then.

I miss him.

Yet, I’m all blocked up now, as I try to write about him. He seems so far away. There are still digital footprints all over my life – a DM on Twitter, Google Meet, an e-mail, WhatsApp. I sometimes struggle with the question on whether I should delete or not. Does it mean that I no longer care? If they’re just 1s and 0s, why is it so hard to delete? Does deleting mean he’s gone fully, as if death is only final when it’s coupled with digital death? Charlie Kaufmann was onto something truly disturbing about modern life in the film The Eternal Sunshine of the Spotless Mind…

I miss him. He was a good egg.

The news of his passing came during a time of many deaths of friends. It was a wave of death, notwithstanding Covid. Some names and stories passed by, I unable to really deal with some because it was too much too soon. But Siya’s news broke me. I just spoken to him a few days earlier. I felt powerless and I was heartbroken. He was so young. I realized the power of a final phone call or goodbye, to help carry over the point of realization – this person is leaving now. And when you don’t have neither, death is so brutal. The idea of rituals – the services, seeing the casket, attending the burial – ease the pain of loss. Siya died during Covid, where funerals were digital and there were no tangible rituals. It was brutal, as much as death itself.

As I wrestle with the idea of removing digital traces, I look at the other side of the argument – that the actual person is gone. Maybe all digital traces aren’t memories, they’re just that. Breadcrumbs on a table or plate after a meal. The real memory – the laughs, the conversation, the teasing. That’s what you’ll remember. Not the crumbs. Sometimes, the crumbs get on my nerves and I delete them on the spot. Sometimes, I sit and stare at a message of pain or hurt. A funny thread.

There’s a hole in our mutual group of friends, sometimes I avoid those gatherings so that I don’t remember he’s gone.

I miss him. He was a good egg. He left too early.

Siya was a real person – greater than social media posts and not reducible to his pain or struggles. He loved his family and friends. He struggled with darkness. He was ambitious, driven, and a consummate dreamer. He was sporty and active. He was a Star Wars nerd and all-around tech geek. He was awake. He had a loud, roaring infectious laugh. I can hear it now in my mind…

He thrived on to-do and checklists. He had a thousand plans and ideas. He was human.

He left too early.

We were just getting started.

كلام للرجالة

الكلام ده لكل شاب و راجل مش مرتبط، اعزب،  بيفكر يخش علاقة، عايز بس مش قادر، قادر بس مقيد، مش مقتنع بس من جواه عايز اوي. واحد عايز يتعرف بس خايف.

النهارده بحتفل بست شهور في علاقة. بذلت مجهود و تفكير الاقي صيغة بالعربي لعبارة relationship بالانجلبزي من غير علامات استفهم. اظن ان مفيش الصراحة كلمة تعني a committed relationship برا نطاق الخطوبة او الجواز و ده مفهوم بحكم ان كلمة تعارف لا تساوي بالتحديد a committed relationship. Dating و relationship عبارات و افكار دخيلة على الثقافة الشرقية و في غياب مصطلحات تواكب الشرق تسخدم تلك العبارات. بس هناك فجوة رهيبة بين المفهوم الشرقي و الغربي و بالتالي نجد صعوبة في التعبير.

التفكير الوصفي (thinking on a meta level) حتة من لحمي و بالاخص التفكير المقارن بين اللغات. حسيت اوي بوجود التفكير في حياتي في اخر ستة اشهر. بتكلم عربي و انجليزي و بعدي كل فكرة و كلمة من خلال التواصل نفسه و مقارنة الكلام بين اللغات. البعد يظن “ايه يا عم كل ده، جايب وقت لده من فين!” الحقيقة ان صار كل ده بشكل لا ارادي و بديهي. بحبه. جزء من شخصيتي و تركيبتي.

قررت من زمان اني هتواجد في ارض جديدة، بين الكلام السلبي المخفي عن الجواز و الارتباط (“يا عم بلا هم… كلهم صنف واحد… كبر دماغك… عاملها كانها ملاك… سيطر… تتجوز ليه و تتوكس ليه… خليك سينجل و عيش حياتك… الجواز غم و مسؤلية”)، و الكلام الخيالي المطلق المستخرج من الميديا و الافلام (“الجواز الحل لكل مشكلاتي… عمري ما هحس بالوحدة تاني… الرومانسية اهم حاجه في العلاقة… البنت هتسد كل احتياجاتي.. الفرح اهم يوم في حياتنا… الحب يحل كالمشاكل”)

انا متبقي من فكر الخيالي و ارفض المنظور السلبي. و هفضل ارفض و احارب الفكر السلبي بدون مهاجمة او انتقد بشكل مباشر. هحارب الفكر من خلال فكر و ممارسة – أمل انه فكر سليم – حسب الكتاب المقدس و فكر الله في الارتباط و الجواز.

انا مخلوط و مزيج من الشرق و الغرب، النور و الظلمة، الماضي و الحاضر، الشخصي المكتسب و المروث، النظري و المعاش. و العلاقة بتكشف لي مدة الخلط و المزيج، و نسبة العمل المطلوبة في تفكيك الافكار و التصرفات اللي ممكن تعطلني و تهددنا او تكون سبب اذى. العلاقة نادي تمرين (gymnasium) بالمعنة و الغرض عن اليونانيون القدماء، تمرين و تهذيب الذهن و العقل و الجسد و القلب. عمل دائم.

ادركت و بادرك افكاري و معتقداتي عن الرجولة و الانوثة. من حين الى اخر افهم ايه اللي دايقني، ليه اتعصبت او حسيت بالاهانة، الاهمال. كنت فاكر نفسي سلس و متفهم، بس في حاجات بقفش، حدث بسيط يفجر جويا مشاعر الرفض و الخزي. كنت عارف اني عندي محفظات كتيرة و لكن اكتشفت اني عندي اكتر من كده، اجزاء من العالم الداخلي غير مستكشفة و غير مختبرة.
مدة نجاح العلاقة و التواصل متناسب مع مدة و استعداد تعبيري عن مشاعري و افكاري، مش متناسب مع مدة ادائي في دور الراجل الكريم او اللطيف او المؤدب او الملفت. كل ده مهم و مرغوب فيه بس تواجدي في العلاقة اهم. اتأخد مسؤلية مشاعري و تصرفاتي. مشاكلي. تسديد احتياجاتي. رجولتي في ده. مش علو صوتي و لا عمق غضبي. اتعلمت اكتر لما كنت هادي و متحكم في نفسي عن لما فقدت اعصابي و اتهورت.

٦ اشهر من النمو و التدريب و التمرين و العمل، اعطاء و الخدمة و التواجد. الاعمال البسيطة. التعبير و الاستماع. حل المشاكل مع بعد، مش جوا زنزانة دماغي، في الارض الجديدة، بثقة انها ترغب في الحل و نمو و نجاح العلاقة.
دخلت المشروع ده و انا مٌحمّل من الماضي، بمخاوف و صدمات و افكار مسبقة و هلاوس و معتقدات من الشلاحات. اي حد يقللك انك لازم تبقى جاهز و مثالي وغد و احمق. جرب و شوف. اعظم و اصعب و اكبر تحدي في حياتك. كان كده بالنسبة لي. المخاوف قلٍت و الصدمات بفهمها و بتعامل معها، و الافكار المسبقة بفكهم و بعيد تركيب المفيد و ترك الخطاء. و الشلاحات الحمدلله بتاعمل معها بفكاهة و سلاسة.

ماحدش علمني الكلام ده. ماكنش ينفع اتعلم ده في كورس و الكتب على قد ما اليوتيوب و كتب معينة كانوا محورين في تفكري. بس اتعلمت العوم لما نزلت البحر. و العلاقة دي بحر. كنت بحب المياه بس مرعوب من الحميمية و التواصل. النهارده بحب البحر و مش خايف منه.

اُترك المدرستين، السلبية و الخيالية، و جرّب.

انا ممتن اوي لربنا اني جربت بعد ماسمحت له انه يهدم اللي كان مترسخ جوا و بيعيد بنائه. بثق فس الرب و مش ملتزم بالنتيجة. طبعا عايز المشروح يكمل، بس سلمت النتيجة لربنا و بركز على الرحلة و العمل. الله خلقني لكي اعمل.

و انا فخور بنفسي اني بعمل في الارض الجديدة. بثق فنفسي اني بتعلم و بنمو و بتغير.

2 وَلا تَتَشَبَّهُوا بِهَذَا الْعَالَمِ، بَلْ تَغَيَّرُوا بِتَجْدِيدِ الذِّهْنِ، لِتُمَيِّزُوا مَا هِيَ إِرَادَةُ اللهِ الصَّالِحَةُ الْمَقْبُولَةُ الْكَامِلَةُ.

Captain My Captain 💔

I haven’t written anything about Fadi since his passing 3 years ago today. It was both an intentional decision and in hindsight, a wise one. I know myself and I have been through a loss before on social media. I had no control before and I just spilled everything online, almost in real-time. I didn’t want to do that. I wanted to grieve privately and allow others to grieve in their own way. I would have resented people, most probably, had my acts of public grief not been met with immediate praise and validation.

Watching others in my family grieve publicly and openly on social media was difficult at times because a part of me wanted to join in. But he was my cousin and he was their brother, husband, and uncle. They were closer. His passing hit them deeper and harder. His loss broke me, but I decided that it was their time to grieve. My relationship with Fadi was different than theirs.

Fadi was my father, mother, and sister. He was my family. He was my safe space, my north star, captain my captain. He laid his hand lovingly on my shoulder. Him dying brought that all to the conscious. That’s why it was so devastating. I had taken him for granted while he was on earth. I couldn’t admit this to myself then. But it’s become obvious over time that I just assumed, perhaps childishly, that he would always be here. He would be best man at my wedding. We would sit in his garden in Mâne and have coffee and talk music. He would give me his blessing about my wife and he would see my children grow up. I would grow older and he would be there. I would dedicate albums to him and honor him at gigs. I would invite him on my first tour to guest feature and let him steal the show. I would consult him on songwriting and get back his stone-cold, sharp critique. Him dying wasn’t part of the equation.

His death revealed to me how deeply I loved him and how much he meant to me. How I didn’t show up for him. How I didn’t visit him enough, despite him living only 2 hours away from Stockholm. How he would show up in my dreams when I would be so sad and disheartened. How I didn’t ask enough about him, check in, see what he needed, just connect with him. I did no work of the intimacy pursuant to the depth of love I felt for him.

I’ve only dreamt of him a few times since his passing, signaling to me perhaps that him not being in this realm means he’s also left my consciousness. I’m growing up and growing older without him. I still think of him and I still love him. But he’s not part of my every breath, as he used to be for a while after his death. He’s no longer part of my subconscious stirring quietly, like when he was alive.

I had his wedding anniversary saved in my calendar. It was the day before his death. I deleted it. He’s no longer here.
I used to go back and re-read his messages and our conversations. I haven’t done that in a while. He’s no longer here.
I would stop and notice when his photo would show up in other profile photos. The other day, I saw him and I was surprised he was there. Then, I remembered that he was gone. He’s no longer here.

I became sad that his death had become a given. Just like I had taken his life for granted.

As I approached this year’s memorial, I have started to stop and look wistfully at his old apartment door here in Cairo. I never thought that I would live in Cairo, let alone live here without him being alive. It didn’t matter if he had lived here or in France. He just needed to be alive. But I pass by his door and there is no trace of him. The door has been re-modelled and re-designed. On my first day here back in March, I happened to see the inside of the hallway, as I was passing. The new owners had left the door open and I peered in. The walls are different and the flooring is different. The image from my childhood and teenage years is gone. He is gone and so is his apartment. It’s now an unmarked grave. There is no physical evidence of it being his apartment other than the memories in me and all whom knew him.

In poorer parts of Egypt, it is common for people to live close to, or on top, or next to communal tombs. It could be their immediate or even distant relatives. I never quite understood this, thinking as a Westerner. It seemed macabre and odd. Death should be separate and removed out of sight. We shouldn’t have it staring it in our faces every day. It should be in a graveyard, far away from everyday life, perhaps on church grounds or even outside the city.

But this is Egypt. Our pharaonic heritage reminds us that life and death co-exist silently. We live together with death. And now, despite being fortunate to live in a middle-income area of Cairo, I live on top of my cousin’s grave. His grave is in my apartment building and I pass it multiple times a day. Some days, I notice it and I remember him. On other days, I pass by the 3rd floor and I don’t even think about it. I barely remember it’s there. Living on top of a grave has become a normal thing to me. It’s comforting. Despite his grave bearing no marks of him, I knew he was there and I knew he lived there.

Earlier this evening, I took the stairs instead of taking the elevator and I stopped outside the apartment, the grave. I imagined the old grey door, recalling where the broken piece of stained glass was. I used to peer through this when I was younger, to see what was going on inside, whether he was inside jamming or hanging out with friends or if it was dark. It was a portal into the world of love and unconditional acceptance. I came back to the present and saw a polished, brown door. Not his. The portal is gone and he is gone. And his passing no longer pains me. It’s become a part of my bones.

I miss Fadi, the musician, the effortless listener, the philosopher, the comedian, the egyptologist, the polyglot, the older brother, the everything. My everything. His hand no longer rests lovingly on my shoulder. Captain my captain.

My last message to Captain a few days before he passed

مصر بالنسبة لي

فادي و انا و اختي

مصر كانت بالنسبة لي حاجتين، شقة رمسيس و فادي. جدي و جدتي كانوا بيجسموا مصر لي، دوشة الشارع، الاكل اللي مابيتغيرش ، الحكاوي، اللمة يوم الجمعة، الطقوس اللي كانت بتديني الاحساس بالآمان.

و فادي كان الباقي. كان الضحك و المشاركة و الافصاح عن اللي جويا، سنين قبل ما افهم يعني ايه مشاركة. فادي كان الفن و الموسيقى و الفلسفة، المكان اللي كنت بعبر عن الافكار المجنونة الطفولية. كان يسمعني و يبتسم و بس. و لا مرة حكم او اتريق او قلل من حاجه شاركت بيها. فادي كان فاهمني اوي و عارف اني كنت بدور على مكان احلام و افكر بصوت عالي. و هو كان المكان ده. قلبه كان بيسعني.

ثلاثة سنين عدت على وفاته و السنة دي الذكرة ليها طعم تاني. انا هنا في مصر و هو مش هنا. قاعد في شقتنا و هو مش هنا. بعدي على الشقة و مش شايف اي ملامح من الماضي. الباب الرمادي. اسمه على الباب. لو عديت و الباب مفتوح، مفيش ريحت سجاير و لا jazz و لا صوت الجيتار و هو بيعزف. بقى اصوات تانيه و شكل تاني و ارضية تانيه.

و انا بكتب الكلام ده بلغة جديدة علي، من لغاته. و هو مش هنا يشوف التطور ده. مش هيشوف حاجات كتيرة. مش هنقعد نعزف و نهزر و نحلم و نفكر و ننكت تاني. مش هنزل بعربيته و نلف في شوارع مصر الجديدة. مصر اتغيرت في عنياي. الثوابت اتغيرت و انا عديت الاربعين و برغم اني ماعنديش نفس الفكر النوستلجي عن مصر، و لكن فادي كان في الهنا و الدلوقتي. فادي ماكنش فكرة و لا احساس. فادي كان شخص و انسان.

جزء كبير من التعامل مع الحزن كان تقبل التبصر اني ماستغلتيش الوقت معه كفيا. اعتمدت انه دايما هيبق موجود و هعرف اشوفه في تي وقت. كان ساعتين من السويد و شفته مرة في ال ١٠ سنين اللي كان فيهم في فرنسا. كنت بحبه بس كان حب سطحي، مابذلتش مجهود. كنت ملهي في حاجات تانيه. و هو سافر و انا لسه هنا. كنت بجلد نفسي في الاول. بس اقول ايه؟ كان جويا طفل متأكد انه فادي هيبقى موجود دايما. اروح اجي بس هو موجود.

ربنا يرحمه و ربنا يعلمني اني امسك في الناس المهمة و اتهنى بيهم قبل مايمشوا.

When The Relationship Ended

الظاهر كان بس كلام افتكاس ساعتها.

كنت مشترك في تخت شرقي زمان لما كنت عايش في إنجلترا. كان التخت طابع لكنيسة في لندن و الهدف أن نقدم الألحان القبطية من خلال الطرب الشرقي. عود. ناي. كونترا باس. دُف. عازف الكمان كان راجل هاوي و عاشق الطرب و حببنا كلنا في الألحان والموسيقى الشرقية.

لما كان في وقت عزف طويل في مقام السيكا كان هو يقول “ها… لازم بقى نطفش السيكا.” و يقوم بعزف تقاسيم بين
المقامات لغاية ما صوت السيكا يختفي من أذهاننا.

(نموذج لمقام السيكا
https://youtube.com/shorts/eT4hP0juQUw?si=-Qgbn9xlaqSEZV9x) 

دخلت على جوجل من شوي و حاولت ادور على العبارة دي. مش موجودة. يمكن بجد كانت بس حاجه شخصية، نزوة أو فُكاهة منه.

بس الصراحة الفكرة شغلاني الكام يوم اللي فاتو. اعتقد انها بتعبر عن مبدأ عميق. مُمارسة طقوس تخرج مشاعر او افكار او ذكريات مؤلمة. ليتورجية للوصول للتقابل و تعامل. ليتورجية تطالب مني عمل في العادي بهرب منه او تجاهله او اكبر دماغي. و لكمن هو عمل لابد يُقام بيه عشان اكمل السكة.

هو كان بيطفش السيكا، انا هحتاج الفترة اللي جايه اطفش الصبا.

(نموذج لمقام الصبا
https://youtube.com/shorts/QaoZhO4kGz8?si=n9L_JAQ7ymFnqtHe)

قدامي ٤٨ مكان هنا لازم اطفش منه ذكريات و مشاعر عشان اعرف اروحهم و اتواجد فيهم بطريقة جديدة. مش عايز اكون بعدّي كل مرة على مقبرة ذكريات و احلام مش هتتحقق.

Translation of Radwa El-Sherbiny’s Monologue on Terrible Partners

Radwa rips awful partners a new one!

Original video in Egyptian Arabic: https://fb.watch/nCBonC2nJU/

“My problem is that… I [viewer who sent in question] don’t have a problem.
My problem is that I have a man in my life, but he’s not really there.
My problem is that he’s trying to be present in his own way.
He sends me one or two texts a day, barely calling me once a day to check in and see how I am.
Presents are few and far between… not on all occasions. He hasn’t even gotten me flowers, despite the amount of time [we’ve been together].
Minimum effort is spent on communication, just to keep the relationship going.
One day has I love yous… ten days follow without it.
So, thinking about it all… I realized that I really don’t have a problem, but I really feel that I’m not in a real relationship.
I tell him, Should I leave? he says, No. I ask him, should we end this? He says, no need.
I tell him, I don’t want this, he says I love you. And then I go back and the same story over again.
So.. my problem is that this relationship is lukewarm.
What do you think? What should I do?

So, I [host] spent some time thinking. I won’t tell you what I would do if I was in your shoes, but I will tell you what I think, my opinion I mean. The way I see it… there’s a man who’s afraid to lose you and there’s a man who likes to keep you around because you’re a safe bet. He’s got an agenda, a checklist – appearance, religion, values, success, money, the way you carry yourself. It’s all with the [mind], it’s all logical. And his family will tell him, Look. If you leave here, you won’t find anyone else like her. Easy-going, meek, simple, she’s got a good job, her family have money, she won’t make lots of demands on you, easy to have things on your own terms, c’mon, she’s such a nice girl. You can tell her, don’t go out, don’t go there, wear that red veil or don’t, she loves you and is under your command… you see. All up here… ? He’s doing all this with you logically. So, that’s why he deals with you like this, logically, cerebrally. He’s got you on breadcrumbs, he’s got minimum effort invested. His mind is telling him… ‘Keep her around.. and keep her around with your head on your shoulders. This is the man who keeps you around because you’re a safe bet.

<repeat of she’s an easy-going girl and she can be controlled and influenced>

… And when I marry her, I can always cheat on her, who cares? What could she do then?! She can’t do anything. And he’d raise his voice and get all macho on you. ‘I’m a man and I can do whatever I want.’ This is the man who has you as a safe bet.

But the man who’s afraid to lose you? That’s the man who loves you, mind and heart. Loves you and wants you and yearns for you and is not prepared under any circumstance to lose you. So, his phone calls will be many, his I love yous will be many, his checkins will be many, will buy you presents on occasions and for no reason, he waits for your phone call, he doesn’t leave you on seen and doesn’t reply for hours[long comical bit here about her trying to say it in Egyptian]… he cares about you and ask questions, ‘I want to see photos, show me where you’re at with your friends’, he doesn’t video call late at night.. he wants the video call during the day when you’re out and about. Even in an argument, you’ll call him once and he’ll call you once because he’s afraid to lose you.

So, if you’re in a lukewarm relationship [as I explained before], it’s because you’re a safe bet to him.

You seem to be a levelheaded and mature woman, so I’ve broken it down for you and I think you can see it for yourself. Ask yourself [which type is he?] Are you a safe logical bet to him or does he really love you? Will you agree to a ‘cerebral marriage’, a marriage based on logic, or do you want to love and be loved? But if you’re asking me, Radwa, I wouldn’t marry someone until I absolutely love him. Not just a mere love. I can’t make the decision about marriage until I love him from my very core. I have to love him mentally and from the heart, and I have to be sure that he loves me in the same way, he has to be convicted in that way. If I have even a speck of doubt then I won’t create that space in my life for a man. Neither will I force myself to love him because love cannot be forced.

You make that choice, you make that decision.

Do you want a cerebral marriage, marry based on logic? Or do you want to love and be loved?

Your choice, I just told you my opinion.”

A Letter to Immigrant Parents

بابا/پاپي/ابويا
ماما/مامي/امي

انا مينا إبنَك/ابنِك، جاي من المستقبل و عايز اقولكم كام حاجه عشان خسرتوني.

انا اهو، بكلمكم بلغة بتاعتكم. مش ده كويس؟ مش ده افضل حاجه ليكم؟

جاي اكلمكم على اللي حصل و اللي هيحصل.

انت عايشين في المهجر و مش عايشين هنا. عايزين المهجر و الفلوس و الاستقرار بس عايزين مصر و القيم و الكنيسة و العربي و اللمّة و العادات و التقاليد. يعني عايزين عيشة برا بس جو مصر. من حقهم.

طب و انا؟ انا ذنبي ايه؟ ماطلبتش اجي هنا. ماطلبتش اعيش هنا و لا اتربى هنا.

في تلت انواع منكم.
اول نوع، عايز يسيب مصر عشان يبعد عن مصر نهائياً. هيبقي اجنبي ف كل حاجه.
النوع التاني، المتقوقع، جاي برا يعيش مصر في القوقعة بتاعته. مصري حته الثمالة. مصري في النخاع و الكوراع و الاوانص.
والنوع التالت، المتصارع. المتلخبط، البين البنين. و لا هنا و لا هناك. عايز الاتنين. ممكن بيكره مصر و بالتالي بيكره نفسه، او بيكره العيشة ف مصر بس مش قادر يفصل هاويته ف بردو مزال مصري ف كل حاجه، حته لو اتعلم لغة و اتغير او اتلمع.

انتو انهي نوع؟ هل فكرتو فالسؤال ده قبل كده؟

انا جاي اقللكم لو مش قد الهجرة و السفر، ارجعوا بلدكم. بلاش سفر و هجرة. انا عنيت عشان مافكرتوش فالسؤال ده قبل ماتاسفروا. اول ضاحية عدم تفكير في الموضوع ده كان انا.

حددوا انتو مين وعايزين ايه و هاتبقوا مين. و بعدين سافروا.
بس بالبركة كده مينفعش.

مش كل جيلي زي. في ناس طلعوا في البلد اللي اتربوا فيها و اندمجوا. قرروا أن العربي دي لغة اهليهم و مصر مش بلدهم.
عملت عكس الباقي و اتعلمت اللغة و الثقافة بتاعتكم ، الهزار و النُكت، و الكتابة.

و ربنا يزيد و يبارك، وقت راح عالفاضي.
و انا بقيت زيكم، و لا هنا ولا هناك، بقيت متشتت زيكم. اتعديت منكم.

فرحتوا اوي لما بقيت زيكم فالكنيسة. مش بطلب منكم أن كل حاجه باللغة بتاعتي. راضي اني اقعد و اسمع و استوعب نص اللي بيتقال والمكتوب. و انا تقبلت ده و قلت دي طاعة و رضا.

بس انا لسه برا الكنيسة. انا لسه حاسس اني مهمش و مليش صوت. يعني لحد ما، زيكم، متعايش مع القراءات و الوعظات بالعربي. بخدم غيري بلغتهم بس انا مش فاهم كل حاجه. بردو في جزء في عايز اسمع الانجيل و القراءات و الوعظات باللغة بتاعتي، تقبلت الحال. اتعلمت ازي ارد على اسإلة الضغيرين بطريقة ارضيكم و اضحك بيها على نفسي. و اتعلمت ازي ابكت و اُميت الحتة اللي جوايا اللي عندها نفس اسالة اللي بخدمهم.

بس انا من جويا مش سعيد. مش مقتنع. جعان و تايه. بس ساكت.

جاي من المستقبل اقللكم اني في الكنيسة بس بعيد. خادم بس جعان و بيمتلكني خواء و فتور. باقيت كومبارس في هيئة خادم كنسي. بعمل و بقول زي مانتو عايزين عشان اتعودت على ده خلاص.

فهمت حاجة مهمة، انكم زي مفكرتوش ف موضوع نوع اللي بيسافر، مفكرتوش في أن أولادكم يتكلموا عربي و لا لأ. ماحسبتوهاش لا ده حصل بجد.

اهو حصل، و اللغة ماقرقتش حاجه خالص. دايما مش هبقى زيكم. هبقى مهمش و برا و متفرج و كومبارس.

ده اللي حصل. اللي هيحصل بقى.

انا فضلت فالكنيسة بس غيرت فكري. قررت اني ابقى عضو حاي في الكنيسة و مش كومبارس و لا متفرج.
بقى لي صوت.
مابطلتش العربي بس ابتديت اسمع لغيري اللي عايز يسمع و يتعلم بلغته. مش بسكته. مش بشككه ف نفسه. مش بدافع عنكم. مش بقول حاجه باسم الكنيسة او ربنا. مش بعاديكم بس ف نفس الوقت بفكر في اللي بخدمهم اكتر من اني احافظ على النظام الحالي.
فتحت الانجيل بلغتي و فهمت.
اتعلمت من الكنيسة باللغة بتاعتي.
لسه عايش جوا الكنيسة و لما مش فاهم، سالت و دورت و فهمت.
بطلت ارضى بالعربي. دورت لغاية مالاقيت حاجات باللغة بتعاتي.
باقيت شوكة في جنبكم، مش عن تمرض او شغب بس عشان انا ماكملش في طريق موت روحي هادئ طويل المدى.

انا و انتو متساوين قدام ربنا، مفيش حد احتياجاته اهم من التاني.
ربنا مش بيتكلم عربي. ربنا بيتكلم بلغة الصليب و الفداء و الكنيسة.
ربنا بيتكلم عربي ف مكان تاني.

Mohamed Farrag on Intimacy, Vulnerability, and Relationships

2nd episode of Season 2. I have believed wholeheartedly for years in the masterful talent of Mohamed Farrag. And I knew it must come from the well of life inside of him as an actor and as a person.

But seeing it here, displayed in quiet strength in conversation with his wife Passant Shawky, is something else altogether. His vulnerablity. His poise. His tapping into his emotions. His ability to move deftly between humor and seriousness. His work in understanding himself in order to understand her and thus love her.

A 50 minutes of investment of time into watching a little masterclass on communication, connection, and love.

https://www.netflix.com/us/title/81513224?s=a&trkid=13747225&trg=cp&vlang=en&clip=81518338

An Examination of the Private, Personal, and Public

I was planning an essay to post on here, about someone from a previous employer who really was formative in my personal growth and professional development over the last 7 years. But, I struggled to finish the essay. Actually, I couldn’t really write more than just sentence outlines.

This left me puzzled. I wondered what could be holding me back. After some digging, I realized that I was holding back because I needed to share some private details in order to provide context to the extent of the impact of this person on me. I considered sharing these private details. What could go wrong? This is how it is now, I’m just sharing and this is acceptable now on social media, even on LinkedIn.

I decided against sharing these details and posting the essay on LinkedIn. A couple of ideas emerged as the main reasons why.

The first one was that I didn’t want to set the precedent for myself that sharing private details is part of my activity on LinkedIn. I don’t believe in constructing a work-friendly persona of myself. Ain’t nobody got time for dat! Anouk Pappers puts this in these terms:

“On the other side of this dichotomy, people usually use “professional” presence to refer to a scrubbed, work-approved persona. But this too is not realistic. We shouldn’t present ourselves as someone we are not, or even express inauthentic views, just to fit into a particular work culture. I think it is becoming increasingly important that we be our authentic selves online and that we position ourselves in a genuine manner. In essence, we need to establish and maintain an online presence across all of our accounts that accurately reflects who we are and how we want to be perceived.”

Rather, I didn’t want to turn my vulnerability into a currency, that I trade with, with hopes that the trading brings in ‘income’ later. I remember reading a Facebook post (in Arabic) a few months ago about a TikTok vlogger who had converted his overweight state into videos that brought in money for me. The post lamented that this is all it was now for him, to eat and show off his physique on TikTok. I thought further of another TikTok vlogger, who has become his signature dance – a dance and then showing off his afro. Is that all that they are now – their ‘products’? I am nowhere near their reach or fame, but I am close to them in that I could easily transform my inner life into some form of product.

The second reason was that I reflected on the differences between private and public information. I remembered a conversation I had years ago with a journalist in Sweden, who taught me the distinction between public, personal, and private information. From his training, he was taught that private is like the contents of your journal, stuff that’s for your eyes only. Others may not understand the context or importance. Personal information is where you can write about your experiences, but in a way that resonates with others. Think of you talking to friends about your experiences, showing them that they can relate. That’s personal. Public – news, commercial and legal texts. No emotion. “Just straight facts,” in my friend’s words.

Given this model, what I wanted to share in the essay is private information. I would extend his definition of private to include those also in my inner circle. Personal is what I’m prepared to share with friends and perhaps some at work, while public is whatever I post online.

The line between private and personal has been blurry for me for a while. I have written vulnerable essays on Facebook that I have set to public. Was that really a sound thing to do? The answer to that question didn’t strike me with much confidence. I wouldn’t say that I regret posting those essays, but now there may be archived pages on the Wayback Machine. 

The food for thought for all of us is, what are you prepared to have the Machine index? 

George Couros puts it in another jaunty way, quoting Seth Godin:

“Everything you do now ends up in your permanent record. The best plan is to overload Google with a long tail of good stuff and to always act as if you’re on Candid Camera, because you are.”

This pithy quote gets to the heart of my objection, that I don’t want everything on my permanent record.

The final reason was that there was no way to write the essay without these private details. Leaving them out would make the essay cryptic, and then there’s the danger of cryptic-posting in order to get people asking for more in the comments. Or, writing around the details would make the essay harder to understand. Then, what is the point of even posting it?

I found this quadrant diagram, while doing the thinking for this post. It takes the models, put forward by George Couros and Anouk Pappers, cited above to a further level.

When I analyzed my essay idea, the core idea – the guy whom I wanted to celebrate – was in the green quadrant. But the meat of the essay lied in the red square, and I struggled to argue to move it to the yellow square.

Thinking holistically – that is, engaging my emotions while activating reason – is helpful in evaluating what I put on the public record.

#ProfessionalDevelopment #CareerAdvice

Verified by ExactMetrics