Random shi- tutorials
208 subscribers
234 photos
28 videos
12 files
556 links
محتوای مفید برنامه نویسی و لینوکسی از سراسر دنیا ✍️
جوین شدن شما موجب شادی روح و روان ما میگردد😗
Download Telegram
ترفند کاربردی لینوکسی برای حرفه‌ای‌ها:

فرض کن دنبال یه تیکه کد، یه پسورد یا یه کلمه خاص تو یه پروژه یزرگی...
نشستی grep میزنی، ده ساعت طول میکشه

اینجاست که قهرمان وارد میشه: ripgrep یا همون rg

نصبش خیلی راحته:

sudo apt install ripgrep


بعد نصب از این دستور استفاده کن :
rg password


با اجرای دستور بالا کل فایل هارو برات حستجو میکنه .

اگر بخوای دنبال یه فایل به خصوص بگردی دستورش اینجوری میشه
مقلا فقط فایل های پایتونی .
rg "token" --type py


#os
#linux
#byteforge
@byteforge_chan 🛸
2
شکار فایل های بزرگ با  یه دستور   :

لینوکس/ مک :

ترمینال رو باز کن و این دستور رو بزن:

find / -type f -size +100M


این کد چی کار میکنه؟

find /: همه جای سیستم رو میگرده.

-type f: فقط فایلا رو نگاه میکنه، پوشه‌ها نه.

-size +100M: فایلای بالای 100 مگ رو پیدا میکنه (میتونی عوض کنی، مثلاً +1G برای بالای 1 گیگ).

چی نشون میده؟ مسیر فایلای سنگین (مثل /home/ali/videos/big_movie.mp4).

اگه خطای "دسترسی ممنوع" دیدی، اولش sudo بذار: sudo find / ...

———————————

ویندوز:

PowerShell رو باز کن و این دستور رو  بزن:

dir -r | ? Length -gt 100MB


این دستور چی کار میکنه؟

dir -r: همه فایلای تو پوشه و زیرپوشه‌ها رو چک میکنه.

|: خروجی رو میفرسته به مرحله بعد.

? Length -gt 100MB: فقط فایلای بالای 100 مگ رو نشون میده.

چی نشون میده؟ مسیر فایلای بزرگ (مثل C:\Movies\film.mkv).


اگه بخوای حجم فایلا رو هم ببینی، اینو بزن:

dir -r | ? Length -gt 100MB | select Name, @{N="SizeMB";E={$_.Length/1MB}}


#os
#windows
#linux
#mac
#byteforge
@byteforge_chan 🛸
🎯 Display Server و Window Manager چیه؟ فرقشون چیه؟ چرا باید برامون مهم باشه؟


🖥 Display Server و Window Manager.

Display Server چیه؟

‏Display Server (یا گاهی بهش Display Server Protocol هم میگن) اون چیزیه که توی سیستم‌عامل‌های گرافیکی وظیفه داره تا یه پل ارتباطی بین اپلیکیشن‌ها و کارت گرافیک ایجاد کنه. یعنی چی؟

فرض کن یه برنامه مثل Firefox می‌خواد یه پنجره باز کنه. خب! خودش نمیتونه مستقیم به مانیتور دسترسی داشته باشه. میاد با Display Server حرف میزنه و اون، تصویر رو روی صفحه‌نمایش میندازه.

📌 معروف‌ترین Display Serverها:

‏X11 (قدیمی ولی هنوز پرکاربرد)


‏Wayland (مدرن‌تر، امن‌تر، سریع‌تر)


‏ Window Manager چیه؟

حالا که Display Server تصویر رو نشون میده، یه چیزی لازمه که مدیریت کنه این پنجره‌ها کجا باشن، قاب داشته باشن یا نه، کی فوکوس بگیرن و غیره. این وظیفه به عهده‌ Window Manager هست.


‌‏Window Manager بهت اجازه می‌ده:

پنجره‌ها رو بکشی و بذاری اینور اونور صحفه نمایشت

‏fullscreen یا minimize کنی

حالت تایل (tile) یا شناور (floating) بذاری

و کلی تنظیمات ظاهری پیاده‌سازی کنی


📌 معروف‌ترین Window Managerها:

‏i3, bspwm (تایلینگ، سبک، مخصوص حرفه‌ای‌ها)

‏Openbox, Fluxbox (شناور، مینیمال)

‏KWin (تابعه KDE)

‏Mutter (تابعه GNOME)


‌‌‌‌‏ Display Server و Window Manager ممکنه یکی باشن؟

بله! بعضی وقت‌ها Display Server و Window Manager توی یه چیز واحد ترکیب میشن.

مثلاً در Wayland، خیلی از کامپوزیتورها (مثل Sway یا Weston) هم Display Server هستن هم Window Manager.

چرا اینا مهمن برامون؟

اگه دنبال سرعت و سبک بودن سیستم هستی (مثلاً با لپ‌تاپ قدیمی کار می‌کنی)، باید بدونی کدوم Window Manager سبک‌تره.

اگه کار دیزاین و گرافیکی می‌کنی، نوع Display Server مهمه (بعضی ابزارها فقط با X11 درست کار می‌کنن).

اگه بخوای کیبوردی همه کار کنی و با موس خداحافظی، Window Managerهای تایلینگ نجات‌دهنده هستن .


‏Display Server پل بین برنامه و صفحه‌نمایش :

‏X11، Wayland

‏Window Manager مسئول مدیریت پنجره‌ها i3، KWin، Openbox‏

وقتی یه (میزکار) مثل GNOME یا KDE رو نصب میکنی، توش هم Display Server هست، هم Window Manager، ولی اگه بخوای سبک کار کنی، میتونی فقط Window Manager نصب کنی و همه چیزو خودت کانفیگ کنی!
بعضی از ادما میگن به دردسرش نمیارزه 🤷🏻‍♂️




#os
#linux
#byteforge
@byteforge_chan 🛸
1
در دنیای امروز، داده نه‌تنها به عنوان یک دارایی بلکه به‌مثابه ستون فقرات بسیاری از سامانه‌های نرم‌افزاری شناخته میشود. پایگاه‌های داده بستر مدیریت و پردازش این داده‌ها را فراهم میسازند. شناخت دقیق معماری و ویژگی‌های انواع دیتابیس‌ها، برای طراحی زیرساخت‌های پایدار، مقیاس‌پذیر و کارآمد حیاتی است


پایگاه داده چیست؟
پایگاه داده (Database) یک ساختار منطقی و گاهی فیزیکی برای ذخیره‌سازی، بازیابی و مدیریت داده‌ها است که اغلب با استفاده از یک سامانه مدیریت پایگاه داده (DBMS) اداره میشود. هدف آن ایجاد یک لایه واسط برای تعامل مؤثر با داده‌ها، مستقل از جزئیات ذخیره‌سازی پایین‌سطح است.

- دسته‌بندی انواع پایگاه داده :
پایگاه داده رابطه‌ای (Relational Database)
معماری: مدل جدول‌محور با کلیدهای اصلی و خارجی (Primary & Foreign Keys)
ویژگی‌ها: پشتیبانی از ACID، نرمال‌سازی داده، یکپارچگی مرجع
نمونه‌ها: PostgreSQL، Oracle، SQL Server، MySQL
زبان کوئری: SQL (Structured Query Language)
مناسب برای: سیستم‌های دارای روابط پیچیده و نیازمند انسجام قوی داده‌ها مانند بانکداری، ERP

پایگاه داده غیررابطه‌ای (NoSQL) :
‏Document-based (مانند MongoDB): داده‌ها به صورت JSON یا BSON ذخیره می‌شوند
-‏Key-Value (مانند Redis): هر مقدار به یک کلید منحصربه‌فرد مرتبط است.
-‏Wide-column (مانند Cassandra): مشابه جداول رابطه‌ای اما با انعطاف در ساختار ستون‌ها.
-‏Graph-based (مانند Neo4j): مناسب مدل‌سازی موجودیت‌ها و ارتباطات بین آن‌ها با گره و یال.
-ویژگی‌ها: طراحی schema-less، مقیاس‌پذیری افقی، eventual consistency
مناسب برای: داده‌های بزرگ، غیرساخت‌یافته، تحلیل بلادرنگ، شبکه‌های اجتماعی، سیستم‌های IoT

پایگاه داده توزیع‌شده (Distributed Database) :

ویژگی‌ها : پارتیشن‌بندی داده (Sharding)، تکرار داده (Replication)، تحمل خطا
نمونه‌ها : CockroachDB، Cassandra، Google Spanner
کاربرد : سیستم‌های با قابلیت دسترسی بالا، geo-redundancy، پردازش توزیع‌شده

پایگاه داده درون‌حافظه‌ای (In-Memory) :
ویژگی کلیدی: ذخیره‌سازی داده در RAM برای کاهش زمان پاسخ به زیر میلی‌ثانیه
کاربرد: caching، سیستم‌های مالی بلادرنگ، پردازش رویدادهای سریع (Event Streaming)
نمونه‌ها :
‏Redis، MemSQL

مقایسه معماری SQL و NoSQL
SQL یا پایگاه‌داده‌های رابطه‌ای مبتنی بر مدل جدول‌محور و زبان استاندارد SQL هستند، از انسجام کامل داده (ACID) پشتیبانی میکنند و معمولاً به‌صورت عمودی مقیاس‌پذیرند؛ در حالی که NoSQL پایگاه‌داده‌ای غیررابطه‌ای با مدل‌های متنوع مانند Document، Key-Value، Graph و Column است، مقیاس‌پذیری افقی دارد، از ساختار schema-less استفاده میکند و بیشتر بر پایه انسجام نهایی (BASE) طراحی شده‌اند؛ انتخاب بین آن‌ها به نوع داده، نیاز به انسجام، و مقیاس پروژه بستگی دارد.

مفاهیم کلیدی در طراحی دیتابیس :
‏ACID vs BASE
‏ACID (Atomicity, Consistency, Isolation, Durability): برای تراکنش‌های بحرانی، تضمین انسجام کامل.
‏BASE (Basically Available, Soft state, Eventually consistent): طراحی برای مقیاس‌پذیری و تحمل خطا، با پذیرش تأخیر در انسجام داده.

‏CAP Theorem
هیچ پایگاه داده‌ای نمی‌تواند به‌صورت همزمان Consistency، Availability و Partition Tolerance را به‌طور کامل تضمین کند. باید بین آن‌ها trade-off انتخاب شود:

‏ CP: مثل MongoDB (Consistency + Partition Tolerance)
‏AP: مثل Cassandra (Availability + Partition Tolerance)
‏CA: فقط در سیستم‌های متمرکز ممکن است

کاربردهای صنعتی پایگاه داده‌ها :
در بانکداری از SQL و دیتابیس‌های درون‌حافظه‌ای برای پردازش سریع تراکنش‌ها و گزارش‌گیری استفاده میشود؛ در فروشگاه‌های آنلاین ترکیبی از SQL و NoSQL برای مدیریت موجودی، سفارشات و اطلاعات کاربران به کار میرود؛ شبکه‌های اجتماعی با دیتابیس‌های گراف و سندی برای ذخیره‌سازی روابط کاربران و محتوای تولیدی کار می‌کنند؛ سیستم‌های پزشکی اغلب به SQL برای امنیت و یکپارچگی سوابق سلامت بیماران متکی هستند؛ و در حوزه داده‌کاوی و هوش مصنوعی، از دیتابیس‌های ستونی و مخازن داده (Data Lakes) برای ذخیره، پردازش و آموزش مدل‌های تحلیلی بهره گرفته میشود.


لپ کلام 
:
در عصر داده‌محور، انتخاب پایگاه داده مناسب وابسته به فاکتورهایی چون نوع داده، نیاز به انسجام، سرعت پاسخ‌گویی، مقیاس‌پذیری و پیچیدگی روابط است. پایگاه داده‌های رابطه‌ای هنوز در بسیاری از سیستم‌های مالی و سنتی انتخاب اول هستند، اما NoSQL با انعطاف‌پذیری و مقیاس‌پذیری بالا، برای چالش‌های داده‌های بزرگ و سیستم‌های غیرمتمرکز ایده‌آل است.


#data
#database
#byteforge
@byteforge_chan 🛸
1
مدیریت بوت‌لودرهای اضافی UEFI با efibootmgr در لینوکس

اگه بعد از چندبار نصب لینوکس، توی منوی بوت سیستم‌ عامل‌های قدیمی یا خراب میبینی، با ابزار efibootmgr به‌راحتی میتونی ورودی‌های UEFI رو مدیریت کنی.

نمایش لیست ورودی‌ها :

sudo efibootmgr


نمونه خروجی :
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0002,0003
Boot0001* Ubuntu
Boot0002* Windows Boot Manager
Boot0003* oldOS


‏BootCurrent: ورودی فعلی که باهاش سیستم بالا اومده
‏BootOrder: ترتیب بوت
‏ BootXXXX: هر ورودی موجود در NVRAM (ذخیره‌شده در فریمور UEFI)



حذف یک ورودی خاص :

sudo efibootmgr -b 0003 -B


عدد 0003 شناسه‌ی بوتی هست که میخوای پاک بشه (از خروجی دستور قبل بردار).


تنظیم ترتیب بوت:
sudo efibootmgr -o 0001,0002


مثلاً اول Ubuntu و بعد Windows.


تنظیم بوت پیش‌فرض :

sudo efibootmgr -n 0001


در نظر بگیرید که
‏efibootmgr فقط ورودی‌ها رو از NVRAM پاک میکنه، اما فایل واقعی بوت‌لودرها توی پارتیشن EFI میمونن. اگه خواستی اون‌ها رو هم پاک کنی:



پیدا کردن پارتیشن EFI :
lsblk -f


مونت کردن :

sudo mount /dev/sdX1 /mnt


حذف فایل های اضافی :

sudo rm -r /mnt/EFI/OldOS





#bootloader
#linux
#os
#byteforge
@byteforge_chan🛸
1
اگر اخیراً ویندوز ۱۱ رو آپدیت کردی، حتماً اینو بخون .


توی نسخه‌های جدید ویندوز ۱۱ (به‌خصوص از 24H2 به بعد)، مایکروسافت بدون سر و صدا شروع کرده به فعال کردن BitLocker روی بعضی سیستم‌ها.
این یعنی درایو SSD شما ممکنه رمزنگاری شده باشه، بدون اینکه خودتون خبر داشته باشید.

نتیجه؟
در بعضی سیستم‌ها، مخصوصاً لپ‌تاپ‌های قدیمی‌تر یا سیستم‌هایی که TPM ندارن، این موضوع میتونه باعث کاهش سرعت SSD بشه. گاهی تا ۲۰ درصد یا حتی بیشتر.
و اگه کلید بازیابی (Recovery Key) رو نداشته باشید، توی شرایط خاص ممکنه به کل اطلاعاتتون دسترسی نداشته باشید.
بازیابی هم فقط با همون حساب مایکروسافتی ممکنه که روی ویندوز sync شده .

چطور بفهمیم BitLocker فعاله یا نه؟

‏Command Prompt رو باز کن و این دستور رو بزن:
manage-bde -status

اگه دیدی فعاله، حتماً کلید بازیابی رو یه جای مطمئن ذخیره کن.

اگه بخوای غیرفعالش کنی:
برو به مسیر:
Settings > Privacy & Security > Device Encryption


تنظیمات > حریم خصوصی و امنیت > رمزنگاری دستگاه


(تو بعضی نسخه‌ها با عنوان Device Encryption نمایش داده میشه)



اگه امنیت و کنترل کامل روی داده‌ها برات مهمه، این اتفاق شاید یه تلنگر باشه برای فکر کردن به گزینه‌های دیگه به‌جز ویندوز.🤷🏻‍♂️




#bitlocker
#windows_11
#byteforge
@byteforge_chan 🛸
🔥1
اجرای کانتینر بدون داکر! | تبدیل Docker Image به فایل اجرایی با dockerc .

‏dockerc

یه ابزار متن بازه که تصاویر داکر رو به فایل اجرایی مستقل تبدیل میکنه ؛ بدون نیاز به نصب داکر یا دسترسی root . این ابزار اجرای کانتینرها رو بسیار ساده‌تر و قابل‌حمل‌تر میکنه .

آپشن هایی که بهتون میده :
تبدیل Docker Image به فایل اجرایی (standalone)
اجرا بدون نیاز به داکر یا دسترسی root
پشتیبانی از معماری‌های x86_64 و ARM64
قابل اجرا روی لینوکس، مک و ویندوز
امکان تعریف متغیر محیطی و Mount کردن ولو

یه مثال اولیه :
dockerc --image docker://oven/bun --output bun


نحوه نصب با استفاده از zig :
git clone --recurse-submodules https://github.com/NilsIrl/dockerc.git
cd dockerc
zig build -Doptimize=ReleaseSafe -Dtarget=x86_64-linux-musl


ریپو پروژه :
https://github.com/NilsIrl/dockerc


#tools
#dockerc
#byteforge
@byteforge_chan 🛸
🔥1
کدی که فکر می‌کنه راه نجات از انتظارهای بیهوده

تو دنیای 01 ها یکی از چیزایی که خیلیا ازش غافل میشن ولی میتونه کل ساختار یه برنامه رو تغییر بده، مفاهیم Synchronous و Asynchronous هستش .

اما دقیقاً یعنی چی؟


سنکرون

توی این مدل، کدها یکی‌یکی اجرا میشن هر خط تا کامل نشه، بعدی صبر میکنه درست مثل آدمایی که پشت دستگاه ATM وایسادن؛ یکی یکی میان جلو .

print("در حال پردازش...")
print("اتمام عملیات.")


ساده، قابل پیش‌بینی… اما تو پروژه های سنگین شاید مشکل ساز باشه ،


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

مثلاً وقتی منتظری کتری جوش بیاد، میری ایمیلتو چک میکنی .

import asyncio

async def load_data():
await asyncio.sleep(2)
print("data loaded ")
asyncio.run(load_data())


آسنکرون بودن چه فایده ایی داره ؟
سرعت بالاتر بدون نیاز به سخت‌افزار قوی
بهینه‌سازی مصرف منابع
تجربه کاربری نرم و سریع
کار با هزاران درخواست بدون هنگ
مناسب برای میکروسرویس ها , API و اپ‌های Real-Time

آسنکرون اینجاها بکار میاد
سرورهای سبک و سریع مثل FastAPI
معماری‌های Microservices
سیستم‌های Cloud و Serverless
بازی‌ها و سیستم‌های لحظه‌ای
رابط‌های کاربری واکنش‌گرا و روان
ی پیشنهاد دوستانه
اگه برنامت پیچیدگی نداره و ساده‌ست، آسنکرون فقط پیچیدگی اضافه میکنه. ولی برای دنیای واقعی و پروژه‌های بزرگ، این ابزار مثل شمشیر نینجاست.

#developing
#byteforge
@byteforge_chan 🛸
👍1
https://github.com/hemansadeghi/Termify.git



هدف ساخت ریپو این بود که ابزار هایی که در بخش های
networking & web /monitoring/directory management/ development -data processing
در لینوکس استفاده میشن رو جمع کنم و توضیحات کوتاهی در موردشون بذارم که دسترسی راحت تری بهش داشته باشیم هم یه منبع جامع از ابزار های مهم و کاربردی باشه
این ریپو رو روزانه و پیوسته سعی میکنم اپدیتش کنم که کاملتر بشه دوستانی که مایل به مشارکت بودند خوشحال میشم مشارکت کنید و محتوای ریپو رو بهترش کنیم .

#tools
#byteforge
@byteforge_chan 🛸
🔥2
OSINT_MiniGuide.pdf
787.1 KB
⭕️کتابچه "راهنمای مختصر اطلاعات آشکار" با عنوان Open Source Intelligence (OSINT) MiniGuide", 2025.


#book
#osint
#byteforge
@byteforge_chan 🛸
1
در اغلب پروژه‌های مبتنی بر PostgreSQL، ضعف اصلی نه در خود دیتابیس، بلکه در بکاپ‌گیری نامنظم، دستی و بدون مانیتورینگ دیده میشه.

یک خطای انسانی، یک اسکریپت ناقص یا یک اختلال دیسک برای نابودی داده کافیه

اینجا Postgresus به‌عنوان یک راهکار بکاپ خودکار و self-hosted وارد میشه
Postgresus داخل زیرساخت پروژه اجرا خواهد شد و بدون وابستگی به SaaS، وظیفه زمان‌بندی، اجرا، نگهداری و گزارش بکاپ را برعهده خواهد گرفت.

قابلیت‌های فنی مهم:

اجرای بکاپ بر پایه pg_dump با امکان تعریف چندین Job مستقل
زمان‌بندی دقیق از سطح دقیقه تا هفتگی
تعریف چند مقصد ذخیره‌سازی به‌صورت هم‌زمان


شامل:

local filesystem
‏S3-compatible storage
مسیرهای network storage
نگهداری نسخه‌های قدیمی بر اساس سیاست Retention
داشبورد تحت وب برای مشاهده وضعیت Jobها
ارسال نوتیفیکیشن پس از هر Job موفق یا ناموفق
امکان تعریف چند PostgreSQL instance داخل یک پنل واحد

در سناریوی عملیاتی، معماری به این شکل پیاده‌سازی خواهد شد:
یک Container مرکزی Postgresus
اتصال امن به دیتابیس‌های Production یا Staging
ذخیره بکاپ روی Volume مجزا یا Object Storage
مانیتورینگ خروجی Jobها از طریق اعلان
راه‌اندازی پایه بر اساس Docker انجام خواهد شد و نیاز به نصب مستقیم ابزار روی هاست دیتابیس وجود نخواهد داشت.
این موضوع ریسک دسترسی مستقیم به سرور اصلی دیتابیس را نیز کاهش خواهد داد.


مزیت جدی نسبت به سرویس‌های ابری:


داده از زیرساخت پروژه خارج نخواهد شد
وابستگی به سرویس ثالث ایجاد نخواهد شد
هزینه اشتراک ماهانه صفر باقی خواهد ماند
امکان کنترل کامل سطح دسترسی و امنیت وجود خواهد داشت
سورس پروژه روی GitHub به‌صورت عمومی منتشر شده:
https://github.com/RostislavDugin/postgresus

نکته فنی واقع‌بینانه :
برای دیتابیس‌های بسیار سنگین با نیاز به WAL Archiving، Point-in-Time Recovery و بکاپ تفاضلی، ابزارهایی مانند pgBackRest انتخاب منطقی‌تری خواهند بود.
اما در اغلب پروژه‌های واقعی، Postgresus پوشش کامل نیاز بکاپ اتومات را فراهم خواهد کرد.



#DevOps
#database
#tools
#postgres
#byteforge
@byteforge_chan 🛸
2
doh یه ابزار خط‌فرمان سبکه که باهاش DNS رو به شکل DNS over HTTPS میفرستی یعنی به‌جای اینکه درخواست DNS معمولی و قابل شنود بفرستی، کوئری داخل HTTPS روی پورت ۴۴۳ میره سمت Cloudflare (1.1.1.1) و رمزنگاری میشه

به درد وقتایی میخوره که میخوای بدون درگیر شدن با DNS سیستم‌عاملت دامنه‌ها رو resolve کنی یا وقتی DNS اینترنتت درست جواب نمیده، فیلتره یا دستکاری شده. برای دیباگ شبکه هم خیلی خوبه چون مستقیم میبینی هر دامنه دقیقاً چه رکوردایی برمیگردونه.


doh a google.com
doh mx gmail.com
doh txt example.com


لینک ریپو :

https://github.com/mxssl/doh

#tools
#DevOps
#byteforge
@byteforge_chan 🛸
❤‍🔥2