Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

وقتی توی یه جا به گربه‌ها غذا می‌دن، همه دور هم جمع می‌شن و محل تجمع گربه‌ها درست می‌شه! اینطوری هم بهداشت شهر به خطر می‌افته، هم مریضی و انگل بینشون پخش می‌شه؛ کافیه یه دونه گربه مریض باشه تا همه‌ی اون گربه‌های دور هم جمع‌شده رو مریض کنه....

51,999 Aufrufe • vor 2 Tagen •via X (Twitter)

0 Kommentare

Keine Kommentare verfügbar

Kommentare vom Original-Post werden hier angezeigt

Ähnliche Videos

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

Mehdi Jahani

17,740 Aufrufe • vor 8 Monaten

قدیما یه تلویزیون (یخچال، ماشین رختشویی، هر جور دستگاهی) می‌خریدی، سی چهل سال کار می‌کرد، آخ نمی‌گفت. این تلویزیون رو اوائل آوریل امسال خریدم. دیروز روشنش کردم، وضعش این بود. مسلماً ضمانت خرید داره ولی آخه چرا دستگاه به این نویی باید چنان خراب بشه که من مجبور بشم دربه‌در بیفتم دنبال گارانتی و پس دادن و نو خریدن و مکافات؟ دم اون مأمور شرکت حمل و نقل گرم که وقتی خواستم جعبه‌اش رو هم بدم ببره، گفت نگه دارین. اومدیم و پس‌فردا خراب شد. اون وقت آمازون ازتون بسته‌بندی اصلش رو می‌خواد و اون وقت خر بیار و باقالی بار کن. من هم گفتم جهنم، این همه آت آشغال تو انباریه، اینم روش. امشب چنان آکبند بسته‌بندیش کردم که با موقع ارسالش مو نمی‌زنه. حتی پیچ‌های پایه‌هاش رو هم گذاشتم توی یه پاکت فسقلی پلاستیکی و چسبوندم به همون فرورفتگی مخصوصش تو یونولیت داخل کارتون. فردا میان می‌برنش‌ و یکی دیگه باید سفارش بدم. فقط نمی‌دونم اصلاً تلویزیون لازم دارم یا نه. من مال اون نسلی هستم که با دستگاه تلویزیون توی پذیرایی بزرگ شده و بهش به عنوان یکی از وسایل اصلی خونه خو گرفته. به ندرت روشنش می‌کنم ولی نبودنش هم یه جوری عجیبه.

Atosa

13,459 Aufrufe • vor 14 Tagen

به این باقر خرازی الاغ که برادر خانم مسعود خامنه ای و به قول خودش یارغار رهبر فعلی هست چه باید گفت؟ هی میخوام هتاکی نکنم به این صیغه زاده ها ولی دلم آشوبه! چهار ساله تو سوئدم و شهر گرون استکهلم! اجاره خونم ثابته! یک یورو هم بالا نرفته ( معادل ده کرون) با حقوق یک روزم میتونم دوتا کفش با برند خوب بخرم چیزی که الان آرزوی هشتاد درصد مردم ایرانه! هر خوردنی دلم بخواد میتونم بخرم بدون توجه به قیمتش! ولی هشتاد درصد مردم ایران دیگه میوه هم نمیتونن بخرن! نگرانی نسبت به آینده ندارم حتی اگه بیکار یا مریض شم! ولی مردم ایران پول خرید داروی سرطان که هیچ٫ پول خرید داروی ساده دیابت رو هم ندارن! این یعنی حکمرانی حرومزاده های دوریالی! تو مملکتی که هیچ منابعی نداره جز چوب! مملکتی که امکان کشاورزی هم نداره! مملکتی که فقط کتابخونه داره و یه سیستم سیاسی دلسوز و مردم زحمتکش! نه اینکه حکامش به خاطر بمب اتم تو صدها متر زیرزمین قایم شن و مردم رو زیر موشک و فشار ابرتورم به مقاومت در برابر آمریکا دعوت کنن! تمام فحش های عالم نثار مرده و زنده شما …

🇸🇪 یه نوید آبی دل 🇮🇷

26,488 Aufrufe • vor 22 Tagen

⚠️ چرا غذارسانی به سگ‌های ولگرد درست نیست؟ مقصود، غذارسانی به‌صورت سازمان‌یافته، منظم و در محل‌های مشخص در شرایطی است که هیچ پروتکل بهداشتی مانند غربالگری، جمع‌آوری پسماند غذا و فضولات، واکسیناسیون و عقیم‌سازی صورت نمی‌گیرد. غذارسانی سازمان‌یافته باعث تجمع و ایجاد کانون‌های مولد سگ ولگرد می‌شود؛ علاوه بر تهدید بهداشت عمومی، ریسک انتقال بیماری و انگل‌ها افزایش یافته و یک سگ بیمار می‌تواند به کل سگ‌های کانون بیماری را انتقال دهد. در کانون‌های پرجمعیت احتمال جفتگیری و تولیدمثل هم افزایش می‌یابد. باتضمین غذا، سگ‌های ضعیف هم شانس انتقال ژن به نسل بعد را پیدا می‌کنند. با افزایش جمعیت، رقابت شکل گرفته و سگ‌های غالب و قویتر، سگ‌های مغلوب را بیرون می‌کنند. سگ‌های رانده‌شده در صورت نزدیکی به حومه‌ی شهر، به طبیعت سرریز شده و لطمات جبران‌ناپذیری در پی دارند. این تصور که سگ‌های ولگرد داخل شهر خطری برای حیات‌وحش نیستند صحیح نیست، چرا که همواره باجابجایی و تزریق جمعیت از داخل به خارج شهر، به‌ویژه درحاشیه شهرهای بزرگ و شهرهای کوچک روبروهستیم. یادآور می‌شود ورهاسازی هرگونه حیوان اهلی (مثل سگ و گربه) به طبیعت، سلامت و بقای حیات‌وحش بومی را تهدید می‌کند. بنابر اکثر دستوالعمل‌های قابل اعتنا، سگ‌های ولگرد باید زنده‌گیری شوند. غربال‌گری صورت گرفته، سگ‌های بیمار در صورت امکان درمان یا یوتانایز و به‌عنوان زباله عفونی دفن شوند. سگ‌های سالم، عقیم و در پناهگاه قرنطینه شده، تحت سرپرستی قرار گرفته یا با آگهی به داوطلبین واگذار شوند. راه حل و اقدامات جایگزین برای آنهایی که دغدغه سگ‌های ولگرد دارند: 🔸️کمک به تامین هزینه پناهگاههای مجاز بجای هزینه برای غذارسانی؛ 🔸️انجام فعالیت داوطلبانه رایگان در پناهگاه مجاز؛ 🔸️پذیرش سرپرستی سگ ولگرد و بی‌خانمان؛ 🔸️تلاش در فرهنگسازی برای اداپت سگ پناهگاه بجای خرید سگ. یادداشتی از مهدی نبیان، پژوهشگر حیات‌وحش

فلات ایران

1,039,110 Aufrufe • vor 1 Jahr

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

Ali Bornaei

150,368 Aufrufe • vor 6 Monaten

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

Yaar - يار ‌‌قدیمی 🇮🇷🇮🇱

77,627 Aufrufe • vor 1 Jahr

شرم بر 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

پنج شنبه بعد ازظهر #تهران پنجشنبه است، آخرین روز سال. سالی که برای ما خیلی سخت و طولانی گذشت. سالی که جنگ دیدیم، داغ دیدیم، هزاران هموطن و جوان به خاک سپردیم و دوباره #جنگ دیدیم. رفتم تجریش. راستش تجریش سال‌هاست منو رها نمی‌کنه. هر وقت دلتنگ می‌شم، هر وقت می‌ترسم، هر وقت هیجان دارم یا وقتی دنبال چیزی می‌گردم که می‌دونم جای دیگه پیدا نمی‌شه، میرم تجریش. #تجریش همیشه شور زندگی داشت، اما امروز یک چیزی کم بود.. نه اینکه نباشه، نه… فقط مثل قبل نبود. پاساژ قائم با اون همه نور و طلا و زرق و برقش ساکت‌تر از همیشه بود. طلافروشی‌ها بیشترشون بسته، دو طبقه طلا تقریباً خاموش. مغازه‌ها خلوت، فروشنده‌ها نشسته و منتظر، با نگاه‌هایی که معلوم نبود پر امیدند یا خستگی یا یاس و انتظار اما بیرون، دستفروش‌ها هنوز نفس می‌کشیدند،و همانها نوروز را زنده نگه داشته بودند. گل‌ها همه جا بودند، سبزه، سنبل، ماهی قرمز، شب بو و بیدمشک.. نوروز پخش شده بود در خیابان. عطر شب‌بو در هوا پیچیده بود، همان بویی که همیشه قبل از سال نو می‌آید و دل آدم را آرام می‌کند. کف خیابان مثل همیشه خیس بود، برگ‌های خیس گل ها زیر پا له می‌شدند و اگر حواست نبود، یک لحظه می‌لغزیدی. مثل همیشه… خیسی زمین بخشی از تجریش همیشه زنذه است.. محدوده پر از نیروهای امنیتی بود. امامزاده صالح همان‌جا، سر جایش بود. مردم می‌آمدند و می‌رفتند، نذری‌فروش‌ها، نمک‌فروش‌ها، آن‌هایی که صدا می‌زدند «بیا چایی بخر»، همه بودند، انگار یک تکه از زمان آنجا هیچ‌وقت تغییر نمی‌کند. کنار ورودی، تره‌بار کوچک پر از ماهی‌ و بوی گندش بود و سبزی پلویی که بوی عید می‌داد. میوه‌فروشی‌ها مثل همیشه برق می‌زدند، ترشی‌فروش‌ها سر جایشان بودند، مردم ایستاده بودند، باقالی می‌خریدند، سیر می‌خریدند، همه جا بوی سیر می‌آمد و عجیب اینکه امروز این بو آزارم نمی‌داد، شاید چون همه چیز بوی عید می‌داد، حتی غم‌های این مردم شریف که همیشه برای زندگی شرافتمندانه جنگیده‌اند با هر قدمی که برمی‌داشتم، خاطره‌ها از جلوی چشمم رد می‌شدند. سال‌های نو، خنده‌ها، شلوغی‌ها، خریدها، هیجان‌ها، همه مثل فیلمی که روی دور تند جلو می‌رود. رسیدم به آب‌انار‌فروشی، همان که با دستگاه قدیمی و همیشه کمی کثیفش آب‌نار خنک درست می‌کند. ترش، خوشمزه، پر از حس زندگی. یک جرعه که می‌خوری، می‌فهمی هنوز زندگی هست. از کنار آدم‌ها رد می‌شدم، چشم در چشم می‌شدیم و لبخندهای کوتاه، خسته اما واقعی رد و بدل می‌شد. یک جور همدلی خاموش بین همه بود، انگار همه می‌دانستند سال سختی گذشت اما امید هنوز ایستاده‌ هرچند زخمی و بیمار تجریش امروز همزمان هم زنده بود و هم خسته، هم پر از نوروز و هم پر از ترس، هم امید داشت و هم داغ. و من میان این همه حس متضاد فقط راه می‌رفتم و فکر می‌کردم چقدر عجیب است که آدم می‌تواند همزمان هم دلش بخواهد سال نو شروع شود و هم از آن بترسد. هم دلش کنج امن خانه اش را بخواهد هم هیاهوی خیابان هم امیدوار باشد و هم بترسد… چه سالی را زندگی‌ کردیم..

Golshan

31,832 Aufrufe • vor 5 Monaten

قصه هفت اکتبر تا هفت اکتبر! بالاخره بعد از دو سال مقاومت؛ مردم غزه رنگ شادی رو دیدن. این شاید پیروزی مردم غزه نباشه اما قطعاً شکست اسرائیله دو سال پیش، هم وزیرخارجه و هم وزیر جنگ و بقیه مسئولین اسرائیل صراحتاً گفتن حتی آتش‌بسی هم در کار نخواهد بود! و سه هدف مهم پیش رو دارن: ۱- نابودی کامل حماس ۲- کوچ اجباری مردم غزه ۳- و آزادی بی‌قید و شرط همه اسرای اسرائیل اما قصه اینطور رقم نخورد؛ مقاومت جواب داد و اهداف اسرائیل یکی یکی با شکست مواجه شدن و نه تنها حماس نابود نشد بلکه عضوگیری کرد و مردم غزه تو سرزمین‌شون موندن و اسرای اسرائیل هم طی چندین مرحله در ازای آزادی هزاران زندانی فلسطینی و امتیازهای دیگه، آزاد شدن. و اسرائیل طی چندین مرحله مجبور به مذاکره و توافق با حماس شدن؛ در مقابل، اسرائیل چی بدست آورد؟ ۱- قتل‌عام ۶۰ هزار زن و بچه؛ ۲- تخریب مناطق مسکونی؛ ۳- کمبود بودجه چند ده میلیارد دلاری؛ ۴- تنفر؛ ۵- انزوا؛ ۶- و انزجار جهانی! البته وحوش نادانی هم وجود دارن که قتل‌عام زن و بچه رو پیروزی توصیف کنن که اخیرا فاش شد یا لشکر رباتیک هستن و یا مزدورهای ۷ هزار دلاری! * حالا چه اتفاقی افتاد؟ و چه اتفاقاتی پیش‌رو دارن؟ طبق توافق جدید: +یک: فعلاً یک تضمین توقف جنگ از طرف همه کشورهای میانجی داده شده +دو: ۲۰ اسیر زنده اسرائیلی در مقابل ۲۰۰۰ اسیر فلسطینی، از جمله ۲۵۰ حبس ابد؛ آزاد میشن +سه: روزانه حدود ۴۰۰ کامیون از ۵ گذرگاه کالا وارد غزه می‌کنن؛ البته با این تفاوت مهم که مدیریتش با سازمان ملل و حماس بصورت مشترکه و دیگه خبری از شرکت‌های پلید آمریکایی که عامل قحطی بودن، نیست! +چهار: و مهم‌ترینش تخلیه ارتش از اکثریت مناطق غزه‌ست نکته اول: به مورد اول توافق که قطعاً اعتمادی نخواهد بود و اصرار ترامپ بر این ماجرا ، نه از روی دلسوزی برای غزه یا اسرای اسرائیل ؛ بلکه صرفاً برای رسیدن به جایزه صلح نوبل هست! نکته دوم: سلاح حماس چی میشه؟ عملاً خلع سلاح حماس بی‌معنی خواهد شد چون هر شخص و هر خانواده در غزه تبدیل به عضوی از حماس شدن و تفکر و سلاح حماس ریشه در مردم غزه پیدا کرده. و این یک شعار نیست ، حقیقته! نکته سوم: طبق تجربه؛ این آتش‌بس و توافق قطعا نقض خواهد شد و حماس و مردم غزه هم اینو می‌دونن؛ اما... اما اولاً ما در شرایط سخت اونها نیستیم که قضاوتشون کنیم! حتی همین چند امتیاز نیم‌بند هم می‌تونه تنفسی تازه و مهم برای غزه باشه. ثانیاً مگر بالاتر از سیاهی هم رنگی هست؟ اسرائیل توی این ۲ سال چه جنایتی مونده که انجام نداده باشه؟ بمباران؟ ترور؟ قحطی؟ آتش‌سوزی؟ قتل‌عام؟ حمله به مدرسه و بیمارستان و چادر آواره‌ها؟.... عملاً چیزی جز حمله اتمی نمونده که برای منطقه‌ای مثل غزه ممکن نیست! حرف آخر: مقاومت برای فلسطین هزینه بسیار سنگینی داشت، اما امثال شهید سنوار جلوی یک اتفاق به مراتب بدتر رو گرفتن و اون هم تبدیل شدن به کرانه باختری و قتل‌عام تدریجی و ذره ذره حذف شدن بود نقشه کرانه باختری طی ۲۰ سال اخیر رو ببینید! کاملا بی‌سر و صدا و بدون اینکه جهان حساس بشه اول زندانی و بعد به مرور حذف شدن! اما غزه ایستاد و فلسطین رو به مسئله اول مردم و دولت‌های جهان تبدیل کرد و چهره واقعی اسرائیل رو به دنیا نشون داد.. بله! مقاومت هزینه داشت؛ اما نه به اندازه هزینه وحشتناک تسلیم شدن!

آدم

19,080 Aufrufe • vor 10 Monaten

عزیزان، بخش آخر مصاحبه‌ی ترامپ [ش گ خ]:😰 خبرنگار: چرا برای مراسم امضای این توافق صلح با روافض قحبه نمی‌مونی؟ ترامپ [ش گ خ]: شاید موندم. [با این جمله‌ش گوشت تن شغال طرقبه آب شد] خبرنگار: شاید؟ ترامپ ترامپ [ش گ خ]: آره، شاید. ولی خب، راستش عزیزجان این یه تفاهم‌نامه‌ست. خیلی هم چیز مهمیه، ولی خب ممکنه از اون‌جور سندهایی نباشه که منِ رئیس‌جمهور باید پاش رو امضا کنم. خبرنگار: آیا این قضیه یه جورایی این‌طوری نیست که شما معاون اول منزوی‌به‌کون رو می‌فرستید، بعد اگه کارا خوب پیش بره که عالیه و شما بابت فرستادنش مثل یه نابغه به نظر می‌رسید، اما اگه کارا خراب شه، تقصیر معاون قرمساقه؟ ترامپ ترامپ [ش گ خ]: از این ایده خوشم اومد، آره حتماً چرا که نه؟ این‌طوری اگه کارا درست پیش بره، افتخارش رو من به نام خودم می‌زنم. اگر هم خراب شه، میندازم گردن جی‌دی منزوی‌به‌کون. جی‌دی بهتره حواست رو جمع کنی. [با خنده] جی‌دی منزوی‌به‌کون همین الان هواپیماشو دور می‌زنه و از اینجا فرار می‌کنه. ، آره، از این ایده خوشم میاد. به نظرم ایده‌ی خوبیه. خیلی ممنون از همگی.

Siavash

41,760 Aufrufe • vor 2 Monaten