یوشا

دست نوشته ها و تجربیات شخصی

یوشا

دست نوشته ها و تجربیات شخصی

شهید دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی
تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

 

1- همیشه از تابع mysql_tquery() بجای mysql_query() استفاده کنید. تابع mysql_tquery از نوع multi-thread هستش و میزان وقفه/lag در سرور رو بسیار کاهش میده. (عملیات رو بین Thread ها تقسیم میکنه)

 

2- درصورتی که از سیستم های ضد hack/cheat استفاده می کنید، همیشه EnableStuntBonusForAll رو 0 قرار بدید.

در غیراینصورت سرور کاربر رو هکر قلمداد میکنه.

 

3- توسط پلاگین crashdetect میتونید crash های سرور رو ردیابی کنید.

https://github.com/Zeex/samp-plugin-crashdetect

نکته: برای استفاده از این پلاگین در ویندوز، مطعمن بشید که VC++ runtime 2010 - VC10 نگارش x86 و x64 رو نصب دارید.

 

4- همیشه دستورات AddPlayerClass() رو در مختصات مناسب و قابل دسترس تنظیم کنید تا در صورت بروز باگ یا مشکلات شبکه ای(packet lost) کاربر به موقعیت مناسبی teleport بشه.

۱۰ نظر ۹۷/۰۵/۲۲
یوشا آل ایوب

در Java چندین کلاس برای نوشتن و خواندن ورودی و فایلهای متنی وجود داره... اما کدام کلاس مناسبتره، کدام سریعتره و کدام نیازهای کاربر رو برطرف میکنه؟

 

  • کلاس BufferedReader

برای خواندن ورودی/فایل stream بصورت خط به خط از نوع string.

دارای بیش از 20 متد public داخلی.

پشتیبانی از متد close() برای بستن file handle.

توانایی خواندن ورودی از System.in (یا stdin)

این کلاس thread-safe هست. (میتوان BufferedReader رو در بین thread ها share کرد)

دارای حافظه buffer با سایز 8 کیلوبایت.

میتواند کلاس FileReader و InputStreamReader رو بعنوان reader در سازنده دریافت کند.

این کلاس synchronized هست.

پیاده سازی شده در JDK 1.1 و جدیدتر.

دارای کمترین system calls و کاملاً بهینه.

در صورت وقوع استثنا IOException اونرو throw میکنه.

عدم پشتیبانی از Encoding بصورت مستقیم.

زیر مجموعه پکیج java.io.

دارای پرفورمنس بالا نسبت به کلاسهای Scanner و FileReader.

توانایی خواندن ورودی فقط با نوع string.

مناسب برای محیط های multi-thread.

مناسب برای خواندن متن/ورودی طولانی بصورت string و خط به خط. (مثل فایلهای log, books)

 

  • کلاس Scanner

برای خواندن ورودی/فایل بصورت parse کردن داده های نوع primitive. (مثل int, long, double, string)

دارای بیش از 60 متد public داخلی.

پشتیبانی از متد close() برای بستن file handle.

توانایی خواندن ورودی از System.in (یا stdin)

این کلاس thread-safe نیست. (نمیتوان Scanner رو در بین thread ها share کرد)

دارای حافظه buffer با سایز 1 کیلوبایت.

میتواند کلاس FileReader و BufferedReader رو بعنوان reader در سازنده دریافت کند.

این کلاس synchronized نیست.

پیاده سازی شده در JDK 1.5 و جدیدتر.

دارای system calls پایین و تقریباً بهینه.

در صورت وقوع استثنا IOException اونرو مخفی میکنه.

عدم پشتیبانی از Encoding بصورت مستقیم.

زیر مجموعه پکیج java.util.

دارای پرفورمنس پایین نسبت به کلاسهای BufferedReader و FileReader.

توانایی خواندن ورودی با نوع int, long, string, float...

به دلیل استفاده از regular expression حافظه/CPU بیشتری نسبت به کلاس BufferedReader مصرف میکنه.

مناسب برای خواندن متن/ورودی و parse کردنش توسط delimiter. (مثل فایلهای xml, ini, config, json)

 

  • کلاس FileReader

برای خواندن فقط فایل از نوع string.

دارای 20 متد public داخلی.

پشتیبانی از متد close() برای بستن file handle.

عدم توانایی خواندن ورودی از System.in (یا stdin)

بدون قابلیت buffer.

پیاده سازی شده در JDK 1.1 و جدیدتر.

دارای بیشترین system calls و بسیار کند.

در صورت وقوع استثنا IOException اونرو throw میکنه.

عدم پشتیبانی از Encoding. (درواقع پیشفرض platform رو استفاده میکنه)

زیر مجموعه پکیج java.io.

دارای پرفورمنس بسیار پایین نسبت به کلاسهای Scanner و BufferedReader.

توانایی خواندن ورودی فقط با نوع string.

بهتر است بصورت مستقیم استفاده نشود.

۲ نظر ۹۷/۰۴/۱۶
یوشا آل ایوب

۱- موسسه ی آماری معتبر پیو اعلام‌ می کند اکثریت‌ قاطع آتئیست ها (۹۲ درصدشان) از همجنسگرایی حمایت می کنند همچنین ۸۷ درصد آتئیست ها از سقط جنین قانونی حمایت می کنند:

http://www.pewresearch.org/fact-tank/2016/06/01/10-facts-about-atheists/


۲- بارناگروپ هم اعلام می کند که آتئیست ها تمایل بیشتری به رفتارهای زشت جنسی  و ارتباط جنسی برقرار کردن با همجنس (همجنسگرایی و دوجنسگرایی) دارند!

http://www.barna.com/barna-update/article/5-barna-update/58-practical-outcomes-replace-biblical-principles-as-the-moral-standard


۳- احتمال اینکه افراد لزبین، گی، دوجنسگرا و ترنس ها آتئیست باشند بیش از سایر افراد است.   

https://www.ga*ystarnews.com/article/lgbt-people-more-likely-be-atheist-straights170613/


4- بنیانگذار حکومت آتئیستی _کمونیستی شوروی یعنی لنین یک‌ همجنسباز بوده است و با کمونیست دیگری بنام گریگوری زینوویف روابط جنسی داشته است، این‌ فرد در دوران استالین اعدام شد:

http://www.youtube.com/watch?v=bEzejRkT78A&feature=youtu.be

 

5- ریچارد داوکینز همانند آتئیست های ایرانی گمان‌می کند همجنسگرایی یک‌مسئله ی ژنتیکی است همچنین او در کتاب ژن خودخواهش به مسئله ی جبر ژنتیکی تاکید دارد، درواقع اتئیست های ایرانی و داوکینز با طرفداری از ایده ی غیر علمی ژنتیکی بودن همجنسگرایی میخواهند بگویند چون همجنسگرایی ژنتیکی است پس باید عمل شنیع همجنسبازی درتمام جوامع آزاد شود

http://anglicansamizdat.wordpress.com/2010/04/26/richard-dawkins-explains-how-the-ga*y-gene-was-preserved/

 

6- فرانک کامنی یکی از مهمترین شخصیتهای جنبش حقوق همجنسگرایان در آمریکا بود. در سال ۱۹۵۷ کامنی از سمت خود در ارتش آمریکا به دلیل همجنس‌گرا بودن اخراج شد، اولین‌باری که بحث آزاد سازی همجنسبازی مطرح شده است توسط این شخص آتئیست بوده است! همچنین با نفوذ وی بوده که APA همجنسگرایی را از لیست اختلال های روانی خارج کرده است.

 

این مطلب در ویکی پدیای انگلیسی هم به چشم می خورد و جای هیچ شکی باقی نمی ماند که این آتئیست ها بوده اند که تمام‌تلاششان را کرده اند تا این عمل شنیع را توجیه و عادی سازی کنند! البته همچنان هم آتئیست ها تمام تلاششان را می کنند تا این عمل زشت را عادی جلوه دهند...


He also worked to remove the classification of homo3xuality as a mental disorder from the American Psychiatric Association's Diagnostic and Statistical Manual of Mental Disorders.
https://en.m.wikipedia.org/wiki/Frank_Kameny

 

منبع: http://instagram.com/_u/naghde_elhad

۱ نظر ۹۷/۰۳/۱۱
یوشا آل ایوب

 

  1. باید مشخصات فنی و قطعات داخلی لپ تاپ رو مناسب با نوع کاریری تون انتخاب کنید. برای برنامه نویسی و کارهای پردازشی: CPU Intel, Storage SSD. برای بازی و کارهای گرافیکی: CPU AMD, VGA AMD و مانیتور حرفه ای
  2. باید لپ تاپ حداقل یک سوکت USB3، یک سوکت HDMI، یک سوکت شبکه داشته باشه.
  3. باید سیم شارژ لپ تاپ بلند باشه.
  4. نباید فاصله کلیدهای F1-F12 از کلید های زیرین کم باشه.
  5. باید لپ تاپ چراغهای status برای hard, power, wifi و... رو داشته باشه.
  6. نباید داخل صفحه مانیتور پیکسل های سوخته داشته باشه. (نقطه های ریز سیاه)
  7. نباید لبه پایین لپ تاپ(محل قرار گیری دست ها) برجسته باشه.
  8. نباید پیچ های پشت لپ تاپ زخم یا خوردگی داشته باشن.
  9. باید فاصله مناسبی بین کلیدهای اصلی کیبورد وجود داشته باشه. (به هم چسبیده نباشن)
  10. نباید محل نصب CPU در زیر محل قرارگیری دست ها باشه.
  11. باید نوع معماری سی پی یو Intel64 یا AMD64 باشه.
  12. درصورت داشتن گارانتی، نباید برچسب ها و هولوگرام های پشت لپ تاپ پارگی یا لکه داشته باشن.
  13. درصورت داشتن گارانتی، مطمعن بشید که شماره سریال روی جعبه دستگاه و روی بدنه دستگاه با شماره سریال روی کارت گارانتی یکسان باشن.
  14. درصورت آکبند بودن دستگاه، نباید تاریخ شروع و پایان گارانتی گذشته باشه.
  15. باید RAM لپ تاپ حداقل 4 یا 8 گیگابایت باشه.
  16. باید RAM لپ تاپ از نوع DDR4 یا بالاتر باشه.
  17. باید عمر باطری حداقل 8 ساعت باشه.
  18. نباید وزن لپ تاپ بیش از حد سنگین باشه.
  19. بهتره RAM لپ تاپ قابلیت ارتقا داشته باشه و fix نباشه.
  20. بهتره که صفحه ی نمایش مات باشه و نور محیط رو انعکاس نده.
  21. بهتره که کلیدهای End, Page UP/Down, Insert, Delete مستقل باشن و ترکیبی نباشن.
  22. بهتره که نوع صفحه نمایش HD یا Full HD باشه.
  23. بهتره که لپ تاپ نوع صدای دالبی هم داشته باشه.
  24. اگر نوع کاربری تون Gaming هست، باید کیبورد لپ تاپ از نوع 4 کلید همزمان باشه.
  25. بهتره صفحه کلید لپ تاپ بدنه تلقی و مجزا نداشته باشه.
  26. بهتره که لپ تاپ کیبورد اعداد (NumPad) هم داشته باشه.
  27. بهتره که کلید های Capslock و Numlock چراغ status داشته باشن.
  28. بهتره که CPU لپ تاپ از نسل های جدید CPU باشه.
  29. بهتره لپ تاپ CD/DVD درایورها رو هم داشته باشه تا مجبور نشید از اینترنت دانلود کنید.
  30. بهتره که سایز مانیتور لپ تاپ حداقل 15 اینچ باشه. (17 اینچ برای برنامه نویسی/طراحی)
    • نکته: هرچقدر که سایز مانیتور بزرگتر باشه، مصرف باطری هم بیشتر میشه.
  31. بهتره که لپ تاپ با سیستم عامل گنولینوکس هم سازگار باشه.
  32. اگر از سیستم عاملهای گنولینوکس استفاده می کنید باید قطعات و درایورها با گنولینوکس سازگار باشن.
  33. بهتره که باطری لپ تاپ قابلیت جدا شدن داشته باشه. (یعنی در داخل لپ تاپ پیچ نشده باشه)
  34. بهتره که لپ تاپ Webcam هم داشته باشه.
  35. بهتره که لپ تاپ از boot نوع BIOS/Legacy هم پشتیبانی بکنه.
  36. بهتره storage لپ تاپ از نوع SSD باشه.
  37. بهتره که لپ تاپ امکان بلوتوث هم داشته باشه.
  38. بهتره که لپ تاپ استوک نباشه.
    • نکته: لپ تاپ استوک به لپ تاپ های دست دومی گفته میشه که پلمپ شون باز شده، کمی استفاده و بعد فروخته شده یا پلمپ شون باز شده اما استفاده نشده و به انبار مرجوع شده.
  39. بهتره بدنه لپ تاپ فلزی نباشه تا در مقابل فرورفتگی و برق اتصال به بدنه مقاوم باشه.

 

نکته: منظور از Core همون هسته های فیزیکی(چیپ) هستش که داخل CPU قرار دارن و هرکدوم میتونن یک دستورالعمل(مثلاً برنامه) رو به تنهایی پردازش کنن. هسته ها قادرن هرکدوم به تنهایی و بصورت موازی یک برنامه رو اجرا کنن. مثلاً یک CPU با 4 هسته فیزیکی قادره 4 برنامه رو بصورت موازی اجرا کنه ولی بیشتر از 4 برنامه، دستورالعمل های برنامه بین همه هسته ها تقسیم میشه.

نکته 2: منظور از Thread (در حوزه سخت افزار) هسته های مجازی/نرم افزاری هستش که داخل Core قرار دارن و هرکدوم میتونن یک دستورالعمل(مثلاً برنامه) رو پردازش کنن. بنابراین یک CPU با 4 Core درواقع 8 هسته داره. 4 هسته فیزیکی و 4 هسته مجازی. به این عمل Hyperthreading هم گفته میشه.

نکته 3: CPU های دارای Turbo frequency قادرن بصورت اتوماتیک قدرت پردازشی خودشون رو افزایش بدن. مثلاً از 3.10GHz به 4.10GHz (درصورتیکه دما، باطری و... در حد مناسبی باشه)

نکته 4: Cache CPU حافظه لطیف و موقتی CPU هست که دستورالعمل های تکراری برنامه های کاربر رو در خودش ذخیره میکنه و مستقیماً از انجا دستورالعمل ها رو پردازش میکنه(بجای Hard Disk یا RAM). بنابراین باعث افزایش سرعت پردازش تا چند برابر میشه.

نکته 5: کلمه K در مشخصات فنی CPU معرف Unlock هستش، یعنی این CPU قفل نشده و قابلیت Overclocking رو داراست.

نکته 6: Resolution (رزولوشن) به تعداد پیکسل های موجود درون صفحه گفته میشه که بصورت عمودی و افقی در صفحه چیده شدن. در واقع هر چی رزولوشن صفحه نمایش بیشتر باشه، کیفیتش هم بالاتره. رزولوشن  مثل 1024x768 یا 240x320

نکته 7: Screen size (سایز صفحه) به اندازه فیزیکی صفحه نمایش گفته میشه که برحسب اینچ توسط قطر صفحه محاسبه میشه. هرچی بیشتر باشه، اندازه صفحه هم بزرگتره. مثل "15 یا "17

نکته 8: Color depth (عمق رنگ) به مجموع رنگ هایی که صفحه نمایش امکان نمایش شون رو داره گفته میشه. هرچی بیشتر باشه، کیفیت و زیبایی تصاویر هم بیشتر میشه. مثل 32bit یا 16bit

نکته 9: برای تشریح مشخصات CPU های Intel به این صفحه مراجعه کنید. https://intel.com/content/www/us/en/processors/processor-numbers.html

۴ نظر ۹۷/۰۲/۲۴
یوشا آل ایوب

 

کتابخانه OkHTTP

توسط Square تولید شده. مناسب برای Streaming و استفاده General مبتنی بر HTTP. پشتیبانی از POST, GET, UPLOAD. دارای مستندات آموزشی. زیربنای پیشفرض Retrofit و Picasso. یکی از زیربناهای Volley هستش. دارای disk cache. پشتیبانی از conn pooling. از پروتکل SPDY پشتیبانی می کنه. از اندروید 4.4 به بعد بصورت builtin در زیربنای اندروید استفاده شده. پشتیبانی از NewIO و...

 

کتابخانه Retrofit

توسط Square تولید شده. مناسب برای RESTful API / Web Service. پشتیبانی از POST, GET, PUT, DELETE, Multipart. دارای مستندات آموزشی. مبتنی بر کلاینت OkHTTP. دارای disk cache. پشتیبانی از async با کمترین کد. دارای cancellation و retryy برای درخواست ها. پشتیبانی از Dynamic URL. کمی کندتر از Volley اما سریعتر از AsyncTask هستش. دارای مفسر پیشفرض JSON و تبدیلش به POJO بکمک GSON.  پشتیبانی از NewIO. پشتیبانی از فعالیت های background.

 

کتابخانه Volley

توسط Google پشتیبانی شده. مناسب برای استفاده General و کار با تصاویر. پشتیبانی از POST, GET, PUT, DELETE. دارای مستندات آموزشی. دارای کلاینت های OkHTTP, Apache, HttpUrlConnection. دارای memory cache.  پشتیبانی از conn pooling. پشتیبانی از async با کمترین کد. دارای prioritization, cancellation, retrying برای درخواست ها. پشتیبانی از Dynamic URL. کمی سریعتر از Retrofit هستش. پشتیبانی از Image loading. دارای bitmap caching. سازگاری مناسب با activity lifecycle. دارای memory error handing مناسب. هندل کننده duplicate calls. استفاده نسبتاً آسان.

 

البته اگر بدنبال کتابخانه های سبکتر و کوچیکتر HTTP می گردید این گزینه ها هم میتونن انتخاب خوبی باشن:

LoopJ's android-async-http (HttpClient)
http://loopj.com/android-async-http/

Fast-Android-Networking
https://github.com/amitshekhariitbhu/Fast-Android-Networking

jus
https://github.com/apptik/jus

RoboSpice
https://github.com/stephanenicolas/robospice

 

این نکته رو هم در نظر داشته باشید که هرکدوم مزایا و معایب خودشونو دارن و باید درجای مناسبش کتابخانه مناسب رو انتخاب کنید.

۱ نظر ۹۷/۰۱/۰۳
یوشا آل ایوب

 

ابتدا باید بگم استاندارد رسمی برای سبک ها و workflow ها وجود نداره، اما در این مقاله سعی می کنم از تجربیاتم، قوائد همگانی و معمولترین موارد موجود در Atlassian، Kernel و git manpage استفاده کنم...

 

مقالات مرتبط:

دانلود، نصب و راه اندازی Git در ویندوز

ساخت SSh key در ویندوز

ساخت SSh key در لینوکس

کدام پروتکل: //:git یا //:ssh یا //:https

 

فهرست مندرجات:

  • Branch / انشعاب
  • Commit
  • تنظیم / config
  • گوناگون

۰ نظر ۹۶/۱۲/۱۷
یوشا آل ایوب

نقل از این صفحه:
 

چنگیز
قتل عام کردن هزاران هموطن نیشابوری به طرزی فجیع، که حتی به سگها و گربه های شهر هم رحم نمیکرد!
آیا او مسلمان بود؟
اسکندر مقدونی
قتل عام هزاران هموطن و تجاوز بیرحمانه سربازانش به دختران و زنان و به آتش کشیدن هرچه برسره راهش بود!
آیا او مسلمان بود؟
هیتلر
قاتل ملیونها انسان بیگناه و باگناه فقط از روی عطش به ریاست، کشورگشایی و نژادپرستی!
آیا او مسلمان بود؟؟
آشوکا (در جنگ کالینگا)
او صدهزار نفر را به قتل رساند!
آیا او مسلمان بود؟
استالین
که به دستورش سربازان روسی هنگام فتح برلین به دومیلیون زن و دختر آلمانی تجاوزکردند...! هنگامی که انگلیسیها به برلین رسیدند افسرها با دیدن دریاچه های مملو از اجساد زنانی که بعد ازتجاوز خودکشی کرده بودند شوکه شدند!
آیا سربازان روسی مسلمان بودند؟
ژوزف استالین
مشهور به "عمو جو" او بیست میلیون انسان را قتل عام کرد که چهارده میلیون نفر آنها فقط از گرسنگی مردند!
آیا او مسلمان بود؟
مائو تسه تونگ (چینی)
او بین پانزده ملیون نفر را قتل عام کرد!
آیا او مسلمان بود؟
جرج بوش
محاصره اقتصادی که توسط جرج بوش در عراق اعمال شد
یک میلیون و دویست هزار کودک در عراق کشته شدند! ولی رسانه ها هرگز این افراد را تروریست نمینامند!
آیا جرج بوش مسلمان بود؟

آیا واقعا مسئله مشکل ساز، اسلام است؟

جنگ جهانی اول: هفده میلیون کُشته (عامل آن غیر مسلمانان)
جنگ جهانی دوم : پنجاه میلیون کشته (عامل آن غیر مسلمانان)
جنگ در بوسنی/ کوزوو، بیش از پانصد هزار کشته (عامل آن غیر مسلمانان)
کشتار در فلسطین، میانمار... که همچنان ادامه دارد (به دست غیر مسلمانان)
در کامبوج 1975، حدود سه میلیون کشته (به دست غیر مسلمانان)
بمباران اتمی ناگاساکی دویست هزار کشته (عامل آن غیر مسلمانان)
جنگ ویتنام، بیش از پنج میلیون کشته (عامل آن غیر مسلمانان)

و هیچیک از سلاحهای کشتار جمعی بدست مسلمانان اختراع نشد.
۲ نظر ۹۶/۱۱/۳۰
یوشا آل ایوب

 

1- هنگام Multi-thread کردن کدهاتون فراموش نکنید برای دسترسی به اشیاء lazy-initialize(یا همون load on demand) وضعیت نهایی شی باید synchronize باشه تا با مشکل race condition مواجه نشید.

 

2- برای نرمال سازی ستونها و جلوگیری از افزونگی/redundancy داده باید از اصول زیر پیروی کنید:

- هیچ ستونی نباید بیشتر از یک نوع/type داده رو نگهداری کنه. (مثل int + char + float...)

- هیچ ستونی نباید داده های تکراری/مشابه به دیگر ستون ها رو در خودش نگهداری کنه.

- داده هارو در جداول مختلف نگهداری کنید و درصورت لزوم اونهارو توسط کلید خارجی/foreign key بهم متصل کنید.

 

3- جهت افزایش پرفورمنس، همیشه کلاس والد و اینترفیس رو در خطوط قبل از کلاس ارث بر تعریف کنید. در غیراینصورت موتور PHP برای پیدا و پردازش کردن کلاس والد مجبور به انجام عملیات های اضافی خواهد شد. (بر اساس OpCode تولید شده)

interface IData 
{
}

class MyClass implements IData
{
}

نکته: حتی اگر در فایلهای جداگانه تعریفشون می کنید این قائده باز هم باید رعایت بشه.

 

4- یادتون باشه که Dependency Injection نه تنها از طریق Constructor، بلکه از طریق Setter, Interface و Property هم قابل انجامه.

نکته: زمانی از نوع Constructor استفاده کنید که کل کلاس نیازمند اون dependency هستش یا شی dependency نباید در طول life time تغییر بکنه.

 

5- آیا می دونید تابع runkit_function_remove علاوه بر حذف قید تابع(function table)، مقدار حافظه اشغال شده توسط تابع رو هم آزاد می کنه؟

۵ نظر ۹۶/۱۰/۲۱
یوشا آل ایوب

 

این دیاگرام رو درست کردم تا روند(internals) تفسیر، کامپایل و اجرای سورس های PHP رو نشون بده:
 

برای بزرگنمایی کلیک کنید

php-internals

php internals diagram

لینک Stackoverflow.com

 

یکی از کاملترین و دقیق ترین دیاگرامهای PHP internals موجود در اینترنت هستش

۱ نظر ۹۶/۰۹/۰۸
یوشا آل ایوب

(برای بزرگنمایی کلیک کنید)

ُSlackware Linux wallpaper تصویر اصلی این wallpaper مطعلق به من نیست

            Slackware Linux wallpaper                                                                 

 
۰ نظر موافقین ۱ مخالفین ۰ ۹۶/۰۸/۰۵
یوشا آل ایوب