یکی از علت هایی که پروژه هامون شکست میخوره و اصلا اجرایی نمیشه اینه که بلد نیستم اونو به قسمت های کوچیک تر تقسیم کنیم، کسی که بتونه یه پروژه رو به قسمت های کوچیک بشکنه یعنی ناخودآگاه تسلط کافی روی چیزی که میخواد بسازه داره، تفاوت یه فرد حرفه ای با یه فرد تازه کار همینه دقیقا، فرد حرفه ای میتونه اونو به قسمت های کوچیک بشکنه، اما تازه کار نه... جالب اینجاست اون قسمت های کوچیک رو هم فرد حرفه ای میتونه انجام بده هم تازه کار ولی تازه کار اصلا به این مرحله نمیرسه.
@Linuxor
@Linuxor
👍262❤🔥13❤5☃5🙏2
توضیح JWT بسیار ساده :
من یه آدم فراموش کارم هر پیامی که ارسال کنم فراموش میکنم که من اونو ارسال کردم یا نه، پس میآم اون پیام رو با کلید خودم رمزش میکنم و کنارش میفرستم مثلا اگه hello رو با کلیدی که من فقط دارمش رمز کنم مثلا میشه qwerty و این پیامو اینطوری به بقیه میفرستم :
hello.qwerty
بعدا هر موقع hello.qwerty رو ببینم مطمعن میشم که خودم نوشتمش چون hello رو دوباره با کلیدم رمز کنم به qwerty میرسم و بقیه چون کلید منو ندارن نمیتونن همچین پیامی تولید کنن.
حالا اگه من بیام بگم تو sepehr هستی و رمزش کنم و بشه sepehr.asdfgh تو همیشه میتونی بیای sepehr.asdfgh که یه توکن هست رو بدی بهم بگی من sepehr ام و منم میفهمم که واقعا راست میگی، و کس دیگه ای نمیتونه بگه من sepehr ام، این کاریه که JWT میکنه sepehr.asdfgh در واقع یه token هستش که توی مرورگر ذخیره میشه و با هر درخواست به سمت سرور ارسال میشه و سرور مطمعن میشه که واقعا خودتون هستین.
@Linuxor
من یه آدم فراموش کارم هر پیامی که ارسال کنم فراموش میکنم که من اونو ارسال کردم یا نه، پس میآم اون پیام رو با کلید خودم رمزش میکنم و کنارش میفرستم مثلا اگه hello رو با کلیدی که من فقط دارمش رمز کنم مثلا میشه qwerty و این پیامو اینطوری به بقیه میفرستم :
hello.qwerty
بعدا هر موقع hello.qwerty رو ببینم مطمعن میشم که خودم نوشتمش چون hello رو دوباره با کلیدم رمز کنم به qwerty میرسم و بقیه چون کلید منو ندارن نمیتونن همچین پیامی تولید کنن.
حالا اگه من بیام بگم تو sepehr هستی و رمزش کنم و بشه sepehr.asdfgh تو همیشه میتونی بیای sepehr.asdfgh که یه توکن هست رو بدی بهم بگی من sepehr ام و منم میفهمم که واقعا راست میگی، و کس دیگه ای نمیتونه بگه من sepehr ام، این کاریه که JWT میکنه sepehr.asdfgh در واقع یه token هستش که توی مرورگر ذخیره میشه و با هر درخواست به سمت سرور ارسال میشه و سرور مطمعن میشه که واقعا خودتون هستین.
@Linuxor
👍122👌9❤3🏆3👎2
اگه یکی بیاد و به یکی از یوزر های شما یه لینکی بده و بتونه به اکانتش دسترسی داشته باشه، مقصر شمایید ...
اگه یکی بتونه پسورد ساده یوزر های شمارو حدس بزنه و وارد اکانتش بشه بازم مقصر شمایید ...
اگه یوزرتون موقع حذف یه آیتم مهمش با یه کلیک اتفاقی بتونه اونو حذف کنه و ازش تاییدیه خواسته نشه بازم مقصر شمایید ...
اگه یوزرتون موقع پر کردن یه فرم طولانی بخواد بره یه چایی بخوره و برگرده ببینه هرچی وارد کرده پاک شده بازم مقصر شمایید ...
@Linuxor
اگه یکی بتونه پسورد ساده یوزر های شمارو حدس بزنه و وارد اکانتش بشه بازم مقصر شمایید ...
اگه یوزرتون موقع حذف یه آیتم مهمش با یه کلیک اتفاقی بتونه اونو حذف کنه و ازش تاییدیه خواسته نشه بازم مقصر شمایید ...
اگه یوزرتون موقع پر کردن یه فرم طولانی بخواد بره یه چایی بخوره و برگرده ببینه هرچی وارد کرده پاک شده بازم مقصر شمایید ...
@Linuxor
👍275🤣18😭14💅5👌3
This media is not supported in your browser
VIEW IN TELEGRAM
این ابزاری که داره استفاده میکنه اسمش n8n هست در واقع بدون کد زدن و با Drag & Drop میتونین کلی از تسک هاتون رو خودکار کنین
برای مثال اینجا اومده جیمیل رو به هوش مصنوعی و هوش مصنوعی رو به ربات تلگرام وصل کرده
برای اینکه خودتون اجراش کنید کافیه با داکر یا npm بالا بیارینش و یه وب ui روی پورت 5678 بهتون میده، آموزش نصب و مستندات کاملش اینجاست :
https://docs.n8n.io/hosting/installation
@Linuxor
برای مثال اینجا اومده جیمیل رو به هوش مصنوعی و هوش مصنوعی رو به ربات تلگرام وصل کرده
برای اینکه خودتون اجراش کنید کافیه با داکر یا npm بالا بیارینش و یه وب ui روی پورت 5678 بهتون میده، آموزش نصب و مستندات کاملش اینجاست :
https://docs.n8n.io/hosting/installation
@Linuxor
👍104🔥30👎2🐳1😭1
یاشو ایرانی و از بچه های خوب و حرفه ای هک، یه باگ Full One-Click Account Takeover از توییتر زده که کافیه روی لینک کلیک کنید و اکانت توییترون میافته دست آقای هکر.
جالب اینجاست خیلی از هکر ها باگ هارو گزارش نمیدن و ازش بی سروصدا استفاده میکنن، پس مراقب باشیم که تهدید همیشه وجود داره و هیچ شرکتی چهارچشمی مراقب ما نیست.
@Linuxor
جالب اینجاست خیلی از هکر ها باگ هارو گزارش نمیدن و ازش بی سروصدا استفاده میکنن، پس مراقب باشیم که تهدید همیشه وجود داره و هیچ شرکتی چهارچشمی مراقب ما نیست.
@Linuxor
👍161🔥16🤣6👎4❤1
من قوری چای هستم :
خطای 418 (I'm a Teapot) یه کد وضعیت HTTP هستش که در اصل به عنوان یک شوخی معرفی شد. این خطا به این معنیه که انتظارت زیاده از من سرور و من یه قوری چایم و قادر به دم کردن قهوه نیستم!
آیا این خطا واقعیه؟
در واقع، این خطا هیچ کاربرد عملی نداره و بیشتر به عنوان یک ایستر اگ (Easter Egg) توی دنیای وب شناخته میشه. هرچند، بعضی از سرورها و سرویسها ممکنه برای مقاصد خاصی از این خطا استفاده کنن، مثلاً برای جلوگیری از درخواستهای غیرمجاز یا تستهای امنیتی.
@Linuxor
خطای 418 (I'm a Teapot) یه کد وضعیت HTTP هستش که در اصل به عنوان یک شوخی معرفی شد. این خطا به این معنیه که انتظارت زیاده از من سرور و من یه قوری چایم و قادر به دم کردن قهوه نیستم!
آیا این خطا واقعیه؟
در واقع، این خطا هیچ کاربرد عملی نداره و بیشتر به عنوان یک ایستر اگ (Easter Egg) توی دنیای وب شناخته میشه. هرچند، بعضی از سرورها و سرویسها ممکنه برای مقاصد خاصی از این خطا استفاده کنن، مثلاً برای جلوگیری از درخواستهای غیرمجاز یا تستهای امنیتی.
@Linuxor
👍103🥱9🐳3🤣1🎄1
Media is too big
VIEW IN TELEGRAM
👍115🥱37💅14👎9❤5
مدت ها قبل یه تیکه از کد خودم رو که تو چند تا حالت فرعی بد کار میکرد و ممکن بود باگ بخوره رو با کد جدید عوض کردم؛
بعد تازه داشتم دوباره ریفکتور میکردم گفتم این چه کد چرتیه و برش گردوندم به همون اولی که باگی بود در صورتی که کد خوبه همون بود !
همیشه وقتی کد تمیزی رو تغییر میدین بالاش کامنت کنید که فلان روش فلان باگو میده برای همین این روش رو نوشتم، که بعدا دوباره کسی برش نگردونه به کد باگی چون تفکر اغلب برنامه نویس ها شبیه به همه، به این کار توی مهندسی نرم افزار میگن نگهداری Decision History که باعث میشه توی آینده اشتباهی رو مثل من دوباره تکرار نکنید.
@Linuxor
بعد تازه داشتم دوباره ریفکتور میکردم گفتم این چه کد چرتیه و برش گردوندم به همون اولی که باگی بود در صورتی که کد خوبه همون بود !
همیشه وقتی کد تمیزی رو تغییر میدین بالاش کامنت کنید که فلان روش فلان باگو میده برای همین این روش رو نوشتم، که بعدا دوباره کسی برش نگردونه به کد باگی چون تفکر اغلب برنامه نویس ها شبیه به همه، به این کار توی مهندسی نرم افزار میگن نگهداری Decision History که باعث میشه توی آینده اشتباهی رو مثل من دوباره تکرار نکنید.
@Linuxor
👍170❤5😐4🐳3
تورینگ توی مقاله جنجالیش توی سال 1950 که اولین مقاله درباره هوش داشتن ماشین ها بود باید تفکر خشک عمومی رو عوض میکرد ؛
خیلی قشنگ میدونست خیلیا بخاطر اعتقادشون حاضر نیستن قبول کنن که ماشین میتونه هوش داشته باشه بخاطر همین اولین اعتراضی که مطرح کرد و جوابشو داد The Theological Objection یا اعتراض الهیاتی بود که در جواب افرادی بود که میگفتن خدا فقط به انسان قدرت تفکر داده و ماشین روح نداره، پس نمیتونه فکر کنه؛
اما تورینگ اینطوری به این اعتراض جواب داده بود :
اگه خدا همهچیزو ممکن ساخته، چرا نتونه به یه ماشین توانایی فکر کردن بده؟ پس این اعتراض شما داره خدا رو محدود میکنه.
@Linuxor
خیلی قشنگ میدونست خیلیا بخاطر اعتقادشون حاضر نیستن قبول کنن که ماشین میتونه هوش داشته باشه بخاطر همین اولین اعتراضی که مطرح کرد و جوابشو داد The Theological Objection یا اعتراض الهیاتی بود که در جواب افرادی بود که میگفتن خدا فقط به انسان قدرت تفکر داده و ماشین روح نداره، پس نمیتونه فکر کنه؛
اما تورینگ اینطوری به این اعتراض جواب داده بود :
اگه خدا همهچیزو ممکن ساخته، چرا نتونه به یه ماشین توانایی فکر کردن بده؟ پس این اعتراض شما داره خدا رو محدود میکنه.
@Linuxor
👍192😁26🤣6❤4👎4
This media is not supported in your browser
VIEW IN TELEGRAM
یکی از پر تقاضا ترین مهارت ها deploy کردن مدلهای ماشین لرنینگ توی production هست
حالا دانشگاه carnegie mellon که شاید بالاترین رنک را در ماشین لرنینگ داشته باشه، یه کورس داره ارائه میده راجع به همین موضوع. این دوره نحوه ساخت، استقرار، اطمینان و نگهداری (build, deploy, assure, and maintain) از محصولات نرمافزاری با مدلهای ماشین لرنینگ رو پوشش میده.
این دوره شامل کل چرخه عمر از یک مدل اولیه ماشین لرنینگ تا یه سیستم کامل مستقر توی محیط تولیده. تمام مطالب آموزشی شامل کد، اسلاید و مقاله ها کاملا در دسترس هست.
قدم به قدم با همین کورس برید جلو و آخر دوره مهارتی کسب خواهید کرد که میتونه برای پیدا کردن شغل بعدی بهتون کمک کنه.
mlip-cmu.github.io
@Linuxor ~ MehdiAllahyari
حالا دانشگاه carnegie mellon که شاید بالاترین رنک را در ماشین لرنینگ داشته باشه، یه کورس داره ارائه میده راجع به همین موضوع. این دوره نحوه ساخت، استقرار، اطمینان و نگهداری (build, deploy, assure, and maintain) از محصولات نرمافزاری با مدلهای ماشین لرنینگ رو پوشش میده.
این دوره شامل کل چرخه عمر از یک مدل اولیه ماشین لرنینگ تا یه سیستم کامل مستقر توی محیط تولیده. تمام مطالب آموزشی شامل کد، اسلاید و مقاله ها کاملا در دسترس هست.
قدم به قدم با همین کورس برید جلو و آخر دوره مهارتی کسب خواهید کرد که میتونه برای پیدا کردن شغل بعدی بهتون کمک کنه.
mlip-cmu.github.io
@Linuxor ~ MehdiAllahyari
👍72❤🔥3💅2👎1
لایبری fingerprint.js میآد و تمام ویژگی های مرورگر کاربر رو هش میکنه و یه شناسه منحصر به فرد برای هر کاربر میسازه، که بر خلاف کوکی و سشن حتی توی incognito/private هم ثابته که برای جلوگیری از تقلب و یکتا بودن کاربر میتونین ازش استفاده کنید :
https://github.com/fingerprintjs/fingerprintjs
@Linuxor
https://github.com/fingerprintjs/fingerprintjs
@Linuxor
1👍96🤬15👎4🎄1
توی پروتکل QUIC که HTTP 3 بر پایه اونه، شناسه اتصال (Connection ID) یه شناسه یکتاست که برای شناسایی و مدیریت ارتباطات استفاده میشه. این شناسه مستقل از آدرس IP هستش یعنی حتی اگه کاربر به شبکهای جدید متصل شه و IP تغییر کنه، ارتباط قطع نمیشه و اتصال ادامه پیدا میکنه. این ویژگی به QUIC کمک میکنه که پایداری بیشتر و تأخیر کمتری توی تغییرات ناگهانی شبکه داشته باشه.
@Linuxor
@Linuxor
👍130❤8🤯3👌2😎2
هیچ الگوریتم خاصی برای دیکامپایل کردن کد وجود نداره و دیکامپایل کردن یه فرایند تخمینیه، به خصوص اگه کامپایلر تنظیمات خاصی رو اعمال کرده باشه که دیکامپایل دشوار تر میشه.
این ریپازیتوری بهتون کمک میکنه با استفاده از LLM ها این فرایند تخمین رو به هوش مصنوعی بسپرید و هوش مصنوعی با استفاده از داده های از قبل آموزش دیده بیاد و فایل های اجرایی binary رو به کد زبان c براتون تبدیل کنه :
https://github.com/albertan017/LLM4Decompile
@Linuxor
این ریپازیتوری بهتون کمک میکنه با استفاده از LLM ها این فرایند تخمین رو به هوش مصنوعی بسپرید و هوش مصنوعی با استفاده از داده های از قبل آموزش دیده بیاد و فایل های اجرایی binary رو به کد زبان c براتون تبدیل کنه :
https://github.com/albertan017/LLM4Decompile
@Linuxor
👍105🔥14🤯7
قانون راست-چپ برای خواندن «تعاریف» در کدهای سی (right-left rule)
۱. ابتدا اسم را پیدا کنید (identifier)
۲. سپس به سمت راست آن اسم حرکت کنید تا جایی که دیگر نتوانید.
۳. بعد از آن به سمت چپ اسم حرکت کنید تا جایی که دیگر نتوانید.
اینکار را اینقدر تکرار کنید تا بتوانید کل تعریف را شرح دهید.
@Linuxor ~ amirr3za
۱. ابتدا اسم را پیدا کنید (identifier)
۲. سپس به سمت راست آن اسم حرکت کنید تا جایی که دیگر نتوانید.
۳. بعد از آن به سمت چپ اسم حرکت کنید تا جایی که دیگر نتوانید.
اینکار را اینقدر تکرار کنید تا بتوانید کل تعریف را شرح دهید.
@Linuxor ~ amirr3za
👍105😐32❤10🥱7🆒3