DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
358 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
اون اوایل که زیاد می گفتن ویندوزت لینوکسه؟

توی این سال‌ها هم که لینوکس با میزکار Gnome شناخته شده، با توجه به اینکه از KDE استفاده می کنم بارها بهم گفتن اینکه ویندوز هست!

قیافه KDE قبل از ویندوز همین شکلی بوده!
حتی فراتر از این عکس‌ها Customize میشه کرد.
https://hackernoon.com/18-awesome-linux-themes-for-your-inspiration

@DevTwitter | <VAHID NAMENI/>
🍌48🔥27👍7👎4
آنچه خوبان همه دارند، تو تنها داری: معرفی OpenObserve

بیش از یک دهه پیش، مسیر من در دنیای مشاهده‌پذیری زیرساخت‌ها (Observability) با پشته‌ی کلاسیک ELK (Elasticsearch, Logstash, Kibana) آغاز شد.
در سال‌های اخیر، ابزارهایی چون VictoriaMetrics و Signoz را نیز تجربه کردم، هر یک با ویژگی‌هایی ارزشمند در حوزه‌ی متریک‌ها، لاگ‌ها و تریس‌ها.

اما در این مسیر، اخیراً با پلتفرمی مواجه شدم که به نظرم می‌رسد حرف تازه‌ای برای گفتن دارد:
OpenObserve (O2)
openobserve.ai
OpenObserve

در بررسی اولیه، با مجموعه‌ای از قابلیت‌ها و معماری چندلایه و آینده‌نگر روبه‌رو شدم که در عین سادگی و کارایی، عمق فنی قابل توجهی دارد.
اینکه پلتفرم کاملاً با زبان Rust نوشته شده است، تنها یکی از دلایل جذابیت آن است؛ چراکه Rust هم‌زمان سرعت، ایمنی حافظه و بهره‌وری بالا را تضمین می‌کند.

معماری مدرن و الهام‌گرفته از نسل جدید سیستم‌های داده

پروژه OpenObserve از Apache Parquet به‌عنوان فرمت ذخیره‌سازی ستونی و از DataFusion Query Engine برای اجرای مستقیم کوئری‌ها استفاده می‌کند. (دیتافیوژن مشابه با duckdb است که با زبان rust توسعه یافته و متعلق به بنیاد آپاچی است)
این طراحی نشان‌دهنده‌ی حرکت آگاهانه به سمت همان معماری‌ای است که در نسل جدید سیستم‌های داده دیده می‌شود:
> جداسازی کامل لایه‌ی ذخیره‌سازی (Storage Layer) از لایه‌ی محاسبات (Compute Layer)
و تعامل از طریق فرمت‌های باز، ستونی و بهینه مثل Parquet.

نتیجه‌ی این معماری چندلایه، سیستمی است که هم بسیار سریع و مقیاس‌پذیر است، هم از نظر هزینه و نگه‌داری به‌صرفه و ساده باقی می‌ماند.

️ آنچه در بررسی اولیه توجه من را جلب کرد

امکان Full-Stack Observability برای Logs، Metrics و Traces در یک بستر واحد

پشتیبانی از Session Replay و Real User Monitoring (RUM) برای تحلیل تجربه‌ی واقعی کاربران

معماری Stateless با مقیاس‌پذیری افقی آسان

قابلیت High Compression (~40×) و هزینه‌ی ذخیره‌سازی تا ۱۴۰× کمتر از Elasticsearch

پشتیبانی از ذخیره‌سازی در S3، MinIO، GCS و Azure Blob

کوئری با SQL، PromQL و VRL

سیستم Observability Pipelines برای پردازش، پالایش و غنی‌سازی داده‌ها در لحظه

طراحی High Availability و Clustering برای نیازهای سازمانی بزرگ

عملکرد و مقیاس

در بنچمارک داخلی، OpenObserve توانسته است ۱ پتابایت داده را در کمتر از ۲ ثانیه کوئری بگیرد، عددی که حتی برای سیستم‌های تحلیلی مدرن نیز قابل توجه است.
معماری Stateless Node آن امکان گسترش افقی بدون پیچیدگی Replication یا وابستگی داده را فراهم می‌کند.

جامعه و مسیر رشد

این پروژه‌ی متن‌باز اکنون بیش از ۱۶٬۰۰۰ ستاره در GitHub دارد و توسط جامعه‌ای فعال از متخصصان DevOps، SRE و مهندسان داده توسعه می‌یابد.
مستندات رسمی و نمونه‌های کاربردی در openobserve.ai/docs در دسترس است.

دعوت از تیم‌های DevOps و SRE

اگر در زمینه‌ی DevOps، SRE، Data Platform یا Observability فعالیت می‌کنید، پیشنهاد می‌کنم OpenObserve را از نزدیک بررسی کنید.
ترکیب زبان Rust، طراحی چندلایه‌ی مبتنی بر Parquet و DataFusion، و مجموعه‌ی کامل قابلیت‌ها از Session Replay تا Alerting و Metrics Analysis
آن را به یکی از جامع‌ترین و آینده‌نگرترین پلتفرم‌های مشاهده‌پذیری حال حاضر تبدیل کرده است.

@DevTwitter | <Mojtaba Banaie/>
🔥13👍64
اگر در n8n فعالید یا در حال آموزش هستید ، در رپو زیر حدودا 2000+ ورکفلو اماده و سالم وجود داره که میتونید برای کارهاتون استفاده کنید

https://github.com/Danitilahun/n8n-workflow-templates/tree/main/workflows

@DevTwitter | <POURYA/>
27👍7👎2🔥2
میخوام دو تا از عجیب ترین Http status code هایی که وجود داشته و داره رو بگم

احتمالا درمورد Http Status Code 418 شنیده باشین.
418 (I'm a teapot)
داره میگه من قوری ام! جالب تر از اینکه چرا وجود داره و میگه من قوری ام اینه که به طور رسمی این http status code تو RFC 2324 ثبت شده!

این یکی رسمی نیست اصلا ولی تو Twitter API v1 ازش استفاده شده بود.
420 (Enhance your calm)
برای اینکه بگن آقا زیاد داری درخواست میفرستی از این استفاده میکردن
بعدا چون تو استاندارد نبود تو v1.1 اومدن تبدیلش کردن به 429 (Too many requests).

@DevTwitter | <Ali Valizadeh/>
🔥283👍1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
این opencode.ai هم یک جایگزین برای CLIهای متصل به هوش مصنوعی است.

گرچه CLI بیشتر توسط برنامه‌نویس‌ها استفاده می‌شه ولی خب چون می‌تونیم چندین agent تعریف کنیم و همزمان باهاشون در یک پروژه بشینیم (multi-session) می‌شه برای انواع کارها ازش استفاده کرد.

@DevTwitter | <Hamed/>
👍11👎21🔥1
یه exporter ساده با Go نوشتم که متریک‌های سیستم و اپلیکیشن رو به Prometheus می‌فرسته.
همراه با Docker، Prometheus و Grafana برای تست محلی.

اگر به monitoring با Go یا observability علاقه‌مندید، می‌تونید نگاهی بندازید:

https://github.com/irvaniamirali/go-prometheus-exporter

@DevTwitter | <Amiri/>
🔥17👍4
یکی از ابزار های باحال و بامزه ای که اکثر لینوکس یوزر ها باهاش آشنایی دارن Neofetch هستش!
این ابزار باحال به شما این اجازه رو میده که یه اطلاعات کلی از سیستم به صورت دسته بندی شده و مرتب رو توی ترمینال داشته باشید.
چیزی که Neofetch رو نسبت به سایر پکیج های sysinfo متمایز میکنه اون تصویر لوگوی توزیع لینوکسی شماست که البته قابل کاستومایز هم هست!(مثل تصویر).

این ابزار بامزه برای همه توزیع های لینوکسی در دسترسه و میتونید با هر پکیج منیجری به راحتی نصبش کنید.البته این ابزار روی بعضی از پکیج منیجر ها مثل Pacman موجود نیست و برای توزیع هایی مثل آرچ لینوکس و مانجارو باید پکیج Fastfetch رو نصب کنید دقیقا کار Neofetch رو میکنه.(که البته خیلی هم کامل تره!)

لینک Neofetch روی گیتهاب:
https://github.com/dylanaraps/neofetch
لینک Fastfetch روی گیتهاب:
https://github.com/fastfetch-cli/fastfetch

* البته neofetch آرشیو شده.

@DevTwitter | <Farzad Ebrahimi/>
🍌2314👍5👎3
زیر 10 دقیقه؛
با توجه به اینکه قبلا Gemini Pro رو گرفتیم؛
اینجا Perplexity PRO رو می‌گیریم...
یکساله | رایگان


لینک ویدیو:
https://www.youtube.com/watch?v=0p6dZ1NPecc&list=PLwUWEGKy5kyNrPv05-Asbhm6g6S8_eRPb&index=16

@DevTwitter | <Ryan Heida/>
👎22👍10🍌31
اگر علاقه‌مند به امنیت دفاعی و Blue Team هستید یا می‌خواهید دانش خود یا سازمان‌تان را مورد سنجش قرار دهید،
مخزن Awesome Cybersecurity Blue Team می‌تواند تا حدود زیادی به شما در پیدا کردن این مسیر، به شما کمک کند!
https://github.com/fabacab/awesome-cybersecurity-blueteam

@DevTwitter | <VAHID NAMENI/>
7🍌2👍1🔥1
https://github.com/MSNP1381/openapi_llm_ready
تابحال شده بخواید از api های یه پروژه که openapi هستن تو کدتون استفاده کنید و خیلی اوقات نیازه که کل فایل openapi رو به llm بدید و خیلی اوقات بخاطر ساختار references مدل نمیتوته خوب درک برا همین این یه فایلو ساختم که api هارو به markdown تبدیل میکنه /

@DevTwitter | <Nemat/>
7👍5👎3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
گیت‌هاب Agent HQ را معرفی کرد؛ دسترسی به ایجنت‌های کدنویسی مختلف در یک هاب

گیت‌هاب با معرفی پلتفرم جدیدی به نام Agent HQ امکان مدیریت و کنترل ایجنت‌های هوش مصنوعی کدنویسی از شرکت‌های مختلف مانند OpenAI، گوگل، آنتروپیک، xAI و Cognition را در کنار کوپایلوت فراهم کرده است.

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

@DevTwitter | <Digiato/>
14👍4
مقایسه PostgreSQL در برابر MySQL — رقابتی میان دقت و سادگی

در تصویر اول، ستونی از نوع JSONB به همراه ایندکس GIN به جدول کاربران در پایگاه‌داده‌ی PostgreSQL اضافه شده است.
در تصویر دوم، اجرای یک کوئری بر روی ۵۰٬۰۰۰ رکورد در PostgreSQL حدود ۷ برابر سریع‌تر از MySQL انجام شد.

در اکوسیستم پایگاه‌داده‌های رابطه‌ای این دو نام بیش از همه در کانون توجه‌اند، هر دو از ستون‌های اصلی دنیای متن‌باز به شمار می‌آیند، اما فلسفه‌ی طراحی و نوع نگاهشان به داده، دو مسیر کاملاً متفاوت را دنبال می‌کند.

معماری و انضباط داده
پستگرس‌کیوال از ابتدا با رویکردی «استانداردمحور» طراحی شده است.
انطباق دقیق با استاندارد SQL و رفتار سخت‌گیرانه در برابر نوع داده‌ها، قیدها و تراکنش‌ها باعث می‌شود کیفیت داده‌ها در سطح سازمانی حفظ شود.
این ویژگی در پروژه‌هایی که داده‌ی نادرست می‌تواند هزینه‌زا باشد، ارزش حیاتی دارد.
در مقابل، MySQL در برخورد با داده‌ها انعطاف‌پذیرتر است و در بسیاری از سناریوها داده‌های ناسازگار را بدون خطا ذخیره می‌کند ، ویژگی‌ای که توسعه‌ی سریع‌تر را ممکن می‌کند، اما ممکن است در مقیاس بزرگ چالش‌برانگیز شود.

کارایی و الگوی مصرف
معمولاً در بارهای کاری سبک‌تر و اپلیکیشن‌های مبتنی بر خواندن زیاد MySQL عملکرد بهتری نشان می‌دهد.
ساختار ساده‌تر و تنظیمات ابتدایی بهینه‌اش باعث می‌شود برای استارتاپ‌ها، MVPها و پروژه‌های با معماری ساده انتخابی طبیعی باشد.
در سوی دیگر، PostgreSQL در سناریوهای تحلیلی، تراکنش‌های پیچیده و Queryهای چندلایه قدرت واقعی خود را نشان می‌دهد.
پشتیبانی از قابلیت‌هایی مانند CTE، Window Function و نوع داده‌ی JSONB آن را به گزینه‌ای ایده‌آل برای سیستم‌های داده‌محور تبدیل کرده است.

قابلیت گسترش و انعطاف‌پذیری فنی
پستگرس‌کیوال فراتر از یک دیتابیس کلاسیک عمل می‌کند.
تعریف نوع داده‌ی سفارشی، توابع دلخواه و حتی افزونه‌نویسی درون خود موتور، آن را به بستری برای طراحی معماری‌های داده‌ای پیچیده بدل کرده است.
در مقابل، MySQL ساده‌تر و مینیمال‌تر است — رویکردی که هم نقطه‌ی قوت است و هم محدودیت.

در نهایت، انتخاب میان PostgreSQL و MySQL نه بر اساس «بهتر بودن»، بلکه بر اساس اولویت‌های معماری و نیازهای پروژه تعیین می‌شود.
اگر پروژه‌تان حول محور دقت، استاندارد و توسعه‌پذیری بلندمدت می‌چرخد، PostgreSQL انتخابی استراتژیک است.
اما اگر به دنبال سادگی، سرعت پیاده‌سازی و پایداری در نیازهای روزمره‌ی وب هستید، MySQL همچنان گزینه‌ای درخشان و اثبات‌شده است.


@DevTwitter | <Babak Mirhosseini/>
👍258🍌2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
کمپانی HuggingFace اومده و یک بلاگ (که میتونید به صورت یک کتاب هم دانلود کنید و بخونید) از تمام مراحل training تا post training و fine tuning مدلهای کوچک LLM و VLM که خودشون انجام دادند را درست کردند. یعنی تمام نکات و قلق ها را توضیح میدند.
Link: https://huggingface.co/spaces/HuggingFaceTB/smol-training-playbook

@DevTwitter | <Mehdi Allahyari/>
35👍1🔥1
سیستم سفارش رستوران من روی گیت‌هاب منتشر شد!
ساده، کاربردی و آماده استفاده برای مدیریت سفارشات

https://github.com/nimaohamdi/Restaurant-Order-System

@DevTwitter | <Nimo/>
🔥54🍌15👍63
This media is not supported in your browser
VIEW IN TELEGRAM
این پروژه‌های Fun هم حس و حال خودشون رو دارند مثل Screensaverهای Cli.
بعضی ها موقع ای که از Cli استفاده نمی کنند، اجرا می کنند، گهگاهی هم خودم برای باحال شدن پروژه‌ام داخل Loading اسکریپت‌ها استفاده می کنم.
خلاصه باحال هست، یک نگاه کنید.
https://github.com/attogram/bash-screensavers

@DevTwitter | <VAHID NAMENI/>
13🔥1
Funny PHP

یک کار بامزه ، چه طور بالا و پایین شدن داده ها رو به موسیقی تبدیل کنیم ؟

Convert price trends into audio sequences: detect increasing, decreasing, and flat price ranges, then generate a single MP3 summary using corresponding sound clips.

$prices = [100, 102, 105, 105, 105, 104, 102, 101, 101, 103, 104];
$dates = ['2025-10-20','2025-10-21','2025-10-22','2025-10-23','2025-10-24','2025-10-25','2025-10-26','2025-10-27','2025-10-28','2025-10-29','2025-10-30'];

// Detect ranges
$ranges = PriceTrend::findDataRanges($prices, $dates, 2);

// Generate audio summary
AudioGenerator::joinRangeAudio($ranges, __DIR__ . '/../output.mp3');


https://github.com/saeedvir/price-trend-audio-visualizer/

@DevTwitter | <Saeed/>
19👍5🍌3👎2
کانفیگ و پیاده‌سازی Web Push Notification بدون Firebase

* از اونجایی که داخل ایران نمی‌تونیم از سرویس‌هایی مثل Firebase Cloud Messaging (FCM) استفاده کنیم، تصمیم گرفتم خودم سیستم Web Push Notification رو پیاده‌سازی کنم!

* در سمت کلاینت (Next.js) از یک Service Worker استفاده کردم تا نوتیف‌ها حتی زمانی که تب بسته هستش هم نمایش داده بشه.
کاربر کافیه اپ رو به Home Screen اضافه کنه و بعد از اولین ورود، مجوز ارسال نوتیفیکیشن رو تأیید کنه؛
در این مرحله، مرورگر به‌صورت خودکار یک subnoscription اختصاصی تولید می‌کنه که شامل endpoint، public key و auth token هست و به سرور ارسال میشه.

* در سمت بک‌اند (Node.js + Express) از پکیج web-push استفاده کردم تا با کلیدهای VAPID نوتیف‌ها رو به‌صورت مستقیم و امن برای مرورگر کاربران ارسال کنم.
هر endpoint به‌صورت یکتا در دیتابیس ذخیره می‌شه و سرور می‌تونه به تمام کاربران یا فقط به یک کاربر خاص نوتیف بفرسته

ویژگی‌ها:

ارسال نوتیف زنده و امن با کلیدهای VAPID
مدیریت subscribe / unsubscribe کاربران
پشتیبانی کامل از PWA و Service Worker
قابل تنظیم برای آیکون، عنوان و لینک دلخواه
مستقل از Firebase و بدون محدودیت

میتونید نسبت به کانفیگ پروژتون setup کنید

* خب شاید بپرسید اگه کاربر آفلاین باشه چی می‌شه…
خیلی ساده بخوام بگم وقتی کاربر آفلاین باشه و شما بخواید براش پوش نوتیفیکیشن بفرستید، Push Service مثل گوگل یا مرورگر، پیام رو می‌ذاره تو صف (queue) و وقتی کاربر دوباره آنلاین شد، نوتیفیکیشن روی صفحه‌ش ظاهر می‌شه.

demo: https://sadegh-nextjs-push-notification.liara.run/
برای تست، اپ رو به صفحه اصلی اضافه کنید و دسترسی رو اکسپت کنید و از فرمی که داخل اپ هستش نوتیف ارسال کنید

repo: https://github.com/sadegh1379/push-notification

@DevTwitter | <Sadegh Akbari/>
26👍6🍌5🔥4