CodeByMe 🛜
Ir al canal en Telegram
913
Suscriptores
Sin datos24 horas
-17 días
+530 días
Archivo de publicaciones
915
رئیس دپارتمانمون رو میزش یه کوزه در بستهاس روش نوشته «خاکستر دانشجوهای دردسرساز»
💬mamoli
@codebyme
915
لیتکد یکی از بهترین جاها برای تمرین الگوریتمه. این ریپو جواب بالای هزار تا از مسئلههاشو داره. اگه نمیدونی از کجا شروع کنی، اول جوابارو یه نگاه بنداز، بعد خودت امتحان کن. همین میتونه شروع مسیرت باشه:
https://github.com/haoel/leetcode
@codebyme
915
#sarkhat
اولین قدم در مسیر دِوآپس
یادگیری
Linux، اساس همه چیز
سفر به سوی Cloud Computing با انرژی و انگیزه
تجربیات تازهکارانه برای رشد و موفقیت در دنیای فناوری
https://codebyme.com/sarkhat/اولین-قدم-من-در-دوآپس-داستان-یک-تازهکار
@codebyme915
جدا از مهندسی پشت تلگرام که بهینه نوشته شده، تلگرام چیزی داره به اسم Update Queue. چیزی که ۱ سال از دوران جوونیم رو صرف مهندسی معکوسش کردم.
تلگرام برای پوش کردن تغییرات مثل پیام جدید، ادیت، ری اکشن، تایپینگ و… به کلاینتها از سرویس Updates تو پروتکل MTProto استفاده میکنه، ایده ی کلی و کلیدی خیلی ساده اس و اینه که کلاینت ها یه state محلی نگه میدارن و آپدیتارو دقیقا با ترتیب درست اعمال میکنن؛ اگه شکافی بینشون افتاد، Difference میگیرن و دوباره پرش میکنن.
چرا اینکارو کرده و کلا چالشا چیه؟
• ترتیبش مهمه چون ممکنه یه اپدیت وابسته به چیزی باشه که توی خود همون پچ میاد
• تحویل دقیق باید انجام بشه و هیچی گم نشه
• مقیاسش هم میلیونها کاربر همزمان باید بگیرنش، مثل کانال های بزرگ
از اونجایی که هر پیامرسان منبع عظیمی از اتفاقاتیه که هر لحظه میوفته ما میتونیم اسم این اتفاقات رو event بزاریم. تلگرام هم یه پیامرسان مولتی کلاینته، یعنی هر کاربر میتونه چندین دیوایس برای یه حساب داشته باشه، پس وقتی یه ایونت اتفاق میوفته که باید یه کاربر از اون خبردار بشه باید اون ایونت رو به دیوایس های دیگه ی کاربر هم بفرسته، حدودا با مرتبه زمانی On^2.
مکانیزم اینجوریه که وقتی دیوایسی انلاین باشه و سوکت همون سوکتی باشه که keep alive هست یا اخرین rpc رو کال کرده سرور ایونت رو توی queue برای اون دیوایس نگه نمیداره و مستقیم میفرسته به کلاینت، حالا از اونجایی که کلاینت های دیگه ممکنه افلاین باشن یا حتی توی بکگراند پروسسشون کیل شده باشه عقب میمونن. حالا وقتی اون دیوایسی که عقب مونده بود با باز شدن سوکتش درخواست گرفتن اپدیت هارو وقتی که افلاین بوده رو از سرور میکنه و اطلاعات لوکالش رو میفرسته به سرور، من برای ساده شدنش اینجوری میگم که دیوایس میاد به سرور میگه من تا این زمان t رو داشتم و بعد این رو بهم بده، سرور هم میاد حساب کتابش رو میکنه و جواب رو توی یه پچ میفرسته! حالا چی توی این پچ هست و چی رو میفرسته رو میتونم یه رشته توییت دیگه در موردش بزنم.
حالا اگه اعدادی که توی پچ میاد با اعداد توی کلاینت نخونه عملا میگیم گپ اتفاق افتاده، برای همین هم کلاینت باید رکویست getDiff رو بزنه.
رکویست updates.getDifference به کلاینت اجازه میده بگه:
من الان pts = X و seq = Y هستم و هر چی بین این و حالت جدید هست بهم بده.
• سرور ممکنه جواب بده:
difference: همه ی آپدیت های گمشده
differenceSlice: بخشی از آپدیت ها یعنی هنوز باید به فچ کردن ادامه بدی
differenceEmpty: چیزی تغییر نکرده
جالبترش اینه که توی نسخه های جدیدترش برای کانال ها مکانیسم جدا getChannelDifference هست، چون هر کانال pts مستقل داره و این باعث میشه شما فقط کانال هایی رو بگیری که تغییر کردن! برای سوپر گروه هم مکانیزم همینه.
این باعث میشه حتی اگر چند ساعت آفلاین باشی، بعد از اتصال دوباره دقیقاً همهچی رو بگیری و هیچ پیامی رو از دست ندی
حتی با packet loss یا reconnect، state کلاینت خراب نمیشه و سرور مجبور نیست برای هر کلاینت همه چی رو دوباره بفرسته. فقط gap ها sync میشن
@codebyme
915
امروز یکی از همکارانم سوال خوبی پرسید که فکر میکنم دغدغه خیلیهاست:
"فرق واقعی Async و Concurrency چیه؟ مگه هر دو به معنی انجام همزمان کارها نیستن؟"
این دو مفهوم اغلب با هم اشتباه گرفته میشن. بذارید با یک مثال ساده تفاوتشون رو باز کنم:
۱. Synchronous vs. Asynchronous
این مفاهیم درباره انتظار کشیدن هستن.
Sync
مثل اینه که بری کافه، قهوه سفارش بدی و همونجا جلوی پیشخوان منتظر بمونی تا آماده بشه و تحویل بگیری.
تا قهوه رو نگیری، هیچ کار دیگهای نمیکنی.
Async
سفارش میدی، یک پیجر (Pager) میگیری و میری سر میزت مینشینی.
در این فاصله میتونی ایمیلهاتو چک کنی.
هر وقت قهوهات آماده شد، پیجر بهت خبر میده.
تو منتظر نموندی و از زمانت استفاده کردی.
۲. Concurrency
این مفهوم درباره مدیریت چند کار در یک بازه زمانی هست.
باریستای کافه رو در نظر بگیرید:
اون همزمان هم سفارش شما رو آماده میکنه، هم سفارش نفر بعدی رو میگیره و هم شیر رو برای یک سفارش دیگه گرم میکنه.
در واقع اون با جابجایی سریع بین کارها (Context Switching)، چند وظیفه رو پیش میبره.
این یعنی همروندی.
نکته کلیدی
برنامهنویسی Async یکی از راههای رسیدن به Concurrency هست.
درک این تفاوت، در طراحی سیستمهای مدرن مثل میکروسرویسها یا پایپلاینهای پردازش دیتا، یک مزیت فوقالعاده است.
این درک به شما کمک میکنه تا بین ابزارهایی مثل Kafka, gRPC یا WebSockets انتخاب درستی داشته باشید و سیستمی بسازید که هم Scalable و هم Reliable باشه.
@codebyme
915
خیلی وقتا پیش اومده بخواید یه فایلی رو برای یکی سریع بفرستید ولی باید فایل رو اول اپلود کنید و بعد طرف مقابل دانلود کنه که میتونه زمانبر باشه! حجمش زیاد باشه که دیگه مصیبته!
یه راه سریع برای اینکار این سایته به این صورت که همزمان با آپلود، طرف مقابل میتونه دانلود کنه
محدودیت حجمی هم نداره! و چون اینطوره که بدون نیاز به اینکه فایل کامل آپلود بشه طرف میتونه دانلود کنه، زمان انتقال فایل عملا نصف میشه!
این روش کاملا امنه و به صورت رمزنگاری شده هست!
آدرس سایتش:
https://toffeeshare.com/
اینام چندتاسایت مشابه:
http://wormhole.app
http://file.pizza
http://send.vis.ee
@codebyme
915
چتبات ChatGPT از دسترس خارج شد
🔷از دقایقی پیش عملکرد ChatGPT مختل شده است و این چتبات نمیتواند به سؤالات کاربران پاسخ دهد. OpenAI اعلام کرده که از این موضوع مطلع است و درباره آن تحقیق میکند
*دیجیاتو*
@codebyme
915
✈️ News
با آپدیت یک ساعت پیش تلگرام از اکنون می توانید موزیک مورد علاقه خودتان را بر روی پروفایل خود قرار داده و با دیگران به اشتراک بگذارید
شما می توانید تعداد موزیک های دلخواه خودتان را در پروفایل قرار داده و پلی لیستی درست کنید
این قابلیت برای تمام افراد در دسترس می باشد
@codebyme
915
📌تلگرام دقایقی پیش آپدیت جدید خودشو منتشر کرد
تغییرات جدید تلگرام :
🔹تم جدید برای اندروید که تا حدی شبیه به آیفون شده
🔹اضافه شدن موزیک و پلیلیست به پروفایل (بدون نیاز به داشتن پریمیوم)
🔹نمایش آخرین قیمت ثبتشده برای گیفتها
🔹امکان ارسال استارز اضافه برای ارتقای گیفت
🔹تغییر ترتیب تبها در اکانت، گروه و کانال(تعیین میکنین که وقتی کسی وارد اکانتتون بشه اول گیفت هارو ببینه یا استوری ها)
@irWonders
915
لایف چیت:
از طریق این لینک میتونید دسترس بودن chat gpt رو بررسی کنید و یا اگر ترافیک زیادی روش هست. بزارید بعدا استفاده کنید و سوالتون رو مجدد ازش بپرسید.
https://status.openai.com/
@codebyme
915
شما یادتون نمیاد یه زمانی دیجی کالا ماشینم میفروخت، میتونستی پورشه بندازی تو سبد خریدت بیارن جلو در خونه تحویلت بدن اونم با ۸ هزار تومن هزینه ارسال!
*🌳 Hadi*
@codebyme
915
استنفورد میگه هوشمصنوعی بیشتر نسل جدید یا همون دهه هشتادیهارو داره جایگزین میکنه، استخدامشون ۱۶ درصد کمتر شده. یه دلیلش اینه که اینها چون تازه شروع به کار میکنن معمولا کارهای ابتدایی یا روتین یه شغل رو انجام میدن که راحتتر با AI میشه جایگزین کرد.
با تجربهها که معمولا بالای ۳۰ سال هستن ولی اوضاعشون خوبه و ۶ تا ۹ درصد بازار کارشون بهتر شده.
کلا هوشمصنوعی ورود به بازار کار رو سختتر کرده، دهههای جدید باید بیشتر با واقعیتهاروبرو بشن.
@codebyme
915
#sarkhat
uAdmin، فریمورک وبی سریع و سبک با زبان Golang
اجرای ساده روی سختافزارهای کممنبع
رابط کاربری خودکار و جذاب با امکانات کامل امنیتی
شروعی مطمئن برای پروتوتایپ و توسعه اپلیکیشنهای مدرن
https://codebyme.com/sarkhat/uadmin-فریمورک-وب-نوشتهشده-با-زبان-golang
@codebyme915
مایکروسافت یه دورهی رایگان و اوپنسورس منتشر کرده که بهصورت خودکار به ۳۰+ زبان دنیا ترجمه میشه (از جمله فارسی ):
AI Agents for Beginners
این دوره شامل ۱۱ درسه و همهچی برای شروع ساختن Agentهای هوش مصنوعی رو پوشش میده:
هر درس:
- مقالهی آموزشی
- ویدیوی کوتاه
- کد پایتون آماده در پوشهی code\_samples
- منابع تکمیلی برای یادگیری بیشتر
مفاهیم مهمی که توی دوره یاد میگیری:
- شروع با AI Agents و موارد استفادهشون
- آشنایی با Agentic Frameworks (مثل Semantic Kernel و AutoGen)
- دیزاین پترنها برای ساخت Agentها: Tool Use, Planning, Multi-Agent, Metacognition
- اتصال Agent به دیتای خارجی برای پاسخهای دقیقتر (Agentic RAG)
- Building Trustworthy AI Agents
- پیادهسازی Agent در محیط واقعی (Production)
- آشنایی با MCP (Model Context Protocol)
ابزارها و سرویسهایی که استفاده میشن:
- Azure AI Foundry
- GitHub Models
- Azure AI Agent Service
- Semantic Kernel
- AutoGen
ویژگیهای دیگه:
- اوپنسورس و قابل مشارکت (PR و Issue بازه)
- جامعه فعال روی Discord و فروم توسعهدهندگان Azure AI
اگر همیشه میخواستی بدونی از کجا باید وارد دنیای AI Agents بشی، این بهترین نقطهی شروعه: ساده، پروژهمحور و رایگان.
ریپازیتوری اینجاست:
https://github.com/microsoft/ai-agents-for-beginners
@codebyme
915
یه Cli باحال به اسم doxx نوشتن که میشه فایلای Microsoft Word .docx رو تو ترمینال دید.
github.com/bgreenwell/doxx
@codebyme
