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
اُبسیـدیـن یه برنامه‌ست که تو می‌تونی باهاش همه یادداشت‌هات رو توی یه پوشه‌ی معمولی و به‌صورت فایل مارک‌داون (Markdown) نگه‌داری کنی، بدون نیاز به اینترنت یا سرور خاص.
یه جورایی مثل دفترچه جادوییه که می‌تونی بین نوشته‌هات لینک بزنی، توی یه گراف ببینی چه چیزایی به هم ربط دارن، و با افزونه‌ها خیلی چیزای حرفه‌ای بهش اضافه کنی.
همه چی لوکاله، یعنی اطلاعاتت فقط روی سیستم خودته و هیچ‌جا آپلود نمیشه (مگر اینکه خودت بخوای).
برای کسایی که دنبال ساختن یه "مغز دوم دیجیتال" هستن خیلی عالیه، از دانشجو گرفته تا برنامه‌نویس و نویسنده.
علاوه بر پلاگین‌های فراوون که هر جور قابلیتی بخوای بهش اضافه می‌کنی، حتی خودت می‌تونی پلاگین بسازی و تیم مود (حالت تاریک) هم داره که چشمت خسته نشه.
جدیداً امکاناتی مثل "پایگاه داده" (Bases) اضافه کرده که می‌تونی یادداشت‌هات رو مثل جدول فیلتر و مرتب کنی.
در کل اگه دنبال یه ابزار خفن، سبک و قابل شخصی‌سازی برای نظم دادن به فکرت هستی، Obsidian خیلی می‌چسبه!

https://obsidian.md/

@DevTwitter | <Parsa Parasteh/>
👍4511👎5🔥1
چجوری یه فریمورک ماژولار برای بالا آوردن سرویس‌های بک‌اند طراحی کردم؟
من توی پست‌ قبلیم اشاره کردم که یه فریمورکی برای زبان Golang نوشتم که به توسعه‌دهنده‌ها کمک می‌کنه که سرویس‌های بک‌اندشون رو توی چند ثانیه بالا بیارن.
خواستم بیشتر درباره معماریش و طراحی این فریمورک صحبت کنم.
خب اول از همه مشکلی که می‌خواستم با ساخت این فریمورک حل کنم این بود که تقریبا هر سری پروژه‌هایی که می‌ساختم یه سری کارهای تکراری داشت مثل:
راه‌اندازی HTTP Server
ساخت connection‌های دیتابیس
نوشتن دستی route‌ها
پیاده‌سازی CRUD برای هر entity
پیاده‌سازی Pagination و filter و sort
چون به نظرم میومد که این مراحل اکثراً ثابت هستن، خواستم یه جورایی این مراحل رو حذف کنم. با توجه به این مسئله، سعی کردم که یه طراحی ماژولار واسه این فریمورک در نظر بگیرم.
اولین بخش core :
همونطور که از اسمش معلومه، هسته مرکزی برنامه‌ست و عملاً لایف‌سایکل برنامه رو مدیریت می‌کنه.
توابعی که برای رجیستر کردن HTTP Server و دیتابیس‌ و entity‌ها هستن، در واقع توی این بخش قرار دارن.
بعد از اون ماژول crud:
ماژولیه که handlerها و route‌هامون رو داخلش تعریف شده. handlerها، همون handlerهای ثابتی هستن که برای هر entity داره تعریف میشه.
موارد مختلفی مثل اینکه چجوری باید با query parameterها رفتار بشه و hook های قبل و بعد از عملیات CRUD هم اینجا تعریف شدن.
رجیستر شدن route‌ها هم داخل routes داره اتفاق می‌افته.
سومین بخش ماژول HTTP هستش که دو تا اینترفیس اصلی داره:
یکی برای مدیریت کردن context‌ها
یکی برای مدیریت کردن خود HTTP Server (initialize کردن، رجیستر کردن routeها، استفاده از middlewareها، و در نهایت start کردن HTTP Server) که اگه بخوایم از HTTP Server استفاده کنیم، باید این اینترفیس‌ها پیاده‌سازی شده باشن.
مورد چهارم database :
این بخش هم یه اینترفیس اصلی داره برای انجام عملیات CRUD.
هر دیتابیسی بخوایم استفاده کنیم، باید این اینترفیس رو پیاده‌سازی کرده باشه حتماً.
ماژول آخر هم hooks در نظر گرفتم.
شامل اینترفیس‌هایی میشه که قبل و بعد یه عملیات رو تعریف می‌کنن.
برای مثال:
اگه می‌خواید یه ولیدیشن روی یکی از فیلد‌هاتون قبل از ایجاد شدنش توی دیتابیس داشته باشید، برای همون entity‌تون اینترفیس BeforeCreate رو پیاده‌سازی می‌کنید و این ولیدیشن قبل از insert شدن انجام می‌شه.
سعی کردم خیلی خلاصه توضیح بدم. خوشحال می‌شم نظرتون رو درباره این معماری بدونم و اگر دوست داشتید یه سر به گیت‌هاب پروژه بزنید:
https://github.com/Lumicrate/gompose

@DevTwitter | <Iman Asgari/>
23👎8🔥2👍1
استخراج و پارس داده از مراحل کلیدی ساخت سیستم‌های RAG هست. این ریپازیتوری نوت‌بوک‌هایی برای تست ابزارهای OCR، استخراج جدول و تحلیل نمودار ارائه می‌ده و بنچ‌مارک‌گیری از ابزارهای متن‌باز و ابری رو ساده کرده. حتما یه نگاهی بندازین!
https://github.com/AdemBoukhris457/Docs_Parsing_Techniques

@DevTwitter | <Reza Jafari/>
14👍1
در ویندوز ابزار CPU-Z کاربردی برای دیدن و چک کردن مشخصات سخت‌افزاری سیستم است
در لینوکس CPU-X
https://github.com/TheTumultuousUnicornOfDarkness/CPU-X
بعد از خرید سخت افزار چک کردن مشخصات با این ابزار توصیه میشود

@DevTwitter | <MehrdadLinux/>
👍237👎2🔥1
می‌دونستی می‌تونی به localhost خودت روی اینترنت دسترسی داشته باشی؟
می‌تونی خیلی راحت از راه دور با پروژه کار کنی، تستش کنی یا برای کارفرما بفرستی.
ابزار ngrok به راحتی آب خوردن این کار رو برات انجام می‌ده.
بعد از اینکه نصبش کردی می‌تونی با اجرا کردن یک دستور ساده هر پورتی از localhost که میخوای رو Forward کنی روی یک آدرس اینترنتی.
به طور مثال برای پورت 8000 لازمه که دستور زیر رو داخل ترمینال ngrok اجرا کنی:
ngrok http 8000
این دستور رو که اجرا کنی بهت یک آدرس میده که با باز کردن اون آدرس بصورت آنلاین localhost خودتو میبینی.
هر تغییری هم که روی کد انجام بدی بصورت لحظه‌ای اعمال می‌شه و اصلا نیازی به اجرای دستور دیگه‌ای نیست. انگار که واقعا داری روی localhost‌ خودت خروجی رو می‌بینی.
هر زمان هم که کارت تموم شد می‌تونی سرویس رو Stop کنی.
همچنین بهتون روی پورت 4040 یک ابزار مانیتورینگ می‌ده که می‌تونین درخواست‌هایی که ارسال میشه به localhost و پاسخ‌هایی که localhost برمی‌گردونه با تمام جزئیات ببینین
یکی از اصلی‌ترین کاربردهای این ابزار پیاده‌سازی Webhook هست. بطور مثال شما برای توسعه یک ربات تلگرامی نیاز شدیدی به این ابزار دارین و بدون این ابزار تقریبا نمی‌تونین هیچ کاری بکنین.
اینم بگم که آدرسی که بهتون میده HTTPS هست و از این لحاظ برای استفاده در Webhook ربات مشکلی ندارین.
خلاصه که این ابزار واقعا حرف نداره و رایگان هم هست. فقط حواستون باشه که برای استفاده ازش باید VPN روی سیستم روشن باشه.
از لینک زیر که وب‌سایت رسمی این ابزار هست می‌تونین این ابزار رو دانلود کنید و ازش استفاده کنید. داکیومنت کاملش هم روی همین لینک در دسترسه:
https://ngrok.com

@DevTwitter | <Aida Mortazavi/>
👍378👎4🔥1
تمیز

چیز شیت گیت

@DevTwitter
🔥477👍6👎1
امروز داشتم تو نت میچرخیدم که خوردم به این:
https://github.com/vpetersson/dslf
چیه؟ یه پروژه rust که یه کوتاه‌کننده لینکه، صرفا یه سرور ساده، و دیتاش هم تو csv میریزه
حالا نکتش چیه؟ توش به سایز کم باینری اشاره میکنه که ۵ مگه، و وقتی بیلد کردم واقعا ۵ مگ شد، ولی میشه کمترش کرد؟
یه منبع خوب برای کم کردن حجم فایل باینری تو پروژه‌های rust اینه:
https://github.com/johnthagen/min-sized-rust
طبق راهنماییاش یه سری چیز اضافه میکنم ببینم میشه به زیر ۱ مگ رسید
اول strip رو اضافه میکنم
[profile.release]
strip = true
و بله، cargo build --release الان یه فایل ۴ مگی نشون میده، هورا!
اضافه کردن این خط به پروفایلِ ریلیز، باعث میشه ۰.۶ مگ دیگه هم کم بشه، فعلا یه فایل ۳.۴ مگی داریم
opt-level = "z"
این به کامپایلر میگه که optimization رو برای سایز کمتر باینری انجام بده!

@DevTwitter | <ممد دو آتیشه/>
13👍7👎3🔥1
فارغ التحصیل شدن اینطوریه که نشستم یه cli برای تقویم شمسی نوشتم.
https://github.com/alizmhdi/shamsi-calendar

@DevTwitter | <mhdi/>
🔥41👎16👍4
اپلیکیشن KeySmith برای لینوکس یه رابط گرافیکی ساده برای ساختن و مدیریت کلیدهای SSH در اختیار کاربر قرار میده.
+ دانلود از فلت‌هاب:
https://flathub.org/apps/io.github.tobagin.keysmith

@DevTwitter | <Yaser Shahi/>
👍14👎6🔥1
اگر میخواهید پروفایل گیتهاب خودتون رو خوشگل کنین، میتونین از ابزار Profile Readme Generator استفاده کنین!
یه ویرایشگر آنلاین که مثل صفحه ساز المنتور اما برای پروفایل گیتهاب توسعه داده شده
https://profile-readme-generator.com

@DevTwitter | <MJ/>
👍40👎7🔥1
تولید UUID به صورت رشته‌ای یا عددی در پروژه‌های لاراول

generate():
تولید UUID ساده (string یا int)

generateFor():
تولید UUID منحصربه‌فرد برای مدل Eloquent (بررسی عدم تکرار در دیتابیس)
Https://github.com/TahaaZare/LaravelUuidTool

@DevTwitter | <Taha Zare/>
👍17👎41🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
یک گزارش جدیدو حدود ۷۰ صفحه ای همین چند هفته پیش اومده راجع به وضعیت هوش مصنوعی در ۲۰۲۵ راهنمای سازندگان (2025 State of AI: The Builder’s Playbook). خیلی قشنگ بررسی می‌کنه که دقیقاً چه چیزهایی لازمه تا محصولات هوش مصنوعی رو از ایده تا اجرا و مقیاس‌پذیری برسونیم.
این گزارش بر پایه‌ی یک نظرسنجی اختصاصی در آوریل ۲۰۲۵ از ۳۰۰ مدیر اجرایی در شرکت‌های نرم‌افزاری و همچنین مصاحبه‌های عمیق با رهبران هوش مصنوعی در جامعه ICONIQ تهیه شده — و یک نقشه‌ راه عملی برای تبدیل Gen AI به یک مزیت رقابتی پایدار ارائه می‌ده.
Link: https://iconiqcapital.com/growth/reports/2025-state-of-ai

@DevTwitter | <Mehdi Allahyari/>
👍115🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
نرم‌افزار آزاد LocalSend می‌تونه فایل، فولدر یا حتی متن کپی شده رو از یه کامپیوتر/گوشی به اون یکی بفرسته، فقط کافیه جفتشون به یه Wi-Fi متصل باشن.
برخلاف ایردراپ، همه جا قابل استفاده‌اس و به لطف رمزنگاری، فایل‌ها از گزند راهزن‌ها در امان هستن!

+ دریافت:
https://localsend.org

@DevTwitter | <Yaser Shahi/>
41👍8👎1🔥1
در این ویدیو یوتیوب تلاشم را کردم که روش دیپلوی اپلیکیشنهای fastapi را بوسیله gunicorn , uvicorn و بصورت کانتاینتر کردن توضیح بدم .. دیگه نمیدونم چقدر موفق بودم . البته وسط کار خوابم گرفت دیروز که یه چرتم خوابیدم.
https://www.youtube.com/watch?v=-rQnVtdzxeY

@DevTwitter | <Babak. uk/>
👎2113👍2🔥1
آیا همه افزونه‌های وردپرس شبیه هم هستند؟ نه!
به‌عنوان یک توسعه‌دهنده یا کاربر حرفه‌ای وردپرس، خوبه بدونید که افزونه‌ها فقط همون پلاگین‌های معمولی نیستند که از پیشخوان نصب می‌کنید! بلکه به سه دسته تقسیم میشن !

پلاگین‌های نرمال:
همین افزونه‌هایی که از پیشخوان نصب و مدیریت می‌کنید. برای افزودن قابلیت‌هایی مثل فرم تماس، اسلایدر، فروشگاه و… .

افزونه‌های Drop-in:
فایل‌های PHP خاصی هستند که برای جایگزینی یا ارتقای عملکرد هسته وردپرس استفاده می‌شن و مسیرشون داخل wp-content هست
مثلا db.php برای بهینه‌سازی دیتابیس
یا maintenance.php برای تغییر صفحه تعمیرات سایت
یادتون باشه Drop-in ها تو پیشخوان نمایش داده نمی‌شن!

افزونه‌های MU (Must-Use Plugins):
این افزونه‌ها ضروری و همیشه فعال هستن! قبل از همه پلاگین‌ها و حتی قالب اجرا می‌شن و نمی‌تونید از پیشخوان غیرفعالشون کنید.
مسیرشون؟ wp-content/mu-plugins
-اگر توسعه‌دهنده هستید، حتماً به فکر استفاده از Drop-in و MU Plugin باشید. حرفه‌ای‌ها مسیر پیشخوان رو محدود نمی‌کنن!

@DevTwitter | <Mohammad Mahdi/>
👍13🔥43
جی آی تی JIT یعنی چی؟

در اصل JIT مخفف Just-In-Time compilation هست، یعنی کامپایل هم‌زمان با اجرا. این تکنیک باعث می‌شه که کدهایی که به صورت معمول تفسیر (interpret) می‌شن (مثل PHP یا JavaScript)، در زمان اجرا به کد ماشین تبدیل بشن، و این یعنی اجراشون خیلی سریع‌تر بشه.

مزایای JIT
- سرعت اجرای بهتر
- کاهش مصرف منابع در برخی سناریوها
- عملکرد نزدیک‌تر به زبان‌های کامپایل‌شده (مثل C)

کار JIT در PHP چیه؟
در PHP 8 به بعد، Zend Engine دارای یک JIT Compiler شد. قبل از اون، PHP فقط تفسیر می‌کرد.
کار JIT باعث می‌شه:
بخش‌هایی از کد که زیاد استفاده می‌شن (مثلاً حلقه‌ها یا توابع پرتکرار)، به کد ماشین واقعی تبدیل بشن.
این باعث افزایش سرعت اجرای برنامه‌ها می‌شه، مخصوصاً در کارهای محاسباتی سنگین مثل:
- پردازش تصویر
- بازی‌سازی
- پروژه‌های علمی
- کدهایی که زیاد اجرا می‌شن مثل فریم‌ورک‌ها یا CMSها

@DevTwitter | <Milwad Khosravi/>
👍21🔥75👎4
این Background Agent توی Cursor عجیب غریب خفنه
فک کن بهش یه دستور العمل میدی واسه ساخت ی پروژه بعد در لبتاب رو میبندی و میگیری میخوابی
فردا که پاشدی میبینی پروژت حاضر و آماده شده
درخواست pull request رو قبول میکنی و تمام
فقط حواستون باشه که دستور العمل های خیلی دقیق بهش بدید چون اگه زیاد ازش استفاده کنید هزینه‌ش زیاد میشه
https://docs.cursor.com/background-agent

@DevTwitter | <Hossein Molavi/>
👎44👍115🔥2
من یک برنامه ساده برای تست اتصالتون به اینترنت از طریق پروکسی سیستم نوشتم
به چند تا سایت درخواست میده و تاخیر با هر سایت رو بررسی میکنه
سورس کد و فایل قابل اجرا بدون نیاز به نصب هم قرار گرفته
خوشحال میشم نظرتونو بگید
https://github.com/MRSalavatian/LatencyMonitorTool

@DevTwitter | <محمد صلواتیان/>
27👎7🔥2
فیلترشکنم سوئده، ولی gps گینه‌ی نو رو نشون میده.
خودمم تو ایرانم
فکر کنم جبر مکان که میگن همینه :))

@DevTwitter
👍116🔥21
#لاس صبحگاهی

فکر‌ کنم GPS گوشیم قاطی کرده، آخه تو چشمات گم شدم.

@DevTwitter
1👎151🔥766👍3
This media is not supported in your browser
VIEW IN TELEGRAM
فروشگاه نرم‌افزاری «بازار» برای لینوکس معرفی شد
اوبونتو باز مشغول اختراع چرخ بود که ublue با الهام از Steam و معرفی یه استور ‌متمرکز و مدرن، همه رو غافلگیر کرد!
باید دید جناب Jorge Castro و تیمش بعد از عرضه بازار به همراه bazzite چه برنامه‌ای براش دارن.
https://github.com/kolunmi/bazaar

@DevTwitter | <Yaser Shahi/>
👍30🔥9👎61