Forwarded from نوشتههای ترمینالی
برای هر کامیت git خوبه که یه مسیج خوب بنویسیم. معمولا git commit -m میزنیم و همونجا توی ترمینال یه مسیج یک خطی مینویسیم. اما اگه بخوایم حرفهای تر عمل کنیم چی؟
یه راهش استفاده از git commit template ئه. اگر از این آپشن استفاده کنیم زمانی که git commit رو بدون -m بزنیم ادیتور باز میشه و اون تمپلیت رو به عنوان متن اولیه ما نشون میده و میتونیم روی اون تغییرات رو اعمال کنیم.
این مطلب هم آموزش فوقالعادهای برای شروع کار با کامیت مسیج ها بود. من لینک قسمت commit template ش رو گذاشتم براتون، ولی اسکرول کنید و باقی قسمت ها رو هم ببینید.
https://axolo.co/blog/p/git-commit-messages-best-practices-examples#how-to-set-up-a-git-commit-message-template
یه راهش استفاده از git commit template ئه. اگر از این آپشن استفاده کنیم زمانی که git commit رو بدون -m بزنیم ادیتور باز میشه و اون تمپلیت رو به عنوان متن اولیه ما نشون میده و میتونیم روی اون تغییرات رو اعمال کنیم.
این مطلب هم آموزش فوقالعادهای برای شروع کار با کامیت مسیج ها بود. من لینک قسمت commit template ش رو گذاشتم براتون، ولی اسکرول کنید و باقی قسمت ها رو هم ببینید.
https://axolo.co/blog/p/git-commit-messages-best-practices-examples#how-to-set-up-a-git-commit-message-template
axolo.co
Ultimate Guide to Git Commit Message Templates: Best Practices and Examples | Axolo Blog
Dive into the ultimate guide to Git commit message templates. Discover best practices for crafting clear, informative, and consistent commit messages. Explore real-world examples and learn how to improve your Git workflow and collaboration.
Forwarded from Linux Experts (Mr.Root@Sh)
چجوری موقع لاگین شدن از ssh نوتیف دریافت کنیم؟
اگاهی به موقع از لاگینهای SSH میتونه سطح جدیدی از هوشیاری و امنیت رو برای سرورتون فراهم بکنه.
بهترین ابزار برای انجام این کار استفاده از PAM (Pluggable Authentication Module) هستش که میتونیم کار دلخواهمون رو (اینجا فرستادن نوتیف) موقع باز شدن یک نشست (session) توی SSH هندل کنیم
برای انجام این کار سراغ فایل
برید و بعد خطی که توش session حال حاضر تعریف شده اضافه کنید:
الان بخش اصلی کار تموم شده و شما باید نوتیفیکیشن دلخواهتون رو با استفاده از اسکریپتی که به PAM دادیم عملی کنید تا بعد هربار ایجاد نشست اسکریپت اجرا بشه و شما متوجه اتفاقات بشید.
بخش اخر خیلی به خلاقیت خودتون بستگی داره که چجوری هندلش کنید. مثلا ایمیل فرستاده بشه یا توی تلگرام و سایر جاها مثل دیکسورد نوتیفش رو داشته باشید و هزاران کار دیگه!
+ مرحله اخر بصورت استفاده از Gmail SMTP توی منبع ذکر شده میتونید مطالعه کنید :)
[ Source ]
🔘 @linux_exp | #ssh #pam #linux
اگاهی به موقع از لاگینهای SSH میتونه سطح جدیدی از هوشیاری و امنیت رو برای سرورتون فراهم بکنه.
بهترین ابزار برای انجام این کار استفاده از PAM (Pluggable Authentication Module) هستش که میتونیم کار دلخواهمون رو (اینجا فرستادن نوتیف) موقع باز شدن یک نشست (session) توی SSH هندل کنیم
برای انجام این کار سراغ فایل
/etc/pam.d/sshdبرید و بعد خطی که توش session حال حاضر تعریف شده اضافه کنید:
session optional pam_exec.so /usr/local/bin/ssh-login-notify.shالان بخش اصلی کار تموم شده و شما باید نوتیفیکیشن دلخواهتون رو با استفاده از اسکریپتی که به PAM دادیم عملی کنید تا بعد هربار ایجاد نشست اسکریپت اجرا بشه و شما متوجه اتفاقات بشید.
بخش اخر خیلی به خلاقیت خودتون بستگی داره که چجوری هندلش کنید. مثلا ایمیل فرستاده بشه یا توی تلگرام و سایر جاها مثل دیکسورد نوتیفش رو داشته باشید و هزاران کار دیگه!
+ مرحله اخر بصورت استفاده از Gmail SMTP توی منبع ذکر شده میتونید مطالعه کنید :)
[ Source ]
🔘 @linux_exp | #ssh #pam #linux
Forwarded from Linuxor ?
شاید Redox OS به گوشتون نخورده باشه ولی یه سیستمعامل متنبازه که از اول با Rust نوشته شده. یعنی خطاهای حافظهای که توی لینوکس یا ویندوز ممکنه باعث کرش یا باگ بشه، اینجا خیلی کم اتفاق میفته. کرنلشم میکروکرنل هست، پس اجزای سیستم جدا و ایزوله کار میکنن و این باعث میشه امنتر و پایدارتر باشه.
بهعلاوه کل سیستم طراحی مدرنی داره و برای کسایی که میخوان سیستمعامل بسازن یا بفهمن چطوری کار میکنه عالیه. حتی سیستم فایلش هم خودش ساخته شده و دیتا رو با امنیت و نظم نگه میداره. خلاصه اگه دنبال یه تجربه متفاوت از لینوکس هستین، Redox میتونه حسابی جذاب باشه.
www.redox-os.org
@Linuxor
بهعلاوه کل سیستم طراحی مدرنی داره و برای کسایی که میخوان سیستمعامل بسازن یا بفهمن چطوری کار میکنه عالیه. حتی سیستم فایلش هم خودش ساخته شده و دیتا رو با امنیت و نظم نگه میداره. خلاصه اگه دنبال یه تجربه متفاوت از لینوکس هستین، Redox میتونه حسابی جذاب باشه.
www.redox-os.org
@Linuxor
🔥2
Linuxor ?
شاید Redox OS به گوشتون نخورده باشه ولی یه سیستمعامل متنبازه که از اول با Rust نوشته شده. یعنی خطاهای حافظهای که توی لینوکس یا ویندوز ممکنه باعث کرش یا باگ بشه، اینجا خیلی کم اتفاق میفته. کرنلشم میکروکرنل هست، پس اجزای سیستم جدا و ایزوله کار میکنن و این…
این رو دیپ شدم یکمی و به مفاهیم خوبی رسیدم، خیلی وقت هم بود که چیز خاصی ننوشتم گفتم بیام و این پست رو بنویسم یکمی گپ بزنیم راجعبهش.
سیستم عاملی که این بالا معرفی شد یه دیسترو لینوکسی نیست، به صورت کلی یه سیستمعامل مستقله.
خلاصه وار بخوام توضیح بدم Redox OS از یه میکروکرنل به جای کرنلیکپارچه یا همون Monolithic استفاده میکنه
حالا این یعنی چی؟
توی کرنلمونولوتیک همهی سرویسهای سیستم، مثل مدیریت حافظه و درایورها و سیستمفایلها و.. توی فضای کرنل (Kernel Space) ران میشن
اما اونطرف، میکروکرنل فقط یکسری از پراسسهای اساسی و اصلی رو توی خودش نگه میداره ( Threads و کانکشنهای بین پراسسها و..) و باقی سرویسها مثل درایور و سیستمفایل و نتورکمنیجر مثل یه سرویس مستقل که کاربر ران میکنه توی فضای کاربر (User Space) ران میشن.
حالا اصلا این جدا سازیه به چه دردی میخوره ؟
خلاصه بگم پایداری و امنیت.
منظور این نیست که کرنلمونولوتیک safe نیست یا هرچی ، منظور اینه که اگر مثلا یه درایوری (مثلا کارت صدا یا بلوتوث یا هرچی) به مشکل بخوره فقط همون سرویس خاص از کار میوفته و اینطوری نیست که دیگه سیستمعامل بالا نیاد و باقی داستانها، که خب این به نگهداری و عیبیابی راحتتر کمک میکنه.
مزیتش رو گفتیم اما یه عیبی داره، اونم اینه که این استراکچر چون سرویسهاش فضای جداگانه دارن ارتباط بین سرویسها نیاز به تعویض contex داره که میتونه نسبت به کرنلهای مونولوتیک یه مقدار سرعت کمتری داشته باشه.
و یه تفاوت دیگم که خوندم رو پست بعد میگم 🥸
سیستم عاملی که این بالا معرفی شد یه دیسترو لینوکسی نیست، به صورت کلی یه سیستمعامل مستقله.
خلاصه وار بخوام توضیح بدم Redox OS از یه میکروکرنل به جای کرنلیکپارچه یا همون Monolithic استفاده میکنه
حالا این یعنی چی؟
توی کرنلمونولوتیک همهی سرویسهای سیستم، مثل مدیریت حافظه و درایورها و سیستمفایلها و.. توی فضای کرنل (Kernel Space) ران میشن
اما اونطرف، میکروکرنل فقط یکسری از پراسسهای اساسی و اصلی رو توی خودش نگه میداره ( Threads و کانکشنهای بین پراسسها و..) و باقی سرویسها مثل درایور و سیستمفایل و نتورکمنیجر مثل یه سرویس مستقل که کاربر ران میکنه توی فضای کاربر (User Space) ران میشن.
حالا اصلا این جدا سازیه به چه دردی میخوره ؟
خلاصه بگم پایداری و امنیت.
منظور این نیست که کرنلمونولوتیک safe نیست یا هرچی ، منظور اینه که اگر مثلا یه درایوری (مثلا کارت صدا یا بلوتوث یا هرچی) به مشکل بخوره فقط همون سرویس خاص از کار میوفته و اینطوری نیست که دیگه سیستمعامل بالا نیاد و باقی داستانها، که خب این به نگهداری و عیبیابی راحتتر کمک میکنه.
مزیتش رو گفتیم اما یه عیبی داره، اونم اینه که این استراکچر چون سرویسهاش فضای جداگانه دارن ارتباط بین سرویسها نیاز به تعویض contex داره که میتونه نسبت به کرنلهای مونولوتیک یه مقدار سرعت کمتری داشته باشه.
و یه تفاوت دیگم که خوندم رو پست بعد میگم 🥸
❤4👌2⚡1👾1
FouXi
این رو دیپ شدم یکمی و به مفاهیم خوبی رسیدم، خیلی وقت هم بود که چیز خاصی ننوشتم گفتم بیام و این پست رو بنویسم یکمی گپ بزنیم راجعبهش. سیستم عاملی که این بالا معرفی شد یه دیسترو لینوکسی نیست، به صورت کلی یه سیستمعامل مستقله. خلاصه وار بخوام توضیح بدم Redox…
این Redox OS یه تفاوت دیگهام داره.
اونم اینه که از Static Linking استفاده میکنه. که باعث میشه برنامهها مستقل باشن
حالا این استاتیکلینکینگ یعنی چی ؟؟
مثلا وقتی برنامهنویس کد خودشو مینویسه، از کتابخونههای استاندارد (مثلا یه سری کتابخونه C) استفاده میکنه. توی این استاتیک لینکینگ، تو مرحله کامپایل و ساخت برنامه، کدهای لازم از این کتابخونهها مستقیماً توی فایل اجرایی نهایی (مثل یه فایل .exe تو ویندوز) کپی میشن. در نتیجه، شما یک فایل بزرگ اما به نحوی خودکفا دارین که برای اجرا به کتابخونه جداگانه نیازی نداره.
اینطوری شما میتونید یه برنامه رو به راحتی بین سیستمهای مختلف با کانفیگهای متفاوت جابهجا کنید و مطمئن باشین که مثلا به دلیل نبودن یه نسخه خاصی از یک کتابخونه مشترک، با خطا مواجه نمیشین.
اما خب، چون تمام کد و غیره و غیره از قبل یکجا جمع شده، ممکنه یکمی سرعت لود و اجرای اولیه برنامه بیشتر باشه.
و همین بزرگترین عیب این ساختاره
اگر مثلا ۱۰ برنامه مختلف روی سیستمتون باشه و همگی از یک کتابخونه استفاده کنن و اینها هم بصورت استاتیک لینک شده باشن، ۱۰ تا کپی از همون کد کتابخونه توی حافظهاتون بارگیری میشه.
بجز این مورد توی بروزرسانی ها (مثلا آپدیت های امنیتی) توی یه کتابخونه
نیازمند این هستیم که سایر برنامههایی که بهش وابستهان بازکامپایل بشن.
در کل اگر دوست داشتید میتونید این مفاهیم رو سرچ کنین و یکمی بیشتر آشنا بشید باهاش
یه سر هم به سایت www.redox-os.org بزنین پروژه جالبیه به نظرم
🦊❤️
اونم اینه که از Static Linking استفاده میکنه. که باعث میشه برنامهها مستقل باشن
حالا این استاتیکلینکینگ یعنی چی ؟؟
مثلا وقتی برنامهنویس کد خودشو مینویسه، از کتابخونههای استاندارد (مثلا یه سری کتابخونه C) استفاده میکنه. توی این استاتیک لینکینگ، تو مرحله کامپایل و ساخت برنامه، کدهای لازم از این کتابخونهها مستقیماً توی فایل اجرایی نهایی (مثل یه فایل .exe تو ویندوز) کپی میشن. در نتیجه، شما یک فایل بزرگ اما به نحوی خودکفا دارین که برای اجرا به کتابخونه جداگانه نیازی نداره.
اینطوری شما میتونید یه برنامه رو به راحتی بین سیستمهای مختلف با کانفیگهای متفاوت جابهجا کنید و مطمئن باشین که مثلا به دلیل نبودن یه نسخه خاصی از یک کتابخونه مشترک، با خطا مواجه نمیشین.
اما خب، چون تمام کد و غیره و غیره از قبل یکجا جمع شده، ممکنه یکمی سرعت لود و اجرای اولیه برنامه بیشتر باشه.
و همین بزرگترین عیب این ساختاره
اگر مثلا ۱۰ برنامه مختلف روی سیستمتون باشه و همگی از یک کتابخونه استفاده کنن و اینها هم بصورت استاتیک لینک شده باشن، ۱۰ تا کپی از همون کد کتابخونه توی حافظهاتون بارگیری میشه.
بجز این مورد توی بروزرسانی ها (مثلا آپدیت های امنیتی) توی یه کتابخونه
نیازمند این هستیم که سایر برنامههایی که بهش وابستهان بازکامپایل بشن.
در کل اگر دوست داشتید میتونید این مفاهیم رو سرچ کنین و یکمی بیشتر آشنا بشید باهاش
یه سر هم به سایت www.redox-os.org بزنین پروژه جالبیه به نظرم
🦊❤️
🔥5⚡1👾1
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
حالا میتونید با کمک چتجیپیتی، چندتا از پرکاربردترین اپها رو وارد مکالمههاتون کنید. اولین اپهایی که با اوپنایآی همکاری کردن، شامل فیگما، اکسپدیا، بوکینگ، کنوا، کورسرا، زیلو و اسپاتیفای میشن.
بهعنوان مثال، میتونید با کمک چتجیپیتی و اسپاتیفای، پلیلیستهای شخصیسازیشده بسازید، یا وقتی دارید با اون دربارهی خرید خونه صحبت میکنید، بهتون باتوجهبه بودجهای که مشخص کردید، با کمک زیلو براتون خونههای مناسب رو نمایش بده یا برای رزرو هتل و برنامهریزی برای مسافرت، از اکسپدیا و بوکینگ کمک بگیره.
ابزار Apps SDK به توسعهدهندگان اجازه میده، بهجای ارتباط با API و پلاگین، بر پایهی Model Context Protocol (MCP) اپ خودشون رو با چتجیپیتی یکپارچه کنن. SDK فعلاً تو حالت پیشنمایش قرار داره و برای کاربران پلنهای رایگان، پرو و پلاس در دسترسه. [L]
🤓 abolfazl @geekalerts
بهعنوان مثال، میتونید با کمک چتجیپیتی و اسپاتیفای، پلیلیستهای شخصیسازیشده بسازید، یا وقتی دارید با اون دربارهی خرید خونه صحبت میکنید، بهتون باتوجهبه بودجهای که مشخص کردید، با کمک زیلو براتون خونههای مناسب رو نمایش بده یا برای رزرو هتل و برنامهریزی برای مسافرت، از اکسپدیا و بوکینگ کمک بگیره.
ابزار Apps SDK به توسعهدهندگان اجازه میده، بهجای ارتباط با API و پلاگین، بر پایهی Model Context Protocol (MCP) اپ خودشون رو با چتجیپیتی یکپارچه کنن. SDK فعلاً تو حالت پیشنمایش قرار داره و برای کاربران پلنهای رایگان، پرو و پلاس در دسترسه. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
آیا PHP یک زبان Blocking است؟
توی چند تا از مصاحبههای اخیرم این سؤال ازم پرسیده شد که: “PHP blocking هست یا نه؟”
گفتم بد نیست یه بار این موضوع رو دقیقتر بررسی کنیم.
زبان PHP ذاتاً thread-blocking هست.
یعنی وقتی یه عملیات I/O انجام میدین (مثلاً خوندن فایل، ارتباط با سوکت، یا درخواست شبکه)،
کل پردازش متوقف میمونه تا نتیجه اون عملیات برگرده.
به زبان ساده: اگه یه درخواست جدید به همون سرور برسه،
تا زمانی که پردازش درخواست قبلی تموم نشده،
درخواست جدید باید منتظر بمونه.
(FastCGI Process Manager) PHP-FPM
وظیفهاش اینه که برای هر درخواست، یه child process جدید بسازه
و اون رو به یکی از worker processها بده تا اجرا کنه.
اما نکته مهم اینه که اون پردازشِ داخل worker همچنان blocking هست.
حالا اگه همهی workerها درگیر باشن و تعدادشون به حداکثر تنظیمشده برسه،
درخواست جدید باید منتظر بمونه تا یکی از workerها آزاد بشه.
(در نتیجه هنوز هم ما با blocking مواجهیم، فقط به شکل مدیریتشدهتر.)
خب حالا سوالی که پیش ماید که آیا میتونیم PHP رو non-blocking کنیم؟
بله، تا حدی میشه!
با این شرط که درخواستهای I/O (که به کرنل وابسته هستن یا مثلا درخواست مربوط به دیتابیس)
توی thread جداگانه اجرا بشن.
اما این کار نیاز داره که خود برنامهنویس thread management رو هندل کنه،
و برای این کار باید Zend extension مربوط به threads فعال باشه.
نکته مهم: PHP-FPM خودش اجازهی استفاده از threadها رو به صورت مستقیم نمیده.
@DevTwitter | <Hossein Salehi/>
توی چند تا از مصاحبههای اخیرم این سؤال ازم پرسیده شد که: “PHP blocking هست یا نه؟”
گفتم بد نیست یه بار این موضوع رو دقیقتر بررسی کنیم.
زبان PHP ذاتاً thread-blocking هست.
یعنی وقتی یه عملیات I/O انجام میدین (مثلاً خوندن فایل، ارتباط با سوکت، یا درخواست شبکه)،
کل پردازش متوقف میمونه تا نتیجه اون عملیات برگرده.
به زبان ساده: اگه یه درخواست جدید به همون سرور برسه،
تا زمانی که پردازش درخواست قبلی تموم نشده،
درخواست جدید باید منتظر بمونه.
(FastCGI Process Manager) PHP-FPM
وظیفهاش اینه که برای هر درخواست، یه child process جدید بسازه
و اون رو به یکی از worker processها بده تا اجرا کنه.
اما نکته مهم اینه که اون پردازشِ داخل worker همچنان blocking هست.
حالا اگه همهی workerها درگیر باشن و تعدادشون به حداکثر تنظیمشده برسه،
درخواست جدید باید منتظر بمونه تا یکی از workerها آزاد بشه.
(در نتیجه هنوز هم ما با blocking مواجهیم، فقط به شکل مدیریتشدهتر.)
خب حالا سوالی که پیش ماید که آیا میتونیم PHP رو non-blocking کنیم؟
بله، تا حدی میشه!
با این شرط که درخواستهای I/O (که به کرنل وابسته هستن یا مثلا درخواست مربوط به دیتابیس)
توی thread جداگانه اجرا بشن.
اما این کار نیاز داره که خود برنامهنویس thread management رو هندل کنه،
و برای این کار باید Zend extension مربوط به threads فعال باشه.
نکته مهم: PHP-FPM خودش اجازهی استفاده از threadها رو به صورت مستقیم نمیده.
@DevTwitter | <Hossein Salehi/>
Forwarded from ⚝ (امیرحسین پناهےفر)
Kubernnetes from Pod to Prod 2025.pdf
30.7 MB
جزوه خوبیه واسه سلف لرنینگ k8s 👩💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from طبرستان گنو (تابلوسازی رنجبر)
friction
یک اپلیکیشن قدرتمند و همهکاره برای موشن گرافیک (Motion Graphics) است که به شما امکان میدهد انیمیشنهای وکتور و رستر را برای وب و ویدئو ایجاد کنید.
#نرمافزار_آزاد
یک اپلیکیشن قدرتمند و همهکاره برای موشن گرافیک (Motion Graphics) است که به شما امکان میدهد انیمیشنهای وکتور و رستر را برای وب و ویدئو ایجاد کنید.
#نرمافزار_آزاد
friction.graphics
Friction is a powerful and versatile motion graphics application that allows you to create vector and raster animations for web and video.
🔥3
Forwarded from Linuxor ?
با این ابزار جالب میتونید سرویس و سایت و API هاتون رو مانیتور کنید، خوبیش اینه که روی خود گیتهاب اکشنز اجرا میشه و نیازی به سرور مجزا ندارید و وقتی قطعی (downtime) شناسایی بشه GitHub بهصورت خودکار یک Issue باز میکنه و بعد از رفع مشکل اون رو میبنده.
اینطوری هیچ هزینه ای هم به سرویس های واسط نمیدین، آموزش استفادش هم از این لینک دنبال کنید :
upptime.js.org/docs
@Linuxor
اینطوری هیچ هزینه ای هم به سرویس های واسط نمیدین، آموزش استفادش هم از این لینک دنبال کنید :
upptime.js.org/docs
@Linuxor
Forwarded from Linuxor ?
میدونستین نسخه وب تلگرام از یه قابلیت معروف مرورگر به اسم Service Worker استفاده میکنه؟
سروریس ورکر مثل یه برنامه پشتصحنه توی مرورگره که بین مرورگر و شبکه قرار میگیره و تمام ترافیک رو هندل میکنه مثل یه پروکسب داخلی با دسترسی به کش، رمزنگاری و MTProto.
تلگرام ازش برای رمزنگاری کردن streamها، کش کردن مدیا، و دریافت ناتیفیکیشن استفاده میکنه.
در واقع تلگرام وب یه اپ native هستش که روی مرورگر سوار شده سرویس ورکر ها توی یه thread جدا اجرا میشن این یعنی:
رمزگشایی فایلها (مثلاً ویدیوهای MP4 یا voice) مرورگر رو کند نمیکنه و حتی آپلودها یا دانلودها میتونن توی پسزمینه ادامه پیدا کنن :)
@Linuxor
سروریس ورکر مثل یه برنامه پشتصحنه توی مرورگره که بین مرورگر و شبکه قرار میگیره و تمام ترافیک رو هندل میکنه مثل یه پروکسب داخلی با دسترسی به کش، رمزنگاری و MTProto.
تلگرام ازش برای رمزنگاری کردن streamها، کش کردن مدیا، و دریافت ناتیفیکیشن استفاده میکنه.
در واقع تلگرام وب یه اپ native هستش که روی مرورگر سوار شده سرویس ورکر ها توی یه thread جدا اجرا میشن این یعنی:
رمزگشایی فایلها (مثلاً ویدیوهای MP4 یا voice) مرورگر رو کند نمیکنه و حتی آپلودها یا دانلودها میتونن توی پسزمینه ادامه پیدا کنن :)
@Linuxor
Forwarded from Woland's Linux Journal (Woland)
This media is not supported in your browser
VIEW IN TELEGRAM