فک کنم در جریان Rust-base شدن Bun هستید؛امروز بالاخره Bun Image رو ریلیز کرد و صادقانه یکی از جذابترین فیچراییه که تا الان برای این رانتایم دیدمدیگه لازم نیست برای image processing سمت سرور برید سراغ پکیجهایی مثل Sharp (همون چیزی که Next.js هم استفاده میکنه).خود Bun یه image processor نیتیو نوشته که مستقیم توی رانتایم کار میکنه؛با چند خط ساده میتونید resize کنید، کیفیت عکس رو کم کنید، فرمت عوض کنید، crop بزنید و کلی کار دیگه.مثلاً:const image = await Bun.file("./photo.jpg").image();
await image .resize(800, 800) .jpeg({ quality: 70 }) .write("./optimized.jpg");
بنظرم یه سر به ریپو bun بزنین چیزای باحالی تو این ران تایم هست ک میتونید ازش استفاده کنید
@codehalic | کدهالیک
await image .resize(800, 800) .jpeg({ quality: 70 }) .write("./optimized.jpg");
بنظرم یه سر به ریپو bun بزنین چیزای باحالی تو این ران تایم هست ک میتونید ازش استفاده کنید
@codehalic | کدهالیک
۱۸:۵۰
بعد از ثبت نام آزادکارا (فریلنسر) امروز براشون پیام اومده که برای ادامه ثبت نام وارد این لینک بشید چیزی که بعد ورود به سایت میبینید اینه :
عضویت مشروط
برای ورود به این بخش، لازم است تمام اطلاعات مراحل قبلی را بهطور کامل تکمیل کرده باشید.
ارسال درخواست فعالسازی اینترنت پرواین اقدام با هدف تسهیل دسترسی پایدارتر به اینترنت و حمایت از تداوم فعالیت کسبوکارهای حوزه فناوری اطلاعات و ارتباطات در شرایط محدودیتهای اخیر صورت میگیرد. این امکان برای اعضای سازمان میسر میباشد. عطف به مصوبات بیست و سومین جلسه شورای مرکزی سازمان نظام صنفی رایانهای کشور، آزادکاران یا فریلنسرها میتوانند با عضویت مشروط ذیل شاخه اشخاص حقیقی و مشاوران، از این خدمت استفاده نمایند.پس از عضویت مشروط ازاداکاران، مشخصات آنها بصورت روزانه برای دریافت اینترنت پرو به مراجع ذیربط ارسال میگردد. لذا سازمان نصر هیچ مسئولیتی در تاخیر ارائه این خدمت ندارد اما باتوجه به مسئولیت سازمانی و نیاز مبرم فعالین این حوزه به اینترنت، بطور مستمر پیگیر کاهش زمان و تسریع در ارائه این امکان میباشد.
در حال حاضر در هیچیک از شرکتها، سازمانها یا نهادهای دولتی و خصوصی بهصورت رسمی مشغول به کار نبوده و هیچگونه رابطه استخدامی با آنها ندارم.
در حوزه اقتصاد دیجیتال بهصورت حرفهای مشغول به فعالیت بوده و همواره در جهت بهروزرسانی دانش و توانمندیهای خود در این زمینه تلاش میکنم.
مسئولیت صحت و درستی کلیه اطلاعات و اظهارات ارائهشده بر عهده اینجانب بوده و متعهد میشوم در صورت نیاز، مستندات مربوطه را ارائه نمایم.
در صورتی که عدم صحت هریک از موارد فرم محرز شود، ارایه سرویس پرو به این شماره ملی در هر اپراتوری متوقف شده و اقدام مجدد امکانپذیر نخواهد بود.
تعرفه عضویت برای استان تهران 15,000,000 ریال میباشدخلاصه اینه که یک و نیم میلیون بدید به نصر که اسمتون رد کنه که بعدش سه میلیون برای اینترنت پرو هزینه کنید !سوال واقعی اینه سر گردنس؟
@codehalic | کدهالیک
عضویت مشروط
برای ورود به این بخش، لازم است تمام اطلاعات مراحل قبلی را بهطور کامل تکمیل کرده باشید.
ارسال درخواست فعالسازی اینترنت پرواین اقدام با هدف تسهیل دسترسی پایدارتر به اینترنت و حمایت از تداوم فعالیت کسبوکارهای حوزه فناوری اطلاعات و ارتباطات در شرایط محدودیتهای اخیر صورت میگیرد. این امکان برای اعضای سازمان میسر میباشد. عطف به مصوبات بیست و سومین جلسه شورای مرکزی سازمان نظام صنفی رایانهای کشور، آزادکاران یا فریلنسرها میتوانند با عضویت مشروط ذیل شاخه اشخاص حقیقی و مشاوران، از این خدمت استفاده نمایند.پس از عضویت مشروط ازاداکاران، مشخصات آنها بصورت روزانه برای دریافت اینترنت پرو به مراجع ذیربط ارسال میگردد. لذا سازمان نصر هیچ مسئولیتی در تاخیر ارائه این خدمت ندارد اما باتوجه به مسئولیت سازمانی و نیاز مبرم فعالین این حوزه به اینترنت، بطور مستمر پیگیر کاهش زمان و تسریع در ارائه این امکان میباشد.
در حال حاضر در هیچیک از شرکتها، سازمانها یا نهادهای دولتی و خصوصی بهصورت رسمی مشغول به کار نبوده و هیچگونه رابطه استخدامی با آنها ندارم.
در حوزه اقتصاد دیجیتال بهصورت حرفهای مشغول به فعالیت بوده و همواره در جهت بهروزرسانی دانش و توانمندیهای خود در این زمینه تلاش میکنم.
مسئولیت صحت و درستی کلیه اطلاعات و اظهارات ارائهشده بر عهده اینجانب بوده و متعهد میشوم در صورت نیاز، مستندات مربوطه را ارائه نمایم.
در صورتی که عدم صحت هریک از موارد فرم محرز شود، ارایه سرویس پرو به این شماره ملی در هر اپراتوری متوقف شده و اقدام مجدد امکانپذیر نخواهد بود.
تعرفه عضویت برای استان تهران 15,000,000 ریال میباشدخلاصه اینه که یک و نیم میلیون بدید به نصر که اسمتون رد کنه که بعدش سه میلیون برای اینترنت پرو هزینه کنید !سوال واقعی اینه سر گردنس؟
@codehalic | کدهالیک
۱۸:۵۰
بریم برای ادامه قوانین مهندسی نرمافزار بعد از مدتها. اینبار سراغ Pareto Principle یا قانون ۸۰/۲۰ بریم؛ قانونی که میگه معمولاً ۸۰ درصد نتیجهها از ۲۰ درصد علتها میاد. توی نرمافزار یعنی همهچیز به یک اندازه مهم نیست. مثلاً ممکنه ۲۰ درصد فیچرهای یک محصول، ۸۰ درصد استفاده کاربران رو بسازن؛ یا ۲۰ درصد باگها، عامل بیشتر کرشها و نارضایتیها باشن. پس بهجای اینکه انرژی تیم رو مساوی بین همهچیز پخش کنیم، باید بفهمیم اون بخشهای کمتعداد ولی پراثر کجان و اولویت رو بذاریم روی همونا.
#lawsofsoftwareengineering
@codehalic | کدهالیک
#lawsofsoftwareengineering
@codehalic | کدهالیک
۱۸:۵۱
کدهالیک | پلتفرم آموزش برنامه نویسی
بریم برای ادامه قوانین مهندسی نرمافزار بعد از مدتها. اینبار سراغ Pareto Principle یا قانون ۸۰/۲۰ بریم؛ قانونی که میگه معمولاً ۸۰ درصد نتیجهها از ۲۰ درصد علتها میاد. توی نرمافزار یعنی همهچیز به یک اندازه مهم نیست. مثلاً ممکنه ۲۰ درصد فیچرهای یک محصول، ۸۰ درصد استفاده کاربران رو بسازن؛ یا ۲۰ درصد باگها، عامل بیشتر کرشها و نارضایتیها باشن. پس بهجای اینکه انرژی تیم رو مساوی بین همهچیز پخش کنیم، باید بفهمیم اون بخشهای کمتعداد ولی پراثر کجان و اولویت رو بذاریم روی همونا. #lawsofsoftwareengineering @codehalic | کدهالیک
مثالش توی مهندسی نرمافزار خیلی ملموسه. مایکروسافت متوجه شده بود حدود ۲۰ درصد باگهای Windows و Office باعث ۸۰ درصد کرشها میشن، حتی فقط ۱ درصد باگها حدود نصف خطاها رو ایجاد میکردن. پس تمرکز روی همون چند باگ حیاتی میتونست کیفیت محصول رو خیلی سریعتر بهتر کنه. توی محصول هم همین اتفاق میافته؛ شاید از ۵۰ تا قابلیت، فقط ۵ تا ۱۰ تای اونها واقعاً توسط اکثر کاربران استفاده بشن. قانون پارتو یادآوری میکنه کار حرفهای یعنی اول پیدا کنیم کدوم بخشها بیشترین اثر رو دارن، بعد زمان، انرژی، تست، بهینهسازی و تصمیمهای محصولی رو همونجا خرج کنیم؛ نه اینکه با همهچیز مثل یک اولویت برابر برخورد کنیم.
@codehalic | کدهالیک
@codehalic | کدهالیک
۱۸:۵۱
کدهالیک | پلتفرم آموزش برنامه نویسی
بریم برای ادامه قوانین مهندسی نرمافزار بعد از مدتها. اینبار سراغ Pareto Principle یا قانون ۸۰/۲۰ بریم؛ قانونی که میگه معمولاً ۸۰ درصد نتیجهها از ۲۰ درصد علتها میاد. توی نرمافزار یعنی همهچیز به یک اندازه مهم نیست. مثلاً ممکنه ۲۰ درصد فیچرهای یک محصول، ۸۰ درصد استفاده کاربران رو بسازن؛ یا ۲۰ درصد باگها، عامل بیشتر کرشها و نارضایتیها باشن. پس بهجای اینکه انرژی تیم رو مساوی بین همهچیز پخش کنیم، باید بفهمیم اون بخشهای کمتعداد ولی پراثر کجان و اولویت رو بذاریم روی همونا. #lawsofsoftwareengineering @codehalic | کدهالیک
قانون پارتو توی ایران هم کلی مثال واقعی داره. مثلاً در اسنپباکس، کسبوکارها فقط حدود یکسوم کاربران رو تشکیل میدادن، اما نزدیک به ۸۰ درصد سفرهای این سرویس از سمت همین گروه میاومد. یعنی همه کاربران به یک اندازه اثرگذار نیستن؛ یک سگمنت خاص میتونه بار اصلی مصرف، درآمد و حساسیت محصول رو بسازه.
یا توی دیجیکالا، چند روز محدود مثل بلکفرایدی بخش بزرگی از توجه و ترافیک سال رو به خودشون اختصاص میدن. پس تیم فنی، محصول، عملیات و پشتیبانی نباید انرژیشون رو مساوی بین همهچیز پخش کنن. اصل پارتو میگه اول اون چند نقطه پراثر رو پیدا کن؛ همون چند سرویس، چند روز، چند باگ، چند مسیر کاربری یا چند گروه مشتری که بیشترین فشار و بیشترین ارزش رو میسازن. حرفهای بودن یعنی بدونی کجا واقعاً باید انرژی بذاری.
@codehalic | کدهالیک
یا توی دیجیکالا، چند روز محدود مثل بلکفرایدی بخش بزرگی از توجه و ترافیک سال رو به خودشون اختصاص میدن. پس تیم فنی، محصول، عملیات و پشتیبانی نباید انرژیشون رو مساوی بین همهچیز پخش کنن. اصل پارتو میگه اول اون چند نقطه پراثر رو پیدا کن؛ همون چند سرویس، چند روز، چند باگ، چند مسیر کاربری یا چند گروه مشتری که بیشترین فشار و بیشترین ارزش رو میسازن. حرفهای بودن یعنی بدونی کجا واقعاً باید انرژی بذاری.
@codehalic | کدهالیک
۱۸:۵۱
این باگ از نوع SSRF ـه و مهاجم میتونه فقط با یه request ساده و بدون لاگین، به سرویسهای داخلی، API Keyها، credentialهای cloud و حتی پنلهای ادمین دسترسی پیدا کنه
گفته میشه الان حدود ۷۹ هزار instance آسیبپذیر روی اینترنت وجود داره.البته اپهایی که روی Vercel هستن امن اعلام شدن و بیشتر self-hostedها در خطرن.
اگر از Next.js استفاده میکنید، سریعاً به نسخههای زیر آپدیت کنید:
https://hadrian.io/blog/next-js-websocket-ssrf-unauthenticated-access-to-internal-resources-cve-2026-44578-2-
@codehalic | کدهالیک
۱۱:۴۵
ما مهندسهای نرمافزار عادت داریم سیستمها را از بیرون نگاه کنیم: ورودیها را ببینیم، پردازشها را بفهمیم، و خروجیها را بررسی کنیم.اما کمتر پیش میآید همین نگاه را به ذهن خودمان داشته باشیم.
شاید ذهن هم چیزی شبیه یک سیستم پیچیده باشد؛ سیستمی که قضاوت میکند، تصمیم میگیرد، خطا میکند، یاد میگیرد و در طول زمان evolve میشود.از این زاویه، تفکر انتقادی و فراشناخت فقط مهارتهای ذهنی نیستند؛ نوعی مهندسیِ خودآگاهانهاند.
این نوشته تلاشی است برای نگاه کردن به ذهن، نه از درونِ عادتهای روزمره، بلکه از بیرونِ یک نگاه سیستمی.
این مقاله از محمد حسن رشیدی که تکنیکال لید آسان پرداخت هست رو حتما بخونید !تقریبا اولین مقاله فارسیه که من دارم اینجا ریفر میدم که خونده شه
لینک مقاله در لینکدین
@codehalic | کدهالیک
شاید ذهن هم چیزی شبیه یک سیستم پیچیده باشد؛ سیستمی که قضاوت میکند، تصمیم میگیرد، خطا میکند، یاد میگیرد و در طول زمان evolve میشود.از این زاویه، تفکر انتقادی و فراشناخت فقط مهارتهای ذهنی نیستند؛ نوعی مهندسیِ خودآگاهانهاند.
این نوشته تلاشی است برای نگاه کردن به ذهن، نه از درونِ عادتهای روزمره، بلکه از بیرونِ یک نگاه سیستمی.
این مقاله از محمد حسن رشیدی که تکنیکال لید آسان پرداخت هست رو حتما بخونید !تقریبا اولین مقاله فارسیه که من دارم اینجا ریفر میدم که خونده شه
لینک مقاله در لینکدین
@codehalic | کدهالیک
۱۱:۴۶
کدهالیک | پلتفرم آموزش برنامه نویسی
ما مهندسهای نرمافزار عادت داریم سیستمها را از بیرون نگاه کنیم: ورودیها را ببینیم، پردازشها را بفهمیم، و خروجیها را بررسی کنیم. اما کمتر پیش میآید همین نگاه را به ذهن خودمان داشته باشیم. شاید ذهن هم چیزی شبیه یک سیستم پیچیده باشد؛ سیستمی که قضاوت میکند، تصمیم میگیرد، خطا میکند، یاد میگیرد و در طول زمان evolve میشود. از این زاویه، تفکر انتقادی و فراشناخت فقط مهارتهای ذهنی نیستند؛ نوعی مهندسیِ خودآگاهانهاند. این نوشته تلاشی است برای نگاه کردن به ذهن، نه از درونِ عادتهای روزمره، بلکه از بیرونِ یک نگاه سیستمی. این مقاله از محمد حسن رشیدی که تکنیکال لید آسان پرداخت هست رو حتما بخونید ! تقریبا اولین مقاله فارسیه که من دارم اینجا ریفر میدم که خونده شه لینک مقاله در لینکدین @codehalic | کدهالیک
خلاصه مقاله اینه که جناب رشیدی (نویسنده) ذهن انسان رو با یک سیستم نرمافزاری مقایسه میکنه؛ سیستمی که ورودی، پردازش و خروجی داره. ورودیهای ذهن ما تجربهها، ترسها، باورها، آموزشها، اخبار و فضای اطرافه. بعد ذهن این ورودیها رو تفسیر، مقایسه و تحلیل میکنه و در نهایت خروجیهایی مثل تصمیم، رفتار، قضاوت، اعتماد یا تردید تولید میشه. بنابراین کیفیت زندگی ما تا حد زیادی به کیفیت همین پردازشهای ذهنی وابسته است.
جناب رشیدی بعد وارد بحث تفکر انتقادی و فراشناخت میشه. تفکر انتقادی یعنی فقط سریع و خودکار فکر نکنیم، بلکه باورها و نتیجهگیریهامون رو بررسی کنیم. فراشناخت هم یعنی بتوانیم به خودِ فرایند فکر کردنمان نگاه کنیم و بفهمیم کجا ممکنه دچار خطا، سوگیری یا خودفریبی شده باشیم. مثلا confirmation bias باعث میشه فقط اطلاعاتی رو ببینیم که باورهای قبلیمون رو تأیید میکنه.
در ادامه مقاله میگه ذهن ما مثل سیستمهای پیچیده همیشه نیاز به بازبینی و بهبود داره. همانطور که در مهندسی نرمافزار سیستم را مانیتور، دیباگ، refactor و evolve میکنیم، باید ذهن خودمان را هم از بیرون ببینیم، پیشفرضها را بررسی کنیم، باورهای قدیمی را اصلاح کنیم و مدلهای ذهنی بهتر بسازیم.
جمعبندی مقاله اینه که تفکر انتقادی و فراشناخت میتونن نوعی «مهندسی ذهن» باشند؛ یعنی به جای اینکه هر خروجی ذهن رو بیچونوچرا قبول کنیم، ورودیها، پردازشها و خروجیهای ذهنیمون رو بررسی کنیم. در نهایت، رشد واقعی فقط به بیشتر دانستن نیست، بلکه به بهتر فکر کردن وابسته است.
@codehalic | کدهالیک
جناب رشیدی بعد وارد بحث تفکر انتقادی و فراشناخت میشه. تفکر انتقادی یعنی فقط سریع و خودکار فکر نکنیم، بلکه باورها و نتیجهگیریهامون رو بررسی کنیم. فراشناخت هم یعنی بتوانیم به خودِ فرایند فکر کردنمان نگاه کنیم و بفهمیم کجا ممکنه دچار خطا، سوگیری یا خودفریبی شده باشیم. مثلا confirmation bias باعث میشه فقط اطلاعاتی رو ببینیم که باورهای قبلیمون رو تأیید میکنه.
در ادامه مقاله میگه ذهن ما مثل سیستمهای پیچیده همیشه نیاز به بازبینی و بهبود داره. همانطور که در مهندسی نرمافزار سیستم را مانیتور، دیباگ، refactor و evolve میکنیم، باید ذهن خودمان را هم از بیرون ببینیم، پیشفرضها را بررسی کنیم، باورهای قدیمی را اصلاح کنیم و مدلهای ذهنی بهتر بسازیم.
جمعبندی مقاله اینه که تفکر انتقادی و فراشناخت میتونن نوعی «مهندسی ذهن» باشند؛ یعنی به جای اینکه هر خروجی ذهن رو بیچونوچرا قبول کنیم، ورودیها، پردازشها و خروجیهای ذهنیمون رو بررسی کنیم. در نهایت، رشد واقعی فقط به بیشتر دانستن نیست، بلکه به بهتر فکر کردن وابسته است.
@codehalic | کدهالیک
۱۱:۴۶
اگر پروژه خاصی دارید که دارید روش کار میکنید، Claude همین الان این لینک رو گذاشت برای کسایی که میخوان open source کار بکنن روی پروژههاشون و بهتون Claude Max 20X رو میده کاملاً رایگان.
https://claude.com/contact-sales/claude-for-oss
@codehalic | کدهالیک
https://claude.com/contact-sales/claude-for-oss
@codehalic | کدهالیک
۱۱:۴۶
Senior Software Engineer
ازکیوام، بهدنبال شماست!
تیم فنی ما در حال گسترشه و قطعا مثل هر مجموعهٔ در حال پیشرفت ، دنبال همکاران کاربلد میگردیم که بتونیم باهاشون یک ارتباط پایدار بسازیم؛اگر فکر میکنید تجربه و مهارتتون با این موقعیتهای شغلی همخونی داره، تردید نکنید و لطفا برامون رزومه بفرستید:
https://careers.azkivam.com/job-detail/344637e6-b71c-427d-a363-5035c32bdd04
#backend
@codehalic | کدهالیک
ازکیوام، بهدنبال شماست!
https://careers.azkivam.com/job-detail/344637e6-b71c-427d-a363-5035c32bdd04
#backend
@codehalic | کدهالیک
۱۰:۱۶
مقاله دربارهی یه ایدهی خیلی عجیب ولی باحال توی رمزنگاریه: اینکه گاهی «چیزی که نمیتونیم ثابت کنیم» میتونه خودش تبدیل بشه به ابزار امنیتی.اول از یه مفهوم به اسم اثبات بدون افشای اطلاعات یا Zero-Knowledge Proof شروع میکنه؛ یعنی من میخوام به تو ثابت کنم یه راز رو بلدم، بدون اینکه خود راز رو بهت بگم.مثلاً فرض کن یه نقشه داریم که باید طوری با سه رنگ رنگآمیزی بشه که هیچ دو ناحیهی کنار هم همرنگ نباشن. پیدا کردن رنگآمیزی درست ممکنه خیلی سخت باشه، ولی چک کردن اینکه دو خانهی کنار هم همرنگ نیستن آسونه.حالا من میخوام بهت ثابت کنم رنگآمیزی درست رو بلدم، اما نمیخوام کل نقشهی رنگشده رو نشونت بدم. روش کلاسیک اینه که نقشه رو میپوشونم، تو هر بار یه مرز رو انتخاب میکنی، من فقط دو طرف همون مرز رو نشون میدم، و این کار چندین بار تکرار میشه تا مطمئن شی من واقعاً جواب رو دارم؛ اما در عین حال هیچوقت کل جواب دستت نمیاد.مشکل اینجاست که این مدل معمولاً نیاز به رفتوبرگشت داره؛ یعنی من و تو باید چند بار با هم تعامل کنیم. سالها قبل ثابت شده بود که اگر بخوای همین کار رو فقط با یک متن یا یک فایل ثابت انجام بدی، بدون هیچ سؤالوجواب، طبق تعریف کلاسیک دیگه واقعاً Zero-Knowledge نیست.کاری که Rahul Ilango کرده اینه که از یه مسیر متفاوت وارد شده: بهجای اینکه ثابت کنه این اثبات هیچ چیزی لو نمیده، میگه حتی اگر راهی برای لو رفتن وجود داشته باشه، هیچکس نمیتونه عملاً ثابت کنه چنین راهی هست.مثالش مثل قفلیه که روی جعبهاش نوشته:«شاید در تئوری شکستنی باشم، ولی هیچکس نمیتونه شکستنی بودنم رو ثابت یا ازش استفاده کنه.»اگر کسی واقعاً راه شکستن قفل رو پیدا کنه، همون راه خودش مدرک شکستنی بودن قفل میشه؛ پس اگر چنین مدرکی عملاً غیرقابلساختنه، قفل در عمل امن رفتار میکنه.ایدهی مقاله همینجاست: Ilango از سختیِ اثبات کردن بعضی گزارههای ریاضی استفاده میکنه، نه فقط سختیِ حل کردن مسئلهها.یعنی امنیت از این نمیاد که پیدا کردن جواب سخته؛ از این میاد که حتی ثابت کردنِ ناامن بودن سیستم هم میتونه آنقدر سخت یا غیرعملی باشه که انگار اصلاً قابل دانستن نیست.برای همین مقاله میگه مرزهای خود ریاضی جاهایی که نمیدونیم یا نمیتونیم چیزی رو ثابت کنیم شاید بتونن برای ساختن نوع تازهای از رمزنگاری استفاده بشن.
مقاله باحالیه یه سر بهش بزنین https://www.quantamagazine.org/how-unknowable-math-can-help-hide-secrets-20260511/
@codehalic | کدهالیک
مقاله باحالیه یه سر بهش بزنین https://www.quantamagazine.org/how-unknowable-math-can-help-hide-secrets-20260511/
@codehalic | کدهالیک
۱۰:۱۷
کدهالیک | پلتفرم آموزش برنامه نویسی
مقاله دربارهی یه ایدهی خیلی عجیب ولی باحال توی رمزنگاریه: اینکه گاهی «چیزی که نمیتونیم ثابت کنیم» میتونه خودش تبدیل بشه به ابزار امنیتی. اول از یه مفهوم به اسم اثبات بدون افشای اطلاعات یا Zero-Knowledge Proof شروع میکنه؛ یعنی من میخوام به تو ثابت کنم یه راز رو بلدم، بدون اینکه خود راز رو بهت بگم. مثلاً فرض کن یه نقشه داریم که باید طوری با سه رنگ رنگآمیزی بشه که هیچ دو ناحیهی کنار هم همرنگ نباشن. پیدا کردن رنگآمیزی درست ممکنه خیلی سخت باشه، ولی چک کردن اینکه دو خانهی کنار هم همرنگ نیستن آسونه. حالا من میخوام بهت ثابت کنم رنگآمیزی درست رو بلدم، اما نمیخوام کل نقشهی رنگشده رو نشونت بدم. روش کلاسیک اینه که نقشه رو میپوشونم، تو هر بار یه مرز رو انتخاب میکنی، من فقط دو طرف همون مرز رو نشون میدم، و این کار چندین بار تکرار میشه تا مطمئن شی من واقعاً جواب رو دارم؛ اما در عین حال هیچوقت کل جواب دستت نمیاد. مشکل اینجاست که این مدل معمولاً نیاز به رفتوبرگشت داره؛ یعنی من و تو باید چند بار با هم تعامل کنیم. سالها قبل ثابت شده بود که اگر بخوای همین کار رو فقط با یک متن یا یک فایل ثابت انجام بدی، بدون هیچ سؤالوجواب، طبق تعریف کلاسیک دیگه واقعاً Zero-Knowledge نیست. کاری که Rahul Ilango کرده اینه که از یه مسیر متفاوت وارد شده: بهجای اینکه ثابت کنه این اثبات هیچ چیزی لو نمیده، میگه حتی اگر راهی برای لو رفتن وجود داشته باشه، هیچکس نمیتونه عملاً ثابت کنه چنین راهی هست. مثالش مثل قفلیه که روی جعبهاش نوشته: «شاید در تئوری شکستنی باشم، ولی هیچکس نمیتونه شکستنی بودنم رو ثابت یا ازش استفاده کنه.» اگر کسی واقعاً راه شکستن قفل رو پیدا کنه، همون راه خودش مدرک شکستنی بودن قفل میشه؛ پس اگر چنین مدرکی عملاً غیرقابلساختنه، قفل در عمل امن رفتار میکنه. ایدهی مقاله همینجاست: Ilango از سختیِ اثبات کردن بعضی گزارههای ریاضی استفاده میکنه، نه فقط سختیِ حل کردن مسئلهها. یعنی امنیت از این نمیاد که پیدا کردن جواب سخته؛ از این میاد که حتی ثابت کردنِ ناامن بودن سیستم هم میتونه آنقدر سخت یا غیرعملی باشه که انگار اصلاً قابل دانستن نیست. برای همین مقاله میگه مرزهای خود ریاضی جاهایی که نمیدونیم یا نمیتونیم چیزی رو ثابت کنیم شاید بتونن برای ساختن نوع تازهای از رمزنگاری استفاده بشن. مقاله باحالیه یه سر بهش بزنین https://www.quantamagazine.org/how-unknowable-math-can-help-hide-secrets-20260511/ @codehalic | کدهالیک
من یه مثال بزنم برای فهم این موضوع چون خیلی میتونه توی طراحی یه سیستم به ما کمک کنه که امن بشه
توی مهندسی نرمافزار میشه این ایده رو با یه تسک ساده فهمید: فرض کن قراره لاگین با کلید خصوصی پیادهسازی کنی.طراحی ضعیف اینه که کاربر یه secret یا چیزی شبیه پسورد رو برای سرور بفرسته تا سرور چکش کنه. اینجا هر جایی که اون secret رد بشه، یه نقطهی خطره: لاگها، دیتابیس، ترافیک شبکه، یا حتی یه باگ ساده توی بکاند.طراحی بهتر اینه که سرور یه متن تصادفی و یکبارمصرف به کاربر بده؛ کاربر اون رو با کلید خصوصی خودش امضا کنه، و سرور فقط امضا رو با کلید عمومی verify کنه.یعنی کاربر ثابت میکنه «من صاحب این کلیدم»، بدون اینکه خود کلید خصوصی هیچوقت از دستگاهش خارج بشه.ربطش به مقاله هم همینجاست: امنیت خوب یعنی سیستم رو طوری طراحی کنی که حتی اگر کسی وسط راه وایستاده باشه، چیزی برای دزدیدن گیرش نیاد. راز نباید محافظتشده منتقل بشه؛ بهتره اصلاً منتقل نشه.
@codehalic | کدهالیک
توی مهندسی نرمافزار میشه این ایده رو با یه تسک ساده فهمید: فرض کن قراره لاگین با کلید خصوصی پیادهسازی کنی.طراحی ضعیف اینه که کاربر یه secret یا چیزی شبیه پسورد رو برای سرور بفرسته تا سرور چکش کنه. اینجا هر جایی که اون secret رد بشه، یه نقطهی خطره: لاگها، دیتابیس، ترافیک شبکه، یا حتی یه باگ ساده توی بکاند.طراحی بهتر اینه که سرور یه متن تصادفی و یکبارمصرف به کاربر بده؛ کاربر اون رو با کلید خصوصی خودش امضا کنه، و سرور فقط امضا رو با کلید عمومی verify کنه.یعنی کاربر ثابت میکنه «من صاحب این کلیدم»، بدون اینکه خود کلید خصوصی هیچوقت از دستگاهش خارج بشه.ربطش به مقاله هم همینجاست: امنیت خوب یعنی سیستم رو طوری طراحی کنی که حتی اگر کسی وسط راه وایستاده باشه، چیزی برای دزدیدن گیرش نیاد. راز نباید محافظتشده منتقل بشه؛ بهتره اصلاً منتقل نشه.
@codehalic | کدهالیک
۱۰:۱۷
دنیا رو زیادی پیچیدهاش کردیم؛ با وسایلی زندگی میکنیم که هیچوقت کامل نمیفهمیم چطور کار میکنن، توی ساختمونها و سیستمهایی که خیلی جاهاش حتی دست ما نیست، زیر قانونها و ساختارهایی که کنترلی روشون نداریم. بیشتر عمرمون رو توی یه دنیای شلوغ، فشرده، مصنوعی و پر از استرس میگذرونیم؛ بین ماشینها، آدمهای غریبه، پول، کار، درس، اخبار، تکنولوژی و کلی چیز دیگه که انگار همیشه یه فشار نامرئی روی ذهن و بدنمون میذارن. گاهی آدم دلش میخواد لپتاپش رو ببنده، گوشیاش رو پرت کنه یه جایی، از مدرسه یا کار بزنه بیرون و فقط ساده زندگی کنه؛ غذا بخوره وقتی گرسنهست، بخنده وقتی خوشحاله، گریه کنه وقتی دلش گرفته، باد و آب و پرندهها رو حس کنه و دیگه دنبال نجات دادن دنیا نباشه. ولی بعد میفهمی فرار کامل از این دنیا نه واقعیه، نه کافی؛ چون هرچقدر هم دلمون یه زندگی سادهتر بخواد، باید سعی کنیم همین دنیای پیچیده رو تا حدی بفهمیم، فرق چیزای مهم و بیاهمیت رو تشخیص بدیم، بیخیال فکر کردن نشیم و با دانستن و آگاه بودن، حداقل یه سهم کوچیک توی زندگی خودمون و اطرافیانمون داشته باشیم.
لینک رفرنس (https://user8.bearblog.dev/the-world-is-too-complicated/)@codehalic | کدهالیک
لینک رفرنس (https://user8.bearblog.dev/the-world-is-too-complicated/)@codehalic | کدهالیک
۱۰:۱۷
خیلی دیدم آدما میشینن یه ابزار درست میکنن برای نوبت دهی و این چیزا یه پروژه اوپن سورسی که میتونی لوکالایزش کنی و بفروشیش همین پروژه cal.diy عه که خیلی تر تمیز و خفن با nextjs و trpc و اینا دولوپ شده میتونی سلف هاستد بیاری بالا بفروشیش به کلینیک های دندون پزشکی و آرایشگاها و اینا ! خیلی تر تمیزم هست واقعا و دیزاین خیلی خفنی داره بنظرم این ایده ها میتونه جذاب باشه ما که ایرانیزه میکنیم میتونیم اینارم بزنیم بفروشیم یه رزق حلالی ( ایشاله البته لایسنسش اجازه میده بهتون که حلال وار ازش پول درارید ) بزنید بر بدن !
https://github.com/calcom/cal.diy
@codehalic | کدهالیک
https://github.com/calcom/cal.diy
@codehalic | کدهالیک
۱۰:۱۷
کدهالیک | پلتفرم آموزش برنامه نویسی
خیلی دیدم آدما میشینن یه ابزار درست میکنن برای نوبت دهی و این چیزا یه پروژه اوپن سورسی که میتونی لوکالایزش کنی و بفروشیش همین پروژه cal.diy عه که خیلی تر تمیز و خفن با nextjs و trpc و اینا دولوپ شده میتونی سلف هاستد بیاری بالا بفروشیش به کلینیک های دندون پزشکی و آرایشگاها و اینا ! خیلی تر تمیزم هست واقعا و دیزاین خیلی خفنی داره بنظرم این ایده ها میتونه جذاب باشه ما که ایرانیزه میکنیم میتونیم اینارم بزنیم بفروشیم یه رزق حلالی ( ایشاله البته لایسنسش اجازه میده بهتون که حلال وار ازش پول درارید ) بزنید بر بدن ! https://github.com/calcom/cal.diy @codehalic | کدهالیک
فارسی نداره ولی arabic داره پس rtl داره و بعد il18n رو کانفیگ کرده کل داستانش اینه که یه فایل جیسون توش ترجمه کنین و ایزی ایزی تمام تمام بعد بگردید دنبال مشتری و بفروشین بهش ایده درآمد زیاده واقعا حتی همین n8n ام دیدم یکی داره میفروشه ( با اینکه نمیشه فروختش و لایسنسش میگه نباید بفروشی ! ) اما خب یه ترای کنین چیزای خوبی میشه ازش درآورد احتمالا
@codehalic | کدهالیک
@codehalic | کدهالیک
۱۰:۱۷
کدهالیک | پلتفرم آموزش برنامه نویسی
خیلی دیدم آدما میشینن یه ابزار درست میکنن برای نوبت دهی و این چیزا یه پروژه اوپن سورسی که میتونی لوکالایزش کنی و بفروشیش همین پروژه cal.diy عه که خیلی تر تمیز و خفن با nextjs و trpc و اینا دولوپ شده میتونی سلف هاستد بیاری بالا بفروشیش به کلینیک های دندون پزشکی و آرایشگاها و اینا ! خیلی تر تمیزم هست واقعا و دیزاین خیلی خفنی داره بنظرم این ایده ها میتونه جذاب باشه ما که ایرانیزه میکنیم میتونیم اینارم بزنیم بفروشیم یه رزق حلالی ( ایشاله البته لایسنسش اجازه میده بهتون که حلال وار ازش پول درارید ) بزنید بر بدن ! https://github.com/calcom/cal.diy @codehalic | کدهالیک
اگه حلال و حروم سرتون میشه، قبل از استفاده از هر پروژه اوپنسورس، اول فایل LICENSE.md رو چک کنید. اینکه کد روی گیتهاب هست، یعنی قابل دیدنه، نه لزوماً قابل فروش یا استفاده تجاری.
به طور ساده، لایسنسهایی مثل MIT، Apache 2.0 و BSD معمولاً اجازه استفاده تجاری، تغییر و حتی فروش میدن، البته به شرط حفظ متن لایسنس و کپیرایت. GPL، AGPL و LGPL هم قابل استفاده تجاری هستن، ولی شرط دارن و ممکنه مجبور بشی سورسکد تغییراتت رو هم منتشر کنی. اما ریپوی بدون لایسنس، لایسنسهای Non-Commercial و پروژههای Source-Available معمولاً مجوز واضحی برای فروش یا استفاده تجاری بهت نمیدن.
خلاصه اینکه: اوپنسورس بودن یعنی آزاد بودن طبق قانون لایسنس، نه آزاد بودن برای هر کاری.
@codehalic | کدهالیک
به طور ساده، لایسنسهایی مثل MIT، Apache 2.0 و BSD معمولاً اجازه استفاده تجاری، تغییر و حتی فروش میدن، البته به شرط حفظ متن لایسنس و کپیرایت. GPL، AGPL و LGPL هم قابل استفاده تجاری هستن، ولی شرط دارن و ممکنه مجبور بشی سورسکد تغییراتت رو هم منتشر کنی. اما ریپوی بدون لایسنس، لایسنسهای Non-Commercial و پروژههای Source-Available معمولاً مجوز واضحی برای فروش یا استفاده تجاری بهت نمیدن.
خلاصه اینکه: اوپنسورس بودن یعنی آزاد بودن طبق قانون لایسنس، نه آزاد بودن برای هر کاری.
@codehalic | کدهالیک
۱۰:۱۸
کدهالیک | پلتفرم آموزش برنامه نویسی
خیلی دیدم آدما میشینن یه ابزار درست میکنن برای نوبت دهی و این چیزا یه پروژه اوپن سورسی که میتونی لوکالایزش کنی و بفروشیش همین پروژه cal.diy عه که خیلی تر تمیز و خفن با nextjs و trpc و اینا دولوپ شده میتونی سلف هاستد بیاری بالا بفروشیش به کلینیک های دندون پزشکی و آرایشگاها و اینا ! خیلی تر تمیزم هست واقعا و دیزاین خیلی خفنی داره بنظرم این ایده ها میتونه جذاب باشه ما که ایرانیزه میکنیم میتونیم اینارم بزنیم بفروشیم یه رزق حلالی ( ایشاله البته لایسنسش اجازه میده بهتون که حلال وار ازش پول درارید ) بزنید بر بدن ! https://github.com/calcom/cal.diy @codehalic | کدهالیک
حالا شاید این سؤال پیش بیاد که Cursor چطور تونست VS Code رو فورک کنه، روش محصول تجاری بسازه و حتی به یک شرکت یونیکورن تبدیل بشه؟ نکته اینجاست که Cursor خود نسخه رسمی Visual Studio Code مایکروسافت رو نفروخته؛ بلکه از Code - OSS استفاده کرده، یعنی نسخه متنباز VS Code که با لایسنس MIT منتشر شده. این لایسنس اجازه استفاده تجاری، تغییر، توزیع و حتی فروش رو میده، به شرط حفظ متن لایسنس و کپیرایت. به همین دلیل Cursor تونست روی این پایه، برند و قابلیتهای AI خودش رو بسازه و مدل تجاری مستقل خودش رو راه بندازه.
@codehalic | کدهالیک
@codehalic | کدهالیک
۱۰:۱۸
کدهالیک | پلتفرم آموزش برنامه نویسی
حالا شاید این سؤال پیش بیاد که Cursor چطور تونست VS Code رو فورک کنه، روش محصول تجاری بسازه و حتی به یک شرکت یونیکورن تبدیل بشه؟ نکته اینجاست که Cursor خود نسخه رسمی Visual Studio Code مایکروسافت رو نفروخته؛ بلکه از Code - OSS استفاده کرده، یعنی نسخه متنباز VS Code که با لایسنس MIT منتشر شده. این لایسنس اجازه استفاده تجاری، تغییر، توزیع و حتی فروش رو میده، به شرط حفظ متن لایسنس و کپیرایت. به همین دلیل Cursor تونست روی این پایه، برند و قابلیتهای AI خودش رو بسازه و مدل تجاری مستقل خودش رو راه بندازه. @codehalic | کدهالیک
FYI : For Your Information
شرکت یونیکورن به استارتاپ خصوصیای گفته میشه که ارزشگذاریاش به حداقل ۱ میلیارد دلار رسیده باشد.
مثلاً وقتی میگیم Cursor یک شرکت یونیکورن شده، یعنی سرمایهگذارها ارزش این شرکت را بیش از ۱ میلیارد دلار برآورد کردهاند، حتی اگر هنوز وارد بورس نشده باشد.
مثلا ما تو ایران یونیکورن نداریم نزدیکترین کسی که قرار بود یونیکورن بشه دیجیکالا بود که ارزشش نزدیک به 500 میلیون دلار بیشتر نیست ولی یه محصول مثل کرسر در 2 هفته تونسته یونیکورن بشه ! دیجیکالا از سال 1384 داره محصول میفروشه :))))))))))))))))))))))
@codehalic | کدهالیک
شرکت یونیکورن به استارتاپ خصوصیای گفته میشه که ارزشگذاریاش به حداقل ۱ میلیارد دلار رسیده باشد.
مثلاً وقتی میگیم Cursor یک شرکت یونیکورن شده، یعنی سرمایهگذارها ارزش این شرکت را بیش از ۱ میلیارد دلار برآورد کردهاند، حتی اگر هنوز وارد بورس نشده باشد.
مثلا ما تو ایران یونیکورن نداریم نزدیکترین کسی که قرار بود یونیکورن بشه دیجیکالا بود که ارزشش نزدیک به 500 میلیون دلار بیشتر نیست ولی یه محصول مثل کرسر در 2 هفته تونسته یونیکورن بشه ! دیجیکالا از سال 1384 داره محصول میفروشه :))))))))))))))))))))))
@codehalic | کدهالیک
۱۰:۱۸
بهم ریختگی فارسی تو ترمینال #vscode با این درست میشه:
"terminal.integrated.fontFamily": "Cascadia Mono, Vazirmatn FD, Consolas, Courier New, monospace","terminal.integrated.gpuAcceleration": "off","terminal.integrated.fontSize": 15,"terminal.integrated.lineHeight": 1.1,
@codehalic | کدهالیک
"terminal.integrated.fontFamily": "Cascadia Mono, Vazirmatn FD, Consolas, Courier New, monospace","terminal.integrated.gpuAcceleration": "off","terminal.integrated.fontSize": 15,"terminal.integrated.lineHeight": 1.1,
@codehalic | کدهالیک
۱۰:۱۹