یک استراکچر حرفهای برای react
/𝘀𝗿𝗰
/𝗮𝘀𝘀𝗲𝘁𝘀 --> Images, fonts, and other static files
/𝗰𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁𝘀 --> Reusable components
/𝗰𝗼𝗻𝘁𝗲𝘅𝘁 --> Context API or Redux logic
/𝗱𝗮𝘁𝗮 --> Static data or data models that might be used in the app.
/𝗳𝗲𝗮𝘁𝘂𝗿𝗲𝘀 --> Feature-specific modules.
/𝗽𝗮𝗴𝗲𝘀 --> Page-level components
/𝗵𝗼𝗼𝗸𝘀 --> Custom React hooks
/𝗹𝗮𝘆𝗼𝘂𝘁𝘀 --> App structure components (header, footer).
/𝗹𝗶𝗯 --> External libraries and utilities.
/𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 --> API calls and external services
/𝘀𝘁𝘆𝗹𝗲𝘀 --> Global and component-specific styles
/𝘂𝘁𝗶𝗹𝘀 --> Utility functions and helpers
@DevTwitter
/𝘀𝗿𝗰
/𝗮𝘀𝘀𝗲𝘁𝘀 --> Images, fonts, and other static files
/𝗰𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁𝘀 --> Reusable components
/𝗰𝗼𝗻𝘁𝗲𝘅𝘁 --> Context API or Redux logic
/𝗱𝗮𝘁𝗮 --> Static data or data models that might be used in the app.
/𝗳𝗲𝗮𝘁𝘂𝗿𝗲𝘀 --> Feature-specific modules.
/𝗽𝗮𝗴𝗲𝘀 --> Page-level components
/𝗵𝗼𝗼𝗸𝘀 --> Custom React hooks
/𝗹𝗮𝘆𝗼𝘂𝘁𝘀 --> App structure components (header, footer).
/𝗹𝗶𝗯 --> External libraries and utilities.
/𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 --> API calls and external services
/𝘀𝘁𝘆𝗹𝗲𝘀 --> Global and component-specific styles
/𝘂𝘁𝗶𝗹𝘀 --> Utility functions and helpers
@DevTwitter
4👍63🤣20👎5
اگه شما هم مثل من لینوکسی هستید ، بهتون پیشنهاد میکنم حتماً ترکیب tmux و Oh My Zsh رو امتحان کنید!
چندتا از مزیتها و پلاگین ها که با این ترکیب جذاب ، واقعاً کار رو راحت و لذت بخش میکنه:
باز کردن چندین تب به صورت عمودی و افقی که بدون هیچ مشکلی میتونی بین تب ها با سرعت جابجا بشی
دستورات پرکاربرد رو سریعتر با auto-complete اجرا میکنی
با شخصیسازی محیط، کار کردن توی ترمینال جذابتر میشه و این قابلیت رو داره کهکلی پلاگین برای راحتر کردن کارها نصب کنی .
با پلاگین tmux-resurrect همیشه میتونی همه پنجرهها و تبهای باز رو ذخیره و بازیابی کنی ، حتی بعد از ریبوت سیستم!
با پلاگین zsh-syntax-highlighting، دستورات توی ترمینال مثل یک ادیتور کد رنگی میشن و خطاها رو همون موقع متوجه بشید.
و با tmux-powerline یک استاتوس بار جذاب دارم که همه چیز رو، از ساعت تا وضعیت CPU، نشون میده.
و کلی مثال و پلاگین دیگه که حتما ارزش امتحان کردن داره
این ترکیب ترمینال من رو خیلی کارآمدتر و جذابتر کرده.
حتماً امتحانش کنید!
@DevTwitter | <mohammad hosseinifar/>
چندتا از مزیتها و پلاگین ها که با این ترکیب جذاب ، واقعاً کار رو راحت و لذت بخش میکنه:
باز کردن چندین تب به صورت عمودی و افقی که بدون هیچ مشکلی میتونی بین تب ها با سرعت جابجا بشی
دستورات پرکاربرد رو سریعتر با auto-complete اجرا میکنی
با شخصیسازی محیط، کار کردن توی ترمینال جذابتر میشه و این قابلیت رو داره کهکلی پلاگین برای راحتر کردن کارها نصب کنی .
با پلاگین tmux-resurrect همیشه میتونی همه پنجرهها و تبهای باز رو ذخیره و بازیابی کنی ، حتی بعد از ریبوت سیستم!
با پلاگین zsh-syntax-highlighting، دستورات توی ترمینال مثل یک ادیتور کد رنگی میشن و خطاها رو همون موقع متوجه بشید.
و با tmux-powerline یک استاتوس بار جذاب دارم که همه چیز رو، از ساعت تا وضعیت CPU، نشون میده.
و کلی مثال و پلاگین دیگه که حتما ارزش امتحان کردن داره
این ترکیب ترمینال من رو خیلی کارآمدتر و جذابتر کرده.
حتماً امتحانش کنید!
@DevTwitter | <mohammad hosseinifar/>
👍50❤4🤣3🔥2
بعد از یه عالمه بالا و پایین کردن و پرس و جو و کار کردن در مورد اینکه vue بهتره یا react به این نتیجه رسیدم و خواستم با شما به اشتراک بزارم :
از لحاظ سرعت و کارایی react از vue بهتره ، مخصوصا توی پروژه های بزرگ .
از لحاظ یادگیری و آسون بودن vue خیلی راحت تره .
ولی این به این معنی نیست که اگه الان داری روی vue کار میکنی ، بری سمت react
درسته سرعت react بهتره ولی دلیل بر این نیست که هر سایتی با react زده شده سرعت بالاتری داره نسبت به vue . همه چی برمیگرده به نحوه پیاده سازی کد شما و اینکه چقدر خوب و تمیز پروژه را اجرا کردین و چه چیزو کجا و چجوری پیاده سازی کردین .
در کل اینو میخوام بگم اگه داری با یک فرم وورک یا کتابخانه کار میکنی دنبال این نباش که بری سراغ کتابخونه و فرم وورک های دیگه و شاخه به شاخه بشی تا زمانی که همونی که کار میکنی را کامل بلد شده باشی .
استاد بروسلی میگفت
من از کسی نمیترسم که هزار فن را یک بار تمرین کرده باشه ، من از کسی میترسم که یک فنو هزار بار تمرین کرده باشه .
@DevTwitter | <Tohid Salimi/>
از لحاظ سرعت و کارایی react از vue بهتره ، مخصوصا توی پروژه های بزرگ .
از لحاظ یادگیری و آسون بودن vue خیلی راحت تره .
ولی این به این معنی نیست که اگه الان داری روی vue کار میکنی ، بری سمت react
درسته سرعت react بهتره ولی دلیل بر این نیست که هر سایتی با react زده شده سرعت بالاتری داره نسبت به vue . همه چی برمیگرده به نحوه پیاده سازی کد شما و اینکه چقدر خوب و تمیز پروژه را اجرا کردین و چه چیزو کجا و چجوری پیاده سازی کردین .
در کل اینو میخوام بگم اگه داری با یک فرم وورک یا کتابخانه کار میکنی دنبال این نباش که بری سراغ کتابخونه و فرم وورک های دیگه و شاخه به شاخه بشی تا زمانی که همونی که کار میکنی را کامل بلد شده باشی .
استاد بروسلی میگفت
من از کسی نمیترسم که هزار فن را یک بار تمرین کرده باشه ، من از کسی میترسم که یک فنو هزار بار تمرین کرده باشه .
@DevTwitter | <Tohid Salimi/>
👍93👎16🤣9🔥5
تو این سایت میتونید مقالاتِ پولیِ مدیوم رو رایگان باز کنید. در واقع خودش اشتراکِ مدیوم خریده و از طریقِ این سایت در دسترسِ عموم قرار داده. مدیوم نقطهضعفهاش رو حل کرده. تمامِ روشهایِ قدیمیِ دورزدن paywall از کار افتاده. فقط همین روش جواب میده.
freedium.cfd
@DevTwitter | <Ayub Kokabi/>
freedium.cfd
@DevTwitter | <Ayub Kokabi/>
❤47👍15🤣4👎2
شیر مرغ تا جون آدمیزاد؟
این ریپو رو ی نگاه بندازید، از ساخت سیستم عامل تا جستجوگر وب و زبان برنامه نویسی خودتون رو میتونید اینجا پیدا کنید:)
طبیعتا بهترین گزینه نیست و بهینه ترین هم نیست ولی برای اینکه یک دید کلی از شیوه کار داشته باشید عالیه:)
https://github.com/codecrafters-io/build-your-own-x
@DevTwitter | <Mani/>
این ریپو رو ی نگاه بندازید، از ساخت سیستم عامل تا جستجوگر وب و زبان برنامه نویسی خودتون رو میتونید اینجا پیدا کنید:)
طبیعتا بهترین گزینه نیست و بهینه ترین هم نیست ولی برای اینکه یک دید کلی از شیوه کار داشته باشید عالیه:)
https://github.com/codecrafters-io/build-your-own-x
@DevTwitter | <Mani/>
👍41🔥3👎1
#کدبوک
موضوعات اصلی کتاب شامل:
مفاهیم پایه پردازش زبان طبیعی و یادگیری عمیق
معماری ترانسفورمر و اجزای آن
نحوه آموزش و تنظیم مدلهای زبانی
پیادهسازی عملی یک LLM از صفر
تکنیکهای بهینهسازی و مقیاسپذیری
روشهای ارزیابی عملکرد مدل
چالشهای پیشرو در توسعه LLMها
نکات عملی برای پیادهسازی موفق
این کتاب برای:
متخصصان هوش مصنوعی
دانشجویان یادگیری ماشین
توسعهدهندگانی که میخواهند وارد حوزه LLM شوند
مناسب است و با رویکردی عملی و گام به گام، مفاهیم پیچیده را به شکلی قابل فهم توضیح میدهد.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
موضوعات اصلی کتاب شامل:
مفاهیم پایه پردازش زبان طبیعی و یادگیری عمیق
معماری ترانسفورمر و اجزای آن
نحوه آموزش و تنظیم مدلهای زبانی
پیادهسازی عملی یک LLM از صفر
تکنیکهای بهینهسازی و مقیاسپذیری
روشهای ارزیابی عملکرد مدل
چالشهای پیشرو در توسعه LLMها
نکات عملی برای پیادهسازی موفق
این کتاب برای:
متخصصان هوش مصنوعی
دانشجویان یادگیری ماشین
توسعهدهندگانی که میخواهند وارد حوزه LLM شوند
مناسب است و با رویکردی عملی و گام به گام، مفاهیم پیچیده را به شکلی قابل فهم توضیح میدهد.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
👍26❤1
مثال از Best Practices در SQL Query
بهینهسازی کوئریها در دیتابیسهای بزرگ اهمیت فوقالعادهای داره. مثالی که در تصویر گذاشتم رو ببینید:
بهینهسازی کوئریهای SQL باعث بهبود عملکرد و کاهش استفاده غیرضروری از منابع میشه. با حذف subqueryهای غیرضروری و استفاده از Joinهای بهینه و Group By، میتونید کوئریهای سریعتر و کاراتری داشته باشید. همچنین، استفاده از Index روی ستونهای پرکاربرد مثل user_id و post_id میتونه زمان اجرای کوئریها رو به شدت کاهش بده.
همیشه بهینهسازی رو در اولویت قرار بدید، چون هر میلیثانیه اهمیت داره!
@DevTwitter | <Saber Qadimi/>
بهینهسازی کوئریها در دیتابیسهای بزرگ اهمیت فوقالعادهای داره. مثالی که در تصویر گذاشتم رو ببینید:
بهینهسازی کوئریهای SQL باعث بهبود عملکرد و کاهش استفاده غیرضروری از منابع میشه. با حذف subqueryهای غیرضروری و استفاده از Joinهای بهینه و Group By، میتونید کوئریهای سریعتر و کاراتری داشته باشید. همچنین، استفاده از Index روی ستونهای پرکاربرد مثل user_id و post_id میتونه زمان اجرای کوئریها رو به شدت کاهش بده.
همیشه بهینهسازی رو در اولویت قرار بدید، چون هر میلیثانیه اهمیت داره!
@DevTwitter | <Saber Qadimi/>
👍28🔥3
امنیت پسوردها با استفاده از Salt و Pepper
در دنیای دیجیتال امروز، امنیت اطلاعات شخصی و حساس یک اولویت اساسی است. یکی از مهمترین بخشهای این امنیت، نحوه مدیریت پسوردها است. امروز میخواهم در مورد دو مفهوم مهم در این زمینه، یعنی SaltوPepper صحبت کنم.
۱. Salt
سالت یک مقدار تصادفی است که به پسورد کاربر اضافه میشود قبل از اینکه آن را هش کنیم. این کار به جلوگیری از حملات Rainbow Table کمک میکند، زیرا حتی اگر دو کاربر پسورد یکسانی داشته باشند، با داشتن Saltهای مختلف، هشهای متفاوتی تولید خواهند کرد.
به عنوان مثال، در PHP میتوانیم از تابع password_hash استفاده کنیم:
خروجی این تابع به شکل زیر خواهد بود:
$2y$11$KIXqJCD7UgxE2ZmRkU8DeOeXeP5.h6yDkpH2Slbdm/o7NRlfdEme6
این رشته چهار قسمت دارد:
1. نوع الگوریتم (
2. هزینه (Cost) (
3. سالت (Salt) (
4. پسورد هش شده
۲. Pepper
پپر یک مقدار ثابت و محرمانه است که به پسورد اضافه میشود، اما بر خلاف Salt، این مقدار در پایگاه داده ذخیره نمیشود. در عوض، این مقدار در کد برنامه نویسی (Application Code) قرار میگیرد.
به عنوان مثال، در کد زیر:
در اینجا، پسورد کاربر ابتدا با Pepper ترکیب میشود و سپس هش میشود. این کار به امنیت بیشتر پسوردها کمک میکند و حتی اگر یک پایگاه داده دزدیده شود، مقدار Pepper میتواند به عنوان یک لایه امنیتی اضافی عمل کند.
@DevTwitter | <Firoozeh Daeizadeh/>
در دنیای دیجیتال امروز، امنیت اطلاعات شخصی و حساس یک اولویت اساسی است. یکی از مهمترین بخشهای این امنیت، نحوه مدیریت پسوردها است. امروز میخواهم در مورد دو مفهوم مهم در این زمینه، یعنی SaltوPepper صحبت کنم.
۱. Salt
سالت یک مقدار تصادفی است که به پسورد کاربر اضافه میشود قبل از اینکه آن را هش کنیم. این کار به جلوگیری از حملات Rainbow Table کمک میکند، زیرا حتی اگر دو کاربر پسورد یکسانی داشته باشند، با داشتن Saltهای مختلف، هشهای متفاوتی تولید خواهند کرد.
به عنوان مثال، در PHP میتوانیم از تابع password_hash استفاده کنیم:
$password = "Test1234";
$options = [
'cost' => 11
];
$hashed_password = password_hash($password, PASSWORD_BCRYPT, $options);
خروجی این تابع به شکل زیر خواهد بود:
$2y$11$KIXqJCD7UgxE2ZmRkU8DeOeXeP5.h6yDkpH2Slbdm/o7NRlfdEme6
این رشته چهار قسمت دارد:
1. نوع الگوریتم (
$2y$)2. هزینه (Cost) (
11$)3. سالت (Salt) (
KIXqJCD7UgxE2ZmRkU8DeOeXeP5.)4. پسورد هش شده
۲. Pepper
پپر یک مقدار ثابت و محرمانه است که به پسورد اضافه میشود، اما بر خلاف Salt، این مقدار در پایگاه داده ذخیره نمیشود. در عوض، این مقدار در کد برنامه نویسی (Application Code) قرار میگیرد.
به عنوان مثال، در کد زیر:
// config.conf
$pepper = "PT0s!NsO9";
// register.php
$pwd = $_POST['password'];
$pwd_peppered = hash_hmac("sha256", $pwd, $pepper);
$pwd_hashed = password_hash($pwd_peppered, PASSWORD_ARGON2ID);
add_user_to_database($username, $pwd_hashed);
در اینجا، پسورد کاربر ابتدا با Pepper ترکیب میشود و سپس هش میشود. این کار به امنیت بیشتر پسوردها کمک میکند و حتی اگر یک پایگاه داده دزدیده شود، مقدار Pepper میتواند به عنوان یک لایه امنیتی اضافی عمل کند.
@DevTwitter | <Firoozeh Daeizadeh/>
🔥46👍17🤣4❤3
تکنولوژی و ابزار فرانت به سرعتی در حال تغییره که آدم از پشت نمیتونه برسه بک اند و حوزه های دیگه رو نمیدونم ولی شما فرض کن تو فرانت داری با پنج شیش تا ابزار کار میکنی برای مثال:
React
Next
CSS Frameworks
Bundlers
JavaScript
ریکت و نکست که دارن به سرعت فضایی آپدیت میدن نکست که دیگه اصلا هر دو هفته یچیز جدید میده الان مثلا Server actions اضافه کرد که خیلی کاربردیه
ریکت بزودی ورژن جدید که تغییرات جامع داره رو میده بیرون
برای فریم وورک های سی اس اس تیلویند از یه طرف و shadcn UI و ... دارن به کلی صنعت رو به سویه جدید میبرن
جاوااسکریپت تو ورژن جدیدش که هنوز در مرحله تایید هستش کلی فیچر جدید داره به زبان اضافه میکنه
هر روز باید کلی وقت بزاری اخبار بخونی و نه تنها از جدیدترین چیز ها اطلاع داشته باشی بلکه باید به اونا تسلط هم داشته باشی مثلا همین سرور اکشن های نکست به سرعت توسط کامیونیتی مورد استقبال قرار گرفت
بنظرم یه باید عجله کنیم تو یادگیری و پیاده سازی
چون به مدت دیگه نه تنها دیگه نمیتونید مباحث رو توی نه ماه تا یکسال جمع کنید بلکه استخدام هم سخت تر میشه چون حجم پیش نیاز ها به قدری سنگین داره میشه که نه تنها مسائل پایه رو باید تسلط داشته باشید و اینکه اگه یه کوچولو حواستون به مسیرتون نباشه ممکنه دچار
Tutorial Hell
بشید، خلاصه خواستم بگم بهتون اگه از فضای مجازی دور شدید بخاطر اعتیاد آور بودنش یه راه حلی پیدا کنید آپدیت هارو بگیرید هر روز به کم وقت بزارید چیزای جدید بخونید اوناییم که وقت کافی نمیزارن و تخصصشون محکوم به فنا هستن، تلخه ولی واقعیته
دوران دانشجویی هم باید کار کنید رو تخصصتون هم درستون بخونید شرایط طاقت فرساست
@DevTwitter | <Mohammad Mousavi/>
React
Next
CSS Frameworks
Bundlers
JavaScript
ریکت و نکست که دارن به سرعت فضایی آپدیت میدن نکست که دیگه اصلا هر دو هفته یچیز جدید میده الان مثلا Server actions اضافه کرد که خیلی کاربردیه
ریکت بزودی ورژن جدید که تغییرات جامع داره رو میده بیرون
برای فریم وورک های سی اس اس تیلویند از یه طرف و shadcn UI و ... دارن به کلی صنعت رو به سویه جدید میبرن
جاوااسکریپت تو ورژن جدیدش که هنوز در مرحله تایید هستش کلی فیچر جدید داره به زبان اضافه میکنه
هر روز باید کلی وقت بزاری اخبار بخونی و نه تنها از جدیدترین چیز ها اطلاع داشته باشی بلکه باید به اونا تسلط هم داشته باشی مثلا همین سرور اکشن های نکست به سرعت توسط کامیونیتی مورد استقبال قرار گرفت
بنظرم یه باید عجله کنیم تو یادگیری و پیاده سازی
چون به مدت دیگه نه تنها دیگه نمیتونید مباحث رو توی نه ماه تا یکسال جمع کنید بلکه استخدام هم سخت تر میشه چون حجم پیش نیاز ها به قدری سنگین داره میشه که نه تنها مسائل پایه رو باید تسلط داشته باشید و اینکه اگه یه کوچولو حواستون به مسیرتون نباشه ممکنه دچار
Tutorial Hell
بشید، خلاصه خواستم بگم بهتون اگه از فضای مجازی دور شدید بخاطر اعتیاد آور بودنش یه راه حلی پیدا کنید آپدیت هارو بگیرید هر روز به کم وقت بزارید چیزای جدید بخونید اوناییم که وقت کافی نمیزارن و تخصصشون محکوم به فنا هستن، تلخه ولی واقعیته
دوران دانشجویی هم باید کار کنید رو تخصصتون هم درستون بخونید شرایط طاقت فرساست
@DevTwitter | <Mohammad Mousavi/>
👍113🤣8❤3👎3
یکی ادعا کرده که یه رباتی نوشته که برای هر اگهی کار تو لینکدین رزومه و کاورلتر شخصی سازی شده مینویسه و جواب سوالارم میده و اتومات ایزی اپلای میکنه. باهاش تو ۲۴ ساعت ۱۰۰۰ تا اگهی اپلای کرده و ۵۰ تا مصاحبه گرفته! کدشم تو گیت هاب ۱۸ هزار تا استار گرفته!
https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk
@DevTwitter | <Shana/>
https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk
@DevTwitter | <Shana/>
1👍81🤣26🔥3👎1
ا گه دوست دارید با سرویسهای AWS کار کنید اما امکانش براتون فراهم نیست، این یکی رو دیگه نمیتونید کرک کنید و استفاده کنید!
ولی یه راه بهتر هست که نه نیازی به کردیت کارت داره، نه حتی ثبت نام توی AWS.
برای این کار میتونید از پروژه localstack استفاده کنید. این پروژه مجموعهای از سرویسهای AWS رو کاملا شبیه سازی کرده و کافیه که شما طبق داکیومنت جامع و خوبی که داره، روی کامپیوتر خودتون به راحتی راه اندازیش کنید. docker compose هم داره.
چند نمونه از سرویسهایی که پشتیبانی میکنه:
AWS Lambda
S3
Dynamodb
Kinesis
SQS
SNS
مثلا اگر در پروژهای مشارکت دارید که از S3 برای ذخیرهسازی و مدیریت فایلها استفاده میکنه اما امکانش براتون فراهم نیست که از سرویس اصلی برای آزمون و خطا استفاده کنید، از این طریق به راحتی میتونید کد خودتون رو لوکال تست کنید.
https://github.com/localstack/localstack
@DevTwitter | <Amir Ziapour/>
ولی یه راه بهتر هست که نه نیازی به کردیت کارت داره، نه حتی ثبت نام توی AWS.
برای این کار میتونید از پروژه localstack استفاده کنید. این پروژه مجموعهای از سرویسهای AWS رو کاملا شبیه سازی کرده و کافیه که شما طبق داکیومنت جامع و خوبی که داره، روی کامپیوتر خودتون به راحتی راه اندازیش کنید. docker compose هم داره.
چند نمونه از سرویسهایی که پشتیبانی میکنه:
AWS Lambda
S3
Dynamodb
Kinesis
SQS
SNS
مثلا اگر در پروژهای مشارکت دارید که از S3 برای ذخیرهسازی و مدیریت فایلها استفاده میکنه اما امکانش براتون فراهم نیست که از سرویس اصلی برای آزمون و خطا استفاده کنید، از این طریق به راحتی میتونید کد خودتون رو لوکال تست کنید.
https://github.com/localstack/localstack
@DevTwitter | <Amir Ziapour/>
❤21👍13🔥2🤣1
چند هفته پیش یک یک ابزار جدید و رایگان از گوگل به اسم NotebookLM را معرفی کردم که میشه باهاش علاوه بر اینکه سوال و جواب بپرسید راجع به فایل هاتون یک فایل صوتی یا یکجور پادکست هم درست کنید که خیلی جالبه. الان هم توی Twitter این ابزار کلی trend شده.
حالا کمپانی Meta اومده یک ورژن اپن سورس این ابزار را داده به اسم NotebookLlama. میتونید فایل های pdf را در ۴ مرحله به پادکست صوتی تبدیل کنید.
مرحله 1: پیشپردازش PDF: با استفاده از مدل Llama-3.2-1B-Instruct، فایلهای PDF را پیشپردازش کرده و آن را به صورت فایل .txt ذخیره کنید.
مرحله 2: نگارش trannoscript: با استفاده از مدل Llama-3.1-70B-Instruct، رونوشت پادکست را از متن بنویسید.
مرحله 3: بازنویسی دراماتیک: با استفاده از مدل Llama-3.1-8B-Instruct، رونوشت را دراماتیکتر کنید.
مرحله 4: تبدیل متن به گفتار: با استفاده از parler-tts/parler-tts-mini-v1 و bark/suno، یک پادکست گفتگو محور تولید کنید.
https://github.com/meta-llama/llama-recipes/tree/main/recipes/quickstart/NotebookLlama
@DevTwitter | <Mehdi Allahyari/>
حالا کمپانی Meta اومده یک ورژن اپن سورس این ابزار را داده به اسم NotebookLlama. میتونید فایل های pdf را در ۴ مرحله به پادکست صوتی تبدیل کنید.
مرحله 1: پیشپردازش PDF: با استفاده از مدل Llama-3.2-1B-Instruct، فایلهای PDF را پیشپردازش کرده و آن را به صورت فایل .txt ذخیره کنید.
مرحله 2: نگارش trannoscript: با استفاده از مدل Llama-3.1-70B-Instruct، رونوشت پادکست را از متن بنویسید.
مرحله 3: بازنویسی دراماتیک: با استفاده از مدل Llama-3.1-8B-Instruct، رونوشت را دراماتیکتر کنید.
مرحله 4: تبدیل متن به گفتار: با استفاده از parler-tts/parler-tts-mini-v1 و bark/suno، یک پادکست گفتگو محور تولید کنید.
https://github.com/meta-llama/llama-recipes/tree/main/recipes/quickstart/NotebookLlama
@DevTwitter | <Mehdi Allahyari/>
👍24🔥10
فوت و فن مدیریت امنیت:
برای سازمانها و شرکتهای کوچک تامین هزینه برای خرید تجهیزاتی مانند hashtag#waf بسیار بالا بوده و بعضا با مقاومت مدیران روبرو میشه.
پیشنهاد میشه از ابزار open source برای اینکار استفاده کنید و در ادامه با ارائه گزارش لاگهای فعالیت و رفع مخاطرات و تصویر سازی سناریو های ممکن مدیران را از ریسک نبود تجهیز مطلوب آگاه کنیم.
ابزار bunkerweb رو برای waf داشته باشید
https://github.com/bunkerity/bunkerweb
@DevTwitter | <Peyman khodabandeh/>
برای سازمانها و شرکتهای کوچک تامین هزینه برای خرید تجهیزاتی مانند hashtag#waf بسیار بالا بوده و بعضا با مقاومت مدیران روبرو میشه.
پیشنهاد میشه از ابزار open source برای اینکار استفاده کنید و در ادامه با ارائه گزارش لاگهای فعالیت و رفع مخاطرات و تصویر سازی سناریو های ممکن مدیران را از ریسک نبود تجهیز مطلوب آگاه کنیم.
ابزار bunkerweb رو برای waf داشته باشید
https://github.com/bunkerity/bunkerweb
@DevTwitter | <Peyman khodabandeh/>
👍13🤣8
خواهشا ردیس را به عنوان Primary Database استفاده نکنید!
یکی از جذابترین ریفکتور هایی که در اکالا انجام دادم، به ریلیز کردن ۴۰ گیگابایت رم ردیس برای استفاده در سبد خرید و سفارشها مربوط میشه. در این فرآیند، موفق شدم تنها از ۴۰۰ مگابایت رم استفاده کنم!
در شروع کار، به این فکر میکردم که چگونه میتوانم ۴۰ گیگابایت رم را آزاد کنم. اولین راهحلی که به ذهنم رسید، فشردهسازی دادهها بود. اما هیچ کامپرسوری نمیتوانست به اندازه کافی این حجم داده را فشرده کند، و هزینهی Decompress کردن آن بخاطر لود بالای سیستم، بسیار بالا بود.
هر کلید ما حاوی حدود ۱-۲ کیلوبایت JSON بود و مجبور بودیم که هر محصول را بدون TTL در Redis نگه داریم، زیرا Round Trip ما به Redis در لحظه به حدود ۳۰K میرسید و Redis ۴۰ گیگابایتی را مصرف میکرد. هیچ اپلیکیشنی نمیتوانست این حجم Request را با منابع پایین و زمان پاسخدهی ۱۰ میلیثانیه انجام دهد!
در ادامه، وقتی وارد فضای حل مسئله شدم:
پاکسازی دادههای اضافی: اولین قدم ما حذف کلی دادههای غیرضروری بود که هر کلید را به حدوداً ۵۰۰ بایت تبدیل کرد.
استفاده از Protobuf: به این فکر کردم که چرا از JSON استفاده کنیم؟ با استفاده از deserializer و serializer قدرتمندی مثل Protobuf، میتوانستیم حجم دادهها را به طور چشمگیری کاهش دهیم. با تبدیل دادهها به باینری و ذخیره آن، حجم هر کلید به حدود ۳۰۰ بایت کاهش یافت، که به معنای کاهش ۸۰ درصدی مصرف رم بود. با این حال، کیفیت و سرعت بالا در اکالا برای ما بسیار مهم بود.
شکستن کلیدها: کلیدها را به دو بخش تقسیم کردم:
اطلاعات محصول (شامل نام، بارکد، آدرس عکس و...) در یک کلید با حجم تقریباً ۲۰۰ بایت.
موجودی هر محصول در فروشگاهها در کلیدی دیگر با حجم حدود ۱۰۰ بایت.
در روش قبلی، اگر یک میلیون کالا داشتیم، مصرف حدود ۲۸۶ مگابایت بود. اما در روش جدید، فرض کنیم از یک میلیون تا 2000 محصول داریم و برای یک میلیون کالا موجودی در استور های مختلف، حدود ۹۵ مگابایت مصرف میشد!
کش کردن محصولات: همچنین، کالاهای اضافهشده به سبد خرید مشتریان را به مدت ۴ روز کش کردم. به جای استفاده از Redis به عنوان Primary Database و بدون TTL، هرگاه دادهای نداشتیم، از منبع اصلی اطلاعات را میگرفتیم و دوباره به مدت ۴ روز کش میکردیم. اگر کاربری همان کالا را دوباره به سبد خرید اضافه میکرد، TTL آن به صورت Sliding افزایش مییافت.
در نهایت، با همین ۴۰۰ مگابایت، همه چیز به خوبی به هم رسید و ما توانستیم پرفورمنس و سرعت را بدون هیچ افت کیفیتی حفظ کنیم!
@DevTwitter | <Hassan Arab borzo/>
یکی از جذابترین ریفکتور هایی که در اکالا انجام دادم، به ریلیز کردن ۴۰ گیگابایت رم ردیس برای استفاده در سبد خرید و سفارشها مربوط میشه. در این فرآیند، موفق شدم تنها از ۴۰۰ مگابایت رم استفاده کنم!
در شروع کار، به این فکر میکردم که چگونه میتوانم ۴۰ گیگابایت رم را آزاد کنم. اولین راهحلی که به ذهنم رسید، فشردهسازی دادهها بود. اما هیچ کامپرسوری نمیتوانست به اندازه کافی این حجم داده را فشرده کند، و هزینهی Decompress کردن آن بخاطر لود بالای سیستم، بسیار بالا بود.
هر کلید ما حاوی حدود ۱-۲ کیلوبایت JSON بود و مجبور بودیم که هر محصول را بدون TTL در Redis نگه داریم، زیرا Round Trip ما به Redis در لحظه به حدود ۳۰K میرسید و Redis ۴۰ گیگابایتی را مصرف میکرد. هیچ اپلیکیشنی نمیتوانست این حجم Request را با منابع پایین و زمان پاسخدهی ۱۰ میلیثانیه انجام دهد!
در ادامه، وقتی وارد فضای حل مسئله شدم:
پاکسازی دادههای اضافی: اولین قدم ما حذف کلی دادههای غیرضروری بود که هر کلید را به حدوداً ۵۰۰ بایت تبدیل کرد.
استفاده از Protobuf: به این فکر کردم که چرا از JSON استفاده کنیم؟ با استفاده از deserializer و serializer قدرتمندی مثل Protobuf، میتوانستیم حجم دادهها را به طور چشمگیری کاهش دهیم. با تبدیل دادهها به باینری و ذخیره آن، حجم هر کلید به حدود ۳۰۰ بایت کاهش یافت، که به معنای کاهش ۸۰ درصدی مصرف رم بود. با این حال، کیفیت و سرعت بالا در اکالا برای ما بسیار مهم بود.
شکستن کلیدها: کلیدها را به دو بخش تقسیم کردم:
اطلاعات محصول (شامل نام، بارکد، آدرس عکس و...) در یک کلید با حجم تقریباً ۲۰۰ بایت.
موجودی هر محصول در فروشگاهها در کلیدی دیگر با حجم حدود ۱۰۰ بایت.
در روش قبلی، اگر یک میلیون کالا داشتیم، مصرف حدود ۲۸۶ مگابایت بود. اما در روش جدید، فرض کنیم از یک میلیون تا 2000 محصول داریم و برای یک میلیون کالا موجودی در استور های مختلف، حدود ۹۵ مگابایت مصرف میشد!
کش کردن محصولات: همچنین، کالاهای اضافهشده به سبد خرید مشتریان را به مدت ۴ روز کش کردم. به جای استفاده از Redis به عنوان Primary Database و بدون TTL، هرگاه دادهای نداشتیم، از منبع اصلی اطلاعات را میگرفتیم و دوباره به مدت ۴ روز کش میکردیم. اگر کاربری همان کالا را دوباره به سبد خرید اضافه میکرد، TTL آن به صورت Sliding افزایش مییافت.
در نهایت، با همین ۴۰۰ مگابایت، همه چیز به خوبی به هم رسید و ما توانستیم پرفورمنس و سرعت را بدون هیچ افت کیفیتی حفظ کنیم!
@DevTwitter | <Hassan Arab borzo/>
4👍125🔥21🤣5❤4
بعد از تجربه چندین پروژه در طراحی پنل و سایت اصلی، چه به صورت فردی و چه در قالب کارهای گروهی، اکنون در فریمورک Vue.js همراه با فریم ورک لارول پیش میبرم . در این مسیر، با Vuex به عنوان ابزار مدیریت وضعیت اصلی Vue 2 و Vue 3 کار کردهام. اما با توجه به اینکه در Vue 3، ابزار Pinia به عنوان ابزار رسمی و توصیهشده برای مدیریت وضعیت معرفی شده،
,ولی بازم vuex در ویو ۳ کاربرد داره ولی خب ... تصمیم گرفتم به تدریج از Vuex جدا شم و به Pinia مهاجرت کنم. اما چرا؟؟
در Vue.js روشهای مختلفی برای مدیریت وضعیت (State Management) وجود دارد که انتخاب هر روش به نیاز و پیچیدگی پروژه بستگی دارد. در زیر، برخی از ابزارها و روشهای پرکاربرد برای مدیریت وضعیت در Vue را بررسی میکنیم:
استفاده از props و events
این روش ابتداییترین روش مدیریت وضعیت است. از props برای ارسال داده از کامپوننت والد به فرزندان و از events برای انتقال دادهها به سمت بالا استفاده میشود. این روش در پروژههای کوچک و ساده مؤثر است اما برای پروژههای بزرگ کافی نیست.
استفاده از provide و inject
provide و inject به اشتراکگذاری وضعیت بین کامپوننتها بدون نیاز به props کمک میکنند. این روش در شرایطی که چندین کامپوننت نیاز به داده مشترک دارند مناسب است اما در پروژههای بزرگ محدودیت دارد.
ابزار Pinia، ابزار رسمی و توصیهشده برای Vue 3، با API ساده و روانی که دارد، تجربه توسعهدهنده را بهبود داده و از ویژگیهای Vue 3 مانند Composition API و سیستم واکنشپذیری پیشرفته بهره میبرد. این ابزار جایگزین Vuex در Vue 3 شده و برای پروژههای بزرگ گزینهای بهینه است.
ابزار Vuex ابزار اصلی مدیریت وضعیت در Vue 2 است و ساختاری متمرکز برای مدیریت دادهها ارائه میدهد. Vuex از state، mutations، actions و getters برای مدیریت وضعیت استفاده میکند. با وجود امکان استفاده از Vuex در Vue 3، تیم Vue اکنون Pinia را به عنوان جایگزین رسمی برای Vue 3 معرفی کرده است.
استفاده از Composition API و reactive
در Vue 3، Composition API و reactive به توسعهدهندگان امکان میدهند که وضعیتهای محلی را با سادگی بیشتری مدیریت کنند. این روش برای پروژههای متوسط و کوچک کارآمد است.
کتابخانههای خارجی (مانند Redux یا Zustand)
برخی از پروژههای پیچیده نیاز به ابزارهای دیگری مانند Redux دارند، هرچند این کتابخانهها مخصوص Vue نیستند و بیشتر در پروژههای چندپلتفرمی کاربرد دارند.
تجربه ای داشتم این بود که اگر بخواین با nuxt مخصوصا ورژن ۳ کارکنید pinia بهترین هست این جمله من دلیل نمیشه vuex بد باشه نه منظوم این نیست :)
منظورم این که راحتر دیپلوی میشه در ناکست ۳ و همین ...
@DevTwitter | <amirreza raadi/>
,ولی بازم vuex در ویو ۳ کاربرد داره ولی خب ... تصمیم گرفتم به تدریج از Vuex جدا شم و به Pinia مهاجرت کنم. اما چرا؟؟
در Vue.js روشهای مختلفی برای مدیریت وضعیت (State Management) وجود دارد که انتخاب هر روش به نیاز و پیچیدگی پروژه بستگی دارد. در زیر، برخی از ابزارها و روشهای پرکاربرد برای مدیریت وضعیت در Vue را بررسی میکنیم:
استفاده از props و events
این روش ابتداییترین روش مدیریت وضعیت است. از props برای ارسال داده از کامپوننت والد به فرزندان و از events برای انتقال دادهها به سمت بالا استفاده میشود. این روش در پروژههای کوچک و ساده مؤثر است اما برای پروژههای بزرگ کافی نیست.
استفاده از provide و inject
provide و inject به اشتراکگذاری وضعیت بین کامپوننتها بدون نیاز به props کمک میکنند. این روش در شرایطی که چندین کامپوننت نیاز به داده مشترک دارند مناسب است اما در پروژههای بزرگ محدودیت دارد.
ابزار Pinia، ابزار رسمی و توصیهشده برای Vue 3، با API ساده و روانی که دارد، تجربه توسعهدهنده را بهبود داده و از ویژگیهای Vue 3 مانند Composition API و سیستم واکنشپذیری پیشرفته بهره میبرد. این ابزار جایگزین Vuex در Vue 3 شده و برای پروژههای بزرگ گزینهای بهینه است.
ابزار Vuex ابزار اصلی مدیریت وضعیت در Vue 2 است و ساختاری متمرکز برای مدیریت دادهها ارائه میدهد. Vuex از state، mutations، actions و getters برای مدیریت وضعیت استفاده میکند. با وجود امکان استفاده از Vuex در Vue 3، تیم Vue اکنون Pinia را به عنوان جایگزین رسمی برای Vue 3 معرفی کرده است.
استفاده از Composition API و reactive
در Vue 3، Composition API و reactive به توسعهدهندگان امکان میدهند که وضعیتهای محلی را با سادگی بیشتری مدیریت کنند. این روش برای پروژههای متوسط و کوچک کارآمد است.
کتابخانههای خارجی (مانند Redux یا Zustand)
برخی از پروژههای پیچیده نیاز به ابزارهای دیگری مانند Redux دارند، هرچند این کتابخانهها مخصوص Vue نیستند و بیشتر در پروژههای چندپلتفرمی کاربرد دارند.
تجربه ای داشتم این بود که اگر بخواین با nuxt مخصوصا ورژن ۳ کارکنید pinia بهترین هست این جمله من دلیل نمیشه vuex بد باشه نه منظوم این نیست :)
منظورم این که راحتر دیپلوی میشه در ناکست ۳ و همین ...
@DevTwitter | <amirreza raadi/>
👍34❤4
اگه دنبال کار میگردین، دیگه دوره دستی انجام دادنش تموم شده.
ابزار پایین تمام فرایند رو انجام میده. صرفا فقط اطلاعاتتون رو باید بهش بدین.
https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk
@DevTwitter | <Hosein Haqiqian/>
ابزار پایین تمام فرایند رو انجام میده. صرفا فقط اطلاعاتتون رو باید بهش بدین.
https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk
@DevTwitter | <Hosein Haqiqian/>
👎52👍12🤣2
اکستنشن رسمی ChatGPT به طرز عجیبی خوب و قویه، بیچاره سم آلتمن گفت نمیخوام "جو" بدم، ولی این یکی واقعا خوبه!
سم آلتمن درست میگفت.
https://chromewebstore.google.com/detail/chatgpt-search/ejcfepkfckglbgocfkanmcdngdijcgld
@DevTwitter | <Sabber/>
سم آلتمن درست میگفت.
https://chromewebstore.google.com/detail/chatgpt-search/ejcfepkfckglbgocfkanmcdngdijcgld
@DevTwitter | <Sabber/>
2🤣54👍18❤3👎2
بیشتر از 700 سوال پر تکرار برای متخصصین Front-end و Back-end
تایپکهایی که شامل این Repository میشه :
System Design - Algorithm - Data Structure - Solid Priciples - Live Coding - Task - Design Pattern - Coding Challenge - Live Coding Chanllenge
https://github.com/Soheib-Kiani/most-repeated-interview-questions
@DevTwitter | <Soheib/>
تایپکهایی که شامل این Repository میشه :
System Design - Algorithm - Data Structure - Solid Priciples - Live Coding - Task - Design Pattern - Coding Challenge - Live Coding Chanllenge
https://github.com/Soheib-Kiani/most-repeated-interview-questions
@DevTwitter | <Soheib/>
👍25❤7👎1
Media is too big
VIEW IN TELEGRAM
این ویدیو الگوریتمهای مختلف Sorting رو به تصویر میکشه و نشون میده چطور هر کدوم عملیات مرتبسازی رو انجام میدن.
واقعا دیدنیه و کلی چیز میشه ازش یاد گرفت
@DevTwitter | <Mohammad Eslami/>
واقعا دیدنیه و کلی چیز میشه ازش یاد گرفت
@DevTwitter | <Mohammad Eslami/>
🔥58👍7❤4👎2
چند ماه پیش که از خدمت سربازی برگشتمو دیدم هیچی از کد زدن و برنامه نویسی یادم نمی یاد شروع کردم یه پروژه لاراولی باز کردم و از فکتوری و faker استفاده کردم همه چی خوب بود تا اینکه نتونستم عکس باهاش تولید کنم یا حتی وکتور یا یه منبع کاملی از هرچیزی که بخوام
خلاصه چون freepik میشناختم و قبلا هم باهاش کار کردم میکردم گشتم api شو پیدا کردم خودم یه پکیج ازش ساختم
https://github.com/alirezaevil81/freepik-geter
عزیزانی که با php کد میزنید یه نگاهی بندازید شاید به دردتون بخوره
@DevTwitter | <alireza haraji/>
خلاصه چون freepik میشناختم و قبلا هم باهاش کار کردم میکردم گشتم api شو پیدا کردم خودم یه پکیج ازش ساختم
https://github.com/alirezaevil81/freepik-geter
عزیزانی که با php کد میزنید یه نگاهی بندازید شاید به دردتون بخوره
@DevTwitter | <alireza haraji/>
❤28👍10👎7🔥4
یه فرصت خیلی خوب برای علاقمندان به یادگیری دیتابیس PostgreSQL
اِرِن فرَنسِز (Aaron Francis) که تجربه ای نزدیک به 20 سال، با پستگرس داره و از مدرسین فعال حوزه ی لاراول هم هست، دوره Mastering Postgres رو منتشر کرده که نزدیک به 11 ساعت آموزش هست.
25 ویدیو اول این دوره رایگان هست که میتونید ازش استفاده کنید.
https://masteringpostgres.com/
@DevTwitter | <Ali Salehi/>
اِرِن فرَنسِز (Aaron Francis) که تجربه ای نزدیک به 20 سال، با پستگرس داره و از مدرسین فعال حوزه ی لاراول هم هست، دوره Mastering Postgres رو منتشر کرده که نزدیک به 11 ساعت آموزش هست.
25 ویدیو اول این دوره رایگان هست که میتونید ازش استفاده کنید.
https://masteringpostgres.com/
@DevTwitter | <Ali Salehi/>
👍35🤣9❤7👎1