تعال ندردش شوية عن الـ Load Balancing 💯
.
.
الـ Load Balancing حاجة مهمة جدًا بتأثر في سرعة وثبات أي تطبيق، وخصوصًا لو التطبيق ده عليه عدد ضخم من المستخدمين.
الفكرة في الـ Load Balancing إنه بيوزع ضغط الطلبات اللي بتيجي على السيرفرات عشان يخلي الأداء أحسن ويقلل أي مشاكل ممكن تحصل.
———
📌 إزاي الـ Load Balancing بيشتغل؟
تخيل معايا أنك عندك تطبيق عليه عدد كبير من المستخدمين اللي بيدخلوا ويعملوا طلبات في نفس الوقت، زي متجر إلكتروني كبير أو موقع تواصل اجتماعي.
لو التطبيق ده موجود على سيرفر واحد، هيواجه مشكلة كبيرة لو العدد زاد لأن السيرفر هيبدأ يبقى بطيء، أو ممكن يقع لو الضغط كان زيادة.
الحل هنا إنك بدل ما تشغل التطبيق كله على سيرفر واحد، بتوزعه على أكتر من سيرفر، وكل سيرفر بيشيل جزء من الشغل.
الـ Load Balancer بيدخل هنا وبيبقى هو اللي بيحدد الطلبات تروح لمين، بحيث مفيش سيرفر يكون عليه ضغط أكتر من التاني.
———
📍 أنواع الـ Load Balancing:
- الـ Round Robin: الطريقة دي ببساطة بتوزع الطلبات بالتساوي على كل السيرفرات. أول طلب يروح لأول سيرفر، والتاني للتاني، وهكذا لحد ما يوصل لآخر سيرفر ويرجع تاني من الأول.
- الـ Least Connections: الطريقة دي بتركز على عدد الاتصالات اللي كل سيرفر شغال عليها، بمعنى إنها بتبعت الطلب للسيرفر اللي عليه عدد أقل من الطلبات حاليًا، وده بيكون مفيد لما يكون فيه اختلاف كبير في الحمل بين الطلبات.
- الـ IP Hash: هنا التوزيع بيكون بناءً على عنوان IP بتاع العميل اللي بيعمل الطلب، يعني كل عميل دايمًا هيتم توجيهه لنفس السيرفر بناءً على عنوان الـ IP بتاعه، ودي بتنفع في حالات معينة زي لما يكون فيه بيانات كاش محتاجة تتوزع.
- الـ Weighted Load Balancing: في الحالة دي بنعمل أحمال مختلفة للسيرفرات بناءً على قدرتهم. يعني لو عندك سيرفر أقوى من الباقيين، تقدر تخليه ياخد حمل أكبر.
———
📍 ليه الـ Load Balancing مهم؟
الهدف الأساسي من الـ Load Balancing هو إنه يخلي التطبيق بتاعك مستقر وسريع للمستخدمين مهما زاد عددهم.
يعني بدل ما الموقع يعلق أو يقع، الطلبات هتفضل تتوزع بشكل مرن على كل السيرفرات.
———
وفقكم الله لكل خير 🌿
.
.
الـ Load Balancing حاجة مهمة جدًا بتأثر في سرعة وثبات أي تطبيق، وخصوصًا لو التطبيق ده عليه عدد ضخم من المستخدمين.
الفكرة في الـ Load Balancing إنه بيوزع ضغط الطلبات اللي بتيجي على السيرفرات عشان يخلي الأداء أحسن ويقلل أي مشاكل ممكن تحصل.
———
📌 إزاي الـ Load Balancing بيشتغل؟
تخيل معايا أنك عندك تطبيق عليه عدد كبير من المستخدمين اللي بيدخلوا ويعملوا طلبات في نفس الوقت، زي متجر إلكتروني كبير أو موقع تواصل اجتماعي.
لو التطبيق ده موجود على سيرفر واحد، هيواجه مشكلة كبيرة لو العدد زاد لأن السيرفر هيبدأ يبقى بطيء، أو ممكن يقع لو الضغط كان زيادة.
الحل هنا إنك بدل ما تشغل التطبيق كله على سيرفر واحد، بتوزعه على أكتر من سيرفر، وكل سيرفر بيشيل جزء من الشغل.
الـ Load Balancer بيدخل هنا وبيبقى هو اللي بيحدد الطلبات تروح لمين، بحيث مفيش سيرفر يكون عليه ضغط أكتر من التاني.
———
📍 أنواع الـ Load Balancing:
- الـ Round Robin: الطريقة دي ببساطة بتوزع الطلبات بالتساوي على كل السيرفرات. أول طلب يروح لأول سيرفر، والتاني للتاني، وهكذا لحد ما يوصل لآخر سيرفر ويرجع تاني من الأول.
- الـ Least Connections: الطريقة دي بتركز على عدد الاتصالات اللي كل سيرفر شغال عليها، بمعنى إنها بتبعت الطلب للسيرفر اللي عليه عدد أقل من الطلبات حاليًا، وده بيكون مفيد لما يكون فيه اختلاف كبير في الحمل بين الطلبات.
- الـ IP Hash: هنا التوزيع بيكون بناءً على عنوان IP بتاع العميل اللي بيعمل الطلب، يعني كل عميل دايمًا هيتم توجيهه لنفس السيرفر بناءً على عنوان الـ IP بتاعه، ودي بتنفع في حالات معينة زي لما يكون فيه بيانات كاش محتاجة تتوزع.
- الـ Weighted Load Balancing: في الحالة دي بنعمل أحمال مختلفة للسيرفرات بناءً على قدرتهم. يعني لو عندك سيرفر أقوى من الباقيين، تقدر تخليه ياخد حمل أكبر.
———
📍 ليه الـ Load Balancing مهم؟
الهدف الأساسي من الـ Load Balancing هو إنه يخلي التطبيق بتاعك مستقر وسريع للمستخدمين مهما زاد عددهم.
يعني بدل ما الموقع يعلق أو يقع، الطلبات هتفضل تتوزع بشكل مرن على كل السيرفرات.
———
وفقكم الله لكل خير 🌿
❤3
API Design 101: From Basics to Best Practices 💯
https://levelup.gitconnected.com/api-design-101-from-basics-to-best-practices-e3d59eca10d3
https://levelup.gitconnected.com/api-design-101-from-basics-to-best-practices-e3d59eca10d3
❤5
صديقي المبرمج الفريش 👋🏻
.
.
قبل ما تدخل سوق العمل خليني أدردش معاك في كام حاجة تاخد بالك منها...⭐️
———
أولًا: خليك بعيد عن الشغل المخالف للدين، أي شغل فيه موسيقى أو صور نساء أو غيرها...خلي لقمة العيش حلال.
ثانيًا: تأكد إن الشركة اللي هتشتغل فيها شغلها حلال وبعيدة عن المحرمات.
ثالثًا: متقللش من نفسك، مش معنى إنك فريش إنك تقبض مرتب 2000 جنيه. ابحث عن الشركة اللي هتشتغل فيها قبل ما تعمل انترڤيو وشوف المرتبات عندهم كويسة ولا، ولكن لو أنت محتاج الشغل ضروري ممكن تقبل باللي قدامك لغاية ما تلاقي فرصة أحسن.
رابعًا: خليك طيب وابن حلال وسيبك من شغل العصافير داخل الشركة أو إنك تبخل على حد بمعلومة أو غيرها من الخباثة. خلي سيرتك طيبة في المكان علشان الدنيا أوضتين وصالة.
خامسًا: متوقفش عند أول مشكلة تقابلك، كارير البرمجة مليان تحديات، وكل تحدي هتعديه هتخرج منه أقوى وأحسن وخبرتك هتزيد.
سادسًا: دايمًا خلي عندك روح التعلم، المجال بيتطور بسرعة، فلازم تكون دايمًا متابع كل جديد وتطور من نفسك باستمرار.
سابعًا: اهتم بصحتك النفسية والجسدية، الشغل ساعات طويلة قدام الجهاز ممكن يسبب لك تعب، فحاول توازن بين شغلك وراحتك.
ثامنًا: اعمل شبكة علاقات قوية، تواصل مع زملائك في المجال، واحضر مؤتمرات وورش عمل، ده هيفتح لك أبواب كتير وفرص شغل جديدة.
تاسعًا: خد بالك من التفاصيل الصغيرة، الدقة في شغلك هتفرق معاك كتير، وممكن تفتح لك أبواب فرص أكبر.
عاشرًا: دايمًا اسعى لتحسين نفسك وتطوير مهاراتك. ممكن تاخد كورسات أونلاين أو تقرأ كتب في مجالك...
وأخيرًا، متنساش تحافظ على التوازن بين حياتك الشخصية والعملية. الشغل مهم، لكن حياتك الشخصية كمان مهمة.
———
وقبل كل اللي فوق ده خليك فاكر إن الرزق بيد الله سبحانه وتعالى...
.
.
قبل ما تدخل سوق العمل خليني أدردش معاك في كام حاجة تاخد بالك منها...⭐️
———
أولًا: خليك بعيد عن الشغل المخالف للدين، أي شغل فيه موسيقى أو صور نساء أو غيرها...خلي لقمة العيش حلال.
ثانيًا: تأكد إن الشركة اللي هتشتغل فيها شغلها حلال وبعيدة عن المحرمات.
ثالثًا: متقللش من نفسك، مش معنى إنك فريش إنك تقبض مرتب 2000 جنيه. ابحث عن الشركة اللي هتشتغل فيها قبل ما تعمل انترڤيو وشوف المرتبات عندهم كويسة ولا، ولكن لو أنت محتاج الشغل ضروري ممكن تقبل باللي قدامك لغاية ما تلاقي فرصة أحسن.
رابعًا: خليك طيب وابن حلال وسيبك من شغل العصافير داخل الشركة أو إنك تبخل على حد بمعلومة أو غيرها من الخباثة. خلي سيرتك طيبة في المكان علشان الدنيا أوضتين وصالة.
خامسًا: متوقفش عند أول مشكلة تقابلك، كارير البرمجة مليان تحديات، وكل تحدي هتعديه هتخرج منه أقوى وأحسن وخبرتك هتزيد.
سادسًا: دايمًا خلي عندك روح التعلم، المجال بيتطور بسرعة، فلازم تكون دايمًا متابع كل جديد وتطور من نفسك باستمرار.
سابعًا: اهتم بصحتك النفسية والجسدية، الشغل ساعات طويلة قدام الجهاز ممكن يسبب لك تعب، فحاول توازن بين شغلك وراحتك.
ثامنًا: اعمل شبكة علاقات قوية، تواصل مع زملائك في المجال، واحضر مؤتمرات وورش عمل، ده هيفتح لك أبواب كتير وفرص شغل جديدة.
تاسعًا: خد بالك من التفاصيل الصغيرة، الدقة في شغلك هتفرق معاك كتير، وممكن تفتح لك أبواب فرص أكبر.
عاشرًا: دايمًا اسعى لتحسين نفسك وتطوير مهاراتك. ممكن تاخد كورسات أونلاين أو تقرأ كتب في مجالك...
وأخيرًا، متنساش تحافظ على التوازن بين حياتك الشخصية والعملية. الشغل مهم، لكن حياتك الشخصية كمان مهمة.
———
وقبل كل اللي فوق ده خليك فاكر إن الرزق بيد الله سبحانه وتعالى...
❤30
What is SEO?
A stunning website means nothing if it doesn’t rank and attract traffic.
A stunning website means nothing if it doesn’t rank and attract traffic.
❤2
Bash Scripting
Get started with Bash Shell noscript learning with practical examples. Also test your learning with practice exercises.
📶 Difficulty level: Beginner
⏳ Time to complete: Approx. 3 hours
———
📌 Course Content:
- Create and Run Your First Bash Shell Script
- Understanding Variables in Bash Shell Scripting
- Passing Arguments to Bash Scripts
- Using Arrays in Bash
- Using Arithmetic Operators in Bash Scripting
- String Operations in Bash
- Decision Making With If Else and Case Statements
- Loops in Bash
- Using Functions in Bash
- Automation With Bash
———
https://linuxhandbook.com/courses/bash
👍4
سمعت عن Keycloak؟
.
.
وأنا شغال على أكتر من مشروع في الفترة اللي فاتت، كان دايمًا فيه سؤال بقابله كل مرة:
"إزاي أظبط موضوع تسجيل دخول المستخدمين والصلاحيات بتاعتهم من غير ما أضطر أبني سيستم Auth كامل من الصفر كل مرة؟"
في الأول زي أي حد…
الـ Login بسيط، شوية JWT، شوية Middleware، وبعدها Roles، Permissions، Social Login، Refresh Tokens...
وفجأة تلاقي نفسك بتبني System كامل علشان حاجة مش هي الـ core بتاع المشروع أصلًا وبتحرق فيها وقت جامد.
لغاية ما قابلت Keycloak 💯
———
أداة Keycloak ببساطة عبارة عن Identity & Access Management
يعني سيستم متكامل بيشيل عنك وجع دماغ التوثيق والصلاحيات، ويديك حاجة جاهزة، قوية، وقابلة للتخصيص.
اللي عجبني فيه مش بس إنه:
- بيدعم OAuth2 / OpenID Connect / SAML
- Single Sign-On (SSO)
- User Management + Roles + Groups
- Social Login (Google, GitHub, …)
- Two-Factor Authentication
- عندك UI جاهز تشتغل عليه أو تعدله
———
الفكرة كلها إنك: تفصل الـ Auth عن البزنس لوجيك بتاع المشروع.
يعني بدل ما كل مشروع يبقى فيه Login مختلف، أو كل Microservice يشيل هم المستخدمين، Keycloak تبقى هي المصدر الوحيد للعمليات دي كلها.
———
لما تبدأ تستخدم Keycloak هتحس لأول مرة إن كل حاجة واضحة:
- مين المستخدم اللي داخل على السيستم
- وليه عنده صلاحية يعمل الحاجة دي
- وإزاي تتحكم في ده كله من غير ما تدخل تعدل في الكود لكل خدمة أو صفحة
ده بيفرق جدًا لو شغال على مشاريع فيها:
- Microservices
- Frontend و Backend منفصلين
- أو حتى سيستم كبير للشركات (Enterprise Systems)
———
طبعًا هي مش حاجة سهلة ومش “Plug & Play” ببساطة، بس أول ما تفهمها صح، هتوفر وقت ومجهود كبير...
.
.
وأنا شغال على أكتر من مشروع في الفترة اللي فاتت، كان دايمًا فيه سؤال بقابله كل مرة:
"إزاي أظبط موضوع تسجيل دخول المستخدمين والصلاحيات بتاعتهم من غير ما أضطر أبني سيستم Auth كامل من الصفر كل مرة؟"
في الأول زي أي حد…
الـ Login بسيط، شوية JWT، شوية Middleware، وبعدها Roles، Permissions، Social Login، Refresh Tokens...
وفجأة تلاقي نفسك بتبني System كامل علشان حاجة مش هي الـ core بتاع المشروع أصلًا وبتحرق فيها وقت جامد.
لغاية ما قابلت Keycloak 💯
———
أداة Keycloak ببساطة عبارة عن Identity & Access Management
يعني سيستم متكامل بيشيل عنك وجع دماغ التوثيق والصلاحيات، ويديك حاجة جاهزة، قوية، وقابلة للتخصيص.
اللي عجبني فيه مش بس إنه:
- بيدعم OAuth2 / OpenID Connect / SAML
- Single Sign-On (SSO)
- User Management + Roles + Groups
- Social Login (Google, GitHub, …)
- Two-Factor Authentication
- عندك UI جاهز تشتغل عليه أو تعدله
———
الفكرة كلها إنك: تفصل الـ Auth عن البزنس لوجيك بتاع المشروع.
يعني بدل ما كل مشروع يبقى فيه Login مختلف، أو كل Microservice يشيل هم المستخدمين، Keycloak تبقى هي المصدر الوحيد للعمليات دي كلها.
———
لما تبدأ تستخدم Keycloak هتحس لأول مرة إن كل حاجة واضحة:
- مين المستخدم اللي داخل على السيستم
- وليه عنده صلاحية يعمل الحاجة دي
- وإزاي تتحكم في ده كله من غير ما تدخل تعدل في الكود لكل خدمة أو صفحة
ده بيفرق جدًا لو شغال على مشاريع فيها:
- Microservices
- Frontend و Backend منفصلين
- أو حتى سيستم كبير للشركات (Enterprise Systems)
———
طبعًا هي مش حاجة سهلة ومش “Plug & Play” ببساطة، بس أول ما تفهمها صح، هتوفر وقت ومجهود كبير...
❤12
backend-handbook.pdf
17.5 MB
كتاب مهم جدًا لجماعة الباك إند 💯
.
.
الكتاب عبارة عن مسار تعلم الباك إند خطوة بخطوة بالإضافة إلى أهم المفاهيم اللي تخص عالم الـ API وكمان أشهر أكواد الـ HTTPS ومعنى كل كود، وأفكار مشاريع تقدر تطبقها خلال رحلة التعلم، وغيرها من المواضيع اللي هتساعدك تطور مهاراتك بشكل كبير في مجال الباك إند. 💡
———
The guide covers the Backend dev roadmap and explains core API concepts, common HTTP status codes, project ideas, & much more.
.
.
الكتاب عبارة عن مسار تعلم الباك إند خطوة بخطوة بالإضافة إلى أهم المفاهيم اللي تخص عالم الـ API وكمان أشهر أكواد الـ HTTPS ومعنى كل كود، وأفكار مشاريع تقدر تطبقها خلال رحلة التعلم، وغيرها من المواضيع اللي هتساعدك تطور مهاراتك بشكل كبير في مجال الباك إند. 💡
———
Complete Backend Handbook 🚀
The guide covers the Backend dev roadmap and explains core API concepts, common HTTP status codes, project ideas, & much more.
❤9👏1
تعال أقولك على كام نصيحة تخلي بالك منها قبل ما تبدأ أي مشروع فريلانسنج 💯
.
.
أولًا: اتفق على كل التفاصيل قبل ما تحط إيدك في المشروع زي مدة تسليم المشروع وهيكلف كام وطريقة التسليم هتكون إزاي وكمان التعديلات المسموح بها خلال فترة العمل أو حتى بعد تسليم المشروع...خليك متفاهم مع العميل وحاول تكون مستمع جيد جدًا.
ثانيًا: خليك واضح مع العميل وعرفه إيه الحاجات اللي هتعملها في المشروع (الصفحات والمميزات وغيرها)...ده هيمنع أي سوء تفاهم بينك وبين العميل وكمان هتكون مريح نفسك من التعديلات اللي بتظهر فجأة وتنكد عليك عيشتك.
ثالثًا: اتفق على الدفعات المالية وإزاي هتاخد فلوسك من العميل وعلى كام مرة...فيه عملاء بترضى إنها تدفع عربون وفيه عملاء بتدفع نصف المبلغ وفيه عملاء مبترضاش غير لما تشوف المكنة طلعت قماش (يعني بدأت شغل في المشروع وطلعت نتائج)...أنا بفضل إنك تاخد جزء من فلوس المشروع أو نصف المبلغ لو ده متاح مع العميل علشان تضمن إن تعبك ميروحش على الأرض.
رابعًا: قبل ما تبدأ في كتابة سطر كود واحد حاول تدرس المشروع كويس جدًا جدًا جدًا...من حيث المشروع كام صفحة وهتحتاج مكتبات إيه وهتشتغل بأي طريقة وهتبدأ من أي مكان في المشروع وهكذا...وأكيد مش هتكون مُلم بكل ده من أول مشروع ولكن الموضوع بيجي مع الممارسة وكثرة الشغل.
خامسًا: لو المشروع كبير شوية وفيه إمكانية تكتب عقد مع العميل (لو هو من بلدك) اعمل ده واضمن حقك علشان لو العميل قرر يخلع في نص المشروع...والعقد يكون موضح فيه كل تفاصيل المشروع.
سادسًا: خليك على تواصل دائم مع العميل وبلغه بالنتائج أول بأول...ده هيخلي عنده انطباع كويس عنك وممكن يكون سبب في باب رزق لك قدام (وده عن تجارب شخصية)...متنامش في الخط وتسيب العميل يكلم في نفسه ويظن فيك سوء.
سابعًا: خليك صريح مع العميل لو حصلت عندك ظروف أو حصل تأخير في تسليم المشروع وحاول تعوضه بأي حاجة زي إنك هتزود فترة التعديلات اللي بعد التسليم 48 ساعة مثلًا أو إنك هتضيف ميزة جديدة شايف إنها هتكون كويسة في المشروع (خليك ناصح).
ثامنًا: خليك هادي مع العميل واوعى تتعصب عليه أو تكلمه بطريقة وحشة لأن ده هيعود عليك بالسلب ده غير إنه ممكن يخلع وتضيع مجهودك على الفاضي...ادفع بالتي هي أحسن...كل عيش يا حماده ومشي أمورك.
تاسعًا: خليك جاهز للنقد والتقييم حتى لو بالسلب...حاول تاخد تقييم من العميل وكمان تكون متقبل النقد لأنك صعب تلاقي عميل راضي 100% ولكن اسمع منه التقييم والنقد وحاول تصلح الحاجات دي في المشروع الجاي.
وأخيرًا: لو المشروع كبير عليك وهياخد منك وقت كبير ممكن تستعين بصديق أو تبحث عن أي شخص يساعدك فيه...وده من باب واللهُ في عونِ العبدِ ما كان العبدُ في عونِ أخيه.
———
بالتوفيق يا صديقي 🌿
.
.
أولًا: اتفق على كل التفاصيل قبل ما تحط إيدك في المشروع زي مدة تسليم المشروع وهيكلف كام وطريقة التسليم هتكون إزاي وكمان التعديلات المسموح بها خلال فترة العمل أو حتى بعد تسليم المشروع...خليك متفاهم مع العميل وحاول تكون مستمع جيد جدًا.
ثانيًا: خليك واضح مع العميل وعرفه إيه الحاجات اللي هتعملها في المشروع (الصفحات والمميزات وغيرها)...ده هيمنع أي سوء تفاهم بينك وبين العميل وكمان هتكون مريح نفسك من التعديلات اللي بتظهر فجأة وتنكد عليك عيشتك.
ثالثًا: اتفق على الدفعات المالية وإزاي هتاخد فلوسك من العميل وعلى كام مرة...فيه عملاء بترضى إنها تدفع عربون وفيه عملاء بتدفع نصف المبلغ وفيه عملاء مبترضاش غير لما تشوف المكنة طلعت قماش (يعني بدأت شغل في المشروع وطلعت نتائج)...أنا بفضل إنك تاخد جزء من فلوس المشروع أو نصف المبلغ لو ده متاح مع العميل علشان تضمن إن تعبك ميروحش على الأرض.
رابعًا: قبل ما تبدأ في كتابة سطر كود واحد حاول تدرس المشروع كويس جدًا جدًا جدًا...من حيث المشروع كام صفحة وهتحتاج مكتبات إيه وهتشتغل بأي طريقة وهتبدأ من أي مكان في المشروع وهكذا...وأكيد مش هتكون مُلم بكل ده من أول مشروع ولكن الموضوع بيجي مع الممارسة وكثرة الشغل.
خامسًا: لو المشروع كبير شوية وفيه إمكانية تكتب عقد مع العميل (لو هو من بلدك) اعمل ده واضمن حقك علشان لو العميل قرر يخلع في نص المشروع...والعقد يكون موضح فيه كل تفاصيل المشروع.
سادسًا: خليك على تواصل دائم مع العميل وبلغه بالنتائج أول بأول...ده هيخلي عنده انطباع كويس عنك وممكن يكون سبب في باب رزق لك قدام (وده عن تجارب شخصية)...متنامش في الخط وتسيب العميل يكلم في نفسه ويظن فيك سوء.
سابعًا: خليك صريح مع العميل لو حصلت عندك ظروف أو حصل تأخير في تسليم المشروع وحاول تعوضه بأي حاجة زي إنك هتزود فترة التعديلات اللي بعد التسليم 48 ساعة مثلًا أو إنك هتضيف ميزة جديدة شايف إنها هتكون كويسة في المشروع (خليك ناصح).
ثامنًا: خليك هادي مع العميل واوعى تتعصب عليه أو تكلمه بطريقة وحشة لأن ده هيعود عليك بالسلب ده غير إنه ممكن يخلع وتضيع مجهودك على الفاضي...ادفع بالتي هي أحسن...كل عيش يا حماده ومشي أمورك.
تاسعًا: خليك جاهز للنقد والتقييم حتى لو بالسلب...حاول تاخد تقييم من العميل وكمان تكون متقبل النقد لأنك صعب تلاقي عميل راضي 100% ولكن اسمع منه التقييم والنقد وحاول تصلح الحاجات دي في المشروع الجاي.
وأخيرًا: لو المشروع كبير عليك وهياخد منك وقت كبير ممكن تستعين بصديق أو تبحث عن أي شخص يساعدك فيه...وده من باب واللهُ في عونِ العبدِ ما كان العبدُ في عونِ أخيه.
———
بالتوفيق يا صديقي 🌿
❤9