نوشته‌های ترمینالی
2.62K subscribers
424 photos
12 videos
32 files
2.25K links
Download Telegram
برای حرفه‌ای شدن تو برنامه‌نویسی و توسعه‌ی نرم‌افزار، فقط یاد گرفتن زبون و فریمورک کافی نیست. یه سری تجربه هم لازمه، ولی لزوما سال سابقه کار هم باعث نمیشه اون تجربه‌ها رو به دست بیاریم، برای همین نیاز داریم که از بقیه هم یاد بگیریم، زیر دست آدمای توانمند کار کنیم، کتاب و وبلاگ بخونیم و ...

توصیه‌ی اولی که می‌تونم داشته باشم اینه که سعی کنید زیر دست آدمای خفن کار کنید، ازشون یاد بگیرید و خفن بشید. خود آدم هم می‌تونه یاد بگیره قطعا ولی منتور داشتن خیلی کمک می‌کنه.

توصیه دومم اینه که کتاب‌هایی که به نوعی تجارب آدمای با تجربه رو منتقل می‌کنن رو خیلی جدی بگیرید. مثلا کتاب clean coder (کدنویس تمیز) رو من از این دسته می‌دونم و دوست دارم. (هرچند با خود نویسنده زاویه‌هایی دارم حالا ولی مهم نیست.)
یک کتاب دیگه هم که هرچی ازش می‌خونم بیشتر خوشم میاد کتابچه‌ی ۹۷ چیزیه که هر برنامه‌نویس باید بدونه.
خوشبختانه ترجمه فارسی هم داره ولی من اینجا لینک انگلیسیش رو می‌ذارم.

https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/en/summary

این لینک فهرست مطالشه که ۹۷ تا توصیه کرده و رو هر کدوم بزنید توضیحاتش هست و البته من توصیه میکنم به ترتیب شروع کنید بخونید.
8👍3
Forwarded from Woland's Linux Journal (Woland)
اگر با هیچکدوم از ادیتور‌های ترمینالی لینوکس یا یونیکس راحت نیستین، ne شاید براتون مناسب باشه.
این ادیتور یک برنامه سبک و ساده‌س که با C نوشته شده و شورتکات‌های آشنا و مرسوم برنامه‌های داس و ویندوز رو استفاده می‌کنه.
مثل Ctrl S برای ذخیره کردن، Ctrl W برای بستن صفحه، Ctrl Q برای خارج شدن و غیره ...

همچنین ne از ماکرو، رجکس، سینتکس و تمام قابلیت‌های لازم یه ادیتور پشتیبانی می‌کنه.

نصبش به سادگی کلون کردن مخزن و اجرای دستور sudo make install است.

توی AUR هم طبیعتا هست😉


👈 🔗 لینک مخزن
👈 🔗 لینک سایت
👈 🔗 لینک راهنما


#معرفی #linux #لینوکس
👍3
مشکل ۳۰۰ درصد:
این مطلب توضیح میده که برای نوشتن و دیپلوی موفق یه برنامه بک‌اند، لازمه چیا بلد باشیم و چرا یاد گرفتن همه اینا سخته و این وسط مثال میزنه از کوبرنتیز و میکروسرویس‌ها که همه چیو پیچیده تر میکنن.
در آخر هم توصیه‌ش اینه که ساده نگه دارید همه چیو. تا جای ممکن.

مطلب جالبی بود و توصیه می‌کنم بخونید.
https://leebriggs.co.uk/blog/2023/09/28/300_percent_problem
👍5
نوشته‌های ترمینالی pinned «برای حرفه‌ای شدن تو برنامه‌نویسی و توسعه‌ی نرم‌افزار، فقط یاد گرفتن زبون و فریمورک کافی نیست. یه سری تجربه هم لازمه، ولی لزوما سال سابقه کار هم باعث نمیشه اون تجربه‌ها رو به دست بیاریم، برای همین نیاز داریم که از بقیه هم یاد بگیریم، زیر دست آدمای توانمند کار…»
Forwarded from La3tKnight
ابزار GnuPG یک ابزار رمزنگاری متن باز و معروفه . اما کار کردن باهاش برای افراد مبتدی سخته . هدف ابزار enc اینه که ابزار رمزنگاری ساده تری باشه برای استفاده باشه .

ابزار enc می‌تونه فایل ها رو با استفاده از رمزعبور یا کلیدهای رمزگذاری ، رمزنگاری و رمزگشایی کنه . همچنین میتونه کلیدهارو مدیریت کنه و داده ها رو امضا کنه.

توسعه دهنده های enc اعلام کردند که هدف اونها اینه که که رمزگذاری رو برای همه مهندسان بدون نیاز به یادگیری بسیاری از کلمات، مفاهیم و دستورات جدید در دسترس قرار بگیره.

https://github.com/life4/enc

درصورتی که دوست داشتید درمورد رمزنگاری بیشتر بدونید بهراد سری پست های زیادی درمورد رمزنگاری صحبت کرده :

https://t.iss.one/TadavomnisT_channel/167


🗞 La3tKnight
2👍1
تابع range تو پایتون چی برمیگردونه؟
لیست؟ نه
توپل؟ بازم نه.
آیا خروجی قابل iterate هست؟ بله.

اگه دوست دارید فرق iterable و iterator رو توی پایتون بدونید این مطلب توصیه میشه.

https://treyhunner.com/2018/02/python-range-is-not-an-iterator/

پی‌نوشت: اگرچه ما به عنوان تابع استفاده می‌کنیم، ولی به شکل دقیق تر یه کلاس محسوب میشه.
https://docs.python.org/3/library/functions.html#func-range
👍81
Forwarded from Aryan
سلام بچه ها امیدوارم حالتون خوب باشه
من چند روز پیش پروژه «هزار» رو که نزدیک یک سال پیش شروع کردم توی لینکدین معرفی کردم.
به طور خلاصه هزار بزرگترین پروژه هوش مصنوعی اوپن سورس برای زبان فارسیه که شامل مدل های مختلفی برای پردازش متن، صوت و تصویر میشه و برای وظایف مختلفی از جمله
speech recognition، OCR، image captioning، language modeling، text generation، text classification, sequence labeling, word embedding, ...
مدل آماده داره و همواره در حال توسعه مدل های جدیدتر هستیم.
برای اطلاعات بیشتر شدیدا پیشنهاد می کنم پست لینکدین رو ببینید یا گیت هاب پروژه رو بخونید.

برای این پروژه پلن های بلندمدتی داریم و به مرور داریم تیم توسعه رو گسترش میدیم.
اگر به این حوزه ها علاقه دارید و خیلی دست به کد هستید (سابقه عمیق علمی و عملی در زمینه های مختلف هوش مصنوعی) میتونید بهمون خبر بدید.
اگر از این کار خوشتون اومد و دوست دارید حمایت کنید حتما روی گیت هاب استار بدید.
هر سوال و پیشنهادی هم دارید میتونید مستقیما به خودم (@arxyzan) پیام بدید.
👍5
شاید شنیده باشید که curl یه باگ خطرناک داشته.
جریان از این قراره که وقتی که از socks5h استفاده می‌کردید، به شکل پیشفرض می‌اومده و گرفتن کوئری dns رو از سرور پروکسی انجام می‌داده، اما طبق پروتوکل، تا یه طول محدودی می‌شه نام دامنه رو فرستاد سمت سرور socks که برامون از dns بپرسه.
خلاصه برای هندل کردن حالتی که طول دامنه بلند باشه به buffer overflow میخورده.

این بلاگ اطلاعات خوبی از دو تا آسیب پذیری و چیزایی که تحت تاثیر قرار میدن نوشته. خلاصه اینکه نسخه‌ی ۸.۴.۰ به بعد رو نصب کنید و تا ۸.۳.۰ آسیب پذیر هستن. اگرم نه از socks5 بدون h استفاده کنید که کلا از dns لوکال استفاده می‌کنه.

https://jfrog.com/blog/curl-libcurl-october-2023-vulns-all-you-need-to-know/

این بلاگ پست هم مال خود برنامه‌نویسشه که فنی‌تر گفته و البته کوتاه تره، خیلی توصیه می‌کنم بخونید حتی اگر کاربر curl نیستید.
https://daniel.haxx.se/blog/2023/10/11/how-i-made-a-heap-overflow-in-curl/


توصیه‌ی آخر هم اینکه مراقب مشکلات مموری باشید، اگه دقت کنید اکثر CVEها که میاد (همون آسیب پذیری ها) به خاطر مشکلات حافظه‌ی برنامه‌های سی و سی پلاس پلاسه.
👍5🔥2
Forwarded from Things that I like (Maedeh Dehghan)
یه سایت کاربردی برای کارهای مختلف:
https://tinywow.com/
👍5
Forwarded from Programming Resources via @like
Build famous projects from scratch with a huge and friendly community to increase your knowledge about software engineering and its challenges.
پروژه های معروف را از ابتدا با یک جامعه بزرگ و دوستانه بسازید تا دانش خود را در مورد مهندسی نرم افزار و چالش های آن افزایش دهید.

#practice #programming #code #scratch #applpication #server #basic #interview
@pythony

https://app.codecrafters.io
2👍2
تفاوت database با data warehouse با data lake چیه؟
تو بلاگ mongo db بخونید.

https://www.mongodb.com/databases/data-lake-vs-data-warehouse-vs-database
👍3
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو

دسته‌بندی: #کاربردی #آموزشی

برا داشتن لیست ابزار های نصب شده داخل پکمن:
کاری که انجام دادم این بود که لیست کل پکیج های نصب شده رو داخل یه فایل نگه داشتم (هر خط اسم یه پکیج)، مثلا توی مسیر زیر:

/home/user/packages.txt

خب حالا هر بار میخوام سیستم رو بروز کنم یا پکیجی رو نصب کنم از دستور زیر استفاده میکنم (که میشه براش یه alias ردیف کرد):

sudo pacman -Syu --needed - < /home/user/packages.txt

(چون sudo اولش هست اگه ~ استفاده کنم تو home یوزرم دنبال فایله نمیگرده...
برای همین مسیر کامل دادم، هنوز تست نکردم
$HOME
جواب هست یا نه)، که خب لیست فایل رو میگیره و اگه نصب نبودن همزمان با بروز کردن سیستم اون هارو هم نصب میکنه
(فلگ needed-- برا اینه که اگه از قبل اون پکیج ها نصب و بروز بودن دوباره نصبشون نکنه).
میتونید یه alias ردیف کنید براش:

alias update='sudo pacman -Syu --needed - < /home/user/packages.txt'

اینطوری برا نصب پکیج، کافیه اسم پکیج رو به اون فایل اضافه کنید و بعد update رو اجرا کنید.

برا لیست کردن پکیج های نصب شده میشه از دستور زیر استفاده کرد:

pacman -Qqe > pkglist.txt

منبع: https://wiki.archlinux.org/title/pacman/Tips_and_tricks#List_of_installed_packages

ضمنا منبع بالا برای بروز کردن لیست پکیج های نصب شده روی سیستم بعد هر بار نصب و حذف پکیج هم راه حل داده.

اگه بخواید بر اساس اون لیست کل پکیج ها حذف/ نصب بشن (هر پکیجی که تو لیست نبود ولی نصب بود حذف بشه و هر پکیجی که تو لیست بود ولی نصب نبود نصب بشه) میشه از این بخش ویکی کمک گرفت:


در نهایت این شیوه ها برای نصب دوباره پکیج ها روی سیستم جدید و به صورت کلی مدیریتشون کمک میکنه.
🔅@LinFAQ
🔅@LinAcademy
👍5👎1
تیپیکال سوال مصاحبه: وقتی google[dot]com رو توی مرورگر می‌زنیم چه اتفاقی می‌افته؟
این سوال می‌تونه بر اساس دانش شما از جنبه های مختلفی مثل شبکه (شامل DNS و TCP و routing) تا مرورگر (مثل پردازش ورودی و DOM و render کردن) یا بک‌اند (مثل وب سرورها و نحوه تولید دیتا در کنار فایروال و لود بالانسر و api gateway و ...) پاسخ داده بشه.

این پیج گیتهاب پاسخ نسبتا خوبی به این سوال داده و از زمینه های مختلفی مثل سخت افزار و مرورگر و شبکه بهش پرداخته ولی خیلی به بک‌اند نپرداخته به نظرم.
در کل هم عمقش کمه و طولش به نسبت طولانی نیست و اگر خیلی دانش تخصصی زیادی ندارید هم میتونید با گذر از بخش هایی که متوجه نمیشید، ازش لذت ببرید.

https://github.com/alex/what-happens-when
👍9
چرا self-study بد است؟
https://www.youtube.com/watch?v=g7MSfHEdxXs


ایده این ویدیو این نیست که self study نکنیم، بلکه میگه این خطرات رو داره و اگر مثلا در روندش احساس حماقت کردید یا انگیزه‌تون رو از دست دادید مشکل شما نیست، مشکل این روشه.
👍10👎1
چرا نوشتن فایل‌ها در tmpfs بد است!
https://rwmj.wordpress.com/2012/09/12/tmpfs-considered-harmful/

این مقاله کوتاه توضیح میده که چطوری میتونه ما به عنوان کاربر و برنامه‌نویس رو گمراه کنه و باعث بشه فایل‌های مهممون پاک بشن.

همچنین می‌تونید نظرات کاربرا رو اینجا بخونید:
https://news.ycombinator.com/item?id=4510171


پانوشت: tmpfs یه مدل فایل‌سیستم موقته که در خیلی از توزیع‌ها توی /tmp ازش استفاده می‌شه و فایل‌ها رو فقط در زمان روشن بودن سیستم حفظ می‌کنه (مثل مموری)
👍4
اگه به کانکارنسی علاقه دارید این مطلب رو حتما توصیه می‌کنم بخونید:
در مورد روش های مختلف concurrency control مثل لاک‌ها
https://concurrencyfreaks.blogspot.com/2023/09/50-years-later-is-two-phase-locking.html
👍2
اگه مک دارید و می‌خواید با caps-lock زبون رو عوض کنید، در حالت عادی گاهی کار می‌کنه و گاهی نمی‌کنه.
اینجا یه راه حل خوب براش هست:
https://apple.stackexchange.com/a/456649
👍31
اگه تو مک می‌خواید markdown بنویسید، اکثر ادیتورهای خوب پولی هستن متاسفانه من از typora تو لینوکس استفاده می‌کردم که اینجا پولیه.

اینجا یه لیست از ابزارهای متن‌باز ادیت مارک‌داون هست:
https://github.com/marktext/marktext

چند تا گزینه‌ی خوب با پشتیبانی نسبتا خوب از فارسی marktext و zettlr هستن. البته دومی گزینه‌های بیشتری هم داره.

جمع‌بندی من استفاده از marktext بود با چند تا نکته:
اول که نصبش می‌کنید چون اکانت دولوپر اپل ندارن و ساینش نکردن، برنامه باز نمیشه. این دستور رو بزنید بهش اعتماد میکنه و باز میشه:

xattr -cr /Applications/MarkText.app



برای فارسی نوشتن مشکلی نیست و می‌تونید حالت RTLش رو فعال کنید ولی برای خروجی گرفتن، کار خودشو می‌کنه. در واقع بر اساس تم‌هاش خروجی رو تولید می‌کنه که تم ‌های پیش‌فرضش پشتیبانی نمی‌کنن از متن راست به چپ. برای همین می‌تونید یه تم بسازید که این مشکل رو حل کنه:


/** ME **/

.markdown-body {
direction: rtl;
}

pre {
direction: ltr;
}



کافیه متن بالا (کامنتش هم مهمه) رو تو یه فایل در مسیر تم‌ها بذارید.

لینوکس:

~/.config/marktext/themes/export/my-theme.css


مک:


~/Library/Application Support/marktext/themes/export/my-theme.css
👍1