🎄 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
توی پروژه اخیرم که خیلی پیچیده نبود و زمان زیادی نداشتم، از Scribe استفاده کردم برای داکیومنت‌سازی API، و باید بگم با یه دستور ساده:
php artisan scribe:generate
کل داکیومنت تمیز و حرفه‌ای آماده شد!
برای پروژه‌هایی که نمی‌خوای وقت زیادی روی داکیومنت‌سازی بذاری، ولی نتیجه کار باید مرتب و خوانا باشه، Scribe واقعاً گزینه عالی‌ایه.
اگه ابزارای دیگه‌ای می‌شناسین که کار مشابه یا حتی بهتری می‌کنن، خوشحال می‌شم پیشنهاداتتون رو بشنوم.

@DevTwitter | <mohamadali mahboobi/>
👍46🤣13🔥61
معرفی پکیج Laravel OTP Manager در وب سایت Laravel News

https://laravel-news.com/one-time-password-manager-for-laravel

@DevTwitter | <Saleh Hashemi/>
👍214🤣2
مفهوم Race Condition رو تا حالا شنیدی؟!
در واقع به درخواست‌های همزمانی که روی یه اندپوینت مشخص یا یه داده خاص در سیستم ما اتفاق میفته، Race Condition میگن.
این اتفاق معمولاً زمانی رخ میده که چندین درخواست همزمان بخوان روی یک داده مشترک اثر بذارن یا تغییراتی ایجاد کنن، و اگه به درستی مدیریت نشه، می‌تونه منجر به باگ‌های جدی و رفتار غیرمنتظره در سیستم بشه.

چطور Race Condition رو مدیریت کنیم؟
برای رفع این مشکل، من درخواست‌های همزمان رو به دو بخش کلی تقسیم کردم:

۱. همزمانی در لایه اپلیکیشن:
این نوع همزمانی زمانی رخ میده که چندین درخواست همزمان به یک منبع یا عملیات خاص در اپلیکیشن دسترسی پیدا کنن.

راه‌حل پیشنهادی:
از Cache::lock استفاده می‌کنیم. این روش برای ایجاد یک قفل موقت روی منابع مشترک کاربرد داره.
مثلاً با استفاده از Redis می‌تونیم مطمئن بشیم که فقط یک درخواست در یک زمان خاص اجازه دسترسی داره.

۲. همزمانی روی دیتابیس:
اینجا از قفل‌های دیتابیس استفاده می‌کنیم تا درخواست‌های همزمان رو کنترل کنیم:

FOR SHARE:
این نوع قفل وقتی استفاده میشه که فقط می‌خوایم داده رو بخونیم، ولی مطمئن بشیم کسی در همون لحظه نمی‌تونه اون رو تغییر بده.
این قفل اجازه میده درخواست‌های دیگه فقط بخونن ولی هیچ عملیات نوشتن یا دستکاری نمی‌تونه انجام بشه.

FOR UPDATE:
این قفل وقتی استفاده میشه که می‌خوایم داده رو بخونیم و تغییر بدیم.
وقتی این قفل فعال بشه، هیچ درخواست دیگه‌ای نمی‌تونه داده رو حتی بخونه یا تغییر بده تا وقتی که تراکنش فعلی کامل بشه.

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

@DevTwitter | <Saber Qadimi/>
👍22🔥131
کاربری به اسم frosty این سوالات رو تو Stack Overflow پرسیده و FBI هم از طریق این اسمش و کدهایی که تو سایتش استفاده کرده تونسته ردشو بزنه.

فریمورکی که هم که استفاده کرده CodeIgniter پی‌اچ‌پی بوده. یه نفر بهش میگه که چتاشون لو رفته و باید سریع پاکش کنه که اومده سرچ کرده چطوری session رو تو CodeIgniter پاکش کنه.

پ.ن: این کاربر راس ویلیام اولبریکت، بنیان‌گذار سایت خرید و فروش مواد مخ.در در دارک وب به نام Silk Road بود که در اکتبر ۲۰۱۳ تحت عملیاتی مشترک از سوی اف‌بی‌آی، اداره مبارزه با مواد مخدر، وزارت دادگستری و آژانس امنیت ملی دستگیر و به حبس ابد محکوم شد.

پ.ن۲: اگه خواستین جرمی مرتکب بشین، جوابای Stack Overflow رو مستقیم کپی نکنید، خودتون بنویسید

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

@DevTwitter | <Reza Asgharzadeh />
🤣86👍31🔥81
بفرمایید Harper
هارپر یک ابزار بررسی گرامر انگلیسی هست که طبق ادعادی نویسنده‌ش از نظر سرعت و دقت، توان رقابت با Grammarly رو داره!
حریم خصوصی رو رعایت می‌کنه و البته رایگان و کدباز هست.

گیتهاب:
https://github.com/automattic/harper

سایت اصلی:
https://writewithharper.com

@DevTwitter | <Morteza Geransayeh/>
37👍12🔥2🤣2
وقتی ویندوز 98 میزبان هوش مصنوعی می‌شود؛ سفر به گذشته برای آینده!

تصور کنید یک کامپیوتر با Pentium II و فقط 128 مگابایت رم، در حال اجرای یک مدل زبانی مثل Llama 2! تیم EXO Labs این ایده جذاب رو عملی کرده و نتیجه‌اش یه ترکیب شگفت‌انگیز از نوستالژی و تکنولوژیه.

با کمک کد ساده‌ای از آندری کارپاتی، این سیستم می‌تونه با سرعت 35.9 توکن بر ثانیه متن تولید کنه.

فایل‌ها با FTP منتقل می‌شن و کامپایل کدها با ابزارهایی مثل Borland C++ 5.02 انجام شده.
در واقع هوش مصنوعی رو روی کانفیگی بالا آورده که حتی انتقال فایل‌ بهش از طریق USB ممکن نیست
البته کار این تیم جدای از جنبه فانش ، می‌خواد نشون بده هوش مصنوعی نباید فقط در انحصار شرکت‌های بزرگ باشه. این پروژه، قدمیه برای دسترس‌پذیر کردن هوش مصنوعی برای همه!

@DevTwitter | <breaking news/>
👍54🤣124🔥1
در برنامه‌نویسی شیءگرا، انکپسولاسیون یعنی اطلاعات داخل یک شیء مخفی می‌مونه و فقط از طریق متدهای خاصی قابل دسترسی هست این باعث میشه که داده‌ها امنیت داشته باشن و دستکاری نشن. در نتیجه، برنامه ساده‌تر و قابل کنترل‌تر میشه چون هر چیزی در شیء خودش نگه‌داری میشه.
توی 4 زبان مثال زدم ؛

@DevTwitter | <Misagh Momeni Bashusqeh/>
🔥41👍19🤣9👎4
اگه یه میلیون کار داشته باشی و بخوای همزمان اجراشون کنی، ولی فقط 8 تا CPU داری، چه‌جوری بهینه‌ترین حالت رو پیدا می‌کنی؟

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

یه راه خفن برای کنترل این داستان استفاده از Semaphore هست که می‌تونی تعداد گوروتین‌های در حال اجرا رو محدود کنی.

حالا چطور کار می‌کنه؟
1. یه کانال با ظرفیت مشخص (N) درست می‌کنی که این ظرفیت میشه تعداد گوروتین‌های همزمانی که می‌خوای اجرا بشه.

2. کانال رو با N تا "توکن" (هرچیزی مثل عدد) پر می‌کنی.

3. هر گوروتین قبل از اجرا باید یه توکن از کانال بگیره و وقتی کارش تموم شد توکن رو برمی‌گردونه.

4. اگه توکن نباشه گوروتین منتظر می‌مونه تا یکی آزاد بشه.
این تصویر یه مثال ساده با N=2 هست.

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


@DevTwitter | <Mohammad Abdorrahmani/>
👍519🤣3👎1
‏اگر از Socks به عنوان پروکسی استفاده میکنید
میدانید که نرم افزارهای زیادی اجازه استفاده از Socks را به صورت
socks5://[yourip]:[yourport]
نمیدن و نیازه شما http پروکسی داشته باشید gost
github.com/ginuerzh/gost
کارش همینه

@DevTwitter | <MehrdadLinux/>
23👍10🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
ببینید یک ابزارِ کوچک اما کاربردی چقدر می‌تونه کارها رو ساده کنه. با pasteasfile می‌تونید محتوایِ کلیپ‌بورد رو در قالبِ یک فایل پیست کنید. کاش ویندوز این قابلیت رو به صورتِ built-in می‌داشت. لذت بردم.
pasteasfile.org

@DevTwitter | <Ayub Kokabi/>
👍38🤣7
میخواهید برای مصاحبه DevOps آماده بشید ؟
مجموعه ای از سوالات مصاحبه DevOps
interview.devopscommunity.in

@DevTwitter | <MehrdadLinux/>
👍17
#کوته_نیوز

دکتر:
همین روزا درز تلگرامو براتون باز میکنم.

@DevTwitter
🤣85🔥11👍6👎3
This media is not supported in your browser
VIEW IN TELEGRAM
یک ابزار خوب برای دیدن و (پراسس کردن) JSON در ترمینال

fx: Terminal JSON viewer & processor

میتونید با ترکیبش با curl راحت دیتای خروجی API ها رو تو ترمینال بررسی کنید
سرعت خیلی خوبی هم داره.

لینک پروژه در گیتهاب:
https://github.com/antonmedv/fx
لینک وبسایت و داکیومنت:
https://fx.wtf/

@DevTwitter | <Ashkan Nourzadeh/>
👍191
واقعا فکر‌ نمیکردم کار کردن با پروتکل torrent اینقدر سخت باشه بیش از اندازه بزرگه :))
ولی کلی چیز باهاش یادگرفتم. تا بخش خوبی جلو بردمش و الان با گرفتن فایل تورنت یا مکنت لینک میتونه تا دانلود پیش بره.
https://github.com/Soroushsrd/Torrs

@DevTwitter | <Soroush Sardashti/>
🔥34👍10
نسخه Vite 6 منتشر شد!

ویت 6 با معرفی API محیطی جدید، انعطاف‌پذیری بیشتری را برای توسعه‌دهندگان فراهم می‌کند و امکان تجربه توسعه نزدیک‌تر به محیط تولید را میسر می‌سازد. همچنین، پشتیبانی از Node.js 18، 20 و 22+ حفظ شده و پشتیبانی از نسخه 21 حذف شده است.

https://code-news.com/p/vite-6-released

@DevTwitter | <Code News/>
👍31🔥3🤣3
شاید تعجب کرده باشید که چرا در خیلی از کنفرانس های JavaScript جای این عبارت از js و ecmanoscript استفاده میکنن..
دلیلش اینه که آقای oracle که sun microsystems رو خرید تریدمارک JavaScript رو هم در نتیجه ش صاحب شد.
حالا آقای ryan dahl که سازنده nodejs و deno هست چند وقتی هست گیر داده به oracle که تریدمارک JavaScript رو کنسل کنه که دیگه به عنوان یه کلمه عمومی همه بتونن ازش استفاده کنن. سفت و سخت پیگیره..

@DevTwitter | <Hossein Nazari/>
27🤣11👍8
ساختار داده‌ای جدول هش (Hash Table Data Structure):

هشینگ (Hashing) یکی از ساختارهای داده‌ای مهم و کارآمد است که برای انتساب یک مقدار به یک کلید خاص استفاده می‌شود. این فرآیند از طریق یک تابع هش انجام می‌شود. هدف اصلی این ساختار، دسترسی سریع‌تر به عناصر با استفاده از این کلیدها است. کارایی هشینگ به شدت به طراحی و کارایی تابع هش وابسته است، به طوری که تابع هش باید برخوردها (Collisions) را به حداقل برساند و داده‌ها را به صورت یکنواخت در جدول توزیع کند.

فرض کنید یک تابع هش H(x) مقدار x را در شاخص x % 10 در یک آرایه ذخیره می‌کند.
به عنوان مثال، اگر لیست مقادیر [11,12,13,14,15] باشد، این مقادیر در موقعیت‌های {1,2,3,4,5} در جدول هش ذخیره خواهند شد.

موارد استفاده از ساختار داده‌ای جدول هش(Hash Table Data Structure):

1-ساختارهای داده‌ای برای جستجو و بازیابی سریع:
به طور گسترده در پیاده‌سازی دیکشنری‌ها (مثل Dictionary در Python یا HashMap در Java و C#) استفاده می‌شود.

2-مدیریت پایگاه داده‌ها:
برای نگهداری ایندکس‌ها در پایگاه داده‌ها، جدول‌های هش به منظور دسترسی سریع به رکوردها استفاده می‌شود.

3-سیستم‌های کش (Caching):
برای ذخیره و بازیابی داده‌ها در سیستم‌های کش با سرعت بالا، مانند Memcached.

4-سیستم‌های تشخیص کلمات تکراری:
در پردازش زبان طبیعی (NLP) و بررسی متون برای ذخیره مجموعه‌ای از کلمات و بررسی وجود یا عدم وجود آن‌ها.

5-مدیریت حافظه:
برای مدیریت سریع تخصیص و آزادسازی حافظه.

6-حل مسائل با زمان‌بندی مناسب:
مانند تشخیص مقادیر تکراری در یک آرایه یا نگاشت یک مقدار به کلید برای مرتب‌سازی و جستجو سریع.

7-شبکه‌های کامپیوتری:
در مسیریابی و کش DNS برای ذخیره آدرس‌های IP و نام دامنه‌ها.

مزایا:

1-سرعت بالا در جستجو و بازیابی.
2-کارایی مناسب برای داده‌های بزرگ.
3-انعطاف‌پذیری در ذخیره‌سازی جفت‌های کلید-مقدار.
4-پیاده‌سازی ساده و گسترده در زبان‌های برنامه‌نویسی.

چالش‌ها:

1-مدیریت برخوردها (Collisions).
2-طراحی مناسب و کارآمد تابع هش.
3-هزینه افزایش اندازه جدول هش (Resizing).
4-مصرف بیشتر حافظه برای کاهش برخوردها.
5-حساسیت به کیفیت کلیدهای ورودی.

@DevTwitter | <Hossein Vaezzadeh/>
👍284🤣2🔥1