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
دیشب داشتم تو تلگرام مینروب بازی میکردم

بحث افتاد و نشستم logic برنامه نویسی بات رو برای بچه ها توضیح دادم، گفتم خب من که تا اینجا اومدم، خود بازی رو دوباره ننویسم؟ اینطوری شد نسخه ساده بازی رو با پایتون نوشتم، اگه دوست داشتید میتونید چک کنید :)))

https://github.com/DinonowDev/minroob

@DevTwitter | <برنامه‌نویس قصه‌ها/>
👍38🔥11👎41
یک مطلب آموزشی جدید: ساخت سیستم multimodal RAG system که میتونید روی فایلهای PDF که شامل متن و تصویر هستن پیاده سازی کنید. و راجع به محتوای فایلها سوال بپرسید. تکنولوژی هایی که استفاده شده Docling و و مدل VLM که از سری مدلهای IBM Granite هست و فوق العاده و کارهای مربوط به فهمیدن متن و تصویر. این آموزش را میتونید بسط بدید به کاربردهای مشابه.
Github notebook: https://github.com/ibm-granite-community/granite-snack-cookbook/blob/main/recipes/RAG/Granite_Multimodal_RAG.ipynb

Blog: https://ibm.com/think/tutorials/build-multimodal-rag-langchain-with-docling-granite

@DevTwitter | <Mehdi Allahyari/>
👍11
بازهم یک سری مدل جدید و اینبا از کمپانی Cohere!
مدل Aya Vision معرفی شد – یه مدل چندزبانه و چندوجهی (multilingual & multimodal vision model) پیشرفته که توی درک تصویر، تولید متن و عملکرد چندزبانه، رکوردهای جدیدی ثبت کرده!

- پشتیبانی از ۲۳ زبان از جمله فارسی
- قدرت بالا در کپشن‌گذاری تصاویر، پاسخ به سوالات تصویری، تولید متن و ترجمه چندوجهی (multimodal translation)
- عملکرد بهتر از مدل‌های برتر اوپن‌سورس مثل Qwen2.5-VL، Gemini Flash 1.5، Llama-3.2 Vision و Pangea
- مدل Aya Vision 8B از مدل‌هایی ۱۰ برابر بزرگ‌تر از خودش بهتر عمل میکنه! (۶۳٪ برتری نسبت به Llama-3.2 90B Vision)
- مدل Aya Vision 32B حتی مدل‌های ۲ برابر بزرگ‌تر رو شکست داده! (مثل Molmo 72B، Qwen2.5-VL 72B) با نرخ برد تا ۷۲٪
- بهینه و کم‌مصرف – با کمترین منابع محاسباتی، بهترین نتایج رو میده
- پیشرفت‌های مهم در یادگیری چندزبانه چندوجهی با synthetic annotations، مقیاس‌گذاری داده‌ها و ترکیب مدل‌ها
- ارائه‌ ی AyaVisionBench – یه بنچمارک جدید و قوی برای ارزیابی واقعی چندزبانه چندوجهی

https://cohere.com/blog/aya-vision

@DevTwitter | <Mehdi Allahyari/>
🔥15👍10
پروژه مدیریت تسک (TaskSquad) با لاراول - لایو وایر

در این پروژه شما می توانید کارهای وظایفی ایجاد کنید و از شرکت یا راه دور وظیفه یا پروژه ها برای هم تیمی خود تعریف و مدیریت کنید. این پروژه پیچیدگی چندانی ندارد و طوری نوشته شده است که کار با آن ساده باشد.

امکانات نظیر : مدیریت کاربران - گروه ها - مقام ها - دسترسی ها - وظیفه ها - پروژه ها

گیت هاب :

https://github.com/Rayiumir/TaskSquad

نمی دونم قابلیت تجاری سازی داره یا نه

شما می توانید این پروژه مشارکت و فورک و توسعه دهید و امکاناتی که مد نظر است را در تسک اسکواد اضافه کنید که کم کم پروژه بزرگتر شود.

@DevTwitter | <Raymond Baghumian/>
👍23👎6
باج افزار برای تمرین و یادگیری:)
ی باج افزار خیلی ساده برای صرفا آشنایی بیشتر با نحوه کارکردشون نوشتم و روی گیت هاب قرار دادم.
از الگوریتم RSA و AES برای رمزنگاری فایل ها استفاده میکنه و دوباره رمزگشایی میکنه:)

https://github.com/manirazii/Ayatollah-Ransamware

@DevTwitter | <Mani/>
👎42👍33🔥3
مطلب جالبی درباره‌ی یه چت بات باستانی! مربوط به دهه ۶۰ میلادی با ۴۲۰ خط کد!
برای خوندن کاملش باید عضو بشید ولی کل داستان توی سایتهای دیگه هم هست. سورس سالها گم شده بوده و جدیدا پیدا شده و به سی++ تبدیل شده:

http://github.com/anthay/ELIZA

https://newscientist.com/article/mg26535330-100-the-critical-computer-systems-still-relying-on-decades-old-code/

@DevTwitter | <Moegan Shoster/>
👍17🔥52
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