چرا به Zen Browser مهاجرت کردم؟!
Zen Browser برای من فقط یک مرورگر جدید نبود؛ تلاشی بود برای داشتن محیطی آرامتر، متمرکزتر، و کمحواسپرتتر در دنیایی که همهچیز برای گرفتن توجه ما طراحی شده است.
درانکلین
Zen Browser برای من فقط یک مرورگر جدید نبود؛ تلاشی بود برای داشتن محیطی آرامتر، متمرکزتر، و کمحواسپرتتر در دنیایی که همهچیز برای گرفتن توجه ما طراحی شده است.
Tim Berners-Lee وب رو اختراع کرد، patent نگرفت، و به همه هدیهش داد. حالا داره میبینه که چی شده و نگرانه. این یه نگاه صادقانهست به کتابش: چی رو درست میگه، کجا ایدهآلیسمش کم میاره، و چرا هر developerی باید بخونتش.
این پست بهصورت مفهومی تفاوت کرنلهای مختلف لینوکس مثل Mainline، LTS، Zen، Hardened و همچنین WSL2 را توضیح میدهد. هدف این است که نشان دهد این کرنلها انتخابهای همسطح نیستند و هرکدام برای یک سناریوی مشخص طراحی شدهاند؛ بنابراین انتخاب درست کرنل به این بستگی دارد که لینوکس را کجا و برای چه کاری اجرا میکنید.
این مقاله توضیح میدهد که unsafe در Rust واقعاً چه معنایی دارد و چرا اصلاً وجود دارد. unsafe امنیت را خاموش نمیکند، بلکه مسئولیت را از کامپایلر به برنامهنویس منتقل میکند. با مثالهای واقعی میبینیم raw pointerها چطور کار میکنند، Undefined Behavior چیست و چرا از panic بسیار خطرناکتر است. در نهایت، مقاله نشان میدهد که استفاده درست از unsafe چگونه است: محدود، کنترلشده و پنهان پشت یک API امن، با invariantهای مشخص که بقیه کد را امن نگه میدارند.
توی این پروژه از صفر یک لینوکس ۶۴ بیتی خیلی مینیمال میسازم: اول با tinyconfig و چند تنظیم دستی، یک کرنل کوچک برای x86_64 میسازم و توی QEMU بوت میکنم تا به خطای no working init found برسم. بعد، یک init فوقساده با Rust + اسمبلی مینویسم (بدون std و libc) که مستقیماً با system callها کار میکند و نقش PID 1 را میگیرد. در آخر، Lua را استاتیک کامپایل میکنم، همراه با init داخل یک initramfs میگذارم، و با ابزارهای خود کرنل یک ISO قابل بوت میسازم که میتواند Lua را روی این دنیای خیلی کوچک لینوکسی اجرا کند. هدف، ساخت یک دیستروی روزمره نیست؛ هدف این است که کوچکترین لینوکسی را بسازم که واقعاً میفهمم از درون چطور کار میکند.
در این پست، تفاوت میان رویکرد محدودکننده و تجاریِ ویندوز با رویکرد باز و کاربرمحور valve را بررسی میکنیم. توضیح میدهیم که چطور ویندوز ابزارهای پایه را به محصولات وابسته به AI و cloud تبدیل کرده، در حالی که valve با SteamOS و Steam Machine و پروژههای متنباز آزادی و کنترل را به کاربر برمیگرداند. همچنین نشان میدهیم که رشد لینوکس فقط نتیجهٔ پیشرفت خودش نیست، بلکه بهخاطر محدودتر شدن جایگزینها هم هست. در نهایت این پست آیندهٔ دسکتاپ را انتخابی میان کنترل و آزادی تصویر میکند
یک پروژه کوچک در Rust نشان میدهد چطور چند درخواست را همزمان اجرا کنیم، برای هرکدام timeout بگذاریم، panic را جدا کنیم و خطاها را شفاف دستهبندی کنیم. هدف فقط سرعت نیست؛ ساختن همزمانی قابلپیشبینی و معنادار در دنیای واقعی است. فهم async یعنی ساختار دادن به کارهای همزمان، نه فقط نوشتن کد.