DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
357 videos
6 files
4.1K links
توییت های برنامه نویسی و طراحی وب :)

@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://news.1rj.ru/str/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
میدونستین که توی گیت هاب، Github Models رو معرفی کردن که توی اون شما به مجموعه ای از LLMها دسترسی دارین؟

استفاده ازش رایگانه تا شما بتونید تصمیم بگیرید چه مدلی برای کارتون بهتره

یه زمین بازی داره و هم اینکه کدش رو در زبان های مختلف بتون میده...

https://github.com/marketplace/models

@DevTwitter | <Sam92/>
👍33👎2
یک بزرگواری تونسته بیاد سیستم پرامپت v0 و v0 Model رو پیدا کنه حالا گذاشته توی گیت هاب

بعد گفته به صورت دیفالت این مدل از موارد معمولی از GPT-4o استفاده میکنه و برای Reasoning از Deepseek و درآینده برای فیچر اینترنت سرچ Perplexity

https://github.com/x1xhlol/v0-system-prompts-models-and-tools

@DevTwitter | <Reza"/>
20👍6👎1
This media is not supported in your browser
VIEW IN TELEGRAM
اگر زبان اصلی که باهاش backend کار میکنید Typenoscript هست یک فریمورک خیلی خوب هست برای AI agent ها. اسمش Mastra ست و برای انواع اپلیکیشن ها میتونید ازش استفاده کنید از جمله:
workflows, agents, RAG, integrations and evals
خودم استفاده نکردم ولی تعریفش را زیاد شنیدم.
Github: https://github.com/mastra-ai/mastra

@DevTwitter | <Mehdi Allahyari/>
👍23👎64
توضیحات خیلی خوب درمورد reliability

https://ikernel.ir/reliability-software/

@DevTwitter | <Mohammad Sadeghian/>
👍262👎2
یه موضوعی هست در مورد پی وی بنده که لینکش رو توی بیو گذاشتم.
یه سری عزیزان وقتی توی پی وی جوابشون رو نمیدم یه نقطه یا پیام جدید میفرستن که پیامشون بیاد بالا و زودتر ببینم.

اما موضوع اینه که من همیشه میرم و از انتها جواب پیام ها رو میدم که نوبتی بتونم جواب بدم، کسی که روزی یه نقطه برام بفرسته احتمالا تو یه لوپ گیر میکنه و هیچ وقت پیامش خونده نمیشه.

تعداد پیاما هم حالا اونقدر زیاد نیست که بگم خیلی زیاده و نمیرسم همه رو بخونم، مثلا فکر کنم هر بار پونزده تا، ولی من در طول روز یه تایم محدودی رو برای جواب دادن میذارم و تلاشم رو میکنم تا جای ممکن کامل و با جزئیات جواب هرکس رو بدم.

پیاما هم مختلفه دیگه...
میخوان چنلشون معرفی بشه
در مورد پست ها سوال دارن
راهنمایی برای شروع برنامه نویسی یا یک تخصصی میخوان
راهنمایی برای خوندن کتاب میخوان
گاهی پیام میفرستن که بذارم تو چنل
گاهی هم به درد دل ختم میشه :))

در کل که اگر دیر جوابتون رو دادم بی ادبی برداشت نکنید

شما هم اگر حرفی داشتید خوشحال میشم بشنوم
69👍14👎5🔥3
چطور با مدلهای Gemini گوگل فایل آپلود کنید و راجع بهشون سوال بپرسید تا transcribe (صدا به متن) شون کنید. حتا راجع به یک قسمت خاصی از فایل سوال بپرسید. هر ۳ حالت را توی عکس زیر گذاشتم. برای حالتهای مخلتف api documentation را بخونید.

@DevTwitter | <Mehdi Allahyari/>
👍22
پروژه آخر هفته ای: RepoRanger، برای GitHub crawling! پروژه های GitHub را سرچ، READMEها را استخراج و در DBذخیره می‌کنه.
بعدش دیگه روی دیتابیس هر جوری خواستین میتونین سرچ کنین.
خودش rate limit و محدودیت 1000 رکورد رو هم هندل می کنه و همه رو میگیره.

https://github.com/pournasserian/RepoRanger

@DevTwitter | <Amir Pournasserian/>
👍144👎4
خیلی بیکار بودم واسه همین نشستم و ی Random Facts API درست کردم که با هوش مصنوعی کار میکنه. در حال حاظر فقط فارسیه.
لینک تستش: http://funfact.amirparsab9.arvanedge.ir
گیتهابش:
https://github.com/amirparsadd/facts-api

@DevTwitter | <Amirparsa Baghdadi/>
👍34👎13
ماجراهای ما و AI

@DevTwitter | <DetectivePiyJey/>
🔥104👍26
چطور تو کمتر از ۳۰ خط کد پایتون یه اسکریپت بنویسیم که کامنت ها / نظرات توهین آمیز رو با gpt 4o-mini با دقت خوبی تشخیص بده.

اینجا داریم با کمک pydantic یه model درست میکنیم و میدیم به openai تا جوابی که به ما میده json باشه و از این model پیروی کن د در آخر چک میکنیم پاسخ رو.

@DevTwitter | <Mani/>
👍62🔥11👎93
کوئرا با ۳۰۰ میلیون کاربر ماهانه، ۲۵,۰۰۰+ سوال روزانه، و ۱۰+ سال فعالیت، دیتابیسش میدونی چیه؟ MySQL! ده‌ها ترابایت داده و صدها هزار QPS. و اومدن شدیدا بهینه‌ش کردن، چطوری؟

اینا میبینن بار دیتابیس (Database Load) با رشد کاربران، پتابایت‌ها بیشتر و با ویژگی‌های ML محصولاتشون بالاتر هم می‌ره، و البته اسپمرها هم یه بخشی ازین بار بودن.

بار دیتابیسشون تو خواندن (Reads) (۷۰٪ ترافیک)، حجم داده (Data Volume) ( که رشد ۲۰۰٪ تو ۵ سال داشت)، و نوشتن (Writes) (کم اما حساس) بود. کوئرا برای بهینه‌سازی روی خواندن و حجم داده تمرکز کرد، چون ترافیک بیشترشون سمت خواندن بود.

اسکن‌های بزرگ رو با LIMIT و صفحه‌بندی (Pagination) بهینه کردن. این کار از اسکن‌ غیرضروری جلوگیری کرد و پرفومنس کوئری‌ها رو تا ۶۰٪ سریع‌تر کرد.

برای کوئری‌های کند، ایندکس‌ها رو دوباره طراحی کردن، ستون‌های غیرضروری حذف شدن، ORDER BY به کلاینت منتقل شد، و کوئری‌های غیرضروری هم حذف شدند. و بار CPU ۵۰٪ کم شد.

برای High QPS، کوئرا کش رو بهینه کرد. کلید کش (Cache Key) به uid تغییر داد تا QPS رو بیش از ۹۰٪ کم کنه.

برای حجم داده ها، کوئرا MyRocks که فیس‌بوک توسعه داده بود رو برای شاردهای قدیمی MySQL استفاده کرد. این کار فضا رو تا ۸۰٪ برای برخی جدول‌ها و ۵۰-۶۰٪ برای بقیه کاهش داد.

مای راک با فشرده‌سازی بهتر، IO رو کم کرد و زمان بکاپ/ریستور رو ۵۰٪ سریع‌تر کرد. شاردهای قدیمی (بیش از ۱۸ ماه) به MyRocks منتقل شدند.
برای نوشتن، lag رپلیکیشن رو با رپلیکیشن موازی Parallel ( توی mysql تنظیماتش slave_parallel_type یا شبیه شه) حل کردن تا بار رو بهتر توزیع کنه.

یعنی یه تاخیری بین دیتابیس مادر با رپلیکا به وجود میومد که رو برداشتن سیستمش رو موازی کردن، مشکلش چی بود؟ وقتی رپلیکا داره میخونه یا مینویسه ممکنه خیلی زمان بر بشه یا transaction دیتابیس مادر خیلی زمانبر باشه رپلیکا مجبور بشه صبر کنه تا تراکنش تموم بشه بعد تغییرات رو اعمال کنه

خلاصه اینکه نتیجه این شد که کوئرا:
- با بهینه‌سازی کش و کوئری‌ها
- استفاده از MyRocks،
- و رپلیکیشن موازی

بار رو برای ۳۰۰ میلیون کاربر روی دیتابیس‌ MySQL کاهش داد.

@DevTwitter | <Saman/>
1🔥67👍152
This media is not supported in your browser
VIEW IN TELEGRAM
ساخت اپ آب و هوا با cursor فقط در یک ساعت

خب دوستان از اونجایی که امروزه خیلی از cursor می شنویم تصمیم گرفتم یه برنامه باهاش بنویسم.

برنامه با Python ساخته شده و به صورت API call آب و هوای شهری که بهش میدید، موقعیت ابر ها و خیلی اطلاعات دیگه رو نشون میده.

حالا نکته جالب اینه که، من خودم هیچ کدی نزدم، تمام برنامه رو خود cursor نوشته.
اگه جایی نیاز بوده پکیجی نصب کنه، خودش کرده، جایی نیاز به دیباگ داشته خودش کرده و خلاصه این که تمام کارهارو خودش کرد و من فقط بهش پرامت دادم، همین

بهتون پیشنهاد میکنم حتما ازش استفاده کنید و سرعت برنامه نویسی تون رو چند برابر کنید.

کد پروژه رو هم توی گیت هاب گذاشتم اگه دوست داشتید نگاه و کنید و اگه خوشتون اومد خوشحال میشم که استار هم بدید. ممنون

https://github.com/MahdiAjam/wheather-app

@DevTwitter | <Mahdi Ajam/>
👎72👍42🔥42
سی‌ای/سی‌دی [CI/CD] چیست و چرا مهم است؟

سی‌ای CI [ادغام مداوم] : یعنی هر تغییری که توسعه‌دهندگان در کد ایجاد می‌کنند، به‌طور منظم در یک مخزن مشترک (مثل GitHub یا GitLab) ادغام شود. پس از هر تغییر، تست‌های خودکار اجرا می‌شوند تا از سازگاری و عملکرد صحیح کد اطمینان حاصل شود.

سی‌دی CD [استقرار مداوم] : یعنی پس از تأیید صحت کد، تغییرات به‌طور خودکار در محیط تولید مستقر شوند. این فرایند، انتشار ویژگی‌های جدید را سریع‌تر و بدون نیاز به مداخله دستی ممکن می‌سازد.

مزایای سی‌ای/سی‌دی [CI/CD]
- کیفیت بالاتر - کد با تست‌های خودکار
- انتشار سریع‌تر - با خودکارسازی فرایندها
- کاهش ریسک - با تست و بررسی مداوم
- رفع سریع مشکلات - با امکان بازگشت به نسخه قبلی

@DevTwitter | <Amirreza Ebrahimi/>
🔥39👍23👎1
یه راه حل خیلی ساده برای بالا بردن performance برنامه‌هایی که با PHP نوشتیم:
یکی از مشکلاتی که در PHP وجود داره، مقیاس‌پذیری و سرعت پایین پردازش‌های همزمان هست. یکی از راه حل‌ها استفاده از FrankenPHP میتونه باشه.
در حالت عادی، وقتی برنامه PHP اجرا میشه، هر بار که درخواست جدیدی میاد، PHP باید اسکریپت‌ها رو از نو بارگذاری کنه. این فرآیند باعث میشه که زمان بارگذاری و پاسخ‌دهی افزایش پیدا کنه، مخصوصاً توی برنامه‌های سنگین یا با ترافیک بالا.
اما با FrankenPHP، این فرآیند تغییر می‌کنه. FrankenPHP به جای اینکه هر بار اسکریپت‌ها رو دوباره بازگذاری کنه، فقط یک بار فایل‌های PHP رو کش میکنه و از همون نسخه کش شده برای درخواست‌های بعدی استفاده می‌کنه. این یعنی توی درخواست‌های بعدی دیگه نیاز به اجرای دوباره نیست و PHP خیلی سریع‌تر جواب میده.

مزایاش چیه؟
سرعت بیشتر: با استفاده از FrankenPHP، کدهای PHP سریع‌تر اجرا می‌شن. این یعنی می‌تونید تعداد درخواست‌های بیشتری رو در یک زمان پردازش کنید و بار ترافیکی بالا رو بهتر مدیریت کنید.

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

مقیاس‌پذیری راحت‌تر: FrankenPHP به شما این امکان رو می‌ده که به راحتی مقیاس پروژه‌هاتون رو افزایش بدید بدون اینکه از سرعت و عملکرد کم بشه.

پردازش همزمان: این پلتفرم کمک می‌کنه که پردازش‌های سنگین رو در پس‌زمینه انجام بدید و در عین حال از سرعت کلی سیستم کاسته نشه.

اگر برنامه‌‌ای دارید که باید با سرعت بالا به درخواست‌ها پاسخ بده یا نیاز به مقیاس‌پذیری بیشتر در محیط‌های ابری داره، یه سر به FrankenPHP بزنید. با Laravel Octane هم خیلی راحت میشه از FrankenPHP در لاراول استفاده کرد.

@DevTwitter | <Iman Rajabi/>
👍32👎10🔥2
اگه از طرفداران پر و پا قرص لینوکس یا DevOps هستین، احتمالا زیاد با دستور systemctl سروکار دارین. ولی می‌دونستین این دو تا ترفند کاربردی چقدر می‌تونن سرعت و راحتی کارتون رو بیشتر کنن؟

چک کردن وضعیت سرویس با PID گاهی یه PID داریم ولی نمی‌دونیم مال کدوم سرویسه؟ نگران نباشین:
<systemctl status <PID
اینطوری سریع می‌فهمین PID مورد نظرتون مربوط به چه سرویسیه و وضعیت فعلی و لاگ‌هاش رو هم چک می‌کنین!

یه نگاه سریع به کانفیگ سرویس‌ها دیگه لازم نیست تو پوشه‌ها دنبال فایل کانفیگ بگردین! فقط کافیه بزنین:
systemctl cat <service>
اینجوری تنظیماتی رو که systemd داره استفاده می‌کنه، راحت و بی‌دردسر می‌بینین!

@DevTwitter | <Mathis Abbaszadeh/>
👍53🔥51
This media is not supported in your browser
VIEW IN TELEGRAM
گوگل به صورت رسمی "Data Science Agent" رو معرفی کرد که به نظر جالب میاد ولی مثل هر مدل دیگه ای نیاز به نظارت شما داره

1- فایلتون رو آپلود میکنید
2- به زبان ساده بش میگید چی میخواین؟ مثلا شکل بکشه؟
3- مرحله به مرحله براتون کد میزنه

لینک:
http://colab.google

@DevTwitter | <Sam92/>
👍29👎1
دستور netstat ابزاری برای چک کردن پورت های باز سیستم بود
netstat -tulnp
گرچه هنوز میتوان از ان استفاده کرد ولی از سال ۲۰۱۱ دیگر توسعه نیافته
جایگزین آن دستور ss است
ss -tulnp

@DevTwitter | <MehrdadLinux/>
👍223
یه پکیج خفن برای کوتاه کردن لینک‌ها توسعه دادم!

سلام رفقا! اخیراً یه پکیج برای لاراول نوشتم که می‌تونید باهاش لینک‌هاتون رو کوتاه کنید، آمار بازدید بگیرید و کلی امکانات دیگه!

ویژگی‌های پکیج:
- کوتاه کردن لینک‌ها با یه API ساده
- نمایش آمار بازدید هر لینک
- قابل استفاده توی هر پروژه‌ی لاراولی
- نیاز به لاگین داره تا هر کاربر لینک‌های خودشو ببینه

نصبش هم خیلی راحته.
سورس‌کدش رو اینجا گذاشتم:
https://github.com/Saberqadimi/link-shortener

@DevTwitter | <Saber Qadimi/>
👍306👎3
Media is too big
VIEW IN TELEGRAM
ابزار trae.ai یه IDE رایگان و جایگزین Cursor هست. به‌صورت کاملاً رایگان و بدون محدودیت به Cloud 3.7 دسترسی دارین!

https://www.trae.ai/

@DevTwitter | <Milad Varvaei/>
👎31👍30🔥32
سیستم recommender اسپاتیفای چطور برای ۵۰۰+ میلیون کاربر ماهانه پیشنهادهای شخصی‌شده می‌ده؟
با الگوریتم‌های ماشین لرنینگ، فیلترینگ هوشمند و تحلیل صوتی، داده‌های عظیم رو پردازش می‌کنه.
چطور این کار رو میکنن؟

اسپاتیفای داده‌های موسیقی رو به متادیتا (مثل ژانر، آلبوم) و سیگنال‌های صوتی (مثل BPM، Loudness، Danceability) تقسیم می‌کنه.
با تحلیل صوتی، ویژگی‌هایی مثل انرژی و Valence استخراج می‌شه
مثلاً "When I Was Your Man" از برونو مارس با ۷۳ BPM، ترکی کم‌انرژی اما رقص‌پذیر شناسایی می‌شه
برای تحلیل متنی، اسپاتیفای از پردازش زبان طبیعی (NLP) استفاده می‌کنه.
مدل‌های NLP متن آهنگ‌ها، نظرات کاربران و عناوین پلی‌لیست‌ها رو بررسی می‌کنن تا احساسات و مضامین (مثل غم یا شادی) رو تشخیص بدن.
الگوریتم‌های ریکامندر از فیلترهای collabrative یا مشارکتی (User-based/Item-based) و فیلترینگ مبتنی بر محتوا (Content-based) بهره می‌برن.
با این ماتریکس، اینا شباهت‌های رفتاری کاربران رو پیدا می‌کنن و ترک‌های مرتبط (مثل Blank Space) رو پیشنهاد می‌دن.

برای بهبود مداوم، اسپاتیفای از حلقه بازخورد (Feedback Loop) استفاده می‌کنه.
داده‌های تعامل کاربر (مثل ذخیره یا اسکیپ کردن) با Reinforcement Learning تحلیل می‌شن تا مدل‌ها دقیق‌تر بشن.

راستی، اسپاتیفای میتونه با محیط کاربر هماهنگ بشه؟ بله.
چطور؟
اینا الگوریتمشون با داده‌هایی مثل زمان، موقعیت جغرافیایی و آب‌وهوا، پلی‌لیست‌هایی متناسب با حال و هوا می‌سازن، مثلاً موسیقی آرام برای روزهای بارانی.
این هماهنگی با APIهای خارجی (هواشناسی، GPS) و داده‌های داخلی (زمان سیستم) ممکن می‌شه. مدل‌های پیش‌بینی کننده (Predictive Models) این اطلاعات رو با خوشه‌بندی (Clustering) ترکیب می‌کنن تا پیشنهادهای متناسب ارائه بدن.
تاریخچه گوش دادن کاربر با الگوریتم‌های یادگیری ماشین تحلیل می‌شه تا الگوهای رفتاری شناسایی بشن. اگر صبح‌ها موسیقی شاد گوش کنی، سیستم پیشنهادهای پرانرژی برای صبح‌ها می‌ده.
یه چیز دیگه اینکه ویژگی DJ مجازی با هوش مصنوعی مولد (Generative AI) و NLP پیاده‌سازی شده.
این سیستم دیالوگ‌هایی تولید می‌کنه که متناسب با موسیقی و حال و هوای تو باشن، و با تعاملات کاربر بهبود می‌یابد.
یه چیز جالب از چالش‌هاشون این بود که "Cold Start Problem" برای هنرمندان جدید بود.
بدون وجود داشتن داده کاربر، پیشنهاد دادنشون سخته. اسپاتیفای با تصحیح انسانی (یعنی مثلا آدم میاد وسط اینجا سلکتش میکنه) و تحلیل صوتی این مشکل رو حل می‌کنه.
مشکل بعدی حباب فیلترینگ (Filter Bubble) هست. فیلترنگ مشارکتی ممکنه فقط ترک‌های مشابه پیشنهاد بده و تنوع رو محدود کنه.
این با کلاسترایز کردن بیش‌ازحد در ماتریس‌های رکامندر رخ می‌ده.
یه چیز دیگه هم اینکه نگرانی حریم خصوصی هم هست. جمع‌آوری داده‌هایی مثل موقعیت و تاریخچه گوش دادن نیاز به رمزنگاری قوی و شفافیت در سیاست‌های حریم خصوصی داره تا اعتماد کاربران حفظ بشه.
خلاصه اینکه اسپاتیفای با تلفیق انسان و ماشین (مثل ویراستاران انسانی) تنوع و عدالت رو در پیشنهادها تضمین می‌کنه تا همه ژانرها و فرهنگ‌ها دیده بشن.
نتیجه اینکه اسپاتیفای با ترکیب فیلترنگ مشارکتی/محتوایی، یادگیری تقویتی، داده‌های محیطی و نظارت انسانی، سیستمی مقیاس‌پذیر و عادلانه ساخته که موسیقی رو شخصی و متنوع می‌کنه.
این داستان چه درسهایی برای ما داره:
۱) در داده‌های بزرگ، الگوریتم‌های ترکیبی میتونن کلید مقیاس‌پذیری باشن
۲) حلقه بازخورد (Feedback Loop) برای بهبود مداوم ضروری است،
۳) تعادل بین تکنولوژی و انسان برای تنوع و اخلاق حیاتیست.

@DevTwitter | <Saman/>
👍617🔥5👎1
اگه دوست دارید یک پروژه جالب و کاربردی بنویسید این یک ایده جالب:
با یک تیر چند نشون میزنید. هم به صورت end-to-end یک AI Assistatnt پیاده سازی میکنید و کلی چیز جدید یاد میگیرید. هم اینکه یک اپلیکیشن کاربردی نوشتید که میتونید واقعا استفاده کنید. حتا ازش درامد داشته باشید. بریم سراغ ایده!

(خلاصه ایده را با chatGPT نوشتم که راحت تره!)
ساخت یک "مغز دوم" با دستیار هوش مصنوعی با استفاده از LLM و RAG

در دنیای پرسرعت امروز، مدیریت اطلاعات به یک چالش بزرگ تبدیل شده است. یک دستیار هوش مصنوعی به عنوان "مغز دوم" می‌تواند با سازمان‌دهی، بازیابی و تولید دانش از اطلاعات شخصی یا حرفه‌ای، به شما کمک کند. ترکیب مدل‌های زبانی بزرگ (LLM) با بازیابی افزوده به تولید (RAG) این فرآیند را هوشمندتر و دقیق‌تر می‌کند.
چرا از RAG استفاده کنیم؟
مدل‌های زبانی فقط بر اساس داده‌های از پیش آموزش‌دیده شده پاسخ می‌دهند که ممکن است قدیمی یا نادقیق باشند. اما RAG امکان بازیابی اطلاعات به‌روز و مرتبط از منابع مختلف را فراهم می‌کند. این ویژگی برای یک مغز دوم ایده‌آل است، چون می‌تواند در لحظه از یادداشت‌های شخصی، اسناد و منابع خارجی اطلاعات استخراج کند.
اجزای کلیدی:
ذخیره‌سازی و ایندکس‌گذاری: استفاده از دیتابیس‌های برداری (مثل Qdrant یا Milvus) برای ذخیره و بازیابی یادداشت‌ها، ایمیل‌ها و اسناد.
اتصال به LLM: ترکیب با مدل‌هایی مثل GPT یا Mistral برای تولید پاسخ‌های هوشمند بر اساس محتوای بازیابی‌شده.
رابط تلگرام: استفاده از یک چت‌بات در تلگرام برای تعامل سریع و راحت با دستیار.
وب‌هوک‌ها و خودکارسازی: دریافت و بروزرسانی خودکار داده‌ها برای نگه داشتن اطلاعات همیشه جدید و در دسترس.
کاربردها:
مدیریت دانش شخصی: ذخیره و بازیابی یادداشت‌های جلسه، مقالات و ایده‌ها.
کمک به انجام کارها و پروژه‌ها: ارائه پیشنهادات هوشمند در مورد کارهای در حال انجام.
مطالعه و تحقیق: خلاصه‌سازی مقالات، پیگیری مفاهیم و تولید یادداشت‌های مطالعاتی.

@DevTwitter | <Mehdi Allahyari/>
👍30👎4