ما در این انبار، گندم میکنیم
گندمِ جمعآمده، گم میکنیم
مینیاندیشیم آخر ما به هوش
کهاین خلل در گندم است از مکرِ موش
موش تا انبار ما حفره زده است
وز فَناش، انبار ما ویران شده است
اول ای جان دفع شرِ موش کن
وانگهان در جمع گندم، جوش کن
#العاقل_تکفیه_الاشاره
گندمِ جمعآمده، گم میکنیم
مینیاندیشیم آخر ما به هوش
کهاین خلل در گندم است از مکرِ موش
موش تا انبار ما حفره زده است
وز فَناش، انبار ما ویران شده است
اول ای جان دفع شرِ موش کن
وانگهان در جمع گندم، جوش کن
#العاقل_تکفیه_الاشاره
❤4🔥2
Null References: The Billion Dollar Mistake
Hoare, Tony:
“I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object-oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years”
Hoare, Tony:
“I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object-oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years”
👍5
تو این بلاگ نشون داده شده که حتی ساخت یک object اضافه در یک سیستم با throughput بالا، میتونه چه تاثیری روی performance سیستم داشته باشه. پیشنهادش هم این هستش که میگه یک short-lived object رو ایجاد و بعد garbage نکنیم، بلکه بیایم همین object رو برای استفاده بعدی clean up کنیم که به نظرم کلا مغایر با clean code و خیلی از best practice ها هستش ولی خب بستگی داره که شما از سیستمتون چه انتظاری دارید و باید طبق اون انتظار تصمیم بگیرید. به قول معروف:
we always talk about tradeoffs
https://blog.vanillajava.blog/2022/09/java-is-very-fast-if-you-dont-create.html
we always talk about tradeoffs
https://blog.vanillajava.blog/2022/09/java-is-very-fast-if-you-dont-create.html
blog.vanillajava.blog
Java is Very Fast, If You Don’t Create Many Objects
You still have to watch how many objects you create. This article looks at a benchmark passing events over TCP/IP at 4 billion events per ...
❤7
👍3
Forwarded from تجربه بودن | محمود مقدّسی
.
◽️سرنوشتِ خشم
خشمِ ابرازنشده یا شنیده نشده، گُم نمیشود؛ جایی برای ابراز شدن یا تخلیه شدنش پیدا میکند، حتی اگر آسیبی بزند، چه به دیگری، چه به خودِ فرد و چه به شور زندگی او.
خشمِ شنیده نشده، گاهی به بهانهای کوچکتر بر سرِ دیگریِ بیربطی تخلیه میشود و این شدّت زیادش هم خودِ فرد را سردرگُم میکند و هم آن دیگری را. "آخر چرا من اینجا اینگونه رفتار کردم؟"، "چرا مراقب پیوندمان نبودم؟"، "چرا دیدم آسیب میزنم امّا نتوانستم جلوی خودم را بگیرم؟". حتماً تجربهاش کردهاید که این تخلیهکردنِ نامتناسب خشم، بیشتر روی عزیزان و نزدیکترین کسانمان صورت میگیرد؛ (آنهایی که کم و بیش مطمئنیم به این راحتی رهایمان نمیکنند)، یا روی آدمها یا موجودات ضعیفتری که زورشان به ما نمیرسد (البته اگر بعد از آن زورِ احساس گناه زمینگیرمان نکند).
خشم شنیدهنشده، گاهی خودِ فرد را نشانه میرود؛ همچون کودکِ کلافهای رها شده در اتاقی پر از چیزهای شکستنی. فرد شروع به تخریب خودش میکند، زیاد می خورد، کارش را رها میکند، به آبروی خودش لطمه میزند، خودش را متّهم میکند، دستاوردهایش را بیارزش میکند و ... . چه کسی رنجیده؟ من. میتوانی خشمت را ابراز کنی؟ نه. پس آنکه رنج میبرد را (خودت را) از میان ببر. اگر تو نبودی یا احساسات و نیازهایت اینگونه نبود نمیرنجیدی. پس خودت را تنبیه کن. تو بدی، تو ناکافی هستی، تو هیچ کس نیستی. ویران شو.
گاهی هم این خشم، شورِ زندگی را نشانه میرود و زندگی را ویران میکند. آخر این زندگی چیست که اینگونه پُر از حالِ بَدَم میکند و روزنی برایم نمیگذارد؟ خستهام از آن. دلم میخواهد ترکَش کنم. دیگر در هیچ کدام از بازیهایش شرکت نمیکنم تا اینگونه کلافه نشوم و از پا نیفتم. زندگی نمیکنم تا به این درد نرسم؛ به دردِ خشمی که از آن به خودم میپیچم و در خودم فرو میریزم.
از اینها پیچیدهتر هم داریم:خشمِ تجربهنشده. آن هم گُم نمیشود. این خشم در لایهای عمیقتر از خشمهای قبلی گیر میافتد و برای ابراز شدنش مسیرِ طولانیتری را زخمی میکند. این خشم من را از من میگیرد.
@TheWorldasISee
◽️سرنوشتِ خشم
خشمِ ابرازنشده یا شنیده نشده، گُم نمیشود؛ جایی برای ابراز شدن یا تخلیه شدنش پیدا میکند، حتی اگر آسیبی بزند، چه به دیگری، چه به خودِ فرد و چه به شور زندگی او.
خشمِ شنیده نشده، گاهی به بهانهای کوچکتر بر سرِ دیگریِ بیربطی تخلیه میشود و این شدّت زیادش هم خودِ فرد را سردرگُم میکند و هم آن دیگری را. "آخر چرا من اینجا اینگونه رفتار کردم؟"، "چرا مراقب پیوندمان نبودم؟"، "چرا دیدم آسیب میزنم امّا نتوانستم جلوی خودم را بگیرم؟". حتماً تجربهاش کردهاید که این تخلیهکردنِ نامتناسب خشم، بیشتر روی عزیزان و نزدیکترین کسانمان صورت میگیرد؛ (آنهایی که کم و بیش مطمئنیم به این راحتی رهایمان نمیکنند)، یا روی آدمها یا موجودات ضعیفتری که زورشان به ما نمیرسد (البته اگر بعد از آن زورِ احساس گناه زمینگیرمان نکند).
خشم شنیدهنشده، گاهی خودِ فرد را نشانه میرود؛ همچون کودکِ کلافهای رها شده در اتاقی پر از چیزهای شکستنی. فرد شروع به تخریب خودش میکند، زیاد می خورد، کارش را رها میکند، به آبروی خودش لطمه میزند، خودش را متّهم میکند، دستاوردهایش را بیارزش میکند و ... . چه کسی رنجیده؟ من. میتوانی خشمت را ابراز کنی؟ نه. پس آنکه رنج میبرد را (خودت را) از میان ببر. اگر تو نبودی یا احساسات و نیازهایت اینگونه نبود نمیرنجیدی. پس خودت را تنبیه کن. تو بدی، تو ناکافی هستی، تو هیچ کس نیستی. ویران شو.
گاهی هم این خشم، شورِ زندگی را نشانه میرود و زندگی را ویران میکند. آخر این زندگی چیست که اینگونه پُر از حالِ بَدَم میکند و روزنی برایم نمیگذارد؟ خستهام از آن. دلم میخواهد ترکَش کنم. دیگر در هیچ کدام از بازیهایش شرکت نمیکنم تا اینگونه کلافه نشوم و از پا نیفتم. زندگی نمیکنم تا به این درد نرسم؛ به دردِ خشمی که از آن به خودم میپیچم و در خودم فرو میریزم.
از اینها پیچیدهتر هم داریم:خشمِ تجربهنشده. آن هم گُم نمیشود. این خشم در لایهای عمیقتر از خشمهای قبلی گیر میافتد و برای ابراز شدنش مسیرِ طولانیتری را زخمی میکند. این خشم من را از من میگیرد.
@TheWorldasISee
👍1
اگر دوست دارید با زبان کاتلین آشنا بشید یا میخوایید برخی مطالب رو عمیق تر یاد بگیرد،
این دو تا سایت بهتون پیشنهاد می کنم.
https://www.kotlinprimer.com/
https://www.slingacademy.com/cat/kotlin/
این دو تا سایت بهتون پیشنهاد می کنم.
https://www.kotlinprimer.com/
https://www.slingacademy.com/cat/kotlin/
The Kotlin Primer
Welcome to the Kotlin Primer! | The Kotlin Primer
The Kotlin Primer is an opinionated guide to the Kotlin language, intended to help people adopt Kotlin inside Java-centric organizations.
❤2🔥1
Forwarded from شهر فلسفه ایران (شهر فلسفه)
🗓 امروز در تاریخ: 382مین سالروز تولد آیزاک نیوتن فیزیکدان و ستارهشناس انگلیسی.
#نیوتن
www.philosophycity.ir
#نیوتن
www.philosophycity.ir
❤1
“We fix it later” is just a polite way of saying, “This will remain broken until the end of time.”
👍6
Forwarded from M.R. Nikfar
ایران_در_بافتار_خاورمیانه_–_تبیین_فشردهی_وضعیت.pdf
343.7 KB
ایران در بافتار خاورمیانه – تبیین فشردهی وضعیت
محمدرضا نیکفر − این یادداشت وضعیت کنونی را بر زمینهی تاریخی آن برمیرسد، در بخشهای پایانی بر موقعیت کنونی و مشکلی که ایران با آن درگیر است، متمرکز میشود و نکاتی دربارهی مشی مرکب چارهجویی و مخالفت سیستمی بیان میکند.
محمدرضا نیکفر − این یادداشت وضعیت کنونی را بر زمینهی تاریخی آن برمیرسد، در بخشهای پایانی بر موقعیت کنونی و مشکلی که ایران با آن درگیر است، متمرکز میشود و نکاتی دربارهی مشی مرکب چارهجویی و مخالفت سیستمی بیان میکند.
👍1
If the architecture of the system and the architecture of the organization are at odds, the architecture of the organization wins.
Ruth Malan
Ruth Malan
👍3
If you find yourself constantly writing code twice, once in code and again as comments, then you should reconsider how effective your programming practices really are.
Hands-On Functional Programming in Rust
Andrew Johnson.
Hands-On Functional Programming in Rust
Andrew Johnson.
🔥1
❤5
Forwarded from Partisan / پارتیزان
This media is not supported in your browser
VIEW IN TELEGRAM
🔷قیمت بالاست!
🔹ویدئویی از مراسم نابودی یک سیلوی مربوط به موشک قارهپیمای SS-19 در اوکراین که در طی آن سناتور آمریکایی سمنان (Sam Nunn) میگوید میلیونها شهروند آمریکایی و میلیونها شهروند اوکراینی و شهروند دیگر اقمار شوروی سابق در جریان استفاده از این موشکها کشته میشدند و اصطلاحا حالا که شما این موشکها را نابود کردید دیگر کشته نمیشوند و خدا به شما خیر دهد.
▪️پینوشت۱: بازی با کلمات سبب میشود تا با اهداف ظاهرا زیبای انساندوستانه حتی توان متعارف کشوری نابود شود و البته شهروندان تنها کشوری که در مقیاس بزرگ کشته شدند نیز از همان کشور، اوکراین، باشد. تلاش جهت نجات جان آمریکاییها برای اوکراین چنین گران فاکتور شد!
▪️پینوشت۲: مجموعا ۱۷۶ سیلوی پرتاب موشکهای قارهپیما در اوکراین وجود داشت که شامل ۴۶ سیلوی پرتاب موشک SS-24 و ۱۳۰ سیلوی پرتاب موشک SS-19 بود که همگی نابود شدند.
#عبرت #جاودان #اوکراین
FND
@Partisan2015
🔹ویدئویی از مراسم نابودی یک سیلوی مربوط به موشک قارهپیمای SS-19 در اوکراین که در طی آن سناتور آمریکایی سمنان (Sam Nunn) میگوید میلیونها شهروند آمریکایی و میلیونها شهروند اوکراینی و شهروند دیگر اقمار شوروی سابق در جریان استفاده از این موشکها کشته میشدند و اصطلاحا حالا که شما این موشکها را نابود کردید دیگر کشته نمیشوند و خدا به شما خیر دهد.
▪️پینوشت۱: بازی با کلمات سبب میشود تا با اهداف ظاهرا زیبای انساندوستانه حتی توان متعارف کشوری نابود شود و البته شهروندان تنها کشوری که در مقیاس بزرگ کشته شدند نیز از همان کشور، اوکراین، باشد. تلاش جهت نجات جان آمریکاییها برای اوکراین چنین گران فاکتور شد!
▪️پینوشت۲: مجموعا ۱۷۶ سیلوی پرتاب موشکهای قارهپیما در اوکراین وجود داشت که شامل ۴۶ سیلوی پرتاب موشک SS-24 و ۱۳۰ سیلوی پرتاب موشک SS-19 بود که همگی نابود شدند.
#عبرت #جاودان #اوکراین
FND
@Partisan2015
❤2
در باب #امید.
امید ناشی از جهل است.
هیچگاه رادیکال ۹ برابر با ۴ نخواهد شد هرچقدر که امیدوار باشیم.
https://www.youtube.com/watch?v=mR5xUUoQbGU
امید ناشی از جهل است.
هیچگاه رادیکال ۹ برابر با ۴ نخواهد شد هرچقدر که امیدوار باشیم.
https://www.youtube.com/watch?v=mR5xUUoQbGU
YouTube
3rd Footprints_Hope in The Dark_Dr.Amirhossein Yazdani
دکتر امیرحسین یزدانی ، روانکاو و فیلسوف از دیدگاه خود در مورد امید می گوید
❤2
Forwarded from عکس نگار
چگونه پیپال با ۸ ماشین مجازی، روزانه ۱.۲ میلیارد تراکنش را پردازش میکند؟🚀
✅ با کاهش ۹۰٪ هزینه نسبت به ۱۰۰۰ ماشین مجازی؟
در این نوشتار به صورت مختصر این معماری فوقالعاده را با هم بررسی میکنیم
1️⃣ پیپال چگونه مسیر خود را پیدا کرد؟
پیپال در سال ۱۹۹۸ بهعنوان یک شرکت امنیتی شروع به کار کرد، اما مدل کسبوکار اولیهاش موفق نبود. پس از یک تغییر استراتژیک (پیوت)، به سرویس پرداخت آنلاین تبدیل شد و نام PayPal را برگزید.
با افزایش سریع کاربران، نیاز به سختافزار قدرتمندتر احساس شد، اما این تنها آغاز چالشهای مقیاسپذیری بود.
2️⃣ رشد نمایی و محدودیتهای سختافزاری
در کمتر از دو سال، پیپال به بیش از ۱ میلیون تراکنش روزانه رسید. اما قانون مور (Moore’s Law) که پیشبینی میکرد هر دو سال تعداد ترانزیستورها دو برابر شود، به کندی گرایید.
افزایش عملکرد پردازندههای سینگلترد متوقف شد، و صرفاً ارتقای سختافزار دیگر پاسخگوی نیاز نبود.
3️⃣ راهحل اولیه: مقیاسپذیری افقی (Horizontal Scaling)
پیپال برای حل این مشکل، سرویسهای خود را روی بیش از ۱۰۰۰ ماشین مجازی اجرا کرد. این کار مشکل را موقتاً حل کرد، اما چالشهای جدیدی به وجود آمد:
🔸 افزایش لتنسی شبکه
🔸 هزینههای زیرساختی بالا
🔸 پیچیدگی مدیریت سیستمها
🔸 مصرف ناکارآمد منابع (CPU کمبار)
4️⃣ راهحل نهایی: مدل اکتور (Actor Model)
پیپال به دنبال سیستمی ساده، مقیاسپذیر و کمهزینه بود. در نهایت، معماری خود را بر پایه مدل اکتور طراحی کرد و به فریمورک Akka (یک ابزار قوی بر پایه JVM و Java) مهاجرت کرد.
🔹 مدل اکتور چیست؟
5️⃣ مزایای مدل اکتور برای پیپال
✅ استفاده بهینه از منابع
اکتورها فقط در لحظه پردازش پیام یک ترد دریافت میکنند. تعداد تردها محدود به تعداد هستههای CPU است، و با Dynamic Thread Pooling هزاران اکتور بهطور همزمان اجرا میشوند.
✅ مدیریت بهینه State
اکتورها ایزوله و بدون حافظه مشترک هستند. هر اکتور یک Mailbox دارد که پیامها را بهصورت FIFO ذخیره میکند.
این معماری نیاز به کشهای توزیعشده یا دیتابیس اضافی را کاهش داده و با ذخیرهسازی محلی، لتنسی را به حداقل میرساند.
✅ کانکارنسی بالا بدون بلاک شدن
هر اکتور پیامهای خود را بهصورت ترتیبی پردازش میکند، اما چندین اکتور میتوانند همزمان و غیرهمزمان اجرا شوند.
این معماری از بلاک شدن پردازشها جلوگیری میکند و با استفاده از برنامهنویسی Functional، ساید افکتها را حذف میکند.
🎯 نتیجه؟
با این تغییر معماری، پیپال توانست با فقط ۸ ماشین مجازی، روزانه ۱.۲ میلیارد تراکنش را پردازش کند، درحالیکه هزینههای زیرساختی را ۹۰٪ کاهش داد!
مرجع :
https://newsletter.systemdesign.one/p/actor-model
آشنایی با مدل اکتور به زبان فارسی :
https://virgool.io/@sadeghhp/-tyizn4ij09v7
✅ با کاهش ۹۰٪ هزینه نسبت به ۱۰۰۰ ماشین مجازی؟
در این نوشتار به صورت مختصر این معماری فوقالعاده را با هم بررسی میکنیم
1️⃣ پیپال چگونه مسیر خود را پیدا کرد؟
پیپال در سال ۱۹۹۸ بهعنوان یک شرکت امنیتی شروع به کار کرد، اما مدل کسبوکار اولیهاش موفق نبود. پس از یک تغییر استراتژیک (پیوت)، به سرویس پرداخت آنلاین تبدیل شد و نام PayPal را برگزید.
با افزایش سریع کاربران، نیاز به سختافزار قدرتمندتر احساس شد، اما این تنها آغاز چالشهای مقیاسپذیری بود.
2️⃣ رشد نمایی و محدودیتهای سختافزاری
در کمتر از دو سال، پیپال به بیش از ۱ میلیون تراکنش روزانه رسید. اما قانون مور (Moore’s Law) که پیشبینی میکرد هر دو سال تعداد ترانزیستورها دو برابر شود، به کندی گرایید.
افزایش عملکرد پردازندههای سینگلترد متوقف شد، و صرفاً ارتقای سختافزار دیگر پاسخگوی نیاز نبود.
3️⃣ راهحل اولیه: مقیاسپذیری افقی (Horizontal Scaling)
پیپال برای حل این مشکل، سرویسهای خود را روی بیش از ۱۰۰۰ ماشین مجازی اجرا کرد. این کار مشکل را موقتاً حل کرد، اما چالشهای جدیدی به وجود آمد:
🔸 افزایش لتنسی شبکه
🔸 هزینههای زیرساختی بالا
🔸 پیچیدگی مدیریت سیستمها
🔸 مصرف ناکارآمد منابع (CPU کمبار)
4️⃣ راهحل نهایی: مدل اکتور (Actor Model)
پیپال به دنبال سیستمی ساده، مقیاسپذیر و کمهزینه بود. در نهایت، معماری خود را بر پایه مدل اکتور طراحی کرد و به فریمورک Akka (یک ابزار قوی بر پایه JVM و Java) مهاجرت کرد.
🔹 مدل اکتور چیست؟
اکتورها واحدهای فوقسبک پردازشی هستند که بهجای استفاده از تردها، از پیامهای غیرقابلتغییر (Immutable Messages) برای ارتباط استفاده میکنند.
این تغییر به پیپال اجازه داد میلیونها اکتور را در سیستم مدیریت کند و به سطح جدیدی از کارایی دست یابد.
5️⃣ مزایای مدل اکتور برای پیپال
✅ استفاده بهینه از منابع
اکتورها فقط در لحظه پردازش پیام یک ترد دریافت میکنند. تعداد تردها محدود به تعداد هستههای CPU است، و با Dynamic Thread Pooling هزاران اکتور بهطور همزمان اجرا میشوند.
✅ مدیریت بهینه State
اکتورها ایزوله و بدون حافظه مشترک هستند. هر اکتور یک Mailbox دارد که پیامها را بهصورت FIFO ذخیره میکند.
این معماری نیاز به کشهای توزیعشده یا دیتابیس اضافی را کاهش داده و با ذخیرهسازی محلی، لتنسی را به حداقل میرساند.
✅ کانکارنسی بالا بدون بلاک شدن
هر اکتور پیامهای خود را بهصورت ترتیبی پردازش میکند، اما چندین اکتور میتوانند همزمان و غیرهمزمان اجرا شوند.
این معماری از بلاک شدن پردازشها جلوگیری میکند و با استفاده از برنامهنویسی Functional، ساید افکتها را حذف میکند.
🎯 نتیجه؟
با این تغییر معماری، پیپال توانست با فقط ۸ ماشین مجازی، روزانه ۱.۲ میلیارد تراکنش را پردازش کند، درحالیکه هزینههای زیرساختی را ۹۰٪ کاهش داد!
مرجع :
https://newsletter.systemdesign.one/p/actor-model
آشنایی با مدل اکتور به زبان فارسی :
https://virgool.io/@sadeghhp/-tyizn4ij09v7
👍4
و خداحافظی اش
آنچنان چلچله سانست که من می خواهم
دائماً باز بگوید که: خداحافظ، اما نرود
رضا براهنی
آنچنان چلچله سانست که من می خواهم
دائماً باز بگوید که: خداحافظ، اما نرود
رضا براهنی
❤7
Shajarian Kouli
Homayoun Shajarian Tahmoures Pournazeri
کولی کنار آتش رقص شبانه ات کو
شادی چرا رمیده آتش چرا فسرده
شادی چرا رمیده آتش چرا فسرده
❤1