Forwarded from a pessimistic researcher ( archived ) (Kc)
می دونم حوصله خوندن متن های طولانیم رو ندارید ولی اینو بخونید و از دست ندید :))))
به نظر خودم قشنگ ترین و کول ترین و فان ترین مطلبیه که توی کانال گذاشتم.
" پر 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 بذاریم ولی خب چه تضمینی هست که اینا دقیق و هماهنگ با همدیگه کار کنن؟ ثانیا خیلی از سیستم های نرم افزاری از تایمر های دیجیتال استفاده میکنند که اون دیگه خیلی فاجعه تره.
به نظر خودم قشنگ ترین و کول ترین و فان ترین مطلبیه که توی کانال گذاشتم.
" پر 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 بذاریم ولی خب چه تضمینی هست که اینا دقیق و هماهنگ با همدیگه کار کنن؟ ثانیا خیلی از سیستم های نرم افزاری از تایمر های دیجیتال استفاده میکنند که اون دیگه خیلی فاجعه تره.
Forwarded from a pessimistic researcher ( archived ) (Kc)
پس این مزخرفی که این دو نفر گفتن قابل پیاده سازی نبود و دلیلش هم اینه که رابطه بین Event ها از نوع Totally Order نیست بلکه از نوع Partially Order هستش.
یعنی این که ممکنه ما دو تا Event داشته باشیم که به هیچ عنوان نتونیم بگیم کدومشون اول رخ دادن.
این دید رو آقای لمپورت از قضیه نسبیت خاص انیشتن داشتن.
در آخر آقای لمپورت میاد الگوریتم اون دو نفر رو بر اساس تئوری ای که الان بهتون توضیح دادم اصلاح میکنن و نوع درستی از اون الگوریتم رو به ما معرفی میکنن.
خیلی این مقاله قشنگه. این مقاله میاد خیلی درست و دقیق مفهوم زمان رو توی سیستم های همروند و توزیع شده به ما توضیح میده. خیلی دقیق میاد توضیح میده که ما به چه سیستمی میگیم Distributed و چه زمان میگیم دو تا Event دارن به طور Concurrent اجرا میشن.
خلاصه خوندنش برای کسانی که میخوان وارد حوزه هایی بشن که سر و کارشون با زمان هستش مستحبه.
توی این مقاله آقای لمپورت برای درک بهتر قضیه نسبیت خاص دو تا مرجع معرفی میکنه که یکیش نظر من رو خیلی به خودش جلب کرد.
یکی از این مراجع خیلی با دید ریاضی فیزیک نوشته شده که من اصلا نمی فهممش و براتونم میذارم و شما هم نمی فهمیدش.
ولی اون یکی مرجع سعی کرده نسبیت خاص رو به جای توضیح فرمال و ریاضیاتیک. با توضیح یک داستان به طور تصویری بهمون حالی کنه که خیلی قشنگه و بخونید میفهمید و براتون میذارم :)))))
در آخر یه نکته دیگه هم بگم در مورد این مقاله. آقای Jim Gray که قبل تر ها توی یک پستی تحت عنوان ملوان گمشده معرفیشون کردم یه روز به لمپورت میگه:
هر کس که مقاله ات رو میخونه یکی از این دو نظر رو داره : یا میگیه خیلی بدیهی بود یا میگه یک شاهکار به تمام معناست.
لمپورت هم بهش گفته که : با دسته اول نمی تونم بحث کنم و با دسته دومم حوصله بحث کردن ندارم :)))))
نظر من رو بخواید هر دوشه :))))
یه نکته جالب دیگه هم اینکه لمپورت میگه من با هرکسی که در باره این مقاله صحبت میکنم در مورد State Machine توی مقاله صحبت میکنم و اونا هم میگن مگه مقاله ات State Machine داشت اصلا :)))))
به طوریکه خود لمپورت میگه من خودم شک میکنم و میرم مقاله ام رو از اول میخونم
خلاصه همین دیگه
تموم شد :)))
یعنی این که ممکنه ما دو تا Event داشته باشیم که به هیچ عنوان نتونیم بگیم کدومشون اول رخ دادن.
این دید رو آقای لمپورت از قضیه نسبیت خاص انیشتن داشتن.
در آخر آقای لمپورت میاد الگوریتم اون دو نفر رو بر اساس تئوری ای که الان بهتون توضیح دادم اصلاح میکنن و نوع درستی از اون الگوریتم رو به ما معرفی میکنن.
خیلی این مقاله قشنگه. این مقاله میاد خیلی درست و دقیق مفهوم زمان رو توی سیستم های همروند و توزیع شده به ما توضیح میده. خیلی دقیق میاد توضیح میده که ما به چه سیستمی میگیم Distributed و چه زمان میگیم دو تا Event دارن به طور Concurrent اجرا میشن.
خلاصه خوندنش برای کسانی که میخوان وارد حوزه هایی بشن که سر و کارشون با زمان هستش مستحبه.
توی این مقاله آقای لمپورت برای درک بهتر قضیه نسبیت خاص دو تا مرجع معرفی میکنه که یکیش نظر من رو خیلی به خودش جلب کرد.
یکی از این مراجع خیلی با دید ریاضی فیزیک نوشته شده که من اصلا نمی فهممش و براتونم میذارم و شما هم نمی فهمیدش.
ولی اون یکی مرجع سعی کرده نسبیت خاص رو به جای توضیح فرمال و ریاضیاتیک. با توضیح یک داستان به طور تصویری بهمون حالی کنه که خیلی قشنگه و بخونید میفهمید و براتون میذارم :)))))
در آخر یه نکته دیگه هم بگم در مورد این مقاله. آقای Jim Gray که قبل تر ها توی یک پستی تحت عنوان ملوان گمشده معرفیشون کردم یه روز به لمپورت میگه:
هر کس که مقاله ات رو میخونه یکی از این دو نظر رو داره : یا میگیه خیلی بدیهی بود یا میگه یک شاهکار به تمام معناست.
لمپورت هم بهش گفته که : با دسته اول نمی تونم بحث کنم و با دسته دومم حوصله بحث کردن ندارم :)))))
نظر من رو بخواید هر دوشه :))))
یه نکته جالب دیگه هم اینکه لمپورت میگه من با هرکسی که در باره این مقاله صحبت میکنم در مورد State Machine توی مقاله صحبت میکنم و اونا هم میگن مگه مقاله ات State Machine داشت اصلا :)))))
به طوریکه خود لمپورت میگه من خودم شک میکنم و میرم مقاله ام رو از اول میخونم
خلاصه همین دیگه
تموم شد :)))
👎1
این ویدیوی جالبی بود در مورد عقایدی که برنامه نویس ها دارن و هر کدوم رو نقد کرده بود.
مثلا اینکه OOP بده. =)
https://www.youtube.com/watch?v=goy4lZfDtCE
مثلا اینکه OOP بده. =)
https://www.youtube.com/watch?v=goy4lZfDtCE
YouTube
Reacting to Controversial Opinions of Software Engineers
Software engineers can be very opinionated about their tools, patterns, and philosophies. Let’s react to some of the most controversial opinions from elite developers on Stack Overflow. 🔥 Grab some swag https://swag.fireship.io/
🔗 Resources
Original StackOverflow…
🔗 Resources
Original StackOverflow…
شاید فکر کنید که png و jpg فرمت های خوبی هستن که این همه استفاده میشن ولی خیر.
یه نفر یه فرمت ساخته در سال های اخیر به اسم qoi یا همون Quite OK Format که میتونه جای png رو بگیره.
پیاده سازی تبدیلگرش به png خیلی ساده س و تو این ریپو وجود داره
https://github.com/phoboslab/qoi
با توجه به سادگیش خیلیم سریعه و خلاصه با دیدن این عجیب شد برام که چرا سال هاست از png کند استفاده میشه!
البته دقت کنید که فرمت جدیدیه و هنوز کسی به اون صورت پشتیبانیش نمیکنه اما خوندن spec و سورسکد ساده ش میتونه جالب باشه.
یه نفر یه فرمت ساخته در سال های اخیر به اسم qoi یا همون Quite OK Format که میتونه جای png رو بگیره.
پیاده سازی تبدیلگرش به png خیلی ساده س و تو این ریپو وجود داره
https://github.com/phoboslab/qoi
با توجه به سادگیش خیلیم سریعه و خلاصه با دیدن این عجیب شد برام که چرا سال هاست از png کند استفاده میشه!
البته دقت کنید که فرمت جدیدیه و هنوز کسی به اون صورت پشتیبانیش نمیکنه اما خوندن spec و سورسکد ساده ش میتونه جالب باشه.
GitHub
GitHub - phoboslab/qoi: The “Quite OK Image Format” for fast, lossless image compression
The “Quite OK Image Format” for fast, lossless image compression - phoboslab/qoi
👍4
ریاضی پشت عملیات Jpeg
(خلاصه اینکه خیلی عملیات پیچیدهای داره برای کاهش حجم عکس!)
https://www.youtube.com/watch?v=0me3guauqOU
(خلاصه اینکه خیلی عملیات پیچیدهای داره برای کاهش حجم عکس!)
https://www.youtube.com/watch?v=0me3guauqOU
YouTube
The Unreasonable Effectiveness of JPEG: A Signal Processing Approach
Visit https://brilliant.org/Reducible/ to get started learning STEM for free, and the first 200 people will get 20% off their annual premium subscription.
Chapters:
00:00 Introducing JPEG and RGB Representation
2:15 Lossy Compression
3:41 What information…
Chapters:
00:00 Introducing JPEG and RGB Representation
2:15 Lossy Compression
3:41 What information…
Death by PowerPoint: the slide that killed seven people
داستان ۷ نفر که به خاطر طراحی بد یک اسلاید پاورپوینت کشته شدند
https://mcdreeamiemusings.com/blog/2019/4/13/gsux1h6bnt8lqjd7w2t2mtvfg81uhx
داستان ۷ نفر که به خاطر طراحی بد یک اسلاید پاورپوینت کشته شدند
https://mcdreeamiemusings.com/blog/2019/4/13/gsux1h6bnt8lqjd7w2t2mtvfg81uhx
mcdreeamie-musings
Death by PowerPoint: the slide that killed seven people — mcdreeamie-musings
We’ve all sat in those presentations. A speaker with a stream of slides full of text, monotonously reading them off as we read along. We’re so used to it we expect it. We accept it. We even consider it ‘learning’. As an educator I push against ‘death…
🤔2
این ابزار برای expose کردن یه پورت از لوکال هاست به بیرون بدون dynamic dns جالب بود.
https://github.com/ekzhang/bore
https://github.com/ekzhang/bore
GitHub
GitHub - ekzhang/bore: 🕳 bore is a simple CLI tool for making tunnels to localhost
🕳 bore is a simple CLI tool for making tunnels to localhost - ekzhang/bore
👍3
ksimka/go-is-not-good: A curated list of articles complaining that go (golang) isn't good enough
https://github.com/ksimka/go-is-not-good
https://github.com/ksimka/go-is-not-good
GitHub
GitHub - ksimka/go-is-not-good: A curated list of articles complaining that go (golang) isn't good enough
A curated list of articles complaining that go (golang) isn't good enough - ksimka/go-is-not-good
👍1
اگه اصطلاح dependency hell رو شنیدید معنیش رو بدونید:
https://en.wikipedia.org/wiki/Dependency_hell
https://en.wikipedia.org/wiki/Dependency_hell
Wikipedia
Dependency hell
frustration of some software users who have installed software packages which have dependencies on specific versions of other software packages
👍1
درمورد پیچیدگیهای package manager و کارایی که انجام میدن:
https://en.wikipedia.org/wiki/Package_manager
https://en.wikipedia.org/wiki/Package_manager
Wikipedia
Package manager
software that manages the installation, upgrading, removal and dependency resolution of software packages
👎1
دستورات کاربردی ffmpeg
https://www.videoproc.com/resource/ffmpeg-commands.htm
https://www.videoproc.com/resource/ffmpeg-commands.htm
Videoproc
FFmpeg Commands: 31 Must-Haves for Beginners in 2023 - VideoProc
This post introduces 31 most commonly used FFmpeg commands with examples to perform various tasks, including converting media formats, trimming videos, etc.
👍2
بحث جالبی بود پیرامون اعتماد نکردن به پردازنده!
https://security.stackexchange.com/questions/42164/rdrand-from-dev-random
https://security.stackexchange.com/questions/42164/rdrand-from-dev-random
Information Security Stack Exchange
RdRand from /dev/random
"Linus Torvalds, in response to a petition on Change.org to remove
RdRand from /dev/random, has lambasted the petitioner by called him
ignorant for not understanding the code in Linux Kernel. K...
RdRand from /dev/random, has lambasted the petitioner by called him
ignorant for not understanding the code in Linux Kernel. K...
👍1
چطور عمر باتری و boot time سیستم رو افزایش بدیم؟
https://austingwalters.com/increasing-battery-life-on-an-arch-linux-laptop-thinkpad-t14s/
(وقتی با چیزای سخت افزاری بازی میکنید آماده بوت نشدن سیستم باشید)
https://austingwalters.com/increasing-battery-life-on-an-arch-linux-laptop-thinkpad-t14s/
(وقتی با چیزای سخت افزاری بازی میکنید آماده بوت نشدن سیستم باشید)
Austin G. Walters
Increasing Battery Life on an Arch Linux Laptop (ThinkPad T14s) - Austin G. Walters
Configure and Arch Linux laptop to maximize battery performance while not reducing performance. In this case, we cover T14s and stretch battery life 2hrs.
👍3👎1
مپ دامنه های اینترنت!
https://internet-map.net/
میتونید هر سایت رو توش سرچ کنید و اندازه ش رو با سایت های دیگه مقایسه کنید. سایت هایی که نزدیک همن بینشون لینک ها بیشتر بودن.
شکل کلیشم قشنگه واقعا =)
https://internet-map.net/
میتونید هر سایت رو توش سرچ کنید و اندازه ش رو با سایت های دیگه مقایسه کنید. سایت هایی که نزدیک همن بینشون لینک ها بیشتر بودن.
شکل کلیشم قشنگه واقعا =)
👍4