من یک سری ویدیو ساختم که در اونجا سعی کردم تا به بیانی ساده نحوه استفاده و tune کردن مدل های LLM به صورت عملی با استفاده از زبان برنامه نویسی Python را آموزش بدم. برای توضیحات بیشتر به ویدیوی مربوط به مقدمه مراجعه کنید. سرفصل های دوره شامل این موارد است:
1 - مقدمه
2 - شروع به کار با LLMها با استفاده از ابزار transformers
3 - مهندسی Prompt جهت تعامل بهتر با مدل زبانی
4 - ساخت خودکار Prompt
5 - مبحث In-Context Learning
6 - مبحث Retrieval Augmented Generation (RAG) و vectorDB ها
7 - انجام Fine-tune و Alignment مدل های زبانی روی داده جدید
8 - بررسی روش هایی برای ارزیابی کیفیت مدل های LLM
https://www.youtube.com/playlist?list=PLHldQ76_k1klWQE7GyGfLH6m4iHOdVogN
https://github.com/aix64-main/LLMs
@DevTwitter | <Hossein Shahamat/>
1 - مقدمه
2 - شروع به کار با LLMها با استفاده از ابزار transformers
3 - مهندسی Prompt جهت تعامل بهتر با مدل زبانی
4 - ساخت خودکار Prompt
5 - مبحث In-Context Learning
6 - مبحث Retrieval Augmented Generation (RAG) و vectorDB ها
7 - انجام Fine-tune و Alignment مدل های زبانی روی داده جدید
8 - بررسی روش هایی برای ارزیابی کیفیت مدل های LLM
https://www.youtube.com/playlist?list=PLHldQ76_k1klWQE7GyGfLH6m4iHOdVogN
https://github.com/aix64-main/LLMs
@DevTwitter | <Hossein Shahamat/>
🔥16👍4🤣2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
کمپانی Anthropic امروز نسخه ارتقاءیافته Claude 3.5 Sonnet و مدل جدید Claude 3.5 Haiku را معرفی کرد. همچنین قابلیت: استفاده از کامپیوتر. با این قابلیت، میشه Claude را هدایت کرد تا مانند انسانها با کامپیوترها تعامل داشته باشد—با نگاه کردن به مونیتور، کلیک کردن و تایپ کردن متن.
https://www.anthropic.com/news/3-5-models-and-computer-use
@DevTwitter | <Mehdi Allahyari/>
https://www.anthropic.com/news/3-5-models-and-computer-use
@DevTwitter | <Mehdi Allahyari/>
🔥17👍4
DevTwitter | توییت برنامه نویسی
چرا PHP نسبت به بقیه زبانها کندتر است و راهکار چیست؟ قسمت دوم کندی PHP برای شرکتها و سازمانهای بزرگی مانند فیسبوک به یک چالش جدی تبدیل شده بود، زیرا هر فرآیند از ابتدا شروع میشد و این بار اضافی برای سازمانها توجیهپذیر نبود. به همین دلیل فیسبوک تصمیم…
چرا PHP نسبت به بقیه زبانها کندتر است و راهکار چیست؟ قسمت سوم
فیسبوک با معماری خودش تونسته بود جلوی کندی PHP رو بگیره اما باز کفایت نمیکرد برای همین شرکت ها از معماریهای میکروسرویس استفاده میکردن
یعنی برای هر بخش از برنامه از زبان ها و تکنولوژی های مختلف استفاده میکردن
اما وردپرس به مرور که سنگین تر میشد جواب سایتای بزرگ رو نمیداد و سایتای بزرگ از وردپرس کوچ میکردن
تا اینکه با تکنولوژی های ردیس و میم کش و opcache باز میشد امید تازه ایی به وردپرس داد و جلو رفت
اما باز جواب گو نبود و باید یک معماری جدید برای php ساخته میشد.
معماری FrankenPHP یک راه حل سازمانی برای وردپرس بود
یکی از بزرگترین مزایای FrankenPHP این است که، بر خلاف PHP سنتی، پردازشهای قبلی را حفظ میکند و نیازی نیست که هر بار درخواست جدید از صفر شروع شود. این معماری، با استفاده از قابلیتهای مدرنی مانند WebSocket و Server Push، به PHP این امکان را میدهد که به شکلی نزدیک به برنامههای Go عمل کند.
از لحاظ سرعت، FrankenPHP میتواند به طرز چشمگیری به عملکرد زبانهایی مثل Go نزدیک شود. با حذف نیاز به فرآیندهای متعدد و قابلیت پردازش درخواستها در زمان کوتاهتر، FrankenPHP عملکردی مشابه برنامههای نوشته شده با Go و سایر زبانهای بهینه شده برای وب سرورها را ارائه میدهد.
https://github.com/dunglas/frankenphp-wordpress
و امروز اگر یک سازمان و سایت بزرگ وردپرسی دارید میتوانید از این استفاده کنید.
<Farhad Safari/>
فیسبوک با معماری خودش تونسته بود جلوی کندی PHP رو بگیره اما باز کفایت نمیکرد برای همین شرکت ها از معماریهای میکروسرویس استفاده میکردن
یعنی برای هر بخش از برنامه از زبان ها و تکنولوژی های مختلف استفاده میکردن
اما وردپرس به مرور که سنگین تر میشد جواب سایتای بزرگ رو نمیداد و سایتای بزرگ از وردپرس کوچ میکردن
تا اینکه با تکنولوژی های ردیس و میم کش و opcache باز میشد امید تازه ایی به وردپرس داد و جلو رفت
اما باز جواب گو نبود و باید یک معماری جدید برای php ساخته میشد.
معماری FrankenPHP یک راه حل سازمانی برای وردپرس بود
یکی از بزرگترین مزایای FrankenPHP این است که، بر خلاف PHP سنتی، پردازشهای قبلی را حفظ میکند و نیازی نیست که هر بار درخواست جدید از صفر شروع شود. این معماری، با استفاده از قابلیتهای مدرنی مانند WebSocket و Server Push، به PHP این امکان را میدهد که به شکلی نزدیک به برنامههای Go عمل کند.
از لحاظ سرعت، FrankenPHP میتواند به طرز چشمگیری به عملکرد زبانهایی مثل Go نزدیک شود. با حذف نیاز به فرآیندهای متعدد و قابلیت پردازش درخواستها در زمان کوتاهتر، FrankenPHP عملکردی مشابه برنامههای نوشته شده با Go و سایر زبانهای بهینه شده برای وب سرورها را ارائه میدهد.
https://github.com/dunglas/frankenphp-wordpress
و امروز اگر یک سازمان و سایت بزرگ وردپرسی دارید میتوانید از این استفاده کنید.
<Farhad Safari/>
👍34🤣17👎3
با گولنگ معمولا فریمورک خاصی رو استفاده نمیکنم، خود گولنگ خیلی ساده ست و لازم نیست چیزی باهاش استفاده بشه
اما این ابزار بنظرم جالب بود، خودم تا حالا امتحانش نکردم، شاید اگه دنبال توسعه خیلی سریع یه سری crud api ساده باشید این ابزار خیلی تسریع کنه روند توسعه رو براتون.
Sponge is a powerful Go development framework, it's easy to develop web and microservice projects.
https://go-sponge.com
https://github.com/zhufuyi/sponge
@DevTwitter | <Hossein Nazari/>
اما این ابزار بنظرم جالب بود، خودم تا حالا امتحانش نکردم، شاید اگه دنبال توسعه خیلی سریع یه سری crud api ساده باشید این ابزار خیلی تسریع کنه روند توسعه رو براتون.
Sponge is a powerful Go development framework, it's easy to develop web and microservice projects.
https://go-sponge.com
https://github.com/zhufuyi/sponge
@DevTwitter | <Hossein Nazari/>
👍20❤7👎5🤣3
کلاس Database Systems از Andy Pavlo دانشگاه CMU، پاییز 2024.
اپیزودهای زیادی رو گذاشتن و کلاس همچنان برگزار میشه و هر دفعه جلسه بعدیش رو میگذارن.
مربوط به Internal های دیتابیس میشه و کیفیت Presentation و تسلط و توضیحات مدرس بشدت بالاس.
https://youtu.be/APqWIjtzNGE?si=AksBkQkU3SrT7IIQ
@DevTwitter | <Mohsen M./>
اپیزودهای زیادی رو گذاشتن و کلاس همچنان برگزار میشه و هر دفعه جلسه بعدیش رو میگذارن.
مربوط به Internal های دیتابیس میشه و کیفیت Presentation و تسلط و توضیحات مدرس بشدت بالاس.
https://youtu.be/APqWIjtzNGE?si=AksBkQkU3SrT7IIQ
@DevTwitter | <Mohsen M./>
🔥13👍3
ابزار tmux یک ترمینال multiplexer است
یک مشکلی که داره اگر سیستم ریست شود تمام نشست ها میپره
با ابزار Tmux Resurrect این مشکل را حل میکنه و دوباره همه را زنده کنید
https://github.com/tmux-plugins/tmux-resurrect
@DevTwitter | <MehrdadLinux/>
یک مشکلی که داره اگر سیستم ریست شود تمام نشست ها میپره
با ابزار Tmux Resurrect این مشکل را حل میکنه و دوباره همه را زنده کنید
https://github.com/tmux-plugins/tmux-resurrect
@DevTwitter | <MehrdadLinux/>
🔥16🤣3👍1👎1
یه اشاره به این فیچر جدید توی نسخه .NET 9 blazor داشته باشیم بد نیست، از مقدار زیادی کار اضافه جلوگیری میکنه.
زمانی که اپ شما بصورت global interactive باشه و بخواید بعضی از صفحاتتون رو static ssr رندر کنید، دوتا روش جلوتون هست که لینک نحوه انجامشون رو براتون میزارم. خلاصه بخوام بگم خیلی کار باید انجام بدید.
ولی توی ورژن 9 کافیه فقط attribute [ExcludeFromInteractiveRouting]@ رو به صفحتون اضاف کنید. با این کار بصورت خودکار صفحتون از interactive routing خارج میشه.
لینک روش ها:
https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#static-ssr-pages-in-a-globally-interactive-app
@DevTwitter | <Mohammad Sajjadian/>
زمانی که اپ شما بصورت global interactive باشه و بخواید بعضی از صفحاتتون رو static ssr رندر کنید، دوتا روش جلوتون هست که لینک نحوه انجامشون رو براتون میزارم. خلاصه بخوام بگم خیلی کار باید انجام بدید.
ولی توی ورژن 9 کافیه فقط attribute [ExcludeFromInteractiveRouting]@ رو به صفحتون اضاف کنید. با این کار بصورت خودکار صفحتون از interactive routing خارج میشه.
لینک روش ها:
https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#static-ssr-pages-in-a-globally-interactive-app
@DevTwitter | <Mohammad Sajjadian/>
🤣11👍7🔥7❤3
This media is not supported in your browser
VIEW IN TELEGRAM
یک مدل جدید اومده از دانشگاه کارنگی ملون (CMU) به اسم Pangea-7B که هم multimodal و هم multilingual هست که ۳۹ تا زبان از جمله فارسی را پوشش میده. روی یک دیتاست ۶ میلیونی train شده و دقتش خیلی عالیه، تستش کردم.
از جمله کارهایی که ازش میتونید استفاده کنید چت به همراه تصویر، سوال و جواب روی عکس، درست کردن caption برای عکس، استخراج متن از عکس و ....
مدلهای چند زبانه، دارن روز به روز بیشتر و بهتر میشن.
neulab.github.io/Pangea/
@DevTwitter | <Mehdi Allahyari/>
از جمله کارهایی که ازش میتونید استفاده کنید چت به همراه تصویر، سوال و جواب روی عکس، درست کردن caption برای عکس، استخراج متن از عکس و ....
مدلهای چند زبانه، دارن روز به روز بیشتر و بهتر میشن.
neulab.github.io/Pangea/
@DevTwitter | <Mehdi Allahyari/>
👍24👎1
شرکت JetBrains در اقدامی بسیار جوانمردانه و پسندیده، دو تا از IDE های خودش رو برای استفاده غیرتجاری رایگان کرد: Rider و WebStorm.
اگر با فرانتاند یا داتنت سر و کار دارید و تا به امروز اینا رو امتحان نکردید، اکیداً توصیه میکنم حالا که نصبش رایگان و بی دردسر شده، حتما امتحان کنید. سعی کنید از قابلیتهای فراوونی که دارند استفاده کنید تا کد زدن رو برای خودتون راحت و لذتبخش کنید.
پ.ن برای مخاطبان خاص:
آره دوست عزیزم، میدونم VS Code و Visual Studio خیلی خفنن. اما شما یه مدت اینا رو امتحان کن و بعدا مقایسه کن. خیلیا بودن که فکر میکردن هیچی به پای اونا نمیرسه، اما بعدا نظرشون کاملا عوض شد و پشت سرشون هم نگاه نکردن.
@DevTwitter | <Amir Ziapour/>
اگر با فرانتاند یا داتنت سر و کار دارید و تا به امروز اینا رو امتحان نکردید، اکیداً توصیه میکنم حالا که نصبش رایگان و بی دردسر شده، حتما امتحان کنید. سعی کنید از قابلیتهای فراوونی که دارند استفاده کنید تا کد زدن رو برای خودتون راحت و لذتبخش کنید.
پ.ن برای مخاطبان خاص:
آره دوست عزیزم، میدونم VS Code و Visual Studio خیلی خفنن. اما شما یه مدت اینا رو امتحان کن و بعدا مقایسه کن. خیلیا بودن که فکر میکردن هیچی به پای اونا نمیرسه، اما بعدا نظرشون کاملا عوض شد و پشت سرشون هم نگاه نکردن.
@DevTwitter | <Amir Ziapour/>
❤94👍33👎13🤣4🔥1
یک استراکچر حرفهای برای 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👍61🤣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/>
👍49❤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/>
👍91👎16🤣9🔥5❤2
تو این سایت میتونید مقالاتِ پولیِ مدیوم رو رایگان باز کنید. در واقع خودش اشتراکِ مدیوم خریده و از طریقِ این سایت در دسترسِ عموم قرار داده. مدیوم نقطهضعفهاش رو حل کرده. تمامِ روشهایِ قدیمیِ دورزدن paywall از کار افتاده. فقط همین روش جواب میده.
freedium.cfd
@DevTwitter | <Ayub Kokabi/>
freedium.cfd
@DevTwitter | <Ayub Kokabi/>
❤45👍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/>
👍40🔥3👎1
#کدبوک
موضوعات اصلی کتاب شامل:
مفاهیم پایه پردازش زبان طبیعی و یادگیری عمیق
معماری ترانسفورمر و اجزای آن
نحوه آموزش و تنظیم مدلهای زبانی
پیادهسازی عملی یک LLM از صفر
تکنیکهای بهینهسازی و مقیاسپذیری
روشهای ارزیابی عملکرد مدل
چالشهای پیشرو در توسعه LLMها
نکات عملی برای پیادهسازی موفق
این کتاب برای:
متخصصان هوش مصنوعی
دانشجویان یادگیری ماشین
توسعهدهندگانی که میخواهند وارد حوزه LLM شوند
مناسب است و با رویکردی عملی و گام به گام، مفاهیم پیچیده را به شکلی قابل فهم توضیح میدهد.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
موضوعات اصلی کتاب شامل:
مفاهیم پایه پردازش زبان طبیعی و یادگیری عمیق
معماری ترانسفورمر و اجزای آن
نحوه آموزش و تنظیم مدلهای زبانی
پیادهسازی عملی یک LLM از صفر
تکنیکهای بهینهسازی و مقیاسپذیری
روشهای ارزیابی عملکرد مدل
چالشهای پیشرو در توسعه LLMها
نکات عملی برای پیادهسازی موفق
این کتاب برای:
متخصصان هوش مصنوعی
دانشجویان یادگیری ماشین
توسعهدهندگانی که میخواهند وارد حوزه LLM شوند
مناسب است و با رویکردی عملی و گام به گام، مفاهیم پیچیده را به شکلی قابل فهم توضیح میدهد.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
👍25❤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/>
👍27🔥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/>
🔥45👍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/>
👍112🤣8❤3👎3🔥2
یکی ادعا کرده که یه رباتی نوشته که برای هر اگهی کار تو لینکدین رزومه و کاورلتر شخصی سازی شده مینویسه و جواب سوالارم میده و اتومات ایزی اپلای میکنه. باهاش تو ۲۴ ساعت ۱۰۰۰ تا اگهی اپلای کرده و ۵۰ تا مصاحبه گرفته! کدشم تو گیت هاب ۱۸ هزار تا استار گرفته!
https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk
@DevTwitter | <Shana/>
https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk
@DevTwitter | <Shana/>
1👍80🤣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👍12🔥2🤣1