Forwarded from DevTwitter | توییت برنامه نویسی
یک بار برای همیشه، redux یا zustand
در این پست به مقایسه redux toolkit و zustand میپردازم. ابتدا توضیح هر کدوم رو میدم و ساختارها رو میگم سپس تفاوت ها و شباهت ها رو میگم. خوبی ها و بدی های هر دو رو میگم. تجربه خودم رو هم میگم.
توضیح redux toolkit و ساختارش:
از پترن slice استفاده میکنه. برای هر بخشی میتوانیم یک slice داشته باشیم. یک slice از استیت و یک سری توابع تشکیل میشه که بوسیله تابع ها، مقدار استیت اش رو تغییر میدیم. برای فراخوانی توابع باید اونا رو dispatch کنیم. هر جا هم که مقدار یک استیت رو خواستیم با selector میایم مقدارش رو میخونیم که از نظر reRender هم بهینه است.
کلا یک provider و store داره. (میتونه چند تا store و provider داشته باشه که توصیه نمیشه).
توضیح zustand و ساختارش:
از پترن خاصی استفاده نمیکند و دست ما کاملا باز است. به سادگی میتوانیم برای هر بخش یک store ایجاد کنیم و از آن استفاده کنیم. در یک store ما هم کلید هایی داریم که داخلش مقادیر رو نگه میداریم و هم توابع رو تعریف میکنیم و همه یک جا هستند (مثل کلید های یک ابجکت). با استفاده از توابع میتوانیم مقادیر استیت رو اپدیت کنیم و نیازی به dispatch کردن نداریم بلکه تنها آن تابع را صدا میزنیم و برای گرفتن مقدار یک استیت از selector استفاده میکنیم که از نظر reRender هم بهینه است.
از ساختار provider استفاده نمیکند و میتوانیم به راحتی چندین store برای هر بخش از برنامه خودمان داشته باشیم.
برای ssr هر کدام چگونه هستند؟
در کتابخانه redux toolkit هنگامی که داریم یک store را ایجاد میکنیم باید توی تابع createStore یک ابجکتی از مقادیر اولیه را بدهیم و اینگونه برای ssr مقدار دهی میشود.
در کتابخانه zustand باید یک provider و context ایجاد کرد و store زوشتند را در کل برنامه به اشتراک گذاشت تا بقیه کامپوننت ها بتوانند به آن دسترسی داشته باشند. حالا در لحظه ای که داره اون کانتکست ایجاد میشه و به اشتراک گذاشته میشه باید store رو با مقادیر اولیه بسازیم و تو کل برنامه به اشتراک بزاریم. (یه جورایی یک store ایجاد میکنیم برای استیت ها و توابع ای که توی ssr نیازش داریم)
خوبی های redux toolkit:
دارای ساختار قوی و نظام مند
استفاده خودکار از immer
عدم نیاز به کانفیگ خاص و نوشتن کد اضافه برای هندل کردن ssr
خوبی های zustand:
در تمام فایل ها میتوان از استیت و توابع استفاده کرد و آنها را صدا زد. (چون برخلاف redux از provider استفاده نمیکند)
قابلیت multiple store. میتوان برای هر بخش که بخواهیم یک store جداگانه ایجاد کنیم.
حجم بسیار پایین gzipped: کمتر از 1 کیلوبایت
سادگی بسیار زیاد و عدم نوشتن کدهای تکراری و رعایت ساختار (حجم کد کمتر => حجم باندل کمتر)
بدی های redux toolkit:
به store در فایل هایی دسترسی داریم که درون provider و به عنوان فرزندی از آن باشند و در خارج از provider به آن دسترسی نداریم. (بر خلاف zustand)
حجم زیادتر gzipped نسبت به zustand: حدود 15 کیلوبایت
تکرار کردن ساختار و نوشتن کدهای تکراری و import های useDispatch و رعایت پترن slice در نتیجه حجم کد بیشتر => حجم باندل بیشتر
بدی های zustand:
عدم ساختار و احتمال کثیفی کد هنگامی که کدها زیاد و زیادتر میشوند.
نیاز به هندل کردن ssr به صورت دستی و نوشتن provider برای آن.
@DevTwitter | <Mohammad Reza G./>
در این پست به مقایسه redux toolkit و zustand میپردازم. ابتدا توضیح هر کدوم رو میدم و ساختارها رو میگم سپس تفاوت ها و شباهت ها رو میگم. خوبی ها و بدی های هر دو رو میگم. تجربه خودم رو هم میگم.
توضیح redux toolkit و ساختارش:
از پترن slice استفاده میکنه. برای هر بخشی میتوانیم یک slice داشته باشیم. یک slice از استیت و یک سری توابع تشکیل میشه که بوسیله تابع ها، مقدار استیت اش رو تغییر میدیم. برای فراخوانی توابع باید اونا رو dispatch کنیم. هر جا هم که مقدار یک استیت رو خواستیم با selector میایم مقدارش رو میخونیم که از نظر reRender هم بهینه است.
کلا یک provider و store داره. (میتونه چند تا store و provider داشته باشه که توصیه نمیشه).
توضیح zustand و ساختارش:
از پترن خاصی استفاده نمیکند و دست ما کاملا باز است. به سادگی میتوانیم برای هر بخش یک store ایجاد کنیم و از آن استفاده کنیم. در یک store ما هم کلید هایی داریم که داخلش مقادیر رو نگه میداریم و هم توابع رو تعریف میکنیم و همه یک جا هستند (مثل کلید های یک ابجکت). با استفاده از توابع میتوانیم مقادیر استیت رو اپدیت کنیم و نیازی به dispatch کردن نداریم بلکه تنها آن تابع را صدا میزنیم و برای گرفتن مقدار یک استیت از selector استفاده میکنیم که از نظر reRender هم بهینه است.
از ساختار provider استفاده نمیکند و میتوانیم به راحتی چندین store برای هر بخش از برنامه خودمان داشته باشیم.
برای ssr هر کدام چگونه هستند؟
در کتابخانه redux toolkit هنگامی که داریم یک store را ایجاد میکنیم باید توی تابع createStore یک ابجکتی از مقادیر اولیه را بدهیم و اینگونه برای ssr مقدار دهی میشود.
در کتابخانه zustand باید یک provider و context ایجاد کرد و store زوشتند را در کل برنامه به اشتراک گذاشت تا بقیه کامپوننت ها بتوانند به آن دسترسی داشته باشند. حالا در لحظه ای که داره اون کانتکست ایجاد میشه و به اشتراک گذاشته میشه باید store رو با مقادیر اولیه بسازیم و تو کل برنامه به اشتراک بزاریم. (یه جورایی یک store ایجاد میکنیم برای استیت ها و توابع ای که توی ssr نیازش داریم)
خوبی های redux toolkit:
دارای ساختار قوی و نظام مند
استفاده خودکار از immer
عدم نیاز به کانفیگ خاص و نوشتن کد اضافه برای هندل کردن ssr
خوبی های zustand:
در تمام فایل ها میتوان از استیت و توابع استفاده کرد و آنها را صدا زد. (چون برخلاف redux از provider استفاده نمیکند)
قابلیت multiple store. میتوان برای هر بخش که بخواهیم یک store جداگانه ایجاد کنیم.
حجم بسیار پایین gzipped: کمتر از 1 کیلوبایت
سادگی بسیار زیاد و عدم نوشتن کدهای تکراری و رعایت ساختار (حجم کد کمتر => حجم باندل کمتر)
بدی های redux toolkit:
به store در فایل هایی دسترسی داریم که درون provider و به عنوان فرزندی از آن باشند و در خارج از provider به آن دسترسی نداریم. (بر خلاف zustand)
حجم زیادتر gzipped نسبت به zustand: حدود 15 کیلوبایت
تکرار کردن ساختار و نوشتن کدهای تکراری و import های useDispatch و رعایت پترن slice در نتیجه حجم کد بیشتر => حجم باندل بیشتر
بدی های zustand:
عدم ساختار و احتمال کثیفی کد هنگامی که کدها زیاد و زیادتر میشوند.
نیاز به هندل کردن ssr به صورت دستی و نوشتن provider برای آن.
@DevTwitter | <Mohammad Reza G./>
Forwarded from Ninja Learn | نینجا لرن
پیشنهادی برای بهتر شدن کانال داری؟ 🧐
خیلی خوشحال میشم که تو کامنتا بهمون بگی ☺️❤️
خیلی خوشحال میشم که تو کامنتا بهمون بگی ☺️❤️
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
نوشن از دستیار هوش مصنوعیاش، Notion AI رونمایی کرده که باهاش میتونه متنها که نوشتید رو خلاصه، فایلهایی که دارید رو تحلیل، با استفاده از سبک نوشتن خودتون متنهای جدید بنویسه، بین برنامههای مختلفی که به نوشن وصل کردید بگرده و اطلاعاتی که لازم دارید رو بهتون بگه.
https://www.notion.so/product/ai
hadi @geekalerts
https://www.notion.so/product/ai
hadi @geekalerts
Forwarded from DevTwitter | توییت برنامه نویسی
ما اغلب گرفتار محدودیتهای ذهنمون هستیم. اینو وقتی دیدم از پورت 1 هم میشه استفاده کرد فهمیدم
@DevTwitter | <M.Ali/>
@DevTwitter | <M.Ali/>
Forwarded from Go Casts 🚀
یه سری مقاله بهتون معرفی میکنم که سعی کرده best practiceهای گولنگ رو بگه. به شخصه خودم سعی میکنم خیلی محتاطانه از کلمه best practice استفاده کنم، چون practiceها حتی اگه خوب باشن، برای صرفا یه سری مسائل و شرایط خاص خوب هستن، و شما نمیتونید به دنبال یه سری practice باشید که همه جا کورکورانه استفاده شون کنید.
اما خب، خوبه که practiceهای مختلف رو بدونید و بخونید و بعد بر اساس نوع مساله ای که دارید تشخیص بدید چه راه حلی رو استفاده کنید.
Introduction to Golang Best Practices
https://golang.withcodeexample.com/blog/introduction-to-golang-best-practices/
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://t.iss.one/gocasts/515
@gocasts
اما خب، خوبه که practiceهای مختلف رو بدونید و بخونید و بعد بر اساس نوع مساله ای که دارید تشخیص بدید چه راه حلی رو استفاده کنید.
Introduction to Golang Best Practices
https://golang.withcodeexample.com/blog/introduction-to-golang-best-practices/
توضیحات «دوره + تیمسازی بکند و گولنگ Go Casts» و تخفیف ۵۰ درصدی رو در این پست میتونید بخونید 👇
https://t.iss.one/gocasts/515
@gocasts
Forwarded from محتوای آزاد سهراب
یک ویدئو ضبط کردم و داخلش سیستم عامل هایکو رو برسی کردم.
هایکو سیستمعامل خیلی جالبیه، توصیه میکنم یکبار امتحانش کنید.
توضیحات:
تماشا از یوتوب:
🔗 https://youtu.be/cf3CQIp7eWM
تماشا از پیرتوب:
🔗 https://tubedu.org/w/icKVTQVi8y7D6rc3yi5mSt
@SohrabContents
هایکو سیستمعامل خیلی جالبیه، توصیه میکنم یکبار امتحانش کنید.
توضیحات:
هایکو با نام openBeOS در سال ۲۰۰۱ منتشر شد، سالی که Be,inc توسط پالم خریدار شد و توسعه BeOS پایان یافت. پروژه openBeOS ایجاد شده بود تا جامعه کاربران BeOS را زنده کند و جایگزینی متنباز و آزاد برای آن به وجود بیاورد.
بی اواس (انگلیسی: BeOS) سیستم عامل شرکت Be .inc است که در سال ۱۹۹۱ ابتدا برای دستگاه های AT&T Hobbit ارائه و پس از آن برای پلتفرم پاورپیسی (بخصوص Bebox , محصول خود این شرکت) و سپس برای Intel x86 منتشر شد. بی اواس برای راحتی استفاده کامپیوتر در کار های روزمره و رقیبی برای اواس ده و ویندوز طراحی شده بود و رابط گرافیکی آن روی اصول "ساده و تمیز بودن" طراحی شده بود . کدینگ به کار رفته در رابط کاربری این سیستم عامل یونیکد بود. این سیستم عامل به موفقیت تجاری خاصی دست نیافت و در سال ۲۰۰۱ همزمان با موفقیت های تجاری مایکروسافت با ویندوز ۲۰۰۰ توسعه اش متوقف شد.
تماشا از یوتوب:
تماشا از پیرتوب:
@SohrabContents
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from محتوای آزاد سهراب
۱۳ روز و ۴ ساعت و ۴۶ دقیقه دیگه تا عرضه شدن بتای عمومی Loops، پلتفرم شبیه تیکتاک در فدیورس.
🔗 https://loops.video
@SohrabContents
@SohrabContents
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
تو این سایت میتونید توزیع های مختلف لینوکس رو به صورت آنلاین اجرا کنید. برای انتخاب توزیع عالیه.
https://distrosea.com/
@DevTwitter | <Javad/>
https://distrosea.com/
@DevTwitter | <Javad/>
Forwarded from Linuxor ?
This media is not supported in your browser
VIEW IN TELEGRAM
با این تریک میتونید بدون نصب یه ابزار اونو روی سیستمتون روی یه کانتینر ایزوله اجرا کنید
docker run -it cmd.cat/htop/iostat
این کامند میاد یه کانتینر میسازه و دوتا ابزار htop و iostat رو روش نصب میکنه و هر چیز دیگه ای رو میتونید با اسلش بهش اضافه کنید، حجم زیادی هم اشغال نمیکنه کانتینر آلپاینه کلا 10 مگابایته.
🐧 @Linuxor
docker run -it cmd.cat/htop/iostat
این کامند میاد یه کانتینر میسازه و دوتا ابزار htop و iostat رو روش نصب میکنه و هر چیز دیگه ای رو میتونید با اسلش بهش اضافه کنید، حجم زیادی هم اشغال نمیکنه کانتینر آلپاینه کلا 10 مگابایته.
🐧 @Linuxor
Forwarded from DevTwitter | توییت برنامه نویسی
چطور در لینوکس جایگزینی برای برنامههای ویندوزی پیدا کنیم؟
اگه تازه اومدین روی لینوکس و دنبال برنامههایی میگردین که مشابه نرمافزارهای ویندوزیتون باشه، ممکنه یه ذره سردرگم بشین. اما نگران نباشید، یه راه خیلی ساده وجود داره،استفاده از سایت:
https://alternativeto.net/
@DevTwitter | <GeeDook/>
اگه تازه اومدین روی لینوکس و دنبال برنامههایی میگردین که مشابه نرمافزارهای ویندوزیتون باشه، ممکنه یه ذره سردرگم بشین. اما نگران نباشید، یه راه خیلی ساده وجود داره،استفاده از سایت:
https://alternativeto.net/
@DevTwitter | <GeeDook/>
Forwarded from دستاوردهای یادگیری عمیق(InTec)
توی عشق و حال با Qwen2.5 بودیم که llama3.2 معرفی شد.
نمیدونم چرا Meta مدل
همینجوری که دارم میخونم گزارش رو؛ این پست آپدیت میشه
مدلهای
تکنیک آماده سازی برای
از نظر بنچمارک تسکهای ویژن مدل
اگر مدل ۱۱-۹۰ میلیاردی رو میخواید با
این تنظیمات vpn برای من جواب داد :
1B, 3B, 11B, 90B
نمیدونم چرا Meta مدل
۲۲-۳۲ میلیاردی نمیدهAs the first Llama models to support vision tasks, the 11B and 90B models required an entirely new model architecture that supports image reasoning.
همینجوری که دارم میخونم گزارش رو؛ این پست آپدیت میشه
مدلهای
1B, 3B هم دارای 128k کانتکس رو پشتیبانی میکنند و مهمترین بخش؛ برای سخت افزارهای Qualcomm and MediaTek اپتیمایز شدند و این گوشیهای آندروید افتادن تو عشق و حال 😁تکنیک آماده سازی برای
Ollama رو هم که آموزش دادم؛ تبدیل کنید و با ollama ببرید روی گوشی تا شرکتهای تولید گوشی خودشون بیارن این قابلیت رو روی آندروید.از نظر بنچمارک تسکهای ویژن مدل
۱۱-۹۰ میلیاردی هر دو امتیازات بسیار بالایی رو دارند؛ توی تمام دیتاستهای معروف و تسکهای مختلف؛ که خب ما میدونیم بنچمارکها به تنهایی دیگه مفید نیستند خیلی.اگر مدل ۱۱-۹۰ میلیاردی رو میخواید با
vpn اروپا درخواست نفرستید درجا رد میشه :Meta-llama has disallowed access to this model in the EU
این تنظیمات vpn برای من جواب داد :
vless://[email protected]:443?security=tls&sni=en.mfa.gov.ir&alpn=h2,http/1.1&allowInsecure=1&fp=randomized&type=ws&path=/H?ed%3D2560&host=en.mfa.gov.ir&encryption=none#%F0%9F%94%92%20VL-WS-TLS%20%F0%9F%87%BA%F0%9F%87%B8%20US-199.232.5.85:443
Forwarded from دستاوردهای یادگیری عمیق(InTec)
اگر متا بهتون دسترسی نداد :
check this link
مدل رو از اینجا دانلود کنید؛ شخصا فردا تست خواهم کرد.
Q4 version from unsloth
check this link
مدل رو از اینجا دانلود کنید؛ شخصا فردا تست خواهم کرد.
Q4 version from unsloth
huggingface.co
alpindale (Alpin)
Conversational Models
Forwarded from Rust for Python developers
من خیلی از این اطلاعات رو در مورد مموری توی
و ... شاید به کار خیلیها نیاد ولی برای
خیلی اتفاقی توی یوتیوب این ویدئو رو شروع کردم و دیدم داره این اطلاعات رو همرو یکجا توضیح میده؛ الان روی دقیقه ۸ هستم و دارم ازین ویدئو لذت میبرم امیدوارم بدرد شما هم بخوره
Youtube Link
بعدش میرم سراغ ۱۵ صفحه
با وجود کم خوابی ۲۴ ساعت گذشته؛ دارم از یادگیری Rust لذت میبرم و همین نمیذاره بخوابم.
Rust مجبور شدم دونه دونه بخونم مثلا اینکه stack: 2MB-8MB
و ... شاید به کار خیلیها نیاد ولی برای
System developer جزو واجبات هست که حداقل یکبار این موارد رو برای زبان برنامهنویسی که کد میزنه ببینه و بررسی کنه.خیلی اتفاقی توی یوتیوب این ویدئو رو شروع کردم و دیدم داره این اطلاعات رو همرو یکجا توضیح میده؛ الان روی دقیقه ۸ هستم و دارم ازین ویدئو لذت میبرم امیدوارم بدرد شما هم بخوره
Youtube Link
بعدش میرم سراغ ۱۵ صفحه
Rust خوندن امروز با وجود کم خوابی ۲۴ ساعت گذشته؛ دارم از یادگیری Rust لذت میبرم و همین نمیذاره بخوابم.
YouTube
Visualizing memory layout of Rust's data types
Covers how a binary is executed, what segments are mapped to memory, the purpose/working of stack and heap memory, and how values of Rust's data types are laid out in memory. The data types that we cover here are integers, char, Vector, slice, String, string…
Forwarded from دستاوردهای یادگیری عمیق(InTec)
یک سری چارت داشتم که ۲-۳ ماه پیش با
متاسفانه
پس فعلا روی این مدل تسکها کاپ رو برگردونیم بدیم به
متاسفم
در عوض مدلهای 1B, 3B متنی توی تستها بیش از حد انتظار بهتر بود (البته من
با این حساب لیست مدلهای من :
البته بعد از انتشار
chatgpt روشون گزارش گرفتم؛ ۵-۶ مورد توسط متخصص تایید شد و باقی هم اشتباهاتش در اومد.متاسفانه
llama3.2 90B روی این تسک خیلی خوب نبود؛ وقتی بهش میگم جوابت رو توضیح بده شروع میکنه اشتباه کردن و یا حتی جواب اول رو تغییر دادن.پس فعلا روی این مدل تسکها کاپ رو برگردونیم بدیم به
allenai/Molmoمتاسفم
meta ولی هنوز روی تصاویر مربوط به چارت و گراف و آنالیز تخصصی hallucination بالایی داری شاید ورژنهای بعدی.در عوض مدلهای 1B, 3B متنی توی تستها بیش از حد انتظار بهتر بود (البته من
1B رو تست کردم). روی تسکی که توی ماه قبل برای تمیز کردن داده داشتم تست گرفتم و نتایجش از هر سه مورد Phi3, Gemma, Qwen2 بهتر بود. (یادم نبود این تسک رو روی Qwen2.5 هم تست کنم)با این حساب لیست مدلهای من :
Flux-Dev --> Image generation.
Molmo --> general vision tasks.
Llama3.2 1B and 3B --> Data cleaning (small model).
Qwen2.5 32B --> General use cases.
Qwen2.5-coder & yi-coder & deepseek-coder-v2 --> coding
البته بعد از انتشار
Qwen2.5-coder 32B قطعا با deepseek خدافظی میکنم ولی تا اون موقع باشه شاید لازم شد.Forwarded from It's FOSS
It's Hacktoberfest time! Here's everything you need to know! 🥇
https://itsfoss.com/hacktoberfest-guide/
https://itsfoss.com/hacktoberfest-guide/
It's FOSS
How to Contribute to Open Source in Hacktoberfest
Hacktoberfest is the best place to give back to open-source projects. Here's everything you need to know about Hacktoberfest and how to participate in it..