Forwarded from Agora (Alireza Azadi)
الان خیلی اتفاقی دیدم که ۷ سال از آخرین فصل شرلوک گذشته! ۷ سال از دیدن بدترین فصل شرلوک گذشت و فراموش کردن گذر زمان الان صاف خورد تو صورتم! بابا من ۲۰۱۷ تازه رفتم دانشگاه! :)) الان هم دیگه رسیدم آخرای مستر و این بین من اندازهی یه دانشنامهی بریتانیکا خاطره و داستان دارم.... پسر ۷ سال واقعا یک عمره!
پینوشت: تو خاطرم هست که اولای دبیرستان، توی صف داشتم به علی و ممد (یکیشون داره الان پزشکی میخونه اون یکی آلمان رفته مستر بگیره توی مواد و متالوژی) که آقا این فصل ۳ رو همین امروز توی kickass تورنت دیدم که سید کردن گذاشتم دانلود (لیچ) بشه. فلش بیارید براتون بریزم :)) همونموقع هم یادمه که کلی منتظر بودم که فصل سه بیاد که ببینیم تکلیف چی میشه.
پینوشت: تو خاطرم هست که اولای دبیرستان، توی صف داشتم به علی و ممد (یکیشون داره الان پزشکی میخونه اون یکی آلمان رفته مستر بگیره توی مواد و متالوژی) که آقا این فصل ۳ رو همین امروز توی kickass تورنت دیدم که سید کردن گذاشتم دانلود (لیچ) بشه. فلش بیارید براتون بریزم :)) همونموقع هم یادمه که کلی منتظر بودم که فصل سه بیاد که ببینیم تکلیف چی میشه.
Forwarded from Laravel News
Laravel 11.24 Released https://laravel-news.com/laravel-11-24-0
Laravel News
Laravel 11.24 Released - Laravel News
The Laravel team released v11.24 this week, with new shorthands for Process fakes, a nullOnUpdate() method for foreign key definitions, support for retrying multiple batch IDs when retrying jobs, and more.
Forwarded from DevTwitter | توییت برنامه نویسی
مقالهای که خوندم یه سوال مصاحبه جاوااسکریپت رو بررسی میکرد که بیشتر آدما اشتباه جواب میدن. اصل قضیه اینه که توی جاوااسکریپت، کد همزمان (Sync) و غیرهمزمان (Async) با هم فرق دارن و باید بدونی چه جوری کار میکنن. مثلاً Promise و setTimeout فرق دارن؛ چون Promise توی یه چیز به اسم “میکروتسک” اجرا میشه و setTimeout توی “ماکروتسک”.
مقاله با مثالای واضح توضیح میده که چطوری اینا صف میشن و توی Event Loop اجرا میشن. یه جورایی، اول میکروتسکها مثل کالبکهای Promise اجرا میشن و بعدش نوبت ماکروتسکها مثل setTimeout میرسه. اگه بخوای یه توسعهدهنده ارشد باشی و توی مصاحبهها بدرخشی، باید قشنگ بفهمی که جاوااسکریپت چجوری این کارا رو میکنه و چطوری ترتیب اجرای تسکها رو هندل میکنه.
خیلی خلاصه: یاد بگیر اولویت تسکا رو بشناسی، چون توی جاوااسکریپت مثل اینه که تو ترافیک، آمبولانس اول میره، بعد ماشینهای دیگه.
https://programming.earthonline.us/can-you-answer-this-senior-level-javascript-promise-interview-question-69f7b6ffc2e7
@DevTwitter <Mohammad Sakizadeh/>
مقاله با مثالای واضح توضیح میده که چطوری اینا صف میشن و توی Event Loop اجرا میشن. یه جورایی، اول میکروتسکها مثل کالبکهای Promise اجرا میشن و بعدش نوبت ماکروتسکها مثل setTimeout میرسه. اگه بخوای یه توسعهدهنده ارشد باشی و توی مصاحبهها بدرخشی، باید قشنگ بفهمی که جاوااسکریپت چجوری این کارا رو میکنه و چطوری ترتیب اجرای تسکها رو هندل میکنه.
خیلی خلاصه: یاد بگیر اولویت تسکا رو بشناسی، چون توی جاوااسکریپت مثل اینه که تو ترافیک، آمبولانس اول میره، بعد ماشینهای دیگه.
https://programming.earthonline.us/can-you-answer-this-senior-level-javascript-promise-interview-question-69f7b6ffc2e7
@DevTwitter <Mohammad Sakizadeh/>
Forwarded from محتوای آزاد سهراب
ولی خب جالبه، اسمی از من و حالا پارچ توی این لیست نیست:
https://opensource-heroes.com/iran/
حتی خیلی کسایی هم که میشناسم نیستن اینجا، حالا یا برتر نیستیم یا الگوریتم سرچ این مارو شامل نمیشه :)))))
@SohrabContents
https://opensource-heroes.com/iran/
حتی خیلی کسایی هم که میشناسم نیستن اینجا، حالا یا برتر نیستیم یا الگوریتم سرچ این مارو شامل نمیشه :)))))
@SohrabContents
Open Source Heroes
Top Iran organizations creating Open Source
Top Iran Organizations creating and contributing to Open Source Software
Forwarded from CleverDevs (Arian)
💢 ایونت ناتپیکسل که تازه دو روزه شروع شده، قبل ها توسط ردیت هم برگزار شده بود که حدود صد و خورده ای میلیون کاربر گرفت.
@CleverDevs - @CleverDevsGp
توضیح خلاصهش اینطوریه که با یه مپ ۱۰۰۰ در ۱۰۰۰ پیکسل، ایونت شروع میشه و ملیتها کامیونیتیها یوتیوبر و استریمرها هرکدوم واس خودشون تیمی میرن و با همکاری اعضا یه پیکسل آرتی رو خلق میکنن و باید سعی کنن تا آخر ایونت حفظش کنن یاهم به پیکسل آرت بقیه اتک میزنن و خرابشون میکنن..
آخر ایونت هم یه اسکرین از کل مپ گرفته میشه که یه تابلو میشه که پر پیکسل آرته و ایردراپ هم نسبت به همکاری که داشتین تعلق میگیره، اگه پایه بودین سر لوگو یکی از زبان های برنامه نویسی تصمیم بگیریم و پیکسل آرتشو یه گوشه ای سعی کنیم با کمک همدیگه بسازیم.
(اگه موافقید ریاکشن 👍 بدین تصمیم گیری کنیم، کل ایردراپی که اکانت رفرال چنل میگیره رو هم واس ممبرا قرعهکشی پریمیوم میزاریم)
@CleverDevs - @CleverDevsGp
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
تبادل تبلیغات ————————————————————————————————-
Forwarded from Trick william
اینجا یاد میگیری هر فایلی رو خودت طراحی کنی هر روز فایل لایه باز و پک 3d و فونت گذاشته میشه 🗂 ✒️
اگه دوست داری میتونی به خانوادمون جوین شی 👇
✉️ @house_of_graphics
اگه دوست داری میتونی به خانوادمون جوین شی 👇
✉️ @house_of_graphics
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