Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
معرفی Kafka 🌀

اگه سیستم‌هایی با معماری پیچیده طراحی می‌کنی یا می‌خوای با حجم زیادی از داده کار کنی، احتمالش زیاده اسم Kafka رو شنیده باشی. Kafka یه Distributed Streaming Platform هست که توسط LinkedIn ساخته شد و بعدش به Apache منتقل شد. اما چرا Kafka این‌قدر مهمه و کجاها به کار میاد؟ بیایید دقیق بررسیش کنیم.

📜 ـKafka چرا ساخته شد؟
تو معماری سیستم‌های بزرگ، نیاز به ارتباط بین سرویس‌ها (Microservices) یا انتقال حجم زیادی از داده خیلی جدیه. قبل از Kafka، ابزارهایی مثل RabbitMQ یا ActiveMQ بودن، ولی این‌ها با رشد سریع داده و نیازهای مقیاس‌پذیری، کم میاوردن. Kafka اومد تا چند تا مشکل اساسی رو حل کنه:

حجم بالای داده:
ـKafka می‌تونه میلیون‌ها پیام در ثانیه رو مدیریت کنه.


سیستم‌های توزیع‌شده:
برای سیستم‌هایی که از چندین سرویس استفاده می‌کنن، یه ابزار مطمئن برای انتقال پیام لازمه.


ذخیره‌سازی پایدار:
برخلاف Kafka ، RabbitMQ پیام‌ها رو برای مدت مشخصی نگه می‌داره.


ری‌پلی دیتا:
اگه یه سرویس دچار مشکل بشه، می‌تونه دوباره پیام‌ها رو از Kafka بخونه.


🛠 ـKafka چطوری کار می‌کنه؟
ـKafka یه ساختار ساده ولی قوی داره:

ـProducers:
وظیفه تولید و ارسال پیام‌ها رو دارن. این پیام‌ها می‌تونن هر چیزی باشن، مثل داده‌های تراکنش، لاگ سیستم، یا حتی کلیک‌های کاربران تو سایت.


ـTopics:
پیام‌ها توی تاپیک‌ها ذخیره می‌شن. هر تاپیک می‌تونه مربوط به یه بخش از سیستم باشه (مثلاً تاپیک سفارشات، تاپیک کاربران).


ـConsumers:
وظیفه خوندن پیام‌ها از تاپیک‌ها رو دارن.


ـBrokers:
ـ Kafka روی چندین ماشین یا سرور (به نام Broker) اجرا می‌شه و وظیفه توزیع پیام‌ها بین این سرورها رو داره.


🔥 چرا باید Kafka استفاده کنیم؟
ـKafka فقط یه ابزار ساده برای انتقال پیام نیست. قابلیت‌های منحصربه‌فردش اونو به یه انتخاب عالی برای سیستم‌های بزرگ تبدیل کرده:

1⃣ مقیاس‌پذیری بالا
ـKafka می‌تونه به راحتی برای سیستم‌های بزرگ استفاده بشه. مثلاً اگه یه میلیارد تراکنش در روز داری، Kafka همچنان جواب می‌ده.

2⃣ ـFault Tolerance
به خاطر معماری توزیع‌شده، اگه یکی از سرورها (Broker) از کار بیفته، بقیه سرورها همچنان کار می‌کنن.

3⃣ـMessage Replay
مصرف‌کننده‌ها می‌تونن پیام‌ها رو هر وقت لازم شد دوباره بخونن. مثلاً اگه سیستمت یه مشکل داشت و نیاز به بازپردازش داده بود.

4⃣ پشتیبانی از استریمینگ
می‌تونی داده‌ها رو به صورت Real-time پردازش کنی. ابزار Kafka Streams دقیقاً برای این کار طراحی شده.

جمع بندی
ـKafka یه ابزار قدرتمنده که بیشتر تو سیستم‌های توزیع‌شده و پرحجم استفاده می‌شه. اگه قراره روی پروژه‌ای کار کنی که نیاز به پردازش Real-time یا انتقال حجم بالای داده داره، Kafka یکی از بهترین انتخاب‌هاست.

#programming #Kafka


🔆 CHANNEL | GROUP
Forwarded from Microfrontend.ir
Forwarded from  (Amir Hossein "Amiria" Maher)
روز دانشجو مبارک. ❤️

#event
@amiria703_channel
Forwarded from Geek Alerts
نتایج گوگل رو از الان میتونید بدون شخصی‌سازی ببینید، حالت عادی سایت‌هارو بر اساس سوابق جستجوی شما رتبه‌بندی میکنه که با زدن این دکمه، رتبه‌بندی سایت‌ها بدون در نظر گرفتن سوابق شما هست.
مثل اینه که گوگل رو با incognito مرورگر باز کنید.
seroundtable
@geekalerts
Forwarded from Gopher Academy
🔵 عنوان مقاله
We Put the Go in Google Gemini

🟢 خلاصه مقاله:
مقاله‌ای که در اختیار داریم، به توضیحاتی پیرامون Google Gemini 1.5 Flash 8B for Go می‌پردازد، یک ابزار قدرتمند که قابلیت پردازش بیش از 1 میلیون توکن در یک پنجره‌ی متنی را دارد. این سیستم قادر است بیش از 30,000 خط کد را طی چند ثانیه از طریق فیلم‌های آموزشی مستقیم یا فایل‌های لاگ پردازش کند و هزینه آن نسبت به روش‌های مشابه بسیار کمتر است. ابزار Gemini1.5 از API های Google برای ساخت و به کارگیری در زبان برنامه‌نویسی "Go" استفاده می‌کند. این امکانات باعث می‌شود تا توسعه‌دهندگان بتوانند برنامه‌های کاربردی را به صورت سریع و با کیفیت بالا بسازند. برای استفاده از این ابزار، باید از طریق Google API Quickstart در Go اقدام کنید، که فرآیندی ساده و مستقیم برای اجرای گسترده و کاربردی این ابزار فراهم می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/162903/web


👑 @gopher_academy
Forwarded from An Inspired Engineer
روش پیاده سازی ACK پروتکل TCP توی کرنل

خب وقتی اسم TCP میاد وسط اولین چیزی که به ذهنمون خطور میکنه اینه که TCP برعکس UDP گارانتی میکنه که پکت ارسالی شما نهایت به مقصدش برسه. یکی از راه هایی که میاد میفهمه چیزی ارسال شده یا نه اینه که به ازای دریافت هر پکت داده به گیرنده بگه که این پکتی که فرستادی رو گرفتمش(ACK).

خب تا اینجای ماجرا ما یه فرستنده داریم که داده میفرسته و گیرنده به ازای هر دریافت پکت به فرستنده میگه که پکت ارسال شده رو گرفتم، اینو بزاریم کنار بریم توی کد سمت سرور:

من یه سوکت میسازم، بایند میکنمش به پورت ۸۰۸۰، شروع میکنم به گوش دادن و وقتی کانکشن جدید میاد اکسپتش میکنم و ارتباط بین کانکشن کلاینت و من برقرار میشه:


listener := net.Listen("tcp", "localhost:8080")

fmt.Printf("Server listening on %s\n", address)

conn := listener.Accept()

fmt.Printf("Accepted connection from %s\n", conn.RemoteAddr().String())

// اینجا کلاینت داره برای ما داده میفرسته ولی ما نمیخونیم. نخوندن ما به معنی ارسال نکردن ACK توسط کرنل نیست.



حالا کلاینت شروع میکنه برای ما دیتا میفرسته ولی ما هیچ دیتایی رو با سیستم کال read() نمیخونیم، سوالی که پیش میاد اینه که ایا کلاینت بدون اینکه من read انجام بدم ACK رو دریافت میکنه؟ جواب بله اس، بله دریافت میکنه!

هنگامی که یک بسته میرسه، استک TCP کرنل بلافاصله اون رو توی بافر دریافت مینویسه و یه ACK برای فرستنده میفرسته. این ACK تایید می کنه که بسته به کرنل رسیده و برای خوندن از سمت برنامه ی من که از طریق Go نوشتم آماده است. با این حال دیگه TCP منتظر نمیمونه تا برنامه قبل از تایید بیاد و داده ها رو پردازش کنه، این جدایی بین لایه های انتقال و برنامه دقیقا چیزیه که TCP رو بهینه و سریع و پاسخگو نگه میداره و تضمین میکنه که فرستنده میتونه بدون منتظر بودن پردازش داده توسط برنامه(کد ما که بالا نوشته شده) به ارسال داده ادامه بده.

- خب پس داده ها کجان؟
+ اینجا این بافر رو یادتونه؟ کرنل دقیقا وقتی دیتا رو میگیره اون رو داخل این بافر میریزه و به فرستنده که کلاینت باشه ACK رو میفرسته. و دیگه منتظر برنامه نمیمونه تا تایید بده

@knowpow
Forwarded from Yasha
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Linuxor ?
This media is not supported in your browser
VIEW IN TELEGRAM
با این سایت می‌تونین بدون نصب، آنلاین از LibreOffice استفاده کنید

zetaoffice.net

با جاوا اسکریپت نوشته شده و اوپن سورسه حتی خودتون هم می‌تونین شخصی هاستش کنید.


🐧 @Linuxor
مشکل ورود با گیت‌هاب، دیسکورد و گوگل در فروم پارچ حل شد.


@ParchLinux
Forwarded from Geek Alerts
دسترسی رایگان به هوش‌مصنوعی Grok برای همه باز شد.
https://x.com/i/grok

تیم xAI میگه هرچقدر با Grok فارسی چت کنید، فارسیش بهتر میشه،
یعنی خیلی دیتایی از زبان فارسی ندارن و اینکه شما باهاش فارسی چت کنید کمک میکنه به این موضوع.
پ.ن. اسمش «گراگ» هست که بعضی از سایت‌های خبری به اشتباه گروک نوشتن.
@geekalerts
Forwarded from Yasha
بچه‌ها درسای شیمی واقعا خیلی سختن.
من هر سری که از برنامه نویسی خسته میشم یه ویدیو مسیج ازش می‌بینم حالم خوب میشه.
Forwarded from Out of Distribution (Mahdi)
از هنرورزی تا سرهم‌بندی: روایتی از درد بیگانگی متخصصین AI

یک بنده خدایی در ردیتی نوشته که سالهایی که در حوزه AI/ML فعالیت می‌کرده با عشق به طراحی مدل‌ها و معماری‌ها و مشکلات پیچیده‌شون روزش رو شب می‌کرده. اما جدیداها که LLM و VLM‌ها اومدند احساس بیگانگی می‌کنه با فیلد و از این که نمی‌تونه مثل سابق مدل‌ها رو از صفر طراحی کنه و خلاقیتش رو ارضا کنه افسرده است. بعدش هم چند تا سوال مطرح کرده که آیا هنوز هم برای افرادی که از طراحی و آموزش مدل‌های دیپ لذت می‌بردند جای کاری وجود داره یا باید پیامدهای ناخواسته این تکامل رو پذیرفت؟ ملت هم از این پستش استقبال کردند و اومدند زیرش همدردی و هم‌ناله‌گری کردند. چند تا نکته از این مطلب و گفته‌های مردم به ذهن می‌رسه:

- در همون ردیت هم تقریبا اکثریت به این اذعان کردند که دوره دیپ لرنینگ سنتی به اون مفهوم که مدل آموزش بدیم تقریبا گذشته. لااقل اکثر نیازمندی‌های سمت NLP با LLM‌ها با کیفیت بالاتر و هزینه‌ کمتر درمیان و خب نکته دردناک همینه که کار با LLM‌ها صرفا نیاز به API Call و مهندسی پرامپت داره و دیگه اون جنس معماهای شبه ریاضی طوری که باید حل می‌شدند وجود نداره و شما اگر بخوای روی ساختن مدل‌ها کار کنی تنها جاهایی که برات وجود داره در دنیای امروز OpenAI و Antropic و ... هستند و خب پرواضحه که نشدنیه.

- نکته دیگه اما این که این تکامل اجتناب‌ناپذیر صرفا مخصوص حوزه LLM‌ها نیست. خیلی‌ها اشاره کردند که مثلا در حوزه‌هایی متنوعی مثل ساخت بازی و یا برنامه نویسی وب هم در طی این سال‌ها انتزاع روی انتزاع اضافه شده و دیگه کسی نمی‌ره گیم انجین خودش رو از صفر بزنه. یا در برنامه نویسی وب این قدر فریمورک در سطوح مختلف استک هستند که دیگه اون خردکاری‌های سابق شبکه‌ای داستان محو شدند. در مورد خود حوزه هوش مصنوعی هم ما خودمون روی جنازه گذشتگان قدم زدیم. روزگار قبل از دیپ لرنینگ برای پردازش تصویر و پردازش متن این شکلی بود که طرف باید مثلا انواع فیچرهای به درد بخور تو تصویر یا متن رو یاد می‌گرفت و شبکه‌اش رو روی اینها می‌ساخت ولی الان شرط می‌بندم ۹۰ درصدتون نمی‌دونید مثلا SIFT چیه. در نتیجه این تکامل طبیعت زندگیه.

- نکته بعدی این که البته هنوز هم هستند نیازهایی که با LLM‌ها رفع نشن. یا حالا مساله طوری که LLM روش به طور کامل سوار نشه یا مثلا فرض کنید داده‌های جوری حساسند که نمی‌شه سمت api call براشون رفت. ولی خب این جاها معدودند و فرصت کاری هم براشون کمتره.

- نکته آخری که تو چند تا کامنت دیده بودم این بود که خیلی‌ها از این ابراز ناله کرده بودند که LLM‌ها چون ساده هستند افراد غیر تکنیکال هوشی هم می‌فهمنشون و در عین حال ازش انتظار معجزه و جادو دارند و همین خیلی جاها باعث شده تا انتظارات از نیروهای دیتاساینتیست/هوشی بالا بره و نهایتا با همون افراد غیرهوشی جایگزین بشن.

لینک ردیت:
https://www.reddit.com/r/MachineLearning/comments/1h7jg87/dstuck_in_ai_hell_what_to_do_in_post_llm_world/

-
Forwarded from Linuxor ?
واتساپ و ویندوز مثل همن، پر کاربر و دوست داشتنی


🐧 @Linuxor ~ fun
Forwarded from Go Casts 🚀
زودتر از این ها منتظر بودیم آقای JetBrains
یه ۶ ماهی میشه که برای Rust هم IDE منتشر کردن به اسم RustRover و من تازه با خبر شدم.

خوبیش اینه یه پلن رایگان non-commercial use هم داره

https://jetbrains.com/rust/

با احترام برای نظر همه دوستان، تجربه ای که محصولات JetBrains میده برای توسعه یه چیز دیگه ست.

@gocasts
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 نرم افزار یادداشت برداری Notes برای لینوکس

نرم افزار Notes ساده و سبک برای یادداشت برداری است که برای لینوکس توسعه یافته است و نسخه پولی آن مدیریت وظایف است.
اما به دلیل پشتیبانی نکردن نمایش کدها مناسب برنامه نویسان نیست

امکانات نظیر:

- تعریف وظایف (نسخه پولی)
- ذخیره فایل با پسوند .md و .txt
- دارک مد
- اجرای خودکار و تنظیمات آن
- رابط کاربری ساده و زیبا

گیت هاب :

https://github.com/nuttyartist/notes

#لینوکس

@TheRaymondDev
Forwarded from  (Amir Hossein "Amiria" Maher)
Humans are allergic to change. They love to say, "We've always done it this way." I try to fight that. That's why I have a clock on my wall that runs counter-clockwise.

— Grace Hopper

#quote
@amiria703_channel
Forwarded from Woland's Linux Journal (Woland)
💠پلاگین دات‌نت برای ویم💠

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

همچنین برای خلاصی از ویژوآل استودیو می‌تونین از ‌Omnisharp یا csharp-ls در کنار ویم استفاده کنید که هردوشون خیلی خوب هستن.

طبعا اگه از WinForms و Designer ویژوآل استودیو استفاده دارید کاری نمیشه براش کرد، ولی برای کد زدن کافیه.

بعدها یه راهنمای کامل برای تنظیم ویم برای سی‌شارپ می‌نویسم.

🔹لینک پلاگین:
👉🔗 Dotnet-Vim

#vim #dotnet #csharp
#ویم #سی_شارپ
Forwarded from haashemi.dev
Update TGO? do my UNI homework?

Nah, time to spam the LOGIN button. 🤪
Please open Telegram to view this post
VIEW IN TELEGRAM