Ninja Learn | نینجا لرن
1.26K subscribers
96 photos
36 videos
11 files
307 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
دوستان توی X (توئیتر سابق) اکانت باز کردم و احتمالا اونجاهم پست بزارم
دوست داشتید میتونید فالو داشته باشید که اگه پست گذاشتم استفاده کنید.

لینک اکانت:👇
https://x.com/mohammad_stdout?t=cU6VCDqEQhyU2SO5AtqkGw&s=09

#️⃣ #link


🥷 CHANNEL | GROUP
👍9👎2
خب خب خب WebSocket در Fastapi 🌀

امروز می‌خوام درباره‌ی یه موضوع باحال و کاربردی تو دنیای وب حرف بزنم: پیاده‌سازی WebSocket در FastAPI اگه دنبال ساخت اپلیکیشن‌های realtime مثل چت، داشبوردهای زنده یا بازی‌های آنلاین هستین، این پست براتون خیلی مفیده. پس با من همراه باشین تا با هم یاد بگیریم WebSocket چیه و چطور می‌تونیم تو FastAPI ازش استفاده کنیم.

🧠 WebSocket چیه و چرا مهمه؟
‏ WebSocket یه پروتکل ارتباطیه که به کلاینت (مثل مرورگر) و سرور اجازه می‌ده یه ارتباط دوطرفه و همیشگی داشته باشن. برعکس HTTP که فقط یه درخواست می‌فرستی و یه پاسخ می‌گیری، WebSocket این امکان رو می‌ده که هر دو طرف هر وقت خواستن پیام بفرستن و بگیرن، بدون اینکه نیاز باشه کلاینت مدام درخواست بفرسته. این برای اپلیکیشن‌هایی که نیاز به آپدیت‌های زنده دارن، مثل چت روم‌ها، اعلان‌های realtime یا بازی‌های آنلاین، عالیه

🚀 FastAPI و WebSocket

FastAPI یه فریم‌ورک وب مدرن و سریع برای پایتونه. یکی از قابلیت‌های باحالش هم پشتیبانی از WebSocketه. FastAPI از Starlette استفاده می‌کنه (یه فریم‌ورک ASGI سبک و قدرتمند)، و همین باعث می‌شه بتونیم به راحتی WebSocket رو پیاده‌سازی کنیم.

🛠 چطوری WebSocket رو تو FastAPI پیاده‌سازی کنیم؟

برای شروع، باید از کلاس WebSocket تو FastAPI استفاده کنیم. بیاین با یه مثال ساده شروع کنیم:
from fastapi import FastAPI, WebSocket

app = FastAPI()

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
while True:
data = await websocket.receive_text()
await websocket.send_text(f"پیامت این بود: {data}")

تو این کد:
یه endpoint به اسم /ws ساختیم.

وقتی کلاینت بهش وصل می‌شه، سرور با accept() ارتباط رو قبول می‌کنه.

بعدش تو یه حلقه پیام‌های کلاینت رو می‌گیره و همونو برمی‌گردونه.


به این می‌گن یه Echo Server ساده هر چی کلاینت بفرسته، سرور عینشو برمی‌گردونه.

📡 یه مثال پیشرفته‌تر: چت روم با WebSocket

حالا بیاین یه چیز باحال‌تر بسازیم، مثلاً یه چت روم که چندتا کلاینت بتونن بهش وصل بشن و پیام‌هاشون رو به هم بفرستن. برای این کار، باید اتصال‌های فعال رو مدیریت کنیم. یه کلاس به اسم ConnectionManager می‌سازیم که لیست اتصال‌ها رو نگه داره و بتونیم بهشون پیام بفرستیم یا به همه broadcast کنیم.
from fastapi import FastAPI, WebSocket
from typing import List

app = FastAPI()

class ConnectionManager:
def __init__(self):
self.active_connections: List[WebSocket] = []

async def connect(self, websocket: WebSocket):
await websocket.accept()
self.active_connections.append(websocket)

def disconnect(self, websocket: WebSocket):
self.active_connections.remove(websocket)

async def send_personal_message(self, message: str, websocket: WebSocket):
await websocket.send_text(message)

async def broadcast(self, message: str):
for connection in self.active_connections:
await connection.send_text(message)

manager = ConnectionManager()

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await manager.connect(websocket)
try:
while True:
data = await websocket.receive_text()
await manager.send_personal_message(f"تو نوشتی: {data}", websocket)
await manager.broadcast(f"یکی گفت: {data}")
except Exception as e:
print(f"خطا: {e}")
finally:
manager.disconnect(websocket)

اینجا چی داریم؟
‏ConnectionManager یه کلاسه که اتصال‌های فعال رو تو یه لیست نگه می‌داره.
وقتی کلاینت وصل می‌شه، به لیست اضافه می‌شه (connect) و وقتی قطع می‌شه، حذف می‌شه (disconnect).

‏send_personal_message به یه کلاینت خاص پیام می‌فرسته.

‏broadcast به همه کلاینت‌های وصل‌شده پیام رو می‌فرسته.

تو endpoint، پیام کلاینت رو می‌گیریم، به خودش یه جواب شخصی می‌دیم و به بقیه هم broadcast می‌کنیم.

جمع‌بندی

‏WebSocket تو FastAPI به شما این امکان رو می‌ده که اپلیکیشن‌های realtime و جذاب بسازین. از چت روم‌ها گرفته تا داشبوردهای زنده و بازی‌های آنلاین.

خب اینم از این امید وارم مفید بوده باشه :]

#️⃣  #fastapi #backend #python


🥷 CHANNEL | GROUP
👍11👌53🔥2👏1🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️کاربرهای سیستم عامل های مختلف:

تجربه ی کار با سیستم عامل های دیگه مثل BSD رو داشتین؟🤔

#️⃣ #linux #bsd #meme


🐧 CHANNEL | GROUP
🤣8
دوستان کدوم پلتفرم ها رو برای گذاشتن مقاله پیشنهاد میدید؟
👍7
Ninja Learn | نینجا لرن
دوستان کدوم پلتفرم ها رو برای گذاشتن مقاله پیشنهاد میدید؟
احتمالا مقاله هم بزارم
بیشتر راجب تکنولوژی های بروزه که محتوای زیادی براشون نیست.
👍7👎1
شاید باورتون نشه ولی ایشون سگاروعه


🥷 CHANNEL | GROUP
21💔1
خب خب خب آشنایی با Windows Subsystem for Linux (WSL) 🐧

امروز می‌خوایم درباره‌ی یه ابزار کاربردی تو ویندوز حرف بزنیم: Windows Subsystem for Linux یا به اختصار WSL. اگه تا حالا باهاش کار نکردین، حتماً این پست رو بخونین، چون قراره کلی چیزای جدید یاد بگیرین


🧠 WSL چیه؟

Windows Subsystem for Linux (WSL)‏ یه ویژگی تو ویندوز ۱۰ و ۱۱ هست که به شما اجازه می‌ده یه محیط لینوکس رو مستقیماً روی ویندوز اجرا کنین. یعنی می‌تونین دستورات لینوکس رو اجرا کنین، فایل‌های لینوکس رو مدیریت کنین و حتی برنامه‌های لینوکسی رو اجرا کنین، همه اینا بدون اینکه نیاز به ماشین مجازی یا دوال بوت داشته باشین. این ابزار برای توسعه‌دهنده‌ها، به خصوص کسایی که با پروژه‌های open source کار می‌کنن، خیلی مفیده چون منابع کمتری نسبت به یه ماشین مجازی کامل مصرف می‌کنه و کار باهاش خیلی راحت‌تره.

📚 نسخه‌های WSL

‏WSL دو نسخه داره که هر کدوم ویژگی‌های خاص خودشون رو دارن:

1️⃣WSL 1:
این نسخه سال ۲۰۱۶ معرفی شد و یه لایه‌ی سازگاری بود که از کرنل ویندوز برای اجرای برنامه‌های لینوکسی استفاده می‌کرد. ولی چون از کرنل لینوکس واقعی استفاده نمی‌کرد، بعضی وقت‌ها محدودیت‌هایی داشت.

2️⃣‏ WSL 2:

این نسخه سال ۲۰۱۹ اومد و یه کرنل لینوکس واقعی رو تو یه ماشین مجازی سبک اجرا می‌کنه. به همین خاطر، عملکرد و سازگاری بهتری داره، به خصوص تو عملیات سنگین مثل کار با فایل‌ها.

‏WSL 2‏ از تکنولوژی Hyper-V (یه سیستم مجازی‌سازی تو ویندوز) استفاده می‌کنه و به همین دلیل توصیه می‌شه ازش استفاده کنین، چون امکانات بیشتری داره و سریع‌تره.


🚀 نصب WSL
نصب WSL خیلی سادست و بسته به نسخه‌ی ویندوزتون فرق می‌کنه:

تو ویندوز ۱۱:
‏WSL به صورت پیش‌فرض نصب شده، ولی باید یه توزیع لینوکس (مثل Ubuntu یا Debian) رو از Microsoft Store دانلود و نصب کنین.

تو ویندوز ۱۰:
باید WSL رو دستی نصب کنین. برای این کار، PowerShell رو با دسترسی Administrator باز کنین و دستور زیر رو اجرا کنین:

wsl --install


این دستور WSL رو همراه با یه توزیع پیش‌فرض (معمولاً Ubuntu) نصب می‌کنه. اگه می‌خواین توزیع دیگه‌ای نصب کنین، از این دستور استفاده کنین:

wsl --install -d <Distribution Name>


مثلاً برای نصب Debian:

wsl --install -d Debian


‏WSL‏ از توزیع‌های مختلفی مثل Ubuntu، Debian، Kali و Fedora پشتیبانی می‌کنه که می‌تونین هر کدوم رو که دوست دارین انتخاب کنین.


🛠 استفاده از WSL

با WSL، می‌تونین یه محیط توسعه‌ی کامل لینوکس رو تو ویندوز داشته باشین. چند تا مثال از کارایی که می‌تونین بکنین:

دستورات لینوکس:
از دستوراتی مثل ls (البته تو لینوکس dir نیست، اینجا منظورم ls-مانندها بود)، grep، awk و غیره استفاده کنین.

ویرایشگرهای متنی:
می‌تونین از Vim، Emacs یا حتی VS Code با افزونه‌ی WSL کار کنین.
ابزارهای توسعه: Git، Docker، Node.js و خیلی چیزای دیگه رو نصب و استفاده کنین.

سرورهای وب:
می‌تونین سرورهایی مثل Apache یا Nginx رو تو WSL اجرا کنین و با مرورگر ویندوز بهشون دسترسی داشته باشین.


📂 دسترسی به فایل‌ها

یکی از ویژگی‌های جذاب WSL اینه که می‌تونین بین ویندوز و لینوکس فایل‌هاتون رو به اشتراک بذارین:

از WSL به ویندوز:
فایل‌های ویندوز تو مسیر /mnt/c (یا /mnt/d برای درایوهای دیگه) قابل دسترسی هستن.

از ویندوز به WSL:
فایل‌های لینوکس رو می‌تونین تو File Explorer ویندوز از مسیر \\wsl$\<Distribution Name> ببینین.

برای عملکرد بهتر، پیشنهاد می‌شه فایل‌های پروژه‌تون رو تو فایل‌سیستم لینوکس (نه درایو ویندوز) نگه دارین، به خصوص اگه از WSL 2 استفاده می‌کنین.


🔍 نکات و ترفندها
عملکرد بهتر با WSL 2:
WSL 2 به خاطر استفاده از کرنل واقعی لینوکس و Hyper-V، تو عملیات سنگین مثل کار با فایل‌ها خیلی بهتر عمل می‌کنه.

مدیریت توزیع‌ها:
می‌تونین چند تا توزیع لینوکس نصب کنین و با دستور
 wsl -d <Distribution Name>

بینشون جابه‌جا بشین.

به‌روزرسانی WSL:
برای آپدیت کردن WSL، از این دستور استفاده کنین:
wsl --update

دسترسی به GPU:
WSL 2 از GPU پشتیبانی می‌کنه که برای کارهای ماشین لرنینگ یا گرافیکی عالیه.

محدودیت‌ها:
‏WSL از systemd پشتیبانی نمی‌کنه، که ممکنه برای بعضی سرویس‌ها مشکل‌ساز باشه، ولی راه‌حل‌های غیررسمی برای این موضوع وجود داره.


✍️ جمع‌بندی
Windows Subsystem for Linux (WSL) یه ابزار فوق‌العاده‌ست که به شما اجازه می‌ده ویندوز و لینوکس رو با هم داشته باشین. چه توسعه‌دهنده باشین، چه فقط بخواین لینوکس رو امتحان کنین، WSL یه راه سریع و ساده برای این کاره.

#️⃣ #porgramming #wsl #linux #windows


🥷 CHANNEL | GROUP
👍102❤‍🔥1👌1
خب خب خب
اولین مقاله من که توی سایت medium پابلیش شد
(نسخه فارسیشم احتمالا یا تو خود مدیوم یا توی ویرگول میزارم)

خیلی خلاصه بخوام بگم
یه بست پرکتیسه برای ساختار فایل بندی پروژتون


امید وارم مفید واقع بشه 😊

(اگه مشکلی دیدید یا پیشنهادی داشتید میتونید توی کامنتای خود مقاله بهم بگید)

🔗 لینک مقاله
و از این لینک هم میتونید مطالعه کنید

#️⃣ #refrence


🥷 CHANNEL | GROUP
🤩14🔥74👏3❤‍🔥1👍1👌1
Ninja Learn | نینجا لرن pinned «خب خب خب اولین مقاله من که توی سایت medium پابلیش شد (نسخه فارسیشم احتمالا یا تو خود مدیوم یا توی ویرگول میزارم) خیلی خلاصه بخوام بگم یه بست پرکتیسه برای ساختار فایل بندی پروژتون امید وارم مفید واقع بشه 😊 (اگه مشکلی دیدید یا پیشنهادی داشتید میتونید توی…»
This media is not supported in your browser
VIEW IN TELEGRAM
😂😂


🥷 CHANNEL | GROUP
💔12🤣4👍1👎1
خب سلام دوستان 👋

هرکسی که میخواد توی پروژه های اوپن سورس Diramid (تیم توسعه نرم افزار های اوپن سورس) شرکت کنه

میتونه عضو این گروه بشه

https://t.iss.one/+WpLLMkght6w1ZDU0

برای هر پروژه یک تاپیک زده شده.
و توجه داشته باشید این گروه جای چت و گپ زدن نیست.
قبل از عضو شدن اگر مطمئن هستید که میخواید کمک کنید عضو بشید.

با تشکر از همه ی شما عزیزان ❤️


🥷 CHANNEL | GROUP
👍7
خب خب خب ORM چیه ؟ 🛸

امروز می‌خوام درباره‌ی یه موضوع مهم و کاربردی تو دنیای برنامه‌نویسی حرف بزنم: ORM یا همون Object-Relational Mapping.

🧠 ORM یعنی چی؟

ORM (Object-Relational Mapping) یه تکنیک تو برنامه‌نویسیه که داده‌های دیتابیس رو به شکل اشیاء (objects) تو زبون‌های شی‌گرا مثل پایتون، جاوا یا سی‌شارپ مدیریت می‌کنه. به بیان ساده، ORM یه پل ارتباطی بین دنیای شی‌گرایی (کلاس‌ها و اشیاء) و دنیای دیتابیس‌های رابطه‌ای (جداول و ستون‌ها) می‌سازه. با ORM دیگه لازم نیست مستقیم با کوئری‌های SQL کار کنی؛ در عوض، با همون زبون برنامه‌نویسی‌ات دیتابیس رو کنترل می‌کنی.

مثلاً به جای اینکه بنویسی:
SELECT * FROM users

می‌تونی تو پایتون با Django ORM اینجوری بنویسی:
users = User.objects.all()

و همون نتیجه رو بگیری

📚 ORM چطوری کار می‌کنه؟
فرض کن تو دیتابیست یه جدول به اسم users داری که ستون‌هاش اینان:
id، name و email

تو برنامه‌ات یه کلاس به اسم User می‌سازی که پراپرتی‌هایی مثل id، name و email داره. ORM این کلاس رو به جدول users توی دیتابیس مپ (map) می‌کنه. یعنی هر شیء از کلاس User نمایانگر یه رکورد تو جدول users می‌شه.

چند تا سناریو رو با هم ببینیم:

1⃣ ذخیره کردن داده:
یه شیء از کلاس User می‌سازی، مقادیرش رو پر می‌کنی و با یه متد مثل save() ذخیره‌اش می‌کنی. ORM این کار رو به یه دستور SQL (مثل INSERT) تبدیل می‌کنه و اجرا می‌کنه.

user = User(name='علی', email='[email protected]')
user.save()


2⃣ خوندن داده:
میتونی به جای کوئری SQL، از متدهایی مثل all() یا filter() استفاده می‌کنی. ORM پشت صحنه کوئری مناسب رو می‌سازه و داده‌ها رو به شکل اشیاء برمی‌گردونه.


   # همه کاربرها
users = User.objects.all()

# فیلتر کردن
ali_users =
User.objects.filter(name='علی')


به همین سادگی ORM تمام پیچیدگی‌های کار با دیتابیس رو از دید تو مخفی می‌کنه و یه رابط کاربری راحت بهت می‌ده.

البته هر orm با orm های دیگه فرق داره هرچی یه orm بیشتر abstraction انجام داده باشه استفاده ازش راحت تر میشه
ولی توی مقیاس بالاتر همین سادگی باعث پیچیدگی میشه.
🚀 ORM برای چی به وجود اومد؟

قبل از اینکه ORMها باشن، برنامه‌نویس‌ها مستقیم با SQL کار می‌کردن. (هرچند همین الانشم توی زبان های هایی که orm مناسبی براش ساخته نشده برنامه نویسان بصورت خام کد sql میزنن مثل برنامه نویسان golang)

این چند تا مشکل داشت و داره:

کدهای طولانی:
برای هر عملیات ساده، باید یه کوئری SQL می‌نوشتی که گاهی خیلی پیچیده می‌شد.

خطای زیاد:
یه اشتباه کوچیک تو کوئری (مثل یه typo) می‌تونست ساعت‌ها وقتت رو تلف کنه.

سختی نگهداری:
اگه ساختار دیتابیست عوض می‌شد (مثلاً یه ستون اضافه یا کم می‌شد)، باید همه کوئری‌ها رو دستی تغییر می‌دادی.

تفاوت پارادایم:
‏ SQL یه زبون declarative (اعلانی) هست، ولی زبون‌هایی مثل پایتون imperative (دستوری) هستن. این یعنی برنامه‌نویس باید مدام بین دو مدل فکری جابه‌جا می‌شد.

ORM اومد که این مشکلات رو حل کنه:

سادگی:
کار با دیتابیس مثل کار با اشیاء تو زبون خودت می‌شه.

امنیت:
‏ORMها معمولاً جلوی حملاتی مثل SQL Injection رو می‌گیرن.

انعطاف‌پذیری:
می‌تونی دیتابیس رو عوض کنی (مثلاً از MySQL بری به PostgreSQL) بدون اینکه کل کدت رو تغییر بدی.

سرعت توسعه:
چون کوئری‌نویسی کمتر می‌شه، وقت بیشتری برای منطق اصلی برنامه‌ات داری.

جمع‌بندی
ORM یه ابزار باحال و قدرتمنده که کار با دیتابیس رو برای برنامه‌نویس‌ها راحت‌تر، سریع‌تر و امن‌تر می‌کنه. با ORM دیگه لازم نیست با SQL خام کلنجار بری و می‌تونی با همون زبون برنامه‌نویسی‌ات همه‌چیز رو مدیریت کنی.

#️⃣ #database #sql #orm


🥷 CHANNEL | GROUP
14👍4
Fantastic
🤩19🔥2👍1
مقاله بعدی درمورد داکرایز کردن پروژه توی fastapi هست
(اگه ایده ای هم برای مقالات دارید خوشحال میشم بشنوم)
🔥17👍4
فردا کتاب boost your djangoDx رو میزارم :)
پیشاپیش عیدتون مبارک ❤️
🔥27
Boost Your Django DX (Adam Johnson) (Z-Library)-2.pdf
21.7 MB
اینم کتاب Boost your DjangoDX
امید وارم لذت ببرید :) ❤️

#️⃣ #book


🥷 CHANNEL | GROUP
18🔥3
کوکی‌کاتر خودمو زدم

میتونید با fastapi-cookiecutters یه پروژه FastAPI تمیز و آماده بسازین. و دیتابیس، Docker، هر چی بخوای اضافه می‌کنه

از PyPI میتونید دانلود کنید:

pip install fastapi-cookiecutters


تست کنین و بگین چطوره🚀

#️⃣ #package


🥷 CHANNEL | GROUP
👍10👎1🔥1
فرآیند بوت شدن سیستم های لینوکسی 🚀
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.

1️⃣ فاز اولیه: اجرا شدن فریمور (BIOS/UEFI)
وقتی دکمه‌ی پاور رو می‌زنی، اولین چیزی که اجرا می‌شه، BIOS (تو سیستم‌های قدیمی‌تر) یا UEFI (تو سیستم‌های جدید) هست. این قسمت سخت‌افزار رو بررسی می‌کنه و مطمئن می‌شه که قطعات اصلی (مثل رم، پردازنده و دیسک‌ها) درست کار می‌کنن.

تست اولیه: این مرحله به اسم POST (Power-On Self Test) شناخته می‌شه و اگه مشکلی باشه، مثلاً رم خراب باشه، معمولاً با یه سری بوق یا پیام خطا هشدار می‌ده.

پیدا کردن بوت لودر: بعد از تست سخت‌افزار، BIOS/UEFI دنبال دیسک قابل بوت می‌گرده (مثل SSD یا USB) و بوت‌لودر رو اجرا می‌کنه.

2️⃣ بوت‌لودر (GRUB یا systemd-boot)
بعد از اینکه دیسک بوت پیدا شد، بوت‌لودر (معمولاً GRUB) اجرا می‌شه. بوت‌لودر یه برنامه‌ی کوچیکه که وظیفه‌ی لود کردن کرنل لینوکس رو داره.

انتخاب سیستم‌عامل:
اگه چند تا سیستم‌عامل نصب کرده باشی (مثلاً لینوکس و ویندوز)، اینجا می‌تونی انتخاب کنی که کدوم یکی بوت بشه.

بارگذاری کرنل:
بعد از انتخاب سیستم‌عامل (یا بعد از چند ثانیه اگه گزینه‌ای انتخاب نشه)، بوت‌لودر کرنل لینوکس (فایل vmlinuz) رو بارگذاری می‌کنه.

3️⃣ بارگذاری کرنل و initramfs
اینجا کرنل لینوکس اجرا می‌شه و شروع به کنترل سخت‌افزار می‌کنه. اما چون هنوز فایل‌سیستم اصلی (Root) بارگذاری نشده، یه چیز به اسم initramfs وارد ماجرا می‌شه.

‏initramfs چیه؟
یه فایل موقتی که شامل درایورها و ابزارهای اولیه برای شناسایی و اتصال فایل‌سیستم اصلیه. به کرنل کمک می‌کنه که بتونه پارتیشن‌های دیسک رو بشناسه و مونت کنه.

4️⃣ مونت شدن روت و اجرای systemd
بعد از اینکه کرنل تونست به فایل‌سیستم اصلی دسترسی پیدا کنه، حالا سیستم آماده‌ی راه‌اندازی سرویس‌ها و بقیه‌ی چیزهاست.

ورود systemd:
تو اکثر توزیع‌های مدرن لینوکس، systemd اجرا می‌شه و وظیفه‌ی مدیریت سرویس‌ها و فرآیندهای سیستم رو به عهده داره.

راه‌اندازی سطح سیستم:
اینجا کلی سرویس اجرا می‌شن، مثل:
مدیریت شبکه (NetworkManager یا systemd-networkd)

مدیریت لاگ‌ها (journald)

راه‌اندازی محیط گرافیکی (GDM، SDDM یا LightDM)


5️⃣ نمایش صفحه‌ی لاگین
در نهایت، بعد از اینکه همه سرویس‌های لازم اجرا شدن، یه ترمینال لاگین (TTY) یا محیط گرافیکی دسکتاپ (مثل KDE Plasma یا GNOME) نمایش داده می‌شه و می‌تونی با یوزرنیم و پسورد وارد سیستم بشی.

جمع‌بندی:
1.‏ BIOS/UEFI اجرا می‌شه و سخت‌افزار رو بررسی می‌کنه.
2. بوت‌لودر (GRUB) کرنل لینوکس رو لود می‌کنه.
3. کرنل و initramfs فایل‌سیستم رو راه‌اندازی می‌کنن.
4.‏ systemd مدیریت سرویس‌ها رو انجام می‌ده.
5. صفحه‌ی لاگین نمایش داده می‌شه و سیستم آماده‌ی استفاده‌ست!

#️⃣ #linux #boot #kernel


🐧 CHANNEL | GROUP
👍10🔥1
Forwarded from Revisto/Tech (Revisto)
سلام سلام. من پروژه‌ای رو شروع کردم برای ترجمه‌ی آزاد مستندات و داکیومنت‌های رسمی پایتون به فارسی.
اگر این مسیر براتون جذابه و دوست دارید مشارکت کنید خیلی خوشحال میشم و ما نیاز داریم به این کامیونیتی برای ادامه و گسترش مستندات پایتون به فارسی.


اسم ما و مخزن پایتون به فارسی روی بخش ترجمه‌ی devguide پایتون هم هست و من کارهای لازم رو برای به رسمیت شناخته شدن فعالیتمون کردم و الان نیاز به کمک شما داره.

طبق مستندات وقتی صفحه‌‌های tutorial‍, bugs, library/functions صددرصد ترجمه بشن میتونیم درخواست بدیم تا ترجمه‌مون بخشی از docs.python.org و عمومی بشه.
کاری که من کردم اینه که یک دور این صفحات رو با Google Translate ترجمه کردم و الان فقط نیاز دارن که هر بخش بازبینی (review) بشه.

ترجمه هم در سایت Transifex اتفاق میفته که توی ویدیو خیلی دقیق‌تر گفتم چجوری میشه شروعش کرد.


لینک ویدیو در یوتیوب
لینک مخزن گیتهاب ترجمه
لینک دیسکورد ترجمه فارسی

@RevistoTech
🔥8👍2