🎄 DevTwitter | توییت برنامه نویسی – Telegram
🎄 DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.37K photos
358 videos
6 files
4.11K 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
دوره لیسانس دوست داشتم مسیر یادگیری هم رشته‌ای‌هام رو ببینم و یک ایده کلی ازش داشته باشم. اینجا یه سری از کتاب‌هایی که اون دوره خونده بودم و برام تاثیر گذارتر بودن رو نوشتم

https://amiremohamadi.github.io/posts/cs-roadmap/

@DevTwitter | <AMIR/>
26👎14👍5🔥3
چرا ردیس این‌قدر سریع کار می‌کنه؟
ردیس یه دیتابیس در حافظه است که سرعت خیلی بالایی داره. حالا بیاید ببینیم چرا این‌قدر سریع هست.
۱. داده‌ها تو RAM ذخیره می‌شن
اولین دلیل سرعت ردیس اینه که همه داده‌ها در حافظه RAM ذخیره می‌شن، نه روی دیسک. این یعنی وقتی یه درخواست میاد، ردیس نیازی نداره که داده‌ها رو از روی هارد دیسک بخونه، چون همه چیز داخل حافظه‌س. خواندن از RAM خیلی سریع‌تر از دیسکه. علاوه بر این، ردیس از ساختارهای داده‌ای ساده مثل hash tables، linked lists و skip lists استفاده می‌کنه که همین سادگی باعث می‌شه خیلی سریع‌تر از دیتابیس‌های دیگه عمل کنه.
۲. فقط یک رشته برای همه درخواست‌ها
حالا شاید این سوال پیش بیاد که چرا ردیس از فقط یه thread استفاده می‌کنه؟ معمولاً فکر می‌کنیم استفاده از چندین thread می‌تونه سرعت رو بیشتر کنه، اما در دیتابیس‌های دیگه، این کار باعث درگیری و کندی می‌شه، چون چند thread ممکنه با هم دسترسی به داده‌ها رو به اشتراک بذارند و قفل‌گذاری بشه. اما ردیس با استفاده از تنها یک thread این مشکل رو حل کرده و خیلی سریع‌تر عمل می‌کنه.
۳. مدیریت درخواست‌ها با I/O Multiplexing
حالا بریم سراغ یکی از بخش‌های جالب ردیس که معمولاً خیلی مورد توجه قرار نمی‌گیره، ولی درواقع دلیل اصلی سرعت بالای ردیسه: I/O Multiplexing. این تکنیک به ردیس این امکان رو می‌ده که بتونه با یه thread تعداد زیادی درخواست رو به‌طور همزمان مدیریت کنه. حالا شاید بپرسید: چطور ممکنه؟
در دیتابیس‌های معمولی، وقتی چندین درخواست به سیستم می‌رسه، معمولاً هر درخواست برای پردازش نیاز به یه thread جداگانه داره. این یعنی سیستم باید چندین thread رو به‌صورت همزمان اجرا کنه و این باعث می‌شه که هم سرعت کاهش پیدا کنه و هم مصرف منابع بیشتر بشه.
اما ردیس با استفاده از I/O Multiplexing این مشکل رو حل کرده. این تکنیک به ردیس این امکان رو می‌ده که فقط با یک thread بتونه همه درخواست‌ها رو مدیریت کنه. چطور؟ اینطور که ردیس از یه مکانیسم پیچیده برای مدیریت ورودی و خروجی (I/O) استفاده می‌کنه. وقتی درخواست‌ها به سیستم می‌رسه، ردیس به‌طور موقت اون‌ها رو نگه می‌داره و به محض اینکه منابع آزاد بشه، جواب می‌ده. به این ترتیب ردیس می‌تونه با یه thread چندین درخواست رو به‌طور همزمان پردازش کنه بدون اینکه منتظر بشه یا منابع رو قفل کنه.
این کار باعث می‌شه که ردیس از نظر سرعت و کارایی خیلی بهتر از سیستم‌هایی باشه که از چندین thread برای پردازش درخواست‌ها استفاده می‌کنن. در واقع I/O Multiplexing به ردیس این امکان رو می‌ده که به‌طور همزمان و با کمترین میزان تأخیر، چندین درخواست رو پردازش کنه و این یعنی سرعت بالا و پاسخ‌دهی سریع.
در نهایت، این تکنیک به ردیس اجازه می‌ده که در مقیاس بزرگ، حتی با تعداد زیادی درخواست هم عملکرد خودش رو حفظ کنه و به طور موثر منابع رو مدیریت کنه. این یعنی هیچ وقت ردیس از پس بار سنگین درخواست‌ها برنمیاد و همیشه سریع و کارآمد باقی می‌مونه.
در نهایت، این ویژگی‌ها باعث می‌شه که ردیس سریع‌ترین و کارآمدترین گزینه برای کار با داده‌ها باشه، به خصوص برای برنامه‌هایی که نیاز به پاسخ‌دهی سریع دارن.

@DevTwitter | <Reza Annabestani/>
👍43👎74🤣3
اینم یک TUI برای گیت‌هاب. خیلی جالبه

https://github.com/dlvhdr/gh-dash

@DevTwitter | <ArashM/>
🔥17👎3👍2
هنوزم دارید احراز هویت رو از صفر می‌نویسید؟ بسه واقعا

احراز هویت کاربر، یه بخش حیاتی ولی گاهاً خسته‌کننده توی پروژه‌های برنامه‌نویسیه. چقدر زمان و انرژی صرف ساختن سیستم ثبت‌نام، ورود، بازیابی رمز عبور و ... می‌کنید؟ وقتشه یه راه حل هوشمندانه رو بشناسید که تمرکزتون رو برمی‌گردونه به جایی که واقعاً باید باشه: کدنویسی ویژگی‌های خفن پروژه!

معرفی Clerk.com:

یه پلتفرم فوق‌العاده‌ست که تمام پیچیدگی‌های مربوط به احراز هویت و مدیریت کاربران رو براتون هندل می‌کنه. دیگه نیازی نیست درگیر ساخت فرم‌های پیچیده، مدیریت توکن‌ها، احراز هویت دو مرحله‌ای و کلی دردسر دیگه باشید. Clerk.com این امکان رو بهتون میده که به سادگی و با چند خط کد، یه سیستم احراز هویت امن و مدرن رو به اپلیکیشن‌هاتون اضافه کنید.

چرا Clerk.com برای برنامه‌نویس‌ها عالیه؟

سرعت و سهولت یکپارچه‌سازی: با کتابخانه‌های آماده برای فریم‌ورک‌ها و زبان‌های برنامه‌نویسی محبوب، خیلی سریع می‌تونید Clerk.com رو به پروژه‌تون اضافه کنید.

امنیت بالا: دیگه نگران آسیب‌پذیری‌های امنیتی مربوط به احراز هویت نباشید. Clerk.com با رعایت به‌روزترین استانداردهای امنیتی، خیال شما رو راحت می‌کنه.

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

پشتیبانی از روش‌های مختلف احراز هویت: ورود با ایمیل، شماره تلفن، حساب‌های شبکه‌های اجتماعی و ...

مدیریت آسان کاربران: داشبورد کاربری ساده و قدرتمند برای مدیریت کاربران و تنظیمات مربوط به اون‌ها.

صرفه‌جویی در زمان و هزینه: با استفاده از Clerk.com، دیگه نیازی به صرف زمان و منابع برای توسعه و نگهداری سیستم احراز هویت اختصاصی ندارید.

به نظر من، اگه یه برنامه‌نویس هستید که دنبال یه راه حل حرفه‌ای و کارآمد برای مدیریت احراز هویت می‌گردید، Clerk.com قطعاً ارزش بررسی داره.

https://clerk.com/

@DevTwitter | <Alireza Fakhar/>
👎124👍23🤣101
تا حالا شده که بخواین خیلی سریع استایل کدهاتون رو مرتب کنید ؟

اینجاست که Laravel Pint به کمکتون میاد این پکیج از ابتدا توی پروژه لاراول هست و نیازی نیست نصب کنیدش و کانفیگ خاصی هم نمیخواد


میتونید با اجرا کردن یه دستور کار رو در بیارین :

./vendor/bin/pint

دیدن خطاهای استایلی فایل ها بدون هیچ تغییری در کد :

./vendor/bin/pint --test

دیدن خطاهای استایلی فایل ها با جزئیات بیشتر

./vendor/bin/pint --test -v

@DevTwitter | <abolfazl hadipour/>
👍26🤣165👎1
@DevTwitter | <Mojtaba Allahkarimi/>

یه موضوعی درباره PHP نسخه 8 که فکر کنم بهش کم توجهی شد JIT باشه.
چی هست حالا؟

همه ما می‌دونیم که PHP یک زبانی تفسیری (interpreted)‌ هست، اما این به چه معناست؟
هر وقت که شما قطعه کدی رو اجرا می‌کنید، چه یک کد کوتاه و ساده باشه.. و چه یک وب اپلیکیشن کامل.. این پروسه از طریق interpreter یا مفسر PHP صورت میگیره

کار این مفسر ها بسیار ساده ست: کدهای PHP رو میگیرند.. تفسیر میکنند و نتایج رو بر می‌گردونند.
این پروسه به طور معمول برای تمام زبان های تفسیری اتفاق میفته. در بعضی از زبان ها ممکنه که برخی از این مراحل حذف بشه; اما در نهایت ایده و روال کلی کار همینه.

حالا اگه یه کد تکراری داشته باشیم که ده بار استفاده شده چی؟
یعنی هر بار دوباره میاد تفسیرش میکنه؟
در حالت عادی بله. اما وقتی JIT میاد وسط جلوی این کار گرفته میشه.
در اینجا JIT میاد یه بار تفسیرش میکنه بعد تبدیلش میکنه به کد ماشین. اینجا سرعت میره بالا
اینطوری پردازش های ما بهینه میشه


یه بنچمارکم از این ویژگی ببینیم:
👍45🤣13🔥5👎2
متاسفانه از پریروز گوگل شروع به بن کردن اکانت های ایرانی‌ها کرده و این واقعا تاسف باره! تو این پست یه نگاهی میندازیم به جایگزین‌های رایگان و Self_hosted برای Google_Analytics

شماره 1 - Matomo (پیشنهادی)
- اپن سورس و مشابه Google Analytics
- نصب روی سرور شخصی
- دارای امکانات پیشرفته و کامل
matomo.org

شماره 2 - Umami
- سبک، ساده و بدون نیاز به کوکی
- نصب آسان با Node.js
- حریم خصوصی محور
https://github.com/umami-software/umami

شماره 3 - Plausible (نسخه رایگان Self-hosted)
- اپن سورس و بسیار سبک
- مناسب برای سایت‌های کوچک و متوسط
plausible.io

شماره 4 - PostHog
- ابزار پیشرفته برای تحلیل رفتار کاربران
- قابلیت Heatmaps و Session Recording
posthog.com

@DevTwitter | <Ali Salehi/>
👍38👎5🔥2🤣2
This media is not supported in your browser
VIEW IN TELEGRAM
#Python

ما می‌تونیم Alien Invasion رو بهتر از همیشه کنیم!
خیلی از شماها توی کامنت‌های یوتیوب و دیسکورد ازم خواسته بودید فضایی برای یادگیری بیشتر، کار روی پروژه‌ها و کسب تجربه در برنامه نویسی فراهم کنم.
منتظر دریافت و ریویو pull request های شما هستم!
https://github.com/MatinAfzal/Alien-invasion

@DevTwitter | <Matin Afzal Asr/>
🔥30🤣4👍2
تا به حال به این فکر کردید که SQL کوعری ای که به MySQL ارسال میکنیم چه مراحلی رو سپری میکنه تا اجرا بشه و نتیجه رو به ما برگردونه؟ من در دیاگرام زیر این مراحل رو براتون کشیدم و بزودی طبق همین دیاگرام میگم که چطور سرعت اجرا شدن کوعری رو زیاد و مراحل رو کمتر کنیم .

@DevTwitter | <Hamideh Alaee/>
👍54👎3🤣1
نسخه جدید Laravel 11.37 منتشر شده و چندتا ویژگی جذاب و کاربردی بهش اضافه شده که میشه گفت تا حدودی کاربردی هستن
۱ - اضافه شدن Trait Dumpable برای Uri
با استفاده از این trait که به تابع dd() همزمان دسترسی داریم که میتونه debug رو برای ساخت Uri ها راحتتر کنه (البته این trait برای Eloquent ها هم وجود داره).
۲ - اضافه شدن تابع is() به کلاس Str
ویژگی جالبی میده و از نوشتن کد های طولانی جلوگیری کرده در واقع برسی میکنه که ورودی اول شبیه به ورودی دوم هستش یا نه که ویژگی های مختلفی داره مثل استفاده کردن از * یا استفاده کردن از ? یا برسی بزرگ و کوچک بودن حروف لاتین بقیه ویژگی ها رو میتونید از منبع همین پست برسی کنید.
۳ - اضافه شدن چندتا Eloquent Relation Methods
اگر بخواهیم شرط های تو در تو بنویسیم با استفاده از ارتباط ها باید از انواع مختلف where استفاده کنیم که یکی از این مدل ها whereDoesntHave هستش مدل مبدا یک یک ارتباط یک به چند داره رو در نظر میگیره و به عنوان مثال هر کاربر میتونه چندین نظر برای محصولات ذخیره کنه و داخل تابع whereDoesntHave میشه این مورد رو اضافه کرد و روی هر نظر هم یک شرط قرار داد به عنوان مثال نظراتی رو برگردون که تایید شدن یا تاریخ ساخت اون ها قبل از یک ماه هستش حالا لاراول اومده یک کلاس جدید قرار داده که خیلی کوتاه تر بشه این موضوع رو هندل کرد یعنی با استفاده از تابع whereDoesntHaveRelation برای دیدن مثال و جزئیات به منبع اخر همین پست را مطالعه کنید.
یک تابع دیگه هم مثل whereDoesntHaveRelation برای ارتباط ها از نوع polymorphic قرار داده (اگر با ارتباط های polymorphic اشنایی ندارید منبع زیر میتونه کمکتون کنه) که اسم تابع مورد نظر whereMorphDoesntHaveRelation هستش
چندتا ویژگی دیگه هم وجود داره و فیکس های مختلفی وجود داره که از منابع زیر میتونید مطالعه کنید.

منبع مربوط به ویژگی های نسخه 11.37
https://laravel-news.com/laravel-11-37-0

@DevTwitter | <Sina Nayebzadeh/>
👍30🤣20🔥51
NeoPaste
یه ابزار خفن برای مدیریت کلیپ‌بورده! باهاش می‌تونی متن‌ها و عکس‌های کپی‌شده پیست کنی. حتی می‌تونی فرمت عکس‌ها رو عوض کنی.
دیگه لازم نیست فایل‌هات تو یه جای پیش‌فرض ذخیره بشه؛ هرچی رو تو همون پوشه‌ای که کار می‌کنی، سیو می‌کنه.

https://github.com/ArioMoniri/NeoPaste

@DevTwitter | <Ario/>
👍27👎9🤣2
سم آلتمان، مدیرعامل OpenAI، اخیراً فاش کرده که شرکت از سرویس اشتراکی ChatGPT Pro با قیمت ۲۰۰ دلار در ماه ضرر می‌کند، چون کاربران بیشتر از حد انتظار از این سرویس استفاده می‌کنن.

با اینکه OpenAI تا حالا حدود ۲۰ میلیارد دلار سرمایه جمع کرده، هنوز به سوددهی نرسیده. پیش‌بینی شده که سال گذشته حدود ۵ میلیارد دلار ضرر کردن، در حالی که درآمدشون ۳.۷ میلیارد دلار بوده.

آلتمان ابراز اطمینان کرده که OpenAI می‌تونه هوش مصنوعی عمومی (AGI) بسازه و گفته تمرکز جدید شرکت روی دستیابی به هوش فوق‌العاده (superintelligence) هست.

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

شراکت OpenAI با مایکروسافت، که ۱۳ میلیارد دلار در این شرکت سرمایه‌گذاری کرده، شامل توافقیه که ۲۰٪ از درآمد OpenAI به مایکروسافت می‌رسه و این موضوع هم روی سوددهی تأثیر گذاشته.

کمپانی OpenAI انتظار داره تا سال ۲۰۲۹ به سوددهی برسه، ولی شرایط مالی فعلی نشون می‌ده که شرکت‌های هوش مصنوعی برای ترکیب نوآوری و مدل‌های کسب‌وکار پایدار، با چالش‌های جدی روبه‌رو هستن.
Link: https://techcrunch.com/2025/01/05/openai-is-losing-money-on-its-pricey-chatgpt-pro-plan-ceo-sam-altman-says/

@DevTwitter | <Mehdi Allahyari/>
🤣38👍256🔥5
پروژه eliza یک فریم ورک برای توسعه AI Agent هست که سهم بازار و کامیونیتی بزرگی داره ، به راحتی به Discord ، Twitter و Telegram وصل میشه ، مدلهای Llama، OpenAI و Grok رو ساپرت میکنه:

https://elizaos.github.io/eliza/

@DevTwitter | <Ehsan Azhdari/>
🔥14👍2
فکر کردی اجرای مدل‌های LLaMA و بقیه به صورت لوکال هنر محسوب میشه؟ فکر کردی کار کردن با ابزارهای Inference LLM و دادن دیتا بهشون کار بزرگیه؟ نه عزیز، کار خفن اینه که خودت مدل لوکال رو روی دیتای خودت Train کنی!

https://github.com/hiyouga/LLaMA-Factory

@DevTwitter | <Diss Obedience/>
🤣36👍205
این پروژه ، یک جعبه ابزار برای ساخت agent با استفاده از LangGraph ، FastAPI و Streamlit بر بستر پایتون و داکر هست:

https://github.com/JoshuaC215/agent-service-toolkit

@DevTwitter | <Ehsan Azhdari/>
👍17🤣2👎1
یکی از کارهای لذت بخش برای خودم، مهندسی معکوس APIها هست.
ابزارهایی مثل Burp Suite کمک کننده هستند ولی خب تنها انتخاب نیست.
در کنار ابزارهای کنونی که دارید، بد نیست که API Parrot هم امتحان کنید.

https://github.com/apiparrot/apiparrot-desktop-releases/releases

@DevTwitter | <Vahid Nameni/>
👍34🔥4🤣2
یه ابزار خیلی جالب open-source از apache که با گولنگ هم نوشته شده برای مدیریت پایگاه دانش و فروم به کار میاد.

Build a Q&A Platform
with Apache Answer

A Q&A platform software for teams at any scale. Whether it’s a community forum, help center, or knowledge management platform, you can always count on Answer.

https://answer.apache.org


میشه بهش پلاگین هم اضافه کرد
https://answer.apache.org/plugins/

@DevTwitter | <Hossein Nazari/>
👍94
ابزاری که بجای شما زحمت تبادل نظر در اینستاگرام را میکشد. اعم از لایک ، کامنت و …

https://github.com/David-patrick-chuks/Riona-AI-Agent

@DevTwitter | <Setareh/>
👍29👎9🔥4
ابزارهای هوش مصنوعی که هیشکی بهت نمیگه چون سکرته !

1. useTrag.com:
یه دستیار باهوش که کدهای برنامه‌نویسیت رو بررسی میکنه و اشکالات رو پیدا میکنه. مثل یه برنامه‌نویس با تجربه عمل میکنه و بهت میگه کجای کارت ایراد داره!

2. Pixyer.AI:
تصویربرداری حرفه‌ای از محصولات رو برات انجام میده. انگار یه عکاس حرفه‌ای داری که عکس‌های تبلیغاتی محصولاتت رو میگیره.

3. CapGo.AI:
این یکی مثل یه اکسل خیلی باهوشه! میتونه خودش داده‌ها رو تحلیل کنه و گزارش‌های هوشمند بهت بده.

4. Averi.ai:
مدیر بازاریابی دیجیتال شخصیته! استراتژی‌های بازاریابی رو طراحی میکنه و کمپین‌هات رو مدیریت میکنه.

5. GiddyGiddy.com:
یه همراه مجازی که باهات چت میکنه و حرف میزنه. مثل یه دوست که همیشه در دسترسه!

6. TableSprint.com:
کمکت میکنه سریع و راحت اپلیکیشن بسازی، بدون اینکه نیاز به دانش فنی زیادی داشته باشی.

7. Kusho.AI:
یه ابزار تست هوشمند که مسیرهای مختلف نرم‌افزارت رو چک میکنه تا مطمئن شی همه چیز درست کار میکنه.

8. PricingMaker.com:
قیمت‌گذاری محصولات و خدماتت رو هوشمندانه انجام میده. با تحلیل بازار، بهترین قیمت رو پیشنهاد میده.

9. SmartLeadMagnet.com:
محتوای جذاب و ارزشمند تولید میکنه که بتونی باهاش مشتری جذب کنی - مثل کتاب‌های الکترونیکی یا راهنماها.

10. PodLM.ai:
پادکست تولید میکنه! میتونه متن رو به پادکست تبدیل کنه یا حتی محتوای پادکست رو خودش بسازه.

خب رفیق، اینا ابزارهای جدید و باحالی هستن که میتونن خیلی از کارهات رو راحت‌تر کنن. البته حواست باشه که هر کدوم رو قبل از استفاده تو کسب و کارت خوب تست کنی تا مطمئن شی برات مفیده.

@DevTwitter | <Safakaram/>
👍44👎10🔥6🤣6
وقتی تو مرورگر google.com رو تایپ میکنی چه اتفاقی میوفته

@DevTwitter
👍64🤣11🔥42
بررسی دو مفهوم stateful و stateless توی طراحی سیستم ها بخصوص توی وب و api ها

این روش ها هرکدوم مزایا و معایب خودشونو دارن که من چند تاشو میگم

1- دارای حالت (stateful) : توی یک سیستم دارای حالت ، سرور میاد و اطلاعاتی که مربوط به وضعیت کاربر میشن رو ذخیره میکنه داخل session ؛ برای مثال وقتی وارد یک سایت فروشگاهی میشیم اطلاعاتی مثله (سبد خرید ، احراز هویت و ...) به دست سرور توی session ما ذخیره میشن.

از مزایای این روش اینه که مناسبه برای سیستم هایی که نیاز به پیگیری وضعیت کاربر دارن مثل (بازی ها ، چت ها ، سبد خرید و ....)

معایبش هم اینه که باید منابع بیشتری مصرف کنید و مقیاس پذیری سخت تری داره


2- بی حالت (stateless) : توی این مدل سیستم ها هیچ اطلاعاتی از درخواست های قبلی کاربر ذخیره نمیشن توی session. و هر درخواست مستقل از درخواست قبلی ارسال میشه و همه ی اطلاعات مورد نیاز باید توی همون درخواست دریافت بشه.


مزایای این روش سرعت بیشتری که داره هست چون نیاز ندارید به session دسترسی داشته باشید و مقیاس پذیری بالایی داره

معایب هم می تونیم به مدیریت پیچیده ای که ممکنه برای حفظ وضعیت کاربر ها ایجاد بشه اشاره کنیم و همینطور به ارسال اطلاعات تکراری و اضافی در هر درخواست اشاره کنیم.

@DevTwitter | <Ali/>
👍525👎1