Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

البته مدت‌ها طول می‌کشه تا آثار این آلودگی از بین بره ولی خسته نباشید بچه‌های جنوب 💚

29,609 Aufrufe • vor 15 Tagen •via X (Twitter)

0 Kommentare

Keine Kommentare verfügbar

Kommentare vom Original-Post werden hier angezeigt

Ähnliche Videos

من در «مسقط» جایی در جنوب لبنان من که از همه چیز به خاطر بودن در «جنوب» گذشته بودم ، آمدم با همان نیت و تربیتی که از خاک جنوب آموخته‌ام: این‌که حضور در هر عرصه‌ای، اگر برای خدا و جبهه حق باشد، تفاوتی ندارد میدانش سنگر جهاد باشد یا میز مذاکره. آموخته‌ام که اگر میدان دیپلماسی دست اهلش باشد، ارزشش کمتر از میدان نبرد نیست؛ چرا که هر دو برای تأمین منافع حق و حمایت از مظلوم تلاش می‌کنند. با همین نگاه، قدم در این سفر گذاشتم. آمدم تا ما، بچه‌های مقاومت، در مواجهه با پدیده مذاکرات جمهوری اسلامی ایران و ایالات متحده آمریکا، به یک فهم مشترک و منطقی برسیم؛ مبادا که خدای‌نکرده به نام غیرت، بی‌منطقی کنیم و به‌جای یاری انقلابمان، باری بر دوش آن شویم. از سید شهیدمان آموخته‌ام که سرباز بودن، نه سربار بودن، شرط خدمت به جبهه حق است. و این اصل، چه در جنوب و چه در مسقط، فرقی ندارد. در پایان روز اول، به این باور رسیدم که باید «یک‌دست» باشیم. اگر بناست از محور حق دفاع کنیم و برای تأمین منافع آن بکوشیم، نباید اسیر ادبیات تخوین و حمله به اصل مذاکره شویم؛ مادامی که این مسیر از دایره تبیین و رهنمودهای امام امت خارج نشده باشد. امروز، یکی از مهم‌ترین رویدادهای روز نخست، حضور دکتر عباس عراقچی، عضو ارشد تیم مذاکره‌کننده ایران، در نمایشگاه بین‌المللی کتاب مسقط و شرکت در مراسم جشن امضای کتاب «قدرت مذاکره» بود. فرصت مغتنمی دست داد با آن هایی که در این رویداد حاضر بودند صحبت کنم ؛ مردمان ساکن در منطقه غرب آسیا ما را از قبل بیشتر دوست دارند ، شاید این روز ها به این نتیجه رسیده اند که ما در سختی و شادی «مظلوم » را رها نمی‌کنیم پایان گزارش روز اول مسقط – عمان

Hossein Pak

26,195 Aufrufe • vor 1 Jahr

بار 8 عددی هیوندای النترا از مبدا چین به بندر انزلی هفته پیش با کمک خانوم فاطمه بزرگوار 🎒•| فـآطِـمِــهـ |• که خیلی هم اذیتشون کردیم انجام شد و ایشالا به سلامت برسه به دست مشتری مدل 2026 تیپ الیت GLX قیمت بدون پلاک 15500 دلار البته فقط یکدونه مونده از این بار ایشالا از هفته بعد تامین قطعه و (ماشین برای مناطق آزاد) از مبدا چین و عمان و امارات در بستر وبسایت انجام میشه ارسال قطعه از عمان 1 تا 3 روزه انجام میشه از امارات 2 تا 4 روزه از چین هم بین 6 تا 10 روز اطلاعات ارتباطی نماینده های مناطق مختلف داخل و خارج ایران هم در بستر وبسایت قرار میگیره که عزیزان به صورت مستقیم ارتباط بگیرن خودم هم از عمان درخدمتتون هستم در مورد واردات خودرو به مناطق آزاد هم از ابتدای شهریور واردات شخصی بسته میشه و فقط شرکتی انجام میشه که شرکت های فعال مناطق باید فروش انجام بدن که بنده خودم در منطقه آزاد مازندران با محوریت ساری و نوشهر در خدمتتون هستم تا پلاک گذاری و تحویل تمام پروسه در وبسایت انجام میشه و قابل پیگیری به هرحال قطعه و خودرو خواستید در خدمتتون هستیم درضمن قسمتی از درآمد خالص صرف پروژه های تحقیق و توسعه ای میشه که در آینده به اطلاعاتون میرسونم.

Sadjaad

15,448 Aufrufe • vor 29 Tagen

خودشیفته، نارسیسیت، نابالغ، اینسکیور، دغل‌باز، لاشی... فرقی نمی‌کنه که اسمش رو چی بذارید. اما اگه اندازه ۵ دقیقه حوصله کنید می‌خوام برای شما از یک لحظه بگم. لحظه‌ای که اولین جرقه‌ی همه دردسرهای بعدی رو می‌زنه. لحظه‌ای که مثل تیغی در گلو هم دردآوره و هم اجازه نمی‌ده غذا بخوری. که اگه فکری به حالش نکنی، باعث می‌شه سوتغذیه نحیفت کنه یا حتی بکشتت. (قبلش ویدیوی این پست رو ببینید) 🔖 پرده اول: کودکی گریه می‌کنه. شاید از گشنگی کلافه شده، شاید از تنهایی ترسیده. شاید پوشکش اذیتش می‌کنه. شاید پرخاش مراقبینش به همدیگه رو دیده. دستانش رو در هوا تکون می‌ده و رد چشمانش به دنبال چهره گرم مامان یا دست حمایتگر بابا می‌گرده. مامان درد مزمنی پیدا کرده. شاید کمرش درد می‌کنه. شاید چند وقتیه درگیر ترفیع شغلی باباست چون بابا پروژه جدیدی گرفته و چند وقتیه دیر وقت به خونه میاد و در دسترس نیست. مامان شاید بعد از زایمان، افسردگی گرفته. شاید مشکل مالی‌ای پیش اومده و بابای تحت فشار، مامان رو هم مضطرب و نگران کرده. شاید مامان و بابا به این‌جای زندگی فکر نکرده بودن و حالا چکه‌های گاه و بی‌گاه سقف رابطه‌شون تبدیل به نم‌گرفتگی همیشگی و پوسیدگی رنگ و گچ شده. هر چه که هست چشم‌های کودک می‌گرده و خط نگاهش به چهره در هم کشیده‌ای می‌خوره. به چشمانی کم‌فروغ. به صورتی عصبانی. به لب‌هایی که گوشه‌هاش پایین افتاده. به ابروهای درهم‌کشیده‌ای که نشانی از محبت در اون‌ها نیست. شاید چشم‌‌های کودک می‌گرده و می‌گرده اما نگاهی پیدا نمی‌کنه. و این نه ماجرای امشب و هفته پیش و ماه گذشته، بلکه پاسخیه که - شاید همیشه، شاید گاه‌به‌گاه - اما مستمر و پیوسته دریافت می‌کنه: ⚡️لحظه‌ای که چشم‌ها به جست‌وجوی چشمه خنک و زلال توجه و محبت رفتن اما تشنه، با مشک خالی و با مُشتی خاک در کام برگشتن. 🔖 پرده دوم: کودک بزرگ‌تر می‌شه. به هر حال شیرین و بامزه‌اس (مگر این که خیلی بدشانس باشه که حتی بامزه و لپ‌دار هم نباشه). اون‌طور که هر کودک ۳-۴ ساله‌ای به توجه و دیده شدن نیاز داره، او هم به دنبال نیازش می‌گرده. مثل ریشه‌ای در خاک به دنبال آب، مثل گرسنه‌ای به دنبال غذا. شاید اگه بچه گربه وحشی رو در جنگل یا صحرا پیدا کنید و نون خشکی جلوش بندازید، حتی بوش هم نکنه. اما گربه‌ی توی کوچه - البته نه کوچه‌های حالا که پر از غذای خشک خارجیه - با دنده‌هایی که از زیر پوستش کمی معلومه و تن نحیفش، همون نون خشک رو هم به دندون می‌کشه و با میو کردن ضعیفی سعی می‌کنه شما رو راضی کنه تا سوسیس وسط نون که بوش بهش خورده رو هم بهش بدید. هر چه که هست، کودک به روشی که نمی‌دونه از کجا میاد ولی براش کار می‌کنه، توجه رو می‌گیره و سیراب می‌شه. شاید چون مودبه، شاید چون همیشه موهاش آب و شونه شده‌اس، شاید چون بلده دست به کنترل تلویزیون نزنه. شاید چون وقتی عصبانیه می‌گه چشم و گریه نمی‌کنه، شاید چون بلده شعری که بچه‌های ۷-۸ ساله با مشکل می‌خونن رو از حفظ بخونه. شاید چون بلده باز هم به چشمان بی‌فروغ و صورت در هم‌کشیده یا لب‌هایی که نمی‌جنبه و شاید حتی چشمی که نیست، نگاه کنه بی آن که خم به ابرو بیاره. در عوض کاری کنه که اون چشم‌ها اندکی برق بزنن و لب‌ها کمی بخندن. ⚡️بالاخره راه‌حل کنار اومدن با اون لحظه پیدا می‌شه. 🔖 پرده سوم: نوجوون ۱۳ ساله در اتاقش نشسته و با خودش فکر می‌کنه - یا شاید حتی فکر نمی‌کنه و بعداً متوجه جریان ناخودآگاه فکرش می‌شه - و می‌گه: «دیدی چه بیابان وحشتی بود؟ دیدی که چه گرسنه و تشنه بودیم؟ اما ما موفق شدیم. نه! یه ذره دیگه تا موفقیت مونده... ولی دیدی چیزی رو ساختیم که دیگه همه چشم‌ها با ذوق و همه لب‌ها با خنده باهاش روبرو می‌شن؟ می‌دونم... همه‌ی همه که نیست. کلی چهره هست که تا حالا ندیدیم. این صورتایی که هر روز می‌بینیم هم به نظر می‌رسه هنوز هم بعضی وقت‌‌ها در‌هم‌کشیده و کم‌فروغه. آخ! دیدی پریروز دو تاشون بهمون لبخند نزدن؟ خیلی تلخ بود. ولی جای نگرانی نیست. چون این چیزی که داریم می‌سازیم یکم دیگه، اگه فقط یکم دیگه روش کار کنیم دیگه به همه چشم‌ها و لب‌ها ذوق و خنده میاره» 🔖 از پرده سوم به بعد، برنامه‌ریزی پیش‌فرض مشخصه: یکم دیگه روی اون چیزی که داریم می‌سازیم کار کنیم تا دیگه همه بپسندنش. تا دیگه از اون جست‌وجو با کام تشنه و پرخاک و مشک خالی برنگردیم. تا دیگه اون لحظه ⚡️ تکرار نشه. اما کیه که ندونه دنیا کارش ناکام کردنه؟ کیه که ندونه آدم‌ها اصلاً به مشک ما نگاه نمی‌کنن که بخوان پرش کنن؟ این رو من و شما می‌دونیم، اما گربه‌ای که با نون خشک سیر شده نمی‌دونه. ریشه‌ای که جون کنده تا خودش رو به آب برسونه نمی‌دونه. و این همون تیغ در گلوست. هر ارتباط جدید با برنامه‌ریزی پیش‌فرض تکرار نشدن اون لحظه آغاز می‌شه و بعد از اندکی - اگه ادامه‌دار بشه - به گروگان گرفته می‌شه تا هیچ وقت باعث رخ دادن دوباره اون لحظه ⚡️ نشه. به هر حال اون لحظه خیلی خیلی دردناکه و ما هم این همه سال زحمت کشیدیم تا این محصول همه‌پسند رو بسازیم. حالا درسته کماکان یکی دو تا جاش گیر و گور داره. اما تیم توسعه قول داده با فیدبک‌های جدید حتماً محصول نهایی رو تا چند ماه دیگه آماده کنه. چیزی که مهمه اینه که تیغ رو دست نزنیم. چون دست زدن بهش درد داره. اما خب این شکم گرسنه نیاز به غذا داره. با هر لقمه هم تیغْ گلو رو خراش می‌ده و درد داره و غذا بهش می‌چسبه. درسته که یکمی درد داره. اما محصول ما قراره درد تیغ رو در نسخه نهایی کاملاً رفع کنه. از طرفی اگه تیغ رو دربیاریم ممکنه گلومون بچسبه بهم و دیگه نتونیم غذا بخوریم. حتی تیم توسعه گفته شاید کل دستگاه گوارش رو از کار بندازه. ما که نمی‌دونیم چی می‌شه. بعد خب معده و روده رو هم نمی‌شناسیم که بخوایم بهشون رسیدگی کنیم. فقط تیغ و گلو رو می‌شناسیم و غذا. ولی این درد گلو باعث می‌شه نه درست طعم غذا رو بفهمیم، نه درست بجویم و قورتش بدیم. بقیه هم تا کی تحمل آخ و اوخ و غذا خوردن خاص ما رو بکنن؟ خسته می‌شن دیگه... البته ما هم می‌تونیم سریع‌تر از سر سفره پاشیم تا کسی متوجه تیغ در گلو و رژیم خاصمون نشه. رژیم غذاییمون هم به خاطر عفونت و زخم‌های مکرر محدود و محدودتر می‌شه. ♻️ و زندگی همین‌طور پیش می‌ره... اگه خوش‌شانس باشیم، با یکی هم‌سفره می‌شیم که بالاخره یه فیدبکی به این محصول و این حقیقت که هنوز بعد از این همه سال تحقیق و توسعه نتونسته مشکل تیغ در گلو رو حل کنه، بده. و سوالی که بعد از اون هر بار تکرار می‌شه و باید بهش جواب بدیم، اینه: آیا جرئت مواجه شدن با اون لحظه⚡️ و در آوردن تیغ و درد و مراقبت‌های بعدش رو داریم... یا به کار روی محصول ادامه می‌دیم؟

Mehdi Jahani

17,740 Aufrufe • vor 8 Monaten

💣بدنه اجتماعی هسته سخت جمهوری اسلامی، بزرگترین خطر دوران پساخامنه‌ای برای ایران این آدمهایی که برای مرگ #خامنه‌ای تو این شرایط دارن عزاداری می کنن رو کسی به زور نیاورده بیرون. با ساندیس و اتوبوس مجانی هم اینجا نیستن. اینها همون پایگاه اجتماعی و فرهنگی و پیاده نظام #هسته_سخت قدرت جمهوری اسلامی هستن. کم و بیش ۱۵ تا ۲۰ درصد مردم. چیزی بین ۱۲ تا ۱۸ میلیون نفر. اینها حاضرن برای عقیدشون بکشن و کشته بشن. کاملا هم آخرالزمانی فکر می کنن! رهبران جمهوری اسلامی رو میشه با بمب و موشک حذف کرد ولی این جماعت رو نمی تونی با بمب و موشک حذف کنی. هر چه بیشتر حذف کنی ازشون مثل یه خرس زخمی خطرناک تر می شن. باید فکری اساسی به حال این مسئله کرد. جوگیری، ذوق زدگی از کشته شدن خامنه‌ای و چند تا سپاهی و نگاه فانتزی به رژیم چینج رو باید گذاشت کنار. سرنگون کردن جمهوری اسلامی پلی استیشن و کال آف دیوتی بازی کردن نیست. اینها رو نتونیم اقناع کنیم جنگ داخلی راه می افته! با فحش دادن تو توییتر و هشتگ #جاويدشاه‌ و #از_دموکراسی_بگو و #زن_زندگی_آزادی نمی تونی اینا رو سر عقل بیاری. با بمباران خارجی هم اینا متحد تر می شن. باید هر چه سریعتر برای این وضعیت خطیر چاره ای اندیشید...

Ali Bornaei

150,368 Aufrufe • vor 5 Monaten

رها (زهرا) بهلولی‌پور، متولد ۳۰ آذر ۱۳۸۱، دانشجوی زبان ایتالیایی دانشگاه تهران و ساکن خوابگاه بود. اما از شرایط خوابگاه ناراضی بود، چندی پیش در کانال تلگرامش نوشته بود: «دلم می‌خواد تا صبح توی خیابون باشم اما به این خوابگاه لعنتی برنگردم.» به گفته نزدیکانش رها فرزند دوم خانواده‌ای‌ ۴ نفره از ایل قشقایی است. رها ۱۹ دی ۱۴۰۴ به دلیل شلیک گلوله از سوی نیروهای جمهوری اسلامی و اصابت آن به ریه‌اش جان سپرد. پیکرش در شهر فیروزآباد به خاک سپرده شد. رها در کانال تلگرامش نوشته بود «من خیلی طرفدار زندگی ام» او در آخرین پیغام کانال تلگرامش چند ساعت پیش از کشته‌شدنش نوشت:«یک لحظه وصل شده‌م و فقط می‌‌خوام بنویسم زن، زندگی، آزادی برای همیشه.» رها بهلولی‌پور، در کانال تلگرامش از روزمرگی‌هایش می‌نوشت، ولی این اواخر بیشتر اخبار اعتراضات و بازداشت‌ها را نشر می‌داد. رها در متنی انتقادی در مورد شرایط دانشگاه نوشته بود: «من متوجه نمی‌شم این دانشگاه لعنتی با این بودجه چی‌کار می‌کنه که بهانه‌ش برای رسیدگی‌نکردن به مشکلات و ایجاد ایمنی‌ —که البته غلط می‌کنه چنین بهانه‌ای میاره— کمبودشه! اصلا چرا می‌گم متوجه نمی‌شم؟! معلومه که دیگه صرف چی می‌شه! حجاب‌بان، همایش‌های مذهبی مزخرف و حراست‌هایی که کارشون فقط گیردادن به ظاهره و هزاران کار بیهوده‌ی دیگه.» رها اهل مطالعه بندود، عاشق ادبیات و سینما. به فروغ فرخزاد علاقه داشت. جمهوری اسلامی جان این دختر عاشق و پرشور را گرفت و رویاهایش برای زندگی، عاشقی و آزادی، ناتمام ماند. این آدرس کانال تلگرامش است: #رها_بهلولی‌پور ⁧#زهرا_بهلولی‌پور⁩ #جنایت_علیه_بشریت #انقلاب_۱۴۰۴ #digitablackoutiran #iranmassacre #iranrevolution2026 اطلاعات برگرفته از اینستاگرام شیما بابایی و نوشته‌های خود رها در کانال تلگرامش

توانا Tavaana

160,543 Aufrufe • vor 7 Monaten

مراسم خاکسپاری خامنه‌ای و خواندن نماز میت در تهران از لحاظ نمایش قدرت و مقبولیت اجتماعی شکست خورد. مصلی تهران در تراکم جمعیتی بالا با در نظر گرفتن صحن اصلی و شبستان‌ها در بیشترین تخمین گنجایش ۱۷۰ هزار نفر را دارد. جمعیت در خیابان‌های اطراف نیز بین ۳۰ تا ۵۰ هزار نفر تخمین زده می‌شود. بنابراین در موقع خواندن نماز میت حداکثر ۲۲۰ هزار نفر حضور داشتند که با تبلیغات فراوان، سازماندهی زیاد، زمان مناسبی که در اختیار داشتند، هزینه کم تردد، اسکان رایگان در زائرخانه‌های ایجاد شده توسط شهرداری و هتل ارزان از کل کشور و از برخی کشورهای خارجی چون عراق، هند و برخی کشورهای دیگر آمده بودند. البته با توجه به اینکه مراسم از دیروز با خداحافظی و دیدن جنازه در تابوت خامنه‌ای شروع شده و تا امشب ادامه دارد، جمعیت سیار را نیز باید در نظر گرفت. همچنین تشییع در خیابان هم انجام می‌شود که ممکن است افراد جدیدی به آن اضافه شوند. قبل از اقامه نماز میت، جمعیت حاضر فشردگی بالا نداشت و با در نظر گرفتن چهار بار جابجایی کامل جمعیت در روز گذشته و دو بار بعد از مراسم نماز امروز و در نظر گرفتن اشتراکات با جمعیت نمازگزار، می‌توان کل جمعیت حاضر در خاکسپاری خامنه‌ای را در حد ۵۰۰ تا ۷۰۰ هزار نفر در تهران تخمین زد. جمعیت ۶ میلیونی ادعا شده اغراقی گل درشت بیش نیست. در سال ۶۸ و در جمعیت ۵۳ میلیون نفری ایران حاضران در مراسم تشییع خمینی در تهران بین ۷ تا ۱۰ میلیون نفر برآورد شده بودند. پایگاه اجتماعی نهاد ولایت فقیه در ایران تقریبا در حدود ده میلیون نفر از جمعیت ۹۰ میلیونی است. نظام نتوانست ده درصد آنها را از کل کشور برای مراسم تشییع خامنه‌ای در تهران به صورت متمرکز بسیج کند. علی‌رغم فضای احساسی ایجاد شده، قهرمان‌سازی‌ و کشته‌شدن وی طی جنگ ‌و‌ پیچیده شدن شرایط در مقایسه با مرگ طبیعی، این یک شکست تبلیغاتی و سیاسی است. در عین حال با همین آمار، خاکسپاری خامنه‌ای جزو شلوغ‌ترین مراسم تشییع جنازه‌ها در تاریخ معاصر ایران محسوب می‌شود که با توجه به کارنامه سیاه زمامداری او و صدور فرمان بزرگ‌ترین جنایت تاریخ معاصر ایران درست یک ماه قبل از کشته شدن باعث تاسف است.

Ali Afshari

60,953 Aufrufe • vor 1 Monat

این مرد بنام جنرال مبین که یک شخصیت رسانه یی طالبان است، برای بار سوم ازدواج کرده و این به اصطلاح مراسم عروسی این فاسق است. در سایه این عادی سازی روند ازدواج های مکرر طالبان و لابیگران طالب، به زور یا رضا با زنان متعدد، نظری می افگنیم بر دستاورد طالبان در افغانستان در طول پنج سال گذشته: -زنان و دختران بیسواد و در اسارت خانه، ممنوع از تردد و رفتن به اماکن عامه -جامعه غرق در بیسوادی، تحجر، پسران معطوف به مدرسه ها و مکاتب با نصاب تعلیمی "جهادی" ترورستان طالب -سقوط کامل و محض نظام اقتصاد و مالیه، وابستگی محض به امداد و خیرات بین المللی -بیکاری مفرط، مزمن مردم و افزایش سرقت ها و دیگر جرایم برای کسب درامد -فقر نهادینه شده در حدی که مردم توانایی خوردن فقط یک وعده نان را هم ندارند و کودکان خود را برای خرید نان میفروشند -آزادی لگام گسیخته مردان، در حدی که هر مرد حق کشتن همسرش را عاری از پیگرد قانونی دارد، هر مرد حق تعدد زوجات را به هر تعداد دارد. -گسترش بی سابقه بچه بازی یا پدوفیلیا، آزادی کامل برای مردان برای بچه بازی و سو استفاده جنسی از کودکان پسر -استفاده از تهدید، ارعاب و خشونت توسط سلاح و گلوله برای خفه کردن صدای عدالت خواهی مردم و کشتار مخالفین رژیم توسط طالبان -سوتغذیه حاد کودکان بخصوص در جنوب افغانستان -ضعف مفرط وزارت ها و اداره های حکومت طالبان و ادامه حکومتداری این گروه با رهبری نامریی و مجهول بنام هبت الله

Lina Rozbih

33,137 Aufrufe • vor 1 Monat

🟥ما همه اشتباه کردیم، جمهوری اسلامی با این جنگ ساقط نخواهد شد، فقط ایران نابود می شود. دوستان عزیز، مخالفان محترم و حتی دشمنان گرام، زمان آن رسیده که همه ما با حقیقتی تلخ و گزنده روبرو شویم. هیجانات ناشی از کینه و خشم دی ماه و حذف سریع خامنه‌ای و سران نظامی و امنیتی و سیاسی و تیترهای داغ خبری، چشمان بسیاری از ما را بر واقعیت‌های روی زمین بسته بود. بیایید تعارف را کنار بگذاریم، محاسبات ما غلط بود. خیلی هم غلط بود و دود آن به چشم همه رفت و بیشتر هم خواهد رفت، از مردم مظلوم ایران و مردم سایر کشورهای منطقه تا دیاسپورای با شرف و از مردم بقیه نقاط جهان که درگیر کمبود و گرانی و سختی خواهند شد تا احزاب سیاسی و سیاستمداران که مسبب این وضع شناخته خواهند شد. 1⃣ توهم فروپاشی با حذف سران از دونالد #ترامپ و استراتژیست‌های کاخ سفید گرفته تا سران اروپایی، تحلیلگران پرطمطراق ماهواره‌ای و حتی بسیاری از مردم عادی من جمله خود من، همگی در یک تله محاسباتی مشترک افتادیم. تصور این بود که با حذف فیزیکی مهره‌های کلیدی، زدن فرماندهان ارشد سپاه و یا حتی خروج #خامنه‌ای از صحنه، ساختار قدرت در ایران مثل یک خانه پوشالی فرو می‌ریزد. اما واقعیت سخت نشان داد که ساختار امنیتی نظامی جمهوری اسلامی، پیچیده‌تر و مستحکم تر از آن است که با حذف رهبران اصلی و فرماندهان نظامی و امنیتی و حتی ضربات نظامی تمام عیار از هم بپاشد. فکر همه چیز از سالها قبل شده بود. جنگ نه تنها باعث فروپاشی آنها نشد، بلکه معادلات را به سمت انسداد عمیق تر، تصاعد تنش و البته قدرت گرفتن بیشتر نظام جمهوری اسلامی پیش برد. 2⃣ چه کسانی هنوز به معجزه جنگ دل بسته‌اند؟ علیرغم تمام شواهد، هنوز سه گروه بر طبل توخالی توهم سقوط با جنگ می‌کوبند. 🔸اول، مسخ‌شدگان و کم هوشان رسانه‌ای، کسانی که شبانه‌روز تحت بمباران خبری دو شبه رسانه و تلویزیون‌ فارسی‌زبان خاص هستند، رسانه‌هایی که برای جلب کلیک و بیننده، از جنگ یک انیمیشن ساده برای مخاطب ساده لوح و کم هوش خودساخته‌اند و طوطی وار به رویا فروشی برای رعیت رسانه ای ادامه می دهند. 🔸دوم، طرفداران یک فرقه سیاسی خاص، عقب ماندگان سیاسی و زامبی های اخلاق ستیزی که حیاتشان در گروی هرج‌ومرج و ویرانی است و تصور می‌کنند بر روی ویرانه‌های ناشی از بمب، برای آن‌ها و رهبرشان در ایران فرش قرمز پهن خواهد شد. 🔸سوم، رویافروشان حرفه‌ای، تحلیلگرانی که نان شب خود را از راه تحمیق مخاطب درمی‌آورند. کسانی که با شعارهای توخالی مثل کار تمام است و فلانی در راه است، سال‌هاست برای خود دکان ساخته‌اند و به جای تحلیل، امید کاذب می‌فروشند و برای لقمه ای نان حتی از اینکه هر روز بیشتر از قبل شبیه یک دلقک ارزان قیمت شوند هم ابای ندارند. 3⃣ واقع‌بینی، تنها راه نجات باقی‌مانده. چه باید کرد،‌چه می توان کرد؟ اگر واقعاً دل‌سوز ایران هستیم، باید از فضای فانتزی خارج شویم و بر روی سه محور حیاتی تمرکز کنیم. 🔹اول، توقف فوری جنگ، پیش از آنکه زیرساخت‌های ملی، نیروگاه‌ها و سرمایه‌های تمدنی ایران به کلی نابود شود، باید برای صلح و پایان درگیری فشار آورد. ویرانی ایران، هیچ برنده‌ای در میان ملت نخواهد داشت. 🔹دوم، جلوگیری از انتقام‌گیری داخلی، در فضای جنگی، اولین قربانی مردم داخل هستند. باید به هر طریق ممکن مانع از آن شد که جمهوری اسلامی نارضایتی‌های انباشته را به بهانه شرایط جنگی، با سرکوب خشن و انتقام‌گیری از مردم عادی پاسخ دهد. 🔹سوم، صیانت از زیست انسانی، تلاش برای تضمین رسیدن دارو، غذا و اقلام اساسی به دست مردم و پافشاری بر تداوم فعالیت زیرساخت‌های حیاتی مانند آب، برق و بهداشت به هر طریق ممکن از جمله بسیج جهان برای جلوگیری از فاجعه انسانی. 4⃣ تنها برنده این جنگ نتانیاهو بود، نه حتی اسراییل یا مردمش نتانیاهو از اول می دانست این جنگ باعث سقوط جمهوری اسلامی نخواهد شد ولی این توهم را به ترامپ فروخت( یا با اسناد اپستین معامله کرد؟) و رهبر خودخوانده دوران مثلا گذار را هم با رویافروشی رام و دست آموز کرد و در آخر هم به هدفش که نابودی زیرساختها و توان جمعی ایران و سد کردن راه توسعه کشور تا ده ها سال آینده بود رسید. 🟧و در نهایت، خلاصه کلام من این است. ما همه اشتباه کردیم از ترامپ تا تحلیلگران حرفه ای و من و شمای مردم عادی! سقوط یک سیستم سیاسی با بمب و موشک خارجی، اگر هم ممکن باشد که درباره جمهوری اسلامی نیست به معنای دموکراسی،‌رفاه و آزادی نیست، به معنای سوریه‌ای شدن است. زمان آن است که از رویاپردازی دست بکشیم و برای بقا و نجات ایران در دنیای واقعی تلاش کنیم.

Ali Bornaei

498,280 Aufrufe • vor 4 Monaten

شرم بر Object oriented programming! خیلی درباره‌ی بازدهی در برنامه‌نویسی صحبت می‌شه و همیشه درباره‌ی الگوریتم سریعتر یا ساختمان‌داده‌ی مناسب بحث می‌شه. اما نی‌خوام درباره‌ی یه مساله‌ای که کمتر دیدم صحبت بشه موضوعی رو باز کنم. اون هم استفاده از ویژگی‌های cpuهای مدرن مثل prefetching یا SIMD ـه! قبل از همه چیز باید بدونیم پردازش مربوط به خوندن و نوشتن اطلاعات از روی RAM و اعمال دستورات روی CPU مربوط می‌شه. اما سرعت پیشرفت و بازدهی CPUها خیلی بیشتر از RAM بوده. این عکس فاصله‌ی بازدهی پردازنده‌ها رو با رم نشون می‌ده. یعنی اگر درست کد نزنیم پردازنده زمان زیادی رو منتظر اطلاعات می‌مونه تا بتونه کارش رو ادامه بده. در این بین خیلی از ویژگی‌ها مثل سطوح مختلف Caching در پردازنده‌ها ایجاد شده مثل L1, L2, L3 و احتمالاً موقع خرید CPU بهش برخورد کردید. کاری که این Caching انجام میده خوندن اطلاعات از رم و آماده نگه داشتن اونا وقتیه که CPU در حال محاسبه ست. (به صورت فیزیکی واقعاً نزدیکتر می‌شه) از سمت دیگه چندین هسته‌ی CPU و thread استفاده می‌کنیم تا به صورت موازی پردازش‌ها رو انجام بدیم. اما هرکسی تا حالا کد برای سیستم موازی زده باشه می‌دونه اصلاً راحت نیست و الزاماً استفاده از دو خط موازی به معنی دوبرابر شدن سرعت نیست! بسته به سناریویی که قرار داریم ممکنه ۳۰ تا ۵۰ درصد افزایش سرعت داشته باشیم (بله سرعت دو برابر هم می‌رسیم مگر هیچ sync point ایی لازم نباشه اما خیلی محدوده!) اما در پردازنده‌های مدرن پردازش موازی به هسته یا thread محدود نمی‌شه. بلکه قابلیت SIMD وجود داره که کارش انجام یک عمل ریاضی روی چندین داده به صورت همزمانه. Single Instruction Multiple Data. همین‌طور CPUهای امروزی قابلیت خاصی برای پیش‌بینی شاخه در دستوراتی که اجر میشن دارند. به این صورت که وقت شما از if استفاده می‌کنید. CPU هر دو حالت true و false رو محاسبه می‌کنه و هر وقت شرط مشخص شد جواب شاخه‌ی درست رو بر می‌گردونه! حالا این قضیه در خودش یه سری روش اجرای کد و مشکل امنیتی هم داشته که مورد بحث ما نیست. حالا اگر طوری کد بنویسیم که CPU لازم نباشه مداوم branch بررسی کنه باعث افزایش سرعت پایپلاین‌های پردازشی می‌شیم. (جزییات بیشترش رو در uOps باید صحبت کنیم). حالا اگر تمام موارد بالا رو در نظر بگیریم و می‌تونیم بهینه‌ترین حالت ممکن کد بزنیم. فکر می‌کنید این افزایش سرعت تا چه حده؟ بستگی به سناریوی مساله می‌تونه بین ۱۰ تا ۱۰۰ برابر (حتی بیشتر) سریعتر باشه! اصلاً شوخی نمی‌کنم. اول مقاله نوشتم شرم بر object-oriented programming. این رو برای جلب توجه ننوشتم. در حقیقت این پارادایم برنامه‌نویسی حدود سال‌های ۸۰ میلادی محبوب شد و هنوز ادامه داره اما با پیشرفت تکنولوژی شاهد تغییر پارادایم نبودیم. در ابتدا که فاصله‌ی سرعت CPU و RAM به هم نزدیک بود تفاوت چندانی نمی‌دیدیم و همه چیز با OOP اکی بود. اما به مرور زمان که سخت‌افزار به روز شد نرم‌افزار وابسته به تفکر قدیمی باقی موند. مثلاً در OOP ما یه سری کلاس می‌سازیم و اونا رو encapsulate می‌کنیم و از اونا شی می‌سازیم و روشون پردازش انجام می‌دیم. یه چیزی مثل: struct particle { float x, y; float vx, vy; particle(const float x, const float y, const float vx, const float vy) : x(x), y(y), vx(vx), vy(vy) { } virtual ~particle() = default; virtual void update(const float delta_time) =0; }; یه کلاس خیلی ساده ذرات - particle که مختصات محیط دو بعدی x و y داره و به همین منوال سرعت در اون جهت. یه تابع virtual هم داره برای بقیه که ارث ببرند و ویژگی‌های متفاوت اضافه کنند. تو particle system یا سیستم ذارت که برای جلوه‌های ویژه VFX مثل دود، غبار، آب و غیره استفاده می‌شه ممکنه تا چندین میلیون ذره پردازش بشن (فیلم مومیایی رو یادتونه؟ آفرین همون شن‌ها) حالا من از اون کلاس ارث بردم و این تابع خیلی ساده رو پیاده کردم که فقط در هر فریم سرعت ذره رو حساب می‌کنه: void update(const float delta_time) override { volatile float x = this->x; volatile float y = this->y; x += vx * delta_time; y += vy * delta_time; this->x = x; this->y = y; } این که چرا volatile استفاده کردم به خاطر اینه که این مثال خیلی ساده ست و کامپایلر این تابع رو بهینه می‌کنه در اصل کاری که می‌کنه اجازه‌ی ساختن virtual table رو نمی‌ده و تابع بقیه جاها inline می‌شه. اما تو پروژه‌ی بزرگ با چند لایه ارث‌بری همیشه بهره بردن از بهینه‌سازی کامپایلر ممکن نیست. حالا جلوتر این رو هم بر می‌دارم که دعوایی نباشه. بعد هم کلاس particle system رو داریم که خیلی ساده هر ذره رو آپدیت می‌کنه. فقط توجه داشته باشید هر ذره به صورت یک شی در حافظه new می‌شه. حالا اگر ۱۰۰ میلیون پارتیکل رو یک بار آپدیت کنم حدود ۶۵۳ میلی‌ثانیه طول می‌کشه. بد نیست ها؟ افتضاحه! تو بازی ویدیویی که ۶۰ فریم بر ثانیه اجرا می‌شه ما ۱۶ میلی ثانیه وقت داریم تا چند میلیارد محاصبه رو انجام بدیم. (بدون volatile حدود ۵۳۰ میلی‌ثانیه) برای افزایش باذهی من یه کار خیلی ساده می‌کنم به جای این که تمام این ذرات رو new کنم که باعث می‌شه هر کدوم یه جای RAM به صورت تصادفی پخش بشن اونا رو پشت‌سر هم در یک آرایه قرار می‌دم. یعنی تمام آدرس اونا پشت‌سر هم قرار می‌گیره. فقط همین تغییر باعث می‌شه همین تعداد ۱۱۵ میلی‌ثانیه زمان ببره. حدود ۵ برابر سریعتر! همین تغییر کوچیک! چرا چون زمان پیدا کردن هر آبجکت به صورت پراکنده تبدیل شده به آدرس‌های پشت‌سر هم و CPU سریعتر می‌تونه اطلاعات رو بخونه! به این شکل: struct particles_chunk { std::vector > x; std::vector > y; std::vector > vx; std::vector > vy; } حالا در مرحله‌ی بعدی همون کد ساده رو با دستورات SIMD می‌نویسم. نتیجه‌ می‌شه ۱۱۸ میلی ثانیه: void update_simd(const float delta_time) { const size_t num_particles = particles_.x.size(); const size_t simd_end = num_particles - (num_particles % 8); const __m256 dt_v = _mm256_set1_ps(delta_time); for (size_t i = 0; i (1, std::thread::hardware_concurrency()); const size_t base_chunk_size = num_particles / num_threads; const size_t aligned_chunk_size = ((base_chunk_size + 7) / 8) * 8; std::vector threads; threads.reserve(num_threads); for (size_t t = 0; t (&particles_.x[i + prefetch_distance]), _MM_HINT_T0); _mm_prefetch(reinterpret_cast (&particles_.vx[i + prefetch_distance]), _MM_HINT_T0); _mm_prefetch(reinterpret_cast (&particles_.y[i + prefetch_distance]), _MM_HINT_T0); _mm_prefetch(reinterpret_cast (&particles_.vy[i + prefetch_distance]), _MM_HINT_T0); } _mm256_store_ps(&particles_.x[i], _mm256_fmadd_ps(_mm256_load_ps(&particles_.vx[i]), dt_v, _mm256_load_ps(&particles_.x[i]))); _mm256_store_ps(&particles_.y[i], _mm256_fmadd_ps(_mm256_load_ps(&particles_.vy[i]), dt_v, _mm256_load_ps(&particles_.y[i]))); } تا اینجا من هیچ کار عجیب و غریبی نکردم. حافظه مرتب، پشت‌سر هم و با استفاده از SIMD کد نوشتم. نه ساختمان‌داده مطرحه و نه الگوریتم و بیشتر از ۶ برابر افزایش سرعت رسیدیم! مثال بعدی که branch prediction باشه رو آخر تست یادم اومد و نشد با بقیه مقایسه کنم. اما به هر حال. فقط این مثال ساده رو ببینید: for (size_t i = 0; i < num_particles; ++i) { if (particles_.is_active[i]) { particles_.x[i] += particles_.vx[i] * delta_time; particles_.y[i] += particles_.vy[i] * delta_time; } } کاری که می‌کنیم با if چک کنیم اگر ذره فعاله سرعتش رو حساب کنیم اگر نیست هیچی. این مثال ساده حدود ۱۴۱ میلی ثانیه طول می‌کشه. اگر اون if رو حذف کنم و بیام به جاش در محاسبه غیرفعال بودن رو صفر در نظر بگیرم و جلوی branching رو بگیرم: void update_branchless(const float delta_time) { const size_t num_particles = particles_.x.size(); for (size_t i = 0; i < num_particles; ++i) { particles_.x[i] += particles_.vx[i] * delta_time * particles_.is_active[i]; particles_.y[i] += particles_.vy[i] * delta_time * particles_.is_active[i]; } } با این روش ۱۱۹ میلی ثانیه طول می‌کشه تا کدم اجرا بشه. یعنی با وجود if تقریباُ کد ما ۸۰ درصد اجرا می‌شه. این در شرایطیه که فعال بودن ذرات تصادفیه و cpu نمی‌تونه branch perdiction درستی داشته باشه. برای همین کند می‌شه. حالا شاید بگید که تو گفتی چند میلیون محاسبه زیر ۱۶ میلی‌ثانیه. بله درسته. من اینجا از دو thread استفاده کردم. فقط جنبه‌ی نمایش داشت از warmup و اینا هم اجتناب کردم چون در دنیای واقعی این پردازش‌ها می‌ره روی GPU و Compute shader که معرفی اون خودش یه پست دیگه ست. کدها رو روی CPU قدیمی اجرا کردم: Intel Core i7 6700K @ 4.00GHz Skylake 14nm 16.0GB Dual-Channel DDR4 @ 1069MHz اگر دوست داشتید این محاسبه رو با زبان برنامه‌نویسی مورد علاقه‌تون تست کنید و سعی در بهینه کردنش کنید. در ضمن اگر تمام اینا رو کنار هم بذاریم با یه سری مفاهیم شبیه به همین‌هایی که گفتیم با جزییات بیشتر می‌شه Data oriented programming که در زبان‌های مختلف مثل خانواده‌ی C، Rust، Zig و غیره براشون کتابخونه و آموزش موجوده. خلاصه بازدهی فقط به الگوریتم و ساختمان‌داده محدود نمی‌شه.

Mohamad Iraji

22,055 Aufrufe • vor 1 Jahr