نوشته‌های ترمینالی
2.63K subscribers
424 photos
12 videos
32 files
2.25K links
Download Telegram
مثل cowsay ولی عاشقانه!
lovesay is a simple python script that displays a quote from a loved one based on the day of the month or a quote passed in through the cli arguments.


https://github.com/ZenithDS/lovesay
4😁2👍1
اها، %d
😁18
بهترین بازی های ترمینال لینوکس!
https://linuxconfig.org/best-terminal-games-on-linux
#تفریحات_نردها
🤩1
کرومیوم یه صفحه credits داره که لینک پروژه هایی که ازشون استفاده کرده رو نوشته.
chrome://credits

بعد یه پروژه هست به اسم zxcvbn-cpp که برای چک کردن امنیت پسورده و لینک گیتهابی که ازش گذاشتن دیگه معتبر نیست.
لینک قبلیه: https://github.com/rianhunter/zxcvbn-cpp
لینک جدید: https://thelig.ht/code/zxcvbn-cpp/
توی گیتهاب کرومیوم که چون میروره اصلا جای issue نداره.
صفحه‌ی reportش اینجاست: https://bugs.chromium.org/p/chromium/issues/entry
اما بین template ها گم شدم حقیقتش. ایده‌ای چیزی دارید؟
👎1
می دونم حوصله خوندن متن های طولانیم رو ندارید ولی اینو بخونید و از دست ندید :))))
به نظر خودم قشنگ ترین و کول ترین و فان ترین مطلبیه که توی کانال گذاشتم.

" پر Cite ترین مقاله لمپورت"

یادمه یه بار با Leslie Lamport مصاحبه کرده بودند و ازش پرسیده بودن چرا انقدر توی Concurrency Theory گولاخی و رو دستت نیست ؟ :))))
ایشونم اول شکسته نفسی میکرد و بعدش گفت به نظرم دلیل اصلیش اینه که مسائل حوزه Distributed Systems و Concurrency Theory که شاکله اصلیش مفهوم زمان هستش رو من به چشم یک مسئله فیزیک میبینم ولی دیگران به چشم یک مسئله ریاضی.

منم مثل شما اولش نفهمیدم که این چیه میگه و فازش چیه. تا اینکه رفتم سراغ پر Cite ترین مقاله ایشون. این مقاله تا این لحظه که من دارم براتون این پست رو مینویسم ۱۲۹۸۰ تا Cite خورده :))))))))))))

یادمه توی یه مصاحبه هم خودش گفته بود خودمم درک نمیکنم چرا انقدر این مقاله رو دانشمندا دوست دارن. شاید چیزی توش دیدن که من خودم ندیدم :)))

حالا داستان این مقاله که در انتهای این پست فایلش رو براتون قرار میدم چیه؟
ایده ای که باعث شد آقای لمپورت دست به قلم بشه و این مقاله رو بنویسه از اینجا ناشی میشه که :
دو تا از محققین IBM به نام های Paul Johnson و Robert Thomas میان که مشکل اصلی یکی از محصولات IBM رو حل کنن. داستان اینه که IBM یک محصول داشته به اسم TIP که مخفف این عبارته :
Tivoli Integrated Portal
شرکت IBM کلی محصول داشت و کاربر ها موقعی که میخواستن از هر کدوم استفاده کنن مجبور میشدن برای هر کدوم یک بار عمل Authentication رو انجام بدن. شرکت IBM گفت که چه کاریه من بیام یک سیستم یکپارچه برای Authentication بنویسم که کاربرا یک بار Authenticate بشن و بعد از اون بتونن از همه محصولات استفاده کنن. واسه همینم میاد TIP رو میسازه. مشکل اینجا بود که این TIP میومد از یک سری دیتابیس Replicate شده روی شبکه ARPA-like استفاده میکرد و دنبال ارائه یک الگوریتم بودن تا بتونن به شکل Consistent این دیتابیس ها رو Maintain کنن.
میان یک الگوریتم مبتنی بر مکانیزم Timestamp میسازن. یعنی هر Event یا هر Request که میومد به سمت این دیتابیس یک Timestamp میخورد و به نوعی فکر کردن میتونن بین این Event ها یا همون Request ها یک رابطه Totally Order برقرار کنن.

سخت شد ؟ :)))))
حالا این رابطه Totally Order چی هست اصلا؟ اگر وضع تون خیلی خرابه برید سکشن 9.1 و 9.6 کتاب ریاضی گسسته روزن رو بخونید. اما اگر اوضاع تون انقدر ها هم وخیم نیست توجه تون رو به ادامه مطلب جلب میکنم :)))

ما توی ریاضیات به رابطه ای که خواص Reflexivity و AntiSymetric و Transitive رو داشته باشه میگیم یک رابطه Partial Order . به طور مثال رابطه کوچک یا بزرگ تر بودن اعداد یک نوع رابطه Partial Order عه (البته ما دو نوع رابطه Partial Order داریم اینی که من تعریف کردم رو بهش میگن Weak Partial Order و اینی که من تعریف کردم اگر به جای Reflexivity از نوع Irreflexive باشه بهش میگن Strong Partial Order ولی حالا خیلی مهم نیست و به قول یکی از دوستانم Any way :))))) )

حالا اگر به ازای هر دو عضو از مجموعه ای ک درگیر رابطه Partial order هست ما بتونیم اون دو تا رو Compare کنیم یا به اصطلاح Comparable باشن میگیم اون رابطه Totally Order هستش.

زبونم مو در آورد تا بهتون بگم که اون دو نفر ای که مسئله Replicated Database رو میخواستن حل کنن دیدشون این بود که بین Request هایی که داره به سمت دیتابیس میرن این رابطه Totally Order برقراره و میشه تعیین کرد که هر Event ای قبل یا بعد از چه Event ای رخ داده.

از اونجایی که فکر میکردن خیلی کار گولاخی کردن گفتن این مسئله فقط محدود به محصول TIP نمیشه و هر نوع دیتابیس توزیع شده ای رو می تونیم اینطوری Maintain کنیم.

بعد اینکه کلی جشن گرفتن و خوشحالی کردن رفتن این مقاله رو در قالب یک RFC با شماره 677 منتشر کردن.(دلیلش این بود که این الگوریتم فقط بر روی شبکه های ARPA-Like جواب می داد)

آقای لمپورت که لیسانس فیزیک خونده بود و قضیه نسبیت آقای انیشتن رو بلد بود فهمید که این دو نفر Bullshit گفتن :)))))

حالا آقای لمپورت دید جامعه CS که نسبیت نمی فهمن چیه اومد توی این مقاله باهامون کامپیوتری صحبت کرد.

گفت که عزیزان شما وقتی میگید که یک رخداد مانند a قبل از یک رخداد مانند b اتفاق افتاده، در اصل دارید بر اساس پارامتر زمان فیزیکی این رو میگید. خب حالا ما باید برای هر کدم از این Process هایی که توی سیستم مون داریم یک Physical Timer بذاریم ولی خب چه تضمینی هست که اینا دقیق و هماهنگ با همدیگه کار کنن؟ ثانیا خیلی از سیستم های نرم افزاری از تایمر های دیجیتال استفاده میکنند که اون دیگه خیلی فاجعه تره.
پس این مزخرفی که این دو نفر گفتن قابل پیاده سازی نبود و دلیلش هم اینه که رابطه بین Event ها از نوع Totally Order نیست بلکه از نوع Partially Order هستش.

یعنی این که ممکنه ما دو تا Event داشته باشیم که به هیچ عنوان نتونیم بگیم کدومشون اول رخ دادن.

این دید رو آقای لمپورت از قضیه نسبیت خاص انیشتن داشتن.

در آخر آقای لمپورت میاد الگوریتم اون دو نفر رو بر اساس تئوری ای که الان بهتون توضیح دادم اصلاح میکنن و نوع درستی از اون الگوریتم رو به ما معرفی میکنن.

خیلی این مقاله قشنگه. این مقاله میاد خیلی درست و دقیق مفهوم زمان رو توی سیستم های همروند و توزیع شده به ما توضیح میده. خیلی دقیق میاد توضیح میده که ما به چه سیستمی میگیم Distributed و چه زمان میگیم دو تا Event دارن به طور Concurrent اجرا میشن.

خلاصه خوندنش برای کسانی که میخوان وارد حوزه هایی بشن که سر و کارشون با زمان هستش مستحبه.

توی این مقاله آقای لمپورت برای درک بهتر قضیه نسبیت خاص دو تا مرجع معرفی میکنه که یکیش نظر من رو خیلی به خودش جلب کرد.

یکی از این مراجع خیلی با دید ریاضی فیزیک نوشته شده که من اصلا نمی فهممش و براتونم میذارم و شما هم نمی فهمیدش.

ولی اون یکی مرجع سعی کرده نسبیت خاص رو به جای توضیح فرمال و ریاضیاتیک. با توضیح یک داستان به طور تصویری بهمون حالی کنه که خیلی قشنگه و بخونید میفهمید و براتون میذارم :)))))

در آخر یه نکته دیگه هم بگم در مورد این مقاله. آقای Jim Gray که قبل تر ها توی یک پستی تحت عنوان ملوان گمشده معرفیشون کردم یه روز به لمپورت میگه:

هر کس که مقاله ات رو میخونه یکی از این دو نظر رو داره : یا میگیه خیلی بدیهی بود یا میگه یک شاهکار به تمام معناست.

لمپورت هم بهش گفته که : با دسته اول نمی تونم بحث کنم و با دسته دومم حوصله بحث کردن ندارم :)))))

نظر من رو بخواید هر دوشه :))))

یه نکته جالب دیگه هم اینکه لمپورت میگه من با هرکسی که در باره این مقاله صحبت میکنم در مورد State Machine توی مقاله صحبت میکنم و اونا هم میگن مگه مقاله ات State Machine داشت اصلا :)))))

به طوریکه خود لمپورت میگه من خودم شک میکنم و میرم مقاله ام رو از اول میخونم

خلاصه همین دیگه
تموم شد :)))
👎1
شاید فکر کنید که png و jpg فرمت های خوبی هستن که این همه استفاده میشن ولی خیر.

یه نفر یه فرمت ساخته در سال های اخیر به اسم qoi یا همون Quite OK Format که میتونه جای png رو بگیره.

پیاده سازی تبدیلگرش به png خیلی ساده س و تو این ریپو وجود داره
https://github.com/phoboslab/qoi

با توجه به سادگیش خیلیم سریعه و خلاصه با دیدن این عجیب شد برام که چرا سال هاست از png کند استفاده میشه!

البته دقت کنید که فرمت جدیدیه و هنوز کسی به اون صورت پشتیبانیش نمیکنه اما خوندن spec و سورس‌کد ساده ش میتونه جالب باشه.
👍4
اطلاعات بیشتر در مورد این فرمت (شامل spec و بنچمارک)

https://qoiformat.org/
ترکیب کردن کدهای C و C++
https://yosefk.com/c++fqa/mixing.html