Forwarded from Syntax | سینتکس (Daimon)
این آقا خیلی تو لینکدین فارسی سروصدا به پا کرده و تو کتابخونه tensorflow کانتریبیوت کرده.
چند روز پیش تو یه کانال دیگم اشاره کرده بودن اما اینبار تو لینکدین خودمم پستشو دیدم.
هزارو خورده ای ری اکشن با کلی کامنت
اما قسمت دارک ماجرا زمانیه که محتویات کانتریبیوتش رو میبینیم که کلا یدونه کلمه از کامنت رو تغییر داده
واقعا لینکدین خیلی عجیبه
#fun
@Syntax_fa
چند روز پیش تو یه کانال دیگم اشاره کرده بودن اما اینبار تو لینکدین خودمم پستشو دیدم.
هزارو خورده ای ری اکشن با کلی کامنت
اما قسمت دارک ماجرا زمانیه که محتویات کانتریبیوتش رو میبینیم که کلا یدونه کلمه از کامنت رو تغییر داده
واقعا لینکدین خیلی عجیبه
#fun
@Syntax_fa
Forwarded from جادی | Jadi
This media is not supported in your browser
VIEW IN TELEGRAM
قطعه جدیدی از شوپن
چند وقت قبل رابینسون مککلن در حال مرتب کردن بخشی از آرشیو موزه کتابخانه مورگان در منهتن بود که یه دستنوشته قدیمی کوچیک که گوشهاش اسم شوپن نوشته بود توجهاش رو جلب کرد.
اون از دستنوشته عکس گرفت و برای جفری کالبرگ که متخصص شوپن است فرستاد و ... و حالا جفری کالبرگ به تایمز گفته «فکم افتاد! هرگز این رو ندیده بودم».
حالا بعد از بررسی دقیق کاغذ، جوهر، دستخط و سبک موسیقی، کارشناسان معتقد هستن که این یکی از آثار گمشده شوپن است. این والتز احتمالا وقتی شوپن در دهه سوم زندگیش بوده نوشته شده و اینجا لنگ لنگ نوازنده چینی اجراش کرده و منم اینجا می ذارم که یه دقیقه آرامش بخش بشه برامون.
#هنر
پ.ن. ظاهرا به خاطر فرمت در گوشیها درست پخش نمیشد؛ دوباره گذاشتم
چند وقت قبل رابینسون مککلن در حال مرتب کردن بخشی از آرشیو موزه کتابخانه مورگان در منهتن بود که یه دستنوشته قدیمی کوچیک که گوشهاش اسم شوپن نوشته بود توجهاش رو جلب کرد.
اون از دستنوشته عکس گرفت و برای جفری کالبرگ که متخصص شوپن است فرستاد و ... و حالا جفری کالبرگ به تایمز گفته «فکم افتاد! هرگز این رو ندیده بودم».
حالا بعد از بررسی دقیق کاغذ، جوهر، دستخط و سبک موسیقی، کارشناسان معتقد هستن که این یکی از آثار گمشده شوپن است. این والتز احتمالا وقتی شوپن در دهه سوم زندگیش بوده نوشته شده و اینجا لنگ لنگ نوازنده چینی اجراش کرده و منم اینجا می ذارم که یه دقیقه آرامش بخش بشه برامون.
#هنر
پ.ن. ظاهرا به خاطر فرمت در گوشیها درست پخش نمیشد؛ دوباره گذاشتم
Forwarded from Linuxor ?
در نهایت هرچیزی بسازین مردم عادی اونو با front و ظاهرش قضاوتش میکنن؛
این ریپو کلی کامپوننت UI رایگان رو جمع آوری کرده و میتونید توی Web App هاتون استفاده کنید :
https://github.com/karthikmudunuri/eldoraui
🐧 @Linuxor
این ریپو کلی کامپوننت UI رایگان رو جمع آوری کرده و میتونید توی Web App هاتون استفاده کنید :
https://github.com/karthikmudunuri/eldoraui
🐧 @Linuxor
Forwarded from Go Casts 🚀
آپدیت تیمسازی + فیدبک یکی از دوستان نسبت به دوره
این هفته ها با بچه های تیمسازی ۳ بیشتر مشغول solution design و آماده کردن code structure برای پروژه ای هستیم که یه پلتفرم برای رستوران و کافه ها باشه، و سعی کردیم با جدا کردن domain های بیزینسی یه سری microservice رو توسعه بدیم.
هر چند که به شخصه دغدغه ای بابت monolith یا microservice بودن ندارم و دلایلم رو در دوره روی کد گفتم که چرا این سوال اون قدرها هم سوال مهمی نیست، هر چند که microserivce بودن overheadهای خودشو داره.
تخفیف پاییز «دوره +تیمسازی» در آبان ماه هم پابرجاست
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.iss.one/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.iss.one/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
این هفته ها با بچه های تیمسازی ۳ بیشتر مشغول solution design و آماده کردن code structure برای پروژه ای هستیم که یه پلتفرم برای رستوران و کافه ها باشه، و سعی کردیم با جدا کردن domain های بیزینسی یه سری microservice رو توسعه بدیم.
هر چند که به شخصه دغدغه ای بابت monolith یا microservice بودن ندارم و دلایلم رو در دوره روی کد گفتم که چرا این سوال اون قدرها هم سوال مهمی نیست، هر چند که microserivce بودن overheadهای خودشو داره.
تخفیف پاییز «دوره +تیمسازی» در آبان ماه هم پابرجاست
دوره + تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://survey.porsline.ir/s/PISsWn7f
همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.iss.one/gocasts/434
تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.iss.one/gocasts/441
دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4
@gocasts
Forwarded from DevTwitter | توییت برنامه نویسی
خواهشا ردیس را به عنوان 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/>
Forwarded from Code Module | کد ماژول (𔓙)
درود ماژولیتیای گل💙
دوستان گروه از چنل بنا به یک سری دلایل جدا شده. دلیل اصلیش هم نظم دادن به گروه بود و الان با داشتن تاپیکهای لازم، دیگه سوال کسی این وسط گم نمیشه و دسترسیتون به پیام ها خیلی راحت تر خواهد بود.
در صورت داشتن هر گونه سوال، انتقاد و ... میتونید توی گروهمون جوین باشید👇🏻
@CodeModuleGap
دوستان گروه از چنل بنا به یک سری دلایل جدا شده. دلیل اصلیش هم نظم دادن به گروه بود و الان با داشتن تاپیکهای لازم، دیگه سوال کسی این وسط گم نمیشه و دسترسیتون به پیام ها خیلی راحت تر خواهد بود.
در صورت داشتن هر گونه سوال، انتقاد و ... میتونید توی گروهمون جوین باشید👇🏻
@CodeModuleGap
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰خبری از گنوم جدید:
نسخه جدید محیط دسکتاپ GNOME 48 "بنگالورو" قرار است در تاریخ ۱۹ مارس ۲۰۲۵ منتشر شود. این نسخه شامل برنامه زمانبندی انتشار است که تاریخ انتشار آن تعیین شده است. در اینجا میتوانید ببینید چه چیزهایی از این نسخه انتظار میرود!
🔹برنامه زمانبندی انتشار گنوم 48
- گنوم 48 Alpha ژانویه ۲۰۲۵
- گنوم 48 Beta – فوریه ۲۰۲۵
- نامزد انتشار – ۱ مارس ۲۰۲۵
- انتشار نهایی – ۱۹ مارس ۲۰۲۵
🔹یک ویژگی که میدانم در GNOME 48 وجود خواهد داشت، یک برنامه نمایشگر تصاویر Loupe بهبود یافته است که ویژگیهای هیجانانگیزی مانند کنترلهای زوم را شامل میشود. این ویژگیها اجازه میدهد کاربران درصد زوم خاصی را وارد کنند،
یک بارگذار برای فرمتهای تصویر RAW و ویژگیهای اولیه ویرایش تصویر مانند برش تصاویر خواهد داشت.
توسعهدهندگان GNOME قصد دارند بهروزرسانیهای بیشتری برای آخرین نسخه GNOME 47 منتشر کنند که نسخه بعدی آن GNOME 47.2 خواهد بود و برای اواخر نوامبر یا اوایل دسامبر ۲۰۲۴ برنامهریزی شده است.
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت از کانال-donate
https://zarinp.al/learninghive.ir
نسخه جدید محیط دسکتاپ GNOME 48 "بنگالورو" قرار است در تاریخ ۱۹ مارس ۲۰۲۵ منتشر شود. این نسخه شامل برنامه زمانبندی انتشار است که تاریخ انتشار آن تعیین شده است. در اینجا میتوانید ببینید چه چیزهایی از این نسخه انتظار میرود!
🔹برنامه زمانبندی انتشار گنوم 48
- گنوم 48 Alpha ژانویه ۲۰۲۵
- گنوم 48 Beta – فوریه ۲۰۲۵
- نامزد انتشار – ۱ مارس ۲۰۲۵
- انتشار نهایی – ۱۹ مارس ۲۰۲۵
🔹یک ویژگی که میدانم در GNOME 48 وجود خواهد داشت، یک برنامه نمایشگر تصاویر Loupe بهبود یافته است که ویژگیهای هیجانانگیزی مانند کنترلهای زوم را شامل میشود. این ویژگیها اجازه میدهد کاربران درصد زوم خاصی را وارد کنند،
یک بارگذار برای فرمتهای تصویر RAW و ویژگیهای اولیه ویرایش تصویر مانند برش تصاویر خواهد داشت.
توسعهدهندگان GNOME قصد دارند بهروزرسانیهای بیشتری برای آخرین نسخه GNOME 47 منتشر کنند که نسخه بعدی آن GNOME 47.2 خواهد بود و برای اواخر نوامبر یا اوایل دسامبر ۲۰۲۴ برنامهریزی شده است.
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت از کانال-donate
https://zarinp.al/learninghive.ir
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 لینوس توروالدز : هوش مصنوعی ۹۰ درصد تبلیغات و ۱۰ درصد واقعیت است
هرچند هوش مصنوعی قابلیت تغییر جهان را دارد، درحالحاضر بهدلیل تمرکز بیشازحد بر تبلیغات، نمیتوان بهطور کامل به آن اعتماد کرد. وی به این نکته نیز اشاره کرد که بسیاری از کاربردهای فعلی هوش مصنوعی، مانند تولید محتوا با ChatGPT، بیشتر جنبه نمایشی دارند.
https://www.youtube.com/watch?v=s4wlrxFf2lM
#AI
@TheRaymondDev
هرچند هوش مصنوعی قابلیت تغییر جهان را دارد، درحالحاضر بهدلیل تمرکز بیشازحد بر تبلیغات، نمیتوان بهطور کامل به آن اعتماد کرد. وی به این نکته نیز اشاره کرد که بسیاری از کاربردهای فعلی هوش مصنوعی، مانند تولید محتوا با ChatGPT، بیشتر جنبه نمایشی دارند.
https://www.youtube.com/watch?v=s4wlrxFf2lM
#AI
@TheRaymondDev
Forwarded from Galaxy Ai (♪ Ayhan)
Password Generator in Bash
From time to time, you need to change your passwords. Everyone knows that a good password should include uppercase and lowercase Latin letters, numbers, and special characters. Additionally, they should not be too short. Coming up with new passwords each time is becoming increasingly difficult, especially if you use different passwords for different services. You can use programs like pwgen or the generator built into KeepassX for this purpose. Alternatively, you can write a simple password generator in Bash.
Characters Used
We will use the following characters: Uppercase and lowercase letters of the Latin alphabet (A-Z and a-z), numbers (0-9), and the symbols "!@#$%^*()?/|~]{}-+_=<>.,". This combination ensures maximum security.
Password Length
The password length will be 16 characters. If you need a shorter password, you can specify a smaller length in the script or add a command-line option.
Bash Password Generator Script
The first thing we need is a variable containing all the characters we will use. We also need a variable for the password length and a variable to store the password itself.
That's it. This is the entire script. With it, we can generate a password that meets all common security requirements. The only remaining problem is remembering it.
From time to time, you need to change your passwords. Everyone knows that a good password should include uppercase and lowercase Latin letters, numbers, and special characters. Additionally, they should not be too short. Coming up with new passwords each time is becoming increasingly difficult, especially if you use different passwords for different services. You can use programs like pwgen or the generator built into KeepassX for this purpose. Alternatively, you can write a simple password generator in Bash.
Characters Used
We will use the following characters: Uppercase and lowercase letters of the Latin alphabet (A-Z and a-z), numbers (0-9), and the symbols "!@#$%^*()?/|~]{}-+_=<>.,". This combination ensures maximum security.
Password Length
The password length will be 16 characters. If you need a shorter password, you can specify a smaller length in the script or add a command-line option.
Bash Password Generator Script
The first thing we need is a variable containing all the characters we will use. We also need a variable for the password length and a variable to store the password itself.
bash
SYMBOLS=""
for symbol in {A..Z} {a..z} {0..9}; do SYMBOLS=$SYMBOLS$symbol; done
SYMBOLS=$SYMBOLS'!@#$%&*()?/[]{}-+_=<>.,'
# The string with all characters has been created.
# Now we need to loop with the number of iterations equal to the password length
# and randomly select one character to add to the password string.
PWD_LENGTH=16 # password length
PASSWORD="" # variable for storing the password
RANDOM=256 # initialize random number generator
for i in seq 1 $PWD_LENGTH
do
PASSWORD=$PASSWORD${SYMBOLS:$(expr $RANDOM % ${#SYMBOLS}):1}
done
echo $PASSWORD
That's it. This is the entire script. With it, we can generate a password that meets all common security requirements. The only remaining problem is remembering it.
Forwarded from Gopher Academy
🔵 عنوان مقاله
Go Gets High-Resolution Timers on Windows
🟢 خلاصه مقاله:
در این مقاله به بررسی پشتیبانی افزوده شده برای تایمرهای با وضوح بالا در نسخه 1.23 زبان برنامهنویسی Go بر روی سیستمعامل ویندوز پرداخته شده است. در نسخههای پیشین، وضوح تایمرها در حدود 15.6 میلیثانیه بود، اما با بهروزرسانیهای جدید، این وضوح به تقریباً 0.5 میلیثانیه افزایش یافته است. این بهبود قابل توجه، امکان دقت بیشتری را در زمانبندی عملیات و به خصوص در برنامههایی که نیازمند پردازش زمانی دقیق هستند، فراهم میکند. این تغییر میتواند تاثیرات مهمی در بهبود عملکرد کلی برنامههای نوشته شده به زبان Go داشته باشد، به ویژه در محیطهایی که پاسخگویی سریع الزامی است.
🟣لینک مقاله:
https://golangweekly.com/link/160756/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go Gets High-Resolution Timers on Windows
🟢 خلاصه مقاله:
در این مقاله به بررسی پشتیبانی افزوده شده برای تایمرهای با وضوح بالا در نسخه 1.23 زبان برنامهنویسی Go بر روی سیستمعامل ویندوز پرداخته شده است. در نسخههای پیشین، وضوح تایمرها در حدود 15.6 میلیثانیه بود، اما با بهروزرسانیهای جدید، این وضوح به تقریباً 0.5 میلیثانیه افزایش یافته است. این بهبود قابل توجه، امکان دقت بیشتری را در زمانبندی عملیات و به خصوص در برنامههایی که نیازمند پردازش زمانی دقیق هستند، فراهم میکند. این تغییر میتواند تاثیرات مهمی در بهبود عملکرد کلی برنامههای نوشته شده به زبان Go داشته باشد، به ویژه در محیطهایی که پاسخگویی سریع الزامی است.
🟣لینک مقاله:
https://golangweekly.com/link/160756/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Microsoft News
High-Resolution Timers on Windows
The Go Windows port added support for high-resolution timers in Go 1.23, boosting the resolution of time.Sleep from ~15.6ms to ~0.5ms.
Forwarded from DevTwitter | توییت برنامه نویسی
بعد از تجربه چندین پروژه در طراحی پنل و سایت اصلی، چه به صورت فردی و چه در قالب کارهای گروهی، اکنون در فریمورک 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/>
Forwarded from Linuxor ?
مدل های زبانی بزرگ، چطوری زبان انسان رو درک میکنن و بهش پاسخ میدن؟
توی این مقاله با فرض اینکه شما فقط ضرب و تقسیم بلدید آقای Rohit بهتون میگه چطوری LLM ها کار میکنن، البته کوتاه نیست و خوندنش حدود یک ساعت زمان میبره ولی خیلی رَون توضیح داده:
https://towardsdatascience.com/understanding-llms-from-scratch-using-middle-school-math-e602d27ec876
🐧 @Linuxor
توی این مقاله با فرض اینکه شما فقط ضرب و تقسیم بلدید آقای Rohit بهتون میگه چطوری LLM ها کار میکنن، البته کوتاه نیست و خوندنش حدود یک ساعت زمان میبره ولی خیلی رَون توضیح داده:
https://towardsdatascience.com/understanding-llms-from-scratch-using-middle-school-math-e602d27ec876
🐧 @Linuxor
Forwarded from Gopher Academy
✍️Farshad AkbariFarshad Akbari
💡 آشنایی با کتابخانه sync در Go و کاربردهای آن برای مدیریت همزمانی
در برنامهنویسی Go، وقتی چند گوروتین همزمان اجرا میشوند، مدیریت همزمانی و دسترسی به منابع مشترک اهمیت زیادی پیدا میکند. کتابخانه sync در Go ابزارهایی فراهم میکند که به توسعهدهندگان کمک میکند تا این مدیریت را به سادگی و بدون بروز خطا انجام دهند. در ادامه به سه ابزار اصلی این کتابخانه اشاره میکنم:
1️⃣ Mutex (قفل متقابل)
Mutex برای جلوگیری از دسترسی همزمان گوروتینها به یک منبع مشترک استفاده میشود. مثلا اگر چند گوروتین بخواهند به طور همزمان یک متغیر را تغییر دهند، با استفاده از Mutex میتوانیم قفل دسترسی به این منبع را به یک گوروتین محدود کنیم.
2️⃣ WaitGroup (انتظار برای پایان گوروتینها)
وقتی چند گوروتین همزمان اجرا میشوند و میخواهیم تا پایان کار همهی آنها صبر کنیم، WaitGroup کاربرد دارد. این ابزار به ما اجازه میدهد که منتظر بمانیم تا همه گوروتینها کارشان را تمام کنند.
3️⃣ Once (اجرا فقط یکبار)
با استفاده از Once، میتوانیم اطمینان حاصل کنیم که یک تابع فقط یک بار اجرا شود، حتی اگر چند گوروتین به طور همزمان آن را صدا بزنند. این ابزار برای مواردی مثل مقداردهی اولیه بسیار کاربردی است.
🔍 جمعبندی
کتابخانه sync به توسعهدهندگان Go کمک میکند تا همزمانی را به خوبی مدیریت کنند و از بروز مشکلاتی مثل شرایط رقابتی جلوگیری کنند. استفاده درست از این ابزارها باعث افزایش کارایی و ایمنی برنامههای چندوظیفهای میشود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
💡 آشنایی با کتابخانه sync در Go و کاربردهای آن برای مدیریت همزمانی
در برنامهنویسی Go، وقتی چند گوروتین همزمان اجرا میشوند، مدیریت همزمانی و دسترسی به منابع مشترک اهمیت زیادی پیدا میکند. کتابخانه sync در Go ابزارهایی فراهم میکند که به توسعهدهندگان کمک میکند تا این مدیریت را به سادگی و بدون بروز خطا انجام دهند. در ادامه به سه ابزار اصلی این کتابخانه اشاره میکنم:
1️⃣ Mutex (قفل متقابل)
Mutex برای جلوگیری از دسترسی همزمان گوروتینها به یک منبع مشترک استفاده میشود. مثلا اگر چند گوروتین بخواهند به طور همزمان یک متغیر را تغییر دهند، با استفاده از Mutex میتوانیم قفل دسترسی به این منبع را به یک گوروتین محدود کنیم.
2️⃣ WaitGroup (انتظار برای پایان گوروتینها)
وقتی چند گوروتین همزمان اجرا میشوند و میخواهیم تا پایان کار همهی آنها صبر کنیم، WaitGroup کاربرد دارد. این ابزار به ما اجازه میدهد که منتظر بمانیم تا همه گوروتینها کارشان را تمام کنند.
3️⃣ Once (اجرا فقط یکبار)
با استفاده از Once، میتوانیم اطمینان حاصل کنیم که یک تابع فقط یک بار اجرا شود، حتی اگر چند گوروتین به طور همزمان آن را صدا بزنند. این ابزار برای مواردی مثل مقداردهی اولیه بسیار کاربردی است.
🔍 جمعبندی
کتابخانه sync به توسعهدهندگان Go کمک میکند تا همزمانی را به خوبی مدیریت کنند و از بروز مشکلاتی مثل شرایط رقابتی جلوگیری کنند. استفاده درست از این ابزارها باعث افزایش کارایی و ایمنی برنامههای چندوظیفهای میشود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Laravel News
Sprout Multitenancy Package for Laravel https://laravel-news.com/sprout-laravel-multitenancy-package
Laravel News
Sprout Multitenancy Package for Laravel - Laravel News
Sprout is a multitenancy package for Laravel under active development. It hasn't hit a v1.0 release, but we decided to share it with those who want to try it out early and follow along with the development.
Forwarded from ASafaeirad
Today I Learned:
a super handy way to search through commit history to find exactly where a specific line or snippet was added or removed.
Read the article
#git #til
git log -Sa super handy way to search through commit history to find exactly where a specific line or snippet was added or removed.
Read the article
#git #til
Alexharri
Searching for and navigating Git commits
Exploring Git’s built-in tools for searching through and analyzing Git commit logs and diffs.
Forwarded from هوش مصنوعی گفتا
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 لیست سایتهای دانلود فیلم و سریال «بدون سانسور»
https://www.f2medi.ir/
https://almasmovie.website/
https://donyayeserial.com/
https://9movie.tv/
https://bartarmoviz.com
https://mobomovies.co/
https://zedmovie9.fun/
https://miramovie.top/
https://nikimoviez.sbs
https://bcmoviez.cfd/
https://aiofilm.com
https://azintv.site/
https://salamdl.vip/
https://alefmovie.site/
https://moviepovie.com/
https://sorenfilmm.fun
https://fardadl-hd.com/
https://clubmovies4.fun/
https://30namachi.com/
https://acemovies.bid/
https://goldmovieez.sbs/
https://iranfilm.net/
https://bandmoviez.pro/
https://movie-zone.co/
https://mword.cfd/
https://mercimovie.info/
https://animesp.xyz/
https://manhwa.ir/
boxmovie.github.io
#Download
@TheRaymondDev
https://www.f2medi.ir/
https://almasmovie.website/
https://donyayeserial.com/
https://9movie.tv/
https://bartarmoviz.com
https://mobomovies.co/
https://zedmovie9.fun/
https://miramovie.top/
https://nikimoviez.sbs
https://bcmoviez.cfd/
https://aiofilm.com
https://azintv.site/
https://salamdl.vip/
https://alefmovie.site/
https://moviepovie.com/
https://sorenfilmm.fun
https://fardadl-hd.com/
https://clubmovies4.fun/
https://30namachi.com/
https://acemovies.bid/
https://goldmovieez.sbs/
https://iranfilm.net/
https://bandmoviez.pro/
https://movie-zone.co/
https://mword.cfd/
https://mercimovie.info/
https://animesp.xyz/
https://manhwa.ir/
boxmovie.github.io
#Download
@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 قالب وبلاگی که برای پارچ لینوکس نوشتم در بخش مترجم سایت، سهراب (خالق پارچ لینوکس) راضی نکرد.
به ذهنم رسید که یه پست تایپ برای پست فارسی با صفحه جدا فارسی شده ایجاد کنم که نیازی به مترجم سایت نباشد و جدا سازی بدون دردسر انجام شود.
@TheRaymondDev
به ذهنم رسید که یه پست تایپ برای پست فارسی با صفحه جدا فارسی شده ایجاد کنم که نیازی به مترجم سایت نباشد و جدا سازی بدون دردسر انجام شود.
@TheRaymondDev
Forwarded from کانال اطلاعرسانی توزیع پارچ
نسخه جامعه XFCE منتشر شد.
باگهای مربوطه را در گروه پارچ اعلام کنید.
🔗 دریافت از مخزن
@ParchLinux_fa
@ParchLinux
باگهای مربوطه را در گروه پارچ اعلام کنید.
@ParchLinux_fa
@ParchLinux
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from a pessimistic researcher (Kc)
ما بالاخره بعد ۶ ماه، تمام commit های داخلی پروژهی JMC رو پوش کردیم روی برنچ main که به شکل public از طریق این لینک قابل دسترس هستش
https://github.com/mpi-sws-rse/jmc
نسبت به نسخهی قبلی feature های بسیاری اضافه کردیم. منتهی readme آپدیت نیست و بهزودی آپدیتش میکنم.
خوشحال میشم که یک امتحانی بهش بدید و سعی کنید build کنید و اگر موردی بود بهم بگید. توصیه میکنم روی IntelliJ بیلد کنید.
https://github.com/mpi-sws-rse/jmc
نسبت به نسخهی قبلی feature های بسیاری اضافه کردیم. منتهی readme آپدیت نیست و بهزودی آپدیتش میکنم.
خوشحال میشم که یک امتحانی بهش بدید و سعی کنید build کنید و اگر موردی بود بهم بگید. توصیه میکنم روی IntelliJ بیلد کنید.
GitHub
GitHub - mpi-sws-rse/jmc: jmc: Java Model Checker
jmc: Java Model Checker. Contribute to mpi-sws-rse/jmc development by creating an account on GitHub.