نوشته‌های ترمینالی
2.62K subscribers
424 photos
12 videos
32 files
2.25K links
Download Telegram
در مورد مدل های بزرگ زبانی یا همون 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
#توصیه‌ها
کد خوب بخونید.
لازمه‌ی نوشتن کد خوب اینه که کد خوب دیده و خونده باشید. الان هم توی دوره‌ای هستیم که میلیونها خط کد آزاد توی گیتهاب هست و خودنشون می‌تونه خیلی مفید باشه براتون. مثل یه نویسنده که کتاب خوب زیاد می‌خونه.
برای شروع هم می‌تونید پروژه‌های متوسط یا حتی کوچک رو با یه زبون مورد علاقه‌تون پیدا کنید و برید سراغشون. کارهای مختلفی میشه کرد مثلا کامپایل کردن سورس کد و دیدن نحوه کامپایل. یا پیدا کردن main برنامه و دنبال کردن نحوه صدا کردن باقی توابع. یا مثلا یه کارکرد خاص برنامه که به نظرتون نسبتا ساده و جالبه رو بگردید و پیدا کنید که چطوری پیاده سازی شده. مثلا توی پروژه‌ی تلگرام دسکتاپ (که البته پروژه بزرگیه و برای شروع مناسب نیست)، قابلیت فولدرها چطوری پیاده سازی شدن.
👍171
Forwarded from Programming Resources via @like
A systematic framework for technical documentation authoring.
چارچوبی سیستماتیک برای نوشتن documentهای technical و فنی که اونها رو به ۴ دسته با رویکردهای مختلف تقسیم میکنه.

#document #framework #tutorials #tutorial #explanation #refrence #howto #guide #write #skill #work #practical #theory
@pythony

https://diataxis.fr
👍2
Forwarded from HICTE Blog (smm)
This media is not supported in your browser
VIEW IN TELEGRAM
یه آکواریوم بزرگ توی ترمینال سیستمتون 🤩

Arch linux:
# pacman -S asciiquarium

[با تشکر از @Pink_Orca بابت معرفی]

♦️ Group: @HicteGroup 💬♦️
♦️ Channel: @HicteBlog 💻♦️
8🔥3👍2
چه راه هایی وجود داره که از از یه برنامه به بیرون api بدیم؟
(یا به شکل خودمونی تر فرانت اند و بک اند رو چطوری به هم وصل کنیم؟)

با این الگو های معماری:
https://blog.bytebytego.com/p/ep49-api-architectural-styles
1👍1
Forwarded from Stuff I Liked
What a great explanation!
👍21
تبریک عیدی هم بگیم به SREهای سیستم بانکی که حواسشون هست عیدی‌ها به حساب‌های درستی بره.
😁19🤔1
یه مطلب فارسی خیلی خوب درمورد میکروسرویس
https://vrgl.ir/oEOSz
👍5