Syntax | سینتکس – Telegram
قراره یکی از مقالات خوب در خصوص server hardening در لینوکس رو بصورت ترجمه شده با توضیحات کامل تر توی یه کانال تخصصی قرارش بدم.
اگه برای شما هم مسائل امنیتی سرور جذابه و باهاش سر و کار دارید اینجا هم قرارش میدم(واقعا زیاده هر نکته تقریبا اندازه یه مقالست)
Anonymous Poll
83%
قرارش بدم
17%
قرارش ندم
گوگلو قانونی دور بزن !

تو این مقاله درباره سئو‌ کلاه خاکستری توضیح دادیم و چند روش برای پیاده سازیش مثال زدیم که به شما این امکانو میده تو مدت زمان کم سئو وب سایتتون تقویت بشه

@khat_academy
🔥6👍3
چهل نکته درباره Linux Server Hardening (قسمت اول)

تو قسمت اول نکته یک تا ده رو بهتون گفتم.
امیدوارم براتون مفید باشه 👌

#hardening

@khat_academy
👍8🔥3
اگه اول راه هستید و نمیدونید کدوم فیلد مناسب شماست.
اگه میخواید لینکدین حرفه ای داشته باشید و رزومه خوبی برای خودتون درست کنید
این کانال همه این موارد رو پوشش میده

راستی توجه اصلی کانال روی مباحث هوش مصنوعی هستش

پس اگه علاقه مند به این موضوعات هستید حتما دنبال کنید

آدرس کانال:
https://news.1rj.ru/str/MobiFacts

#معرفی_کانال

@khat_academy
👍7
🔥13
« از اون بالا کفتر میایه »

شهاب تیام که با آهنگ «از اون بالا کفتر میایه» شناخته میشه مهندس سخت افزار هستش و پونزده سالی توی اینتل مشغول به فعالیت بوده و الانم تو یه شرکت جدید شروع به فعالیت کرده :)

بله. بعضی وقتا زندگی مسیری رو برات میچینه که فکرشم نمیکردی

(باورت نمیشه کامنتو نگاه کن)

https://www.linkedin.com/in/shahab-tiam-a873b14/


@khat_academy
😱7🤣3👍2
AminAli Mazarian (copy).noscript
324 KB
قالب رزومه ای که استفاده کردیم.
با برنامه inkscape بازش کنید و رزومه خودتونو بسازید.

@khat_academy
🔥6
تفاوت سایز Json با Protobuf
Json: 214
Protobuf: 53
حدودا چهار برابر بیشتره. (البته تو این کیس و تو این حالت)

@khat_academy
👍8
تو این قسمت از khat weekly، مهمون ما امین علی مزاریان هست که توسعه دهنده بک انده (Python Back-end developer)

اما جز اینکه تو برنامه نویسی کارش خوبه،‌توی مهارت های نرم و رزومه نویسی هم تجربیات خوبی داره و قراره تو میت از ساخت یک رزومه مناسب تا مصاحبه صحبت کنیم 💥

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

همچنین هر سوالی دارید، تو کامنت بپرسید تا توی پادکست دربارش صحبت کنیم

تاریخ میت:
چهارشنبه ۱۹ مهر ساعت ۱۹:۰۰

LinkedIn
Github

#meet #weekly

@khat_academy
👍5🔥2🥰1👏1😁1
collections.namedtuple

در پایتون، namedtuple یک کلاس فراهم می‌کند که به شما امکان ساخت ساده‌تر و مدیریت آسان‌تر داده‌های ساختارمند را می‌دهد. namedtuple به شما اجازه می‌دهد یک کلاس ساده‌تر را با فیلدها و مقادیرش ایجاد کنید و به طور خودکار ویژگی‌هایی مانند نامگذاری و استخراج مقادیر از آنها را برای شما مدیریت کند.

شما می‌توانید یک namedtuple با استفاده از تابع namedtuple از ماژول collections ایجاد کنید. این تابع به شما اسم کلاس مورد نظرتان را و همچنین نام فیلدها را به عنوان ورودی می‌گیرد. به عنوان نتیجه، یک کلاس ایجاد می‌شود که دارای ویژگی‌هایی مانند نامگذاری فیلدها و روش‌های استخراج مقادیر است.

در زیر یک مثال ساده استفاده از namedtuple را مشاهده می‌کنید:

from collections import namedtuple

# تعریف یک `namedtuple` برای نمایش اطلاعات یک شخص
Person = namedtuple('Person', ['name', 'age', 'gender'])

# ایجاد یک شخص جدید
person1 = Person(name='John', age=30, gender='Male')

# استخراج مقادیر
print(person1.name) # خروجی: John
print(person1.age) # خروجی: 30
print(person1.gender) # خروجی: Male

همانطور که مشاهده می‌کنید، شما می‌توانید مقادیر مختلف را با نام فیلدها به عنوان آرگومان‌ها به کلاس namedtuple ارسال کنید و سپس می‌توانید با استفاده از نام فیلدها آنها را استخراج کنید.

از مزایای استفاده از namedtuple می‌توان به سادگی کد، قابلیت خوانا بودن بیشتر کد اشاره کرد. همچنین، `namedtuple`‌ها در مواردی که نیاز به داده‌های ساختارمند و غیرقابل تغییر دارید، مفید هستند.

#python

@khat_academy
👍8
پورت صفر:

در مفاهیم شبکه و ارتباطات، پورت 0 به معنای یک پورت خاص است که به عنوان پورت "رزرو شده" شناخته می‌شود. وقتی به یک برنامه یا سرویس شبکه نیاز دارید تا به یک پورت خاص متصل شود، می‌توانید از یک شماره پورت عددی استفاده کنید. پورت‌ها از اعداد صحیح بین 0 تا 65535 تشکیل شده‌اند.

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

به عنوان مثال، در برنامه‌نویسی شبکه، وقتی یک سوکت (socket) برای برقراری ارتباط با سروری فراخوانی می‌شود و شماره پورت آن را برابر با 0 قرار می‌دهید، سیستم عامل یک پورت آزاد را به برنامه اختصاص می‌دهد و برنامه می‌تواند آن را برای ارتباط استفاده کند.

استفاده از پورت 0 معمولاً برای برنامه‌هایی است که نمی‌خواهند به طور صریح پورت خاصی را انتخاب کنند، به سیستم اجازه می‌دهند یک پورت خالی را برایشان انتخاب کند.

برای مثال توی جنگو اگه بنویسید‌ runserver 0 بصورت رندوم یک پورت خالی رو انتخاب می کنه.

#port

@khat_academy
👍14
چند نکته کلیدی در مورد شماره پورت:

- پورت ها با اعداد صحیح بین 0 تا 65535 شناسایی می شوند. این محدوده به عنوان فضای شماره پورت شناخته می شود.


0-1023
- شماره پورت های پایین تر (0-1023) به عنوان پورت های شناخته شده و برای پروتکل های خاص رزرو شده اند. به عنوان مثال، پورت 80 برای ترافیک HTTP استفاده می شود.


1024-49151
- شماره پورت های بالاتر (1024-49151) پورت های ثبت شده ای هستند که هم توسط کلاینت ها و هم توسط سرورها برای برنامه ها و خدمات خاص قابل استفاده هستند.

پورت‌های اپلیکیشن‌ها و سرویس‌های نرم‌افزاری معمولاً در محدوده‌ای بین عدد 1024 و 49151 هستند.

اپلیکیشن‌های معمول نرم‌افزاری مانند پوستگرس، ردیس و مای‌اس‌کیوال عموماً از پورت‌های ثابت و ثبت‌شده در محدوده 1024 تا 49151 استفاده می‌کنند.

برای مثال پورت پستگرس 5432 و ردیس 6379 است که هر دو در این محدوده قرار دارند.


49152-65535
محدوده پورت‌های 49152 تا 65535 به طور معمول برای پورت‌های خصوصی و پورت‌های برگشتی که توسط کلاینت درخواست می‌شوند، اختصاص داده می‌شود.

- پورت های پویا و/یا خصوصی از 49152 تا 65535 متغیر است. این پورت ها معمولاً بر اساس تقاضا تخصیص داده می شوند و اغلب برای ترافیک برگشتی برای اتصالات شروع شده از مشتری استفاده می شوند.

#port

@khat_academy
👍9
چرا پورت بین 0 تا 65535 است؟ آیا نمی توان پورت بیشتری برای استفاده تنظیم کرد؟

خیر، پورت ها را نمی توان در یک کامپیوتر بیشتر از 65535 شماره گذاری کرد. 65535 حداکثر تعداد محدوده پورت است که برای برنامه ها و پروتکل های شبکه برای استفاده در دسترس است.

چند دلیل کلیدی که چرا پورت ها نمی توانند بالاتر از 65535 بروند:

فیلد پورت در هدرهای TCP و UDP 16 بیت است. با 16 بیت، می توانید اعداد باینری را تا 65535 نمایش دهید (2^16 - 1). بنابراین شماره پورت از نظر فنی به این محدوده توسط مشخصات پروتکل محدود شده است.

IANA
(مرجع شماره های اختصاص داده شده به اینترنت) مسئول هماهنگی تخصیص شماره پورت است. آنها محدوده پورت را 0-65535 استاندارد کرده اند. هیچ نهاد استانداردی افزایش این محدوده را پیشنهاد نکرده است.

شماره پورت به شناسایی منحصر به فرد پروتکل حمل و نقل (TCP/UDP)، آدرس های IP و برنامه یا فرآیند خاص در یک سوکت کمک می کند. افزایش رنج مستلزم تغییراتی در پروتکل‌ها و سیستم‌های شبکه است.

در عمل، محدوده پورت 65535 تعداد بسیار زیادی از پورت های موجود را برای برنامه های کاربردی در حال حاضر فراهم می کند. تخصیص فضای بیشتر از حد نیاز بسیار ناکارآمد خواهد بود.

بنابراین به طور خلاصه، به دلیل محدودیت‌های فنی، استانداردها و کافی بودن، پورت‌ها روی 65535 محدود شده‌اند. افزایش رنج به تغییرات عمده در مشخصات و پیاده سازی شبکه اصلی نیاز دارد.

#port

@khat_academy
👍8
معماری Microservices با هسته Monolithic

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

هسته Monolithic
منطق اصلی کسب‌وکار در یکپارچگی اصلی باقی می‌ماند، اما مواردی مانند
‌background jobs، notifications،
یا سایر سیستم‌های فرعی کوچک که می‌توانند به برنامه‌های کاربردی خود منتقل شوند.

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

more

@khat_academy
👍9
پیشخان توسعه‌دهندگان کافه‌بازار: از Monolithic به Microservices

بخوبی توضیح داده از اون ابتدا که با معماری monolithic جنگو شروع کردن و ...

@khat_academy

https://virgool.io/cafebazaar/%D9%BE%DB%8C%D8%B4%D8%AE%D8%A7%D9%86-%D8%AA%D9%88%D8%B3%D8%B9%D9%87%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%DA%A9%D8%A7%D9%81%D9%87%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%D8%A7%D8%B2-monolithic-%D8%A8%D9%87-microservices-aesbnymda2gi
👍6🎉1
تو این قسمت از khat weekly، مهمون ما امین علی مزاریان هست که توسعه دهنده بک انده (Python Back-end developer)

اما جز اینکه تو برنامه نویسی کارش خوبه،‌توی مهارت های نرم و رزومه نویسی هم تجربیات خوبی داره و قراره تو میت از ساخت یک رزومه مناسب تا مصاحبه صحبت کنیم 💥

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

همچنین هر سوالی دارید، تو کامنت بپرسید تا توی میت دربارش صحبت کنیم

تاریخ میت:
چهارشنبه ۱۹ مهر ساعت ۱۹:۰۰ (گوگل میت)

https://www.linkedin.com/in/aminalih47/

https://github.com/AminAliH47

#meet #weekly

@khat_academy
🔥8😁5👎1🥰1