Forwarded from ⚝ (Amir Hossein "Amiria" Maher)
Forwarded from DevTwitter | توییت برنامه نویسی
امروز میخوام براتون درباره TCP صحبت کنم، یکی از پروتکلهای کلیدی اینترنت که بهطور روزمره باهاش سروکار داریم. TCP مثل یه پستچی مطمئن عمل میکنه و دادهها رو دقیق و به ترتیب به مقصد میرسونه.
پروتکل کنترل انتقال یا TCP چیه؟
پروتکل کنترل انتقال یا TCP یکی از مهمترین پروتکلهای ارتباطی هست که به دادهها اجازه میده بهصورت امن و مطمئن از یک سیستم به سیستم دیگه منتقل بشن. به خاطر اطمینان بالا، بیشتر اپلیکیشنها مثل وبگردی، ایمیل و پیامرسانها از TCP استفاده میکنن.
چطور ارتباط TCP برقرار میشه؟
برقراری ارتباط TCP یه فرآیند سه مرحلهای به اسم Three-Way Handshake داره:
مرحله اول SYN (Synchronize)
مثل این میمونه که یک طرف دستش رو برای دست دادن دراز کنه.
کلاینت بستهای با فلگ SYN به سرور میفرسته که حاوی شماره ترتیب اولیه (ISN) هست. مثلاً ۱۰۰۰. این یعنی کلاینت میخواد ارتباط برقرار کنه.
مرحله دوم SYN-ACK (Synchronize Acknowledge)
سرور دست رو میگیره و فلگهای SYN و ACK رو تنظیم میکنه. شماره ترتیب کلاینت رو تایید میکنه (۱۰۰۱) و شماره ترتیب خودش رو (مثلاً ۵۰۰۰) میفرسته.
مرحله سوم ACK (Acknowledge)
کلاینت پاسخ میده و فلگ ACK رو تنظیم میکنه. شماره ترتیب سرور رو به ۵۰۰۱ افزایش میده. حالا ارتباط TCP برقرار شده و آماده تبادل دادهها هست.
سوالات متداول:
فلگهای SYN و ACK چی هستن؟
این فلگها به TCP کمک میکنن که ارتباط بین دو سیستم رو مدیریت کنه و مطمئن بشه که هر پیام به درستی دریافت شده.
چرا شماره ترتیبها (ISN) مهم هستن؟
این شمارهها کمک میکنن تا پیامها به ترتیب درست برسن و از گم شدن اطلاعات جلوگیری میکنه. همچنین با تصادفی بودنشون جلوی حملات امنیتی گرفته میشه.
آیا اینترنت به سمت جایگزینی TCP میره؟
در HTTP/3 از پروتکل جدیدی به نام QUIC استفاده میشه که جای TCP رو میگیره، اما هنوز بیشتر وبسایتها از TCP استفاده میکنن، پس فعلاً جایی نمیره!
@DevTwitter | <Firoozeh Daeizadeh/>
پروتکل کنترل انتقال یا TCP چیه؟
پروتکل کنترل انتقال یا TCP یکی از مهمترین پروتکلهای ارتباطی هست که به دادهها اجازه میده بهصورت امن و مطمئن از یک سیستم به سیستم دیگه منتقل بشن. به خاطر اطمینان بالا، بیشتر اپلیکیشنها مثل وبگردی، ایمیل و پیامرسانها از TCP استفاده میکنن.
چطور ارتباط TCP برقرار میشه؟
برقراری ارتباط TCP یه فرآیند سه مرحلهای به اسم Three-Way Handshake داره:
مرحله اول SYN (Synchronize)
مثل این میمونه که یک طرف دستش رو برای دست دادن دراز کنه.
کلاینت بستهای با فلگ SYN به سرور میفرسته که حاوی شماره ترتیب اولیه (ISN) هست. مثلاً ۱۰۰۰. این یعنی کلاینت میخواد ارتباط برقرار کنه.
مرحله دوم SYN-ACK (Synchronize Acknowledge)
سرور دست رو میگیره و فلگهای SYN و ACK رو تنظیم میکنه. شماره ترتیب کلاینت رو تایید میکنه (۱۰۰۱) و شماره ترتیب خودش رو (مثلاً ۵۰۰۰) میفرسته.
مرحله سوم ACK (Acknowledge)
کلاینت پاسخ میده و فلگ ACK رو تنظیم میکنه. شماره ترتیب سرور رو به ۵۰۰۱ افزایش میده. حالا ارتباط TCP برقرار شده و آماده تبادل دادهها هست.
سوالات متداول:
فلگهای SYN و ACK چی هستن؟
این فلگها به TCP کمک میکنن که ارتباط بین دو سیستم رو مدیریت کنه و مطمئن بشه که هر پیام به درستی دریافت شده.
چرا شماره ترتیبها (ISN) مهم هستن؟
این شمارهها کمک میکنن تا پیامها به ترتیب درست برسن و از گم شدن اطلاعات جلوگیری میکنه. همچنین با تصادفی بودنشون جلوی حملات امنیتی گرفته میشه.
آیا اینترنت به سمت جایگزینی TCP میره؟
در HTTP/3 از پروتکل جدیدی به نام QUIC استفاده میشه که جای TCP رو میگیره، اما هنوز بیشتر وبسایتها از TCP استفاده میکنن، پس فعلاً جایی نمیره!
@DevTwitter | <Firoozeh Daeizadeh/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 آمریکا میخواهد صادرات تراشههای هوش مصنوعی انویدیا را به برخی کشورها محدود کند
براساس گزارش بلومبرگ، ایالات متحده بر کشورهای حوزهی خلیج فارس تمرکز دارد و این رویکرد جدید سقفی برای مجوزهای صادرات برای برخی کشورها به نفع امنیت ملی آمریکا تعیین خواهد کرد.
سال گذشته، دولت بایدن اقداماتی را برای گسترش الزامات صدور مجوز برای صادرات تراشههای پیشرفته به بیش از ۴۰ کشور اعلام کرد؛ از جمله برخی کشورهای خاورمیانه که خطر صادرات به چین را دارند و مشمول تحریمهای ایالات متحده میشوند.
#خبر
@TheRaymondDev
براساس گزارش بلومبرگ، ایالات متحده بر کشورهای حوزهی خلیج فارس تمرکز دارد و این رویکرد جدید سقفی برای مجوزهای صادرات برای برخی کشورها به نفع امنیت ملی آمریکا تعیین خواهد کرد.
سال گذشته، دولت بایدن اقداماتی را برای گسترش الزامات صدور مجوز برای صادرات تراشههای پیشرفته به بیش از ۴۰ کشور اعلام کرد؛ از جمله برخی کشورهای خاورمیانه که خطر صادرات به چین را دارند و مشمول تحریمهای ایالات متحده میشوند.
#خبر
@TheRaymondDev
Bloomberg.com
US Weighs Capping Exports of AI Chips From Nvidia and AMD to Some Countries
Biden administration officials have discussed capping sales of advanced AI chips from Nvidia Corp. and other American companies on a country-specific basis, people familiar with the matter said.
Forwarded from laravel-news
بعد از اینکه با یک کامند تونستیم PHP و Larave رو نصب کنیم، حالا نوبت به این رسیده بود که بریم سراغ قسمت Running 😃
و خب تو این قسمت هم تیلور جون ما رو تنها نزاشته و به فکر ماست.
(خدا به فکرش باشه جوون پاک و سالمیه 🤲).
دستور
با زدن این دستور، 4 دستور:
م
م
م
م
زده میشه و همچی آماده ست تا بریم و به آتیش بکشیمش! 🔥
و خب تو این قسمت هم تیلور جون ما رو تنها نزاشته و به فکر ماست.
(خدا به فکرش باشه جوون پاک و سالمیه 🤲).
دستور
composer run dev از امروز مسئول آماده سازی local development شماست. 😎🤘با زدن این دستور، 4 دستور:
م
php artisan serveم
php artisan queue:listenم
php artisan pailم
npm run devزده میشه و همچی آماده ست تا بریم و به آتیش بکشیمش! 🔥
Forwarded from Philocode
هیچوقت pipewire رو روی Ubuntu حذف نکنید.
منم الآن فهمیدم که بالا نمیاومد و مجبور شدم ubuntu-desktop رو توی recovery mode نصب کنم.😂
منم الآن فهمیدم که بالا نمیاومد و مجبور شدم ubuntu-desktop رو توی recovery mode نصب کنم.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from محتوای آزاد سهراب
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
Forwarded from Agora (Alireza Azadi)
به مناسبت انتشار remake خیلی خوب بازی SILENT HILL 2
نظرم اینه که موسیقی یک بازی داستانمحور، از اساسیترین رکنهای بازی و حتی خود داستانه. از این جهت که موسیقی درست، بهجز فضاسازی، میتونه در تکمیل روایت نقش ایفا کنه. روایتی که حتی گویاترین و واضحترین تصاویر هم از بیان جانانهاش عاجزند، موسیقی روح داستان رو به ناخودآگاه مخاطب راه میده تا بتونه تمام روایت رو در ذهن مخاطب تمام و کمال و برای همیشه ثبت کنه... موسیقی رکن جادویی یک اثر هنریه.
نظرم اینه که موسیقی یک بازی داستانمحور، از اساسیترین رکنهای بازی و حتی خود داستانه. از این جهت که موسیقی درست، بهجز فضاسازی، میتونه در تکمیل روایت نقش ایفا کنه. روایتی که حتی گویاترین و واضحترین تصاویر هم از بیان جانانهاش عاجزند، موسیقی روح داستان رو به ناخودآگاه مخاطب راه میده تا بتونه تمام روایت رو در ذهن مخاطب تمام و کمال و برای همیشه ثبت کنه... موسیقی رکن جادویی یک اثر هنریه.
Forwarded from Syntax | سینتکس (Daimon)
Docker in Docker (DinD)
به اجرای Docker در داخل یک کانتینر اشاره دارد.
یک مثال کاربردی اش پایپلاین CI/CD است:
- در برخی مواقع ممکن است پروژه ما برای اجرا و تست نیاز به یک سری backing service ها مثل redis و ... داشته باشد. در این صورت ترفندی که می زنیم را می توان اینطور بیان کرد که داخل کانتینر، کانتینر های مورد نیاز پروژه مان را آپ می کنیم.
مثال:
و داخل فایل Makefile:
چالش DinD در موارد بیشتر
1. امنیت:
- اجرای Docker در Docker میتواند خطرات امنیتی به همراه داشته باشد، زیرا کانتینر داخلی به Docker Host دسترسی دارد.
2. پیچیدگی شبکه:
- کانفیگ شبکه میتواند پیچیده شود، به ویژه اگر نیاز به ارتباط بین کانتینرهای داخلی و خارجی باشد.
3. عملکرد:
- ممکن است عملکرد ضعیفتری نسبت به اجرای Docker به صورت مستقیم روی سرور داشته باشد.
نحوه استفاده
برای استفاده از Docker in Docker، میتوانید از ایمیجی مانند
استفاده از فلگ
جایگزینها
در بسیاری از موارد، استفاده از روشهای جایگزین مانند Docker خارج از کانتینر یا استفاده از ابزارهایی مانند Kubernetes میتواند مشکلات مربوط به DinD را حل کند و امنیت بیشتری فراهم کند.
#DinD
@Syntax_fa
به اجرای Docker در داخل یک کانتینر اشاره دارد.
یک مثال کاربردی اش پایپلاین CI/CD است:
- در برخی مواقع ممکن است پروژه ما برای اجرا و تست نیاز به یک سری backing service ها مثل redis و ... داشته باشد. در این صورت ترفندی که می زنیم را می توان اینطور بیان کرد که داخل کانتینر، کانتینر های مورد نیاز پروژه مان را آپ می کنیم.
مثال:
ci.yml
name: CI
on:
pull_request:
types: [opened, edited, reopened, synchronize, ready_for_review]
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/test.txt
- name: dockerUp
run: sudo make docker-test-up
- name: Test
run: make test
- name: dockerDown
run: sudo make docker-test-down
و داخل فایل Makefile:
.PHONY: test
ROOT=$(realpath $(dir $(lastword $(MAKEFILE_LIST))))
test:
python manage.py test
docker-test-up:
docker compose -f $(ROOT)/docker-compose-test.yml up -d
docker-test-down:
docker compose -f $(ROOT)/docker-compose-test.yml down
چالش DinD در موارد بیشتر
1. امنیت:
- اجرای Docker در Docker میتواند خطرات امنیتی به همراه داشته باشد، زیرا کانتینر داخلی به Docker Host دسترسی دارد.
2. پیچیدگی شبکه:
- کانفیگ شبکه میتواند پیچیده شود، به ویژه اگر نیاز به ارتباط بین کانتینرهای داخلی و خارجی باشد.
3. عملکرد:
- ممکن است عملکرد ضعیفتری نسبت به اجرای Docker به صورت مستقیم روی سرور داشته باشد.
نحوه استفاده
برای استفاده از Docker in Docker، میتوانید از ایمیجی مانند
docker:dind استفاده کنید. یک نمونه ساده از اجرای DinD به صورت زیر است:docker run --privileged --name dind-container -d docker:dind
استفاده از فلگ
--privileged ضروری است تا کانتینر به منابع سیستم دسترسی کامل داشته باشد.جایگزینها
در بسیاری از موارد، استفاده از روشهای جایگزین مانند Docker خارج از کانتینر یا استفاده از ابزارهایی مانند Kubernetes میتواند مشکلات مربوط به DinD را حل کند و امنیت بیشتری فراهم کند.
#DinD
@Syntax_fa
Forwarded from Gopher Academy
🔵 عنوان مقاله
Developing a Go Bot That Embeds Ichiban Prolog
🟢 خلاصه مقاله:
اIchiban Prolog معرفی یک پیادهسازی جدید و موثر از زبان برنامهنویسی منطقی Prolog با استفاده از زبان برنامهنویسی Go است. این پیادهسازی به توسعهدهندگان اجازه میدهد تا قدرت زبان Prolog را به طور مستقیم درون برنامههای Go به کار ببرند. استفاده از Ichiban Prolog در برنامههای Go امکان بهرهبرداری از توابع پیچیده و منطقی را به شکلی سهل و ممکن فراهم میکند، بدون آنکه نیاز به جابهجایی بین زبانها یا استفاده از رابطهای برنامهنویسی اضافی باشد. این امر باعث بهبود بهرهوری در توسعه و کارایی برنامهها میشود. Ichiban Prolog به خصوص برای موارد کاربردی که نیازمند مدلسازی منطقی و حل مسائل پیچیده هستند، مفید است و به توسعهدهندگان امکان میدهد با استفاده از تکنیکهای Prolog، به راهحلهای نوآورانه دست پیدا کنند.
🟣لینک مقاله:
https://golangweekly.com/link/160154/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Developing a Go Bot That Embeds Ichiban Prolog
🟢 خلاصه مقاله:
اIchiban Prolog معرفی یک پیادهسازی جدید و موثر از زبان برنامهنویسی منطقی Prolog با استفاده از زبان برنامهنویسی Go است. این پیادهسازی به توسعهدهندگان اجازه میدهد تا قدرت زبان Prolog را به طور مستقیم درون برنامههای Go به کار ببرند. استفاده از Ichiban Prolog در برنامههای Go امکان بهرهبرداری از توابع پیچیده و منطقی را به شکلی سهل و ممکن فراهم میکند، بدون آنکه نیاز به جابهجایی بین زبانها یا استفاده از رابطهای برنامهنویسی اضافی باشد. این امر باعث بهبود بهرهوری در توسعه و کارایی برنامهها میشود. Ichiban Prolog به خصوص برای موارد کاربردی که نیازمند مدلسازی منطقی و حل مسائل پیچیده هستند، مفید است و به توسعهدهندگان امکان میدهد با استفاده از تکنیکهای Prolog، به راهحلهای نوآورانه دست پیدا کنند.
🟣لینک مقاله:
https://golangweekly.com/link/160154/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Roger Sen
Developing a go bot embedding ichiban Prolog
Ichiban Prolog is a #golang implementation of an ISO compatible Prolog. To learn how to embed it, I decided to add Prolog support to Hellabot, a simple irc bot.
Hellabot design requires to program its triggers using a two step process as described in the…
Hellabot design requires to program its triggers using a two step process as described in the…
Forwarded from Future Pulse Persian
🎯اگر علاقه مند به موضوعات👈🏻 بلاکچین/ارزهای دیجیتال/هوش مصنوعی/DeFi/NFTS هستید
👇 چنل زیر رو از دست ندید(با موضاعات متنوع و بروز)
📈 Bitcoin & Ethereum Trends
💰 Exciting Altcoins News
🔗 Cutting-Edge Blockchain Innovations
📊 Business Insights & Market Analysis
📜 Policy & Regulations Updates
🤖 AI: Artificial Intelligence Advancements
🎨 The World of NFTs
🌐 Decentralized Finance (DeFi) News
➖➖➖➖➖➖➖➖
👑 @Blockchain_labdon
👇 چنل زیر رو از دست ندید(با موضاعات متنوع و بروز)
📈 Bitcoin & Ethereum Trends
💰 Exciting Altcoins News
🔗 Cutting-Edge Blockchain Innovations
📊 Business Insights & Market Analysis
📜 Policy & Regulations Updates
🤖 AI: Artificial Intelligence Advancements
🎨 The World of NFTs
🌐 Decentralized Finance (DeFi) News
➖➖➖➖➖➖➖➖
👑 @Blockchain_labdon
Forwarded from Ninja Learn | نینجا لرن
دانشمندان چینی با استفاده از یه رایانه کوانتومی تونستن الگوریتم های رمز نگاری AES و RSA رو بشکنن 😐
این الگوریتم ها توی تبادل اطلاعات نظامی و بانکی استفاده میشه 😄
این الگوریتم ها توی تبادل اطلاعات نظامی و بانکی استفاده میشه 😄
Forwarded from DevTwitter | توییت برنامه نویسی
کتاب Web Browser Engineering در مورد روش کار Browser ها و مفاهیم پایه
کمک خوبی است برای درک عمیق مفاهیم
browser.engineering/index.html
@DevTwitter | <MehrdadLinux/>
کمک خوبی است برای درک عمیق مفاهیم
browser.engineering/index.html
@DevTwitter | <MehrdadLinux/>
Forwarded from Linuxor ?
اگر آراد و آرتمیس دو کاربر یک سیستم باشند کدام گذینه درست است؟
Anonymous Quiz
19%
آراد و آرتمیس درصورتی که عضو sudo نباشند نمیتوانند رمز یوزر خود را عوض کنند.
37%
اگر آراد و آرتمیس عضو sudo باشد آراد میتواند رمز آرتمیس را عوض کند
43%
اگر آراد عضو sudo باشد درصورتی میتواند رمز عبور آرتمیس را عوض کند که عضو sudo نباشد
Forwarded from Python Hints
از صبح داشتم یک پروژه رو
دسترسی به کدهای قدیمی هم گرفتم، میبینم تست نویسی برای این باگ تو زبان و فریمورک قبلی انجام شده ولی این سمت توی تستها نیست !
بنظرتون مشکل از کجاست ؟
مدیرفنی یا تیملید بکند.
یک درس بزرگی که حتی قبل از ورود به دنیای بکند و بخاطر عادت به سورس کد خوندن گرفتم این بود که
اولویت بالاتری داره از
واقعیت هم همین هست،
خیلی تیمها (ایرانی و خارجی) که
این کاملاً خطا هست، برای مدیر فنی ٫ تیم لید منظورم هست. الان سوالتون اینه که چرا ؟
توی این پروژه اگر
اگر این اتفاق افتاده بود الان که فریمورک عوض شده نیاز به باز نویسی تستها نبود، یعنی ما فقط برای اجرای سرور روی thread دیگر دستورات رو عوض میکردیم و تستها رو اجرا میکردیم.
وقتی دارم از بیرون به سیستم نگاه میکنم برام چه فرقی داره که چه زبان برنامهنویسی یا چه فریمورکی استفاده شده؛ همونطور که برای یوزر من فرقی نداره.
خواستم بگم حواستون به این نکته باشه،
متاسفانه کدهای جدید این تیم هم این خطا رو داره و باز وابسته شده به فریمورک
review میکردم که بنا به مشکلات از یک فریمورک به فریمورک دیگه جابجا شده؛ اما بعد از جابجایی یک سری بخشهای پروژه باگ داره و من وارد شدم برای کد ریویو (امروز صبح روز اول کارم بود) دسترسی به کدهای قدیمی هم گرفتم، میبینم تست نویسی برای این باگ تو زبان و فریمورک قبلی انجام شده ولی این سمت توی تستها نیست !
بنظرتون مشکل از کجاست ؟
مدیرفنی یا تیملید بکند.
یک درس بزرگی که حتی قبل از ورود به دنیای بکند و بخاطر عادت به سورس کد خوندن گرفتم این بود که
Intégration test اولویت بالاتری داره از
Unit test واقعیت هم همین هست،
unit test برای راحتی خودمون و دولوپر بعدی هست و intégration test برای راحتی و بدون باگ بودن استفادههای clientخیلی تیمها (ایرانی و خارجی) که
intégration test نمینویسند متاسفانه ولی اونهایی هم که مینویسند مثل کدهای امروز من دقیقاً از آنچه که فریمورک ارائه میده استفاده میکنند.این کاملاً خطا هست، برای مدیر فنی ٫ تیم لید منظورم هست. الان سوالتون اینه که چرا ؟
توی این پروژه اگر
intégration test ها میومد سرور رو روی یک thread جدا اجرا میکرد و بعد با استفاده از پکیج دیگری مثل requests درخواست میزد به api هاش بنظرتون بهتر نمیشد ؟ اگر این اتفاق افتاده بود الان که فریمورک عوض شده نیاز به باز نویسی تستها نبود، یعنی ما فقط برای اجرای سرور روی thread دیگر دستورات رو عوض میکردیم و تستها رو اجرا میکردیم.
وقتی دارم از بیرون به سیستم نگاه میکنم برام چه فرقی داره که چه زبان برنامهنویسی یا چه فریمورکی استفاده شده؛ همونطور که برای یوزر من فرقی نداره.
خواستم بگم حواستون به این نکته باشه،
intégration test باید جوری باشه که فارغ از فریمورک و زبان قابل اجرا باشه.متاسفانه کدهای جدید این تیم هم این خطا رو داره و باز وابسته شده به فریمورک
Forwarded from رسانه نرم افزار آزاد
#qa
#سین_جیم #linux #لینوکس
🐘 ماستودون
Please open Telegram to view this post
VIEW IN TELEGRAM