Forwarded from Byteforge / بایــت فورج 🛸
ترفند کاربردی لینوکسی برای حرفهایها:
فرض کن دنبال یه تیکه کد، یه پسورد یا یه کلمه خاص تو یه پروژه یزرگی...
نشستی grep میزنی، ده ساعت طول میکشه
اینجاست که قهرمان وارد میشه: ripgrep یا همون rg
نصبش خیلی راحته:
بعد نصب از این دستور استفاده کن :
با اجرای دستور بالا کل فایل هارو برات حستجو میکنه .
اگر بخوای دنبال یه فایل به خصوص بگردی دستورش اینجوری میشه
مقلا فقط فایل های پایتونی .
فرض کن دنبال یه تیکه کد، یه پسورد یا یه کلمه خاص تو یه پروژه یزرگی...
نشستی grep میزنی، ده ساعت طول میکشه
اینجاست که قهرمان وارد میشه: ripgrep یا همون rg
نصبش خیلی راحته:
sudo apt install ripgrep
بعد نصب از این دستور استفاده کن :
rg password
با اجرای دستور بالا کل فایل هارو برات حستجو میکنه .
اگر بخوای دنبال یه فایل به خصوص بگردی دستورش اینجوری میشه
مقلا فقط فایل های پایتونی .
rg "token" --type py
#os
#linux
#byteforge
@byteforge_chan 🛸
❤2
Forwarded from Byteforge / بایــت فورج 🛸
شکار فایل های بزرگ با یه دستور :
لینوکس/ مک :
ترمینال رو باز کن و این دستور رو بزن:
این کد چی کار میکنه؟
find /: همه جای سیستم رو میگرده.
-type f: فقط فایلا رو نگاه میکنه، پوشهها نه.
-size +100M: فایلای بالای 100 مگ رو پیدا میکنه (میتونی عوض کنی، مثلاً +1G برای بالای 1 گیگ).
چی نشون میده؟ مسیر فایلای سنگین (مثل /home/ali/videos/big_movie.mp4).
اگه خطای "دسترسی ممنوع" دیدی، اولش sudo بذار: sudo find / ...
———————————
ویندوز:
PowerShell رو باز کن و این دستور رو بزن:
این دستور چی کار میکنه؟
dir -r: همه فایلای تو پوشه و زیرپوشهها رو چک میکنه.
|: خروجی رو میفرسته به مرحله بعد.
? Length -gt 100MB: فقط فایلای بالای 100 مگ رو نشون میده.
چی نشون میده؟ مسیر فایلای بزرگ (مثل C:\Movies\film.mkv).
اگه بخوای حجم فایلا رو هم ببینی، اینو بزن:
لینوکس/ مک :
ترمینال رو باز کن و این دستور رو بزن:
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 🛸
Forwarded from Byteforge / بایــت فورج 🛸
🎯 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 نصب کنی و همه چیزو خودت کانفیگ کنی!
بعضی از ادما میگن به دردسرش نمیارزه 🤷🏻♂️
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
Forwarded from Byteforge / بایــت فورج 🛸
در دنیای امروز، داده نهتنها به عنوان یک دارایی بلکه بهمثابه ستون فقرات بسیاری از سامانههای نرمافزاری شناخته میشود. پایگاههای داده بستر مدیریت و پردازش این دادهها را فراهم میسازند. شناخت دقیق معماری و ویژگیهای انواع دیتابیسها، برای طراحی زیرساختهای پایدار، مقیاسپذیر و کارآمد حیاتی است
پایگاه داده چیست؟
پایگاه داده (Database) یک ساختار منطقی و گاهی فیزیکی برای ذخیرهسازی، بازیابی و مدیریت دادهها است که اغلب با استفاده از یک سامانه مدیریت پایگاه داده (DBMS) اداره میشود. هدف آن ایجاد یک لایه واسط برای تعامل مؤثر با دادهها، مستقل از جزئیات ذخیرهسازی پایینسطح است.
- دستهبندی انواع پایگاه داده :
پایگاه داده غیررابطهای (NoSQL) :
پایگاه داده توزیعشده (Distributed Database) :
پایگاه داده درونحافظهای (In-Memory) :
مفاهیم کلیدی در طراحی دیتابیس :
کاربردهای صنعتی پایگاه دادهها :
لپ کلام :
در عصر دادهمحور، انتخاب پایگاه داده مناسب وابسته به فاکتورهایی چون نوع داده، نیاز به انسجام، سرعت پاسخگویی، مقیاسپذیری و پیچیدگی روابط است. پایگاه دادههای رابطهای هنوز در بسیاری از سیستمهای مالی و سنتی انتخاب اول هستند، اما NoSQL با انعطافپذیری و مقیاسپذیری بالا، برای چالشهای دادههای بزرگ و سیستمهای غیرمتمرکز ایدهآل است.
پایگاه داده چیست؟
پایگاه داده (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
Forwarded from Byteforge / بایــت فورج 🛸
مدیریت بوتلودرهای اضافی UEFI با efibootmgr در لینوکس
اگه بعد از چندبار نصب لینوکس، توی منوی بوت سیستم عاملهای قدیمی یا خراب میبینی، با ابزار efibootmgr بهراحتی میتونی ورودیهای UEFI رو مدیریت کنی.
نمایش لیست ورودیها :
نمونه خروجی :
BootCurrent: ورودی فعلی که باهاش سیستم بالا اومده
BootOrder: ترتیب بوت
BootXXXX: هر ورودی موجود در NVRAM (ذخیرهشده در فریمور UEFI)
حذف یک ورودی خاص :
عدد 0003 شناسهی بوتی هست که میخوای پاک بشه (از خروجی دستور قبل بردار).
تنظیم ترتیب بوت:
مثلاً اول Ubuntu و بعد Windows.
تنظیم بوت پیشفرض :
پیدا کردن پارتیشن EFI :
مونت کردن :
حذف فایل های اضافی :
اگه بعد از چندبار نصب لینوکس، توی منوی بوت سیستم عاملهای قدیمی یا خراب میبینی، با ابزار 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
Forwarded from Byteforge / بایــت فورج 🛸
اگر اخیراً ویندوز ۱۱ رو آپدیت کردی، حتماً اینو بخون .
توی نسخههای جدید ویندوز ۱۱ (بهخصوص از 24H2 به بعد)، مایکروسافت بدون سر و صدا شروع کرده به فعال کردن BitLocker روی بعضی سیستمها.
این یعنی درایو SSD شما ممکنه رمزنگاری شده باشه، بدون اینکه خودتون خبر داشته باشید.
نتیجه؟
در بعضی سیستمها، مخصوصاً لپتاپهای قدیمیتر یا سیستمهایی که TPM ندارن، این موضوع میتونه باعث کاهش سرعت SSD بشه. گاهی تا ۲۰ درصد یا حتی بیشتر.
و اگه کلید بازیابی (Recovery Key) رو نداشته باشید، توی شرایط خاص ممکنه به کل اطلاعاتتون دسترسی نداشته باشید.
بازیابی هم فقط با همون حساب مایکروسافتی ممکنه که روی ویندوز sync شده .
چطور بفهمیم BitLocker فعاله یا نه؟
Command Prompt رو باز کن و این دستور رو بزن:
اگه دیدی فعاله، حتماً کلید بازیابی رو یه جای مطمئن ذخیره کن.
اگه بخوای غیرفعالش کنی:
برو به مسیر:
تنظیمات > حریم خصوصی و امنیت > رمزنگاری دستگاه
(تو بعضی نسخهها با عنوان Device Encryption نمایش داده میشه)
توی نسخههای جدید ویندوز ۱۱ (بهخصوص از 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
Forwarded from Byteforge / بایــت فورج 🛸
اجرای کانتینر بدون داکر! | تبدیل Docker Image به فایل اجرایی با dockerc .
یه ابزار متن بازه که تصاویر داکر رو به فایل اجرایی مستقل تبدیل میکنه ؛ بدون نیاز به نصب داکر یا دسترسی root . این ابزار اجرای کانتینرها رو بسیار سادهتر و قابلحملتر میکنه .
آپشن هایی که بهتون میده :
یه مثال اولیه :
نحوه نصب با استفاده از zig :
ریپو پروژه :
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 🛸
GitHub
GitHub - NilsIrl/dockerc: container image to single executable compiler
container image to single executable compiler. Contribute to NilsIrl/dockerc development by creating an account on GitHub.
🔥1
Forwarded from Byteforge / بایــت فورج 🛸
کدی که فکر میکنه راه نجات از انتظارهای بیهوده
تو دنیای 01 ها یکی از چیزایی که خیلیا ازش غافل میشن ولی میتونه کل ساختار یه برنامه رو تغییر بده، مفاهیم Synchronous و Asynchronous هستش .
اما دقیقاً یعنی چی؟
سنکرون
ساده، قابل پیشبینی… اما تو پروژه های سنگین شاید مشکل ساز باشه ،
آسنکرون
مثلاً وقتی منتظری کتری جوش بیاد، میری ایمیلتو چک میکنی .
آسنکرون بودن چه فایده ایی داره ؟
آسنکرون اینجاها بکار میاد
تو دنیای 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
Forwarded from Byteforge / بایــت فورج 🛸
https://github.com/hemansadeghi/Termify.git
هدف ساخت ریپو این بود که ابزار هایی که در بخش های
networking & web /monitoring/directory management/ development -data processing
در لینوکس استفاده میشن رو جمع کنم و توضیحات کوتاهی در موردشون بذارم که دسترسی راحت تری بهش داشته باشیم هم یه منبع جامع از ابزار های مهم و کاربردی باشه
این ریپو رو روزانه و پیوسته سعی میکنم اپدیتش کنم که کاملتر بشه دوستانی که مایل به مشارکت بودند خوشحال میشم مشارکت کنید و محتوای ریپو رو بهترش کنیم .
#tools
#byteforge
@byteforge_chan 🛸
GitHub
GitHub - hemansadeghi/Termify: A curated and ever-growing list of awesome terminal-based CLI tools for developers, sysadmins, and…
A curated and ever-growing list of awesome terminal-based CLI tools for developers, sysadmins, and power users. Clean, fast, and productive. - hemansadeghi/Termify
🔥2
Forwarded from Byteforge / بایــت فورج 🛸
https://github.com/hemansadeghi/Termify
ریپویی از ابزار های لینوکسی و خط فرمان CLI خوشحال میشم مشارکت کنید و اگر ابزار و پکیج کاربردی رو سراغ دارید بهش اضافه کنید ❤️🙋♂
#cli
#byteforge
@byteforge_chan 🛸
GitHub
GitHub - hemansadeghi/Termify: A curated and ever-growing list of awesome terminal-based CLI tools for developers, sysadmins, and…
A curated and ever-growing list of awesome terminal-based CLI tools for developers, sysadmins, and power users. Clean, fast, and productive. - hemansadeghi/Termify
❤1
Forwarded from Byteforge / بایــت فورج 🛸
OSINT_MiniGuide.pdf
787.1 KB
⭕️کتابچه "راهنمای مختصر اطلاعات آشکار" با عنوان Open Source Intelligence (OSINT) MiniGuide", 2025.
#book
#osint
#byteforge
@byteforge_chan 🛸
❤1