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

مثلا شلی که امکان اجرای دستورات پایتون رو به شکل مستقیم میده. یعنی هم دستورات پایتون هم bash رو می‌تونه اجرا کنه.

یا شلی که سعی می‌کنه آسون تر باشه، هم تنظیماتش هم کار باهاش تا برای تازه کارها مناسب باشه.



اینجا در موردشون بیشتر بخونید:
https://itsfoss.com/shells-linux/
👍5
#توصیه‌ها
خوب تعامل کنید.

این قبوله که عمده‌ی کار برنامه‌نویس‌ها پشت کامپیوتره اما یه قسمت مهمش هم اینه که بدونیم پشت کامپیوتر چیکار باید بکنیم. و معمولا این دونستنه از تعامل با آدم‌های دیگه به دست میاد. حالا چه مدیر پروژه یا کارفرما یا مشتری یا ...
باید سعی کنیم مهارت‌های نرممون رو هم تقویت کنیم. مثلا یه موردش که خیلی به من کمک میکنه اینه که بعد از یه بحث، جمع‌بندی خودم از صحبت رو به طرف میگم ببینم موافقه یا نه. خیلی اوقات موافق نیست و آدم تعجب میکنه!
یه سری از این موارد توی کتاب «کدنویس تمیز» هست.
👍25
DNSSEC:
از اونجایی که خود dns امنیتی نداره و در مقابل مسموم کردن dns آسیب پذیره، یه راهی برای امن کردنش اندیشیده شده. یکی دیگر از خدماتی که ICANN می‌ده

https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en
👍2
#توصیه‌ها
پیگیر best practice ها باشید ولی آگاهانه بشکنیدشون.
به‌روش‌ها یا همون best practice ها کارهایی هستند که خوبه انجام بدیم و احتمالا اگه انجام ندیم داریم اشتباه میکنیم. پس می‌تونن به یه برنامه نویس تازه کار کمک کنن تا اصطلاحا idiomatic کد بزنه.
مثال ساده ش می‌تونه این باشه که اگه یه دستور یه بار قراره اجرا بشه لازم نیست ببریمش توی یه do while که شرطش falseئه.

اما آگاهانه شکستن به این معنیه که اگه یه مدت با این کار کردید و خبره شدید اگرچه «کلا اون رو اجرا می‌کنید» اما اگه جایی دقیقا می‌دونید دارید چیکار می‌کنید اشکالی هم نداره شکستنش. مثلا همین مثال بالا یه کاربرد معتبر داره و استفاده هم میشه.
یا مثلا گوتو رو تاکید دارن استفاده نکنیم اما برنامه‌نویس های خیلی خفن سی (مثلا کد sudo یا kernel یا ...)‌ رو می‌نویسن از گوتو استفاده می‌کنن. اما اونا حواسشون هست و به‌جا دارن اون قاعده رو می‌شکنن.
یه نفر می‌گفت اگه یه پترن عجیب ببینیم دو حالت داره. یا طرف خیلی حرفه‌ایه و می‌دونه داره چیکار میکنه یا خیلی تازه کاره و نمی‌دونه داره چیکار می‌کنه.
👍21
دو تا ترمینال امولاتور برای مک پیدا کردم
که خودم نصب نکردم ولی جالب به نظر میان. البته نمیدونم چقدر پایدارن.

لینکشون رو میذارم اینجا اگه استفاده کردید و خوب بود بگید بقیه هم استفاده کنن!

https://github.com/withfig/autocomplete

https://github.com/warpdotdev/Warp
یکی از سرویس‌های جالبی که برای automation وجود داره و اخیرا یادش افتادم IFTTT هست.
من ندیدم ازش مطلبی چیزی توی مطالب فارسی اما خیلی کاربردیه و استفاده ازش راحته.

اسمش مخفف If this then that ئه که تقریبا گویاست. یه سری trigger داره مثلا «فردا بارون میاد» و یه سری کار می‌تونه انجام بده مثلا «ایمیل دادن» یا «پیام تلگرام دادن» یا حتی «نوشتن توی گوگل شیت»

نکته جالبی که داره طیف وسیعی از سیستم‌هاییه که باهاشون یکپارچه شده و می‌تونید به عنوان منبع اطلاعات یا به عنوان عملگر ازشون استفاده کنید.


من یه سری کاربرد که تو سایت پیشنهاد داده رو میگم ولی واقعا گزینه ها انتها نداره.

مثلا:
وقتی فردا قراره بارون بیاد بهتون پیامک یا پیام تلگرام بده.
یا وقتی باتری گوشیتون داره کم میشه والپیپر تیره براش بذاره.
یا وقتی قیمت بیتکوین به یه جایی رسید تو گوگل شیت بنویسه یا حتی هرروز بنویسه.
یا هرروز صبح اولین میتینگ کلندرتون رو بهتون یاداوری کنه
یا اگه فلان کاربر توییتر توییت کرد تو دیسکورد بهتون بگه

با خانه‌ی هوشمند هم خیلی کارها میشه کرد و خیلی از تبلیغاتش روی اونه اما محدود به اینا نیست.

https://ifttt.com/explore
🔥9👍2👏1
یه چیز جالبی که دیدم xshell بود.
توی rust اگه بخواین دستور ترمینال با کمترین چالش این اجازه رو بهتون میده. تقریبا یه نسخه مدرن شده از دستور سنتی system توی سی.
اما نکته‌ی جالبش اینه که نمیاد مستقیم bash یا sh رو صدا کنه، بلکه خودشون تا حدی قابلیت‌های یه shell رو توش پیاده‌سازی کردن و امکانات خوبی میده مثلا platform independant ئه.

برای پایتون و lua هم یه چنین چیزایی هست. اما نمیدونم چقدر قوین.
https://amoffat.github.io/sh/
https://github.com/zserge/luash
👍4👌1
Forwarded from جادی | Jadi
ظاهرا سر ماجرای زندون، کانال‌های قبلی تلگرامم رو از دست داده‌ام، پس تصمیم گرفتم اینجا رو درست کنم. نکته مثبتش چیه؟ بر خلاف سری قبلی که فقط مطالب خودم رو می ذاشتم توش، الان گاه گداری که چیز جالبی می بینم و به نظرم دیدنش برای بقیه هم مفیده رو هم اینجا خواهم گذاشت. شایدم در مورد زندگی خودم. نمی دونم هنوز (:

ولی حداقلش اینه که ویدئوها و رادیوها و مطالب خودم اینجا خواهند بود.
17
در مورد مدل های بزرگ زبانی یا همون large language models
مقداری تخصصی و مقداری هم چالش هاشون در تقابل با جامعه

https://hai.stanford.edu/news/how-large-language-models-will-transform-science-society-and-ai
👍1
Forwarded from LinMemes (Pakrohk)
میم : وقتی دیگه حتی سودو هم حریفش نیست.

دسته بندی : #imageMeme

🔅@LinMemes
🔅@LinAcademy
چرا کد تمیز بد است؟
توی این ویدیو کد «به اصطلاح تمیز»ی که عمو باب تبلیغ می‌کنه رو بررسی عملکردی می‌کنه و نقد وارد می‌کنه.
با تبعیت نکردن از قواعد عمو باب، حدودا ۱۵ برابر کد سریع تر شد که عدد قابل توجهیه.
https://youtu.be/tD5NrevFtbU

البته که این کد بیشتر در مورد پرفورمنس صحبت کرده ولی یه اشارات کوچکی هم میشه که خب چطوری کد maintainable بنویسیم که پرفورمنس خوبی هم داشته باشه.

همچنین اینجا توضیح میده که کارش روی معماری قابل نگهداریه و منظورش هم این نیست که این کد تمیز فقط از نظر کارایی بده و نگهداری خوبه. میگه کلا بده :)))
👍4🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
jless — a command-line JSON viewer

خیلی باحال میتونید داخل ترمینال یه جیسون ویور داشته باشید :)🔥

🔹 linux
🔸 mac

🔗 jless.io

#json #linux
@alirezabashi_98 🚀
🔥6👍3
این دوستمون یاد میده چطور با rust یه سیستم عامل کوچک بنویسیم.
https://os.phil-opp.com/


البته اگه به rust مسلط نیستید خیلی گزینه خوبی نیست احتمالا ولی مفاهیم سیستم عامل رو نسبتا خوب پوشش میده.

به فارسی هم ترجمه شده(!)
https://os.phil-opp.com/fa/
👍63
این دوست بیکارمون اومده یه پروژه شبیه ساز رو با چند تا زبون ولی ساختار و الگوریتم نسبتا یکسان نوشته و بنچمارک گرفته.
علاوه بر بنچمارک، نظراتش در مورد زبون ها رو هم نوشته که اونم جالبه.

https://github.com/shish/rosettaboy
👍7
نوشته‌های ترمینالی
این دوستمون یاد میده چطور با rust یه سیستم عامل کوچک بنویسیم. https://os.phil-opp.com/ البته اگه به rust مسلط نیستید خیلی گزینه خوبی نیست احتمالا ولی مفاهیم سیستم عامل رو نسبتا خوب پوشش میده. به فارسی هم ترجمه شده(!) https://os.phil-opp.com/fa/
توی گروه بحث شد که سورس کد کرنل لینوکس رو میخوایم متوجه بشیم چیکار کنیم؟
جواب من:
سخته به هر حال و کار هر کسی نیست، نیاز به صرف زمان و دانش و تجربه داره، ولی غیرممکن هم نیست.
اول دانش سی خیلی قوی احتیاج دارید، پوینتر معمولی و void pointer و دم دست بودن linked list و استراکت و .. (با عنایت به نبود جنریک) به نظرم نیازهای حداقلیه.
دانش تئوری سیستم عامل هم نیاز دارید، اگرچه که کافی نیست اما لازمه، مثلا مموری چطوری تخصیص داده میشه و زمان بند چیه و ترد و پروسس و ...

اما حالا از اینجا کجا بریم؟
برای دانش سیستم عاملی خیلی عمیق تر، مطالب سایت osdev رو توصیه می‌کنم، یه مقدار از این مطلب هم از همونجا گرفته شده. برای شروع این صفحه رو بخونید:
https://wiki.osdev.org/Getting_Started


برای شروع کردن کار روی خود کرنل لینوکس هم من کتاب understanding the Linux kernel رو پیشنهاد می‌کنم، البته که کتاب راحتی هم نیست.

https://www.oreilly.com/library/view/understanding-the-linux/0596000022/

البته که داکیومنت های رسمی kernel.org هم فراموش نکنید. منبع اصلی و بروز اونجاست.

اما سوال اینه که خب چرا؟ چه نیازی هست؟
نمی‌دونم، جواب این سوال رو خودتون باید بدید اما اگر به هدف خفن شدن و آوردن توی رزومه‌س، پروژه های آسون تر و کوچک تری هم هستند که میتونه به رزومه تون کمک کنه. به این هم فکر کنید که با چنین رزومه ای چه شرکتی قراره استخدامتون کنه؟ مثلا فرانت اند بزنید؟ بک اند حتی؟ چون اصولاً کمتر جایی سیستم پروگرمر میخواد (البته که صفر نیست)
اینم خوبه بدونید که خیلی از کسایی که رو سی کد لینوکس کار می‌کنن برای دلشون نیست و از طرف یه شرکت ذی‌نفع مثلا Google و Huawei و Intel و Redhat و IBM ان.


در آخر این مطلب هم ایده های خوبی داشت برای شروع کار روی کرنل

https://www.linux.com/news/three-ways-beginners-contribute-linux-kernel/
👍101
Forwarded from Currently Nothing
تفاوت اسنپ ها ، فلت پک و اپ ایمیج ها.

اسنپ ها:
اسنپ یک سیستم بسته بندی و استقرار نرم افزاری است که توسط Canonical برای سیستم عامل هایی که از هسته لینوکس و systemd استفاده می کنند ، توسعه یافته است. بسته‌ها که snaps نامیده می‌شوند و ابزار استفاده از آن‌ها، snapd، در طیف وسیعی از توزیع‌های لینوکس کار می‌کنند و به توسعه‌دهندگان نرم‌افزار اجازه می‌دهند تا برنامه‌های خود را مستقیماً بین کاربران توزیع کنند. اسنپ‌ها برنامه‌های مستقلی هستند که در یک سندباکس با دسترسی محدود به سیستم میزبان اجرا می‌شوند. اسنپ ابتدا برای برنامه‌های ابری منتشر شد اما بعداً برای دستگاه‌های اینترنت اشیا و برنامه‌های دسکتاپ نیز پورت شد.

خوبی ها:
۱. آپدیت خودکار
۲. بروز بودن برنامه ها در توزیع های lts
۳. سندباکس بودن
بدی ها:
۱. سرعت پایین در اجرا شدن
۲. استفاده بالا از منابع سیستم
۳. اوپن سورس نبودن بک اند اسنپ
۴. وابسته بودن به systemd

فلت پک
فلت پک مانند اسنپ یک سیستم مدیریت بسته در توزیع های لینوکسی است که توسط ردهت ایجاد و توسعه پیدا می‌کند.
فلت پک ها در اکثر توزیع های لینوکسی به صورت پیشفرض حضور دارند مانند فدورا ، المنتری او اس و ....
یکی از مزیت های فلت پک امکان تغییر سطح دسترسی برنامه ها مانند دسترسی به بلوتوث ، صدا ، دوربین و .... است.

خوبی ها:
1. فلت پک به systemd وابسته نیست
۲. برخلاف اسنپ پکیج ها منابع کمتری مصرف میکند
۳. شما میتوانید مخازن نرم افزاری خود را میزبانی کنید.
۴. سندباکس بودن
۵. برنامه های فلتپک بدون نیاز به اپدیت شدن میتوانند در هر توزیع لینوکسی اجرا شوند
۶. با استفاده از فلت‌پک دیگر نگران پیشنیاز های نرم افزاری نباشید.
۷. نسبت به اسنپ سریعتر اجرا میشه

بدی ها:
۱. حجم بالا
۲.پیروی نکردن از تم های gtk

اپ ایمیج ها
فرمت appimage فرمتی برای توزیع نرم افزار قابل حمل بر روی توزیع های لینوکس بدون نیاز به مجوزهای روت برای نصب برنامه است. اپ ایمیج ابتدا در سال 2004 با نام klik منتشر شد، به طور مداوم توسعه یافت، سپس در سال 2011 به PortableLinuxApps و بعداً در سال 2013 به AppImage تغییر نام داد. شعار اپ ایمیج ( یک برنامه = یک فایل ) است.

خوبی ها:
۱. اپ ایمیج ها وابستگی به توزیع لینوکسی خاصی ندارند
۲. اپ ایمیج ها به systemd وابسته نیستند
۳. قابل حمل هستند، شما میتوانید فایل های appimage خودتون رو بین توزیع های لینوکسی جابه جا کنید.
۴. نیازی به نصب شدن ندارن به صورت خلاصه portable هستن.

بدی ها:
۱. ایجاد نشدن menu entry برای فایل های appimage
۲. عدم وجود یک پکیج منیجر برای مدیریت appimage ها
۳. برای بروز کردن برنامه های appimage خودتون باید نسخه جدید رو دانلود کنید.
۴. پراکندگی.

#Flatpak_Snap_Appimage
👨‍💻 @sbstuff
👍11
Forwarded from a pessimistic researcher (Kc)
بله جناب به آینده سلام کن :)))
🔥10