Forwarded from 🎄 یک برنامه نویس تنبل ( MΞ)
🔸Video Download Helper
بعضی سایتا نمیزاره ویدیو دانلود کنید و فقط باید انلاین ببینید یا پول دادید دوره خریدید میگه قابل دانلود نیست :/
این ۲تا افزونه برای اینکاراس دومی معروفتره چند میلیون نصب داره البته اینا برای فایرفاکسه برای کروم بگردید باید باشه
1️⃣https://addons.mozilla.org/en-US/firefox/addon/video-hunter-downloader/
2️⃣https://addons.mozilla.org/en-US/firefox/addon/video-downloadhelper/
@TheRaymondDev
بعضی سایتا نمیزاره ویدیو دانلود کنید و فقط باید انلاین ببینید یا پول دادید دوره خریدید میگه قابل دانلود نیست :/
این ۲تا افزونه برای اینکاراس دومی معروفتره چند میلیون نصب داره البته اینا برای فایرفاکسه برای کروم بگردید باید باشه
1️⃣https://addons.mozilla.org/en-US/firefox/addon/video-hunter-downloader/
2️⃣https://addons.mozilla.org/en-US/firefox/addon/video-downloadhelper/
@TheRaymondDev
Forwarded from Linuxor ?
Forwarded from محتوای آزاد سهراب
نمونه tubedu هم بهروز شد، احتمالا فردا یک ویدئو در رابطه با شخصیسازی bash ضبط و بارگذاری کنم.
و چون دیدگاهم در رابطه با ویدئوهام به اشتراک گذاری آزادانه دانش هستش احتمالا فعالیت در یک سری پلتفرم دیگر رو هم مورد برسی قرار بدم.
@SohrabContents
و چون دیدگاهم در رابطه با ویدئوهام به اشتراک گذاری آزادانه دانش هستش احتمالا فعالیت در یک سری پلتفرم دیگر رو هم مورد برسی قرار بدم.
@SohrabContents
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 پساز ۱۴ ساعت آفلاینبودن، تیکتاک دوباره برای آمریکاییها در دسترس قرار میگیرد.
با توافق با ارائه دهندگان خدمات، TikTok در حال بازیابی خدمات است. ما از پرزیدنت ترامپ برای ارائه شفافیت و اطمینان لازم به ارائه دهندگان خدمات ما که با ارائه TikTok به بیش از 170 میلیون آمریکایی و اجازه رشد بیش از 7 میلیون کسب و کار کوچک با هیچ مجازاتی مواجه نخواهند شد، تشکر می کنیم.
این یک موضع قوی برای متمم اول و علیه سانسور خودسرانه است. ما با پرزیدنت ترامپ روی راه حلی بلندمدت کار خواهیم کرد که TikTok را در ایالات متحده نگه دارد.
@TheRaymondDev
با توافق با ارائه دهندگان خدمات، TikTok در حال بازیابی خدمات است. ما از پرزیدنت ترامپ برای ارائه شفافیت و اطمینان لازم به ارائه دهندگان خدمات ما که با ارائه TikTok به بیش از 170 میلیون آمریکایی و اجازه رشد بیش از 7 میلیون کسب و کار کوچک با هیچ مجازاتی مواجه نخواهند شد، تشکر می کنیم.
این یک موضع قوی برای متمم اول و علیه سانسور خودسرانه است. ما با پرزیدنت ترامپ روی راه حلی بلندمدت کار خواهیم کرد که TikTok را در ایالات متحده نگه دارد.
@TheRaymondDev
Forwarded from 𝕻𝖊𝖉𝖗𝖆𝖒 𝕽𝖆𝖍𝖎𝖒𝖎
Media is too big
VIEW IN TELEGRAM
سرعت و دقت بالا در ساخت
اَپلیکیشن با هوش مصنوعی
دیشب توقع خودم رو از اپلیکیشن های تک صفحه (SPA) بالا بردم که بدون رفرش صفحه یعنی بدون ارتباط با Server و در اینجا حتا بدون یک دیتابیس اَمن، قراره کار کنه! ضمناً کنجکاوی هم نگذاشت دست از سر هوش مصنوعی بسیار قدرتمند و جدید چینی به نام Deep Seek بردارم.
بنابراین برنامهی دفتر تلفن پیشرفته رو که این هوش مصنوعی قبلاً برام نوشته بود، یعنی یک فایل ۲۰ کیلوبایتی رو باز براش فرستادم و این بار در قالب یک برنامه ی جدید برای «ثبت هزینههای ماهانه» این تغییرات رو ازش خواستم:
- اَپلیکیشن ۳ زبانه: فارسی، انگلیسی و چینی!
- رمز عبور Hash و رمزنگاری شده که از لوکال استوریج داخل مرورگر قابل تشخیص مستقیم نباشه!
بله حدود ۶۰۰ خط کد پیچیده رو در ۵ دقیقه نوشت گذاشت جلوم! در حالی که قبل از این برنامهی ساده و ۵۰ خطی محاسبهی شارژ ساختمان رو در بستر مشابه یک ساعت طول کشیده بود با کلی دیباگ و سرچ خودم بنویسم!
لینک گیتهاب برنامه:
https://github.com/codinginaday/singlepagelogin
از همین مؤلف
در کانال متخصصین ایرانی:
کتاب مقدماتی هستهی #C
اَپلیکیشن با هوش مصنوعی
دیشب توقع خودم رو از اپلیکیشن های تک صفحه (SPA) بالا بردم که بدون رفرش صفحه یعنی بدون ارتباط با Server و در اینجا حتا بدون یک دیتابیس اَمن، قراره کار کنه! ضمناً کنجکاوی هم نگذاشت دست از سر هوش مصنوعی بسیار قدرتمند و جدید چینی به نام Deep Seek بردارم.
بنابراین برنامهی دفتر تلفن پیشرفته رو که این هوش مصنوعی قبلاً برام نوشته بود، یعنی یک فایل ۲۰ کیلوبایتی رو باز براش فرستادم و این بار در قالب یک برنامه ی جدید برای «ثبت هزینههای ماهانه» این تغییرات رو ازش خواستم:
- اَپلیکیشن ۳ زبانه: فارسی، انگلیسی و چینی!
- رمز عبور Hash و رمزنگاری شده که از لوکال استوریج داخل مرورگر قابل تشخیص مستقیم نباشه!
بله حدود ۶۰۰ خط کد پیچیده رو در ۵ دقیقه نوشت گذاشت جلوم! در حالی که قبل از این برنامهی ساده و ۵۰ خطی محاسبهی شارژ ساختمان رو در بستر مشابه یک ساعت طول کشیده بود با کلی دیباگ و سرچ خودم بنویسم!
لینک گیتهاب برنامه:
https://github.com/codinginaday/singlepagelogin
از همین مؤلف
در کانال متخصصین ایرانی:
کتاب مقدماتی هستهی #C
Forwarded from کدنویس یکروزه (𝕻𝖊𝖉𝖗𝖆𝖒 𝕽𝖆𝖍𝖎𝖒𝖎)
کانال متخصصین ایرانی
از استاد داریوش تصدیقی
پدر سی شارپ ایران
https://news.1rj.ru/str/IranianExperts/982
از استاد داریوش تصدیقی
پدر سی شارپ ایران
https://news.1rj.ru/str/IranianExperts/982
Telegram
Iranian Experts - 𝓓𝓪𝓻𝓲𝓾𝓼𝓱 𝓣𝓪𝓼𝓭𝓲𝓰𝓱𝓲
سرعت و دقت بالا در ساخت
اَپلیکیشن با هوش مصنوعی
دیشب توقع خودم رو از اپلیکیشن های تک صفحه (SPA) بالا بردم که بدون رفرش صفحه یعنی بدون ارتباط با Server و در اینجا حتا بدون یک دیتابیس اَمن، قراره کار کنه! ضمناً کنجکاوی هم نگذاشت دست از سر هوش مصنوعی بسیار…
اَپلیکیشن با هوش مصنوعی
دیشب توقع خودم رو از اپلیکیشن های تک صفحه (SPA) بالا بردم که بدون رفرش صفحه یعنی بدون ارتباط با Server و در اینجا حتا بدون یک دیتابیس اَمن، قراره کار کنه! ضمناً کنجکاوی هم نگذاشت دست از سر هوش مصنوعی بسیار…
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
کاش آدما بفهمن، این که ده تا چیز بلدن، یا این که توی عنوان شغلیشون Senior وجود داره، اونارو تبدیل به سینیور نمیکنه.
سینیور شدن توی این حوزه نیاز به دانش عمیق و تجربهی زیاد داره.
تعصب نداشتن، بروز بودن، توانایی تحلیل و حل مسئله و البته تجربهی پروژههایی با اسکیل بالا میتونه از ویژگیهای یک برنامهنویس ارشد باشه.
بقیه رو شاید بتونید گول بزنید، اما گول زدن خودتون با عناوین اشتباه میتونه در آینده براتون گرون تموم بشه.
@DevTwitter
سینیور شدن توی این حوزه نیاز به دانش عمیق و تجربهی زیاد داره.
تعصب نداشتن، بروز بودن، توانایی تحلیل و حل مسئله و البته تجربهی پروژههایی با اسکیل بالا میتونه از ویژگیهای یک برنامهنویس ارشد باشه.
بقیه رو شاید بتونید گول بزنید، اما گول زدن خودتون با عناوین اشتباه میتونه در آینده براتون گرون تموم بشه.
@DevTwitter
Forwarded from محتوای آزاد سهراب
ما توی CoreUtils یک دستوری داریم به اسم ] که احتمالاً خیلیها دیده باشیدش و نمیدونید چیه.
دستور ] که به عنوان test نیز شناخته میشه، یکی از دستورات پایهای در GNU Coreutils هستش که برای ارزیابی عبارات شرطی استفاده میشه. این دستور به شما امکان این رو میده تا شرایط مختلفی را بررسی کنید، مثل وجود فایلها، مقایسه رشتهها و مقایسه اعداد.
چرا نوشته شده همچین چیزی؟
دستور ] به منظور سادهسازی و تسهیل نوشتن اسکریپتهای پوستهٔ (Shell Scripts) طراحی شده. با استفاده از این دستور، کاربر میتونه به راحتی شرایط مختلف را بررسی کنه و بر اساس نتایجشون، جریان اجرای برنامه را کنترل بکنه. این موضوع به ویژه توی اسکریپتهای خودکارسازی و مدیریت سیستم بسیار مفید هستش.
چطور میشه ازش استفاده کرد؟
من یک مثال ساده از عملکردش رو براتون توی این شلاسکریپت زیر میارم:
پ.ن: gt یعنی greater than
اگر این چیزی که من نوشتم رو اجرا کنید، میبینید که اولین شرط اجرا میشه چون منطقاً عدد ۱۰ از عدد ۵ بزرگتره، بنابراین شرط دوم که
نادیده گرفته میشه و اجرا نمیشه :)
از اینجا میتونید کدمنبع (سورسکد) این دستور رو در زبان C و از اینجا هم در Rust بخونید.
@SohrabContents
دستور ] که به عنوان test نیز شناخته میشه، یکی از دستورات پایهای در GNU Coreutils هستش که برای ارزیابی عبارات شرطی استفاده میشه. این دستور به شما امکان این رو میده تا شرایط مختلفی را بررسی کنید، مثل وجود فایلها، مقایسه رشتهها و مقایسه اعداد.
چرا نوشته شده همچین چیزی؟
دستور ] به منظور سادهسازی و تسهیل نوشتن اسکریپتهای پوستهٔ (Shell Scripts) طراحی شده. با استفاده از این دستور، کاربر میتونه به راحتی شرایط مختلف را بررسی کنه و بر اساس نتایجشون، جریان اجرای برنامه را کنترل بکنه. این موضوع به ویژه توی اسکریپتهای خودکارسازی و مدیریت سیستم بسیار مفید هستش.
چطور میشه ازش استفاده کرد؟
من یک مثال ساده از عملکردش رو براتون توی این شلاسکریپت زیر میارم:
num1=10
num2=5
[ "$num1" -gt "$num2" ] && echo "$num1 is greater than $num2"
[ "$num2" -gt "$num1" ] && echo "$num2 is greater than $num1"
پ.ن: gt یعنی greater than
اگر این چیزی که من نوشتم رو اجرا کنید، میبینید که اولین شرط اجرا میشه چون منطقاً عدد ۱۰ از عدد ۵ بزرگتره، بنابراین شرط دوم که
[ "$num2" -gt "$num1" ] && echo "$num2 is greater than $num1"
نادیده گرفته میشه و اجرا نمیشه :)
از اینجا میتونید کدمنبع (سورسکد) این دستور رو در زبان C و از اینجا هم در Rust بخونید.
@SohrabContents
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 یه مشکلی که گیت هاب دارد که اگر از خود مخزن مستقیم فایل ها ویرایش کنید و کامیت کنید و بعد از مدتی کامیت دوم با دستورات گیت در ترمینال بزنید با خطا مواجه میشید.
خطای زیر:
با دستور
@TheRaymondDev
خطای زیر:
To https://github.com/Rayiumir/TaskLaravel.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'https://github.com/Rayiumir/TaskLaravel.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
با دستور
git push -f origin main فلگ -f مجبورید کامیت قبلی رو پاک کنید تا بتوانید کامیت جدید ثبت کنید.@TheRaymondDev
Forwarded from Saeed
کانال ما:
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
خلاصه امروز توییتر کامیونیتی برنامه نویسی و کامپیوتر :
یه نفر یه توییت زده بود که "من از ۱۰ سالگی دارم کد نویسی میکنم تا ۲۵ سالگیم نتونستم با برنامه نویسی ماشین بخرم.
دوستم یه بوتیک تو ۱۸ سالگی زد الان ۲۷ سالشه هم خونه و چندتا ماشین داره."
اکثرا به صورت حمله بهش گفته بودن که مشکل خودته و بی عرضگیته، اما واقعیت ممکنه شما حتی بیشتر از این هام کار کنید و برنامه نویس و تکنیکالی خفن تر بشین و ببینید یهو هیچ پولی در نمیارین، پول صرفا با مفید بودن خروجیتون در ارتباطه به پتانسیل درونیتون هیچ ربطی نداره و ممکنه این پناسیل شما جای درست استفاده بشه خروجی خیلی قوی و پول زیادی بده ...
پس هیچ وقت از تکنیکالی خفن تر کردن خودتون و بالا بردن پتانسیلتون پشیمون نشین، اگه پول هم بخواین بعدا با چند تا جابجایی جای درست خودتونو پیدا میکنین و اون کاغذم بدست میارین و باهاش خودتونو باد میزنین.
@Linuxor
یه نفر یه توییت زده بود که "من از ۱۰ سالگی دارم کد نویسی میکنم تا ۲۵ سالگیم نتونستم با برنامه نویسی ماشین بخرم.
دوستم یه بوتیک تو ۱۸ سالگی زد الان ۲۷ سالشه هم خونه و چندتا ماشین داره."
اکثرا به صورت حمله بهش گفته بودن که مشکل خودته و بی عرضگیته، اما واقعیت ممکنه شما حتی بیشتر از این هام کار کنید و برنامه نویس و تکنیکالی خفن تر بشین و ببینید یهو هیچ پولی در نمیارین، پول صرفا با مفید بودن خروجیتون در ارتباطه به پتانسیل درونیتون هیچ ربطی نداره و ممکنه این پناسیل شما جای درست استفاده بشه خروجی خیلی قوی و پول زیادی بده ...
پس هیچ وقت از تکنیکالی خفن تر کردن خودتون و بالا بردن پتانسیلتون پشیمون نشین، اگه پول هم بخواین بعدا با چند تا جابجایی جای درست خودتونو پیدا میکنین و اون کاغذم بدست میارین و باهاش خودتونو باد میزنین.
@Linuxor
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
اگه خیلی لبه تکنولوژی زندگی میکنید و معماری مایکروسرویس و سرورلس براتون جالب بوده حتما یه نگاه به مفهوم تازه functionless بندازید. حذف برنامه نویسی جایی که واقعا کد زدن لازم نیست از اهداف این روشه
@DevTwitter | <مر آرام/>
@DevTwitter | <مر آرام/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Master the Fullstack
🟢 خلاصه مقاله:
این مقاله به بررسی مسیر یادگیری جامعی پرداخته که به شما کمک میکند تا تواناییهای خود را در زمینه سرورها گسترش دهید. در این مسیر، شما با نحوه ساخت APIها، بنای ظروف (کانتینرها)، استقرار کد، راهاندازی سرورها و موارد دیگر آشنا خواهید شد. از مراحل ابتدایی شامل طراحی و پیادهسازی APIهایی که به عنوان پل ارتباطی بین کاربر نهایی و پایگاهداده عمل میکنند، گرفته تا پیشرفتهترین موضوعات مانند ساخت و مدیریت کانتینرها برای بهبود دپلومانسی موثر و کاربردی، همه و همه در این مقاله به تفصیل شرح داده شدهاند. همچنین، شامل اطلاعاتی درخصوص انتخاب صحیح سختافزار و نرمافزار لازم برای بهینهسازی عملکرد سرور نیز میشود و با تکیه بر آخرین فناوریها و ابزارهای موجود، راههایی برای تسهیل مدیریت و نگهداری سرورها ارائه میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/163963/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Master the Fullstack
🟢 خلاصه مقاله:
این مقاله به بررسی مسیر یادگیری جامعی پرداخته که به شما کمک میکند تا تواناییهای خود را در زمینه سرورها گسترش دهید. در این مسیر، شما با نحوه ساخت APIها، بنای ظروف (کانتینرها)، استقرار کد، راهاندازی سرورها و موارد دیگر آشنا خواهید شد. از مراحل ابتدایی شامل طراحی و پیادهسازی APIهایی که به عنوان پل ارتباطی بین کاربر نهایی و پایگاهداده عمل میکنند، گرفته تا پیشرفتهترین موضوعات مانند ساخت و مدیریت کانتینرها برای بهبود دپلومانسی موثر و کاربردی، همه و همه در این مقاله به تفصیل شرح داده شدهاند. همچنین، شامل اطلاعاتی درخصوص انتخاب صحیح سختافزار و نرمافزار لازم برای بهینهسازی عملکرد سرور نیز میشود و با تکیه بر آخرین فناوریها و ابزارهای موجود، راههایی برای تسهیل مدیریت و نگهداری سرورها ارائه میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/163963/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Frontendmasters
Fullstack to Backend Learning Path - Expand Your Abilities to the Server and Master the Fullstack
Set up servers, create APIs, and deploy your code to the world by learning the full stack.
Forwarded from محتوای آزاد سهراب
خب توی این قسمت یک نیمنگاهی انداختیم به این که چطور میتونیم پوستهٔ بش رو شخصیسازی کنیم.
تماشا از یوتوب
تماشا از پیرتوب
@SohrabContents
تماشا از یوتوب
تماشا از پیرتوب
@SohrabContents
Forwarded from Ninja Learn | نینجا لرن
لایه ۴: لایه انتقال (Transport Layer) 🚛
لایه Transport یکی از مهمترین بخشهای مدل OSI هست که وظیفه مدیریت انتقال داده بین دستگاهها و اطمینان از ارتباط پایدار و مؤثر رو بر عهده داره. این لایه تضمین میکنه که دادهها به درستی به مقصد برسن، ترتیبشون حفظ بشه، و در صورت وجود خطا، اصلاح بشن.
وظایف اصلی لایه انتقال ✅
📦 تقسیمبندی دادهها (Segmentation):
وقتی اپلیکیشنی قصد ارسال داده داره، این دادهها به قطعات کوچکتری به نام سگمنت تقسیم میشن. هر سگمنت یک هدر مخصوص داره که شامل اطلاعاتی مثل شماره ترتیبی و آدرس پورت میشه.
🧩 بازسازی دادهها (Reassembly):
در مقصد، لایه انتقال سگمنتها رو با استفاده از شماره ترتیبی که در هدرشون ذخیره شده، به ترتیب کنار هم قرار میده و داده اصلی رو بازسازی میکنه.
⚠️ کنترل خطا (Error Control):
لایه انتقال با استفاده از تکنیکهایی مثل Checksum صحت دادهها رو بررسی میکنه. اگه خطایی در دادهها تشخیص داده بشه، درخواست ارسال مجدد سگمنت انجام میشه.
🚦 کنترل جریان (Flow Control):
وقتی فرستنده سریعتر از گیرنده داده ارسال میکنه، ممکنه گیرنده دچار مشکل بشه. لایه انتقال سرعت ارسال رو با استفاده از Sliding Window تنظیم میکنه.
🔗 مدیریت ارتباط (Connection Management):
لایه انتقال میتونه ارتباط رو به دو صورت Connection-Oriented (مانند TCP) یا Connectionless (مانند UDP) مدیریت کنه. در ارتباطات Connection-Oriented، قبل از ارسال دادهها یک ارتباط پایدار برقرار میشه.
پروتکلهای کلیدی در لایه انتقال
TCP (Transmission Control Protocol):
💡 TCP یک پروتکل Connection-Oriented و Reliable هست که برای ارتباطات حساس به دقت استفاده میشه.
ویژگیهای کلیدی:
ارتباط مبتنی بر اتصال:
SYN: درخواست اتصال از فرستنده.
SYN-ACK: پاسخ گیرنده.
ACK: تأیید فرستنده.
شمارهگذاری سگمنتها:
🔢 TCP به هر سگمنت یک شماره منحصربهفرد اختصاص میده تا دادهها در مقصد به درستی بازسازی بشن.
کنترل جریان:
با استفاده از Sliding Window، TCP حجم دادهای که میتونه ارسال بشه رو تنظیم میکنه.
کنترل خطا:
با استفاده از Checksum و Acknowledgment صحت دادهها بررسی و تضمین میشه.
UDP (User Datagram Protocol):
⚡ UDP یک پروتکل Connectionless و Unreliable هست که برای ارتباطات سریع طراحی شده.
ویژگیهای کلیدی:
بدون اتصال:
UDP دادهها رو بدون ایجاد ارتباط پایدار ارسال میکنه.
بدون تضمین تحویل:
❌ اگه دادهای گم بشه یا خراب بشه، UDP هیچ تضمینی برای ارسال مجدد نداره.
سرعت بالا:
چون کنترل جریان یا تصحیح خطا نداره، سرعت انتقال بالاتره.
🎛 پورتها و شمارهگذاری در لایه انتقال
پورتها اعدادی ۱۶بیتی هستن که ارتباط بین اپلیکیشنها و دستگاهها رو مدیریت میکنن.
پورتهای شناختهشده (Well-Known Ports):
📌 این پورتها اعداد بین ۰ تا ۱۰۲۳ هستن و به پروتکلهای معروف اختصاص داده شدن.
HTTP: پورت 80
HTTPS: پورت 443
FTP: پورت 21
پورتهای رجیسترشده (Registered Ports):
🔒 اعداد بین ۱۰۲۴ تا ۴۹۱۵۱ که برای اپلیکیشنهای خاص رزرو میشن.
پورتهای داینامیک (Dynamic Ports):
🔄 اعداد بین ۴۹۱۵۲ تا ۶۵۵۳۵ که برای ارتباطات موقت استفاده میشن.
جمعبندی ✍
لایه Transport نقش حیاتی در تضمین انتقال دادهها بین دستگاهها داره. انتخاب پروتکل مناسب به نیازهای اپلیکیشن شما بستگی داره:
TCP برای ارتباطات حساس به دقت.
UDP برای ارتباطات حساس به سرعت.
➖➖➖➖➖➖➖➖➖
لایه Transport یکی از مهمترین بخشهای مدل OSI هست که وظیفه مدیریت انتقال داده بین دستگاهها و اطمینان از ارتباط پایدار و مؤثر رو بر عهده داره. این لایه تضمین میکنه که دادهها به درستی به مقصد برسن، ترتیبشون حفظ بشه، و در صورت وجود خطا، اصلاح بشن.
وظایف اصلی لایه انتقال ✅
📦 تقسیمبندی دادهها (Segmentation):
وقتی اپلیکیشنی قصد ارسال داده داره، این دادهها به قطعات کوچکتری به نام سگمنت تقسیم میشن. هر سگمنت یک هدر مخصوص داره که شامل اطلاعاتی مثل شماره ترتیبی و آدرس پورت میشه.
🧩 بازسازی دادهها (Reassembly):
در مقصد، لایه انتقال سگمنتها رو با استفاده از شماره ترتیبی که در هدرشون ذخیره شده، به ترتیب کنار هم قرار میده و داده اصلی رو بازسازی میکنه.
⚠️ کنترل خطا (Error Control):
لایه انتقال با استفاده از تکنیکهایی مثل Checksum صحت دادهها رو بررسی میکنه. اگه خطایی در دادهها تشخیص داده بشه، درخواست ارسال مجدد سگمنت انجام میشه.
🚦 کنترل جریان (Flow Control):
وقتی فرستنده سریعتر از گیرنده داده ارسال میکنه، ممکنه گیرنده دچار مشکل بشه. لایه انتقال سرعت ارسال رو با استفاده از Sliding Window تنظیم میکنه.
🔗 مدیریت ارتباط (Connection Management):
لایه انتقال میتونه ارتباط رو به دو صورت Connection-Oriented (مانند TCP) یا Connectionless (مانند UDP) مدیریت کنه. در ارتباطات Connection-Oriented، قبل از ارسال دادهها یک ارتباط پایدار برقرار میشه.
پروتکلهای کلیدی در لایه انتقال
TCP (Transmission Control Protocol):
💡 TCP یک پروتکل Connection-Oriented و Reliable هست که برای ارتباطات حساس به دقت استفاده میشه.
ویژگیهای کلیدی:
ارتباط مبتنی بر اتصال:
فرآیند Three-Way Handshake شامل مراحل زیره:
SYN: درخواست اتصال از فرستنده.
SYN-ACK: پاسخ گیرنده.
ACK: تأیید فرستنده.
شمارهگذاری سگمنتها:
🔢 TCP به هر سگمنت یک شماره منحصربهفرد اختصاص میده تا دادهها در مقصد به درستی بازسازی بشن.
کنترل جریان:
با استفاده از Sliding Window، TCP حجم دادهای که میتونه ارسال بشه رو تنظیم میکنه.
کنترل خطا:
با استفاده از Checksum و Acknowledgment صحت دادهها بررسی و تضمین میشه.
UDP (User Datagram Protocol):
⚡ UDP یک پروتکل Connectionless و Unreliable هست که برای ارتباطات سریع طراحی شده.
ویژگیهای کلیدی:
بدون اتصال:
UDP دادهها رو بدون ایجاد ارتباط پایدار ارسال میکنه.
بدون تضمین تحویل:
❌ اگه دادهای گم بشه یا خراب بشه، UDP هیچ تضمینی برای ارسال مجدد نداره.
سرعت بالا:
چون کنترل جریان یا تصحیح خطا نداره، سرعت انتقال بالاتره.
🎛 پورتها و شمارهگذاری در لایه انتقال
پورتها اعدادی ۱۶بیتی هستن که ارتباط بین اپلیکیشنها و دستگاهها رو مدیریت میکنن.
پورتهای شناختهشده (Well-Known Ports):
📌 این پورتها اعداد بین ۰ تا ۱۰۲۳ هستن و به پروتکلهای معروف اختصاص داده شدن.
HTTP: پورت 80
HTTPS: پورت 443
FTP: پورت 21
پورتهای رجیسترشده (Registered Ports):
🔒 اعداد بین ۱۰۲۴ تا ۴۹۱۵۱ که برای اپلیکیشنهای خاص رزرو میشن.
پورتهای داینامیک (Dynamic Ports):
🔄 اعداد بین ۴۹۱۵۲ تا ۶۵۵۳۵ که برای ارتباطات موقت استفاده میشن.
جمعبندی ✍
لایه Transport نقش حیاتی در تضمین انتقال دادهها بین دستگاهها داره. انتخاب پروتکل مناسب به نیازهای اپلیکیشن شما بستگی داره:
TCP برای ارتباطات حساس به دقت.
UDP برای ارتباطات حساس به سرعت.
#⃣ #network
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
Forwarded from Philocode
این ابزار برای دانلود از Youtube عالیه!
https://github.com/yt-dlp/yt-dlp
https://github.com/yt-dlp/yt-dlp
GitHub
GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader
A feature-rich command-line audio/video downloader - yt-dlp/yt-dlp
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
دنبال یادگیری دیزاین پترن هستی؟ اونم فارسی؟ اونم اکثر زبان ها مثل پایتون، پی اچ پی و..؟
بیا بگیر برو جوان ایرانی:
https://github.com/3lf/design-patterns-for-humans
@DevTwiiter | <Milwad Khosravi/>
بیا بگیر برو جوان ایرانی:
https://github.com/3lf/design-patterns-for-humans
@DevTwiiter | <Milwad Khosravi/>
Forwarded from mnr tech
در خیلی مواقع ممکنه شما به عنوان برنامه نویس پروژه ها و ریپو های زیادی روی سیستمتون داشته باشین. حالا فرض کنید میخواین سیستم عاملتون رو عوض کنید و خوب قطعا این ریپو ها رو توی گیت دارین ولی چیزی که توی گیت نیست فایل های env هست. اگر تعداد پروژه ها زیاد باشه (مثلا در مورد خودم شاید حدود ۵۰ تا پروژه داشته باشم) کپی و انتقال فایل های env سخت میشه.
با کمک اسکریپت زیر میتونید دایرکتوری پروژه هاتون رو به صورت تو در تو بررسی کنید و هر فایل env رو با توجه به ساختار دایرکتوری والد کپی کنید.
کافیه یک فایل بش بسازین کدهای بالا رو توش بنویسید، آدرس های مورد نظر رو تنظیم کنید و فایل بش رو اجرا کنید.
با کمک اسکریپت زیر میتونید دایرکتوری پروژه هاتون رو به صورت تو در تو بررسی کنید و هر فایل env رو با توجه به ساختار دایرکتوری والد کپی کنید.
#!/bin/bash
# دایرکتوری پروژهها
SOURCE_DIR="$HOME/prj" # مسیر دایرکتوری اصلی را اینجا تغییر دهید
# دایرکتوری مقصد
DEST_DIR="$HOME/env_backups"
# بررسی وجود دایرکتوری مقصد
mkdir -p "$DEST_DIR"
# جستجوی فایلهای .env و کپی با حفظ ساختار دایرکتوری
find "$SOURCE_DIR" -type f -name ".env" | while read -r env_file; do
# مسیر نسبی فایل .env نسبت به دایرکتوری اصلی
relative_path="${env_file#$SOURCE_DIR/}"
# مسیر مقصد با ساختار دایرکتوری
dest_path="$DEST_DIR/$relative_path"
# ایجاد دایرکتوریهای والد
mkdir -p "$(dirname "$dest_path")"
# کپی فایل به مقصد
cp "$env_file" "$dest_path"
echo "Copied: $env_file -> $dest_path"
done
echo "Backup completed. All .env files are copied to $DEST_DIR."
کافیه یک فایل بش بسازین کدهای بالا رو توش بنویسید، آدرس های مورد نظر رو تنظیم کنید و فایل بش رو اجرا کنید.