اگر شما هم توسعه دهنده وردپرس هستید و از اینکه ساعت ها وقت بزارید هی از این تب به اون تب مرورگر برید که داخل دایکومنت وردپرس بگردید، امروز ی خبر خوب دارم، با استفاده از اکستنشن Search WordPress Docs میتونید خیلی راحت فقط با انتخاب فانکشنتون و کلیک راست کردن و سپس انتخاب گزینه search همون لحظه داخل vscode داکیومنت و توضیحات اون فانکشن رو از مخزن خود وردپرس ببینید.
لینک اکستنشن :
https://marketplace.visualstudio.com/items?itemName=yogensia.searchwpdocs
@DevTwitter | <Amirreza Heydari/>
لینک اکستنشن :
https://marketplace.visualstudio.com/items?itemName=yogensia.searchwpdocs
@DevTwitter | <Amirreza Heydari/>
👍22🔥6❤3
انتخاب زیرساخت مناسب برای دیپلوی پروژهها؛ فقط یک تصمیم فنی نیست، بلکه نیازمند یک تصمیم استراتژیکه.
امروزه، با گسترش ابزارهای کانتینرسازی، معمولاً سه گزینه هست که بیشتر از همه به چشم میاد:
Docker Compose
+ عالی برای توسعه و محیطهای لوکال
+ ساده، سریع و بدون نیاز به منابع زیاد
- مناسب نبودن برای پروژههای High Availability
Docker Swarm
+ راهحلی سریع برای مقیاسبندی ساده روی چند سرور
+ راهاندازی راحتتر نسبت به Kubernetes
- امکانات محدود نسبت به مباحث پیشرفته
- خود داکر بیشتر به Kubernetes اهمیت میده
Kubernetes (K8s)
+ استاندارد بازار کار برای مقیاسبندی، پایداری، و مدیریت سیستمهای بزرگ
+ Self-Healing، Load Balancing پیشرفته، و مقیاسپذیری بینهایت
+ اکوسیستم قدرتمند از ابزارها (CI/CD, Monitoring, Security)
- نیازمند تخصص بیشتر
- پیچیدگی در راهاندازی اولیه
اما در دنیای واقعی چه اتفاقی میوفته؟
Docker Compose بیشتر برای توسعهی لوکال یا پروژههای کوچک استفاده میشه.
Docker Swarm به تدریج جایگاه خودش رو از دست داده و کمتر در پروژهها دیده میشه.
Kubernetes به استاندارد اصلی بازار کار تبدیل شده؛ به طوری که همه به نوعی روی Kubernetes تاکید میکنن.
به عنوان نتیجهگیری نهایی و البته نظر شخصی:
هیچ ابزاری به خودی خود بهترین نیست.
بهترین انتخاب، ابزاری است که با نیازهای امروز و چشمانداز فردای پروژه هماهنگ باشه.
ولی اگر به فکر آینده شغلی، رشد و مقیاسپذیری هستی، باید Kubernetes رو جدی بگیری.
@DevTwitter | <Farzin Shams/>
امروزه، با گسترش ابزارهای کانتینرسازی، معمولاً سه گزینه هست که بیشتر از همه به چشم میاد:
Docker Compose
+ عالی برای توسعه و محیطهای لوکال
+ ساده، سریع و بدون نیاز به منابع زیاد
- مناسب نبودن برای پروژههای High Availability
Docker Swarm
+ راهحلی سریع برای مقیاسبندی ساده روی چند سرور
+ راهاندازی راحتتر نسبت به Kubernetes
- امکانات محدود نسبت به مباحث پیشرفته
- خود داکر بیشتر به Kubernetes اهمیت میده
Kubernetes (K8s)
+ استاندارد بازار کار برای مقیاسبندی، پایداری، و مدیریت سیستمهای بزرگ
+ Self-Healing، Load Balancing پیشرفته، و مقیاسپذیری بینهایت
+ اکوسیستم قدرتمند از ابزارها (CI/CD, Monitoring, Security)
- نیازمند تخصص بیشتر
- پیچیدگی در راهاندازی اولیه
اما در دنیای واقعی چه اتفاقی میوفته؟
Docker Compose بیشتر برای توسعهی لوکال یا پروژههای کوچک استفاده میشه.
Docker Swarm به تدریج جایگاه خودش رو از دست داده و کمتر در پروژهها دیده میشه.
Kubernetes به استاندارد اصلی بازار کار تبدیل شده؛ به طوری که همه به نوعی روی Kubernetes تاکید میکنن.
به عنوان نتیجهگیری نهایی و البته نظر شخصی:
هیچ ابزاری به خودی خود بهترین نیست.
بهترین انتخاب، ابزاری است که با نیازهای امروز و چشمانداز فردای پروژه هماهنگ باشه.
ولی اگر به فکر آینده شغلی، رشد و مقیاسپذیری هستی، باید Kubernetes رو جدی بگیری.
@DevTwitter | <Farzin Shams/>
👍36👎2
واتس اپ یک ریپو داره با rust برای Crash Dump ها
https://github.com/WhatsApp/crashdump_viewer_cli
@DevTwitter | <ُTagarg/>
https://github.com/WhatsApp/crashdump_viewer_cli
@DevTwitter | <ُTagarg/>
👍12👎6🔥1
اسم این وبسایت Poe.com هستش که خودم تقریبا ۲ سالی میشه که ازش استفاده میکنم. این جا به تعداد انسانهای روی کره زمین بات هوش مصنوعی مثل GPT 4o، Gemini 2.0 Flash، Claude Sonnet و کلی بات خفن دیگه پیدا میکنین و قول میدم دست خالی ازش بیرون نمیاین.
@DevTwitter | <Amirata Khoshbaten/>
@DevTwitter | <Amirata Khoshbaten/>
👎72👍23❤4
اگر از Git استفاده میکنید، احتمالاً با gitignore. آشنا هستید. ولی یه فایل دیگه هم هست به اسم exclude
حالا این دوتا چه فرقی دارن؟
gitignore.
این فایل توی ریشهی پروژه است و برای نادیده گرفتن فایلهایی استفاده میشه که همهی اعضای تیم نباید پیگیریشون کنن. خودش هم commit میشه و داخل repo میمونه.
exclude
مسیرش توی git/info/exclude. هست و فقط روی سیستم شخصی شما تأثیر داره. ایدهآله برای فایلهایی که فقط خودت نمیخوای track بشن، بدون اینکه توی repo دیده بشن.
پس اگر فایل لوکال خاصی داری و نمیخوای توی gitignore. بذاری، برو سراغ exclude
@DevTwitter | <Amir Mohammad Rezvaninia/>
حالا این دوتا چه فرقی دارن؟
gitignore.
این فایل توی ریشهی پروژه است و برای نادیده گرفتن فایلهایی استفاده میشه که همهی اعضای تیم نباید پیگیریشون کنن. خودش هم commit میشه و داخل repo میمونه.
exclude
مسیرش توی git/info/exclude. هست و فقط روی سیستم شخصی شما تأثیر داره. ایدهآله برای فایلهایی که فقط خودت نمیخوای track بشن، بدون اینکه توی repo دیده بشن.
پس اگر فایل لوکال خاصی داری و نمیخوای توی gitignore. بذاری، برو سراغ exclude
@DevTwitter | <Amir Mohammad Rezvaninia/>
1👍104❤12
من نزدیک یک ساله که فریلنسر شدم
.
و اگه بخوام یه جمله بگم که همهچیز رو جمعبندی کنه، اینه:
فریلنسری نه بهتره از کارمندی، نه بدتر! و فقط به این بستگی داره تو به عنوان یه آدم، چی از زندگیت میخوای و چه مدل کاری بهت میسازه.
و اما تجربه من:
- تعادل بین کار و زندگی؟
تقریباً یه افسانهست! مثلاً ساعت ۱۱ شب که همه دارن سریال میبینن یا خوابن، من هنوز پشت سیستمم و دارم طراحی میکنم. گاهی حس میکنم کارم دیگه زندگیمو قورت داده!
- دویدن دنبال پول، ورزش روزانهم شده! پیگیری مداوم برای گرفتن حقالزحمهم یه بخش جدانشدنی از فریلنسریه. حتی الان که دارم اینو مینویسم، هنوز از یه سریا طلب دارم و فکر کنم باید یه دوره حرفهای "چطور پولمو بگیرم" برم!
- استرس قطع شدن همکاری، همیشه تو سرم میچرخه! برخلاف کارمندی که یه قرارداد طولانیمدت داری و خیالت تا حدی راحته، تو فریلنسری همیشه یه گوشه ذهنت میگه: "اگه این پروژه تموم بشه چی؟ اگه دیگه کار بهم ندن چی؟" این فکر مثل یه مهمون ناخونده همیشه باهاته.
اینا چیزاییه که من شخصاً باهاشون دستوپنجه نرم میکنم. ولی خب، فریلنسری فقط اینا نیست؛ یه سری خوبیا هم داره که بستگی به آدمش داره ببینه به معایبش میارزه یا نه.
@DevTwitter | <Narges Ghayoumian/>
.
و اگه بخوام یه جمله بگم که همهچیز رو جمعبندی کنه، اینه:
فریلنسری نه بهتره از کارمندی، نه بدتر! و فقط به این بستگی داره تو به عنوان یه آدم، چی از زندگیت میخوای و چه مدل کاری بهت میسازه.
و اما تجربه من:
- تعادل بین کار و زندگی؟
تقریباً یه افسانهست! مثلاً ساعت ۱۱ شب که همه دارن سریال میبینن یا خوابن، من هنوز پشت سیستمم و دارم طراحی میکنم. گاهی حس میکنم کارم دیگه زندگیمو قورت داده!
- دویدن دنبال پول، ورزش روزانهم شده! پیگیری مداوم برای گرفتن حقالزحمهم یه بخش جدانشدنی از فریلنسریه. حتی الان که دارم اینو مینویسم، هنوز از یه سریا طلب دارم و فکر کنم باید یه دوره حرفهای "چطور پولمو بگیرم" برم!
- استرس قطع شدن همکاری، همیشه تو سرم میچرخه! برخلاف کارمندی که یه قرارداد طولانیمدت داری و خیالت تا حدی راحته، تو فریلنسری همیشه یه گوشه ذهنت میگه: "اگه این پروژه تموم بشه چی؟ اگه دیگه کار بهم ندن چی؟" این فکر مثل یه مهمون ناخونده همیشه باهاته.
اینا چیزاییه که من شخصاً باهاشون دستوپنجه نرم میکنم. ولی خب، فریلنسری فقط اینا نیست؛ یه سری خوبیا هم داره که بستگی به آدمش داره ببینه به معایبش میارزه یا نه.
@DevTwitter | <Narges Ghayoumian/>
👍179❤11👎3🔥3
یه پروژه لاراولی اومد دستم و خواستن که بهش سیستم لاگ اضافه کنن... با خودم گفتم بخوام بشینم spatie log رو به تک تک مدل ها اضافه کنم خیلی زمان میبره...
بخاطر همین کافیه از این متد استفاده کنم تا چیزی حدود 70 یا 80 درصد کار بره جلو و باقیشو با event-listener حلش میکنم
شاید به دردتون خورد
@DevTwitter | <mohammad hossein goli jirandeh/>
بخاطر همین کافیه از این متد استفاده کنم تا چیزی حدود 70 یا 80 درصد کار بره جلو و باقیشو با event-listener حلش میکنم
شاید به دردتون خورد
@DevTwitter | <mohammad hossein goli jirandeh/>
👍23👎2🔥1
یک نقطه کوچیک، یک دنیا دردسر!
یه روز داشتم روی پروژهای کار میکردم که قرار بود از
Let's Encrypt
برای
SSL
استفاده کنه. همه چیز خوب پیش میرفت تا اینکه تأیید مالکیت دامنه به مشکل خورد. هر کاری میکردم، فایلهای
.well-known
در دسترس نبودن!
کلی وقت گذاشتم تا فهمیدم Nginx
بنا به دلایل امنیتی دسترسی به فایلهایی که با نقطه شروع میشن رو مسدود میکنه.
با اضافه کردن یه بلوک
location
مخصوص برای
.well-known،
مشکل حل شد.
پی نوشت: فایلهایی مثل
assetlinks.json
توی همین مسیر قرار میگیرن و برای اپلیکیشنها (مثل اپهای بانکی) خیلی مهمان. پس اگه دیدید اپ نمیتونه تأیید هویت کنه، یه نگاهی به دسترسیهای
.well-known
بندازید.
گاهی یه نقطه کوچیک، کلی راهو بند میاره!
@DevTwitter | <Sajjad Zibafar/>
یه روز داشتم روی پروژهای کار میکردم که قرار بود از
Let's Encrypt
برای
SSL
استفاده کنه. همه چیز خوب پیش میرفت تا اینکه تأیید مالکیت دامنه به مشکل خورد. هر کاری میکردم، فایلهای
.well-known
در دسترس نبودن!
کلی وقت گذاشتم تا فهمیدم Nginx
بنا به دلایل امنیتی دسترسی به فایلهایی که با نقطه شروع میشن رو مسدود میکنه.
با اضافه کردن یه بلوک
location
مخصوص برای
.well-known،
مشکل حل شد.
پی نوشت: فایلهایی مثل
assetlinks.json
توی همین مسیر قرار میگیرن و برای اپلیکیشنها (مثل اپهای بانکی) خیلی مهمان. پس اگه دیدید اپ نمیتونه تأیید هویت کنه، یه نگاهی به دسترسیهای
.well-known
بندازید.
گاهی یه نقطه کوچیک، کلی راهو بند میاره!
@DevTwitter | <Sajjad Zibafar/>
👍43❤4👎2🔥2
کمپانی متا یک ریپو برای فهمیدن تصویر و ویدیوداده بیرون. دو سری داره:
۱- مدلهای Perception Encoder (PE) برای encode عکس و ویدیو.
این خانواده سه نسخه تخصصی داره:
- مدل PE core: مدلی به سبک CLIP برای طبقهبندی و بازیابی تصویر/ویدیو بصورت zero shot
-مدل PE lang: هماهنگسازی vision encoders با مدلهای زبانی بزرگ برای عملکرد قوی در وظایف چندرسانهای
- مدل PE spatial: مناسب برای وظایف پیشبینی متراکم مانند تشخیص، تخمین عمق و ردیابی.
این مدلها از مدلهای پیشرفتهای مانند SigLIP2، InternVideo2، QwenVL2.5 و DINOv2 پیشی گرفتهاند
۲- مدلهای Perception Language Model (PLM). یک مدل زبانی چندرسانهای برای درک دقیقتر تصاویر و ویدیوها:
- ترکیب یک vision encoder با یک دیکودر مدل زبانی با کمتر از ۸میلیارد پارامتر
- آموزش دیده بر روی ۲.۸میلیون جفت پرسشپاسخ ویدیو و کپشنهای مرتبط با فضا و زمان
- معرفی PLM-VideoBench برای ارزیابی درک ویدیو در ابعاد "چی، کجا، کی و چگونه"
این مدلهای جدید برای پیاده سازی انواع اپ که با تصویر/ویدیو هست کاربرد داره.
github.com/facebookresearch/perception_models
@DevTwitter | <Mehdi Allahyari/>
۱- مدلهای Perception Encoder (PE) برای encode عکس و ویدیو.
این خانواده سه نسخه تخصصی داره:
- مدل PE core: مدلی به سبک CLIP برای طبقهبندی و بازیابی تصویر/ویدیو بصورت zero shot
-مدل PE lang: هماهنگسازی vision encoders با مدلهای زبانی بزرگ برای عملکرد قوی در وظایف چندرسانهای
- مدل PE spatial: مناسب برای وظایف پیشبینی متراکم مانند تشخیص، تخمین عمق و ردیابی.
این مدلها از مدلهای پیشرفتهای مانند SigLIP2، InternVideo2، QwenVL2.5 و DINOv2 پیشی گرفتهاند
۲- مدلهای Perception Language Model (PLM). یک مدل زبانی چندرسانهای برای درک دقیقتر تصاویر و ویدیوها:
- ترکیب یک vision encoder با یک دیکودر مدل زبانی با کمتر از ۸میلیارد پارامتر
- آموزش دیده بر روی ۲.۸میلیون جفت پرسشپاسخ ویدیو و کپشنهای مرتبط با فضا و زمان
- معرفی PLM-VideoBench برای ارزیابی درک ویدیو در ابعاد "چی، کجا، کی و چگونه"
این مدلهای جدید برای پیاده سازی انواع اپ که با تصویر/ویدیو هست کاربرد داره.
github.com/facebookresearch/perception_models
@DevTwitter | <Mehdi Allahyari/>
👍14❤1
گوگل یک مدل آزمایشی هوش مصنوعی بنام Sec-Gemini v1 را معرفی کرد که برای بهبود عملیاتهای امنیت سایبری طراحی شده است.
در بیشتر تحلیل ها فقط به قابلیت Threat Intelligent اشاره شده ولی این مدل کارایی فراتر دارد.
به نظرم فشار مضاعفی که روی تیم های دفاعی دارد را بسیار کم می کند.
بر اساس مستندات منتشر شده کاربردهایی که می توان در نظر گرفت:
ارزیابی هوشمند در چرخه CI/CD
با هر بار ارسال کد توسط توسعهدهندگان، Sec-Gemini آسیبپذیریها را در لحظه تحلیل کرده، دلایل اصلی را به زبان ساده توضیح میدهد و آنها را به تهدیدات واقعی جهان ارتباط میدهد.
هوشمندی در انجام وصلهها
همهی آسیبپذیریها اهمیت یکسانی ندارند. Sec-Gemini مشخص میکند کدام CVEها واقعاً در حملات فعال استفاده میشوند و بر این اساس، اولویتبندی برای وصله کردن را با توجه به ریسک واقعی انجام میدهد و نه صرفاً بر اساس امتیاز CVSS.
ارتباط تهدیدات در زمان اجرا
قابلیت رصد فعالیتهای مشکوک
میتوان رفتارهای مشکوک را با TTPs تطبیق داده و تهدیدات را سریعتر شناسایی کرد و قطعا اقدامات مقابلهای را پیشنهاد داد که کارآمد تر هستند.
البته کلی استفاده دیگه هم می تواند داشته باشد.
این مدل هنوز آزمایشی است و فقط با درخواست به گوگل قابل دسترسی است.
https://security.googleblog.com/2025/04/google-launches-sec-gemini-v1-new.html
@DevTwitter | <Vahid Nameni/>
در بیشتر تحلیل ها فقط به قابلیت Threat Intelligent اشاره شده ولی این مدل کارایی فراتر دارد.
به نظرم فشار مضاعفی که روی تیم های دفاعی دارد را بسیار کم می کند.
بر اساس مستندات منتشر شده کاربردهایی که می توان در نظر گرفت:
ارزیابی هوشمند در چرخه CI/CD
با هر بار ارسال کد توسط توسعهدهندگان، Sec-Gemini آسیبپذیریها را در لحظه تحلیل کرده، دلایل اصلی را به زبان ساده توضیح میدهد و آنها را به تهدیدات واقعی جهان ارتباط میدهد.
هوشمندی در انجام وصلهها
همهی آسیبپذیریها اهمیت یکسانی ندارند. Sec-Gemini مشخص میکند کدام CVEها واقعاً در حملات فعال استفاده میشوند و بر این اساس، اولویتبندی برای وصله کردن را با توجه به ریسک واقعی انجام میدهد و نه صرفاً بر اساس امتیاز CVSS.
ارتباط تهدیدات در زمان اجرا
قابلیت رصد فعالیتهای مشکوک
میتوان رفتارهای مشکوک را با TTPs تطبیق داده و تهدیدات را سریعتر شناسایی کرد و قطعا اقدامات مقابلهای را پیشنهاد داد که کارآمد تر هستند.
البته کلی استفاده دیگه هم می تواند داشته باشد.
این مدل هنوز آزمایشی است و فقط با درخواست به گوگل قابل دسترسی است.
https://security.googleblog.com/2025/04/google-launches-sec-gemini-v1-new.html
@DevTwitter | <Vahid Nameni/>
👍17🔥3❤2
تو این ریپو یه سری الگوریتم معروف با پایتون پیادهسازی شده.
هدف آموزشی بوده، پس ممکنه مثل نسخههای استاندارد پایتون بهینه نباشن. با دقت استفاده کنین.
https://github.com/TheAlgorithms/Python
@DevTwitter | <Reza Jafari/>
هدف آموزشی بوده، پس ممکنه مثل نسخههای استاندارد پایتون بهینه نباشن. با دقت استفاده کنین.
https://github.com/TheAlgorithms/Python
@DevTwitter | <Reza Jafari/>
👍20❤1
چرا سرعت جنگو بینظیر است؟
وقتی صحبت از توسعهی سریع و مقیاسپذیر وباپلیکیشنها به میان میآید، جنگو (Django) یکی از بهترین انتخابهاست. این فریمورک پایتون به لطف ساختار «همه چیز آماده» (Batteries Included)، به توسعهدهندگان اجازه میدهد در کوتاهترین زمان ممکن پروژههای پیچیده را پیادهسازی کنند.
برخی از دلایل سرعت بالای توسعه با جنگو:
- قابلیتهای داخلی قوی: مدیریت کاربران، احراز هویت، پنل ادمین، ارسال ایمیل و بسیاری امکانات دیگر بدون نیاز به ابزار جانبی.
- ساختار پروژه منظم: کمک میکند تیمهای توسعه سریعتر و بدون سردرگمی کار کنند.
- امنیت داخلی: مقابله با تهدیداتی مانند SQL Injection، CSRF و XSS به صورت پیشفرض.
جنگو برای پروژههایی که نیاز به رشد سریع دارند، یک انتخاب هوشمندانه است!
@DevTwitter | <Amin Hosseini/>
وقتی صحبت از توسعهی سریع و مقیاسپذیر وباپلیکیشنها به میان میآید، جنگو (Django) یکی از بهترین انتخابهاست. این فریمورک پایتون به لطف ساختار «همه چیز آماده» (Batteries Included)، به توسعهدهندگان اجازه میدهد در کوتاهترین زمان ممکن پروژههای پیچیده را پیادهسازی کنند.
برخی از دلایل سرعت بالای توسعه با جنگو:
- قابلیتهای داخلی قوی: مدیریت کاربران، احراز هویت، پنل ادمین، ارسال ایمیل و بسیاری امکانات دیگر بدون نیاز به ابزار جانبی.
- ساختار پروژه منظم: کمک میکند تیمهای توسعه سریعتر و بدون سردرگمی کار کنند.
- امنیت داخلی: مقابله با تهدیداتی مانند SQL Injection، CSRF و XSS به صورت پیشفرض.
جنگو برای پروژههایی که نیاز به رشد سریع دارند، یک انتخاب هوشمندانه است!
@DevTwitter | <Amin Hosseini/>
👎126👍77🔥3❤1
برای ساخت یک پروژه خوب . باید ساختار خوبی هم داشته باشی
معمولا در زمان اضافه کردن کتابخانه ها به پروژه هیچ اطلاعاتی از اونها درج نمیشه
این باعث میشه خوانایی بیاد پایین . کار تیمی بعضی وقت ها به مشکل بخوره و ...
شما زمان اضافه کردن کتابخانه میتونید یک توضیح مختصری از اون کنارش بنویسید
این کار باعث میشه .
تا شما هربار که میخواید یک کتابخونه اضافه کنید یا جایگزین کنید سری به فایل های کتابخونتون بزنید تو نگاه اول متوجه بشید . و
اگر تیمی کار میکنید . بقیه اجزای تیم متوجه بشن که این کتابخانه برای چه کاری اضافه شده.
@DevTwitter | <M.Mahdi Oskooii/>
معمولا در زمان اضافه کردن کتابخانه ها به پروژه هیچ اطلاعاتی از اونها درج نمیشه
این باعث میشه خوانایی بیاد پایین . کار تیمی بعضی وقت ها به مشکل بخوره و ...
شما زمان اضافه کردن کتابخانه میتونید یک توضیح مختصری از اون کنارش بنویسید
این کار باعث میشه .
تا شما هربار که میخواید یک کتابخونه اضافه کنید یا جایگزین کنید سری به فایل های کتابخونتون بزنید تو نگاه اول متوجه بشید . و
اگر تیمی کار میکنید . بقیه اجزای تیم متوجه بشن که این کتابخانه برای چه کاری اضافه شده.
@DevTwitter | <M.Mahdi Oskooii/>
👍44👎2🔥1
اعتبارسنجی شماره موبایل ایران، مثل حرفهایها!
کوتاه، دقیق، کاربردی
برای اعتبارسنجی شماره موبایل ایرانی، بستگی به نیازت یکی از این ۳ حالت زیر رو میخوای:
1- فقط شماره داخلی بگیری
2- فقط فرمت بینالمللی رو بپذیری
3- یا هر دو رو ساپورت کنی
@DevTwitter | <Mohsen Karimvand/>
کوتاه، دقیق، کاربردی
برای اعتبارسنجی شماره موبایل ایرانی، بستگی به نیازت یکی از این ۳ حالت زیر رو میخوای:
1- فقط شماره داخلی بگیری
2- فقط فرمت بینالمللی رو بپذیری
3- یا هر دو رو ساپورت کنی
@DevTwitter | <Mohsen Karimvand/>
👎40👍22🔥9❤3
تجربهام در مدیریت ۶۰ میلیون ردیف داده روی Excel: از محدودیتهای Laravel تا بازگشت به قدرت Python
در یکی از پروژههای اخیر، با سیلی از اطلاعات — ۶۰ میلیون ردیف داده در قالب 70 فایل Excel — روبرو شدم.
در ابتدا، بهصورت بومی در Laravel تلاش کردم با استفاده از Seeder، Chunking و صفها (Queues) عملیات واردسازی را انجام دهم. اما:
مصرف شدید حافظه باعث کرش مداوم سیستم میشد.
زمان اجرای طولانی حتی برای بخشهای کوچک، سایر فرایندهای سیستم را مختل میکرد.
با وجود پیادهسازی بهینهسازیهای معمول (مثل تنظیم batch size مناسب، استفاده از حافظه اشتراکی و مانیتورینگ صفها)، همچنان گلوگاههای جدی وجود داشت.
در نهایت تصمیم گرفتم ابزار را عوض کنم: انتقال به Python و pandas.
خواندن هر فایل Excel بهصورت Streaming با read_excel و تعیین انواع ستونها از قبل
پردازش دادهها روی DataFrameها با استفاده از توابع برداری (Vectorized Operations)
ذخیرهسازی نهایی دادهها در فرمتهای بهینه (مثل Parquet) قبل از واردسازی به پایگاه داده
نتیجه؟
کاهش ۸۰٪ زمان پردازش
پایداری کامل بدون نیاز به افزایش رم سرور
قابلیت مقیاسپذیری با توزیع کار روی چندین ماشین یا سرویس ابری
درسهای آموخته شده
پایبندی مطلق به یک فریمورک، همیشه بهترین مسیر نیست.
در مواجهه با حجمهای بزرگ داده، گاهی استفاده از زبان یا ابزار تخصصیتر (مثل Python/pandas) راهگشاتر است.
ارزش تسلط بر چند اکوسیستم و انعطاف در انتخاب فناوری، کمتر از تسلط صرف بر یک چارچوب نیست.
@DevTwitter | <erfan katoziyan/>
در یکی از پروژههای اخیر، با سیلی از اطلاعات — ۶۰ میلیون ردیف داده در قالب 70 فایل Excel — روبرو شدم.
در ابتدا، بهصورت بومی در Laravel تلاش کردم با استفاده از Seeder، Chunking و صفها (Queues) عملیات واردسازی را انجام دهم. اما:
مصرف شدید حافظه باعث کرش مداوم سیستم میشد.
زمان اجرای طولانی حتی برای بخشهای کوچک، سایر فرایندهای سیستم را مختل میکرد.
با وجود پیادهسازی بهینهسازیهای معمول (مثل تنظیم batch size مناسب، استفاده از حافظه اشتراکی و مانیتورینگ صفها)، همچنان گلوگاههای جدی وجود داشت.
در نهایت تصمیم گرفتم ابزار را عوض کنم: انتقال به Python و pandas.
خواندن هر فایل Excel بهصورت Streaming با read_excel و تعیین انواع ستونها از قبل
پردازش دادهها روی DataFrameها با استفاده از توابع برداری (Vectorized Operations)
ذخیرهسازی نهایی دادهها در فرمتهای بهینه (مثل Parquet) قبل از واردسازی به پایگاه داده
نتیجه؟
کاهش ۸۰٪ زمان پردازش
پایداری کامل بدون نیاز به افزایش رم سرور
قابلیت مقیاسپذیری با توزیع کار روی چندین ماشین یا سرویس ابری
درسهای آموخته شده
پایبندی مطلق به یک فریمورک، همیشه بهترین مسیر نیست.
در مواجهه با حجمهای بزرگ داده، گاهی استفاده از زبان یا ابزار تخصصیتر (مثل Python/pandas) راهگشاتر است.
ارزش تسلط بر چند اکوسیستم و انعطاف در انتخاب فناوری، کمتر از تسلط صرف بر یک چارچوب نیست.
@DevTwitter | <erfan katoziyan/>
👍66👎6❤3🔥2
این وبسایت پره از پروژههای واقعی با لاراول. دفعه بعد که یکی گفت «کی دیگه لاراول استفاده میکنه؟»، فقط لینک رو بندازین تو صورتش و لبخند بزنین!
https://builtwithlaravel.com/
@DevTwitter | <Milwad Khosravi/>
https://builtwithlaravel.com/
@DevTwitter | <Milwad Khosravi/>
1👎49👍32🔥4❤2
چند روزیه دارم ابزارها مختلف AI رو برای پیادهسازی یک پروژه ساده بررسی میکنم و تا حالا سه ابزار زیر به ترتیب با اختلاف خیلی خوب بودن:
http://bolt.new
http://v0.dev
Gemini professional 2.5
پروژه ویرایشگر مارکداون: https://alirho.github.io/parsiNegar
@DevTwitter | <Alireza/>
http://bolt.new
http://v0.dev
Gemini professional 2.5
پروژه ویرایشگر مارکداون: https://alirho.github.io/parsiNegar
@DevTwitter | <Alireza/>
👍21👎10❤2
یه نکته خفن جنگویی
برای جستجوی تماممتن (Full-Text Search) نیازی به Elasticsearch ندارین!
خیلی راحت میتونید با قابلیت سرچ روی PostgreSQL جستجوی پیشرفته بسازید، با رتبهبندی نتایج و حتی ساپورت غلطهای املایی!
مثال سادهش توی تصویر
چرا این روش خوبه؟
چون مستقیماً روی دیتابیس کار میکنه، سریع و سبکه.
لازم به ذکره برای پروژه های کوچیک تا متوسط گزینه بسیار مناسبیه.
@DevTwitter | <Amir Mohammad Yaghoubi/>
برای جستجوی تماممتن (Full-Text Search) نیازی به Elasticsearch ندارین!
خیلی راحت میتونید با قابلیت سرچ روی PostgreSQL جستجوی پیشرفته بسازید، با رتبهبندی نتایج و حتی ساپورت غلطهای املایی!
مثال سادهش توی تصویر
چرا این روش خوبه؟
چون مستقیماً روی دیتابیس کار میکنه، سریع و سبکه.
لازم به ذکره برای پروژه های کوچیک تا متوسط گزینه بسیار مناسبیه.
@DevTwitter | <Amir Mohammad Yaghoubi/>
1👍49❤4🔥2👎1