نمایندگان مجلس که به صورت ذاتی فاقد هوش طبیعی می باشند، فراکسیون جدیدی با نام فراکسیون هوش مصنوعی تشکیل دادند.
نائب رئیس این فراکسیون هم دکترای تخصصی کلام اسلامی دارد. (عالی تر از این نمیشه) (اسمش میزاشتن فراکسیون صیانت از هوش مصنوعی قابل هضم تر بود)
چه شوووودددد....
پ. ن: اون پایتون کاره هم که میخواست برای رئیس جمهور نرم افزار جهانی پایتون نصب کنه بیارن کنار دستشون باشه ...قشنگ ۸ سال دیگه ایران تبدیل به بهشت روی زمین میشه...
نائب رئیس این فراکسیون هم دکترای تخصصی کلام اسلامی دارد. (عالی تر از این نمیشه) (اسمش میزاشتن فراکسیون صیانت از هوش مصنوعی قابل هضم تر بود)
چه شوووودددد....
پ. ن: اون پایتون کاره هم که میخواست برای رئیس جمهور نرم افزار جهانی پایتون نصب کنه بیارن کنار دستشون باشه ...قشنگ ۸ سال دیگه ایران تبدیل به بهشت روی زمین میشه...
✨Performance
💥وقتی گوشی میخرید یکی از پارامتر هایی که در مورد صفحه نمایش توجه تون رو جلب میکنه با واحد هرتز بیان میشه.
مثلن میگن نرخ نوسازی این نمایشگر
60 Hz, 90Hz, 120Hz,...
هست...
⚠️در مورد هر صفحه نمایش دیگه به غیر از گوشی هم میتونه صادق باشه.
💥 یک صفحه نمایش ۶۰ هرتز، هر ثانیه ۶۰ بار تصویر خودش رو بروز میکنه و یک صفحه نمایش ۱۲۰ هرتز، هر ثانیه ۱۲۰ بار...
💥این تصویر باید از جایی تامین بشه ...
پردازنده گرافیکی یا GPU این تصویر رو رندر میکنه
💥اینجا از frame rate استفاده میکنن و واحد fps...
fps => frame per seconds
وقتی میگیم 60 fps یعنی اون GPU در هر ثانیه میتونه ۶۰ فریم رو رندر کنه.
⚠️حالا اینکه باید بین GPU و صفحه نمایش هماهنگی باشه و هرتز این یکی با frame rate اون یکی، هماهنگ باشن رو کاری نداریم.
🟢فرض کنیم یه دیوایسی داریم با نمایشگر ۶۰ هرتز و GPU هم frame rate اش برابر ۶۰ هست...
این یعنی وقتی کاربر داره یه انیمیشن یا تصویر متحرک رو میبینه یا داره یه محتوایی رو اسکرول میکنه یا به هر صورتی یه چیز متحرکی جلوشه... تقریبن هر ۱۶ میلی ثانیه یک بار باید یه فریم جدید رندر بشه و تحویلش داده بشه... وگرنه کاربر با لگ روبرو میشه...
❓چرا؟
⚠️درخواست ساخته شدن این فریم ها هر ۱۶ میلی ثانیه یکبار صادر میشه و وقتی یه فریم از دست رفت ۱۶ میلی ثانیه طول میکشه تا درخواست ساخته شدن فریم بعدی صادر بشه
پس وقتی یه فریم از دست بره کاربر یه تصویر اون وسط رو نمیبنه و یهو یه پرش ایجاد میشه.
❓حالا وظیفه ما به عنوان برنامه نویس چیه؟
✅وقتی داری محتوای متحرک نشون کاربرت میدی، نباید انقدر کارهای سنگین انجام بدی که یهو یه فریم اون وسط از دست بره.
یعنی کارهایی که انجام میدی باید انقدری سبک باشن که پردازنده رو انقدری درگیر نکنه که از وقت موعود (۱۶ میلی ثانیه) بگذره و پردازنده همچنان درگیر اون کارها باشه و نتونه فریم جدید رو سر وقت رندر کنه...
✅اگه کارهای سنگین وجود داشت منتقل میکنی به یه thread دیگه و ui thread رو ازاد میکنی..
😍توضیحات دقیق در اینده توی یک مقاله...
@purecoder_ir
💥وقتی گوشی میخرید یکی از پارامتر هایی که در مورد صفحه نمایش توجه تون رو جلب میکنه با واحد هرتز بیان میشه.
مثلن میگن نرخ نوسازی این نمایشگر
60 Hz, 90Hz, 120Hz,...
هست...
⚠️در مورد هر صفحه نمایش دیگه به غیر از گوشی هم میتونه صادق باشه.
💥 یک صفحه نمایش ۶۰ هرتز، هر ثانیه ۶۰ بار تصویر خودش رو بروز میکنه و یک صفحه نمایش ۱۲۰ هرتز، هر ثانیه ۱۲۰ بار...
💥این تصویر باید از جایی تامین بشه ...
پردازنده گرافیکی یا GPU این تصویر رو رندر میکنه
💥اینجا از frame rate استفاده میکنن و واحد fps...
fps => frame per seconds
وقتی میگیم 60 fps یعنی اون GPU در هر ثانیه میتونه ۶۰ فریم رو رندر کنه.
⚠️حالا اینکه باید بین GPU و صفحه نمایش هماهنگی باشه و هرتز این یکی با frame rate اون یکی، هماهنگ باشن رو کاری نداریم.
🟢فرض کنیم یه دیوایسی داریم با نمایشگر ۶۰ هرتز و GPU هم frame rate اش برابر ۶۰ هست...
این یعنی وقتی کاربر داره یه انیمیشن یا تصویر متحرک رو میبینه یا داره یه محتوایی رو اسکرول میکنه یا به هر صورتی یه چیز متحرکی جلوشه... تقریبن هر ۱۶ میلی ثانیه یک بار باید یه فریم جدید رندر بشه و تحویلش داده بشه... وگرنه کاربر با لگ روبرو میشه...
❓چرا؟
⚠️درخواست ساخته شدن این فریم ها هر ۱۶ میلی ثانیه یکبار صادر میشه و وقتی یه فریم از دست رفت ۱۶ میلی ثانیه طول میکشه تا درخواست ساخته شدن فریم بعدی صادر بشه
پس وقتی یه فریم از دست بره کاربر یه تصویر اون وسط رو نمیبنه و یهو یه پرش ایجاد میشه.
❓حالا وظیفه ما به عنوان برنامه نویس چیه؟
✅وقتی داری محتوای متحرک نشون کاربرت میدی، نباید انقدر کارهای سنگین انجام بدی که یهو یه فریم اون وسط از دست بره.
یعنی کارهایی که انجام میدی باید انقدری سبک باشن که پردازنده رو انقدری درگیر نکنه که از وقت موعود (۱۶ میلی ثانیه) بگذره و پردازنده همچنان درگیر اون کارها باشه و نتونه فریم جدید رو سر وقت رندر کنه...
✅اگه کارهای سنگین وجود داشت منتقل میکنی به یه thread دیگه و ui thread رو ازاد میکنی..
😍توضیحات دقیق در اینده توی یک مقاله...
@purecoder_ir
Forwarded from Mr lVl
سلام دوستان
اپدیت جدیدی برای برنامم منتشر کردم. لطفاً حمایت کنید و نظراتتونو در موردش بگید. ممنون
🔹 معرفی:
▪️برنامه «یادآور نوشیدن آب» به راحتی میتونه به شما در یادآوری نوشیدن آب در طول روز کمک کنه.
▪️این برنامه با پشتیبانی از زبان فارسی و انگلیسی و تقویم هجری شمسی و میلادی، مقدار آب مورد نیاز بدن شما رو بر اساس وزن و جنسیت شما محاسبه میکنه و به شما یادآوری میکنه که در طول روز چقدر باید آب بنوشید.
▪️ شما میتونید رکوردهای گذشته خودتون رو مشاهده و ویرایش کنید.
▪️نمایش میزان مصرف اب در نمودار
🔹🔹 تغییرات:
▪️خاموش و روشن کردن نوتیفیکیشها از صفحه اصلی
▪️افزودن تم دارک و لایت
▪️رفع مشکل تغییر زبان لوکال نوتیفیکیشن
▪️ گرد شدن گوشه های آیکون برنامه
▪️رفع ایرادات جزیی در رابط کاربری
🔹🔹 لینک دانلود:
🌐 https://play.google.com/store/apps/details?id=com.mrlvl.drink_water_reminder
امیدوارم برنامه یادآور نوشیدن آب برای شما در حفظ سلامتیتون مفید باشه🌱
🔹🔹ارسال نظرات برای توسعه دهنده:
☑️ Telegram: @mr3lvl
☑️ Email: drinkwater1368@gmail.com
@purecoder_ir
اپدیت جدیدی برای برنامم منتشر کردم. لطفاً حمایت کنید و نظراتتونو در موردش بگید. ممنون
🔹 معرفی:
▪️برنامه «یادآور نوشیدن آب» به راحتی میتونه به شما در یادآوری نوشیدن آب در طول روز کمک کنه.
▪️این برنامه با پشتیبانی از زبان فارسی و انگلیسی و تقویم هجری شمسی و میلادی، مقدار آب مورد نیاز بدن شما رو بر اساس وزن و جنسیت شما محاسبه میکنه و به شما یادآوری میکنه که در طول روز چقدر باید آب بنوشید.
▪️ شما میتونید رکوردهای گذشته خودتون رو مشاهده و ویرایش کنید.
▪️نمایش میزان مصرف اب در نمودار
🔹🔹 تغییرات:
▪️خاموش و روشن کردن نوتیفیکیشها از صفحه اصلی
▪️افزودن تم دارک و لایت
▪️رفع مشکل تغییر زبان لوکال نوتیفیکیشن
▪️ گرد شدن گوشه های آیکون برنامه
▪️رفع ایرادات جزیی در رابط کاربری
🔹🔹 لینک دانلود:
🌐 https://play.google.com/store/apps/details?id=com.mrlvl.drink_water_reminder
امیدوارم برنامه یادآور نوشیدن آب برای شما در حفظ سلامتیتون مفید باشه🌱
🔹🔹ارسال نظرات برای توسعه دهنده:
☑️ Telegram: @mr3lvl
☑️ Email: drinkwater1368@gmail.com
@purecoder_ir
💥بلور کردن VS Code
😝اگه مثل من بعد از یه مدتی تم وی اس کد واست تکراری میشه و دوست داری عوضش کنی... تم بلور رو هم امتحان کن😅
✅من با افزونه ی Vibrancy Continued این کارو کردم.
لینک افزونه:
https://marketplace.visualstudio.com/items?itemName=illixion.vscode-vibrancy-continued
@purecoder_ir
😝اگه مثل من بعد از یه مدتی تم وی اس کد واست تکراری میشه و دوست داری عوضش کنی... تم بلور رو هم امتحان کن😅
✅من با افزونه ی Vibrancy Continued این کارو کردم.
لینک افزونه:
https://marketplace.visualstudio.com/items?itemName=illixion.vscode-vibrancy-continued
@purecoder_ir
Forwarded from Persian Flutter (PayamZ)
This media is not supported in your browser
VIEW IN TELEGRAM
خب خب یه چالش داریم براتون
اگه همچین دیزاینی بهتون میدادن
چطور اون رو تو فلاتر پیاده میکردید؟
@persian_flutter
اگه همچین دیزاینی بهتون میدادن
چطور اون رو تو فلاتر پیاده میکردید؟
@persian_flutter
Forwarded from Pure Coder (Mohammad Taheri)
⭕️آدرس سایت:
https://purecoder.ir
⭕️کانال:
@purecoder_ir
⭕️گروه:
@purecoder_gp
⭕️پشتیبانی:
@PureCoder_support
⭕️بحث و گفت و گو (Clean Code,... ):
@PureTalk_gp
https://purecoder.ir
⭕️کانال:
@purecoder_ir
⭕️گروه:
@purecoder_gp
⭕️پشتیبانی:
@PureCoder_support
⭕️بحث و گفت و گو (Clean Code,... ):
@PureTalk_gp
This media is not supported in your browser
VIEW IN TELEGRAM
💥Challenge
این رو توی فلاتر چطوری میزنید؟
یه GridView ... خیلی خب
ولی قابلیت zoom کردن داره و میشه بزرگ و کوچیکش کرد
⚠️راه حل غیر پکیجی
@purecoder_ir
این رو توی فلاتر چطوری میزنید؟
یه GridView ... خیلی خب
ولی قابلیت zoom کردن داره و میشه بزرگ و کوچیکش کرد
⚠️راه حل غیر پکیجی
@purecoder_ir
💥حالت های مختلف برابری دو Object در دنیای برنامه نویسی
🟢توی شرایط مختلف نیاز پیدا می کنیم که دو object رو با اپریتور == یا با متد equals مقایسه کنیم...
🤔میدونستی که میشه این کارو به روش های مختلف هندل کرد؟
😍توی این مقاله ما سه روش رو بررسی کردیم
✅مقایسه با Reference
✅مقایسه با Identity
✅مقایسه با Structure
@purecoder_ir
🟢توی شرایط مختلف نیاز پیدا می کنیم که دو object رو با اپریتور == یا با متد equals مقایسه کنیم...
🤔میدونستی که میشه این کارو به روش های مختلف هندل کرد؟
😍توی این مقاله ما سه روش رو بررسی کردیم
✅مقایسه با Reference
✅مقایسه با Identity
✅مقایسه با Structure
@purecoder_ir
Forwarded from Persian Flutter (PayamZ)
چالش ساخت Drop Down رو یادتونه؟
تو این مقاله باهم یاد میگیریم که چطور یه DropDown بسازیم و در کنار اون با ویجت هایی مثل
OverlayPortal ,LayerLink, CompositedTransformTarget, CompositedTransformFollower
آشنا میشیم
لایک فراموش نشه
https://medium.com/snapp-x/creating-custom-dropdowns-with-overlayportal-in-flutter-4f09b217cfce
تو این مقاله باهم یاد میگیریم که چطور یه DropDown بسازیم و در کنار اون با ویجت هایی مثل
OverlayPortal ,LayerLink, CompositedTransformTarget, CompositedTransformFollower
آشنا میشیم
لایک فراموش نشه
https://medium.com/snapp-x/creating-custom-dropdowns-with-overlayportal-in-flutter-4f09b217cfce
Medium
Creating Custom Dropdowns with OverlayPortal in Flutter
One of the most common widgets in Flutter is the Material Dropdown. However, there is a problem: It’s not customizable!
توی انیمیشن های فلاتر (Animation) از چه دیزاین پترنی استفاده شده؟
Anonymous Quiz
20%
Composite
19%
Decorator
52%
Observer
8%
Visitor
Forwarded from Persian Flutter (PayamZ)
This media is not supported in your browser
VIEW IN TELEGRAM
با پکیج Flex Drop Down به سادگی میتونید هر Drop Down ای که دوست دارید رو درست کنید
https://github.com/Snapp-X/flex_dropdown
https://github.com/Snapp-X/flex_dropdown
💥Flutter Tip
💥قبلن MediaQuery توسط WidgetsApp یا حالا به عبارتی توسط MaterialApp توی درخت قرار میگرفت.
💥توی ورژن های جدید دیگه اینجوری نیست و MediaQuery از یه لول بالاتر توی درخت قرار میگیره!!!
💥همین طور که توی کد بالا میبینی, با context ای که بالاتر از MaterialApp هست به MediaQuery دسترسی دارم!!!
❓حالا اگه گفتی این تغییر به خاطر چیه؟
❓در آینده قراره چه اتفاقی توی فلاتر رخ بده که چنین تغییری ایجاد شده؟
❓چه انقلابی در راهه؟
@purecoder_ir
💥قبلن MediaQuery توسط WidgetsApp یا حالا به عبارتی توسط MaterialApp توی درخت قرار میگرفت.
💥توی ورژن های جدید دیگه اینجوری نیست و MediaQuery از یه لول بالاتر توی درخت قرار میگیره!!!
💥همین طور که توی کد بالا میبینی, با context ای که بالاتر از MaterialApp هست به MediaQuery دسترسی دارم!!!
❓حالا اگه گفتی این تغییر به خاطر چیه؟
❓در آینده قراره چه اتفاقی توی فلاتر رخ بده که چنین تغییری ایجاد شده؟
❓چه انقلابی در راهه؟
@purecoder_ir
Forwarded from Jadi Var Log
این چند وقت صحبت از زبان موجو هم زیاده. زبانی که ادعا میکنه مناسب ای.آی. است و گاهی۳۵هزار برابر سریعتر از پایتون است و ..
توی این ویدئو نگاهی کوتاه به کلیت ماجرا میندازم و میبینیم چرا موجویی که هنوز حتی نیومده اینقدر در خبرها است و ما باید چیکار کنیم(:
https://youtu.be/HwkS8dhKy1I
توی این ویدئو نگاهی کوتاه به کلیت ماجرا میندازم و میبینیم چرا موجویی که هنوز حتی نیومده اینقدر در خبرها است و ما باید چیکار کنیم(:
https://youtu.be/HwkS8dhKy1I
YouTube
نگاهی به زبان جدید برنامه نویسی موجو و بحث اینکه «چی یاد بگیریم؟.. نکنه...» (:
در این چند وقت ویدئوها و اخبار زیادی در مورد زبانی به اسم موجو هست که ادعا میکنه در بعضی مسائل، ۳۵هزار برابر سریعتر از پایتون ران میشه. زبانی که میگه برای هوش مصنوعی مناسبه و هنوز هم هیچ کس ازش چیز درستی نمیدونه چون اصولا هنوز حتی منتشر نشده. اما خب چنین…
Forwarded from Persian Flutter (PayamZ)
Forwarded from Saeed Ahmadi
دوستان سلام.
یه مشکلی که خیلی از برنامهنویسای اپ دارن، هندل کردن حالت های مختلف fail شدن یه ریکوسته.
مثلاً توی اپ هر ریکوستی میتونه به یه سری مشکل بخوره.
1. اینکه اینترنت گوشی کاربر خاموش باشه.
2. کاربر توکن نداشته باشه (لاگین نباشه) یا توکن منقضی شده باشه.
3. سرور 500 بگیریم
حالتهای دیگهای هم داریم که فعلا کاری باهاش ندارم.
توی هرکدوم از این حالتها ممکنه بخوایم کاربر رو بفرستیم به یه صفحه دیگه و یا یه دیالوگ نشون بدیم. برای بعضی خیلی از ارورها هم میخوایم که داخل این صفحه یا دیالوگ یه دکمه retry هم داشته باشیم که کاربر اگه روش زد همون ریکوستی که fail شده دوباره زده بشه.
قاعدتاً ما نباید برای هر ریکوستی به صورت جدا این موارد رو چک کنیم، و باید یه بار نوشته بشن و برای ریکوستها استفاده بشن.
کسی تا حالا این مشکل رو به صورت اصولی و طبق قواعد معماری کلین و سالید و کلین کد حل کرده؟
راه حلهایی هست که کانتکس پاس بدیم یا از یه navigator گلوبال استفاده کنیم، اما به نظرم اصولی نیست.
کانتکس رو نباید از ui بدیم بره بیرون.
اگه سمپل یا راهنماییای در این مورد دارید، ممنون میشم بگید.
یه مشکلی که خیلی از برنامهنویسای اپ دارن، هندل کردن حالت های مختلف fail شدن یه ریکوسته.
مثلاً توی اپ هر ریکوستی میتونه به یه سری مشکل بخوره.
1. اینکه اینترنت گوشی کاربر خاموش باشه.
2. کاربر توکن نداشته باشه (لاگین نباشه) یا توکن منقضی شده باشه.
3. سرور 500 بگیریم
حالتهای دیگهای هم داریم که فعلا کاری باهاش ندارم.
توی هرکدوم از این حالتها ممکنه بخوایم کاربر رو بفرستیم به یه صفحه دیگه و یا یه دیالوگ نشون بدیم. برای بعضی خیلی از ارورها هم میخوایم که داخل این صفحه یا دیالوگ یه دکمه retry هم داشته باشیم که کاربر اگه روش زد همون ریکوستی که fail شده دوباره زده بشه.
قاعدتاً ما نباید برای هر ریکوستی به صورت جدا این موارد رو چک کنیم، و باید یه بار نوشته بشن و برای ریکوستها استفاده بشن.
کسی تا حالا این مشکل رو به صورت اصولی و طبق قواعد معماری کلین و سالید و کلین کد حل کرده؟
راه حلهایی هست که کانتکس پاس بدیم یا از یه navigator گلوبال استفاده کنیم، اما به نظرم اصولی نیست.
کانتکس رو نباید از ui بدیم بره بیرون.
اگه سمپل یا راهنماییای در این مورد دارید، ممنون میشم بگید.