Loading video...

Video Failed to Load

Go Home

نمی دونم چطور بگم ! اما اگر مار هم بودم! یه همچین ماری میشدم 🐍

222,627 views • 1 year ago •via X (Twitter)

0 Comments

No comments available

Comments from the original post will appear here

Related Videos

آتش شاکرمی(خاله نیکا) با بازنشر این ویدئو در استوری اینستاگرامی‌اش، ضمن تایید این که دختر حاضر در تصویر نیکا شاکرمی است،نوشته: یه بسته کش موی ساده براش خریده بودم که این جزو آخریناش بود که استفاده کرد. اون بلوز سیاه شل رو هم با هم رفتیم خریدیم و بنظرش راحت ترین لباس بود...... اون شال رو هم با هم خریدیم پهن بود براش نصفش کردم و دوباره دور دوزیش کردم.... هنوز اون یکی نیمه این شال رو دارم... قرار بود اون که کهنه شد این نیمه رو استفاده کنه..... نصف وردم چون براش این شال اجباری هرچی سبکتر و کوچیکتر میبود بهتر بود....... وقتی داشت میرفت خط چشمش رو کشید، ماسک سیاهش رو گذاشت و سبکترین و راحت ترین لباساشو پوشید.... و من نمیدونستم واسه چی اینقد سبک پوشید....... و اون لباسها رو دیگه هیچوقت به ما تحویل ندادن......تیکای پر از شور زندگی..... شجاع دل بادپا رفت..... با اون کوله کوچیک و قمقمه و حوله کوچیکش اون کفشای سفید سبکش رو هم توی یه حراج خریده بود. اگر احتیاج به وکیل دارید با مشاوران حقوقی دادبان تماس بگیرید تماس مستقیم با وکیل در واتس‌اپ: +905510332575 #دادبان #مهسا_امینی #نیکا_شاکرمی

دادبان

107,967 views • 3 years ago

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

Siavash

41,760 views • 2 months ago

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

Zarmina Paryani

83,855 views • 2 years ago

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

Zarmina Paryani

108,194 views • 2 years ago

شرم بر 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 views • 1 year ago

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

Mehdi Jahani

17,740 views • 8 months ago

دوست داشتم این روزها بیشتر از احوال خودمان زیر موشک بنویسم. از همه بیشتر بخاطر اینکه نیروهای زیادی فعالانه تلاش می‌کنند که از ما انسانیت‌زدایی کنند. که چهره و صدا و نام‌های ما را پاک کنند. که بگویند ما «هزینه لازم برای جراحی عمیق هستیم». که جنگ‌زدگی ما اگر چه ناراحت‌کننده اما لازم و ضروری است برای آینده‌ای که قرار است برایمان بیاورند. می‌خواستم بیشتر بنویسم و بگویم که ما کسی هستیم و در این شهر نفس می‌کشیم و خانه و زندگی و کار و آینده ما هم مهم است. اما نشد. نشد چون مسدودسازی اینترنت به حدی محکم است که دیگر هیچ جوره نمی‌شود با روش‌های پیشین دورش زد. گاهی شاید بشود، به قدر یک پنجره فرصت محدود. حیرت‌آور است که چطور حاکمیت حتی در این شرایط هم می‌تواند فعالانه و احمقانه بر سیاست‌های اشتباه خود پافشاری کند. «هیچ» داده‌ای وجود ندارد که نشان دهد مسدود کردن اینترنت تاثیری در امنیت دارد و هزاران شاهد داریم که محدودسازی اینترنت چقدر آدم‌ها را ناراضی و عصبانی و گرفتار می‌کند. اما دریغ. جدا و عمیقأ. فردا نوروز است. یادم می‌آید سال پیش همین موقع‌ها چقدر امیدواری و خوش‌بینی در فضا شناور بود و چقدر تضادِ بینِ امروز و آن روز، رادیکال و غیرقابل‌باور است. حالا، نسبت به سال آینده هیچ خوش‌بین نیستم. ۱۴۰۴ یادمان داد آرزوهایمان را کوتاه کنیم. ما آدم‌های غربِ آسیا را اصلا چه به رویابافی؟ ما همین که سوخت ماشین جنگ‌افروزی استعمار و ابژه سرکوب استبداد باشیم کافی‌مان است. ما باید به زنده‌ماندن و حداقل‌ها امیدوار باشیم نهایتش. تخیل‌مان را کنترل کنیم. سرمان را پایین بیاندازیم. رویا نبینیم. رویا نداشته باشیم. همین.

Hossein Hamdieh | حسین حمدیه

12,152 views • 5 months ago