♨️اپل فیس آیدی را به دنیای مک میآورد
چندین سالی میشود که اپل فیس آیدی را جایگزین تاچ آیدی در آیفونهای خود کرده و آپید پرو نیز به این فناوری مجهز شده است. حالا ظاهرا باید منتظر ورود آن به دنیای مک باشیم.
در حال حاضر مک بوک خود را میتوانید توسط پسورد یا تاچ آیدی آنلاک کنید، اما اخیرا 9to5Mac به کدی در نسخه بتای سیستم عامل مک او اس Big Sur دست پیدا کرده که نشان میدهد فیس آیدی احتمالا در آینده وارد کامپیوترهای اپل میشود.
به نظر میرسد کد موجود در این سیستم عامل به اسم رمز اپل برای دوربین TrueDepth اشاره دارد. این دوربین باعث میشود کاربران به فیس آیدی در محصولاتی مانند گوشیهای سری آیفون ۱۱ و آیپد پرو دست پیدا کند، البته مکهای کنونی و همچنین نسل جدید آیفون SE از چنین قابلیتی محروم هستند. در این کد عبارتهای «FaceDetect» و «BioCapture» نیز به چشم میخورند که از تشخیص چهره بیومتریک خبر میدهد.
در صورتی که فناوری تشخیص چهره به دنیای مک راه پیدا کند، میتوان با استفاده از آن قفل دستگاه را باز کرد و نرم افزارهای واقعیت افزوده از چهره کاربر یک نقشه تهیه میکنند. فیس آیدی در مک بوکها میتواند کاربرد زیادی داشته باشد، مخصوصا اگر از نسخه جدید سافاری استفاده کنید.
https://dgto.ir/1rya
چندین سالی میشود که اپل فیس آیدی را جایگزین تاچ آیدی در آیفونهای خود کرده و آپید پرو نیز به این فناوری مجهز شده است. حالا ظاهرا باید منتظر ورود آن به دنیای مک باشیم.
در حال حاضر مک بوک خود را میتوانید توسط پسورد یا تاچ آیدی آنلاک کنید، اما اخیرا 9to5Mac به کدی در نسخه بتای سیستم عامل مک او اس Big Sur دست پیدا کرده که نشان میدهد فیس آیدی احتمالا در آینده وارد کامپیوترهای اپل میشود.
به نظر میرسد کد موجود در این سیستم عامل به اسم رمز اپل برای دوربین TrueDepth اشاره دارد. این دوربین باعث میشود کاربران به فیس آیدی در محصولاتی مانند گوشیهای سری آیفون ۱۱ و آیپد پرو دست پیدا کند، البته مکهای کنونی و همچنین نسل جدید آیفون SE از چنین قابلیتی محروم هستند. در این کد عبارتهای «FaceDetect» و «BioCapture» نیز به چشم میخورند که از تشخیص چهره بیومتریک خبر میدهد.
در صورتی که فناوری تشخیص چهره به دنیای مک راه پیدا کند، میتوان با استفاده از آن قفل دستگاه را باز کرد و نرم افزارهای واقعیت افزوده از چهره کاربر یک نقشه تهیه میکنند. فیس آیدی در مک بوکها میتواند کاربرد زیادی داشته باشد، مخصوصا اگر از نسخه جدید سافاری استفاده کنید.
https://dgto.ir/1rya
دیجیاتو
اپل فیس آیدی را به دنیای مک میآورد
چندین سالی میشود که اپل فیس آیدی را جایگزین تاچ آیدی در آیفونهای خود کرده و آپید پرو نیز به این فناوری مجهز شده است....
از یک فستفود در فاصله ی 10 کیلومتری پیتزا سفارش میدهید. اگر پیتزا از قبل آماده ارسال باشد و پیک هم با سرعت 100 کیلومتر بر ساعت حرکت کند حداقل 6 دقیقه طول میکشد تا پیتزا به دست شما برسد و 12 دقیقه طول میکشد تا فستفود از تحویل باخبر شود.
تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.
پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.
در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.
مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.
پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.
در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.
مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
قابلیت Nearby Share گوگل از مرداد در دسترس کاربران اندروید قرار میگیرد
قابلیت Nearby Share گوگل مشابه ایر دراپ در آی او اس، به کاربران اجازه به اشتراک گذاری فایلها میان دو گوشی اندرویدی را میدهد و حالا تاریخ عرضه احتمالی آن مشخص شده است.
به نظر میرسد که گوگل در مراحل پایانی تست و بررسی قابلیت به اشتراک گذاری Nearby Share قرار دارد و فاصله چندانی با انتشار نسخه نهایی آن نداریم. منابع خبری مطلع از این ویژگی، ارتباطی با مقامات رسمی گوگل ندارند اما صحبتها پیرامون این قابلیت به تازگی افزایش یافته و حالا ما بازهی زمانی احتمالی که قرار است این ویژگی جدید در اختیار کاربران اندروید قرار بگیرد را میدانیم.
طبق این گزارش قرار است از شروع ماه آگوست یعنی از اواسط مرداد ماه، کاربرانی که دارای گوشی های اندروید ۶ و بالاتر هستند، قادر به استفاده از آن باشند و اضافه شدن پشتیبانی از این ویژگی از طریق یک آپدیت انجام میگیرد. پیش از این نیز در مراحل تست نسخه بتای قابلیت Nearby Share گوگل، حداقل ورژن سیستم عامل برای پشتیبانی از این قابلیت به همین شکل اعلام شده بود و این احتمال حقیقی بودن گزارش را بالاتر میبرد.
مراحل تست نسخه بتا هنوز هم ادامه دارد و مدلهایی که از آن پشتیبانی میکنند، با دریافت یک نسخه بتا از سرویسهای گوگل پلی میتوانند آن را دریافت کنند. برخلاف دیگر ویژگیهای سطح پایین اندروید که بخشی از خود سیستم عامل به شمار میروند، قابلیت Nearby Share گوگل بخشی از فریم ورک محسوب میشود و به همین دلیل منطقی خواهد بود که تمام کاربران اندروید ۶ و نسخههای بعدی این سیستم عامل به راحتی از طریق یک پکیج بروزرسانی درون فروشگاه گوگل پلی، بتوانند آن را دریافت کنند.
https://www.gsmarena.com/google_nearby_share_could_be_coming_to_most_android_users_starting_august-news-44338.php
قابلیت Nearby Share گوگل مشابه ایر دراپ در آی او اس، به کاربران اجازه به اشتراک گذاری فایلها میان دو گوشی اندرویدی را میدهد و حالا تاریخ عرضه احتمالی آن مشخص شده است.
به نظر میرسد که گوگل در مراحل پایانی تست و بررسی قابلیت به اشتراک گذاری Nearby Share قرار دارد و فاصله چندانی با انتشار نسخه نهایی آن نداریم. منابع خبری مطلع از این ویژگی، ارتباطی با مقامات رسمی گوگل ندارند اما صحبتها پیرامون این قابلیت به تازگی افزایش یافته و حالا ما بازهی زمانی احتمالی که قرار است این ویژگی جدید در اختیار کاربران اندروید قرار بگیرد را میدانیم.
طبق این گزارش قرار است از شروع ماه آگوست یعنی از اواسط مرداد ماه، کاربرانی که دارای گوشی های اندروید ۶ و بالاتر هستند، قادر به استفاده از آن باشند و اضافه شدن پشتیبانی از این ویژگی از طریق یک آپدیت انجام میگیرد. پیش از این نیز در مراحل تست نسخه بتای قابلیت Nearby Share گوگل، حداقل ورژن سیستم عامل برای پشتیبانی از این قابلیت به همین شکل اعلام شده بود و این احتمال حقیقی بودن گزارش را بالاتر میبرد.
مراحل تست نسخه بتا هنوز هم ادامه دارد و مدلهایی که از آن پشتیبانی میکنند، با دریافت یک نسخه بتا از سرویسهای گوگل پلی میتوانند آن را دریافت کنند. برخلاف دیگر ویژگیهای سطح پایین اندروید که بخشی از خود سیستم عامل به شمار میروند، قابلیت Nearby Share گوگل بخشی از فریم ورک محسوب میشود و به همین دلیل منطقی خواهد بود که تمام کاربران اندروید ۶ و نسخههای بعدی این سیستم عامل به راحتی از طریق یک پکیج بروزرسانی درون فروشگاه گوگل پلی، بتوانند آن را دریافت کنند.
https://www.gsmarena.com/google_nearby_share_could_be_coming_to_most_android_users_starting_august-news-44338.php
GSMArena
Google Nearby Share could be coming to most Android users starting August
Support for Windows, macOS, Linux and ChromeOS are also on the roadmap.
هکرها اطلاعات ۷.۵ میلیون کاربر اپ بانکی دیجیتال «Dave» را در یک فروم عمومی منتشر کردند، اقدامی که باعث شده سازنده این برنامه، نقص امنیتی آن را تایید کند.
به گزارش ZDNet، این نقص امنیتی در حقیقت به شبکه شریک تجاری سابق آن، «Waydev» که یک پلتفرم تحلیلی مورد استفاده توسط تیمهای مهندسی است، مربوط میشود. سخنگوی Dave اعلام کرده:
«به علت رخنه امنیتی در Waydev، یکی از تامینکنندگان خدمات شخص ثالث سابق Dave، هکرها به برخی اطلاعات کاربران به صورت غیرمجاز دسترسی پیدا کردند.»
به گفته این کمپانی، هم اکنون هکرها به شبکه دسترسی ندارند و به کاربران قربانی نیز اطلاع داده شده است. پسوردهای اپلیکیشن Dave پس از اینکه در معرض خطر قرار گرفتند، ریست شدند:
«هنگامی که متوجه چنین موضوعی شدیم، به سرعت تحقیق درباره آن را آغاز کردیم و هم اکنون این پرونده با هماهنگی مقامات قانونی شامل FBI در جریان است. هکرها توانستهاند به برخی پسوردها دست پیدا کنند و بدنبال فروش اطلاعات مشتریان هستند.»
هم اکنون اطلاعات کاربران اپ بانکی Dave به صورت رایگان در دسترس قرار دارند و میتوان آنها را دانلود کرد، البته باید ابتدا عضو این فروم شد. این دیتا شامل اطلاعاتی مانند نام واقعی، شماره تلفن، ایمیل، تاریخ تولد و آدرس خانه میشود و در برخی آنها اطلاعات پرداخت و شماره تامین اجتماعی نیز به چشم میخورند که البته رمزگذاری شدهاند.
https://www.zdnet.com/article/tech-unicorn-dave-admits-to-security-breach-impacting-7-5-million-users/
به گزارش ZDNet، این نقص امنیتی در حقیقت به شبکه شریک تجاری سابق آن، «Waydev» که یک پلتفرم تحلیلی مورد استفاده توسط تیمهای مهندسی است، مربوط میشود. سخنگوی Dave اعلام کرده:
«به علت رخنه امنیتی در Waydev، یکی از تامینکنندگان خدمات شخص ثالث سابق Dave، هکرها به برخی اطلاعات کاربران به صورت غیرمجاز دسترسی پیدا کردند.»
به گفته این کمپانی، هم اکنون هکرها به شبکه دسترسی ندارند و به کاربران قربانی نیز اطلاع داده شده است. پسوردهای اپلیکیشن Dave پس از اینکه در معرض خطر قرار گرفتند، ریست شدند:
«هنگامی که متوجه چنین موضوعی شدیم، به سرعت تحقیق درباره آن را آغاز کردیم و هم اکنون این پرونده با هماهنگی مقامات قانونی شامل FBI در جریان است. هکرها توانستهاند به برخی پسوردها دست پیدا کنند و بدنبال فروش اطلاعات مشتریان هستند.»
هم اکنون اطلاعات کاربران اپ بانکی Dave به صورت رایگان در دسترس قرار دارند و میتوان آنها را دانلود کرد، البته باید ابتدا عضو این فروم شد. این دیتا شامل اطلاعاتی مانند نام واقعی، شماره تلفن، ایمیل، تاریخ تولد و آدرس خانه میشود و در برخی آنها اطلاعات پرداخت و شماره تامین اجتماعی نیز به چشم میخورند که البته رمزگذاری شدهاند.
https://www.zdnet.com/article/tech-unicorn-dave-admits-to-security-breach-impacting-7-5-million-users/
ZDNet
Tech unicorn Dave admits to security breach impacting 7.5 million users
Dave user data is now available for download on a public hacking forum.
✅ حرفه ای ترین سلوشن Logging در NETCore. با استفاده از Serilog و ElasticSearch و Kibana
#PerformanceTuning
کتابخانه های مختلفی برای لاگ کردن خطا ها در دات نت وجود داره، از جمله Elmah، NLog, Log4net و ...
کتابخانه Elmah بهترین انتخاب برای پروژه های کوچک و متوسطه، کار باهاش راحته و پنل ساده ای هم داره، ولی توی پروژه های بزرگ که تعداد لاگ ها خیلی زیاد میشه، دیگه Elmah جوابگو نیست، هم به خاطر سرعت کمش نسبت به بقیه کتابخانه ها و هم به خاطر پنل ضعیف اش که حتی یه سرچ هم نداره
در این شرایط راه های مختلفی هست مثل استفاده از سرویس های نگهداری لاگ Cloud-based مثل setrny.io , elmah.io و ...
راه حل بعدی استفاده از برنامه های مدیریت لاگ مثل Seq هستند که بر خلاف مورد قبلی، یک سرویس خارجی نیست و روی سرور خودتون لاگ ها رو نگهداری میکنه و داشبورد قدرتمندی برای سرچ و کوئری گرفتن در اختیارتون میذاره (ولی پولیه)
🔰 راه حل حرفه ای تر و البته رایگان، استفاده از Serilog و ElasticSearch و Kibana هست
🔸دیتابیس ElasticSearch در واقع یک دیتابیس NoSql و یک Search Engine (موتور جستجو) سورس باز و فوق سریع (بر پایه Lucene) هست که قابلیت جستجو و کوئری زدن زدن (به صورت full text search) با سرعت و قدرت بالا رو داره از اون برای نگهداری لاگ ها استفاده خواهیم کرد
🔹پنل Kibana هم یه پلاگین داشبور سورس باز و قدرتمند با امکانات زیاد برای نمایش اطلاعات دیتابیس Elastic هست و از اون برای نمایش خطا ها و جستجو کردن و نمودار گرفتن استفاده می کنیم
🔸 کتابخانه Serilog هم میشه گفت بهترین کتابخانه Logging هست. نسبت به NLog جدید تره و طراحی مدرن تری داره و میزان رشد محبوبیتش هم بیشتره؛ پس میشه گفت از NLog هم بهتره (البته خیلی اختلاف ندارند)
این کتابخونه قابلیت های زیادی داره که به لطف پلاگین های زیادی که برای Serilog وجود داره (اصطلاحا بهش میگن Sinks) براش فراهم شده و از لحاظ پرفرمنسی هم از NLog سریع تره.
🔹 تنها نکته مهم، استفاده از روش Structred Logging نسبت به حالت معمولی است. شاید فکر کنید دو دستور زیر هیچ تفاوتی نمیکنه!
مقالات آموزش این سلوشن :
https://bit.ly/2EAjpTh
https://bit.ly/2EBUYFc
https://bit.ly/2X7g1Xn
https://bit.ly/2Exvs3C
مخزن نمونه کد :
https://github.com/thecarlo/elastic-kibana-netcore-serilog
_____________
#PerformanceTuning
کتابخانه های مختلفی برای لاگ کردن خطا ها در دات نت وجود داره، از جمله Elmah، NLog, Log4net و ...
کتابخانه Elmah بهترین انتخاب برای پروژه های کوچک و متوسطه، کار باهاش راحته و پنل ساده ای هم داره، ولی توی پروژه های بزرگ که تعداد لاگ ها خیلی زیاد میشه، دیگه Elmah جوابگو نیست، هم به خاطر سرعت کمش نسبت به بقیه کتابخانه ها و هم به خاطر پنل ضعیف اش که حتی یه سرچ هم نداره
در این شرایط راه های مختلفی هست مثل استفاده از سرویس های نگهداری لاگ Cloud-based مثل setrny.io , elmah.io و ...
راه حل بعدی استفاده از برنامه های مدیریت لاگ مثل Seq هستند که بر خلاف مورد قبلی، یک سرویس خارجی نیست و روی سرور خودتون لاگ ها رو نگهداری میکنه و داشبورد قدرتمندی برای سرچ و کوئری گرفتن در اختیارتون میذاره (ولی پولیه)
🔰 راه حل حرفه ای تر و البته رایگان، استفاده از Serilog و ElasticSearch و Kibana هست
🔸دیتابیس ElasticSearch در واقع یک دیتابیس NoSql و یک Search Engine (موتور جستجو) سورس باز و فوق سریع (بر پایه Lucene) هست که قابلیت جستجو و کوئری زدن زدن (به صورت full text search) با سرعت و قدرت بالا رو داره از اون برای نگهداری لاگ ها استفاده خواهیم کرد
🔹پنل Kibana هم یه پلاگین داشبور سورس باز و قدرتمند با امکانات زیاد برای نمایش اطلاعات دیتابیس Elastic هست و از اون برای نمایش خطا ها و جستجو کردن و نمودار گرفتن استفاده می کنیم
🔸 کتابخانه Serilog هم میشه گفت بهترین کتابخانه Logging هست. نسبت به NLog جدید تره و طراحی مدرن تری داره و میزان رشد محبوبیتش هم بیشتره؛ پس میشه گفت از NLog هم بهتره (البته خیلی اختلاف ندارند)
این کتابخونه قابلیت های زیادی داره که به لطف پلاگین های زیادی که برای Serilog وجود داره (اصطلاحا بهش میگن Sinks) براش فراهم شده و از لحاظ پرفرمنسی هم از NLog سریع تره.
🔹 تنها نکته مهم، استفاده از روش Structred Logging نسبت به حالت معمولی است. شاید فکر کنید دو دستور زیر هیچ تفاوتی نمیکنه!
logger.Debug("UserName is : Ali");
logger.Debug("UserName is : {username}", "Ali");
ولی عملکرد این دو یکسان نبوده و خط دوم که به صورت Structred هست اطلاعات را به صورت جداگانه ضبط و ثبت میکنه درنتیجه در کنار متن خطا، یک فیلد به نام username با مقدار Ali نیز ذخیره میکنه که کار جستجو و کوئری زدن رو راحت تر میکنهمقالات آموزش این سلوشن :
https://bit.ly/2EAjpTh
https://bit.ly/2EBUYFc
https://bit.ly/2X7g1Xn
https://bit.ly/2Exvs3C
مخزن نمونه کد :
https://github.com/thecarlo/elastic-kibana-netcore-serilog
_____________
❇️ معرفی برترین کتابخانه های Task Scheduling (انجام کار های پس زمینه) در دات نت
برای این کار راه های مختلفی هست
1️⃣ کلاس Generic Host و BackgrounService :
در ساده ترین حالت توسط قابلیت های تو کار خود ASP Core میتونین اینکارو انجام بدین
https://www.dotnettips.info/post/2997
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-2.2
2️⃣ کتابخانه Coravel :
مزیت این کتابخانه اینه که DI رو به صورت داخلی ساپورت میکنه (بر خلاف FluentScheduler) [گزینه مورد علاقه خودم - ساده و سبک ولی مدرن]
https://github.com/jamesmh/coravel
https://docs.coravel.net
3️⃣ کتابخانه FluentScheduler
https://github.com/fluentscheduler/FluentScheduler
4️⃣ کتابخانه Hangfire :
بهترین گزینه برای پروژه های بزرگ (خیلی حرفه ای و full-feature هست)
یک پنل داشبوری برای نمایش لیست کار های زمان بندی شده به همراه وضعیتشون بهتون میده که میتونین تسک ها رو غیر فعال کنین یا گزارش ازشون بگیرین و...
https://www.hangfire.io/
https://github.com/HangfireIO/Hangfire
5️⃣ کتابخانه DNTScheduler.Core :
نویسنده این کتابخانه وحید نصیری عزیز هستش
https://github.com/VahidN/DNTScheduler.Core
https://www.dotnettips.info/post/1736
6️⃣کتابخانه Quartz.Net :
این کتابخانه port شده از معادل جاواییش هست و code quality خوبی نداره و طراحیش هم مدرن نیست (کلا پیشنهاد نمیکنم تا گزینه های بهتری هست)
https://www.quartz-scheduler.net/
https://github.com/quartznet/quartznet
✅ همه این کتابخانه ها از Cron پشتیبانی میکنن
در واقع Cron یه سینتکس دستوری واسه زمان بندی کار ها هست که قوائد خاص خودش رو داره (اسامی CronTab و CronJob هم از همین خانوادس)
مثلا برای اینکه یه تسک هر ۱۵ دقیقه یک بار انجام بشه، دستور Cron اش میشه
_____________
برای این کار راه های مختلفی هست
1️⃣ کلاس Generic Host و BackgrounService :
در ساده ترین حالت توسط قابلیت های تو کار خود ASP Core میتونین اینکارو انجام بدین
https://www.dotnettips.info/post/2997
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-2.2
2️⃣ کتابخانه Coravel :
مزیت این کتابخانه اینه که DI رو به صورت داخلی ساپورت میکنه (بر خلاف FluentScheduler) [گزینه مورد علاقه خودم - ساده و سبک ولی مدرن]
https://github.com/jamesmh/coravel
https://docs.coravel.net
3️⃣ کتابخانه FluentScheduler
https://github.com/fluentscheduler/FluentScheduler
4️⃣ کتابخانه Hangfire :
بهترین گزینه برای پروژه های بزرگ (خیلی حرفه ای و full-feature هست)
یک پنل داشبوری برای نمایش لیست کار های زمان بندی شده به همراه وضعیتشون بهتون میده که میتونین تسک ها رو غیر فعال کنین یا گزارش ازشون بگیرین و...
https://www.hangfire.io/
https://github.com/HangfireIO/Hangfire
5️⃣ کتابخانه DNTScheduler.Core :
نویسنده این کتابخانه وحید نصیری عزیز هستش
https://github.com/VahidN/DNTScheduler.Core
https://www.dotnettips.info/post/1736
6️⃣کتابخانه Quartz.Net :
این کتابخانه port شده از معادل جاواییش هست و code quality خوبی نداره و طراحیش هم مدرن نیست (کلا پیشنهاد نمیکنم تا گزینه های بهتری هست)
https://www.quartz-scheduler.net/
https://github.com/quartznet/quartznet
✅ همه این کتابخانه ها از Cron پشتیبانی میکنن
در واقع Cron یه سینتکس دستوری واسه زمان بندی کار ها هست که قوائد خاص خودش رو داره (اسامی CronTab و CronJob هم از همین خانوادس)
مثلا برای اینکه یه تسک هر ۱۵ دقیقه یک بار انجام بشه، دستور Cron اش میشه
*/15 * * * *
توی سایت زیر که یک محیط تعاملی برای نوشتن دستور Cron هست میتونین با قوائد و مثال هاش بیشتر آشنا بشین_____________
❇️ سری آموزش DevOps for ASP.NET Developers (زبان اصلی زیر نویس دار)
از پایین ویدئو گزینه [Subtitle/captions] میتوانید زیرنویس آن را فعال کنید
1️⃣ What is DevOps
2️⃣ Source Control
3️⃣ Work Item Tracking
4️⃣ Continuous Integration
5️⃣ Unit Testing
6️⃣ Release Pipelines
7️⃣ Templates and Scaffolding Tools
8️⃣ Azure DevOps Integration with GitHub
____________
از پایین ویدئو گزینه [Subtitle/captions] میتوانید زیرنویس آن را فعال کنید
1️⃣ What is DevOps
2️⃣ Source Control
3️⃣ Work Item Tracking
4️⃣ Continuous Integration
5️⃣ Unit Testing
6️⃣ Release Pipelines
7️⃣ Templates and Scaffolding Tools
8️⃣ Azure DevOps Integration with GitHub
____________
Docs
DevOps For ASP.NET Developers Pt.1 - What is DevOps?
DevOps is the union of people, process, and products to enable continuous delivery of value to our end users. Azure DevOps is everything you need to turn an idea into a working piece of software.In this first episode of the DevOps for ASP.NET Developers series…
🔰 یک نکته پرفرمنسی درباره Logging
🔸استفاده از تامین کننده Console برای Logging در حین ارائه نهایی (Production) به شدت باعث کند شدن و کاهش کارآیی برنامه خواهد شد. بهتر است این تامین کننده را صرفا در محیط Development تنظیم کنید (مانند تصویر)
🔹اگر از WebHost.CreateDefaultBuilder استفاده میکنید، به صورت پیشفرض سه تامین کننده Console و Debug و EventSource ثبت خواهند شد پس لازم است ابتدا آن ها را توسط متد ClearProviders حذف کنید
#PerformanceTuning
_________
🔸استفاده از تامین کننده Console برای Logging در حین ارائه نهایی (Production) به شدت باعث کند شدن و کاهش کارآیی برنامه خواهد شد. بهتر است این تامین کننده را صرفا در محیط Development تنظیم کنید (مانند تصویر)
🔹اگر از WebHost.CreateDefaultBuilder استفاده میکنید، به صورت پیشفرض سه تامین کننده Console و Debug و EventSource ثبت خواهند شد پس لازم است ابتدا آن ها را توسط متد ClearProviders حذف کنید
#PerformanceTuning
_________
۱۲ نکته در مورد Debugging در ویژوال استودیو:
در این پست فرض بر این است که خواننده اصول اولیه دیباگ کردن با ویژوال استودیو را می داند.
در صورتی که تسلط کامل بر روی این ۱۲ نکته داشته باشید، می توانید با کیفیت بالایی کد های خود را دیباگ کنید.
مواردی که در این پست به آن پرداخته شده است:
✅ 1) Run to Cursor : Ctrl+F10
✅ 2) Run through here with a mouse click
✅ 3) Set next statement to here : holding the key Ctrl
✅ 4) Data breakpoint: Break when value changes
✅ 5) Conditional breakpoint
✅ 6) Trace breakpoint
✅ 7) Track Objects that Are Out-Of-Scope : Make Object ID
✅ 8) View values returned by functions :
Debug > Windows > Autos
✅ 9) Reattach To Process: Shift+Alt+P
✅ 10) No-Side-Effect evaluation in Immediate Window and in the Watch Window
✅ 11) Show Threads in Source
✅ 12) Debug source code decompiled from IL code
جزئیات کامل را میتوانید در لینک زیر مطالعه کنید:
https://blog.ndepend.com/12-visual-studio-debugging-productivity-tips/
_
در این پست فرض بر این است که خواننده اصول اولیه دیباگ کردن با ویژوال استودیو را می داند.
در صورتی که تسلط کامل بر روی این ۱۲ نکته داشته باشید، می توانید با کیفیت بالایی کد های خود را دیباگ کنید.
مواردی که در این پست به آن پرداخته شده است:
✅ 1) Run to Cursor : Ctrl+F10
✅ 2) Run through here with a mouse click
✅ 3) Set next statement to here : holding the key Ctrl
✅ 4) Data breakpoint: Break when value changes
✅ 5) Conditional breakpoint
✅ 6) Trace breakpoint
✅ 7) Track Objects that Are Out-Of-Scope : Make Object ID
✅ 8) View values returned by functions :
Debug > Windows > Autos
✅ 9) Reattach To Process: Shift+Alt+P
✅ 10) No-Side-Effect evaluation in Immediate Window and in the Watch Window
✅ 11) Show Threads in Source
✅ 12) Debug source code decompiled from IL code
جزئیات کامل را میتوانید در لینک زیر مطالعه کنید:
https://blog.ndepend.com/12-visual-studio-debugging-productivity-tips/
_
NDepend
12 Visual Studio Debugging Productivity Tips - NDepend
The top 12 Visual Studio debugging productivity tips illustrated with some GIFs. Learn these tips now and boost your debugging sessions.
⚫️ مایکروسافت به دنبال تصاحب TikTok
به نظر می رسد سال 2020 سال اتفاقات شگفت انگیزی باشد. طبق آخرین شایعات منتشر شده پس از دستور ترامپ ریاست جمهوری ایالات متحده، به نظر می رسد مایکروسافت به دنبال تصاحب TikTok از طریق کمیته سرمایه گذاری امریکا باشد.
طبق گزارش بلومبرگ، برنامه چینی محبوب TikTok بر روی تلفن های همراه میلیون ها امریکایی نصب شده ، موجب نگرانی های امنیتی در دولت ایالات متحده شده است. منابع تایید شده ای می گویند مایکروسافت در حال مذاکره برای خرید تیک تاک است.
به نظر می رسد سال 2020 سال اتفاقات شگفت انگیزی باشد. طبق آخرین شایعات منتشر شده پس از دستور ترامپ ریاست جمهوری ایالات متحده، به نظر می رسد مایکروسافت به دنبال تصاحب TikTok از طریق کمیته سرمایه گذاری امریکا باشد.
طبق گزارش بلومبرگ، برنامه چینی محبوب TikTok بر روی تلفن های همراه میلیون ها امریکایی نصب شده ، موجب نگرانی های امنیتی در دولت ایالات متحده شده است. منابع تایید شده ای می گویند مایکروسافت در حال مذاکره برای خرید تیک تاک است.
✅ این Mock یا Mocking چیه؟!!
#سوال_درخواستی
🔸 در واقع Mock کردن (Mocking) یک تکنیک تست نویسی است که در آن قسمتی از کد را با یک پیاده سازی دلخواه جایگزین میکنیم و از آن برای شبیه سازی یک عملیات واقعی استفاده میشه.
🔹 معمولا ماک کردن زمانی استفاده میشه که یک متد یا کلاس، وابستگی یا وابستگی هایی داره که توی تستمون تداخل ایجاد میکنه.
🔸 مثلا فرض کنید یک سرویسی رو میخواین تست کنین که داخلش از سرویس SmsSender استفاده شده (یعنی به سرویس SmsSender وابستگی داره)، درنتیجه هربار که اون تست رو انجام میدید یه SMS هم ارسال میکنه که خب لازم نیست
در این صورت میایم و سرویس SmsSender رو ماک میکنیم که دیگه Sms ارسال نکنه ولی true رو برگردونه (به این معنی که درست کار کرده)
🔹 این باعث میشه ما بتونیم عملکرد (functionality) همون متد رو تست کنیم به جای اینکه تست مون را درگیر و وابسته به عوامل ثالث (مثل ارسال SMS) کنیم
🔰حالا چه وقتایی معمولا ماک استفاده میشه؟
1️⃣ وابستگی ما در دسترس نباشه
مثلا سرویس شما قراره یه اطلاعاتی رو از وب سرویس بخونه، خب اگه اینترنت قط باشه، تا بالاترن سطح سرویس هامون که به این وابسته بوده fail میشه، پس میایم ماک اش میکنیم و میگیم با فرض اینکه وب سرویس در دسترسه و داره درست اطلاعات رو بر میگردونه، حالا برو ببینم خودت چند مرده حلاجی؟!
2️⃣ وابستگی ما کند باشه
مثلا یه تست برای انجام شدنش نیاز به یه کوئری به دیتابیس داره که 60 ثانیه زمان میبره، پس میایم و ادامه ماجرا ...
3️⃣ وابستگی ما باید توی تست رفتارش عوض بشه
مثل همین مثال سرویس SmsSender
4️⃣ و چندین سناریو دیگه ...
🔰 بهترین کتابخانه های Mocking در دات نت این ها هستند
1️⃣ Moq
2️⃣ NSubstitute
3️⃣ FakeItEasy
🔰حالا یه سوالی که پیش میاد اینه که این کتابخانه های Mocking چطوری کار میکنن؟!
اساس کار این ابزار ها به 2 صورت هست
1️⃣ بر اساس interface :
که عملا توی runtime، یک کلاس الکی درست میکنن که از interface شما ارث بری کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
2️⃣ بر اساس virtual :
در این روش متد هایی که میخواین قابل mock شدن باشن باید virtual تعریف بشن، در این صورت میاد و توی runtime یک کلاس ایجاد میکنه که از کلاس مورد نظر شما ارث بری کرده ولی متد های virtual اش رو override (بازنویسی) کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
_________
#سوال_درخواستی
🔸 در واقع Mock کردن (Mocking) یک تکنیک تست نویسی است که در آن قسمتی از کد را با یک پیاده سازی دلخواه جایگزین میکنیم و از آن برای شبیه سازی یک عملیات واقعی استفاده میشه.
🔹 معمولا ماک کردن زمانی استفاده میشه که یک متد یا کلاس، وابستگی یا وابستگی هایی داره که توی تستمون تداخل ایجاد میکنه.
🔸 مثلا فرض کنید یک سرویسی رو میخواین تست کنین که داخلش از سرویس SmsSender استفاده شده (یعنی به سرویس SmsSender وابستگی داره)، درنتیجه هربار که اون تست رو انجام میدید یه SMS هم ارسال میکنه که خب لازم نیست
در این صورت میایم و سرویس SmsSender رو ماک میکنیم که دیگه Sms ارسال نکنه ولی true رو برگردونه (به این معنی که درست کار کرده)
🔹 این باعث میشه ما بتونیم عملکرد (functionality) همون متد رو تست کنیم به جای اینکه تست مون را درگیر و وابسته به عوامل ثالث (مثل ارسال SMS) کنیم
🔰حالا چه وقتایی معمولا ماک استفاده میشه؟
1️⃣ وابستگی ما در دسترس نباشه
مثلا سرویس شما قراره یه اطلاعاتی رو از وب سرویس بخونه، خب اگه اینترنت قط باشه، تا بالاترن سطح سرویس هامون که به این وابسته بوده fail میشه، پس میایم ماک اش میکنیم و میگیم با فرض اینکه وب سرویس در دسترسه و داره درست اطلاعات رو بر میگردونه، حالا برو ببینم خودت چند مرده حلاجی؟!
2️⃣ وابستگی ما کند باشه
مثلا یه تست برای انجام شدنش نیاز به یه کوئری به دیتابیس داره که 60 ثانیه زمان میبره، پس میایم و ادامه ماجرا ...
3️⃣ وابستگی ما باید توی تست رفتارش عوض بشه
مثل همین مثال سرویس SmsSender
4️⃣ و چندین سناریو دیگه ...
🔰 بهترین کتابخانه های Mocking در دات نت این ها هستند
1️⃣ Moq
2️⃣ NSubstitute
3️⃣ FakeItEasy
🔰حالا یه سوالی که پیش میاد اینه که این کتابخانه های Mocking چطوری کار میکنن؟!
اساس کار این ابزار ها به 2 صورت هست
1️⃣ بر اساس interface :
که عملا توی runtime، یک کلاس الکی درست میکنن که از interface شما ارث بری کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
2️⃣ بر اساس virtual :
در این روش متد هایی که میخواین قابل mock شدن باشن باید virtual تعریف بشن، در این صورت میاد و توی runtime یک کلاس ایجاد میکنه که از کلاس مورد نظر شما ارث بری کرده ولی متد های virtual اش رو override (بازنویسی) کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین
_________
GitHub
GitHub - devlooped/moq: The most popular and friendly mocking framework for .NET
The most popular and friendly mocking framework for .NET - devlooped/moq
❇️ آموزش استفاده از Container در NET Core. (زبان اصلی زیر نویس دار)
از پایین ویدئو گزینه [Subtitle/captions] میتوانید زیرنویس آن را فعال کنید
[00:44] - What are some of advantages of containers?
[01:14] - How do containers compare to other hosting options?
[04:14] - Demo of Visual Studio tooling for containers
[07:06] - Deploying your container to Azure
Useful Links
Azure Container Service (AKS)
Azure Container Registry
.NET Core Docker container images
ASP.NET Core Docker container images
Create a Free Account (Azure)
_____________
از پایین ویدئو گزینه [Subtitle/captions] میتوانید زیرنویس آن را فعال کنید
[00:44] - What are some of advantages of containers?
[01:14] - How do containers compare to other hosting options?
[04:14] - Demo of Visual Studio tooling for containers
[07:06] - Deploying your container to Azure
Useful Links
Azure Container Service (AKS)
Azure Container Registry
.NET Core Docker container images
ASP.NET Core Docker container images
Create a Free Account (Azure)
_____________
Docs
.NET Core and Containers
On this episode of On.NET, Microsoft Cloud Developer Advocate, Jeremy Likness, is joined by Microsoft Most Valuable Professional (MVP), Josh Lane, to discuss .NET Core and Containers. Josh and Jeremy discuss what containers are and how they fit into modern…
#اطلاعیه_SciSharp
دوستان عزیز همانطور که میدانید زبان سطح بالای Python که دارای فریمورک های زیادی است و بیشتر این فریمورک ها مربوط به ( هوش مصنوعی و زیر مجموعه های آن مانند یادگیری ماشین - بینایی ماشین - و... ) است.
حالا یه تیمی از که طریق مایکروسافت وظیفه دارند تمامی این فریمورک هارو Port کنند در سی شارپ با حداقل ۹۹ درصد شباهت در کد ها و تابع ها و ....
این اکوسیستم SciSharp Stack نام دارد.
که تا الان چند فریمورک قوی مانند Tensorflow و Keras و NumPy و Catalyst NLP رو تا الان Portکردند، و هر اپدیتی که از طرف این فرویمورک های اصلی بشود، این پکیج های nuget هم آپدیت میشوند.
درخواست این تیم این است که اطلاع داده بشه به همه که همچین چیزی وجود داره.
کتابخانه ها و فریمورک های دیگر هم در دست ساخت هستش مثل PyTorch و Pandas و Matplotlib و....
https://scisharp.github.io/SciSharp/
خوبیش اینه که ۹۹ درصد کدها شبیه هم هستند و برای مثال با دیدن یک آموزش Tensorflow در پایتون میتونید تو سی شارپ هم با Tensorflow کار کنید.( البته صد در صد به جبر خطی و ... نیاز دارید برای کارهای حرفه ای ).
دوستان عزیز همانطور که میدانید زبان سطح بالای Python که دارای فریمورک های زیادی است و بیشتر این فریمورک ها مربوط به ( هوش مصنوعی و زیر مجموعه های آن مانند یادگیری ماشین - بینایی ماشین - و... ) است.
حالا یه تیمی از که طریق مایکروسافت وظیفه دارند تمامی این فریمورک هارو Port کنند در سی شارپ با حداقل ۹۹ درصد شباهت در کد ها و تابع ها و ....
این اکوسیستم SciSharp Stack نام دارد.
که تا الان چند فریمورک قوی مانند Tensorflow و Keras و NumPy و Catalyst NLP رو تا الان Portکردند، و هر اپدیتی که از طرف این فرویمورک های اصلی بشود، این پکیج های nuget هم آپدیت میشوند.
درخواست این تیم این است که اطلاع داده بشه به همه که همچین چیزی وجود داره.
کتابخانه ها و فریمورک های دیگر هم در دست ساخت هستش مثل PyTorch و Pandas و Matplotlib و....
https://scisharp.github.io/SciSharp/
خوبیش اینه که ۹۹ درصد کدها شبیه هم هستند و برای مثال با دیدن یک آموزش Tensorflow در پایتون میتونید تو سی شارپ هم با Tensorflow کار کنید.( البته صد در صد به جبر خطی و ... نیاز دارید برای کارهای حرفه ای ).
scisharp.github.io
SciSharp STACK
A .NET based Open Source Ecosystem for Data Science, Machine Learning and AI
👍2
✅ مقایسه پرفرمنس gRPC و REST
طبق این بنچمارک میتونین ببینین که توی درخواست های سبک ( مثل یه GET ساده با دیتای کم حجم) gRPC و REST تفاوتی خاصی با هم ندارن
ولی توی درخواست های سنگین (که حجم دیتای انتقالی زیاد باشه) :
🔸توی حالت GET (دریافت اطلاعات) gRPC بیش از 7 برابر سریع تر از REST عمل میکنه
🔹وتوی حالت POST (ارسال اطلاعات) gRPC بیش از 11 برابر سریع تر از REST عمل میکنه
🔸دلیل اصلی این سرعت بسیار بالا اینه که gRPC از Protocol Buffers برای سریالایز و فشرده سازی اطلاعات استفاده میکنه و نیز به صورت پیشفرض از HTTP/2 و استفاده میکنه که اون هم یه مکانیزم فشرده سازی داره
🔹برای کار با gRPC در حالت عادی باید از CLI مخصوص اون "protoc" برای کامپایل و تولید کلاس های سرویس از روی فایل های "proto." استفاده کنید. ولی با Visual Studio میتونین همین کار رو کامپایلر built-in اش راحت تر انجام بدین
🔸جمع بندی اینکه gRPC میتونه گزینه بسیار خوبی برای ارتباطات بیین Micro-service ها باشه
لینک مقاله و ریپازیتوری گیتهاب این بنچمارک
Evaluating Performance of REST vs. gRPC
Github Repository
________________
طبق این بنچمارک میتونین ببینین که توی درخواست های سبک ( مثل یه GET ساده با دیتای کم حجم) gRPC و REST تفاوتی خاصی با هم ندارن
ولی توی درخواست های سنگین (که حجم دیتای انتقالی زیاد باشه) :
🔸توی حالت GET (دریافت اطلاعات) gRPC بیش از 7 برابر سریع تر از REST عمل میکنه
🔹وتوی حالت POST (ارسال اطلاعات) gRPC بیش از 11 برابر سریع تر از REST عمل میکنه
🔸دلیل اصلی این سرعت بسیار بالا اینه که gRPC از Protocol Buffers برای سریالایز و فشرده سازی اطلاعات استفاده میکنه و نیز به صورت پیشفرض از HTTP/2 و استفاده میکنه که اون هم یه مکانیزم فشرده سازی داره
🔹برای کار با gRPC در حالت عادی باید از CLI مخصوص اون "protoc" برای کامپایل و تولید کلاس های سرویس از روی فایل های "proto." استفاده کنید. ولی با Visual Studio میتونین همین کار رو کامپایلر built-in اش راحت تر انجام بدین
🔸جمع بندی اینکه gRPC میتونه گزینه بسیار خوبی برای ارتباطات بیین Micro-service ها باشه
لینک مقاله و ریپازیتوری گیتهاب این بنچمارک
Evaluating Performance of REST vs. gRPC
Github Repository
________________
❇️ اگه میخواین مفهوم Hash و Salt رو درک کنین
فیلم زیر از جادی خیلی باحال توضیحش میده
🔰 نقل قول از جادی :
"به نظر من، هشها از قشنگیهای دنیای کامپیوتر و برنامه نویسی. فانکشنهایی که میتونن اطلاعات رو به ترکیبی از بیت های دیگه با طول ثابت تبدیل کنن و نتیجه شون هم همیشه برای ورودی ثابت، ثابته. این ایده درخشان منتیج به نتایج خیلی جالبی هم شده. مثلا فرض کنین می خواین بدونین آیا فایلی که دانلود کردین سالمه یا نه. یا می خواین کلی دیتا رو جایی بریزین و سریع پیداشون کنین. یا از اون جالبتر، می خواین به یکی پشت تلفن بگین «یه عدد در نظر بگیر» و بعد عدد رو حدس بزنین و مطمئن باشین که تقلبی نمی تونه اتفاق بیافته یا حتی رمزارز بسازین. همه اینجاها، هش کار گشا است فهمیدنش برای یک برنامه نویس خوب واجبه. "
1️⃣ https://www.aparat.com/v/1YjmV/
2️⃣ https://www.aparat.com/v/PmYpu/
3️⃣ https://www.aparat.com/v/Yg02q/
___________
فیلم زیر از جادی خیلی باحال توضیحش میده
🔰 نقل قول از جادی :
"به نظر من، هشها از قشنگیهای دنیای کامپیوتر و برنامه نویسی. فانکشنهایی که میتونن اطلاعات رو به ترکیبی از بیت های دیگه با طول ثابت تبدیل کنن و نتیجه شون هم همیشه برای ورودی ثابت، ثابته. این ایده درخشان منتیج به نتایج خیلی جالبی هم شده. مثلا فرض کنین می خواین بدونین آیا فایلی که دانلود کردین سالمه یا نه. یا می خواین کلی دیتا رو جایی بریزین و سریع پیداشون کنین. یا از اون جالبتر، می خواین به یکی پشت تلفن بگین «یه عدد در نظر بگیر» و بعد عدد رو حدس بزنین و مطمئن باشین که تقلبی نمی تونه اتفاق بیافته یا حتی رمزارز بسازین. همه اینجاها، هش کار گشا است فهمیدنش برای یک برنامه نویس خوب واجبه. "
1️⃣ https://www.aparat.com/v/1YjmV/
2️⃣ https://www.aparat.com/v/PmYpu/
3️⃣ https://www.aparat.com/v/Yg02q/
___________
آپارات - سرویس اشتراک ویدیو
هش (یک از سه) - درک مفهوم
هش ها مفهوم مهمی در برنامه نویسی هستن و منم دوستشون دارم. پس بیاین معرفی شون کنیم، بگیم چی هستن و به چه دردی می خورن.
سلام دوستان
یه دوره بینظیر توی یودمی با موضوع طراحی وب که فریمورک محبوب جنگو رو هم پوشش داده امروز رایگانه
به اکانتتون اضافه کنین تا همیشه دسترسی داشته باشین
https://www.udemy.com/course/python-and-django-full-stack-web-development-for-beginners/?couponCode=27441EC3EACCB06FA8D5
یه دوره بینظیر توی یودمی با موضوع طراحی وب که فریمورک محبوب جنگو رو هم پوشش داده امروز رایگانه
به اکانتتون اضافه کنین تا همیشه دسترسی داشته باشین
https://www.udemy.com/course/python-and-django-full-stack-web-development-for-beginners/?couponCode=27441EC3EACCB06FA8D5
Udemy
Python and Django Full-Stack Web Development for beginners
Build web projects with HTML, CSS,BOOTSTRAP,JavaScript,Python ,Django,PostgreSQL
این دوره فول استک پایتون رو هم اضافه کنید
https://www.udemy.com/course/full-stack-web-development-for-beginners/?couponCode=0E8942BF9C8AD8F5A9E6
https://www.udemy.com/course/full-stack-web-development-for-beginners/?couponCode=0E8942BF9C8AD8F5A9E6
Udemy
Full-Stack Web Development For Beginners
Learn Frontend and Backend Web Development Using: HTML, CSS, JAVASCRIPT, NODE, SQL,POSTGRESQL,REACT,RESTful APIs
This media is not supported in your browser
VIEW IN TELEGRAM
🔵تیزر معرفی سرفیس دئو
سرفیس دئو به طور رسمی معرفی شد!
مایکروسافت از تمامی آنچه که ما در مورد این دستگاه شگفتانگیز بایستی بدانیم رونمایی کرده است.
مایکروسافت تصمیم به عرضه این دستگاه با پردازنده کوالکام اسنپدراگون ۸۵۵، ۶ گیگابایت رم، ۱۲۸/۲۵۶ گیگابایت حافظه داخلی و برچسب قیمتی ۱۴۰۰ دلار گرفته است.
زمان عرضه در نظر گرفته شده، ۱۰ سپتامبر است اما پیش از آن علاقهمنندان قادر به پیشخرید از طریق مایکروسافت استور با قیمت ۱۴۰۰ دلار برای نسخه ۱۲۸ گیگابایتی و ۱۵۰۰ دلار برای نسخه ۲۵۶ گیگابایتی خواهند بود. همچنین کاربران قادر به پیشخرید از طریق AT & T و Best Buy خواهند بود.
سرفیس دئو به طور رسمی معرفی شد!
مایکروسافت از تمامی آنچه که ما در مورد این دستگاه شگفتانگیز بایستی بدانیم رونمایی کرده است.
مایکروسافت تصمیم به عرضه این دستگاه با پردازنده کوالکام اسنپدراگون ۸۵۵، ۶ گیگابایت رم، ۱۲۸/۲۵۶ گیگابایت حافظه داخلی و برچسب قیمتی ۱۴۰۰ دلار گرفته است.
زمان عرضه در نظر گرفته شده، ۱۰ سپتامبر است اما پیش از آن علاقهمنندان قادر به پیشخرید از طریق مایکروسافت استور با قیمت ۱۴۰۰ دلار برای نسخه ۱۲۸ گیگابایتی و ۱۵۰۰ دلار برای نسخه ۲۵۶ گیگابایتی خواهند بود. همچنین کاربران قادر به پیشخرید از طریق AT & T و Best Buy خواهند بود.
Media is too big
VIEW IN TELEGRAM
هنر تفکر ، اما با هم! صحبت در مورد مفهوم "الماس دوگانه" و اینکه چگونه می تواند به تفکر موثر در کنار هم کمک کند.