بچهها، این روش تعریف اینترفیس خوبهها، ولی یه مشکلی که داره اینه که اگه کامپوننت یه کم بزرگ بشه یا نیاز به پراپرتیهای بیشتری داشته باشه، مدیریت و تغییر اینترفیسها یه خورده دردسر میشه.
راهحل تمیزتر و هوشمندانهتر ارثبری از <React.HTMLAttributes<T!
وقتی از این یوتیلیتی استفاده میکنی، تمام پراپرتیهای عمومی HTML رو بهصورت خودکار توی کامپوننتت داری، بدون اینکه مجبور بشی id, className, onClick و کلی پراپ دیگه رو دستی اضافه کنی. این یعنی کد کوتاهتر، خواناتر و انعطافپذیرتر!
حالا دیگه هر وقت نیاز به پراپرتی جدیدی مثل data-*, role, یا style داشتی، بدون هیچ تغییری در اینترفیس، همهش رو بهصورت اتوماتیک داری.
@DevTwitter | <Liam Paknia/>
راهحل تمیزتر و هوشمندانهتر ارثبری از <React.HTMLAttributes<T!
وقتی از این یوتیلیتی استفاده میکنی، تمام پراپرتیهای عمومی HTML رو بهصورت خودکار توی کامپوننتت داری، بدون اینکه مجبور بشی id, className, onClick و کلی پراپ دیگه رو دستی اضافه کنی. این یعنی کد کوتاهتر، خواناتر و انعطافپذیرتر!
حالا دیگه هر وقت نیاز به پراپرتی جدیدی مثل data-*, role, یا style داشتی، بدون هیچ تغییری در اینترفیس، همهش رو بهصورت اتوماتیک داری.
@DevTwitter | <Liam Paknia/>
👍51❤6👎2
دستورات پیشرفتهتر systemctl برای مدیریت سرویسها در لینوکس
علاوه بر دستورات پایهای، systemctl امکانات قدرتمند دیگری نیز دارد که برای مدیریت حرفهای سرویسها و پردازشهای سیستم ضروری هستند. در ادامه لیستی از دستورات کاربردی و پیشرفته را بررسی میکنیم:
+ مدیریت سرویسها (Services)
- مشاهده وضعیت تمامی سرویسهای در حال اجرا:
- مشاهده وضعیت تمامی سرویسهای فعال و غیرفعال:
- بررسی وضعیت سرویس خاص به همراه لاگهای اخیر:
- اجبار به توقف یک سرویس (Kill کردن سخت یک سرویس):
- مشاهده تمامی وابستگیهای یک سرویس:
- مشاهده سرویسهایی که در هنگام بوت اجرا میشوند:
+ فعال/غیرفعال کردن سرویسها
- فعالسازی یک سرویس برای اجرا در هنگام بوت:
- غیرفعال کردن یک سرویس تا هنگام اجرای دستی:
- ریلود کردن تغییرات در سرویس بدون نیاز به ریاستارت:
- ریست کردن وضعیت یک سرویس:
+ کنترل سطح دسترسی و وضعیت بوت
- مشاهده سطح اجرایی (Runlevel) فعلی:
- تغییر سطح اجرایی به حالت چندکاربره (Multi-User Mode):
- تغییر به حالت اضطراری (Emergency Mode):
- بوت سیستم به حالت ریکاوری:
+ مدیریت لاگها و رخدادها
- مشاهده لاگهای جدید سرویس خاص:
- مشاهده لاگهای سرویس از زمان بوت سیستم:
- مشاهده لاگهای کرنل:
- مشاهده لاگهای جدید در لحظه (مشابه tail -f):
+ خاموش، ریاستارت و خاموشی زمانبندی شده
- خاموش کردن سیستم:
- ریاستارت سیستم:
- ریاستارت زمانبندی شده در 10 دقیقه:
- لغو خاموشی یا ریاستارت برنامهریزیشده:
چرا systemctl مهم است؟
ابزار systemctl یک ابزار قدرتمند برای مدیریت حرفهای سرویسها، بررسی وضعیت سیستم، تنظیمات بوت، لاگها و کنترل پردازشها است. اگر ادمین لینوکس هستید، این دستورات میتوانند شما را در مدیریت بهتر سرور و سرویسهای حیاتی یاری کنند.
@DevTwitter | <Ebrahim Rohani/>
علاوه بر دستورات پایهای، systemctl امکانات قدرتمند دیگری نیز دارد که برای مدیریت حرفهای سرویسها و پردازشهای سیستم ضروری هستند. در ادامه لیستی از دستورات کاربردی و پیشرفته را بررسی میکنیم:
+ مدیریت سرویسها (Services)
- مشاهده وضعیت تمامی سرویسهای در حال اجرا:
systemctl list-units --type=service --state=running- مشاهده وضعیت تمامی سرویسهای فعال و غیرفعال:
systemctl list-units --type=service- بررسی وضعیت سرویس خاص به همراه لاگهای اخیر:
systemctl status nginx --no-pager- اجبار به توقف یک سرویس (Kill کردن سخت یک سرویس):
systemctl kill apache2- مشاهده تمامی وابستگیهای یک سرویس:
systemctl list-dependencies sshd- مشاهده سرویسهایی که در هنگام بوت اجرا میشوند:
systemctl list-unit-files --state=enabled+ فعال/غیرفعال کردن سرویسها
- فعالسازی یک سرویس برای اجرا در هنگام بوت:
systemctl enable mysql- غیرفعال کردن یک سرویس تا هنگام اجرای دستی:
systemctl disable docker- ریلود کردن تغییرات در سرویس بدون نیاز به ریاستارت:
systemctl reload nginx- ریست کردن وضعیت یک سرویس:
systemctl reset-failed apache2+ کنترل سطح دسترسی و وضعیت بوت
- مشاهده سطح اجرایی (Runlevel) فعلی:
systemctl get-default- تغییر سطح اجرایی به حالت چندکاربره (Multi-User Mode):
systemctl set-default multi-user.target- تغییر به حالت اضطراری (Emergency Mode):
systemctl emergency- بوت سیستم به حالت ریکاوری:
systemctl rescue+ مدیریت لاگها و رخدادها
- مشاهده لاگهای جدید سرویس خاص:
journalctl -u nginx --no-pager- مشاهده لاگهای سرویس از زمان بوت سیستم:
journalctl -u sshd --since today- مشاهده لاگهای کرنل:
journalctl -k- مشاهده لاگهای جدید در لحظه (مشابه tail -f):
journalctl -f+ خاموش، ریاستارت و خاموشی زمانبندی شده
- خاموش کردن سیستم:
systemctl poweroff- ریاستارت سیستم:
systemctl reboot- ریاستارت زمانبندی شده در 10 دقیقه:
shutdown -r +10- لغو خاموشی یا ریاستارت برنامهریزیشده:
shutdown -cچرا systemctl مهم است؟
ابزار systemctl یک ابزار قدرتمند برای مدیریت حرفهای سرویسها، بررسی وضعیت سیستم، تنظیمات بوت، لاگها و کنترل پردازشها است. اگر ادمین لینوکس هستید، این دستورات میتوانند شما را در مدیریت بهتر سرور و سرویسهای حیاتی یاری کنند.
@DevTwitter | <Ebrahim Rohani/>
👍31❤8👎1
درباره RefreshToken و AccessToken براتون مطلبی رو آماده کردم تا بیشتر باهاشون آشنا بشیم
وقتی دربارهی رفرش توکن صحبت میکنیم، در واقع داریم دربارهی یه مکانیزم امنیتی حرف میزنیم که به کاربر اجازه میده بدون نیاز به لاگین مجدد، به سیستم دسترسی داشته باشه. این کار با استفاده از دو نوع توکن انجام میشه:
Access Token: یه توکن کوتاهمدت که برای دسترسی به منابع استفاده میشه.
Refresh Token: یه توکن بلندمدتتر که برای گرفتن Access Token جدید استفاده میشه.
مراحل کلی رفرش توکن:
اول:کاربر لاگین میکنه: بعد از لاگین، سرور یه Access Token و یه Refresh Token به کلاینت میده.
دوم:Access Token منقضی میشه: بعد از یه مدت (مثلاً ۱۵ دقیقه)، Access Token دیگه معتبر نیست.
سوم:درخواست جدید با توکن منقضی شده: وقتی کاربر یه درخواست جدید میفرسته، سرور خطای 401 (Unauthorized) برمیگردونه.
چهارم:رفرش توکن فرستاده میشه: کلاینت با استفاده از Refresh Token، یه درخواست به سرور میفرسته و یه Access Token جدید میگیره.
پنجم:درخواست اصلی تکرار میشه: کلاینت درخواست اصلی رو با Access Token جدید دوباره ارسال میکنه.
چطوری با Axios توی پروژهها رفرش توکن رو خودکار کنیم؟
یه مشکلی که همیشه توی پروژههای با احراز هویت پیش میاد، منقضی شدن توکنهاست. کاربر کارش رو میکنه، یهو میبینه خطای 401 میگیره و مجبوره دوباره لاگین کنه!
این کار رو میشه با استفاده از Axios Interceptors به راحتی پیادهسازی کرد. یعنی وقتی توکن منقضی میشه، به جای اینکه کاربر رو به لاگین برگردونیم، یه درخواست جدید برای رفرش توکن میفرستیم و بعد درخواست اصلی رو دوباره ارسال میکنیم. به همین سادگی!
چطوری کار میکنه؟
خطای 401 رو میگیریم: هر وقت سرور بهمون بگه "توکنت تموم شده" (یعنی خطای 401)، وارد عمل میشیم.
رفرش توکن میگیریم: یه درخواست به سرور میفرستیم و با استفاده از Refresh Token، یه توکن جدید میگیریم.
درخواست اصلی رو تکرار میکنیم: توکن جدید رو جایگزین میکنیم و درخواست اصلی رو دوباره ارسال میکنیم.
نکات مهم:
-با کوکیها کار میکنیم: با withCredentials: true مطمئن میشیم که کوکیها (مثل Refresh Token) به درستی ارسال میشن.
-جلوی تلاشهای بیجا رو میگیریم: با یه فلگ ساده (retry_) مطمئن میشیم که فقط یه بار برای رفرش توکن تلاش میکنیم.
-امنیت اولویته: همیشه حواسمون به ذخیرهسازی امن Refresh Token باشه!
این روش نهتنها تجربه کاربری رو بهتر میکنه، بلکه باعث میشه کاربر کمتر با صفحهی لاگین کلنجار بره و کارش رو سریعتر تموم کنه
@DevTwitter | <Soheil Seyyedi/>
وقتی دربارهی رفرش توکن صحبت میکنیم، در واقع داریم دربارهی یه مکانیزم امنیتی حرف میزنیم که به کاربر اجازه میده بدون نیاز به لاگین مجدد، به سیستم دسترسی داشته باشه. این کار با استفاده از دو نوع توکن انجام میشه:
Access Token: یه توکن کوتاهمدت که برای دسترسی به منابع استفاده میشه.
Refresh Token: یه توکن بلندمدتتر که برای گرفتن Access Token جدید استفاده میشه.
مراحل کلی رفرش توکن:
اول:کاربر لاگین میکنه: بعد از لاگین، سرور یه Access Token و یه Refresh Token به کلاینت میده.
دوم:Access Token منقضی میشه: بعد از یه مدت (مثلاً ۱۵ دقیقه)، Access Token دیگه معتبر نیست.
سوم:درخواست جدید با توکن منقضی شده: وقتی کاربر یه درخواست جدید میفرسته، سرور خطای 401 (Unauthorized) برمیگردونه.
چهارم:رفرش توکن فرستاده میشه: کلاینت با استفاده از Refresh Token، یه درخواست به سرور میفرسته و یه Access Token جدید میگیره.
پنجم:درخواست اصلی تکرار میشه: کلاینت درخواست اصلی رو با Access Token جدید دوباره ارسال میکنه.
چطوری با Axios توی پروژهها رفرش توکن رو خودکار کنیم؟
یه مشکلی که همیشه توی پروژههای با احراز هویت پیش میاد، منقضی شدن توکنهاست. کاربر کارش رو میکنه، یهو میبینه خطای 401 میگیره و مجبوره دوباره لاگین کنه!
این کار رو میشه با استفاده از Axios Interceptors به راحتی پیادهسازی کرد. یعنی وقتی توکن منقضی میشه، به جای اینکه کاربر رو به لاگین برگردونیم، یه درخواست جدید برای رفرش توکن میفرستیم و بعد درخواست اصلی رو دوباره ارسال میکنیم. به همین سادگی!
چطوری کار میکنه؟
خطای 401 رو میگیریم: هر وقت سرور بهمون بگه "توکنت تموم شده" (یعنی خطای 401)، وارد عمل میشیم.
رفرش توکن میگیریم: یه درخواست به سرور میفرستیم و با استفاده از Refresh Token، یه توکن جدید میگیریم.
درخواست اصلی رو تکرار میکنیم: توکن جدید رو جایگزین میکنیم و درخواست اصلی رو دوباره ارسال میکنیم.
نکات مهم:
-با کوکیها کار میکنیم: با withCredentials: true مطمئن میشیم که کوکیها (مثل Refresh Token) به درستی ارسال میشن.
-جلوی تلاشهای بیجا رو میگیریم: با یه فلگ ساده (retry_) مطمئن میشیم که فقط یه بار برای رفرش توکن تلاش میکنیم.
-امنیت اولویته: همیشه حواسمون به ذخیرهسازی امن Refresh Token باشه!
این روش نهتنها تجربه کاربری رو بهتر میکنه، بلکه باعث میشه کاربر کمتر با صفحهی لاگین کلنجار بره و کارش رو سریعتر تموم کنه
@DevTwitter | <Soheil Seyyedi/>
👍43❤7👎4
یدونه نرم افزار چت p2p
https://github.com/aminGhafoory/peerchat
برای بازی کردن با webrtc ساختمش
قراره بشه یدونه نرم افزار انتقال فایل بین دو تا سیستم از طریق webrtc
@DevTwitter | <krusty the clown/>
https://github.com/aminGhafoory/peerchat
برای بازی کردن با webrtc ساختمش
قراره بشه یدونه نرم افزار انتقال فایل بین دو تا سیستم از طریق webrtc
@DevTwitter | <krusty the clown/>
👍19
#کوته_نیوز
صبح خبر اومد که جهرمی (وزیر ارتباطات دولت روحانی) گفته یوتیوب و تلگرام تا عید رفع فیلتر میشه.
عصر جهرمی گفت نه بابا به من چه، اونموقع که وزیر بودم به یه ور کسی نبودم، چه برسه الان، منم مثل شما اخبار رو از اینور اونور میشنوم، من فقط گفتم اگر دولت پزشکیان پای حرفش باشه باید تا عید رفع فیلتر کنه.
پرتقال فروش و اینا...
@DevTwitter
صبح خبر اومد که جهرمی (وزیر ارتباطات دولت روحانی) گفته یوتیوب و تلگرام تا عید رفع فیلتر میشه.
عصر جهرمی گفت نه بابا به من چه، اونموقع که وزیر بودم به یه ور کسی نبودم، چه برسه الان، منم مثل شما اخبار رو از اینور اونور میشنوم، من فقط گفتم اگر دولت پزشکیان پای حرفش باشه باید تا عید رفع فیلتر کنه.
پرتقال فروش و اینا...
@DevTwitter
👍92👎5
با Go یک پروژه جدید نوشتم که برای تبدیل فایل های Json به CSV هستش
اگر دارید Go یاد میگیرید / تمرین میکنید / کار میکنید
این ریپازیتوری میتونه کمکتون کنه و به کد هاش نگاهی بکنید
https://github.com/MisaghMomeniB/Json2CSV-Go
@DevTwitter | <Misagh Momeni Bashusqeh/>
اگر دارید Go یاد میگیرید / تمرین میکنید / کار میکنید
این ریپازیتوری میتونه کمکتون کنه و به کد هاش نگاهی بکنید
https://github.com/MisaghMomeniB/Json2CSV-Go
@DevTwitter | <Misagh Momeni Bashusqeh/>
👎39👍23❤7
یک پروژه اندرویدی اوپن سورسه که با clean Arch نوشته شده
سعی کردم توش solid رو رعایت کنم
واسه درک بهتر کلین میتونید یه نگاهی بهش بندازید...
از Ktor و koin هم توش استفاده شده و همچنین برای ui از JetpackCompose استفاده شده
https://github.com/HoseinSadonasl/GitHubUsers
@DevTwitter | <HoseinSadonasl/>
سعی کردم توش solid رو رعایت کنم
واسه درک بهتر کلین میتونید یه نگاهی بهش بندازید...
از Ktor و koin هم توش استفاده شده و همچنین برای ui از JetpackCompose استفاده شده
https://github.com/HoseinSadonasl/GitHubUsers
@DevTwitter | <HoseinSadonasl/>
👍21👎1
الان دستیار کدنویسی Gemini Code Assist رایگان شد.
نسخه GitHub هم داره، میشه با VS Code و JetBrains هم باهاش کار کرد.
https://github.com/apps/gemini-code-assist
@DevTwitter | <Soroush Ahmadi/>
نسخه GitHub هم داره، میشه با VS Code و JetBrains هم باهاش کار کرد.
https://github.com/apps/gemini-code-assist
@DevTwitter | <Soroush Ahmadi/>
👍44🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
اگه دنبال تمرین و یادگیری مسائل ماشین لرنینگ هستید بخصوص برای مصاحبه و شغل این وبسایت را دیدم جالبه! کلی سوال داره که از ساده تا سخت دسته بندی شده و میتونید تمرین کنید.
Link: deep-ml.com
@DevTwitter | <Mehdi Allahyari/>
Link: deep-ml.com
@DevTwitter | <Mehdi Allahyari/>
👍23👎2
آقای Greg Brockman یه راهنما برای پرامپتنویسی مدلهای استدلالی مثل 01 منتشر کرده که میتونه کاربردی باشه.
- هدف: چیزی که میخواین
- فرمت خروجی: فرمت مد نظرتون برای جواب نهایی
-هشدارها: نکاتی که مدل باید حواسش باشه
- زمینه: اطلاعات بیشتر برای افزایش کیفیت خروجی
@DevTwitter | <Reza Jafari/>
- هدف: چیزی که میخواین
- فرمت خروجی: فرمت مد نظرتون برای جواب نهایی
-هشدارها: نکاتی که مدل باید حواسش باشه
- زمینه: اطلاعات بیشتر برای افزایش کیفیت خروجی
@DevTwitter | <Reza Jafari/>
👍50🔥8
این سایت خیلی خوبه! ۵۰۰ نمونه پروژه های دیتاساینس اعم از ML، LLM، ریکامندر سیستم ها و دهها موضوع دیگه که تو صنعت توسط شرکت های معروف پیاده شدن رو جمع کرده.
اگر میخواین یادبگیرین تو صنعت چطوری پروژه های دیتاساینس پیاده میشن این معدن طلا رو از دست ندید!
https://www.evidentlyai.com/ml-system-design
@DevTwitter | <Nima/>
اگر میخواین یادبگیرین تو صنعت چطوری پروژه های دیتاساینس پیاده میشن این معدن طلا رو از دست ندید!
https://www.evidentlyai.com/ml-system-design
@DevTwitter | <Nima/>
🔥18👍9
This media is not supported in your browser
VIEW IN TELEGRAM
موسسه AllenAI یک ابزار اپن سورس OCR معرفی کرده به نام olmOCR برای استخراج متن تمیز از فایلهای PDF!
با این ابزارمیتونید در حجم بالا پردازش انجام بدید، و انواع مختلف اسناد رو با سرعت خیلی بالا مدیریت میکنه. میتونید اون رو به صورت رایگان روی سیستم خودتون اجرا کنی—با سرعت بالای ۳۰۰۰ توکن بر ثانیه، که معادل ۱۹۰ دلار برای هر میلیون صفحه میشه، یا ۱/۳۲ هزینه GPT-4o! (خیلی ارزونتره!)
من روی یک فایل فارسی امتحان کردم خیلی عالی بود کیفیتش.
Link: olmocr.allenai.org
Github: github.com/allenai/olmocr
@DevTwitter | <Mehdi Allahyari/>
با این ابزارمیتونید در حجم بالا پردازش انجام بدید، و انواع مختلف اسناد رو با سرعت خیلی بالا مدیریت میکنه. میتونید اون رو به صورت رایگان روی سیستم خودتون اجرا کنی—با سرعت بالای ۳۰۰۰ توکن بر ثانیه، که معادل ۱۹۰ دلار برای هر میلیون صفحه میشه، یا ۱/۳۲ هزینه GPT-4o! (خیلی ارزونتره!)
من روی یک فایل فارسی امتحان کردم خیلی عالی بود کیفیتش.
Link: olmocr.allenai.org
Github: github.com/allenai/olmocr
@DevTwitter | <Mehdi Allahyari/>
👍31❤7👎2
این قطعا گوگلو عصبانی میکنه، ChatGPT آپدیت جدید یه اکستنسن به سافاری اضافه میکنه که فعالش کنی موتور جستجوی پیشفرض میشه ChatGPT :)
@DevTwitter | <Soroush Ahmadi/>
@DevTwitter | <Soroush Ahmadi/>
🔥103👍5👎5
مایکروسافت Voice و Think Deeper رو داخل کوپایلت نامحدود کرد، بچهها در استفاده کوتاهی نکنید.
copilot.microsoft.com
@DevTwitter | <Soroush Ahmadi/>
copilot.microsoft.com
@DevTwitter | <Soroush Ahmadi/>
🔥73👍13👎5❤2
با C++ یک پروژه جدید روی گیتهاب انجام دادم
این کد یک Weighted Graph رو پردازش میکنه و دو الگوریتم مهم برای کوتاه تری مسیر رو پیادهسازی میکنه
در کل، بهتون کمک میکنه کوتا ترین مسیر در یک گراف رو پیدا کنید
اگر قابل بود Star کنید
https://github.com/MisaghMomeniB/Graph-Pathfinder-Cpp
@DevTwitter | <Misagh Momeni Bashusqeh/>
این کد یک Weighted Graph رو پردازش میکنه و دو الگوریتم مهم برای کوتاه تری مسیر رو پیادهسازی میکنه
در کل، بهتون کمک میکنه کوتا ترین مسیر در یک گراف رو پیدا کنید
اگر قابل بود Star کنید
https://github.com/MisaghMomeniB/Graph-Pathfinder-Cpp
@DevTwitter | <Misagh Momeni Bashusqeh/>
👍42👎14🔥5
یه نفر تو ردیت از Copilot مایکروسافت خواسته بهش یاد بده چطوری ویندوز رو بدون خرید لایسنس فعال کنه، بعد کوپالیت یه دستور PowerShell بهش میده که یه اسکریپت رو از گیتهاب اجرا میکنه و در نهایت باعث فعال شدن ویندوز ۱۱ میشه.
@DevTwitter | <Geek Alerts/>
@DevTwitter | <Geek Alerts/>
🔥155👍15👎7❤6
به صورت کامل اومدم و سیستم asyncio.Queue و asyncio.Event و نحوه ی ساخت سیستم producer && consumer(worker) رو توضیح دادم و مثال نسبتا ساده ای رو نوشتم.
خوشحال میشم بخونید(ریپست و لایک خوشحال ترم میکنه) و نظرتون رو درموردش بهم بگید.
لینک مقاله
@DevTwitter | <Mohammad Sadeghian/>
خوشحال میشم بخونید(ریپست و لایک خوشحال ترم میکنه) و نظرتون رو درموردش بهم بگید.
لینک مقاله
@DevTwitter | <Mohammad Sadeghian/>
👍32👎2
دیپسیک یه سیستم فایل به اسم Fire-Flyer یا همون 3FS ساخته برای خوندن حجم زیادی از دیتاهای سمپل به صورت تصادفی، اون هم توی نودهای محاسباتی موقع آموزش مدلها.
اکثر فایلسیستمهای سنتی برای استفادههای عمومی طراحی شدن اما توی آموزش مدلها، ما معمولا دیتاهارو به صورت تصادفی انتخاب و میخونیم. یعنی چی؟ یعنی اینکه نمیتونیم از تکنیکهای معمولی مثل کش کردن (Read Cache) یا پیشخوانی (Prefetching) استفاده کنیم. چون دیتاهایی که الان خوندیم، به این زودیها دوباره خونده نمیشه. پس این ابزارها اینجا بیفایدهان.
به خاطر همین مسئله خوندن تصادفی مهمه و 3FS اومده و این ویژگیهای کش و پیشخوانی رو کلا حذف کرده. چرا؟ چون هم بیفایده بودن، هم حافظه سیستم رو الکی اشغال میکردن و ممکنه بود روی کارهای دیگه تاثیر منفی بذارن.
بعضیها پرسیدن که چرا از سیستمفایلهای دیگه مثل Ceph یا MinIO و SeaweedFS استفاده نکنیم. جواب سادهست، سرعت. این سیستمها برای این حجم از دیتا و این نوع دسترسی تصادفی طراحی نشدن. اما 3FS تونسته به سرعت ۶.۶ ترابایت بر ثانیه برسه.
https://arxiv.org/html/2408.14158v2
@DevTwitter | <Soroush Ahmadi/>
اکثر فایلسیستمهای سنتی برای استفادههای عمومی طراحی شدن اما توی آموزش مدلها، ما معمولا دیتاهارو به صورت تصادفی انتخاب و میخونیم. یعنی چی؟ یعنی اینکه نمیتونیم از تکنیکهای معمولی مثل کش کردن (Read Cache) یا پیشخوانی (Prefetching) استفاده کنیم. چون دیتاهایی که الان خوندیم، به این زودیها دوباره خونده نمیشه. پس این ابزارها اینجا بیفایدهان.
به خاطر همین مسئله خوندن تصادفی مهمه و 3FS اومده و این ویژگیهای کش و پیشخوانی رو کلا حذف کرده. چرا؟ چون هم بیفایده بودن، هم حافظه سیستم رو الکی اشغال میکردن و ممکنه بود روی کارهای دیگه تاثیر منفی بذارن.
بعضیها پرسیدن که چرا از سیستمفایلهای دیگه مثل Ceph یا MinIO و SeaweedFS استفاده نکنیم. جواب سادهست، سرعت. این سیستمها برای این حجم از دیتا و این نوع دسترسی تصادفی طراحی نشدن. اما 3FS تونسته به سرعت ۶.۶ ترابایت بر ثانیه برسه.
https://arxiv.org/html/2408.14158v2
@DevTwitter | <Soroush Ahmadi/>
👍39🔥4👎1
This media is not supported in your browser
VIEW IN TELEGRAM
ساختن اپلیکیشنهای realtime صوتی و تصویری با استفاده از پروتکل های WebRTC و Websocket خیلی سخته. الان یک لایبرری جدید اومده به اسم FastRTC و عالیه!
بعضی از ویژگیهای کلیدی:
- تشخیص صدا به صورت اتوماتیک و نوبتدهی صحبت
- میتونی هر مدل LLM، صوتی یا تصویری رو بهش وصل کنی
- رابط کاربری خودکار Gradio برای تست کردن
- میتونی برای استفاده توی محیط واقعی، به هر اپلیکیشن FastAPI وصلش کنی
- پشتیبانی از تماس تلفنی
توی ریپو کلی مثال داره! الان میتونید انواع اپلیکیشن های پیشرفته realtime برای صدا و تصویر درست کنید.
Github: https://github.com/freddyaboulton/fastrtc
@DevTwitter | <Mehdi Allahyari/>
بعضی از ویژگیهای کلیدی:
- تشخیص صدا به صورت اتوماتیک و نوبتدهی صحبت
- میتونی هر مدل LLM، صوتی یا تصویری رو بهش وصل کنی
- رابط کاربری خودکار Gradio برای تست کردن
- میتونی برای استفاده توی محیط واقعی، به هر اپلیکیشن FastAPI وصلش کنی
- پشتیبانی از تماس تلفنی
توی ریپو کلی مثال داره! الان میتونید انواع اپلیکیشن های پیشرفته realtime برای صدا و تصویر درست کنید.
Github: https://github.com/freddyaboulton/fastrtc
@DevTwitter | <Mehdi Allahyari/>
🔥27👍17👎3
Forwarded from Afrasiab
This media is not supported in your browser
VIEW IN TELEGRAM
یک پروژه اندرویدی با Clean Arch و اصول solid و تا حدودی ماژولار با کامپوز و هیلت و ktor و رتروفیت با رعایت استاندارد های گوگل
پروژه خیلی تمیزیه و بنظرم میتونه مفید باشه.
لینک گیت هاب :
https://github.com/MahdiPorkar-github/CryptoTracker
@DevTwitter | <Mahdi/>
پروژه خیلی تمیزیه و بنظرم میتونه مفید باشه.
لینک گیت هاب :
https://github.com/MahdiPorkar-github/CryptoTracker
@DevTwitter | <Mahdi/>
👍20👎5