DevTwitter | توییت برنامه نویسی
31.3K subscribers
5.13K photos
403 videos
6 files
4.96K links
توییت های برنامه نویسی و طراحی وب :)

Admin:
@dvtwi

Hashtags:
devtwitter.t.iss.one/5

DevBooks Channel:
https://t.iss.one/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
مدتیه روی پروژه‌ای به نام Simurgh UI کار می‌کنم؛ یک کتابخانه‌ی UI متن‌باز و Headless برای توسعه‌دهندگان React، Vue و Angular.
ایده‌ی اصلی Simurgh UI از یک نیاز ساده شکل گرفت:
چرا برای استفاده از کامپوننت‌های قابل شخصی‌سازی، دسترس‌پذیر و سازگار با RTL باید به یک فریم‌ورک خاص محدود باشیم؟
در Simurgh UI تلاش کردم تجربه‌ای شبیه shadcn/ui ایجاد کنم؛ یعنی به‌جای نصب یک پکیج بسته، سورس کامپوننت‌ها از طریق CLI مستقیماً وارد پروژه می‌شود و توسعه‌دهنده کنترل کاملی روی کد، ظاهر و رفتار آن‌ها دارد.
چند ویژگی اصلی پروژه:
پشتیبانی هم‌زمان از React، Vue و Angular
کامپوننت‌های Headless و کاملاً قابل شخصی‌سازی
توجه جدی به Accessibility و تعامل با کیبورد
پشتیبانی از RTL و استفاده از CSS Logical Properties
استایل‌های اختیاری با توکن‌های رنگی الهام‌گرفته از معماری و هنر ایرانی
و CLI برای اضافه‌کردن، بررسی و مقایسه‌ی کامپوننت‌ها
مستندات، نمونه‌های تعاملی و API مستقل برای هر سه فریم‌ورک
اسم و هویت بصری پروژه هم از سیمرغ، پرنده‌ی اسطوره‌ای ایران، الهام گرفته شده؛ نمادی از خرد، تکامل و کنار هم قرار گرفتن اجزای متفاوت.
الان Simurgh UI هنوز در حال توسعه است و خوشحال می‌شم نظر، پیشنهاد یا تجربه‌تون رو درباره‌ی پروژه بدونم. اگر دوست داشتید، می‌تونید پروژه رو ببینید، امتحانش کنید یا در توسعه‌ش مشارکت داشته باشید:
GitHub: https://github.com/simurgh-ui/simurgh

@DevTwitter | <ali ghafoorzade/>
👍189👎5
چند بار پیش آمده که بعد از دیدن Blocked by CORS Policy، مستقیم رفتیم سراغ Nginx یا Backend، در حالی که مشکل جای دیگه ای بوده؟
توی این مقاله سعی کردم خیلی ساده توضیح بدم که CORS واقعاً چیه و چرا همیشه سرور مقصر نیست.

لینک مقاله

@DevTwitter | <Afshin Akrami/>
17👎4🍌2
قبل از نصب هر AI Skills (Claude/Cursor/…)، اسکنش کن.

prompt injection،
سرقت credential،
RCE،
jailbreak
memory poisoning

رو تو SKILL.md/CLAUDE.md پیدا می‌کنه.

https://skills.threatlab.ir

@DevTwitter | <Ramin Farajpour Cami/>
8👍4🍌2
اگه یه برنامه اندرویدی لازم دارید ولی حوصله درگیر شدن با Android Studio و دردسرهای توسعه اندروید رو ندارید، این پروژه می‌تونه به دردتون بخوره.

با Web-to-App می‌تونید اول برنامه‌تون رو به شکل یه وب‌اپ بسازید و بعد تبدیلش کنید به یه اپ اندرویدی.

البته این روش اصلاً جای توسعه نیتیو رو نمی‌گیره و از نظر Performance، دسترسی به قابلیت‌های سخت‌افزاری و تجربه کاربری محدودیت‌هایی داره.

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

https://github.com/shiaho777/web-to-app

@DevTwitter | <Sadra Majidi/>
👍256
چه ایده باحالی!
فونت جدیدی به نام ShieldFont توسط دو طراح ساخته شده تا جلوی scrape کردن صفحات وب توسط AIها را بگیرد.صفحه برای انسان‌ها کاملاً خوانا و عادی به نظر می‌رسد.
در کد HTML، کلمات با استفاده از ویژگیligature فونت، به کلمات دیگری تبدیل که از نظر معنایی بی‌ربط یا گمراه‌کننده هستند، مثلاً «اسب» به «سیب‌زمینی»
در نتیجه داده‌ای که به دست scraper می‌رسد، پر از اطلاعات نادرست و بی‌معنی می‌شود و برای آموزش مدل‌های AI بی‌ارزش یا حتی مضر است.
https://arstechnica.com/ai/2026/08/new-font-turns-ordinary-webpages-into-nonsense-for-ai-scrapers/

@DevTwitter | <VAHID NAMENI/>
👍79🍌28🔥7
یه اعتراف: برای هر سؤال کوچیک حوصله ندارم مرورگر باز کنم، تب عوض کنم و آخرش جواب رو کپی کنم

با RpCli همون سؤال رو توی ترمینال می‌پرسم؛ اگه لازم بود سرچ وب رو روشن می‌کنم و جواب نهایی رو مستقیم می‌ریزم توی فایل.

https://github.com/RezaParsian/RpCli

@DevTwitter | <Reza Parsian/>
🍌63👍11👎2
معرفی 8 ابزار رایگان UX Research برای بهتر تحقیق کردن!

Microsoft Clarity
Formbricks
LimeSurvey Community Edition
Google Forms
kardSort
xSort
OpenReplay
Matomo On-Premise

@DevTwitter | <Samy Vahdat/>
👍75🔥1
اگر هنوز ZCode را امتحان نکرده‌اید، این آخر هفته فرصت خوبی است.

کاربران جدیدی که بین ۱۶ تا ۱۷ آگوست برای اولین بار وارد ZCode شوند، ۱۰۰ میلیون توکن رایگان GLM-5.3 دریافت می‌کنند.

ظرفیت محدود است.
https://zcode.z.ai

@DevTwitter | <Hasan/>
👎2313👍4
یه سایت خوبی پیدا کردم که لیست اپ ها و سرویس هایی که شما می تونین خودتون با استفاده از سرویس های وایب کدینگ بنویسین رو معرفی کرده.

بعضی هاشون حتی مستقیما توسط گوشی و بدون یک خط برنامه نویسی قابل نوشتن هستن.

https://canivibecodeit.com/

@DevTwitter | <Amir Ghasemi />
🍌16👎9👍6
Media is too big
VIEW IN TELEGRAM
اگر ۴۰ دقیقه وقت آزاد دارید، این ویدیو رو ببینید.

اگر ندارید، ۴۰ دقیقه وقت خالی کنید و ببینیدش. :))

حتی می‌تونید روی 1.5x ببینید، چیزی رو از دست نمی‌دید.

توی ویدیو قدم‌به‌قدم نشون می‌ده چطور با Three.js یک Landing Page سه‌بعدی زیبا بسازیم، با حجمی کمتر از ۱ مگابایت.

نکته جذاب‌تر برای من اینه که از صفر توضیح می‌ده چطور این کار رو با Opus 5 و AI انجام بدیم.

البته محدود به Opus نیست.

همین Workflow رو می‌شه با Codex، Qwen 3.8 یا Gemini هم امتحان کرد.

فعلاً پیشنهاد می‌کنم نسخه Basic رو ببینید.

چون چیزی که براتون می‌سازه فقط یک Landing Page نیست و درواقع کمک می‌کنه یک تصویر واقعی از این داشته باشید که ساخت Web تجربه‌های 3D با AI داره به کجا می‌ره.

ویدیو رو ذخیره کنید و بعدا ببینید.

واقعا ارزش ۴۰ دقیقه وقت گذاشتن رو داره.

@DevTwitter | <Kaveh/>
42🍌14👍13
اگه هنوز داری دستی روی کلاستر deploy می‌زنی، این پست رو بخون

چند وقته دارم درباره ArgoCD مطالعه میکنم و واقعاً نگاه من به deployment رو عوض کرده. می‌خوام خیلی ساده براتون بگم چیه، بعد یه ترفند کمتر شناخته‌شده‌ش رو هم بهتون نشون بدم که خیلیا ازش استفاده نمی‌کنن ولی وقتی ببینن کف می‌کنن

ابزار ArgoCD چیه؟
یه ابزار GitOps برای Kubernetes‌
یعنی چی؟ یعنی به جای اینکه با kubectl apply دستی چیزی رو deploy کنی، فقط manifest هات رو توی یه Git repo نگه می‌داری و ArgoCD خودش مدام چک می‌کنه که وضعیت کلاستر با چیزی که توی Git نوشتی match باشه. اگه یکی نبود، خودش sync می‌کنه یا بهت خبر میده. یعنی Git تبدیل میشه به single source of truth، و هر تغییری تاریخچه و ردپا داره.

حالا ترفندی که خیلیا نمی‌دونن: Sync Waves

فرض کن چند تا manifest داری که باید به ترتیب خاصی اجرا بشن (مثلاً اول Database بالا بیاد، بعد Migration اجرا بشه، بعد Backend deploy بشه). خیلیا اینو یا دستی مدیریت می‌کنن یا با اسکریپت جدا.

ولی ArgoCD یه annotation ساده داره:


metadata:
annotations:
https://argocd.argoproj.io/sync-wave: "1"


هر عددی که بذاری، ترتیب اجرا رو مشخص می‌کنه (اعداد کوچیک‌تر زودتر اجرا میشن). می‌تونی حتی با PreSync، Sync و PostSync hook ترکیبش کنی تا مثلاً یه job قبل از deploy اصلی اجرا بشه (مثل migration) و بعدش خودکار پاک بشه.

یه annotation کوچیک، کل orchestration پیچیده‌ت رو نظم می‌ده. من اولین بار که دیدمش واقعاً شوکه شدم که چقدر ساده و قدرتمنده.

@DevTwitter | <Erfan Ramezani/>
10👍7🍌1
مدل GLM-5.3 تازه اومده تو ZCode، روزی ۵ میلیون توکن رایگان، ۵ روز، بدون کارت بانکی:

- ثبت‌نام تو https://Z.ai
- دانلود ZCode
- لاگین کن
- پلن Start فعال میشه
- روزی ۵M توکن میگیری

@DevTwitter | <Cypher/>
👎24👍16🍌6
یک سایت خیلی جذاب و کاربردی پیدا کردم

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

آدرس سایت :
https://aura.build/design-systems


@DevTwitter | <Alireza/>
21👍5👎2
یکی از مفاهیم جالب Kubernetes که معمولا درکش هم برای بار اول خیلی یجوریه و اذیت کنندس و باید چنتا سایت و داکیومنت رو خوند تا قشنگ فهمید موضوع Headless Service هستش و این که Service همیشه قرار نیست ترافیک رو بین Podها پخش کنه.

مثلا اگه سه تا Pod داشته باشیم که پشت یک Service قرار گرفته باشن، وقتی Application به اون Service وصل میشه، معمولا Service درخواست رو به یکی از Podها میرسونه.

ولی حالا ممکنه شرایطی پیش بیاد که Application بخواد IP تک تک Podها رو بدونه و مستقیم با هرکدوم یه ارتباطی برقرار کنه، مثلا توی بعضی سیستم‌ ها مثل کافکا یا clickhouse لازمه خب که اعضای خودشون رو بشناسن و با هر Node به‌صورت جداگانه ارتباط داشته باشن و ... که اینجا Service معمولی خیلی مناسب نیست.

یکی از راهاش اینه که بریم سراغ Kubernetes API و از اونجا لیست Podها و IPهاشون رو بگیریم بعد دونه دونه هرکار میخوایم بکنیم، ولی خب این یعنی Application ما باید Kubernetes رو بشناسه و مستقیم با API Server کار کنه.

راه تمیزترش میشه همون Headless Service .

توی حالت نرمال، DNS مربوط به یک Service، آدرس ClusterIP رو برمیگردونه، ولی وقتی Service رو Headless می‌کنیم، با نوشتن:

clusterIP: None

دیگه Kubernetes برای اون Service یک ClusterIP نمیذاره، بجاش وقتی Application از طریق DNS اون Service رو Lookup می‌کنه، DNS میتونه IP خود Podهای پشت Service رو برگردونه، حالا Application خودش تصمیم می‌گیره با کدوم Pod ارتباط برقرار کنه با یکی، چندتا یا همشون‌.

پس تفاوت مهمی که اینجا هست اینه که:

کوبر برای Service معمولی یه آیپی ثابت میده، خودشم یکی از Podها رو انتخاب میکنه و ...

ولی برای Headless Service دیگه Load Balancing انجام نمیده، آیپی Podهای پشت این Service رو بهمون میده، دیگه بقیش با خودمونه که چکار کنیم باهاش.

@DevTwitter | <S.M.Sadegh Raeeskarami/>
22👍7👎1
در PHP؛ وقتی انعطاف‌پذیری زبان می‌تونه دردسرساز بشه!

یکی از ویژگی‌های جالب PHP، Type Juggling هست؛ یعنی PHP در بعضی شرایط خودش سعی می‌کنه type داده‌ها رو تبدیل کنه تا عملیات موردنظر انجام بشه.

در نگاه اول این رفتار خیلی راحت و کاربردیه، اما وقتی وارد پروژه‌های بزرگ‌تر مثل Laravel می‌شیم، همین انعطاف‌پذیری می‌تونه گاهی باعث رفتارهای غیرمنتظره بشه.

اینجاست که چیزهایی مثل استفاده‌ی درست از type declaration، validation و مقایسه‌ی strict (===) اهمیت پیدا می‌کنن.

البته strict_types قرار نیست تمام مشکلات Type Juggling رو در PHP حل کنه؛ اما باعث می‌شه در بخش‌هایی از کد، رفتار typeها قابل‌پیش‌بینی‌تر باشه.

به نظرم یکی از نکات مهم در کار با PHP اینه که:

هرچقدر پروژه بزرگ‌تر می‌شه، شناختن رفتارهای خود زبان اهمیت بیشتری پیدا می‌کنه؛ چون خیلی از باگ‌های سخت، نه از منطق پیچیده‌ی business، بلکه از یک assumption اشتباه درباره‌ی typeها
به وجود میان.

زبان PHP ساده به نظر می‌رسه، ولی هرچقدر عمیق‌تر بشناسیمش، متوجه جزئیات بیشتری می‌شیم که روی کیفیت کدمون تأثیر می‌ذاره.

@DevTwitter | <Amir Mohammad M./>
👍28🍌107
تجربه ۲ روز کدنویسی فشرده با مدل Qwen 3.8-27B روی RTX 3090 (24GB)

کانفیگ و ستاپ تست:

پنجره کانتکست: 128K
سطح استدلال (Reasoning Effort): xHigh
ایجنت / پلتفرم: Kilo Code

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

زنجیره تفکر و خروجی‌های مدل بسیار متمرکزتر شده و تولید توکن‌های زائد به حداقل رسیده است. این ساختار تمیز باعث می‌شود پنجره کانتکست ۱۲۸ هزارتایی دیرتر اشباع شود و نشست‌های طولانی پایداری بیشتری داشته باشند.

میانگین سرعت خروجی (Decode Throughput) روی تسک‌های سنگین کدنویسی حدود 45 t/s ثبت شد. افت سرعت نسبت به نسل‌های قبل کاملاً محسوس است (که حاصل سربار تفکر عمیق‌تر و پارامترهای فعال است)، اما کیفیت بالای خروجی این افت سرعت را جبران می‌کند.

یکپارچگی مدل با ابزارهای خارجی عالی است؛ اتصال بدون نقص به Playwright برای بررسی خروجی دام، گرفتن اسکرین‌شات از UI، ارزیابی رندرینگ لایو و دیباگ خودکار بر اساس خطاهای رانتایم.

در سطح استدلال xHigh، مدل گاهی دچار Over-thinking می‌شود و زمان زیادی را صرف زنجیره تفکر (CoT) می‌کند، اما نکته مثبت این است که وارد لوپ بی‌نهایت نمی‌شود و همیشه به یک خروجی نهایی و قابل‌اتکا می‌رسد.

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

در پروژه‌های ماژولار بزرگ، پایداری مدل حتی در سشن‌های پیوسته با حجم تجمعی چند میلیون توکن حفظ شد. زمان پاسخ‌دهی از ۱ تا ۲ دقیقه برای باگ‌فیکس‌های سریع تا حدود ۴۰ دقیقه برای پیاده‌سازی کامل یک فیچر فول‌استک (UI + منطق بک‌اند) متغیر بود.

کاری که پیش از این با مدل‌های لوکال قدیمی‌تر نزدیک به ۲ هفته زمان می‌برد، به لطف دقت One-Shot این مدل در ۲ روز جمع شد. برای یک ستاپ لوکال روی تک‌کارت ۲۴ گیگابایتی، جهش عملکردی کم‌نظیری است.

@DevTwitter | <کدنویس اسطوره‌ای/>
55🍌12💔1
ایکس اومده الگوریتم بخش for you رو متن‌باز کرده، یه Agent انداختم تو کل سورس که فایل‌به‌فایل بگرده و بفهمه که چطوری کار می‌کنه.
نتیجه‌اش خیلی جالب‌ بود؛ مخصوصاً وزن Reply، Share، Follow، Report و اینکه اصلاً یک پست چطور وارد For You می‌شه.
چیزهایی که پیدا کردم رو توی ویرگول نوشتم

https://virgool.io/@mrbug_ir/x-algorithm-open-source-lrmu9j4z7fz2

@DevTwitter | <Alireza Rezaie/>
🔥47👍9👎6
تولدت مبارک پیرمرد قابل اعتماد دنیای لینوکس!
از مرداد ۱۳۷۲ تا امروز Stable مثل همیشه

@DevTwitter | <MehrdadLinux/>
106🔥12👍1
یک دوره‌ی کامل Git از صفر تا حرفه‌ای، شامل ۳۰ بخش:
از مفاهیم پایه (staging area، commit، branch) شروع می‌شه، به merge/rebase/conflict می‌رسه، ابزارهائی مثل stash، cherry-pick، reflog، bisect، submodules و hooks رو پوشش می‌ده، بعد وارد بخش حرفه‌ای می‌شه و..
https://github.com/AsaEdgerunner/git-course-fa

@DevTwitter | <Asa/>
🍌2820👍2