IT Guys👾 – Telegram
427 subscribers
120 photos
183 videos
27 files
284 links
نکاتی که تو مسیر یادگیری بدست آوردیم رو باهاتون به اشتراک میزاریم. اين كانال رو به عنوان سرگرمی نگاه كنيد.
شما هم اگر نکته ای داشتید ، چه بصورت متن ، عکس و یا صدا به نشانی ربات زیر با ما به اشتراک بگذارید ، با تشکر.

Bot ID : https://news.1rj.ru/str/bootrampbot🤖
Download Telegram
اثر ماندلا چیست؟

اثر ماندلا (Mandela Effect) به پدیده‌ای گفته می‌شود که در آن تعداد زیادی از افراد به‌طور نادرست یک رخداد، نام، یا جزئیات خاص را به یاد می‌آورند و باور دارند که این خاطره‌ها درست است. نام این اثر از خاطرات غلطی که بسیاری از افراد در مورد مرگ نلسون ماندلا داشتند، گرفته شده است. در دهه ۱۹۸۰، تعداد زیادی از مردم به اشتباه معتقد بودند که نلسون ماندلا در زندان جان خود را از دست داده است، در حالی که او در سال ۲۰۱۳، مدت‌ها پس از آزادی، درگذشت.

این اثر اغلب با مسائل فرهنگی و اتفاقات روزمره نیز مرتبط می‌شود. برای مثال، افراد ممکن است جزئیات مربوط به نام یا شکل لوگوی یک برند، یا حتی نقل قول‌های مشهور و دیالوگ‌های فیلم‌ها را به‌درستی به یاد نیاورند و باور داشته باشند که نسخه دیگری از واقعیت وجود دارد.

از دیدگاه علمی، اثر ماندلا به اشتباهات حافظه و نحوه شکل‌گیری و بازسازی خاطرات مرتبط است. حافظه انسان به جای آن‌که واقعیت را دقیقاً ضبط کند، گاهی اوقات با بازسازی خاطرات، دچار تحریف می‌شود.

موضوع جالبیه ، در موردش مطالعه کنید.
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
چالش های شروع و رشد یک کسب و کار
❤‍🔥4🔥2👍1
😬
😁6❤‍🔥1👍1
داکر چیست و چه ساختاری داره؟

این پست قرار هست چندین پارت داشته باشه ، تا حد امکان هم عامیانه توضیح میدم ، جدای از پست آموزشی ، این برای خودمم یجور مرور به حساب میاد ، پس اگه علاقه مند هستید یا حوصله دارید ، مطالعه ی محتوای این سلسله پست‌ها میتونه به دردتون بخوره!


(پارت اول)

داکر دقیقا چیه؟

داکر یه پلتفرمه که به شما کمک می‌کنه برنامه‌هاتون رو به شکل کانتینر (Container) اجرا کنید. حالا کانتینر چیه؟! کانتینر یه محیط بسته و ایزوله شده‌ست که برنامه شما رو با همه چیزایی که نیاز داره (مثل کتابخانه‌ها و تنظیمات خاص) تو خودش نگه می‌داره. این یعنی برنامه‌تون بدون دردسر از یه سیستم به سیستم دیگه منتقل میشه و اجرا میشه، بدون اینکه وابسته به تنظیمات و نرم‌افزارهای اون سیستم خاص باشه. البته که نرم افزار هایی که روی کرنل ویندوز کانتینر میشن روی تمامی سیستم عامل های ویندوز قابلیت اجرا داشته و اونایی هم که روی لینوکس کانتینر میشن ، روی توزیع های لینوکس قابلیت اجرا دارن
چرا؟
چون کانتینرهای داکر به سیستم‌عاملی که روی اون اجرا میشن وابسته هستن، به این معنی که کانتینرهای ویندوز فقط روی هسته ویندوز و کانتینرهای لینوکس فقط روی هسته لینوکس اجرا میشن.

چرا داکر اینقدر پرطرفداره؟

فرض کنید برنامه‌تون توی کامپیوتر خودتون عالی کار می‌کنه، ولی وقتی اون رو روی سرور یا یه سیستم دیگه اجرا می‌کنید، با مشکلاتی مواجه میشه. دلیلش اینه که شاید اون سیستم یه کتابخونه یا تنظیم خاصی که برنامه نیاز داره، نداشته باشه. اینجا داکر به دادتون می‌رسه، چون همه چیز رو توی یه بسته (همون کانتینر) جمع می‌کنه و تضمین می‌کنه که برنامه همون‌طوری که توی کامپیوتر شما اجرا میشه، روی هر سیستم دیگه‌ای هم به همون شکل کار کنه.

داکر چند تا مزیت بزرگ داره:

قابل حمل بودن: کانتینرها رو می‌تونید به راحتی از یه سیستم به سیستم دیگه منتقل کنید و مطمئن باشید که به همون شکل کار می‌کنن.
ایزوله بودن: هر کانتینر به شکل مستقل از بقیه کانتینرها کار می‌کنه، یعنی اگه توی یکی از کانتینرها مشکلی پیش بیاد، بقیه کانتینرها تحت تأثیر قرار نمی‌گیرن.
سبکی و سرعت: کانتینرها نسبت به ماشین‌های مجازی خیلی سبک‌تر و سریع‌تر هستن، چون نیازی به راه‌اندازی سیستم‌عامل کامل ندارن؛ فقط چیزایی که برنامه نیاز داره رو فراهم می‌کنن.

کانتینر بهتره یا ماشین مجازی؟

هر دوشون راه‌هایی برای ایزوله کردن برنامه‌ها و سرویس‌ها هستن، ولی کانتینرها سبک‌تر و سریع‌تر هستن. ماشین‌های مجازی (مثل VMware یا VirtualBox) کل سیستم‌عامل رو شبیه‌سازی می‌کنن، ولی کانتینرها فقط چیزهایی که برنامه نیاز داره رو فراهم می‌کنن. برای همین استفاده از کانتینرها به منابع کمتری نیاز داره و سریع‌تر راه‌اندازی میشن.

مقایسه‌ای ساده‌تر

فرض کنید یه مجتمع مسکونی داریم:
ماشین مجازی شبیه اینه که هر واحد مسکونی (هر برنامه) یه برق، آب، و خدمات شهری جداگانه داشته باشه. هر واحد، مستقل و کامله، ولی هزینه‌ها و منابع بیشتری مصرف می‌کنه.
کانتینر شبیه اینه که همه واحدهای مسکونی (برنامه‌ها) از همون برق و آب شهری استفاده کنن، ولی دیوار و حریم خصوصی خودشون رو دارن. اینطوری، منابع مشترک هستن و مصرف کلی کمتره.

پس چرا کانتینرها سریع‌تر و سبک‌ترن؟

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

مثال‌های کاربردی

اگر بخواید یه وب‌سرور (مثل Nginx) رو روی یه سرور اجرا کنید، با کانتینر فقط همون Nginx و فایل‌های پیکربندی موردنیازش توی یه محیط ایزوله قرار می‌گیرن.
اما اگه از ماشین مجازی استفاده کنید، علاوه بر Nginx باید یه سیستم‌عامل (مثل اوبونتو یا CentOS) هم داشته باشید که مصرف منابع رو بیشتر می‌کنه.
این ساختار سبک کانتینرها، دلیل اصلی محبوبیت داکره و اینه که شرکت‌ها می‌تونن برنامه‌هاشون رو سریع‌تر، با هزینه کمتر و کارایی بیشتر توی محیط‌های ابری یا سرورهای محلی اجرا کنن.

چرا باید از داکر استفاده کنم؟

اگه نیاز دارید برنامه‌تون رو روی سیستم‌های مختلف (مثل توسعه، تست، و تولید) به شکل یکسان اجرا کنید، یا اگه برنامه‌های زیادی دارید که می‌خواید به شکل مستقل از هم کار کنن، داکر یه ابزار عالیه. مخصوصاً توی محیط‌هایی که نیاز به مقیاس‌پذیری و سرعت بالا دارن، استفاده از داکر خیلی رایجه.
❤‍🔥51👍1
This media is not supported in your browser
VIEW IN TELEGRAM
مقایسه درآمد جف بزوس با کارگر کمپانیش تو هر ثانیه‌ای که از مکالمشون داره میگذره.
❤‍🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Cybersecurity doesn’t have to be hard…

You might feel intimidated by how much there is to learn.
❤‍🔥3
آیا میشه به سرور لینوکسی ریموت دسکتاپ یا RDP زد؟

این امکان وجود دارد بتونیم به یک سرور لینوکسی که از پکیج دسکتاپ برخوردار هست ، ریموت دسکتاپ بزنیم ، خیلی حرکت عجیبی هم نیست اما خب دونستنش خالی از لطف نیست براتون .
فقط کافیه خط به خط کد های زیر رو روی سرور لینوکسی خودتون اجرا کنید :
sudo apt update
sudo apt install xrdp -y
sudo systemctl start xrdp
sudo systemctl start xrdp-sesman
sudo update-rc.d xrdp enable


و تمام ، حالا میتونید با باز کردن برنامه ی Remote Desktop یا mstsc روی ویندوز خودتون ، به سرور لینوکسی ریموت دسکتاپ بزنید .
نکته ی مهم : اگر به صورت لوکال به سرور لینوکسی متصل هستید ، حتما و حتما لاگ اوت یا Log Out کنید ، بعد تلاش کنید که ریموت دسکتاپ بزنید به سیستم ، چرا چون اگر یک Session فعال روی سرور لینوکسی داشته باشید ، امکان ریموت دسکتاپ زدن را به شما نمیدهد.

خیلی کار عجیبی نیست ، اما خب آپشن های دیگری هم برای اتصال به محیط دسکتاپ سرور لینوکسی وجود دارد ، ولی این گزینه جزو راحت ترین گزینه های موجود هست که با همین چند خط کد میتونید به سادگی به محیط سرور دلخواهتون وصل بشید

راه حل دیگه هم استفاده از VNC (مثلاً TigerVNC یا RealVNC)
مزایا: کنترل کامل بر دسکتاپ با کیفیت تصویر بهتر نسبت به xrdp در برخی موارد.
معایب: نیاز به نصب سرور VNC روی کالی و کلاینت VNC در دستگاه شما، و همچنین احتمالاً سرعت کمتر در اتصالات با پهنای باند محدود.
در واقع VNC یکی از رایج‌ترین راه‌ها برای اتصال به دسکتاپ گرافیکی از راه دور است و می‌توانید از برنامه‌های مختلف VNC (مانند RealVNC یا TigerVNC) استفاده کنید. برای امنیت بیشتر، معمولاً اتصال VNC روی SSH تونل می‌شود.
❤‍🔥31👍1
This media is not supported in your browser
VIEW IN TELEGRAM
The source code of Windows’ troubleshooting program has leaked.
❤‍🔥3👍1
دکوراتورها در پایتون ابزارهایی هستند که به ما امکان می‌دهند رفتار توابع را بدون تغییر در کد اصلی آن‌ها گسترش دهیم.

🧩 دکوراتورها با افزودن قابلیت‌های جدید به توابع، کد را بهینه می‌کنند و از تکرار جلوگیری می‌کنند. این امر به خوانایی و نگهداری بهتر کد کمک می‌کند.

🔄 استفاده از دکوراتورها به ما این امکان را می‌دهد که بدون تغییر در توابع اصلی، قابلیت‌های جدیدی اضافه کنیم و کدها انعطاف‌پذیرتر شوند.

🛠️ ساختار دکوراتورها به ما اجازه می‌دهد قبل و بعد از اجرای توابع اصلی، کارهایی انجام دهیم؛ این ویژگی برای مواردی مانند لاگ‌کردن یا بررسی ورودی‌ها مفید است.

⚠️ یکی از چالش‌های استفاده از دکوراتورها این است که ممکن است نام توابع اصلی در زمان دیباگ کردن قابل شناسایی نباشد و به مشکلاتی در شناسایی خطاها منجر شود.

📈 استفاده از کتابخانه "functools" می‌تواند به حفظ هویت اصلی توابع کمک کند و از مشکلات اورراید جلوگیری کند، و امنیت بیشتری فراهم آورد.

🤔 درک صحیح از دکوراتورها و نحوه‌ی کارکرد آن‌ها نیاز به زمان و تمرین دارد؛ این مفهوم می‌تواند در ابتدا گیج‌کننده باشد، اما با تمرین به راحتی قابل فهم می‌شود.

💡 استفاده معقول از دکوراتورها می‌تواند به بهبود کیفیت کد کمک کند، اما افراط در استفاده ممکن است کد را پیچیده کند و باید در نظر گرفت تا کدها قابل نگهداری و توسعه باقی بمانند.


https://youtu.be/CuCudHMIPi4?si=_g-sZfyso-vpl_Qe
👍5❤‍🔥2
چگونه پوت های باز روی سرور لینوکسی خود را ببینیم؟

ابزار های زیادی برای این کار وجود دارد ، اما یکی از آن ها:
استفاده از ابزار netstat:
ابتدا باید مطمئن باشیم که پکیج مروبطه بر روی سرور ما نصب باشد :
apt install net-tools

و بعد از نصب کامند زیر را اجرا میکنیم :
sudo netstat -tuln

که هر آپشن در اینجا مشخص کننده ی یک ویژگی میباشد :
آپشن t : برای پروتکل‌های TCP
آپشن u : برای پروتکل های UDP
آپشن l : برای نمایش پورت‌هایی که در حالت "LISTEN" هستند (در حال گوش دادن)
آپشن n : برای نمایش آدرس‌ها به صورت عددی که دلبخواه است و میتوانید نزنید .
❤‍🔥4👍2
مفهوم HeartBeat در کلاستر ها !

در مباحث کلاسترینگ (خوشه‌بندی)، «heartbeat» به سیگنال‌هایی گفته می‌شود که بین گره‌ها (nodes) در کلاستر ارسال می‌شود تا وضعیت آنلاین یا آفلاین بودن هر گره را مشخص کند. این سیگنال‌ها به‌طور منظم و با فاصله‌های زمانی کوتاه بین گره‌ها رد و بدل می‌شوند. اگر یکی از گره‌ها به هر دلیلی پاسخ ندهد یا heartbeat خود را ارسال نکند، سیستم متوجه می‌شود که آن گره دچار مشکل شده و ممکن است عملیات failover یا جابه‌جایی وظایف آن گره به گره‌های دیگر را انجام دهد.

این مکانیزم در سیستم‌های حساس و با دسترس‌پذیری بالا (high availability) بسیار مهم است تا مطمئن شویم که در صورت خرابی یکی از گره‌ها، سیستم بدون وقفه به کار خود ادامه می‌دهد.

اگه بخوایم مثالی بزنیم :

فرض کنید در یک بانک بزرگ از سیستم کلاسترینگ استفاده می‌شود تا خدمات مالی بدون وقفه به مشتریان ارائه شود. این بانک دو سرور دارد که به‌طور موازی کار می‌کنند و اگر یکی از آنها دچار مشکل شود، دیگری بتواند بدون قطع خدمات به کار ادامه دهد. این دو سرور (که به آن‌ها گره یا node گفته می‌شود) برای این منظور به یکدیگر heartbeat می‌فرستند.

1. ارسال و دریافت heartbeat:
هر چند ثانیه یک بار، هر یک از گره‌ها سیگنالی به نام heartbeat برای دیگری ارسال می‌کند. این سیگنال شامل اطلاعاتی مانند زمان ارسال، وضعیت عملکرد و بار فعلی سیستم است. هدف از ارسال این سیگنال این است که هر گره متوجه شود دیگری فعال است و به درستی کار می‌کند.

2. شناسایی خرابی گره‌ها:
فرض کنید گره ۱ به‌دلیل بروز یک مشکل سخت‌افزاری یا نرم‌افزاری از کار می‌افتد و دیگر قادر به ارسال heartbeat نیست. در این حالت، گره ۲ که سیگنال heartbeat را دریافت نکرده است، متوجه می‌شود که گره ۱ از دسترس خارج شده است. این شناسایی خرابی معمولاً بر اساس مدت زمانی که سیگنال heartbeat قطع شده است انجام می‌شود. اگر چند سیگنال پشت سر هم دریافت نشود (برای مثال، پس از ۳ ثانیه)، گره ۲ نتیجه می‌گیرد که گره ۱ دچار مشکل شده است.

3. اجرای failover یا جابه‌جایی وظایف:
با تشخیص خرابی گره ۱، گره ۲ فوراً وارد عمل می‌شود و وظایف گره از کار افتاده را به عهده می‌گیرد. به این فرآیند «failover» گفته می‌شود. در این مرحله، گره ۲ از دستورات و اطلاعاتی که برای حالت پشتیبان آماده کرده بود، استفاده می‌کند تا بدون هیچ قطعی، سرویس‌ها و اطلاعات مورد نیاز کاربران را ارائه دهد.

4. بازگرداندن سیستم به حالت اصلی:
پس از تعمیر گره ۱ و بازگشت آن به حالت عادی، دو گره دوباره به تبادل heartbeat ادامه می‌دهند. بسته به نوع تنظیمات سیستم، ممکن است گره ۲ وظایف را به گره ۱ بازگرداند یا به‌عنوان پشتیبان باقی بماند تا در صورت خرابی مجدد، باز هم بتواند وظایف را به عهده بگیرد.
❤‍🔥4👍2
کارت گرافیک A10 برای سرورهای G11 مخصوص یادگیری و کار با ai
😍6❤‍🔥1👍1
چگونه تشخیص بدیم معماری سرور لینوکسی ما چی هست؟

برای تشخیص معماری سیستم‌عامل لینوکسی خود ، می‌تونیم از دستور زیر استفاده کنیم:
uname -m

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

اگر خروجی x86_64 باشد، معماری سیستم شما 64 بیتی و Intel یا AMD است.
اگر خروجی aarch64 باشد، سیستم شما 64 بیتی ARM است.
اگر خروجی armv7l یا armv6l باشد، سیستم شما 32 بیتی ARM است.

یک روش دیگه برای بررسی این موضوع استفاده از دستور زیر است :

dpkg --print-architecture

خروجی هایی که این دستور میدهد :
اگر amd64 برای سیستم‌های 64 بیتی مبتنی بر Intel یا AMD
اگر arm64 برای سیستم‌های 64 بیتی ARM
اگر armhf برای سیستم‌های 32 بیتی ARM
👍7❤‍🔥2
در این ویدیو به تفاوت‌های بین is و == و همچنین str و repr در پایتون پرداخته می‌شود.

تفاوت is و ==: is به آدرس حافظه و == به مقادیر واقعی آبجکت‌ها توجه دارد.
استفاده از متد copy(): برای ایجاد کپی از لیست‌ها و تفاوت‌های بین آبجکت‌ها کاربرد دارد.
متدهای str و repr: هر دو برای تبدیل آبجکت‌ها به رشته استفاده می‌شوند، اما کاربردهای متفاوتی دارند.
اهمیت متد repr: برای دیباگ و نمایش دقیق‌تر اطلاعات آبجکت‌ها مفید است.
توصیه به پیاده‌سازی هر دو متد: پیاده‌سازی همزمان str و repr برای جلوگیری از رفتار غیرمنتظره مهم است.
بررسی آدرس‌های حافظه: با استفاده از id() می‌توان فهمید که آیا دو آبجکت یکسان هستند یا خیر.
اهمیت یادگیری is و ==: درک دقیق این تفاوت‌ها به بهبود کیفیت کد کمک می‌کند.

تفاوت بنیادی: is بررسی می‌کند که آیا دو متغیر به یک آدرس حافظه اشاره می‌کنند، در حالی که == بررسی می‌کند که آیا مقادیر آن‌ها برابر هستند. این نکته برای جلوگیری از خطاهای منطقی بسیار مهم است.
کاربرد copy(): استفاده از copy() برای ایجاد کپی‌های مستقل از لیست‌ها ضروری است، زیرا اشتباه در این موضوع می‌تواند منجر به تغییرات ناخواسته شود.
دیباگینگ آسان‌تر: استفاده از repr در دیباگینگ کمک می‌کند تا اطلاعات بیشتری درباره نوع و وضعیت آبجکت‌ها به دست آورید، که در شناسایی مشکلات کد بسیار مفید است.
پیاده‌سازی همزمان: همیشه توصیه می‌شود که هر دو متد str و repr را پیاده‌سازی کنید تا از رفتار غیرمنتظره جلوگیری کنید. عدم پیاده‌سازی یکی از آن‌ها می‌تواند به نتایج غیرمنتظره منجر شود.
اهمیت آدرس حافظه: بررسی آدرس حافظه با استفاده از id() می‌تواند به شما بگوید که آیا دو متغیر به یک آبجکت اشاره می‌کنند یا خیر، که در تصمیم‌گیری‌های منطقی بسیار حیاتی است.
تسلط بر مفاهیم: یادگیری و درک تفاوت‌های بین is، == و متدهای رشته‌ای در پایتون به توسعه‌دهندگان کمک می‌کند تا کدهای بهتری بنویسند و از بروز خطاهای احتمالی جلوگیری کنند.
https://youtu.be/FNJ2NZxIhfs?si=fVAlS-fk7JEcvNvq
❤‍🔥3👍2