این برنامه LazyGit هم جالب هست و یه رابط گرافیکی ساده و تحت ترمینال ارائه میده و با برنامههای مختلف تحت ترمینال مثل نئوویم و تیماکس هم به خوبی کار میکنه.
https://github.com/jesseduffield/lazygit
@DevTwitter | <Mohsen Shabanian/>
https://github.com/jesseduffield/lazygit
@DevTwitter | <Mohsen Shabanian/>
پروژه https://github.com/zamalali/DeepGit رو خودم تست نکردم ولی ایده اش خیلی خوبه. جستجوی عمیق در گیت هاب انجام میده.
وقتی برای پروژه ای دنبال solution های اوپن سورس می گردم با سختی هایی مواجه میشم. به نظر میاد استفاده از جستجوگر های مبتنی بر AI مثل این تا حدودی جستجو و رنکینگ رو تسهیل کنه
@DevTwitter | <Sebto/>
وقتی برای پروژه ای دنبال solution های اوپن سورس می گردم با سختی هایی مواجه میشم. به نظر میاد استفاده از جستجوگر های مبتنی بر AI مثل این تا حدودی جستجو و رنکینگ رو تسهیل کنه
@DevTwitter | <Sebto/>
ایده باحالی داشت، برای همین یه فورک ازش زدم و از api سایت open-meteo استفاده کردم و قابلیت نمایش اطلاعات آب و هوا رو هم اضافه کردم.
کافیه روی نقشه کلیک کنید و علاوه بر طول و عرض جغرافیایی، اطلاعات هواشناسی رو هم میتونید ببینید.
https://javad-rzvn.github.io/Find_LngLat/
@DevTwitter | <MJ/>
کافیه روی نقشه کلیک کنید و علاوه بر طول و عرض جغرافیایی، اطلاعات هواشناسی رو هم میتونید ببینید.
https://javad-rzvn.github.io/Find_LngLat/
@DevTwitter | <MJ/>
وقتی مشغول پیادهسازی قابلیت چندزبانه (i18n) در یکی از پروژهها بودم، باید تمام متنهای فارسی استفادهشده در اپلیکیشن رو جمعآوری و توی یک فایل JSON ذخیره میکردم.
اما وقتی حجم متنها رو دیدم، با خودم گفتم: «واقعاً کی حوصله داره تکتک این متنها رو دستی پیدا کنه؟»
همین شد که تصمیم گرفتم یک اسکریپت ساده بنویسم تا بهصورت خودکار همهی متنهای فارسی داخل پوشهی src/ رو شناسایی کنه، متغیرهای داخل template literal ها رو به فرمت {{variable}} تبدیل کنه و در نهایت خروجی رو داخل یک فایل extractedTexts.json ذخیره کنه.
حالا خواستم این ابزار رو با شما هم به اشتراک بذارم. اگر قراره قابلیت چندزبانه رو پیادهسازی کنید، فقط کافیه این دستور رو اجرا کنید:
npx farsi-text-extractor
و تمام متنهای فارسی پروژهتون در کمتر از یک ثانیه آمادهست.
نکته: حتماً در پایان، خروجی فایل رو یه نگاه بندازید تا از درستی خروجی اطمینان حاصل کنید.
https://www.npmjs.com/package/farsi-text-extractor
@DevTwitter | <shahin behzadrad/>
اما وقتی حجم متنها رو دیدم، با خودم گفتم: «واقعاً کی حوصله داره تکتک این متنها رو دستی پیدا کنه؟»
همین شد که تصمیم گرفتم یک اسکریپت ساده بنویسم تا بهصورت خودکار همهی متنهای فارسی داخل پوشهی src/ رو شناسایی کنه، متغیرهای داخل template literal ها رو به فرمت {{variable}} تبدیل کنه و در نهایت خروجی رو داخل یک فایل extractedTexts.json ذخیره کنه.
حالا خواستم این ابزار رو با شما هم به اشتراک بذارم. اگر قراره قابلیت چندزبانه رو پیادهسازی کنید، فقط کافیه این دستور رو اجرا کنید:
npx farsi-text-extractor
و تمام متنهای فارسی پروژهتون در کمتر از یک ثانیه آمادهست.
نکته: حتماً در پایان، خروجی فایل رو یه نگاه بندازید تا از درستی خروجی اطمینان حاصل کنید.
https://www.npmjs.com/package/farsi-text-extractor
@DevTwitter | <shahin behzadrad/>
فریم وورک جدید جاوااسکریپت Tauri
شما با این ابزار میتونین یک سورس کد با هر ابزار فرانت اندی که دوسدارین از جمله Next و Nuxt بنویسین و Tauri میاد و اپلیکیشن شمارو روی ویندوز/لینوکس/مک و اندروید/آی او اس ران میکنه. یک سورس کد روی ۵ سیستم عامل مختلف!
این کار با موتور خودش که با Rust نوشته شده و WebView انجام میشه و همچنین با کمک Rust به ماژول های سیستمی هم دسترسی داره.
نکته جالبش اینه چون از V8 یا Javascript bridge استفاده نمیکنه بشدت سرعت بالا و حجم کمی داره و همچنین قول امنیت بالایی رو هم میده.
(برای مثال یک اپ مشابه با Tauri که ۵ مگابایت میشه، با React native میشه ۲۰ الی ۳۰ و با Electron میشه بالای ۱۰۰ مگابایت)
بنظرم ابزار خفنیه و جالبه بدونین نزدیک ۱۰۰ هزار تا روی گیت هاب star داره
Home page:
https://v2.tauri.app/
GitHub:
https://github.com/tauri-apps/tauri
@DevTwitter | <Farzad Vahdati/>
شما با این ابزار میتونین یک سورس کد با هر ابزار فرانت اندی که دوسدارین از جمله Next و Nuxt بنویسین و Tauri میاد و اپلیکیشن شمارو روی ویندوز/لینوکس/مک و اندروید/آی او اس ران میکنه. یک سورس کد روی ۵ سیستم عامل مختلف!
این کار با موتور خودش که با Rust نوشته شده و WebView انجام میشه و همچنین با کمک Rust به ماژول های سیستمی هم دسترسی داره.
نکته جالبش اینه چون از V8 یا Javascript bridge استفاده نمیکنه بشدت سرعت بالا و حجم کمی داره و همچنین قول امنیت بالایی رو هم میده.
(برای مثال یک اپ مشابه با Tauri که ۵ مگابایت میشه، با React native میشه ۲۰ الی ۳۰ و با Electron میشه بالای ۱۰۰ مگابایت)
بنظرم ابزار خفنیه و جالبه بدونین نزدیک ۱۰۰ هزار تا روی گیت هاب star داره
Home page:
https://v2.tauri.app/
GitHub:
https://github.com/tauri-apps/tauri
@DevTwitter | <Farzad Vahdati/>
"تو این پروژه از RabbitMQ استفاده کردین؟ چرا؟"
این یکی از سوالهایی بود که تو یکی از مصاحبههای اخیرم ازم پرسیدن. بعدش اما یه سوال جالبتر مطرح شد:
"کجاها نباید از RabbitMQ استفاده کرد؟"
اون لحظه طبق تجربههام چند مورد گفتم، ولی بعد از مصاحبه، کنجکاو شدم بیشتر بدونم. نشستم یه تحقیق حسابی کردم، نتیجهش اینه
کجا نباید از RabbitMQ استفاده کنیم؟ دلیلش چیه؟ و چی بهتره جایگزین کنیم؟
1. وقتی نیاز به real-time response داریم
چرا نه؟ چون RabbitMQ صفیه و ارسال/دریافت پیام ممکنه با تاخیر انجام بشه
جایگزین؟ WebSocket، gRPC یا Redis Pub/Sub برای پاسخدهی لحظهای
2. وقتی به message replay یا history نیاز داریم
چرا نه؟ RabbitMQ پیامها رو بعد از مصرف حذف میکنه (مگر با کانفیگ و پیچیدگی بالا)
جایگزین؟ Kafka که log-based کار میکنه و پیامها رو تا مدت مشخص نگه میداره
3. زمانی که پیامها بسیار حجیم یا پرتعداد هستن
چرا نه؟ در حجم بالا RabbitMQ دچار افت performance میشه
جایگزین؟ Kafka یا NATS که برای حجم بالا طراحی شدن
4. وقتی ترتیب دقیق پردازش پیامها خیلی مهمه
چرا نه؟ RabbitMQ تضمین دقیقی برای ترتیب پیامها نداره
جایگزین؟ Kafka با قابلیت دقیق offset و partitioning
5. زمانی که امنیت end-to-end خیلی حیاتی باشه
چرا نه؟ RabbitMQ امنیت پایهای داره و برای نیازهای بالا باید کاستومایز شه
جایگزین؟ NATS یا Apache Pulsar با امکانات auth و encryption قویتر
پس کی RabbitMQ انتخاب خوبیه؟
- وقتی دنبال سادگی و decoupling هستیم
- برای پردازشهای پسزمینه و job queue ساده
- در شرایطی که نیاز به load leveling و retry داریم
- وقتی بین سرویسها تفاوت سرعت زیادی وجود داره
@DevTwitter | <Mohammad Shamsi/>
این یکی از سوالهایی بود که تو یکی از مصاحبههای اخیرم ازم پرسیدن. بعدش اما یه سوال جالبتر مطرح شد:
"کجاها نباید از RabbitMQ استفاده کرد؟"
اون لحظه طبق تجربههام چند مورد گفتم، ولی بعد از مصاحبه، کنجکاو شدم بیشتر بدونم. نشستم یه تحقیق حسابی کردم، نتیجهش اینه
کجا نباید از RabbitMQ استفاده کنیم؟ دلیلش چیه؟ و چی بهتره جایگزین کنیم؟
1. وقتی نیاز به real-time response داریم
چرا نه؟ چون RabbitMQ صفیه و ارسال/دریافت پیام ممکنه با تاخیر انجام بشه
جایگزین؟ WebSocket، gRPC یا Redis Pub/Sub برای پاسخدهی لحظهای
2. وقتی به message replay یا history نیاز داریم
چرا نه؟ RabbitMQ پیامها رو بعد از مصرف حذف میکنه (مگر با کانفیگ و پیچیدگی بالا)
جایگزین؟ Kafka که log-based کار میکنه و پیامها رو تا مدت مشخص نگه میداره
3. زمانی که پیامها بسیار حجیم یا پرتعداد هستن
چرا نه؟ در حجم بالا RabbitMQ دچار افت performance میشه
جایگزین؟ Kafka یا NATS که برای حجم بالا طراحی شدن
4. وقتی ترتیب دقیق پردازش پیامها خیلی مهمه
چرا نه؟ RabbitMQ تضمین دقیقی برای ترتیب پیامها نداره
جایگزین؟ Kafka با قابلیت دقیق offset و partitioning
5. زمانی که امنیت end-to-end خیلی حیاتی باشه
چرا نه؟ RabbitMQ امنیت پایهای داره و برای نیازهای بالا باید کاستومایز شه
جایگزین؟ NATS یا Apache Pulsar با امکانات auth و encryption قویتر
پس کی RabbitMQ انتخاب خوبیه؟
- وقتی دنبال سادگی و decoupling هستیم
- برای پردازشهای پسزمینه و job queue ساده
- در شرایطی که نیاز به load leveling و retry داریم
- وقتی بین سرویسها تفاوت سرعت زیادی وجود داره
@DevTwitter | <Mohammad Shamsi/>
ریپوی زیر شامل راهحلها، کدها و استراتژیهای تیمهای برتر رقابتهای Kaggle هست که بعد از هر مسابقه آپدیت میشه و برای مرور، جستجو و حتی یادداشتبرداری خیلی کاربردیه. اگه میخواید از تجربه حرفهایها یاد بگیرید، این ریپو رو از دست ندید:
https://github.com/faridrashidi/kaggle-solutions
@DevTwitter | <Reza Jafari/>
https://github.com/faridrashidi/kaggle-solutions
@DevTwitter | <Reza Jafari/>
دیگه لازم نیست کلی وقت بذاری برای GenAI بری ببینی چطوری RAG پیادهسازی کنی. ۴ تا کلیک میکنی توی پنل کلادفلر و کار تمومه. به زودی قراره Web Crawler هم اضافه بشه.
اطلاعات بیشتر رو اینجا ببینید:
https://blog.cloudflare.com/introducing-autorag-on-cloudflare/
@DevTwitter | <Reza Moallemi/>
اطلاعات بیشتر رو اینجا ببینید:
https://blog.cloudflare.com/introducing-autorag-on-cloudflare/
@DevTwitter | <Reza Moallemi/>
This media is not supported in your browser
VIEW IN TELEGRAM
تبدیل نوشتار به فیلتر های سرچ با کمک هوش مصنوعی کاری بود که برای تمرین بیشتر structured output llm ها انجام دادم.
برای مواقعی که تعداد داده ها خیلی زیاده و فیلتر کردن سخت میشه llm شاید بتونه کمک کنه ما بتونیم با نوشتار به دیتای فیلتر شده ای که میخوایم سریعتر برسیم.
یه دمو ریز
@DevTwitter | <Mani/>
برای مواقعی که تعداد داده ها خیلی زیاده و فیلتر کردن سخت میشه llm شاید بتونه کمک کنه ما بتونیم با نوشتار به دیتای فیلتر شده ای که میخوایم سریعتر برسیم.
یه دمو ریز
@DevTwitter | <Mani/>
با Guzzle یه اسکریپت scraper نوشتم برای سایت دیوار
به این شکل که میاییم درخواست های POST خود دیوار رو شبیه سازی میکنیم، اطلاعات آگهی ها رو استخراج میکنیم
https://github.com/xmrrabbitx/scraper
@DevTwitter | <hadi mirzaei/>
به این شکل که میاییم درخواست های POST خود دیوار رو شبیه سازی میکنیم، اطلاعات آگهی ها رو استخراج میکنیم
https://github.com/xmrrabbitx/scraper
@DevTwitter | <hadi mirzaei/>
اگه نیاز به یه سیستم برای مدیریت تسکها و پروژهها دارید و میخواید خودتون هم رانش کنید رپوی زیر که با لاراول نوشته شده این امکان رو بهتون میده.
هم کد و ظاهرش خوب بود و هم امکانات خوبی مثل بورد kanban و سیستم تیکت و تایملاین هم داره
https://github.com/SeptiawanAjiP/dewakoding-project-management
@DevTwitter | <Saman Esmaeil/>
هم کد و ظاهرش خوب بود و هم امکانات خوبی مثل بورد kanban و سیستم تیکت و تایملاین هم داره
https://github.com/SeptiawanAjiP/dewakoding-project-management
@DevTwitter | <Saman Esmaeil/>
This media is not supported in your browser
VIEW IN TELEGRAM
اگه شمام مثه من کامندارو یادتون میره، در مورد کوبر میتونید به این ریپو یه نگاه بندازین:
https://github.com/GoogleCloudPlatform/kubectl-ai
@DevTwitter | <Younes Mahmoudi/>
https://github.com/GoogleCloudPlatform/kubectl-ai
@DevTwitter | <Younes Mahmoudi/>
جت برینز شروع به ثبت نام کنفرانس PHPverse که به مناسبت 30 سالگی PHP هست کرده.
سخنرانهایی مثل otwell، grekas و way داره
حتما شرکت کنید که احتمالا خیلی کنفرانس باحالی باشه.
البته هنوز خیلی مونده، ۲۷ خرداد برگزار میشه.
میتونید از لینک زیر اقدام کنید.
https://lp.jetbrains.com/phpverse-2025/
@DevTwitter
سخنرانهایی مثل otwell، grekas و way داره
حتما شرکت کنید که احتمالا خیلی کنفرانس باحالی باشه.
البته هنوز خیلی مونده، ۲۷ خرداد برگزار میشه.
میتونید از لینک زیر اقدام کنید.
https://lp.jetbrains.com/phpverse-2025/
@DevTwitter
اوبونتو برنامه جایگزینی ابزارهای برمبنای Rust را شروع کرده و قرار است در 25.10 تا جای ممکن این کار را انجام دهد تا برای انتشار 26.04 LTS آماده باشند.
طبق آخرین اطلاعیه، ابزار sudo-rs را در 25.10 در کنار نسخه Rust ابزارهای coreutils findutils و diffutils خواهیم داشت.
https://trifectatech.org/blog/memory-safe-sudo-to-become-the-default-in-ubuntu/
@DevTwitter | <Vahid Nameni/>
طبق آخرین اطلاعیه، ابزار sudo-rs را در 25.10 در کنار نسخه Rust ابزارهای coreutils findutils و diffutils خواهیم داشت.
https://trifectatech.org/blog/memory-safe-sudo-to-become-the-default-in-ubuntu/
@DevTwitter | <Vahid Nameni/>
یک بلاگ جالب تازه از HuggingFace اومده راجع به AI Personas. اینکه چطور با طراحی درست، هوش مصنوعی میتونه از یه ابزار خشک، به یه همراه واقعی تبدیل بشه.
خلاصش اینه که:
دستیارهای هوش مصنوعی دیگه فقط یه سری ربات پاسخگو نیستن. حالا تبدیل شدن به شریکهای همکاری! حتی تغییرات خیلی کوچیک میتونه یه مدل عمومی رو به یه دستیار تخصصی تبدیل کنه. یک سری مثال هم گذاشتن از space ها و اپ هایی که روی HF درست کردن. و اینکه چطور تغییراتی مثل "تغییر عنوان و توضیحات" یا "پرامپت های سیستمی" تجربه کاربری را کامل عوض کرده. مثال:
- تغییر عنوان و توضیحات: توی پروژههایی مثل مربی شنا یا همراه کسبوکار فقط عنوان و توضیح فرق کرده، ولی همین باعث شده کاربرها انتظار متفاوتی داشته باشن و جور دیگهای تعامل کنن.
- پرومتهای سیستمی: مثلاً توی مربی مصاحبه با دادن یه پرومت مشخص، مدل تبدیل میشه به یه مصاحبهکننده حرفهای که سؤالات دنبالهدار میپرسه و بازخورد میده.
- تعامل شخصیسازیشده: توی همسفر هوش مصنوعی پرومتها با یه سری سؤال از پیش تعیینشده ترکیب میشن تا علاقهمندیهای کاربر رو دربیارن و تجربه رو اختصاصیتر کنن.
این نمونهها نشون میدن که:
- انتخابهای طراحی مهمن: اینکه چطور مدل رو معرفی و راهنمایی میکنیم، تأثیر زیادی روی رفتار مدل و برداشت کاربر داره.
- فراتر از پیشرفت فنی: حتی اگه مدل از نظر دانش و استدلال قوی باشه، طراحی ظریف باعث میشه احساس انسانیتری منتقل کنه.
- آزمایش راحت و بدون کدنویسی: با Inference Playground توی Hugging Face میشه راحت با پرومتهای مختلف بازی کرد و سریع نتیجهها رو دید — بدون اینکه نیاز به کدنویسی باشه.
بلاگشون را بخونید.
Blog: https://huggingface.co/blog/giadap/ai-personas
@DevTwitter | <Mehdi Allahyari/>
خلاصش اینه که:
دستیارهای هوش مصنوعی دیگه فقط یه سری ربات پاسخگو نیستن. حالا تبدیل شدن به شریکهای همکاری! حتی تغییرات خیلی کوچیک میتونه یه مدل عمومی رو به یه دستیار تخصصی تبدیل کنه. یک سری مثال هم گذاشتن از space ها و اپ هایی که روی HF درست کردن. و اینکه چطور تغییراتی مثل "تغییر عنوان و توضیحات" یا "پرامپت های سیستمی" تجربه کاربری را کامل عوض کرده. مثال:
- تغییر عنوان و توضیحات: توی پروژههایی مثل مربی شنا یا همراه کسبوکار فقط عنوان و توضیح فرق کرده، ولی همین باعث شده کاربرها انتظار متفاوتی داشته باشن و جور دیگهای تعامل کنن.
- پرومتهای سیستمی: مثلاً توی مربی مصاحبه با دادن یه پرومت مشخص، مدل تبدیل میشه به یه مصاحبهکننده حرفهای که سؤالات دنبالهدار میپرسه و بازخورد میده.
- تعامل شخصیسازیشده: توی همسفر هوش مصنوعی پرومتها با یه سری سؤال از پیش تعیینشده ترکیب میشن تا علاقهمندیهای کاربر رو دربیارن و تجربه رو اختصاصیتر کنن.
این نمونهها نشون میدن که:
- انتخابهای طراحی مهمن: اینکه چطور مدل رو معرفی و راهنمایی میکنیم، تأثیر زیادی روی رفتار مدل و برداشت کاربر داره.
- فراتر از پیشرفت فنی: حتی اگه مدل از نظر دانش و استدلال قوی باشه، طراحی ظریف باعث میشه احساس انسانیتری منتقل کنه.
- آزمایش راحت و بدون کدنویسی: با Inference Playground توی Hugging Face میشه راحت با پرومتهای مختلف بازی کرد و سریع نتیجهها رو دید — بدون اینکه نیاز به کدنویسی باشه.
بلاگشون را بخونید.
Blog: https://huggingface.co/blog/giadap/ai-personas
@DevTwitter | <Mehdi Allahyari/>
خیلی وقت بود میدیدم بچهها دارن زیرنویسها رو با مدلهای زبانی ترجمه میکنند.
ولی بیشترشون فقط با Gemini کار میکردن، هم تحریمه، هم کُند و هم ریتلیمیت داشت.
حالا هر مدلی خواستید رو وصل میکنید Open AI، Deepseek و هر مدلی که دوست دارید
https://github.com/Ho3seinTork/Subtitle-Translator-with-LLMs
@DevTwitter | <Diss Obedience/>
ولی بیشترشون فقط با Gemini کار میکردن، هم تحریمه، هم کُند و هم ریتلیمیت داشت.
حالا هر مدلی خواستید رو وصل میکنید Open AI، Deepseek و هر مدلی که دوست دارید
https://github.com/Ho3seinTork/Subtitle-Translator-with-LLMs
@DevTwitter | <Diss Obedience/>
آینده sudo چیه؟
اوبونتو میره سمت sudo-rs
اما Systemd میگه نه! ما خودمون یه sudo ساختیم به اسم run0
حالا گیر کردیم:
sudo-rs = سازگار ولی مستقل
run0 = سبک ولی وابسته به systemd
@DevTwitter | <Mehrdad Linux/>
اوبونتو میره سمت sudo-rs
اما Systemd میگه نه! ما خودمون یه sudo ساختیم به اسم run0
حالا گیر کردیم:
sudo-rs = سازگار ولی مستقل
run0 = سبک ولی وابسته به systemd
@DevTwitter | <Mehrdad Linux/>
سایت لاویبل از اون هوش مصنوعی هاست که با یه پرامپت ساده، صفر تا صد طراحیسایت رو میکنه:
https://lovable.dev
وسط کار اگر اجرا نشه باگو خودش فیکس میکنه و تا تهش میره. تهش کجاس؟! پروژه رو خودکار روی گیتهاب شما پابلیش میکنه!!! مثل این ماشینحساب من:
https://github.com/NabiKAZ/xp-calculator-nabi-edition
@DevTwitter | <Nabi/>
https://lovable.dev
وسط کار اگر اجرا نشه باگو خودش فیکس میکنه و تا تهش میره. تهش کجاس؟! پروژه رو خودکار روی گیتهاب شما پابلیش میکنه!!! مثل این ماشینحساب من:
https://github.com/NabiKAZ/xp-calculator-nabi-edition
@DevTwitter | <Nabi/>
فوق العاده ست این warp. اینطوریه که یه ایجنت خیلی خوب برای ترمینال میشه. به جای اینکه برای انجام دادن یه پروسه مجبور باشی دونه دونه دستور و خطاهارو تو گوگل دنبال جواب باشی، یه جمله بهش میگی چیکار کن خودش هم پلن میکنه دستورالعمل رو و هم دونه به دونه اجرا میکنه و اگه خطایی هم باشه خودش دنبال راه حل میگرده.
اگه به استفاده کردن ازش عادت کنید فکر نمیکنم دیگه بتونید با ترمینال دیگه ای کار کنید.
ضمنا خودش context کار رو میدونه و وقتی در خطا فرمان میخوای دستوری رو اجرا کنی قبل از نوشتن دستور پیشنهاداتش رو بهت میگه.
https://www.warp.dev
@DevTwitter | <Hossein Nazari, GoCasts/>
اگه به استفاده کردن ازش عادت کنید فکر نمیکنم دیگه بتونید با ترمینال دیگه ای کار کنید.
ضمنا خودش context کار رو میدونه و وقتی در خطا فرمان میخوای دستوری رو اجرا کنی قبل از نوشتن دستور پیشنهاداتش رو بهت میگه.
https://www.warp.dev
@DevTwitter | <Hossein Nazari, GoCasts/>