Forwarded from Md Daily (Mahan)
چطوری System Design رو یاد بگیریم قسمت ۲ از ۲
قسمت اول
خب خب بریم برای برای ادامهی مسیر: از طراحی روی کاغذ تا آموزش دادن به بقیه
4️⃣ شروع کن به رسم، حتی اگه روی کاغذ باشه!
یه چیزی که خیلی کمک کنندس: رسم کردن (Drawing) هستش.
ما آرتیست نیستیم. ولی وقتی فلو کار رو از
دیتایبیس → اپ های سرور → لود بالانسر ها → کلانیت
رسم میکنیم تازه دیدمون باز میشه.
وقتی رسم میکنیم:
✔️ فلو درخواست واقعی به نظر میرسه.
✔️ میبینیم که Bottlenecks کجاها ممکنه اتفاق بیفته.
✔️ میفهمیم که کش (Cache) رو کجا بذاریم یا کِی از صف (Queue) استفاده کنیم.
هرجا گیر میکنم فقط یه قلم و کاغذ برمیدارم و شروع میکنم به رسم تا دیدم باز تر بشه و اون افکار پراکندم مرتب بشه. پیشنهاد میکنم نوشتن با ماژیک رو شیشه رو هم امتحان کنید، خیلی جوابه :)
5️⃣ با حل کردن مسئلههای واقعی تمرین کنید
وقتی توی اصول اولیه مطمئن شدید، دست از تماشا کردن بردارید و رسم کردن رو شروع کنید.
این روش تمرینی میتونه کمکتون کنه:
✔️ یه سیستم واقعی انتخاب کنید: واتساپ، یوتیوب، اسنپفود، اینستاگرام.
✔️ اول نیازمندیهای عملکردی (Functional Requirements) رو بنویسید (سیستم باید چیکار کنه).
✔️ بعد نیازمندیهای غیرعملکردی (Non-functional Requirements) رو اضافه کنید (مقیاسپذیری، دسترسپذیری، تأخیر).
✔️ یه تخمین اولیه بزنید (تعداد کاربر، QPS، حجم DB).
✔️ یه معماری سطح بالا (High-level Architecture) طراحی کنید.
🚀 حالا وقت عمیق تر شدن رسیده:
✔️ DB schema
✔️ APIs
✔️ Scaling strategies
✔️ Handling failures (مدیریت خطا ها)
✔️ Edge Cases (حالت های خاص)
با رسم هفته ای یه طرح شروع کنید و نه فقط یک راهحل، بلکه چندین احتمال مختلف.
چون توی مصاحبهها و کارهای واقعی، به ندرت یه جواب کامل وجود داره. مهم اینه که بتونی توجیه کنی چرا X رو به Y ترجیح دادی.
6️⃣ وقت واقعی کردن رسیده
🔴 تئوری تا وقتی پیاده نشه، بیفایدهست.
بذارید از تجربه خودم بگم. تویه شرکت داشتیم رو یه سیستمی کار میکردیم که به صورت میکروسرویس پیاده شده بود با Go و برای ارتباط داخلی سرویس ها از GRPC استفاده کرده بودیم. اوایل برای سرویس آنالیتیکس از MongoDB استفاده کرده بودیم. اما با زیاد شدن حجم داده ها و کوئری ها (رکورد ها به قدری زیاد بودن که حجم دیسک دیتابیس شده بود 15 گیگ) سیستم شروع کرد به کند شدن. یه راهکار ها این بود که بیایم چنتا نود مختلف بیاریم بالا ولی پیچیدگی ایش زیاد بود، پس شروع کردیم به R&D کردن دیتابیس هایی که به نظر برای این کار مناسب بودن. بعد از تست های اولیه و گرفتن بنچمارک متوجه شدیم که clickhouse میتونه توی مورد ما این بخش از پروژه رو نجات بده. تیم بکند دور هم جمع شدیم و فقط یه ماژیک برداشتیم و ساعت ها روی شیشه سیستم دیزاین های مختلفیو رسم و بررسی کردیم و دیدمون باز شد و در نهایت طرح نهایی. حالا که همه چیز حداقل روی کاغذ اماده بود و کار میکرد باید مهاجرت رو شروع و سیستم جدید رو پیاده میکردیم. در نهایت با یه بررسی درست، بررسی سیستم دیزاین های مختلف و داشتن دید کلی و جزئی از سیستم ، به جایی رسیدیم که میلیون ها داده رو بدون مشکل آنالیز کردیم و نزدیک Real time خروجی نشون میدیم. بعد آروم آروم رفتیم جلو و چیز های دیگه هم مثل RabbitMQ اضافه کردیم. اره الان پروژه بزرگ شده ولی این پروژه ی بزرگ حاصل قدم های کوچیکی بود که برداشتیم ولی نکتش اینکه اگه میخواستیم به آخرش فکر کنیم که همچین چیز بزرگی چطوری قراره ساخته بشه هیچ وقت شروع نمیشد :)
7️⃣ شروع کنید به یاد دادن به بقیه
این آخرین مرحله هست.
وقتی یه چیزی رو توضیح میدی، چه به یه جونیور، یه کارآموز، یا توی یه بلاگ، شکافهای دانش خودت رو پیدا میکنی.
هر بار که یه چیزی رو توضیح میدم اینو میفهمم که:
درنهایت طراحی سیستم شعبدهبازی نیست.
فقط کافیه:
✔️ از اصول اولیه شروع کنید.
✔️ به موارد استفادهی دنیای واقعی فکر کنید.
✔️ یه ساختار برای خودتون بسازید.
✔️ هفتهای تمرین کنید.
✔️ پشت هر انتخابتون بپرسید «چرا»؟
✔️ و آرومآروم بهتر بشید.
حتی اگه روزی ۳۰ دقیقه هم وقت بذارید، بعد از ۳ ماه تفاوت رو میبینید.
حرف آخر: قضیه جوابها نیست، قضیه رویکرده!
توی طراحی سیستم، اغلب احساس عدم اطمینان خواهید کرد. این طبیعیه.
چیزی که مهمه اینه که چطور به یک مسئله نزدیک میشید.
وقتی توضیح میدی مقیاس چقدره یا اگه این سرویس از کار بیفته چی میشه؟ اینه که شما رو به یه مهندس قوی تبدیل میکنه. نه تعداد دیاگرامهایی که حفظ کردید.
با «یک URL چطور کار میکنه؟» شروع کنید و به طراحی اینستاگرام ختم کنید.
تعجب خواهید کرد که قدم به قدم، چقدر پیش رفتید.
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
قسمت اول
خب خب بریم برای برای ادامهی مسیر: از طراحی روی کاغذ تا آموزش دادن به بقیه
یه چیزی که خیلی کمک کنندس: رسم کردن (Drawing) هستش.
ما آرتیست نیستیم. ولی وقتی فلو کار رو از
دیتایبیس → اپ های سرور → لود بالانسر ها → کلانیت
رسم میکنیم تازه دیدمون باز میشه.
وقتی رسم میکنیم:
هرجا گیر میکنم فقط یه قلم و کاغذ برمیدارم و شروع میکنم به رسم تا دیدم باز تر بشه و اون افکار پراکندم مرتب بشه. پیشنهاد میکنم نوشتن با ماژیک رو شیشه رو هم امتحان کنید، خیلی جوابه :)
وقتی توی اصول اولیه مطمئن شدید، دست از تماشا کردن بردارید و رسم کردن رو شروع کنید.
این روش تمرینی میتونه کمکتون کنه:
با رسم هفته ای یه طرح شروع کنید و نه فقط یک راهحل، بلکه چندین احتمال مختلف.
چون توی مصاحبهها و کارهای واقعی، به ندرت یه جواب کامل وجود داره. مهم اینه که بتونی توجیه کنی چرا X رو به Y ترجیح دادی.
بذارید از تجربه خودم بگم. تویه شرکت داشتیم رو یه سیستمی کار میکردیم که به صورت میکروسرویس پیاده شده بود با Go و برای ارتباط داخلی سرویس ها از GRPC استفاده کرده بودیم. اوایل برای سرویس آنالیتیکس از MongoDB استفاده کرده بودیم. اما با زیاد شدن حجم داده ها و کوئری ها (رکورد ها به قدری زیاد بودن که حجم دیسک دیتابیس شده بود 15 گیگ) سیستم شروع کرد به کند شدن. یه راهکار ها این بود که بیایم چنتا نود مختلف بیاریم بالا ولی پیچیدگی ایش زیاد بود، پس شروع کردیم به R&D کردن دیتابیس هایی که به نظر برای این کار مناسب بودن. بعد از تست های اولیه و گرفتن بنچمارک متوجه شدیم که clickhouse میتونه توی مورد ما این بخش از پروژه رو نجات بده. تیم بکند دور هم جمع شدیم و فقط یه ماژیک برداشتیم و ساعت ها روی شیشه سیستم دیزاین های مختلفیو رسم و بررسی کردیم و دیدمون باز شد و در نهایت طرح نهایی. حالا که همه چیز حداقل روی کاغذ اماده بود و کار میکرد باید مهاجرت رو شروع و سیستم جدید رو پیاده میکردیم. در نهایت با یه بررسی درست، بررسی سیستم دیزاین های مختلف و داشتن دید کلی و جزئی از سیستم ، به جایی رسیدیم که میلیون ها داده رو بدون مشکل آنالیز کردیم و نزدیک Real time خروجی نشون میدیم. بعد آروم آروم رفتیم جلو و چیز های دیگه هم مثل RabbitMQ اضافه کردیم. اره الان پروژه بزرگ شده ولی این پروژه ی بزرگ حاصل قدم های کوچیکی بود که برداشتیم ولی نکتش اینکه اگه میخواستیم به آخرش فکر کنیم که همچین چیز بزرگی چطوری قراره ساخته بشه هیچ وقت شروع نمیشد :)
این آخرین مرحله هست.
وقتی یه چیزی رو توضیح میدی، چه به یه جونیور، یه کارآموز، یا توی یه بلاگ، شکافهای دانش خودت رو پیدا میکنی.
هر بار که یه چیزی رو توضیح میدم اینو میفهمم که:
اگه بتونم خیلی ساده اون رو درس بدم، پس واقعاً خوب فهمیدمش.
درنهایت طراحی سیستم شعبدهبازی نیست.
فقط کافیه:
حتی اگه روزی ۳۰ دقیقه هم وقت بذارید، بعد از ۳ ماه تفاوت رو میبینید.
حرف آخر: قضیه جوابها نیست، قضیه رویکرده!
توی طراحی سیستم، اغلب احساس عدم اطمینان خواهید کرد. این طبیعیه.
چیزی که مهمه اینه که چطور به یک مسئله نزدیک میشید.
وقتی توضیح میدی مقیاس چقدره یا اگه این سرویس از کار بیفته چی میشه؟ اینه که شما رو به یه مهندس قوی تبدیل میکنه. نه تعداد دیاگرامهایی که حفظ کردید.
با «یک URL چطور کار میکنه؟» شروع کنید و به طراحی اینستاگرام ختم کنید.
تعجب خواهید کرد که قدم به قدم، چقدر پیش رفتید.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Md Daily (Mahan)
قبلا توی کانال چنتا پست راجب سیستم دیزاین نوشته بودم که اینجا لینک هاشون رو براتون میذارم :
🔗 چطوری پیپل با استفاده از فقط 8 ماشین مجازی به یک میلیارد تراکنش روزانه رسید
🔗 چطوری اوبر با ۱ میلیون درخواست در ثانیه رانندگان نزدیک رو پیدا می کنه؟
🔗 سوال مصاحبه System Design: طراحی کوتاه کننده URL
🔗 به طور کلی System Design چیه؟
🔗 چطوری پیپل با استفاده از فقط 8 ماشین مجازی به یک میلیارد تراکنش روزانه رسید
🔗 چطوری اوبر با ۱ میلیون درخواست در ثانیه رانندگان نزدیک رو پیدا می کنه؟
🔗 سوال مصاحبه System Design: طراحی کوتاه کننده URL
🔗 به طور کلی System Design چیه؟
Forwarded from Geek Alerts
اثر تتریس به زمانی گفته میشه که شما وقت، تمرکز و تلاش زیادی رو صرف انجام فعالیتی کرده باشید و این اتفاق باعث تغییر در افکار، رویاها و تجربههای دیگه شما بشه.
اسمش از بازی معروف تتریس گرفته شده که شما با چیدن بلوکهای رنگی، اونها رو حذف میکنید. ممکنه بعد از اینکه وقت زیادی رو صرف این بازی کردید، خودتون رو تو حالتی ببینید که دارید الگوهای مشابه بازی رو توی بقیهی فعالیتهاتون پیدا میکنید.
همچنین دیدن تصاویر رنگی از شکلهایی که دارن روی همدیگه فرود میان، موقع خوابیدن یکی از فرمهای توهمات هیپاگوژنیا بهحساب میاد. برای بعضی افراد، این کشش به کنار هم قرار دادن اشکال، شدیداً اعتیادآوره و تو طول روز ممکنه اون رو با چیزهایی مثل ساختمونها تکرار کنن. [L]
🤓 abolfazl @geekalerts
اسمش از بازی معروف تتریس گرفته شده که شما با چیدن بلوکهای رنگی، اونها رو حذف میکنید. ممکنه بعد از اینکه وقت زیادی رو صرف این بازی کردید، خودتون رو تو حالتی ببینید که دارید الگوهای مشابه بازی رو توی بقیهی فعالیتهاتون پیدا میکنید.
همچنین دیدن تصاویر رنگی از شکلهایی که دارن روی همدیگه فرود میان، موقع خوابیدن یکی از فرمهای توهمات هیپاگوژنیا بهحساب میاد. برای بعضی افراد، این کشش به کنار هم قرار دادن اشکال، شدیداً اعتیادآوره و تو طول روز ممکنه اون رو با چیزهایی مثل ساختمونها تکرار کنن. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
فرض کنید دو تا نورون داریم (منم نمیدونم نورون چیه ولی فرض کنید دو تا ممد داریم)
نورون الف (پیشسیناپسی) → سیگنال میفرسته.
نورون ب (پسسیناپسی) → سیگنال رو دریافت میکنه
حالا دو حالت پیش میاد:
حالت 1: نورون الف قبل از نورون ب فعال بشه؛ مثل اینه که نورون الف یه خبر مهم رو زودتر برسونه، بعد نورون ب هم جواب بده.
مغز فکر میکنه: «آها! پس سیگنال الف باعث شد ب فعال بشه. پس این ارتباط مهمه، قویترش کن!»
حالت 2: نورون ب قبل از نورون الف فعال بشه؛ اینجا یعنی نورون ب خودش قبلاً فعال شده بوده و بعدش تازه الف خبر رسونده.
مغز فکر میکنه: «این ارتباط خیلی به درد نمیخوره، چون دیر رسید.» نتیجه: اتصال (سیناپس) ضعیفتر میشه.
این قانون رو «انعطافپذیری وابسته به زمان اسپایک (STDP)» میگن؛ سازوکاری که مغز انسان باهاش الگوهای زمانی رو یاد میگیره و حافظه شکل میگیره شبکه های SNN هم از همین الگو استفاده میکنن ولی هنوز رایج نشدن چون نیاز به سخت افزار خاص دارن اما بجاش همین دیپ لرنینگی که میشناسیم مثل CNN یا ANN یا Transformer خیلی رایج شده چون روی همه کامپیوترا اجرا میشه.
@Linuxor
نورون الف (پیشسیناپسی) → سیگنال میفرسته.
نورون ب (پسسیناپسی) → سیگنال رو دریافت میکنه
حالا دو حالت پیش میاد:
حالت 1: نورون الف قبل از نورون ب فعال بشه؛ مثل اینه که نورون الف یه خبر مهم رو زودتر برسونه، بعد نورون ب هم جواب بده.
مغز فکر میکنه: «آها! پس سیگنال الف باعث شد ب فعال بشه. پس این ارتباط مهمه، قویترش کن!»
حالت 2: نورون ب قبل از نورون الف فعال بشه؛ اینجا یعنی نورون ب خودش قبلاً فعال شده بوده و بعدش تازه الف خبر رسونده.
مغز فکر میکنه: «این ارتباط خیلی به درد نمیخوره، چون دیر رسید.» نتیجه: اتصال (سیناپس) ضعیفتر میشه.
این قانون رو «انعطافپذیری وابسته به زمان اسپایک (STDP)» میگن؛ سازوکاری که مغز انسان باهاش الگوهای زمانی رو یاد میگیره و حافظه شکل میگیره شبکه های SNN هم از همین الگو استفاده میکنن ولی هنوز رایج نشدن چون نیاز به سخت افزار خاص دارن اما بجاش همین دیپ لرنینگی که میشناسیم مثل CNN یا ANN یا Transformer خیلی رایج شده چون روی همه کامپیوترا اجرا میشه.
@Linuxor
Forwarded from Gopher Academy
📢 اگر تلگرام پرمیوم دارید، کانال ما رو Boost کنید ! 🚀
با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙
https://t.iss.one/boost/gopher_academy
با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙
https://t.iss.one/boost/gopher_academy
Telegram
Gopher Academy
از این کانال حمایت کنید تا بتواند به قابلیتهای اضافی دسترسی پیدا کند.
Forwarded from کانال ترجمه The Tonight Show جیمی فلن
Media is too big
VIEW IN TELEGRAM
این قسمت :
🎬 Dwayne Johnson Gained 30lbs of Muscle for Smashing Machine Role, Pillow Fights Jimmy with Mark Kerr
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
از The Tonight Show Starring Jimmy Fallon با اجرای Jimmy Fallon
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
زیرنویس فارسی چسبیده
کانال اخبار هوش مصنوعی 👈 @AiSegaro 👾
🎬 Dwayne Johnson Gained 30lbs of Muscle for Smashing Machine Role, Pillow Fights Jimmy with Mark Kerr
تاریخ انتشار : ۱۴۰۴/۰۷/۰۹
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
از The Tonight Show Starring Jimmy Fallon با اجرای Jimmy Fallon
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
زیرنویس فارسی چسبیده
ترجمه با استفاده از سایت 👈 iSega.ro 🌎
کانال اخبار هوش مصنوعی 👈 @AiSegaro 👾
Forwarded from Golden Code (@lix)
وقتی با Eloquent توی لاراول کار میکنیم، معمولا برای فیلتر کردن رکوردها از where استفاده میکنیم. مثلا:
این روش خوبه، اما لاراول یه قابلیت بهتر و کاربردی داره به اسم Dynamic Where ✨
یعنی میتونیم همون کد بالا رو اینطوری بنویسیم:
چطوری کار میکنه؟
لاراول متود رو از روی اسمش میسازه.
وقتی میگی whereEmailAndPassword، خودش میفهمه باید روی ستونهای email و password شرط بذاره.
بین فیلدها میتونی از And یا Or استفاده کنی.
مثال:
📌 کجا به درد میخوره؟
لاگین یا احراز هویت سریع
جستجوهای ساده و کوتاه
کار با کلیدهای ترکیبی (Composite Keys)
خصلاش که:
این Dynamic Where خیلی وقتها باعث میشن کد کوتاهتر، خواناتر و باشه.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/Akr4mKhan/status/1973387425268507003?t=PqAyceJRXsgErfUOp8_wtQ&s=35
User::where('email', $email)
->where('password', $password)
->first();این روش خوبه، اما لاراول یه قابلیت بهتر و کاربردی داره به اسم Dynamic Where ✨
یعنی میتونیم همون کد بالا رو اینطوری بنویسیم:
User::whereEmailAndPassword($email, $password)->first();
چطوری کار میکنه؟
لاراول متود رو از روی اسمش میسازه.
وقتی میگی whereEmailAndPassword، خودش میفهمه باید روی ستونهای email و password شرط بذاره.
بین فیلدها میتونی از And یا Or استفاده کنی.
مثال:
// شرط روی دو ستون
User::whereNameAndAge('Ali', 30)->first();
// شرط OR
User::whereEmailOrUsername($value, $value)->first();
📌 کجا به درد میخوره؟
لاگین یا احراز هویت سریع
جستجوهای ساده و کوتاه
کار با کلیدهای ترکیبی (Composite Keys)
خصلاش که:
این Dynamic Where خیلی وقتها باعث میشن کد کوتاهتر، خواناتر و باشه.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/Akr4mKhan/status/1973387425268507003?t=PqAyceJRXsgErfUOp8_wtQ&s=35
X (formerly Twitter)
Akram ⚡️ (@Akr4mKhan) on X
Option B: #Laravel Tips 💡
1️⃣ Dynamic wheres aren't just cute - they’re super handy for quick lookups without repeating ->where()->where() chains. Perfect for things like login, lookups, or finding by composite keys.
1️⃣ Dynamic wheres aren't just cute - they’re super handy for quick lookups without repeating ->where()->where() chains. Perfect for things like login, lookups, or finding by composite keys.
Forwarded from a pessimistic researcher (Kc)
#موقت
دوستان اگر کسی خدایی نکرده توی تلگرام فایل برنامهی نیمهشب قسمت ۸ برای فصل ۵ که این هفته منتشر شده رو داره برای من ارسال کنه؟
مرسی :)
دوستان اگر کسی خدایی نکرده توی تلگرام فایل برنامهی نیمهشب قسمت ۸ برای فصل ۵ که این هفته منتشر شده رو داره برای من ارسال کنه؟
مرسی :)
Forwarded from اینترنت آزاد،تکنولوژی،هوش مصنوعی،کامپیوتر
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python Hints
سمت ما
لزوماً خالی نیست؛ خیلی وقتا تنظیمات خاص و راحت تر و ... داخلش هست
و یا حتی re-export برای راحتی بیشتر کاربر.
__init__.pyلزوماً خالی نیست؛ خیلی وقتا تنظیمات خاص و راحت تر و ... داخلش هست
و یا حتی re-export برای راحتی بیشتر کاربر.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
دوستان عزیز، کدوم کتاب رو ترجیح میدید زودتر نسخه فارسیش آماده و منتشر بشه؟
Final Results
34%
LPIC-3 – لینوکس پیشرفته
12%
Security+ – پایه امنیت سایبری
8%
Network+ – شبکههای مقدماتی
2%
A+ – سختافزار و مبانی IT
6%
Google Dork - جستجوی پیشرفته برای کشف اطلاعات
8%
1001Bash Scripting - اسکریپتهای قدرتمند
11%
Linux Hardening - امنسازی لینوکسی
11%
Linux for Hackers - لینوکس برای هکرها
4%
1001 SQL Queries - کوئریهای کاربردی SQL
5%
1001 Network Notes - نکات کوتاه و کاربردی شبکه
Forwarded from Rust for Python developers
پروژه شرکت رو تحویل دادم؛
اما بعدش یک ایده به توسعه دهنده شرکت دادم، چندتا چیز بنظرم توی پروژه کم بود که خب کارفرما نخواسته بود.
بعضی موارد رو البته شخصاً اضافه کردم (آدمای خوب رو باید هواشونو داشت.) بعضی موارد هم زمان بیشتری میخواست که سپردم به خودشون!
مثلاً:
اینکه کل کد رو
دوم نوتیف اضافه کردن؛ اینکه همون داخل ترمینال (مثل
چندتا مورد دیگه هم بود که چون اختصاصی پروژه بود، اینجا گفتنش لازم نیست!
بعد از این دوباره پروژه برگشت بغل خودم، برای توسعه ورژن جدید :)
گفتم اینارم کم کم، به اون مثالی که برای
بعد که تکمیل شد، بفرستم بالا!
اما بعدش یک ایده به توسعه دهنده شرکت دادم، چندتا چیز بنظرم توی پروژه کم بود که خب کارفرما نخواسته بود.
بعضی موارد رو البته شخصاً اضافه کردم (آدمای خوب رو باید هواشونو داشت.) بعضی موارد هم زمان بیشتری میخواست که سپردم به خودشون!
مثلاً:
اینکه کل کد رو
async کنند، تکنیکی که ratatui توی کدهای مثالش کم استفاده کرده و بیشتر روش hybrid رو رفته (ما توی این مرحله اصلا به async نیاز نداشتیم) و اکثر موارد multi-thread بود.دوم نوتیف اضافه کردن؛ اینکه همون داخل ترمینال (مثل
nice توی nvim) بجای اینکه وضعیت کارها رو برم بررسی کنم! بتونم alert بذارم (درحد ی فلگ) که خودش بهم نوتیف بده کار انجام شد یا به خطا خورد یا ....چندتا مورد دیگه هم بود که چون اختصاصی پروژه بود، اینجا گفتنش لازم نیست!
بعد از این دوباره پروژه برگشت بغل خودم، برای توسعه ورژن جدید :)
گفتم اینارم کم کم، به اون مثالی که برای
ratatui نوشتم اضافه کنم.Async - Notification (multi-thread)بعد که تکمیل شد، بفرستم بالا!
Forwarded from Woland's Linux Journal (Woland)
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 تیم Artix Linux اعلام کرده است که بهطور رسمی پشتیبانی از محیطهای دسکتاپ مبتنی بر GNOME را متوقف میکند. دلیل این تصمیم، تغییرات صورتگرفته در پروژههای بالادستی است که اجرای این محیطها را بدون systemd غیرممکن کرده است.
#لینوکس
@TheRaymondDev
#لینوکس
@TheRaymondDev
Linuxiac
Artix Linux Drops GNOME Desktop Support Over Systemd Dependence
Artix Linux maintainers announce the end of GNOME desktop support, citing systemd dependence as the key breaking point.
Forwarded from محتوای آزاد سهراب (Sohrab)
و پایان یک دوران.
شرکت AOL دیگه اینترنت دایالآپ ارائه نمیده.
من بچه که بودم صدای این دایالاپ رو زیاد میشنیدم، بزرگوار هم طوری بود که به بدبختی وصل میشد.
یوتوبر micheal MJD برای آخرین بار این سرویس رو تست کرده که میتونید ببینید:
https://youtu.be/ipjvVGEfYn0?si=Lrn5StXzarOENBSz
@SohrabContents
شرکت AOL دیگه اینترنت دایالآپ ارائه نمیده.
من بچه که بودم صدای این دایالاپ رو زیاد میشنیدم، بزرگوار هم طوری بود که به بدبختی وصل میشد.
یوتوبر micheal MJD برای آخرین بار این سرویس رو تست کرده که میتونید ببینید:
https://youtu.be/ipjvVGEfYn0?si=Lrn5StXzarOENBSz
@SohrabContents
YouTube
Trying To Use AOL Dial-Up for the Last Time...
● Support the channel on Patreon to get early access to these videos!
https://patreon.com/MichaelMJD
Today marks the end of AOL Dial-Up. Because after over 30 years, the service is being retired. So I thought I'd try to dial into the service one last time…
https://patreon.com/MichaelMJD
Today marks the end of AOL Dial-Up. Because after over 30 years, the service is being retired. So I thought I'd try to dial into the service one last time…