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
حتماً برات پیش اومده یه آبجکت یا آرایه بزرگ داری که توش کلی مقدار null، undefined، رشته خالی و صفر قاطی داده‌های درستت شده!
موقع ارسال به سرور، ذخیره تو دیتابیس یا تمیز کردن خروجی API، همین داده‌های اضافی گاهی باعث کلی دردسر می‌شن، از validation error گرفته تا حجم اضافه و باگ‌های عجیب.

اینجا دقیقاً کاریه که deep-cleaner-js برات انجام می‌ده.

- همه‌ی مقدارهای اضافی (null، undefined، ""، 0) رو پاک می‌کنه.
- داده‌هات رو deep تمیز می‌کنه، حتی اگه چند سطح تودرتو باشن.
- انواع خاص مثل Date، RegExp، Map، Set، Buffer رو خراب نمی‌کنه.
- از TypeScript پشتیبانی کامل داره و کاملاً قابل تنظیمه.
- هیچ وابستگی خارجی نداره (Zero dependencies).
- ساختارش به‌صورت امن نوشته شده و از Circular reference هم نمی‌ترسه.

- نسخه جدید (2.1.1) کلی بهینه‌سازی داره، سرعت بالاتر رفته و تست‌های جامعی براش نوشته شده (بیش از ۵۰ تست مختلف).

خلاصه: هر وقت خواستی قبل از ارسال دیتا، ذخیره‌سازی، یا پاکسازی نتیجه‌ی API، ساختار داده‌هات رو تمیز و مرتب کنی، این کتابخونه دقیقاً همونه که دنبالش بودی!

https://www.linkedin.com/pulse/deep-cleaner-v211-here-clean-your-data-like-pro-mohammad-rostami-7evdc/


@DevTwitter | <Mohammad/>
11👍8👎2🔥1
برای تست API همیشه Postman هست که به کارمون بیاد اما اینکه شما نیاز به agent داری یا بار سنگینی که رو سیستم میندازه و... ممکنه یکم تو مخی باشه چون بنظر خودم برای پروژه های کوچیک که تیم بزرگی هم روش کار نمیکنن زیادی سنگین و اضافیه!
خب ابزار جایگزین زیاد هست و حتی اکستنشن هایی هم داریم اما بنظرم بازم نقص هاشون بیشتر از مزایاشون هست
تو یه مقاله با Requsetly آشنا شدم که بنظرم میتونه برای پروژه های لوکال و کوچیک به کار بیاد و حافظه سیستم رو بیخودی اشغال نمیکنه
https://requestly.com/

@DevTwitter | <Ali Palvaneh/>
👍197👎4🔥1
اگر تجربه خوبی از Wine و PlayOnLinux نداشتید، Winboat شاید مناسب شما باشد که با الهام از WinApps ایجاد شده و ویندوز به صورت Nested Virtualization داخل Docker اجرا می‌شود.
این جور ابزارها مهاجرت به لینوکس را برای خیلی ها آسان می کنند.
https://github.com/TibixDev/winboat

@DevTwitter | <VAHID NAMENI/>
🔥23👍4
یک تسک نسبتا سخت (برای Ai) دادم به بهترین مدلهایی که الان برای coding مطرح هستند. ازشون تنها با یک پرامپت خواستم نقشه یک خونه رو طراحی کنن (پراپمت در پایین). با کلیک بر لینک زیر میتونید خروجی همشون رو ببینید و مقایسه کنید: https://floor-plan-comparison.netlify.app
این رو ببینید تازه میفهمید واقعا اختلافشون چقدره.
مدل های شرکت کننده:
Opus 4.1 - GLM 4.6 - Sonnet 4.5- GPT 5 Hight- Codex High - Qwen 3 Max - Qwen 3 Coder
--
پرامپت:
Create me a Floor plan for a 1585 sqft land in 3d. Make sure that it has 2 Rooms, 2 washrooms and it should be a usable floor plan. Use HTML,CSS,JS along with Three.JS. Give me just one html file that i can run and view this.

@DevTwitter | <Amin Anvary/>
30🔥12👍2👎2
This media is not supported in your browser
VIEW IN TELEGRAM
معرفی یک ابزار/لایبرری خیلی جالب و به درد بخور به اسم LLM Intercept: یه پراکسی سبک و ساده برای ذخیره و استفاده‌مجدد از درخواست‌های LLM‌هاتون.

تقریباً همه‌ی اپ‌ها دارن از APIهای سازگار با OpenAI استفاده می‌کنن. حالا با LLM Intercept می‌تونید اون تماس‌ها رو ضبط کنید و تبدیلشون کنید به دیتاست برای فاین‌تیون مدل‌های کوچیک‌تر و ارزون‌تر.

ایده‌اش ساده‌ست
مثل همیشه از یه مدل بزرگ (مثلاً GPT-4 یا Claude) توی اپتون استفاده کنید.
ترافیک رو از طریق LLM Intercept عبور بدید تا ورودی و خروجی‌ها به‌صورت شفاف ذخیره بشن.
دیتای جمع‌شده رو به‌صورت Parquet خروجی بگیرید (می‌تونید پرامپت‌های سیستمی رو حذف کنید).
با اون داده‌ها یه مدل کوچیک‌تر مثل Liquid AI LFM2 (از ۳۵۰M تا ۲.۶B) رو فاین‌تیون کنید.
بعد مدل بزرگ رو با مدل خودتون جایگزین کنید. لوکال، خصوصی و تقریباً رایگان.
هدف: کمک به تیم‌ها برای اینکه بتونن از ترافیک واقعی اپشون، مدل‌های کوچیک و بهینه بسازن، بدون دردسر، سریع و اقتصادی.
این خیلی به درد میخوره.
Github: https://github.com/mlech26l/llm_intercept

@DevTwitter | <Mehdi Allahyari/>
👍117🔥1
در حال کد زدن با کمک Sonnet 4.5 هستم و باید بگم عالیه... عالی. کافیه یه کم منطق برنامه‌نویسی و الگوریتم و فلوچارت و طراحی الگوریتم و معماری نرم‌افزار بدونی...

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

برخلاف دیگر انسان-خالقین یا Creatorها، مثل هنرمندان و ادیبان و .... که از آمدن هوش مصنوعی ترسیده‌‌اند... برنامه‌نویسان که خالقین و Creatorهای عصر اطلاعات و ارتباطات هستند، در عصر هوش مصنوعی سرشار از شگفت‌زده بودن هستند.

@DevTwitter | <عادل طالبی/>
👎90👍382🔥1
به‌تازگی با پکیج timeitPro آشنا شدم و واقعا از سادگی و دقتی که در اندازه‌گیری عملکرد توابع داره لذت بردم. فقط با یه دکوراتور ساده می‌تونی بفهمی هر تابع چقدر زمان، CPU و حافظه مصرف می‌کنه و نتایجش هم به‌صورت JSON ذخیره می‌شن تا بعداً بتونی تحلیلشون کنی. حتی یه داشبورد تحت وب داره که نتایج رو به شکل نمودار نشون می‌ده و مقایسه اجراها رو خیلی راحت می‌کنه. برای من که همیشه دنبال ابزار سبک و قابل اعتماد برای پروفایلینگ بودم، timeitPro دقیقاً همون چیزیه که لازم داشتم. پیشنهاد می‌کنم حتماً یه بار امتحانش کنید.


https://github.com/farahbakhsh3/timeitPro

@DevTwitter | <Dr. Amin Farahbakhsh/>
👍204👎4🔥2
این ریپو لیستی از منابع برای یافتن کار ریموت:
Awesome Remote Job

@DevTwitter | <Mohammad/>
👍12👎53
آیا PHP یک زبان Blocking است؟

توی چند تا از مصاحبه‌های اخیرم این سؤال ازم پرسیده شد که: “PHP blocking هست یا نه؟”
گفتم بد نیست یه بار این موضوع رو دقیق‌تر بررسی کنیم.


زبان PHP ذاتاً thread-blocking هست.
یعنی وقتی یه عملیات I/O انجام می‌دین (مثلاً خوندن فایل، ارتباط با سوکت، یا درخواست شبکه)،
کل پردازش متوقف می‌مونه تا نتیجه اون عملیات برگرده.
به زبان ساده: اگه یه درخواست جدید به همون سرور برسه،
تا زمانی که پردازش درخواست قبلی تموم نشده،
درخواست جدید باید منتظر بمونه.

(FastCGI Process Manager) PHP-FPM

وظیفه‌اش اینه که برای هر درخواست، یه child process جدید بسازه
و اون رو به یکی از worker processها بده تا اجرا کنه.
اما نکته مهم اینه که اون پردازشِ داخل worker همچنان blocking هست.
حالا اگه همه‌ی workerها درگیر باشن و تعدادشون به حداکثر تنظیم‌شده برسه،
درخواست جدید باید منتظر بمونه تا یکی از workerها آزاد بشه.

(در نتیجه هنوز هم ما با blocking مواجهیم، فقط به شکل مدیریت‌شده‌تر.)

خب حالا سوالی که پیش ماید که آیا می‌تونیم PHP رو non-blocking کنیم؟
بله، تا حدی میشه!
با این شرط که درخواست‌های I/O (که به کرنل وابسته هستن یا مثلا درخواست مربوط به دیتابیس)
توی thread جداگانه اجرا بشن.
اما این کار نیاز داره که خود برنامه‌نویس thread management رو هندل کنه،
و برای این کار باید Zend extension مربوط به threads فعال باشه.

نکته مهم: PHP-FPM خودش اجازه‌ی استفاده از threadها رو به صورت مستقیم نمی‌ده.

@DevTwitter | <Hossein Salehi/>
👍30👎5🔥43
آقا من همیشه یه چیزی رو مخم بود
اینکه تو الگوریتم های استاندارد و بزرگ رمزنگاری متقارن (AES-CTR و ChaCha20 و...) یه مشکلی دارن و اونم اینه که هر بیت از plaintext دقیقا رو یه بیت از ciphertext اثر میذاره! شما اگر یه بیت رو تغییر بدی، فقط همون بیت تو خروجی تغییر میکنه و خلاصه رابطه بین ورودی و خروجی دقیقا یک بیت به یک بیت هست

درسته که یسری مزایا هم داره (مثلا میشه یه فایل عظیم یا یه stream رو باهاشون رمز کرد) ولی بازم اینکه اصطلاحا diffusion ندارن به نظرم برای کاربرد های حساس و روی متن های نسبتا کوتاه اصلا مناسب نیست.

بخاطر همین نشستم تحقیق کردم و الگوریتم طراحی کردم و رسیدم به MACE :)

بر اساس یه الگوریتم هش کار میکنه (که من BLAKE3 رو انتخاب کردم، ولی اجباری نیست!) و داده ها رو به چانک های ۶۴ بایتی میشکونه و اونها رو با یه فرایند ساده ولی مؤثر رمز میکنه (توضیحات دقیقش تو README پروژه هست)

خلاصه‌ش اینکه این الگوریتم با اینکه بسیار سبک و سریعه، قابلیت های زیادی داره و البته که full diffusion بهتون ارایه میکنه: هر بیت از ورودی رو تغییر بدید کل خروجی زیر و رو میشه!

خوشحال میشم بخونیدش و تستش کنید و نظرتونو بهم بگید:
github.com/MHSarmadi/MACE

@DevTwitter | <محمد حسین سرمدی/>
👍29👎10🔥84
چند روز پیش ام‌سی‌پی Chrome DevTools منتشر شد. یه مشکل کوچیک داشت که نمی‌شد پارامتر --no-sandbox رو به کروم پاس داد برا همین رو بعضی جاها مثلا کانتینرها نمیشد استفاده کرد.
الان یه آپدیت دادن و میشه پارامتر به کروم ارسال کرد و این مشکل حل شد.

https://github.com/ChromeDevTools/chrome-devtools-mcp

الان با یه همچین کانفیگی اوکی شده

@DevTwitter | <Serajoddin Aliabadi/>
1👎96👍2🔥2
اکستنشن Notebook Sidebar یکی از کاربردی ترین افزونه های کروم برای برنامه نویس ها و کاربران مختلف هست. با این افزونه می تونید یادداشت هاتون رو مستقیماً داخل سایدبار مرورگر کروم بنویسید و کار هاتون رو برنامه ریزی کنید.در آپدیت جدید اکستنشن Notebook Sidebar قابلیت های کاربردی جدیدی مثل ایمپورت و اکسپورت یادداشت ها و حالت دارک مود هم اضافه شده.

لینک دانلود از کروم استور:
https://chromewebstore.google.com/detail/notebook-sidebar/fdjcoigfklgjpeplkkdbdicminpimdok

@DevTwitter | <OMid/>
👍14👎3🔥2
بلاخره React از مِتا جدا شد!

بعد بیش از ۱۰ سال، React قراره تحت یه بنیاد مستقل به نام React Foundation اداره بشه ( زیر چتر Linux Foundation )
یعنی از این به بعد تصمیم گیری ها و سرنوشت ری اکت، دیگه فقط دست Meta نیست و جامعه دولوپرها و شرکت‌های دیگه هم تو جهت دهی آینده React نقش دارن!

و این یعنی شفافیت، مشارکت و تنوع بیشتر در توسعه کتابخونه دوست داشتنی ری اکت

بنظرم React داره یه فصل جدید از داستانش رو شروع میکنه…
ری اکت دیگه صرفا پروژه یه شرکت نیست، بلکه نتیجه ی همکاری یه جامعه ی جهانی از دولوپر هاست


@DevTwitter | <Ahmad Ahmad-Nejad/>
👍89🔥147
این پروژه یک وب‌اسکرپر (Web Scraper) ساده و کاربردی است که به شما کمک می‌کنه تغییرات سایت‌ها رو به‌صورت خودکار شناسایی و ذخیره کنید.
با استفاده از این ابزار، می‌تونید چندین وب‌سایت رو زیر نظر بگیرید و هر زمان که محتوای اون ها تغییر کرد، باخبر بشید.

https://github.com/amintatari64/web-scraper

@DevTwitter | <Mat/>
27👍4👎1
دارم سعی میکنم سوالات متداول و مهم از طراحی سیستم که در مصاحبه ها پرسیده میشه و از خودم هم پرسیده شده رو به صورت ویدئو ضبط کنم و کلیدواژهای مهم برای هر سوال رو در حد توان و وقتی که دارم کمی توضیح بدم.

توی هر سوال به موضوعات مهمش بیشتر پرداخته شده که در مصاحبه اهمیت بیشتری داره تا نشون بده از یک سری مفاهیم اون موضوع شناخت دارید.

البته که در هر سوال مطالب زیادی هست ولی سعی کردم هم موارد مهمش توضیح داده بشه و هم ساده باشه.

این پلی لیست در حدود 40 ویدئو هست که به مرور منتشر میشه.
در حال تکمیل پلی لیست های دیگه هم هستم :))
https://www.youtube.com/watch?v=3J-2KRValAA&feature=youtu.be

@DevTwitter | <Mohammad Keshavarz/>
23👍1👎1🔥1
ویژوال استودیوی 2026 توسط مایکروسافت منتشر شد
استفاده کنید و لذت ببرید
- ویژگی های جدید
ادغام با هوش مصنوعی
افزایش سرعت و کارایی
بهبود تجربه کاربری
پشتیبانی از سی شارپ 14 و دات نت 10
بهبود هات ری لود توی asp.net و blazor
بهبود سرعت بیلد و اجرای پروژه ها
انجام اپدیت ها به صورت ماهانه

@DevTwitter | <Säber V/>
2650👎17👍2🔥1
این ریپوی گیت‌هاب مجموعه‌ای از Agentهای آماده در حوزه‌های مختلف داره که می‌تونید مستقیماً توی Claude Code ازشون استفاده کنید.

پوشش گسترده‌ای هم داره — از Full Stack و SEO گرفته تا Code Review، Database و Security.

https://github.com/wshobson/agents

@DevTwitter | <Mohammad/>
9🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
در CSS سه واحد جدید برای Viewport معرفی شده که مشکل ارتفاع در موبایل را حل می‌کنند. پیش‌تر استفاده از ‎100vh‎ باعث می‌شد بخش‌های تمام‌صفحه دقیق نمایش داده نشوند، چون نوار ابزار مرورگر هنگام اسکرول ظاهر یا ناپدید می‌شود و ارتفاع واقعی تغییر می‌کند. حالا با سه واحد جدید این مشکل رفع شده است:

1. lvh (Large Viewport Height)
بیشترین ارتفاع زمانی که نوار ابزار پنهان است.
کاربرد: برای بخش‌های فول‌اسکرین.

height: 100lvh;


2. svh (Small Viewport Height)
کمترین ارتفاع زمانی که نوار ابزار دیده می‌شود.
کاربرد: برای اجزایی مثل هدر یا فوتر ثابت.

height: 100svh;


3. dvh (Dynamic Viewport Height)
ارتفاع پویا بین ‎lvh‎ و ‎svh‎.
کاربرد: برای بخش‌های تطبیقی.

height: 100dvh;


اگر چند بخش ‎100dvh‎ داشته باشید، با ظاهر شدن نوار ابزار ممکن است صفحه بپرد.

جمع‌بندی:

- نمایش ثابت: ‎svh‎
- فول‌اسکرین واقعی: ‎lvh‎
- رفتار تطبیقی: ‎dvh‎

این واحدها جایگزین ‎vh‎ نیستند، بلکه ابزارهایی برای کنترل دقیق‌تر در موبایل‌اند. CSS امروز هوشمندتر و دقیق‌تر شده و کنترل بیشتری بر طراحی رابط‌ها می‌دهد.

@DevTwitter | <Hesam Valizadeh/>
👍338🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی ابزار «قطره‌چکان» (Eyedropper) سایت‌ها از مرز مرورگر رد میشه!

​چند روز پیش داشتم از یک سایت آنلاین Shadow Generator استفاده می‌کردم که متوجه یک نکته عجیب شدم: ابزار قطره‌چکان رنگ اون سایت، علاوه بر فضای داخل مرورگر، به کل دسکتاپ و محیط سیستم عامل من هم دسترسی داشت!
​اولش شک کردم... مگه میشه؟ چطور یک وب‌سایت می‌تونه بدون نصب افزونه، اطلاعات پیکسل رو از خارج از پنجره مرورگر بخونه؟ این که کاملاً خلاف اصول امنیتی مرورگره!
​بعد از کمی تحقیق، متوجه شدم که این قابلیت به‌خاطر یک پیشرفت جدید در دنیای وب به نام EyeDropper API امکان‌پذیر شده.
​ ماجرا از این قراره:
که ​EyeDropper API یک رابط برنامه‌نویسی جدید برای مرورگرهای مبتنی بر کرومیوم (مثل کروم و اج) است.
​این API به سایت‌ها اجازه می‌ده که ابزار بومی (Native) انتخاب رنگ مرورگر رو فعال کنن.

​این قابلیت، مرز بین اپلیکیشن‌های تحت وب و نرم‌افزارهای دسکتاپ رو باریک‌تر کرده و برای ابزارهای طراحی وب (مثل انتخاب‌کننده‌های رنگ یا ویرایشگرهای عکس) واقعاً یک تحول محسوب میشه.
لینک سایت:
https://folge.me/tools/tailwind-shadow-generator

@DevTwitter | <Ali shabani/>
39👍13👎2🔥2
متغیرهای سیستمی در SQL Server
در SQL Server، متغیرهایی که با @@ شروع می‌شوند به عنوان متغیرهای سیستمی شناخته می‌شوند و اطلاعات مهمی درباره وضعیت سرور، کوئری‌ها، تراکنش‌ها و تنظیمات جاری ارائه می‌دهند.
این متغیرها توسط SQL Server مدیریت می‌شوند و کاربر فقط می‌تواند مقادیر آنها را بخواند، نه تغییر دهد.

نکته پرفرمنس: استفاده مکرر از متغیرهای سیستمی روی کوئری‌های سنگین تاثیری مستقیم روی سرعت ندارد، اما بررسی‌های مکرر یا استفاده نادرست در کوئری‌های پیچیده می‌تواند منجر به کدهای نامفهوم یا غیر بهینه شود.

@DevTwitter | <Amirreza Moradi/>
12🔥6
#کدبوک

یکی از جامع‌ترین منابع برای یادگیری عمیق Rust و توسعه سیستم‌های سریع و ایمن:

- توضیح کامل مفاهیم پایه تا پیشرفته مثل ownership و borrowing
- آموزش ساخت نرم‌افزارهای سطح پایین با ایمنی حافظه بالا
- تمرکز بر عملکرد، هم‌زمانی و طراحی کد تمیز
- مناسب برای برنامه‌نویس‌هایی که می‌خوان Rust رو در پروژه‌های واقعی سیستم‌محور به‌کار ببرن


* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.

@DevTwitter
15👍4👎1🔥1