بهترین ابزار اسکرین شات گرفتن و snipping در لینوکس با قابلیت های خیلی زیاد:
https://github.com/flameshot-org/flameshot
#linux_tools
https://github.com/flameshot-org/flameshot
#linux_tools
GitHub
GitHub - flameshot-org/flameshot: Powerful yet simple to use screenshot software :camera_flash:
Powerful yet simple to use screenshot software :desktop_computer: :camera_flash: - GitHub - flameshot-org/flameshot: Powerful yet simple to use screenshot software :camera_flash:
یکی بهترین دانلود منیجر ها برای لینوکس
با قابلیت دانلود فایل های m3u8 :
https://github.com/filecxx/FileCentipede
#linux_tools
با قابلیت دانلود فایل های m3u8 :
https://github.com/filecxx/FileCentipede
#linux_tools
GitHub
GitHub - filecxx/FileCentipede: Cross-platform internet upload/download manager for HTTP(S), FTP(S), SSH, magnet-link, BitTorrent…
Cross-platform internet upload/download manager for HTTP(S), FTP(S), SSH, magnet-link, BitTorrent, m3u8, ed2k, and online videos. WebDAV client, FTP client, SSH client. - filecxx/FileCentipede
برای استفاده از نرم افزاری مشابه Microsoft Project در سیستم عامل لینوکس میتوان از ابزار project libre میتوان به شکل زیر استفاده کرد :
wget http://downloads.sourceforge.net/project/projectlibre/ProjectLibre/1.5.7/projectlibre_1.5.7-1.deb
dpkg -i projectlibre_1.5.7-1.deb That's it, now just type in the terminal
projectlibre
#linux_tools
wget http://downloads.sourceforge.net/project/projectlibre/ProjectLibre/1.5.7/projectlibre_1.5.7-1.deb
dpkg -i projectlibre_1.5.7-1.deb That's it, now just type in the terminal
projectlibre
#linux_tools
یه مدت بود یه دستور اساسی رو فراموشم شده بود و نمیدونستم بابت پیدا کردنش چی سرچ بزنم :) ،
داستان از این قراره که وقتی برای پروژه های پایتونی env میسازید و میخواید فایل requirements.txt اون پروژه ایجاد بشه و همچنین پکیجا بهش ایمپورت بشه ، وارد ترمینال بشید و env پروژه رو در حالت اکتیو بذارید و دستور زیر رو بزنید :
خدایا شکر که پایتون و پایپ رو داریم ❤️
#python
داستان از این قراره که وقتی برای پروژه های پایتونی env میسازید و میخواید فایل requirements.txt اون پروژه ایجاد بشه و همچنین پکیجا بهش ایمپورت بشه ، وارد ترمینال بشید و env پروژه رو در حالت اکتیو بذارید و دستور زیر رو بزنید :
pip freeze > requirements.txt
خدایا شکر که پایتون و پایپ رو داریم ❤️
#python
اتصال ژوپیتر نوت بوک به محیط مجازی جدید :
1-ابتدا چک میکنیم که با پایپ هم ژوپیتر نصب باشه :
2-بعد محیط مجازی رو میسازیم و وارد دایرکتوری که پوشه env ما در اون قرار داره میشیم و دستور زیر رو میزنیم تا به کرنل های ژوپیتر اضافه ش کنیم (در اینجا نام env ما venv. است ) :
#python
1-ابتدا چک میکنیم که با پایپ هم ژوپیتر نصب باشه :
pip install jupyter
2-بعد محیط مجازی رو میسازیم و وارد دایرکتوری که پوشه env ما در اون قرار داره میشیم و دستور زیر رو میزنیم تا به کرنل های ژوپیتر اضافه ش کنیم (در اینجا نام env ما venv. است ) :
python3 -m ipykernel install --user --name=.venv --display-name ".venv kernel"
#python
یکی دوساله دارم هر روز یه مقداری تمرین تایپ انجام میدم ، قبلا از rapid typing استفاده میکردم الان خیلی وقته که کل وقتم رو لینوکس میگذره ، واسه کسایی که دنبال یه چیز جذاب و سیمپل برا این کار میکردن یه سر به این بزنن :
https://github.com/lemnos/tt
#linux_tools
https://github.com/lemnos/tt
#linux_tools
🍇 نصب pycharm در لذتبخش ترین حالت و بالاترین سرعت در استفاده :
1-بهترین نسخه توی ریپو های snap هستش ، فقط با اون نصبش کنید :
2-بعد نصب برید پلاگین های غیرضروری رو غیرفعال کنید ، بعد آپشن typo رو هم غیر فعال کنید
3-از فونت fira استفاده کنید ، از پلاگینا برای آیکونا Atom material icon رو نصب کنید و برای خود تم کد ادیتور ، Xcode Theme رو نصب کنید.
#linux_tools
#python
1-بهترین نسخه توی ریپو های snap هستش ، فقط با اون نصبش کنید :
sudo snap install pycharm-community --classic
2-بعد نصب برید پلاگین های غیرضروری رو غیرفعال کنید ، بعد آپشن typo رو هم غیر فعال کنید
3-از فونت fira استفاده کنید ، از پلاگینا برای آیکونا Atom material icon رو نصب کنید و برای خود تم کد ادیتور ، Xcode Theme رو نصب کنید.
#linux_tools
#python
MMN-DEV</> pinned «🍇 نصب pycharm در لذتبخش ترین حالت و بالاترین سرعت در استفاده : 1-بهترین نسخه توی ریپو های snap هستش ، فقط با اون نصبش کنید : sudo snap install pycharm-community --classic 2-بعد نصب برید پلاگین های غیرضروری رو غیرفعال کنید ، بعد آپشن typo رو هم غیر فعال کنید…»
آموزش Lamda در پایتون به زبان ساده 🍌
لامبدا (lambda) در پایتون یه جور تابع کوچیک و بیاسم (anonymous function) هست که میتونی توی یه خط تعریفش کنی. بیشتر وقتها توی جاهایی استفاده میشه که نیاز به یه تابع ساده داری و نمیخوای با
فرم کلیش اینه:
- arguments: ورودیهایی که تابع میگیره (مثل x, y).
- expression: کاری که تابع انجام میده و نتیجهش رو برمیگردونه.
مثال:
فرض کن میخوای یه تابع بسازی که یه عدد رو دو برابر کنه:
هر دو یه کار میکنن! مثلاً
حالا کاربرد اصلیش کجاست؟ توی توابع مثل
خلاصه، لامبدا یه راه سریع و جمعوجور برای ساخت تابعهای کوتاهمدته، بدون اینکه اسم بذاری یا چند خط کد بنویسی.
#tutorial
#python
لامبدا (lambda) در پایتون یه جور تابع کوچیک و بیاسم (anonymous function) هست که میتونی توی یه خط تعریفش کنی. بیشتر وقتها توی جاهایی استفاده میشه که نیاز به یه تابع ساده داری و نمیخوای با
def یه تابع کامل بنویسی.فرم کلیش اینه:
lambda arguments: expression
- arguments: ورودیهایی که تابع میگیره (مثل x, y).
- expression: کاری که تابع انجام میده و نتیجهش رو برمیگردونه.
مثال:
فرض کن میخوای یه تابع بسازی که یه عدد رو دو برابر کنه:
def double(x):
return x * 2
double = lambda x: x * 2
هر دو یه کار میکنن! مثلاً
double(5) میشه 10.حالا کاربرد اصلیش کجاست؟ توی توابع مثل
()map(),filter یا sorted() که یه تابع ساده میخوان:numbers = [1, 3, 2, 4]
sorted_numbers = sorted(numbers, key=lambda x: x**2)
print(sorted_numbers)
خلاصه، لامبدا یه راه سریع و جمعوجور برای ساخت تابعهای کوتاهمدته، بدون اینکه اسم بذاری یا چند خط کد بنویسی.
#tutorial
#python
وقتی لینوکس نصب میکنین و قراره از پایتون 3 استفاده کنید ، این پکیج رو هم نصب داشته باشید که توی ساخت محیط مجازی به مشکل نخورید :
#tutorial
#python
#linux_tools
sudo apt install python-is-python3
#tutorial
#python
#linux_tools
MMN-DEV</>
LSB Steganography👇
به زبان ساده، LSB Steganography (مخفینگاری با بیت کم اهمیت) یه روش مخفی کردن اطلاعات توی یه فایل مثل عکس یا صدا هست، بدون اینکه کسی با چشم یا گوش معمولی بتونه متوجه بشه چیزی تغییر کرده.
چطور کار میکنه؟
هر فایل دیجیتال (مثل یه عکس) از یه سری اعداد تشکیل شده که رنگها یا صداها رو مشخص میکنن. این اعداد به صورت(صفر و یک) ذخیره میشن. توی این روش، ما از بیت کم اهمیت استفاده میکنیم. این بیت، کم اهمیتترین بخش هر عدد هست و تغییرش خیلی توی کیفیت فایل تاثیر نمیذاره.
مثلاً فرض کن توی یه عکس، رنگ یه پیکسل با عدد باینری
- اگه بخوایم
- اگه بخوایم
این تغییر انقدر کوچیکه که چشم آدم معمولی فرقش رو نمیفهمه.
مراحل :
1-یه فایل اصلی (مثل عکس) انتخاب میکنی.
2-پیام مخفی رو به باینری (صفر و یک) تبدیل میکنی.
3-بیتهای پیام رو یکییکی توی LSBهای فایل اصلی جایگزین میکنی.
4-فایل جدید رو ذخیره میکنی و میفرستی.
5-کسی که پیام رو میخواد بخونه، فقط LSBها رو نگاه میکنه و پیام رو استخراج میکنه.
یه مثال:
فرض کن پیامت "HI" باشه. توی کد ASCII، "H" میشه
#tutorial
چطور کار میکنه؟
هر فایل دیجیتال (مثل یه عکس) از یه سری اعداد تشکیل شده که رنگها یا صداها رو مشخص میکنن. این اعداد به صورت(صفر و یک) ذخیره میشن. توی این روش، ما از بیت کم اهمیت استفاده میکنیم. این بیت، کم اهمیتترین بخش هر عدد هست و تغییرش خیلی توی کیفیت فایل تاثیر نمیذاره.
مثلاً فرض کن توی یه عکس، رنگ یه پیکسل با عدد باینری
10101100 نشون داده بشه. بیت آخر (یعنی 0) کم اهمیتترین بیت هست. حالا اگه بخوایم یه پیام مخفی کنیم، این بیت رو تغییر میدیم:- اگه بخوایم
1 مخفی کنیم، میشه 10101101.- اگه بخوایم
0 مخفی کنیم، همون 10101100 میمونه.این تغییر انقدر کوچیکه که چشم آدم معمولی فرقش رو نمیفهمه.
مراحل :
1-یه فایل اصلی (مثل عکس) انتخاب میکنی.
2-پیام مخفی رو به باینری (صفر و یک) تبدیل میکنی.
3-بیتهای پیام رو یکییکی توی LSBهای فایل اصلی جایگزین میکنی.
4-فایل جدید رو ذخیره میکنی و میفرستی.
5-کسی که پیام رو میخواد بخونه، فقط LSBها رو نگاه میکنه و پیام رو استخراج میکنه.
یه مثال:
فرض کن پیامت "HI" باشه. توی کد ASCII، "H" میشه
01001000 و "I" میشه 01001001. حالا این صفر و یکها رو توی LSBهای پیکسلهای یه عکس جاسازی میکنی. کسی که عکس رو میبینه، فقط یه عکس معمولی میبینه.#tutorial
❤1👍1
MMN-DEV</>
به زبان ساده، LSB Steganography (مخفینگاری با بیت کم اهمیت) یه روش مخفی کردن اطلاعات توی یه فایل مثل عکس یا صدا هست، بدون اینکه کسی با چشم یا گوش معمولی بتونه متوجه بشه چیزی تغییر کرده. چطور کار میکنه؟ هر فایل دیجیتال (مثل یه عکس) از یه سری اعداد تشکیل…
در رابطه با این موضوع مخفی نگاری در LSB ها ، این یه پروژه جالب و ساده هست که یه متن بهش میدی و اون متنو با تکنیک LSB توی یک عکس نهان نگاریش میکنه و بلعکس ،
https://github.com/mmnosrati/ramzin
#github
https://github.com/mmnosrati/ramzin
#github
GitHub
GitHub - mmnosrati/ramzin: A Python tool for hiding and extracting secret messages in images using LSB steganography.
A Python tool for hiding and extracting secret messages in images using LSB steganography. - mmnosrati/ramzin
در هیچ صورتی در لینوکس vscode را توسط فایل اوریجینال خود سایتش نصب نکنید ، خیلی باگ دار و سنگینه و اصلا بهینه نیست ، بهترین راه استفاده از پکیج منیجر snap هستش ، به صورت زیر :
#linux_tools
#python
sudo snap install --classic code
#linux_tools
#python
👎2
کتابخونه
ولی اگه بخوای با سرورهایی کار کنی که فقط HTTP/2 یا HTTP/3 رو ساپورت میکنن (که این روزا داره بیشتر میشه)، ممکنه به مشکل بخوری یا حداقل عملکردت بهینه نباشه، چون HTTP/2 و HTTP/3 یه سری قابلیتهای خفنتر مثل سرعت بالاتر و مدیریت بهتر درخواستها دارن.
چه کتابخونههایی تو پایتون HTTP/2 و HTTP/3 رو ساپورت میکنن؟ چندتا گزینه خوب هست:
1. httpx: هم HTTP/1.1 رو ساپورت میکنه، هم HTTP/2. استفادهشم راحت و شبیه
تا HTTP/2 هم فعال بشه.
2. aiohttp: اگه با برنامهنویسی async کار میکنی، اینم گزینه خوبیه و HTTP/2 رو ساپورت میکنه. البته بیشتر برای کارای غیرهمزمان (asynchronous) مناسبه.
#python
requests تو پایتون از HTTP/1.1 استفاده میکنه و این تو بیشتر موارد مشکلی درست نمیکنه، چون هنوز خیلی از وبسایتها و APIها با HTTP/1.1 کار میکنن و سازگارن.ولی اگه بخوای با سرورهایی کار کنی که فقط HTTP/2 یا HTTP/3 رو ساپورت میکنن (که این روزا داره بیشتر میشه)، ممکنه به مشکل بخوری یا حداقل عملکردت بهینه نباشه، چون HTTP/2 و HTTP/3 یه سری قابلیتهای خفنتر مثل سرعت بالاتر و مدیریت بهتر درخواستها دارن.
چه کتابخونههایی تو پایتون HTTP/2 و HTTP/3 رو ساپورت میکنن؟ چندتا گزینه خوب هست:
1. httpx: هم HTTP/1.1 رو ساپورت میکنه، هم HTTP/2. استفادهشم راحت و شبیه
requests هست، فقط باید موقع نصب بگی :pip install httpx[http2]
تا HTTP/2 هم فعال بشه.
2. aiohttp: اگه با برنامهنویسی async کار میکنی، اینم گزینه خوبیه و HTTP/2 رو ساپورت میکنه. البته بیشتر برای کارای غیرهمزمان (asynchronous) مناسبه.
#python
اگه خودتون سایتی دارید
و خواستید از inspect سایت جلوگیری کنید
که کسی به منوی devtool دسترسی نداشته باشه ، توی سورس کد سایت ، این کد رو قرار بدید
#tutorial
و خواستید از inspect سایت جلوگیری کنید
که کسی به منوی devtool دسترسی نداشته باشه ، توی سورس کد سایت ، این کد رو قرار بدید
<noscript src="https://fastly.jsdelivr.net/npm/disable-devtool/disable-devtool.min.js" disable-devtool-auto disable-menu="true" url="https://www.cia.gov"></noscript>
#tutorial
تفاوت پارامترهای params و data در
پارامتر params در متد
پارامتر data اما دادهها رو توی بدنه (body) درخواست HTTP میفرسته و تو URL دیده نمیشه. این برای ارسال اطلاعات فرم (مثل نام کاربری و رمز عبور) یا دادههای بزرگتر مناسبه و میتونه دیکشنری، رشته یا حتی فایل باشه. مثلاً با `data={"username": "ali"}`، این اطلاعات به صورت مخفی توی بدنه درخواست میره و سرور اون رو پردازش میکنه.
#python
#tutorial
()requests.post کتابخانه requests :پارامتر params در متد
requests.post() برای ارسال پارامترهای کوئری (query parameters) به کار میره. این دادهها به صورت جفت کلید-مقدار (مثل ?id=1&name=ali) به انتهای URL اضافه میشن و معمولاً برای فیلتر کردن یا جستجو استفاده میشن. مثلاً اگه params={"key": "value"} بذارید، URL نهایی چیزی مثل https://example.com?key=value میشه و تو آدرس قابل مشاهده است.پارامتر data اما دادهها رو توی بدنه (body) درخواست HTTP میفرسته و تو URL دیده نمیشه. این برای ارسال اطلاعات فرم (مثل نام کاربری و رمز عبور) یا دادههای بزرگتر مناسبه و میتونه دیکشنری، رشته یا حتی فایل باشه. مثلاً با `data={"username": "ali"}`، این اطلاعات به صورت مخفی توی بدنه درخواست میره و سرور اون رو پردازش میکنه.
#python
#tutorial
MMN-DEV</>
چرا ORM ? 👇 #django
یکی از دلایل اصلی که توسعهدهندهها به سراغ جنگو میرن، وجود ORM یا همون Object-Relational Mapping قدرتمندش هست. حالا ORM چی هست؟ به زبان ساده، یه ابزار یا روشی هست که به شما اجازه میده به جای اینکه مستقیم با زبان SQL و دیتابیس کار کنید، با استفاده از کدهای پایتون و اشیاء (Objects) دیتابیستون رو مدیریت کنید. یعنی به جای نوشتن کوئریهای پیچیده SQL، شما مدلهایی رو توی پایتون تعریف میکنید و جنگو خودش این مدلها رو به جداول دیتابیس تبدیل میکنه. این باعث میشه که کار با دیتابیس خیلی سریعتر، تمیزتر و قابلفهمتر بشه.
1-رهایی از شر کوئری های پیچیده و دست و پا گیر
یکی از برتریهای بزرگ ORM جنگو اینه که شما رو از پیچیدگیهای دیتابیسهای مختلف آزاد میکنه. فرض کنید یه پروژه رو با دیتابیس SQLite شروع کردید، ولی بعداً تصمیم گرفتید به PostgreSQL یا MySQL مهاجرت کنید. اگه مستقیم با SQL کار کرده باشید، باید کلی از کوئریهاتون رو بازنویسی کنید چون هر دیتابیس syntax خاص خودش رو داره. اما با ORM جنگو، چون شما با پایتون کار میکنید و نه SQL خام، این تغییر دیتابیس خیلی راحتتر انجام میشه. جنگو خودش سازگاری رو مدیریت میکنه و شما فقط باید تنظیمات رو آپدیت کنید. این انعطافپذیری برای پروژههای بزرگ یا تیمی که ممکنه نیازهاشون تغییر کنه، یه مزیت بزرگه.
2-خدافظی با SQL Injection
یه مزیت دیگه اینه که ORM جنگو به شدت روی امنیت تمرکز داره. مثلاً وقتی از ORM استفاده میکنید، دیگه لازم نیست نگران حملاتی مثل SQL Injection باشید، چون جنگو به صورت خودکار ورودیها رو sanitize میکنه و مطمئن میشه که کد مخربی وارد دیتابیستون نشه.
3-ساده تر شدن تعریف روابط پیچیده بین جدولها
کار با روابط پیچیده بین جداول (مثل one-to-many یا many-to-many) خیلی سادهتر میشه. شما فقط توی مدلهاتون رابطهها رو تعریف میکنید و جنگو بقیه کار رو براتون انجام میده. این باعث میشه زمان توسعه کمتر بشه و کدهاتون خواناتر و قابلنگهداریتر بشه.
#django
1-رهایی از شر کوئری های پیچیده و دست و پا گیر
یکی از برتریهای بزرگ ORM جنگو اینه که شما رو از پیچیدگیهای دیتابیسهای مختلف آزاد میکنه. فرض کنید یه پروژه رو با دیتابیس SQLite شروع کردید، ولی بعداً تصمیم گرفتید به PostgreSQL یا MySQL مهاجرت کنید. اگه مستقیم با SQL کار کرده باشید، باید کلی از کوئریهاتون رو بازنویسی کنید چون هر دیتابیس syntax خاص خودش رو داره. اما با ORM جنگو، چون شما با پایتون کار میکنید و نه SQL خام، این تغییر دیتابیس خیلی راحتتر انجام میشه. جنگو خودش سازگاری رو مدیریت میکنه و شما فقط باید تنظیمات رو آپدیت کنید. این انعطافپذیری برای پروژههای بزرگ یا تیمی که ممکنه نیازهاشون تغییر کنه، یه مزیت بزرگه.
2-خدافظی با SQL Injection
یه مزیت دیگه اینه که ORM جنگو به شدت روی امنیت تمرکز داره. مثلاً وقتی از ORM استفاده میکنید، دیگه لازم نیست نگران حملاتی مثل SQL Injection باشید، چون جنگو به صورت خودکار ورودیها رو sanitize میکنه و مطمئن میشه که کد مخربی وارد دیتابیستون نشه.
3-ساده تر شدن تعریف روابط پیچیده بین جدولها
کار با روابط پیچیده بین جداول (مثل one-to-many یا many-to-many) خیلی سادهتر میشه. شما فقط توی مدلهاتون رابطهها رو تعریف میکنید و جنگو بقیه کار رو براتون انجام میده. این باعث میشه زمان توسعه کمتر بشه و کدهاتون خواناتر و قابلنگهداریتر بشه.
#django
مفهوم Dynamic URL در جنگو
یعنی آدرسهایی که یه بخششون متغیره، مثلاً:
این بخش متغیر (مثل عدد یا اسم) از URL گرفته میشه و به تابع مربوطه توی
🧩 چطوری تعریف میشه؟
🎯 انواع داده قابل استفاده در URL:
#django
یعنی آدرسهایی که یه بخششون متغیره، مثلاً:
/blog_post/532/ یا /user/ali/
این بخش متغیر (مثل عدد یا اسم) از URL گرفته میشه و به تابع مربوطه توی
views.py داده میشه.🧩 چطوری تعریف میشه؟
urls.py:path('blog_post/<int:id>/', views.blog_detail)views.py:def blog_detail(request, id):
return HttpResponse(f"پست شماره {id}")
🎯 انواع داده قابل استفاده در URL:
int --> <int:id>str --> <str:name>slug --> <slug:slug>path --> <path:foo>#django
👍1