Forwarded from Linuxor ?
توی اینترنت پر آیکونه ولی همشون یا لایسنس دارن یا برای استفاده تجاری غیر رایگانن، این سایته یه لیستی از آیکون هارو درست کرده هرچند تعدادشون خیلی زیاد نیست ولی تحت لاینسس MIT هستن و تقریبا دستتون بازه بدون مشکل هرکاری باهاشون کنید
heroicons.com
@Linuxor
heroicons.com
@Linuxor
Forwarded from Linuxor ?
شرکت digitalplat یه طرح گذاشته میتونید دامنه رایگان بگیرید ازش ! کنترل کامل DNS هم دست خودتونه
github.com/DigitalPlatDev/FreeDomain
@Linuxor
github.com/DigitalPlatDev/FreeDomain
@Linuxor
Forwarded from Dev Feed
This media is not supported in your browser
VIEW IN TELEGRAM
یه نرم افزار فان و عجیبی وجود داره که با یه زبان کد نویسی مخصوص خودش به صورت گرافیکی امکان تولید موسیقی های مختلف رو فراهم میکنه!
این ابزار اوپن سورس، به نام ORCA ، زبانی رو ارائه میده که شامل اپراتور های مختلفی مثل حلقه ها، شروط، اعداد رندوم و.. میشه که در نهایت خروجی همشون میشه نوت های موسیقی. مخصوص برنامه نویس ها توسعه داده شده و برای وقتایی که حوصلتون سر رفته خیلی چیز بامزه ایه.
یه ویدیو نمونه از نحوه کار و ساخت موسیقی باهاش رو براتون قرار دادم، در نگاه اول خیلی سخت و عجیب به نظر میرسه، اما وقتی راجبش بخونید میفهمید چیز خاصی نیست و فقط نوت های موسیقی ای هستند که با اپراتور های شما به صورت گرافیکی تولید میشن، سپس به حرکت در میان و با برخورد به خروجی های صدا میترکن و باعث ایجاد صدای دلخواه شما میشن🎵
⚙️ @DevFeed01 | hamidreza01
این ابزار اوپن سورس، به نام ORCA ، زبانی رو ارائه میده که شامل اپراتور های مختلفی مثل حلقه ها، شروط، اعداد رندوم و.. میشه که در نهایت خروجی همشون میشه نوت های موسیقی. مخصوص برنامه نویس ها توسعه داده شده و برای وقتایی که حوصلتون سر رفته خیلی چیز بامزه ایه.
یه ویدیو نمونه از نحوه کار و ساخت موسیقی باهاش رو براتون قرار دادم، در نگاه اول خیلی سخت و عجیب به نظر میرسه، اما وقتی راجبش بخونید میفهمید چیز خاصی نیست و فقط نوت های موسیقی ای هستند که با اپراتور های شما به صورت گرافیکی تولید میشن، سپس به حرکت در میان و با برخورد به خروجی های صدا میترکن و باعث ایجاد صدای دلخواه شما میشن
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from .NET Internals
چیکار کنیم وقتی به اشتباه تو برنچ main پوش میکنیم؟!
دیروز داشتم کد میزدم و پوش میکردم یهو دیدم که دارم توی برنچ main پوش میکنم!!!
داشتیم pair-programming میکردیم و اصلا حواسم نبود ولی خوب همیشه یه راهی باید باشه، نه؟
باید این مراحل رو انجام بدیم:
1- پیدا کردن کامیت آخرین کامیت درست
با این دستور تاریخچه کامیت ها رو میتونیم ببینیم
2- تغییر برنج به کامیت درست
طبق تاریخچه بالا میخوایم به کامیت
3- پوش کردن تغییرات
با این دستور برنچ main رو آپدیت میکنیم
و تمام!
خوب چندتا سوال پیش میاد؟
1- چرا من تونسته بودم مستقیم روی برنچ main پوش کنم؟
چون ادمین ریپو هستم
2- خوب چرا پوش رو نبستی روی main؟
چون گیتاپ اگر بخوای Rule ست کنی برای ریپوی خصوصی باید گیتاپ Enterprise داشته باشی
دیروز داشتم کد میزدم و پوش میکردم یهو دیدم که دارم توی برنچ main پوش میکنم!!!
داشتیم pair-programming میکردیم و اصلا حواسم نبود ولی خوب همیشه یه راهی باید باشه، نه؟
باید این مراحل رو انجام بدیم:
1- پیدا کردن کامیت آخرین کامیت درست
git log --onelineبا این دستور تاریخچه کامیت ها رو میتونیم ببینیم
path\to\repo> git log --oneline
e74c0b4 (HEAD -> main) by mistake commit 2
d86e63f by mistake commit 1
ed658f3 latest good commit
7975f4e previous commits
2- تغییر برنج به کامیت درست
git reset --hard <commit-hash>طبق تاریخچه بالا میخوایم به کامیت
ed658f3 برگردیم پس:git reset --hard ed658f3
3- پوش کردن تغییرات
با این دستور برنچ main رو آپدیت میکنیم
git push origin main --force
و تمام!
خوب چندتا سوال پیش میاد؟
1- چرا من تونسته بودم مستقیم روی برنچ main پوش کنم؟
چون ادمین ریپو هستم
2- خوب چرا پوش رو نبستی روی main؟
چون گیتاپ اگر بخوای Rule ست کنی برای ریپوی خصوصی باید گیتاپ Enterprise داشته باشی
Forwarded from The Machine
.NET Internals
چیکار کنیم وقتی به اشتباه تو برنچ main پوش میکنیم؟! دیروز داشتم کد میزدم و پوش میکردم یهو دیدم که دارم توی برنچ main پوش میکنم!!! داشتیم pair-programming میکردیم و اصلا حواسم نبود ولی خوب همیشه یه راهی باید باشه، نه؟ باید این مراحل رو انجام بدیم: 1- پیدا…
چطوری مسیج کامیتهای گذشته رو عوض کنیم؟
یه چالش دیگه هم که اخیرا درموردش سرچ کردم و توی کار بهش برخوردیم این بود که بریم commit message های چند کامیت قبلی رو تغییر بدیم، کامیت آخر که راحت ترین راه براش کامند معروف زیر هست:
ولی برای مثلا تغییر دادن پیام کامیت دهم بهترین روش این هست:
Interactive Git Rebasing
با استفاده از کامند:
N تعداد کامیت هست
که از آخرین کامیت تا جایی که میخواین برین عقب میشه.
وقتی که یه interactive rebase انجام میدیم پشت صحنه گیت یه فایل تو دو لیست داخل ادیتور باز میکنه و کامیتها رو از از قدیمی ترین به جدیدترین ( بالا به پایین) نمایش میده و میتونیم انتخاب کنیم که مرحله بعدی برای کامیت چه کاری میخوایم انجام بدیم:
Pick: استفاده از کامیت به همون شکل فعلی
Reword: استفاده از کامیت ولی با ویرایش پیام
Edit: استفاده از کامیت اما با یه وقفه برای تغییر محتوا یا پیام
Squash: مرج کردن این کامیت با کامیت قبلی و با ترکیب کردن پیام اون ها
Fixup: مرج کامیت فعلی با کامیت قبلی بدون نگه داشتن پیام
Drop: حذف کامل کامیت
حالا که فهمیدیم چه آپشنهایی داریم برگردیم سر سناریوی خودمون، وقتی که ادیتور باز شد اون کامیتی که میخوایم رو پیدا میکنیم و دستور کنارش رو از pick به reword تغییر میدیم بعد فایل رو میبندیم وقتی فایل بسته میشه گیت برای اون کامیتی که reword داره یه ادیتور باز میکنه تا پیام رو ادیت کنیم.
و بعد هم rebase انجام میشه.
نکات قابل ملاحظه در کار تیمی:
قطعا این کار هیستوری رو عوض میکنه و اگه این ربپوی مشترک باشه باید از دستور
استفاده کنید که خب بقیه تیم هم باید rebase کنن یا کانفلیکت های احتمالی رو حل کنن که به نظرم به دردسرش نمیارزه.
و اینکه گیت یه قابلیت داره که میشه نوت اضافه کرد و ضمیمه کامیت کرد اگه خیلی توضیح ضروریای باشه که جا افتاده.
و در نهایت اگه ریپوی لوکال باشه بهتره که این راه رو بریم.
#git
یه چالش دیگه هم که اخیرا درموردش سرچ کردم و توی کار بهش برخوردیم این بود که بریم commit message های چند کامیت قبلی رو تغییر بدیم، کامیت آخر که راحت ترین راه براش کامند معروف زیر هست:
git command --ammendولی برای مثلا تغییر دادن پیام کامیت دهم بهترین روش این هست:
Interactive Git Rebasing
با استفاده از کامند:
git rebase -i Head~NN تعداد کامیت هست
که از آخرین کامیت تا جایی که میخواین برین عقب میشه.
وقتی که یه interactive rebase انجام میدیم پشت صحنه گیت یه فایل تو دو لیست داخل ادیتور باز میکنه و کامیتها رو از از قدیمی ترین به جدیدترین ( بالا به پایین) نمایش میده و میتونیم انتخاب کنیم که مرحله بعدی برای کامیت چه کاری میخوایم انجام بدیم:
Pick: استفاده از کامیت به همون شکل فعلی
Reword: استفاده از کامیت ولی با ویرایش پیام
Edit: استفاده از کامیت اما با یه وقفه برای تغییر محتوا یا پیام
Squash: مرج کردن این کامیت با کامیت قبلی و با ترکیب کردن پیام اون ها
Fixup: مرج کامیت فعلی با کامیت قبلی بدون نگه داشتن پیام
Drop: حذف کامل کامیت
حالا که فهمیدیم چه آپشنهایی داریم برگردیم سر سناریوی خودمون، وقتی که ادیتور باز شد اون کامیتی که میخوایم رو پیدا میکنیم و دستور کنارش رو از pick به reword تغییر میدیم بعد فایل رو میبندیم وقتی فایل بسته میشه گیت برای اون کامیتی که reword داره یه ادیتور باز میکنه تا پیام رو ادیت کنیم.
و بعد هم rebase انجام میشه.
نکات قابل ملاحظه در کار تیمی:
قطعا این کار هیستوری رو عوض میکنه و اگه این ربپوی مشترک باشه باید از دستور
git push --forceاستفاده کنید که خب بقیه تیم هم باید rebase کنن یا کانفلیکت های احتمالی رو حل کنن که به نظرم به دردسرش نمیارزه.
و اینکه گیت یه قابلیت داره که میشه نوت اضافه کرد و ضمیمه کامیت کرد اگه خیلی توضیح ضروریای باشه که جا افتاده.
git notes add -m "message" <commit hash>و در نهایت اگه ریپوی لوکال باشه بهتره که این راه رو بریم.
#git
Forwarded from Webinarfarsi | Soheib Kiani | وبینار فارسی
Webinarfarsi | Soheib Kiani | وبینار فارسی
روش رفع مسدود شدن اکانت لینکدین https://tajrobe.wiki/blog/fix-restricted-linkedin-account #کاربردی
Linkedin
۴ هفته طول کشید تا دوباره وارد اکانت لینکدینم بشم.
و راستشو بخواید، روز اول که پرید… حتی ناراحت نشدم، هنوز نفهمیدم چی شده، پاشدم…
و راستشو بخواید، روز اول که پرید… حتی ناراحت نشدم، هنوز نفهمیدم چی شده، پاشدم…
۴ هفته طول کشید تا دوباره وارد اکانت لینکدینم بشم.
و راستشو بخواید، روز اول که پرید… حتی ناراحت نشدم، هنوز نفهمیدم چی شده، پاشدم ۵صبح رفتم کوهنوردی :)
ولی قصه از اینجا شروع شد:
بعد از اینکه پریمیوم کردم، ۱۵ دقیقه بعد یهو از اکانت بیرونم کرد. چون کد دو مرحلهای…
و راستشو بخواید، روز اول که پرید… حتی ناراحت نشدم، هنوز نفهمیدم چی شده، پاشدم ۵صبح رفتم کوهنوردی :)
ولی قصه از اینجا شروع شد:
بعد از اینکه پریمیوم کردم، ۱۵ دقیقه بعد یهو از اکانت بیرونم کرد. چون کد دو مرحلهای…
Forwarded from RandRng
اگر از Docker Desktop استفاده میکنید حتما باید آپدیتش کنید؛ یک vulnerability سطح بالا توی نحوه پیادهسازی داره (آپدیت آخر مشکل رو حل کرده)
https://nvd.nist.gov/vuln/detail/CVE-2025-9074
این مورد باعث میشه با ۲ خط کد بشه تمام موارد امنیتی رو دور زد و به سیستم عامل اصلی دسترسی گرفت.
توی گزارش اصلی فقط ویندوز گفته شده (نمیدونم مک هم داره یا نه)
https://nvd.nist.gov/vuln/detail/CVE-2025-9074
این مورد باعث میشه با ۲ خط کد بشه تمام موارد امنیتی رو دور زد و به سیستم عامل اصلی دسترسی گرفت.
توی گزارش اصلی فقط ویندوز گفته شده (نمیدونم مک هم داره یا نه)
Forwarded from Linuxor ?
اینم یه لیست دیگه از دوره های رایگان و همراه با مدرک دانشگاه های معتبر برای مهندسی کامپیوتر
github.com/ForrestKnight/open-source-cs
@Linuxor
github.com/ForrestKnight/open-source-cs
@Linuxor
Forwarded from HICTE Blog (Hicte Bridge)
[ Source >> @srfirouzi_channel ]
#مهندسی_نرم_افزار
آنتیپترنها در برنامهنویسی
(الگوهای که باید از آنها دوری کرد)
در دنیای توسعه نرمافزار، الگوهای طراحی (Design Patterns) راهحلهایی اثباتشده برای مشکلات تکراری هستند. در مقابل، آنتیپترن (Anti-Pattern) ظاهراً راهحلی منطقی ارائه میدهد، اما در عمل به مشکلات جدی و هزینههای بلندمدت منجر میشود.
ویژگی کلیدی آنتیپترن این است که همیشه یک راهحل بهتر و جایگزین برای آن وجود دارد.
این مفهوم از دههی ۹۰ میلادی وارد ادبیات مهندسی نرمافزار شد و کتاب AntiPatterns (۱۹۹۸) به شناخته شدن آن کمک زیادی کرد.
نمونههای رایج آنتیپترنها
- اسپاگتی کد (Spaghetti Code): کدی درهمتنیده و بیساختار که تغییر یا توسعهاش کابوس است.
- شی خدا (God Object): کلاسی که بیش از حد مسئولیت دارد و اصل Single Responsibility را زیر پا میگذارد.
- چکش طلایی (Golden Hammer): استفاده از یک ابزار، متد یا تکنولوژی برای همهچیز، فقط به خاطر آشنایی یا راحتی.
- بهینهسازی زودهنگام (Premature Optimization): بهینهسازیای که اغلب پیچیدگی بیهوده ایجاد میکند.
- کپی و پیست (Copy-and-Paste Programming): تکرار کد در بخشهای مختلف به جای استفاده از انتزاع و ماژولار کردن.
- جریان مذاب (Lava Flow): باقی ماندن کدهای قدیمی و بلااستفاده که فهم و نگهداری پروژه را دشوار میکند.
- طراحی بیش از حد (Overdesign): افزودن پیچیدگی و امکانات غیرضروری برای نیازهایی که هنوز وجود ندارند
- و ...
چگونه از آنتیپترنها دوری کنیم؟
- از همه مهمتر آشنایی با آنتی پترن های مطرح
- بازبینی مستمر کد (Code Review).
- بازسازی ساختار کد (Refactoring) بدون تغییر رفتار.
- رعایت اصول ساده و پایهای مانند:
DRY (Don’t Repeat Yourself)
KISS (Keep It Simple, Stupid)
- انتخاب ابزار و تکنولوژی بر اساس نیاز واقعی، نه صرفاً تجربه یا سلیقه شخصی.
- تمرکز بر حل مسئلهی فعلی و پرهیز از طراحی بیشازحد برای آیندهای نامعلوم.
آنتیپترنها صرفاً «اشتباهات فردی» نیستند، بلکه تلههایی رایج در مسیر توسعه نرمافزارند. آنها در کوتاهمدت سودمند به نظر میرسند اما در بلندمدت به پیچیدگی و بدهی فنی منجر میشوند.
شناخت و پرهیز از این الگوها، یکی از مهمترین گامها برای ساخت نرمافزاری پایدار، قابلاعتماد و توسعهپذیر است.
🚁 Hicte Blog | (smm)
#مهندسی_نرم_افزار
آنتیپترنها در برنامهنویسی
(الگوهای که باید از آنها دوری کرد)
در دنیای توسعه نرمافزار، الگوهای طراحی (Design Patterns) راهحلهایی اثباتشده برای مشکلات تکراری هستند. در مقابل، آنتیپترن (Anti-Pattern) ظاهراً راهحلی منطقی ارائه میدهد، اما در عمل به مشکلات جدی و هزینههای بلندمدت منجر میشود.
ویژگی کلیدی آنتیپترن این است که همیشه یک راهحل بهتر و جایگزین برای آن وجود دارد.
این مفهوم از دههی ۹۰ میلادی وارد ادبیات مهندسی نرمافزار شد و کتاب AntiPatterns (۱۹۹۸) به شناخته شدن آن کمک زیادی کرد.
نمونههای رایج آنتیپترنها
- اسپاگتی کد (Spaghetti Code): کدی درهمتنیده و بیساختار که تغییر یا توسعهاش کابوس است.
- شی خدا (God Object): کلاسی که بیش از حد مسئولیت دارد و اصل Single Responsibility را زیر پا میگذارد.
- چکش طلایی (Golden Hammer): استفاده از یک ابزار، متد یا تکنولوژی برای همهچیز، فقط به خاطر آشنایی یا راحتی.
- بهینهسازی زودهنگام (Premature Optimization): بهینهسازیای که اغلب پیچیدگی بیهوده ایجاد میکند.
- کپی و پیست (Copy-and-Paste Programming): تکرار کد در بخشهای مختلف به جای استفاده از انتزاع و ماژولار کردن.
- جریان مذاب (Lava Flow): باقی ماندن کدهای قدیمی و بلااستفاده که فهم و نگهداری پروژه را دشوار میکند.
- طراحی بیش از حد (Overdesign): افزودن پیچیدگی و امکانات غیرضروری برای نیازهایی که هنوز وجود ندارند
- و ...
چگونه از آنتیپترنها دوری کنیم؟
- از همه مهمتر آشنایی با آنتی پترن های مطرح
- بازبینی مستمر کد (Code Review).
- بازسازی ساختار کد (Refactoring) بدون تغییر رفتار.
- رعایت اصول ساده و پایهای مانند:
DRY (Don’t Repeat Yourself)
KISS (Keep It Simple, Stupid)
- انتخاب ابزار و تکنولوژی بر اساس نیاز واقعی، نه صرفاً تجربه یا سلیقه شخصی.
- تمرکز بر حل مسئلهی فعلی و پرهیز از طراحی بیشازحد برای آیندهای نامعلوم.
آنتیپترنها صرفاً «اشتباهات فردی» نیستند، بلکه تلههایی رایج در مسیر توسعه نرمافزارند. آنها در کوتاهمدت سودمند به نظر میرسند اما در بلندمدت به پیچیدگی و بدهی فنی منجر میشوند.
شناخت و پرهیز از این الگوها، یکی از مهمترین گامها برای ساخت نرمافزاری پایدار، قابلاعتماد و توسعهپذیر است.
🚁 Hicte Blog | (smm)
Forwarded from Infrastructure Artists
یه حرکتی که امروز با iptables زدم رو خدمتتون بگم شاید به درد شما هم بخوره :))
معمولا تیم های امنیت خیلی از پورت ها رو میبندن ولی پورت ۸۰ و ۴۴۳ معمولا بازه برای سرویس وب و ریکوست های http
ما قرار بود یه سری دیتا رو از یه دیتاسنتر انتقال بدیم یه دیتاسنتر دیگه ولی تیم امنیت پورت sshرو بین دوتا دیتاسنتر بسته بود. فلذا ما نمیتونستیم با scp یا rsync دیتا رو انتقال بدیم.
اولین ایده این بود که دیتا بیاریم روی یه سرور واسط (مثلا لپ تاپ خودمون) و بعد از اونجا مجدد انتقالش بدیم رو سرور مقصد.
ولی یه کار دیگه هم میشه کرد.
معمولا شما وب سرورت تو محیط پروداکشن همیشه باید رو ۴۴۳ لیسن کنه و اصلا ریکوست پورت ۸۰ قبول نکنه یا اگرم قبول کرد ریدایرکت کنه به ۴۴۳.
من یه رول iptables زدم اگر درخواستی اومد به پورت 80 شما ریداریکت کن به ۲۲ و اینطوری قبل از اینکه وب سرور بخواد ریدارکت کنه تو لایه پایینتر شما داری ریدایرکت میکنی.
حالا ما الان داریم rsync رو روی پورت ۸۰ انجام میدیم که بازه و اینطوری تیم امنیت رو یه کوچولو دور میزنیم :))
پ.ن: میشه پورت sshرو هم انداخت روی ۸۰ که بازه ولی خب ما معذوریت داشتیم و امکانش نبود
معمولا تیم های امنیت خیلی از پورت ها رو میبندن ولی پورت ۸۰ و ۴۴۳ معمولا بازه برای سرویس وب و ریکوست های http
ما قرار بود یه سری دیتا رو از یه دیتاسنتر انتقال بدیم یه دیتاسنتر دیگه ولی تیم امنیت پورت sshرو بین دوتا دیتاسنتر بسته بود. فلذا ما نمیتونستیم با scp یا rsync دیتا رو انتقال بدیم.
اولین ایده این بود که دیتا بیاریم روی یه سرور واسط (مثلا لپ تاپ خودمون) و بعد از اونجا مجدد انتقالش بدیم رو سرور مقصد.
ولی یه کار دیگه هم میشه کرد.
معمولا شما وب سرورت تو محیط پروداکشن همیشه باید رو ۴۴۳ لیسن کنه و اصلا ریکوست پورت ۸۰ قبول نکنه یا اگرم قبول کرد ریدایرکت کنه به ۴۴۳.
من یه رول iptables زدم اگر درخواستی اومد به پورت 80 شما ریداریکت کن به ۲۲ و اینطوری قبل از اینکه وب سرور بخواد ریدارکت کنه تو لایه پایینتر شما داری ریدایرکت میکنی.
حالا ما الان داریم rsync رو روی پورت ۸۰ انجام میدیم که بازه و اینطوری تیم امنیت رو یه کوچولو دور میزنیم :))
پ.ن: میشه پورت sshرو هم انداخت روی ۸۰ که بازه ولی خب ما معذوریت داشتیم و امکانش نبود
Forwarded from Linuxor ?
This media is not supported in your browser
VIEW IN TELEGRAM
میدونستین توی ترمینال هم میشه جیسون رو بازکرد؟ این ابزار برای مواقع ضروری که گرافیک ندارین خیلی کارسازه؛
حتی میشه بدون باز کردن فایل جیسون اونو با کمک Autocomplete پیمایش کرد و توی آبجک ها و آرایه های جیسون حرکت کرد. فقط کافیه اسم فایل رو بنویسید و تب بزنید
fx file.json <TAB>
نصب:
fx.wtf/install
@Linuxor
حتی میشه بدون باز کردن فایل جیسون اونو با کمک Autocomplete پیمایش کرد و توی آبجک ها و آرایه های جیسون حرکت کرد. فقط کافیه اسم فایل رو بنویسید و تب بزنید
fx file.json <TAB>
نصب:
fx.wtf/install
@Linuxor
Forwarded from Linuxor ?
خیلیا دنبال یه پلتفرمی ان توش تیکه کد ذخیره کنن، با هم تیمی ها یاداشت ها و کد هارو ویرایش کنن و یه چیز جمو جور باشه که روی همه سیستم عاملای گوشی و دسکتاپ کار کنه! پیشنهاد میکنم Boosnote رو یه بار تست کنن واقعا چیز راحتیه :)
github.com/BoostIO/BoostNote-App
@Linuxor
github.com/BoostIO/BoostNote-App
@Linuxor
❤1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (Mohammad Khoshnava)
پشمتون بریزه ، این داوشمون میتونه حجم ایمیج های داکری شمارو تا 30 فاکینگ برابر کمتر کنه 🫥
بدون اینکه به هیچ مشکلی بربخورید میاد اینکارو برای اربابش که شما باشید انجام میده، هرچی آت و آشغال باشه میندازه دور یا مینیفای میکنه که فقط موارد لازم برای اجرای اوامر فرماندهی باقی بمونه
دمش گرم🩷
https://github.com/slimtoolkit/slim
✅ @SEYED_BAX
بدون اینکه به هیچ مشکلی بربخورید میاد اینکارو برای اربابش که شما باشید انجام میده، هرچی آت و آشغال باشه میندازه دور یا مینیفای میکنه که فقط موارد لازم برای اجرای اوامر فرماندهی باقی بمونه
دمش گرم
https://github.com/slimtoolkit/slim
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🛠 ساخت و فعالسازی حافظه Swap در لینوکس
1️⃣ ساخت فایل Swap (اینجا 8 گیگ):
2️⃣ تغییر سطح دسترسی (خیلی مهم!):
3️⃣ فرمت کردن فایل به Swap:
4️⃣ فعالکردن Swap:
5️⃣ بررسی وضعیت Swap:
اگر میخواید بعد از ریبوت هم فعال بمونه، این خط رو به /etc/fstab اضافه کنید:
نویسنده: حسین سیلانی
http://learninghive.ir
1️⃣ ساخت فایل Swap (اینجا 8 گیگ):
sudo fallocate -l 8G /swapfile
2️⃣ تغییر سطح دسترسی (خیلی مهم!):
sudo chmod 600 /swapfile
3️⃣ فرمت کردن فایل به Swap:
sudo mkswap /swapfile
4️⃣ فعالکردن Swap:
sudo swapon /swapfile
5️⃣ بررسی وضعیت Swap:
swapon --show
free -h
اگر میخواید بعد از ریبوت هم فعال بمونه، این خط رو به /etc/fstab اضافه کنید:
/swapfile none swap sw 0 0
نویسنده: حسین سیلانی
http://learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️ دانلود فایل با حداکثر سرعت در ترمینال با دستور aria2c
این دستور به aria2c میگوید که فایل موجود در آدرس YOUR_URL را با استفاده از 16 اتصال همزمان و با تقسیم فایل به 16 قطعه دانلود کند.
🔹-گزینه x 16: این گزینه تعداد اتصالات همزمان را به 16 تنظیم میکند. به عبارت دیگر، aria2c میتواند تا 16 اتصال جداگانه برای دانلود یک فایل برقرار کند.
🔹گزینه -s 16: این گزینه تعداد قطعات (segment) که فایل به آنها تقسیم میشود را به 16 تنظیم میکند. تقسیم فایل به قطعات کوچکتر میتواند به بهبود عملکرد دانلود کمک کند، در aria2c، فایل دانلودی به چندین سگمنت تقسیم میشود و هر سگمنت به صورت موازی دانلود میشود.
نویسنده: حسین سیلانی
http://learninghive.ir
aria2c -x 16 -s 16 'YOUR_URL'
این دستور به aria2c میگوید که فایل موجود در آدرس YOUR_URL را با استفاده از 16 اتصال همزمان و با تقسیم فایل به 16 قطعه دانلود کند.
🔹-گزینه x 16: این گزینه تعداد اتصالات همزمان را به 16 تنظیم میکند. به عبارت دیگر، aria2c میتواند تا 16 اتصال جداگانه برای دانلود یک فایل برقرار کند.
🔹گزینه -s 16: این گزینه تعداد قطعات (segment) که فایل به آنها تقسیم میشود را به 16 تنظیم میکند. تقسیم فایل به قطعات کوچکتر میتواند به بهبود عملکرد دانلود کمک کند، در aria2c، فایل دانلودی به چندین سگمنت تقسیم میشود و هر سگمنت به صورت موازی دانلود میشود.
نویسنده: حسین سیلانی
http://learninghive.ir