Forwarded from DevTwitter Ads.
🛑 میدونستی 90% برنامهنویسا مصاحبه اولشون رو رد میشن؟
نه بخاطر اینکه سخته، بخاطر اینکه «بایدها و نباید های مصاحبه رو نمیدونن» و حرفهای رفتار نمیکنن 👌
من سعیدی راد هستم، برنامهنویس جاوا اسکریپت.
یک PDF چکلیست مصاحبه آماده کردم که نذارم تو جزو اون 90 درصد نباشی.
این PDF رو تو چنلم پین کردم برات 👇
📥 دانلود چکلیست مصاحبه
نه بخاطر اینکه سخته، بخاطر اینکه «بایدها و نباید های مصاحبه رو نمیدونن» و حرفهای رفتار نمیکنن 👌
من سعیدی راد هستم، برنامهنویس جاوا اسکریپت.
یک PDF چکلیست مصاحبه آماده کردم که نذارم تو جزو اون 90 درصد نباشی.
این PDF رو تو چنلم پین کردم برات 👇
📥 دانلود چکلیست مصاحبه
👎29❤10👍2
پیاده سازی MTproto در PHP !
پروژه LiveProto یک کتابخانه قدرتمند و مدرن برای تعامل با پروتکل MTProto تلگرام است که با pure PHP توسعه یافته
همانطور که میدانید پی اچ پی از اعداد بزرگ و محاسبات سنگین و رمزگذاری های پیچیده پرفورمنس خوبی به ما نمیده
اما توی این پروژه از ابزار هایی مثل GMP و حتی استفاده از زبان های دیگری مانند RUST ( که وابسته به پروژه نیستن کاملا دل خواهی مثل tgcrypto php ) استفاده شده تا پرفورمنس و سرعت را حداکثر مقدار خودش برسونه
توی این پروژه از کتابخانه AMPHP استفاده شده ( استفاده از قابلیت های برنامه نویسی Async است ) و در آینده نزدیک قرار است نسخه ای با اکستنشن Swoole باز نویسی بشه
کاملا منطبق و قابل استفاده با هر فریمورک دیگری هست و هیچ تداخلی به وجود نمیاره
این کتابخانه یک واسط ساده نیست ، بلکه پیاده سازی کامل پروتکل سطح پایین تلگرام است ! و تمامی قابلیت های کلاینت تلگرام در آن پیاده سازی شده است ! کامل تر از هر کتابخانه و فریمورک سمت کلاینت دیگری میباشد و سال ها زمان برده است
فریمورک های دیگر این پروژه باعث انعطاف پذیری بالا و قابلیت مهاجرت راحت از سایر کتابخانه ها را فراهم آورده است ( استفاده از Session Bridge ) این ابزار اجازه میدهد سشن های تلگرام را بین فرمت های معروف ( مثل Telethon و Pyrogram و Tdata و MadelineProto ) به LiveProto تبدیل کنید
- نصب آسان از طریق Composer و حتی فایل تکی Phar
- ساخت ربات های تلگرامی در مقیاس بالا با معماری مدرن Async PHP 8
- از محدودیت های Bot API فراتر بروید مدیریت کامل اکانت و ربات تلگرام با LiveProto
گیت هاب پروژه ها :
https://github.com/TakNone/LiveProto
https://github.com/TakNone/tgcrypto
https://github.com/TakNone/SessionBridge
@DevTwitter | <TakNone/>
پروژه LiveProto یک کتابخانه قدرتمند و مدرن برای تعامل با پروتکل MTProto تلگرام است که با pure PHP توسعه یافته
همانطور که میدانید پی اچ پی از اعداد بزرگ و محاسبات سنگین و رمزگذاری های پیچیده پرفورمنس خوبی به ما نمیده
اما توی این پروژه از ابزار هایی مثل GMP و حتی استفاده از زبان های دیگری مانند RUST ( که وابسته به پروژه نیستن کاملا دل خواهی مثل tgcrypto php ) استفاده شده تا پرفورمنس و سرعت را حداکثر مقدار خودش برسونه
توی این پروژه از کتابخانه AMPHP استفاده شده ( استفاده از قابلیت های برنامه نویسی Async است ) و در آینده نزدیک قرار است نسخه ای با اکستنشن Swoole باز نویسی بشه
کاملا منطبق و قابل استفاده با هر فریمورک دیگری هست و هیچ تداخلی به وجود نمیاره
این کتابخانه یک واسط ساده نیست ، بلکه پیاده سازی کامل پروتکل سطح پایین تلگرام است ! و تمامی قابلیت های کلاینت تلگرام در آن پیاده سازی شده است ! کامل تر از هر کتابخانه و فریمورک سمت کلاینت دیگری میباشد و سال ها زمان برده است
فریمورک های دیگر این پروژه باعث انعطاف پذیری بالا و قابلیت مهاجرت راحت از سایر کتابخانه ها را فراهم آورده است ( استفاده از Session Bridge ) این ابزار اجازه میدهد سشن های تلگرام را بین فرمت های معروف ( مثل Telethon و Pyrogram و Tdata و MadelineProto ) به LiveProto تبدیل کنید
- نصب آسان از طریق Composer و حتی فایل تکی Phar
- ساخت ربات های تلگرامی در مقیاس بالا با معماری مدرن Async PHP 8
- از محدودیت های Bot API فراتر بروید مدیریت کامل اکانت و ربات تلگرام با LiveProto
گیت هاب پروژه ها :
https://github.com/TakNone/LiveProto
https://github.com/TakNone/tgcrypto
https://github.com/TakNone/SessionBridge
@DevTwitter | <TakNone/>
❤19👍2👎2
Forwarded from DevTwitter Ads.
برنامهنویسی رو از پایه با ۹۹٪ تخفیف شروع کن!
بدون هیچ پیشنیازی فقط کافیه علاقهمند باشی.
با ۹۹٪ تخفیف ثبتنام کن:
🔗 https://quera.org/r/aq47e
بدون هیچ پیشنیازی فقط کافیه علاقهمند باشی.
با ۹۹٪ تخفیف ثبتنام کن:
🔗 https://quera.org/r/aq47e
👎13👍3
معماری High Availability در Kubernetes Bare-metal با kube-vip
یکی از بزرگترین چالشهای راهاندازی کلاستر Kubernetes در محیطهای On-premise یا Bare-metal، مدیریت Control Plane HA و سرویسهای Load Balancer است. در کلاودهای عمومی، این وظیفه بر عهده Cloud Provider است، اما در دیتاسنتر شخصی شما، داستان متفاوت است.
ابزار kube-vip راهکاری که برخلاف روشهای سنتی، مستقیماً داخل کلاستر و به صورت Cloud-Native زیست میکند.
معماری و چرایی تفاوت kube-vip
تا پیش از این، استاندارد طلایی استفاده از ترکیب Keepalived و HAProxy بود. اما kube-vip پارادایم را تغییر داد. این ابزار از قابلیتهای خود کوبرنتیز برای مدیریت دسترسیپذیری استفاده میکند.
معماری در سطح Control Plane:
در این سطح، kube-vip به عنوان یک Static Pod یا DaemonSet روی گرههای Control Plane قرار میگیرد. با استفاده از پروتکل ARP (در لایه ۲) یا BGP (در لایه ۳)، یک Virtual IP (VIP) ایجاد میکند که ترافیک API Server را مدیریت میکند.
اگر گره Leader از دسترس خارج شود، kube-vip از طریق Raft-based election یا مکانیزمهای بومی خود، VIP را در میلیثانیه به گره دیگر منتقل میکند.
جایگزین هوشمند برای LoadBalancer Service:
بزرگترین جذابیت kube-vip برای من، قابلیت Service Type LoadBalancer است. این ابزار میتواند به صورت خودکار Watcher روی سرویسهای کوبرنتیز ست کند و به محض ایجاد یک سرویس از نوع LoadBalancer، یک IP از رنج تعیین شده به آن اختصاص داده و آن را در شبکه Advertise کند.
چرا به عنوان یک معمار سیستم باید به آن توجه کنید؟
حذف وابستگیهای خارجی:
شما دیگر نیازی به مدیریت یک Load Balancer خارجی یا تنظیمات پیچیده لایه ۳ خارج از کلاستر ندارید. همه چیز در قالب Manifestهای کوبرنتیزی مدیریت میشود.
پشتیبانی دوگانه (L2 & L3):
در L2 Mode، از Leader Election و پروتکل ARP استفاده میکند (مناسب برای شبکههای ساده و کوچک).
در L3 Mode، با استفاده از پروتکل BGP با سوئیچهای فیزیکی صحبت میکند (مناسب برای محیطهای Enterprise و سناریوهای Multi-rack).
یکپارچگی با کلاستر API (CAPI):
به خوبی با پروژههایی مثل Cluster API هماهنگ است و فرآیند Provisioning کلاستر را کاملاً خودکار میکند.
در پیادهسازی kube-vip، دقت به Interface Names حیاتی است. از آنجایی که kube-vip مستقیما با کارت شبکه میزبان درگیر میشود، در محیطهای ناهمگون که نام اینترفیسها متفاوت است (مثلا یکی eth0 و دیگری ens192)، حتماً از قابلیت تشخیص خودکار یا تنظیمات دقیق در درایور استفاده کنید تا با مشکل Bind نشدن VIP مواجه نشوید.
جمعبندی: چه زمانی kube-vip انتخاب نهایی ماست؟
انتخاب بین ابزارهای مدیریت ترافیک در کوبرنتیز، همیشه یک توازن (Trade-off) است. اگر بخواهم در سه خط خلاصه کنم:
در واقع kube-vip برای کسانی است که به دنبال سادگی عملیاتی هستند. برخلاف MetalLB که تمرکز اصلیاش فقط روی LoadBalancer Service است، kube-vip یک راهکار دو منظوره (Hybrid) ارائه میدهد: هم لایه Control Plane را High Available میکند و هم نقش Load Balancer را برای سرویسها ایفا میکند.
در نهایت، معماری موفق معماریای نیست که پیچیدهترین ابزار را انتخاب کند، بلکه معماریای است که نقاط شکست (Single Points of Failure) را با کمترین سربار مدیریتی حذف کند. kube-vip دقیقاً در همین نقطه ایستاده است.
@DevTwitter | <Vahid Aghazadeh/>
یکی از بزرگترین چالشهای راهاندازی کلاستر Kubernetes در محیطهای On-premise یا Bare-metal، مدیریت Control Plane HA و سرویسهای Load Balancer است. در کلاودهای عمومی، این وظیفه بر عهده Cloud Provider است، اما در دیتاسنتر شخصی شما، داستان متفاوت است.
ابزار kube-vip راهکاری که برخلاف روشهای سنتی، مستقیماً داخل کلاستر و به صورت Cloud-Native زیست میکند.
معماری و چرایی تفاوت kube-vip
تا پیش از این، استاندارد طلایی استفاده از ترکیب Keepalived و HAProxy بود. اما kube-vip پارادایم را تغییر داد. این ابزار از قابلیتهای خود کوبرنتیز برای مدیریت دسترسیپذیری استفاده میکند.
معماری در سطح Control Plane:
در این سطح، kube-vip به عنوان یک Static Pod یا DaemonSet روی گرههای Control Plane قرار میگیرد. با استفاده از پروتکل ARP (در لایه ۲) یا BGP (در لایه ۳)، یک Virtual IP (VIP) ایجاد میکند که ترافیک API Server را مدیریت میکند.
اگر گره Leader از دسترس خارج شود، kube-vip از طریق Raft-based election یا مکانیزمهای بومی خود، VIP را در میلیثانیه به گره دیگر منتقل میکند.
جایگزین هوشمند برای LoadBalancer Service:
بزرگترین جذابیت kube-vip برای من، قابلیت Service Type LoadBalancer است. این ابزار میتواند به صورت خودکار Watcher روی سرویسهای کوبرنتیز ست کند و به محض ایجاد یک سرویس از نوع LoadBalancer، یک IP از رنج تعیین شده به آن اختصاص داده و آن را در شبکه Advertise کند.
چرا به عنوان یک معمار سیستم باید به آن توجه کنید؟
حذف وابستگیهای خارجی:
شما دیگر نیازی به مدیریت یک Load Balancer خارجی یا تنظیمات پیچیده لایه ۳ خارج از کلاستر ندارید. همه چیز در قالب Manifestهای کوبرنتیزی مدیریت میشود.
پشتیبانی دوگانه (L2 & L3):
در L2 Mode، از Leader Election و پروتکل ARP استفاده میکند (مناسب برای شبکههای ساده و کوچک).
در L3 Mode، با استفاده از پروتکل BGP با سوئیچهای فیزیکی صحبت میکند (مناسب برای محیطهای Enterprise و سناریوهای Multi-rack).
یکپارچگی با کلاستر API (CAPI):
به خوبی با پروژههایی مثل Cluster API هماهنگ است و فرآیند Provisioning کلاستر را کاملاً خودکار میکند.
در پیادهسازی kube-vip، دقت به Interface Names حیاتی است. از آنجایی که kube-vip مستقیما با کارت شبکه میزبان درگیر میشود، در محیطهای ناهمگون که نام اینترفیسها متفاوت است (مثلا یکی eth0 و دیگری ens192)، حتماً از قابلیت تشخیص خودکار یا تنظیمات دقیق در درایور استفاده کنید تا با مشکل Bind نشدن VIP مواجه نشوید.
جمعبندی: چه زمانی kube-vip انتخاب نهایی ماست؟
انتخاب بین ابزارهای مدیریت ترافیک در کوبرنتیز، همیشه یک توازن (Trade-off) است. اگر بخواهم در سه خط خلاصه کنم:
در واقع kube-vip برای کسانی است که به دنبال سادگی عملیاتی هستند. برخلاف MetalLB که تمرکز اصلیاش فقط روی LoadBalancer Service است، kube-vip یک راهکار دو منظوره (Hybrid) ارائه میدهد: هم لایه Control Plane را High Available میکند و هم نقش Load Balancer را برای سرویسها ایفا میکند.
در نهایت، معماری موفق معماریای نیست که پیچیدهترین ابزار را انتخاب کند، بلکه معماریای است که نقاط شکست (Single Points of Failure) را با کمترین سربار مدیریتی حذف کند. kube-vip دقیقاً در همین نقطه ایستاده است.
@DevTwitter | <Vahid Aghazadeh/>
👍7❤2
#کوته_نیوز
ستار هاشمی، وزیر بی اطلاعِ ارتباطات:
گردش مالی ویپیانها اجازه نمیده رفع فیلتر کنیم.
یعنی ما میدونیم ویپیان فروشها از خودمونن، ولی اینقدر گردن کلفتن که کاری نمیتونیم بکنیم.
بله آقای هاشمی، وقتی وزارت ارتباطات نه تنها اجازهی وصل کردن اینترنت رو نداره، بلکه حتی خبر هم نداره کی وصل میشه، بایدم زورش به چند تا آقازاده نرسه.
@DevTwitter
ستار هاشمی، وزیر بی اطلاعِ ارتباطات:
گردش مالی ویپیانها اجازه نمیده رفع فیلتر کنیم.
یعنی ما میدونیم ویپیان فروشها از خودمونن، ولی اینقدر گردن کلفتن که کاری نمیتونیم بکنیم.
بله آقای هاشمی، وقتی وزارت ارتباطات نه تنها اجازهی وصل کردن اینترنت رو نداره، بلکه حتی خبر هم نداره کی وصل میشه، بایدم زورش به چند تا آقازاده نرسه.
@DevTwitter
👍109👎10❤2
#کوته_نیوز
همچنان وزیر بی اطلاعِ ارتباطات:
دلیل هک شدن بانکها و پمپبنزینها و پلتفرمهای دولتی و خصوصی، مهاجرت نخبههای فناوری کشوره.
ما ناامیدشون کردیم، به حرفاشون گوش نکردیم، اونها هم مهاجرت کردن.
همیشه همین بوده رفقا، هر دولتی اومده، از دولت قبلی انتقاد کرده.
ولی در زمان وزارت ایشون بود که اینترنت ایران سیاه ترین روزهای خودش رو گذروند. دوبار قطعی کامل، توی یک سال، یک دوره.
نخبه و متخصص که هیچی، جونیور و اینترن هم نمیمونن، چون نمیتونن هیچکاری بکنن با این وضعیت.
@DevTwitter
همچنان وزیر بی اطلاعِ ارتباطات:
دلیل هک شدن بانکها و پمپبنزینها و پلتفرمهای دولتی و خصوصی، مهاجرت نخبههای فناوری کشوره.
ما ناامیدشون کردیم، به حرفاشون گوش نکردیم، اونها هم مهاجرت کردن.
همیشه همین بوده رفقا، هر دولتی اومده، از دولت قبلی انتقاد کرده.
ولی در زمان وزارت ایشون بود که اینترنت ایران سیاه ترین روزهای خودش رو گذروند. دوبار قطعی کامل، توی یک سال، یک دوره.
نخبه و متخصص که هیچی، جونیور و اینترن هم نمیمونن، چون نمیتونن هیچکاری بکنن با این وضعیت.
@DevTwitter
1👍192❤6👎6
این مقاله کلی نکته خواندنی و آموزنده در مورد چالش های distributed systems داره که بعضیهاش ممکنه به کارتون بیاد. تمایل داشتید بخونید.
Distributed Job Scheduler Architecture at Meta Hyperscale
https://dilipkumar.medium.com/distributed-job-scheduler-system-design-8ae13a8dee83
یکی از نکات خیلی جالبش برای خودم Hierarchical Timing Wheels بود که چطوری مساله timer management رو با O(1) مدیریت میکنه.
@DevTwitter | <Hossein Nazari/>
Distributed Job Scheduler Architecture at Meta Hyperscale
https://dilipkumar.medium.com/distributed-job-scheduler-system-design-8ae13a8dee83
یکی از نکات خیلی جالبش برای خودم Hierarchical Timing Wheels بود که چطوری مساله timer management رو با O(1) مدیریت میکنه.
@DevTwitter | <Hossein Nazari/>
❤12👍1
آموزش ساخت چت روم اختصاصی
مناسب برای شرایط سخت اینترنت ( اینترنت ملی)
لینک گیت هاب :
https://github.com/aminiyt1/chatroomAminiyt
آموزش راه اندازی:
https://youtu.be/6W43cDqCLgk
@DevTwitter | <AminiYT/>
مناسب برای شرایط سخت اینترنت ( اینترنت ملی)
لینک گیت هاب :
https://github.com/aminiyt1/chatroomAminiyt
آموزش راه اندازی:
https://youtu.be/6W43cDqCLgk
@DevTwitter | <AminiYT/>
👎43❤16
یه منبع عالی از api های پابلیک پیدا کردم
https://github.com/marcelscruz/public-apis
@DevTwitter | <iman/>
https://github.com/marcelscruz/public-apis
@DevTwitter | <iman/>
❤19🔥4
رابط PaqetUI یک رابط گرافیکی مدرن برای مدیریت پروکسی شبکهای paqet است.
پشتیبانی از حالت کلاینت/سرور و مدیریت چند پروفایل YAML.
کنترل: لاگ زنده و تنظیمات دقیق.
https://github.com/ThisIsDara/PaqetUI
@DevTwitter | <Dara />
پشتیبانی از حالت کلاینت/سرور و مدیریت چند پروفایل YAML.
کنترل: لاگ زنده و تنظیمات دقیق.
https://github.com/ThisIsDara/PaqetUI
@DevTwitter | <Dara />
❤6👍1
why knowledge in not enough in the AI World?
تا قبل از دوران هوش مصنوعی شما course های مختلف نگاه می کردید با vocabulary برنامه نویسی آشنا می شدید و با انجام چند پروژه استخدام می شدید.
اما با آمدن هوش مصنوعی دنیای برنامه نویسی وارد دوران جدیدی شده است . همچنان course های برنامه نویسی مهم هستند.
اما با وجود agent هایی که کدهای حرفه ای تولید می کنند دیگر نوشتن کد یک امتیاز نیست.
امتیاز الآن در پیدا کردن مشکلات دنیای واقعی، گرفتن تصمیمات درست و به موقع، یاد گرفتن از اشتباه های قبلی و شروع کردن پروژه ای هست که ارزش افزوده به جهان اضافه می کند.
الآن با وجود هوش مصنوعی نوشتن کد دیگر امتیاز نیست ولی آشنایی با معماری نرم افزار، ساختن برنامه ای ارزشمند و گرفتن تصمیمات کلیدی که هوش مصنوعی توانایی آن را ندارد امتیاز اصلی هست.
https://youtu.be/7Tc63wQ58n4?si=bq4aKkQpTsO9XxW9
@DevTwitter | <Yusof Sadat Fakhr/>
تا قبل از دوران هوش مصنوعی شما course های مختلف نگاه می کردید با vocabulary برنامه نویسی آشنا می شدید و با انجام چند پروژه استخدام می شدید.
اما با آمدن هوش مصنوعی دنیای برنامه نویسی وارد دوران جدیدی شده است . همچنان course های برنامه نویسی مهم هستند.
اما با وجود agent هایی که کدهای حرفه ای تولید می کنند دیگر نوشتن کد یک امتیاز نیست.
امتیاز الآن در پیدا کردن مشکلات دنیای واقعی، گرفتن تصمیمات درست و به موقع، یاد گرفتن از اشتباه های قبلی و شروع کردن پروژه ای هست که ارزش افزوده به جهان اضافه می کند.
الآن با وجود هوش مصنوعی نوشتن کد دیگر امتیاز نیست ولی آشنایی با معماری نرم افزار، ساختن برنامه ای ارزشمند و گرفتن تصمیمات کلیدی که هوش مصنوعی توانایی آن را ندارد امتیاز اصلی هست.
https://youtu.be/7Tc63wQ58n4?si=bq4aKkQpTsO9XxW9
@DevTwitter | <Yusof Sadat Fakhr/>
❤49👎5🔥1