شاید براتون سوال باشه این همه الگوریتم sort داریم که هرکدوم مزایا و معایب خودشونو دارن، کدومشون بلخره نتیجه بهتری میده و توی زبان های برنامه نویسی استفاده میشه ؟
الگوریتم Introsort رو زبان هایی مثل سی پی پی ، جاوا، سی شارپ، دات نت و گو و... دارن استفاده میکنن این الگوریتم از ترکیب Quick Sort و Heap Sort ساخته شده، الگوریتم Quick Sort خودش الگوریتم خوبیه ولی وقتی توش به حد عمق بازگشت میرسیم کار خراب میشه و کند میشه توی این مرحله چک میشه و الگوریتم عوض میشه و از Heap Sort برای ادامه کار استفاده میشه.
اینطوری هم خدارو داریم هم خرما چون هم برای داده های معمولی خوب کار میکنه و هم توی بدترین حالت Quick Sort الگوریتممون کند نمیشه.
@Linuxor
الگوریتم Introsort رو زبان هایی مثل سی پی پی ، جاوا، سی شارپ، دات نت و گو و... دارن استفاده میکنن این الگوریتم از ترکیب Quick Sort و Heap Sort ساخته شده، الگوریتم Quick Sort خودش الگوریتم خوبیه ولی وقتی توش به حد عمق بازگشت میرسیم کار خراب میشه و کند میشه توی این مرحله چک میشه و الگوریتم عوض میشه و از Heap Sort برای ادامه کار استفاده میشه.
اینطوری هم خدارو داریم هم خرما چون هم برای داده های معمولی خوب کار میکنه و هم توی بدترین حالت Quick Sort الگوریتممون کند نمیشه.
@Linuxor
👍145🔥5🐳4💅4❤2
یه مشکلی که خیلیا توی گرفتن کلید API برای اکانت تلگرام بهش میخورن اینه که تلگرام یه ERROR میده و به هر IP نمیده،
دقت کنید اصلا لازم نیست برای هر اکانت API_HASH و API_ID بگیرین، برای ساخت اپلیکیشن اینارو میگیرن مثلا فرض کنید میخواین یه تلگرام جدید بسازین و روش کلی اکانت باشه، بنابرین شما که میخواین فقط یه اکانت رو منیج کنید اصلا نیازی به گرفتنش نیست میتونین از API مثلا تلگرام دسکتاپ با کلید زیر استفاده کنین :
API ID : 2040
API HASH : b18441a1ff607e10a989891a5462e627
من خودم چند ساله دارم از این استفاده میکنم.
@Linuxor
دقت کنید اصلا لازم نیست برای هر اکانت API_HASH و API_ID بگیرین، برای ساخت اپلیکیشن اینارو میگیرن مثلا فرض کنید میخواین یه تلگرام جدید بسازین و روش کلی اکانت باشه، بنابرین شما که میخواین فقط یه اکانت رو منیج کنید اصلا نیازی به گرفتنش نیست میتونین از API مثلا تلگرام دسکتاپ با کلید زیر استفاده کنین :
API ID : 2040
API HASH : b18441a1ff607e10a989891a5462e627
من خودم چند ساله دارم از این استفاده میکنم.
@Linuxor
🔥86👍26👎14🤣12❤7
کرنل از 40 میلیون خط کد گذشت.
برای اینکه حجمش رو درک کنید اگه همین الان شروع کنید و بدون توقف و خوابیدن فقط توی هر خط بنویسید :
print("Hello World")
سه سال بعد تازه اندازه کرنل کد زدید، این حجم عظیم نتیجهی مشارکت هزاران توسعهدهنده از سراسر جهانه که روی کرنل کار میکنن.
@Linuxor
برای اینکه حجمش رو درک کنید اگه همین الان شروع کنید و بدون توقف و خوابیدن فقط توی هر خط بنویسید :
print("Hello World")
سه سال بعد تازه اندازه کرنل کد زدید، این حجم عظیم نتیجهی مشارکت هزاران توسعهدهنده از سراسر جهانه که روی کرنل کار میکنن.
@Linuxor
🔥369👍32❤11😱3🤝3
فرض کنید طبقه اول هستین با آسانسور میخواین برین طبقه دهم، یهو یکی توی طبقه سوم میآد سوار میشه میخواد بره طبقه پنجم.
شما قاعدتا زود تر سوار شدین پس اول باید آسانسور درخواست شمارو رسیدگی کنه، اما آسانسور میآد کمترین زمان علاف شدن رو در نظر میگیره و اول به طبقه پنجم میره بعد به درخواست شما رسیدگی میکنه.
به این میگن الگوریتم آسانسور که برای خوندن و نوشتن دیتا روی هارد دیسک ها برای اینکه پرفومنس بهتری داشته باشیم استفاده میشه.
@Linuxor
شما قاعدتا زود تر سوار شدین پس اول باید آسانسور درخواست شمارو رسیدگی کنه، اما آسانسور میآد کمترین زمان علاف شدن رو در نظر میگیره و اول به طبقه پنجم میره بعد به درخواست شما رسیدگی میکنه.
به این میگن الگوریتم آسانسور که برای خوندن و نوشتن دیتا روی هارد دیسک ها برای اینکه پرفومنس بهتری داشته باشیم استفاده میشه.
@Linuxor
👍310🔥12💅7⚡5❤3
یکی از علت هایی که پروژه هامون شکست میخوره و اصلا اجرایی نمیشه اینه که بلد نیستم اونو به قسمت های کوچیک تر تقسیم کنیم، کسی که بتونه یه پروژه رو به قسمت های کوچیک بشکنه یعنی ناخودآگاه تسلط کافی روی چیزی که میخواد بسازه داره، تفاوت یه فرد حرفه ای با یه فرد تازه کار همینه دقیقا، فرد حرفه ای میتونه اونو به قسمت های کوچیک بشکنه، اما تازه کار نه... جالب اینجاست اون قسمت های کوچیک رو هم فرد حرفه ای میتونه انجام بده هم تازه کار ولی تازه کار اصلا به این مرحله نمیرسه.
@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🥱8🐳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