DotNetZoom
2.97K subscribers
342 photos
18 videos
36 files
606 links
DotNetZoom
💎 Everything about .NET

ارتباط با مدیر و تبلیغات آگهی استخدام:
@mjebrahimi

لینک گروه ASPNET Core:
https://t.iss.one/+ufG25x7lVFgyYTNk
Download Telegram
میان‌افزاری برای ثبت آمار بازدیدکنندگان برنامه‌های ASP.NET Core

مقاله زیر نمونه پیادی سازی یک middleware برای asp core رو نشون میده که کارش ثبت آمار بازدید کنندگان سایت هست. اینکه چه کسانی با چه ip هایی و از چه کشور هایی در چه زمان هایی کدام صفحات رو بازدید کردند.
کانفیگ و استفاده ازش بسیار راحته و آموزشش در لینک زیر هست

https://matteofabbri.org/read/server-side-analytics

نکات جالبی که این کتابخونه داره اینه که
1- برای ذخیره سازی اطلاعات میتونین از store های موجود از جمله MongoDb, SqlServer, SqLite استفاده کنین
2- یا اینکه store سفارشی خودتون رو بنویسین و مثلا اطلاعات رو توی یه دیتابیس دیگه مثل MySql ذخیره کنین
3- میتونین مسیر ها یا پسوند هایی رو مشخص کنین که اطلاعات اونا رو اصلا ثبت نکنه. مثلا مسیر /js یا پسوند های .js, .css, .jpg
4- میتونین تنظیم کنین تا فقط درخواست های یک مسیر مشخص رو ثبت کنه و نه تمام درخواست های سایت
5- نام جداول لازم برای ذخیره آمار بازدید کنندگان رو تغییر بدین
6- توسط یک دیتابیس لوکال، نام کشور ها رو از روی ip تشخیص میده
7- اگه بر اساس range ip نتونست نام کشور رو پیدا کنه، از api های دیگری جهت تشخص نام کشور استفاده میکنه که دیتای معتبر تری میدن

مخزن گیتهاب :
https://github.com/matteofabbri/ServerSideAnalytics

دمو گزارش آمار بازدیدکنندگان :
https://matteofabbri.org/stat

پیشنهاد میکنم سورس کدش رو بررسی کنین، ایده های جالبی بهتون میده
@IranAspMvc
ابزاری برای اسکن HTTP Response Headers وب سایت ها
https://securityheaders.com/
_______________
@IranAspMvc
آموزش رایگان گیت (Git) به زبان ساده
https://goo.gl/Q7K2iv

👤 مدرس: مهندس جادی میرمیرانی
🕓 مدت زمان: ۱ ساعت و ۳۶ دقیقه
📎 حجم دانلود: ۲۸۴ مگابایت

درس یکم: مقدمات گیت و نصب آن
درس دوم: اولین اینیت (init) و اولین کامیت
درس سوم: بررسی تاریخچه کارها
درس چهارم: بررسی تغییرات انجام شده
درس پنجم: آشنایی با شاخه ها یا همان برنچ ها (Branch)
درس ششم: کمی بیشتر در مورد برنچ ها
درس هفتم: آشنایی و استفاده از گیت هاب (GitHub)
درس هشتم: بررسی و حل کانفلیکت های (Conflict) ریموت
درس نهم: تگ زدن برای شناسایی نسخه ها
درس دهم: امضا کردن تگ ها و کامیت ها
درس یازدهم: دیباگ کردن با کمک گیت
درس دوازدهم: آشنایی با گیت لب و مشارکت در پروژه ها

لینک دانلود:
https://get.faradars.org/dl/freebies/fvgit9609/fvgit9609_1uebtnm3c0s2_www.faradars.org.rar

@IranAspMvc
 DarkLab Security Workshop!
اگه دوست دارید توی یه کارگاه با مبانی امنیت اطلاعات و پیشگیری از حملات آشنا بشید، هیچ چیز بهتر از این نیست که تو یه کارگاهی شرکت کنید که با هک کردن دوتا قربانی آنلاین، بهتون این مهارتو آموزش بده.
ما در یک کارگاه آموزشی مفید و مختصر اینکارو انجام میدیم. هزینه ۳۰تومنی رویداد هم برای پذیرایی هست و کلا اگر بحث پذیرایی نبود رایگان میشد!
تا تموم نشده ثبت نام کنید که تا آخرین ساعات جمعه برای خرید بلیط تخفیف‌دار فرصت هست.
ثبت نام و مشاهده زمان‌بندی :
https://evand.com/events/isconf
Forwarded from Deleted Account
امروز میخوام به یه قضیه خوب و کاربردی اشاره کنم.قضیه ای که بارها و بارها توی برنامه ها مورد استفاده قرار میگیره شاید این قضیه خیلی ساده وآسون باشه اما بسیار روی کارایی و عملکرد برنامه شما تأثیر میزاره

موضوع از این قراره که تفاوت بین String و StringBuilder چیست؟

تفاوت مهم اصلی بین این دو مقوله اینه که
کلاس های String غیر قابل تغییر اند (Immutable)
در مقابلش StringBuilder ها فاقد چنین قضیه ای هستند.

اما Immutable چیه ؟
غیر قابل تغییری در واقع توی رشته ها به این قضیه اشاره میکنه زمانی که شما می خواهید یه رشته ای رو مورد ویرایش قرار بدید.
در ظاهر همون شیء مورد تغییر قرار می گیره اما اصل قضیه اینه که در واقع دارید نمونه جدیدی از کلاس String میسازید

باتوجه به این مسئله حالا فرض کنید برنامه داریم که پردازش زیادی روی String ها داره، ممکنه این پردازش ها توی حلقه قرار بگیره مثلاً یه حلقه
10000 تایی یا 50000 تایی ، تقریباً می تونیم حدس بزنیم که چه اتفاق ناگواری رخ میده.
برای این که بهتر این قضیه رو درک کنیم یه سری تست وجود داره + سورس کد ، خیلی خوبه که شما ها هم ببینید.

زمان صرف شده برای تکرار 25000 رشته 05.76 ثانیه با کلاس System.String
زمان صرف شده برای تکرار 25000 رشته 00.00 ثانیه با کلاس StringBuilder

زمان صرف شده برای تکرار 50000 رشته 25.27 ثانیه با کلاس System.String
زمان صرف شده برای تکرار 50000 رشته 00.00 ثانیه با کلاس StringBuilder

زمان صرف شده برای تکرار 100000 رشته 02.00ثانیه با کلاس System.String
زمان صرف شده برای تکرار 100000 رشته 00.00 ثانیه با کلاس StringBuilder
دانلود یک پوشه خاص از یک ریپازیتوری در گیتهاب با GitZip for github
https://goo.gl/ghGVzr

الان میخواستم پورژه های samples داخل پوشه webapi ریپازیتوری AspNet Docs ماکروسافت رو دانلود و بررسی کنم
که ادرسش اینه
https://github.com/aspnet/Docs/tree/master/aspnetcore/web-api
خب قاعدتا نمیشه یه پوشه خاص رو از github دنلود کرد و باید کل ریپازیتوری AspNet Docs رو دانلود میکردم.
خب این ریپازیتوری حدود 800 مگابایت حجم داره! پس دنبال راهی گشتم که باهاش بشه یه پوشه خاص از یک ریپازیتوری رو دانلود کرد.

یه پروژه سورس بازی هست به نام GitZip for github که با هاش میشه این کارو (یعنی دانلود فقط یک پوشه خاص از یک ریپازیتوری) باهاش به 2 روش انجام داد.

روش اول : توسط افزونه مخصوص مرورگر (هم برای کروم داره هم فایرفاکس)
1- افزونه زیر رو نصب کنین
https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn/
2- به سایت زیر برین
https://kinolien.github.io/gitzip/
سپس طبق اموزش زیر، یک Token ایجاد کنین و کلید اون رو کپی کنین، توی مرحله بعد بهش نیاز داریم
https://github.com/KinoLien/gitzip/blob/gh-pages/get-token-step.md
3- حالا برین به ادرس پوشه ریپازیتوری که میخواین اون رو از گیتهاب دانلود کنین
مثلا
https://github.com/aspnet/Docs/tree/master/aspnetcore/web-api
4- حالا روی ایکون افزونه GitZip for github کلیک کنین تا یه صفحه ای باز بشه که از شما اون Token رو میخواد.
توکن رو paste کنین و Enter رو بزنین
5- حالا میتونین توی گیتهاب، روی ردیف پوشه هایی که مخواین، 2بار کلیک کنین و سپس از پایین صفحه که یک گزینه به نام دانلود ظاهر میشه، دانلودشون کنین

به همین راحتی
فقط دقت داشته باشین که "روی خود پوشه کلیک نکنین" و فقط روی ردیف اون پوشه یعنی "یک فضای خالی کنار نام پوشه" مثلا کلیک کنین تا یه گزینه تیک مانند براتون ظاهر بشه

حالا همه اینایی که گفتم رو بریزین دور؛ فیلم زیر کامل همه این مراحل رو نشونتون میده 👇
https://gitzip.org/assets/videos/gitzip-use-case.mp4

روش دوم : توسط سایت GitZip
این روش هم مشابه روش قبلی هست با این تفاوت که به جای افزونه، از سایت خودش استفاده میکنین
1- سایت زیر رو باز کنین
https://kinolien.github.io/gitzip/
2- مانند روش قبل Token ایجاد کنین و داخل باکس مربوطه paste کنین
3- ادرش پوشه مورد نظر جهت دانلود رو داخل با بالا سمت راست سایت وارد کنین و روی دکمه Download کلیک کنین
_________________
@IranAspMvc
DotNetZoom
دانلود یک پوشه خاص از یک ریپازیتوری در گیتهاب با GitZip for github https://goo.gl/ghGVzr الان میخواستم پورژه های samples داخل پوشه webapi ریپازیتوری AspNet Docs ماکروسافت رو دانلود و بررسی کنم که ادرسش اینه https://github.com/aspnet/Docs/tree/master/aspnetcore/web…
خود Github قابلیت دانلود یک پوشه خاص از یک ریپازیتوری رو نداره ولی به لطف پشتیبانی github از ورژن کنترول SVN میتونیم اینکارو انجام بدیم. در واقع ابزار قبلی "GitZip for github" هم همین کارو انجام میده
واسه اینکه اینکارو خودتون دستی انجام بدین
اول باید یکی از برنامه های SVN Client مخصوص ویندوز رو دانلود و نصب کنین
https://subversion.apache.org/packages.html#windows
لینک زیر 6 تا از بهترین برنامه های SVN Client رو لیست کرده، توی عملکرد تفاوت زیادی با هم ندارن و فقط بعضی هاشون یه سری ابزار جانبی و ui واسه راحتی بیشتر داخلشون اضافه شده
ولی ما فقط به command line client اش نیاز داریم
https://sliksvn.com/download/
پس از نصب میتونین با تایپ عبارت "svn help" توی کامند لاین ویندوز (cmd یا powershell) و مشاهده یه سری خروجی چرت و پرت، از صحت نصب اطمینان حاصل کنین.
حالا میرسیم به کامند های مورد نیاز برای دانلود یک پوشه خاص از یک ریپازیتوری توی گیتهاب
فرمت دستورش به این صورت هست
`svn export {repository-url}/trunk/{sub-directory} {output-folder-name}`
قسمت repository-url ادرس کامل ریپازیتوری بدون ".git" هست
یعنی
https://github.com/username/projectname/
مثال:
https://github.com/aspnet/Docs
قسمت /trunk/ ثابت هست
قسمت sub-directory که اختیاری هست، مسیر پوشه ی زیر مجموعه اون ریپازیتوری هست که میخواین دانلودش کنین (اگه چیزی ننویسین کل پروژه دانلود میشه و نه یک پوشه از اون)
مثال:
`https://github.com/aspnet/Docs/trunk/aspnetcore/web-api`
قسمت output-folder-name که اختیاری هست، نام پوشه ای روی کامپیوتر خودتون هست که قرار فایل ها داخلش دانلود بشن (اگه چیزی ننویسین به نام همون sub-directory یه پوشه ساخته میشه)
مثال:
svn export https://github.com/aspnet/Docs/trunk/aspnetcore/web-api my-webapi-sample
و مثلا دستور زیر کل پروژه رو دانلود میکنه
svn export https://github.com/username/projectname/trunk
قبل از اینکه پوشه ای رو دانلود کنین میتونین با دستور زیر لیست فایل هاشو مشاهده کنین
svn ls {repository-url}
مثال
svn ls https://github.com/aspnet/Docs/trunk/aspnetcore/web-api
_______________
@IranAspMvc
DotNetZoom
خود Github قابلیت دانلود یک پوشه خاص از یک ریپازیتوری رو نداره ولی به لطف پشتیبانی github از ورژن کنترول SVN میتونیم اینکارو انجام بدیم. در واقع ابزار قبلی "GitZip for github" هم همین کارو انجام میده واسه اینکه اینکارو خودتون دستی انجام بدین اول باید یکی…
دانلود یک پوشه خاص از یک ریپازیتوری در گیتهاب با DownGit
https://goo.gl/Pgfyub

سایت DownGit هم مشابه ابزار های بالاست فقط قابلیت خوب دیگه ای که داره اینه که لینک دانلود تولید میکنه و میتونین اون رو به دیگران بدید

https://minhaskamal.github.io/DownGit
_______________
@IranAspMvc
آموزش استفاده در تصویر gif زیر 👇
GitHub Repository Size
افزونه Chrome نمایش سایز کل Repository و تک تک فایل های آن در Github
https://goo.gl/iJtdsq

لینک دانلود افزونه
https://goo.gl/wmMF1V

مخزن گیتهاب و اموزش استفاده از افزونه
https://github.com/harshjv/github-repo-size
___________
@IranAspMvc
GitHub Plus
افزونه Chrome با جهت نمایش سایز ریپازیتوری و دانلود فایل های ان به صورت جداگانه
https://goo.gl/c9RttR

لینک دانلود افزونه
https://goo.gl/zDcVS9

مخزن گیتهاب و اموزش استفاده از افزونه
https://github.com/softvar/github-plus
___________
@IranAspMvc
Refined GitHub
افزونه Chrome مخصوص Github باز های حرفه ای
https://goo.gl/JJsCAu

اینقدر قابلیت های کاربردی و مفیدی که به گیتهاب شما اضافه میکنه زیادهههه، که نمیشه اصلا لیست کرد!
کافیه یه سر به لیست features هاش توی ریپازیتوریش بزنین
فقط به درد گیتهاب باز های حرفه ای میخوره نه اونایی که فقط از گیتهاب دانلود و clone و یا حتی pull, commit و push بلدن!
خیلی خیلی به درد کسایی میخوره که issue میزنن، fork میکنن، branch میسازن، pull request میزنن، comment میزارن و توی discussion ها فعال هستند.


لینک دانلود افزونه
https://goo.gl/61t6xs

مخزن گیتهاب و اموزش استفاده از افزونه
https://github.com/sindresorhus/refined-github
___________
@IranAspMvc
Forwarded from خبرگزاری توسعه دهندگان via @like
#اصلاحیه - اگر از امنیت dns های ایرانی و یا بین المللی نگران هستید , برای تظمین امنیت پروتکل dns بهتره از dnscrypt استفاده کنید .

با استفاده از این ابزار امنیت ترافیک شما تظمین میشه و با استفاده از سیستم کش dnscrypt سرعت دسترسی به سایت ها بالاتر میره .

https://github.com/jedisct1/dnscrypt-proxy

این ابزار ترافیک پروتکل dns رو رمزگذاری میکنه و امنیت و ردیابی ترافیک رو تغریبا غیر ممکن میکنه .

#نکته - برای دور زدن تحریم ها کافیه 94.232.174.194 رو به عنوان dns مودم تنظیم کنید و برای تظمین امنیت خودتون dnscrypt رو فعال و بر روی سیستم عامل آدرس 127.0.0.1 رو به عنوان dns تنظیم کنید .

با روش بالا بدون نیاز به فیلترشکن یا vpn و با سرعت بالا به تمام سایت های اینترنتی دنیا دسترسی دارین (البته بجز سایت های فیلتر شده از طرف دولت ایران) .

@irdevnews
#پایان_jQuery
https://goo.gl/rpjunu

کتابخانه jQuery سال‌ها به عنوان جزء اصلی توسعه‌ی برنامه‌های وب مطرح بوده‌است و برای بسیاری از توسعه دهندگان وب، یک پیشنیاز پیش‌فرض محسوب می‌شود
خالق جی‌کوئری (John Resig)، این کتابخانه را در سال‌های 2006 زمانیکه Internet Explorer نگارش‌های 6 و 7 بیش از 60 درصد بازار مرورگرها را به خود اختصاص داده بودند، ارائه داد. بله؛ در آْن زمان JavaScript Web API بسیار خام، پایداری مرورگرها بسیار پایین و تطابق با استانداردهای وب در بین مرورگرهای مختلف نیز بسیار پایین بود. بنابراین علت محبوبیت کتابخانه‌ای که در این شرایط، تجربه‌ی کاری یکدستی را در بین مرورگرهای مختلف ارائه می‌داد، کاملا واضح بود. اما ... اکنون سال 2018 است و اکثر قابلیت های jQuery به صورت توکار در جاواسکریپت وجود دارد و به لطف استاندارد سازی مرورگر های مدرن، شاهد رفتار متفاوت کد هایمان در مرورگر های مختلف نخواهیم بود
پس میتوان با حذف jQuery و استفاده از با native API مرورگرها، به سرعت بیشتری دست یافت و نیز حجم فایل های js مورد نیاز را کاهش داد و به همین دلیل است که github نیز چندی قبل، استفاده از jQuery را کنار گذاشت.
با این اوصاف میتوان انتظار داشت که در آینده ای نه چندان دور، محبوبیت جی کوئری از بین خواهد رفت، پس بهتره خودمون رو آماده کنیم.

جایگزین کردن jQuery با JavaScript خالص
سری مقالات زیر آموزش کاملی برای کار با javascript Pure (خالص) و حذف jQuery ارائه میدهد. این دوره درحال حاضر تکمیل نشده ولی در صورت تمایل میتونین در آینده آموزش های جدیدش رو دنبال کنین

https://www.dotnettips.info/post/2894
https://www.dotnettips.info/post/2895
https://www.dotnettips.info/post/2896
https://www.dotnettips.info/post/2897
https://www.dotnettips.info/post/2898
https://www.dotnettips.info/post/2899
________________
@IranAspMvc
Singleton Pattern
روش های مختلفی برای پیاده سازی
Singleton وجود دارد ولی بهترین روش برای الگوی Singleton در برنامه های چند کاربره مثل وب، استفاده از نوع Lazy موجود در دات نت 4 به بالا است
به صورت زیر
public sealed class Singleton
{
private static readonly Lazy<Singleton> lazy = new Lazy<Singleton>(() => new Singleton(), LazyThreadSafetyMode.ExecutionAndPublication);

public static Singleton Instance => lazy.Value;

private Singleton() { }
}
زیرا:
1- کاملا lazy بوده و فقط به هنگام اولین درخواست، مقدار مورد نظر ساخته می شود و نه قبل از آن
2- کاملا thread-safe است به لطف قابلیت LazyThreadSafetyMode.ExecutionAndPublication
3- بسیار سبک تر از روش های مشابه است و نسبت به آنها از پرفرمنس بیشتری برخوردار است

لینک های زیر توضیحات خوبی درباره این موضوع ارائه میدهد

روش های مختلف پیاده سازی Singleton Pattern در سی شارپ
https://csharpindepth.com/Articles/General/Singleton.aspx
پشتیبانی توکار از ایجاد کلاس‌های Singleton از دات نت 4 به بعد
https://www.dotnettips.info/post/1897/
دات نت 4 و کلاس Lazy
https://www.dotnettips.info/post/423

اگر به thread-safe بودن نیاز ندارید (مثلا در برنامه های Desktop) میتوانید از LazyThreadSafetyMode.None استفاده کنید و نیز به دلیل عدم مدیریت مباحث همزمانی، از پرفرمنس بیشتری برخوردار شوید

همچنین روش دیگری وجود دارد که کاملا lazy نیست (فقط فیلد instance به صورت lazy است) ولی بدون استفاده از lock، قابلیت thread-safe بودن را داراست و پرفرمنس به مراتب بهتری نسبت به بقیه روش ها دارد.
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();

// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Singleton() { }

private Singleton() { }

public static Singleton Instance => instance;
}
نکته این روش تعریف سازنده استاتیک در کلاس است، این کار باعث میشود کامپایلر سی شارپ،کلاس مورد نظر را به صورت "beforefieldinit" نشانه گذاری نکند یا به عبارتی باعث میشود تمام فیلد های آن کلاس "الزاما قبل از سازنده مقداردهی شوند". پس در صورتی که کلاس مورد نظر new شود (در مثال ما ممکن نیست زیرا سازنده پیشفرض آن private تعریف شده است). یا اینکه یکی از member های کلاس، مثلا Instance property آن جایی رفرنس داده شده باشد(استفاده شده باشد). در این صورت مقدار دهی فیلد های آن قبل از سازنده کلاس به صورت کاملا thread-safe اجرا می شود.

@IranAspMvc
کتابخانه مجموعه ابزار های زبان فارسی برای Javascript

قابلیت ها :
Convert Persian words to the number and vice versa.
Add and remove commas to numbers.
Convert Persian numbers to Arabic or English numbers and vice versa.
Validation of Iranian National Number(code-e Melli).
Get the city and province name by national code.
Bank number validation.
Get the name of the bank by bank account number.
Validation of the correctness of the text of the Persian language and clear the Arabic letters in the Persian text.
Fix Persian characters in URL.

ریپازیتوری گیتهاب :
https://github.com/ali-master/persian-tools/

@IranAspMvc
مدیریت بهتر Tab های Visual Studio با TabsStudio
https://goo.gl/9U8to6

یک افزونه عالی برای مدیریت تب های ویژوال استادیو با امکان گروه بندی، نشانه گذاری و رنگ بندی تب ها و...
این افزونه پولی هست و نسخه رایگان نداره ولی دارای یک نسخه آزمایشی یک ماهه هست

نیاز به توضیح اضافه نداره فقط کافیه لینک زیر رو مشاهده کنین
لینک دمو:
https://tabsstudio.com/documentation/screenshots.html

لینک وبسایت:
https://tabsstudio.com/

@IranAspMvc
تجربه یک Debugging فوق العاده با OzCode
https://goo.gl/Z9RTmi

این افزونه قابلیت های بسیار زیاد و فوق العاده کاربردی داره که باعث میشه Debugging رو به یک تجربه لذت بخش تبدیل کنه
این افزونه پولی هست و نسخه رایگان نداره ولی دارای یک نسخه آزمایشی یک ماهه هست

نیاز به توضیح اضافه نداره فقط کافیه لینک زیر رو مشاهده کنین
لینک افزونه و دمو:
https://marketplace.visualstudio.com/items?itemName=CodeValueLtd.OzCode

لینک وبسایت:
https://www.oz-code.com/

@IranAspMvc
Forwarded from عکس نگار
رویداد آموزشی دات نت تاک با موضوع Testing

لینک ثبت نام:
https://evnd.co/uJy0e
زمان : پنج شنبه 15شهریور، ساعت 17:00 تا 20:00
مکان : تهران ،چهار راه ولیعصر، کوچه بالاور، برج فناوری امیرکبیر، طبقه اول

دات نت تاک (گفتگویی از جنس دات نت) :
رویداد DotNetTalk دات نت تاک فرصتی است که در آن ضمن آشنایی با یکدیگر و شبکه سازی، به بحث تبادل نظر و یادگیری درباره موضوعات مختلف برنامه نویسی می پردازیم.

موضوع این جلسه : Testing

یکی از موارد مهمی که شرکت ها و حتی برنامه نویس ها به اون توجه لازم رو ندارند، مبحث "تست" هست. رعایت اصول طراحی و نوشن تست باعث میشه اولا برنامه ای تولید کنین که احتمال وقوع باگ درش کمتر هست، درنتیجه هم اعتماد خودتون به برنامه تون بیشتر میشه و هم اعتماد مشتری شما.
دوما توسعه و نگهداری کد هاتون در بلند خیلی راحت تر و سریع تر اتفاق بیافته.
اما چرا با وجود اینکه میدونیم تست چیز خوبیه، ولی اکثرمون بهش عمل نمیکنیم!؟ چه چیزی باعث شده از تست نویسی فرار کنیم؟
اگه هنوز به اهمیت تست نویسی پی نبردین یا شایدم پی بردین ولی بلد نیستن اصولی و صحیح بنویسین، این رویداد رو از دست ندین :)

توی این جلسه به موارد زیر میپردازیم :
- چرا باید تست بنویسیم
- چرا تمایلی به تست نویسی نداریم؟!
- باید ها و نباید های طراحی و نوشتن تست
- چطور علمی و اصولی تست بسازیم؟
- کار با فریمورک های محبوب تست خودکار
- کجا ها از mocking؟ و چگونه؟
- سایر ابزارهای مطرح در نگهداری و سازماندهی خودکار تست ها

میزبان این جلسه : فینوا
حامیان رسانه ای : فینوا - اوکس تیم

از این که با حضوتون، بار علمی رویداد رو افزایش میدهید سپاس گذاریم

لینک ثبت نام:
https://evnd.co/uJy0e
به خواب رفتن در دو دقیقه به روش سربازان ارتش آمریکا

https://jadi.net/2018/09/go-to-sleep-in-2-mins/

بعضی ها خیلی راحت می‌خوابن. تا سرشون به بالشت می رسه نفسشون منظم می شه و خوابشون می بره. بعضی ها اما در طول شب غلت می‌زنن و منتظر خواب می مونن. اگر شما تو دسته دوم هستین یا کسی که براتون خیلی مهمه جزو اونهایی است که به سختی به خواب می ره، یه خبر خوب براتون دارم! تکنیک ارتش آمریکا که به همه اجازه می ده تقریبا در ۲ دقیقه خوابشون ببره!

این روش در ارتش آمریکا استفاده می‌شده و می‌شه تا به سربازها اجازه بده در شرایط نامناسب هم به راحتی به خواب برن تا موقع بیدار شدن سر حال باشن. این روش اولین بار در کتاب «ریلکس باش و پیروز شو: کارایی قهرمانانه» در ۱۹۸۱ معرفی می‌شد ولی تازه دوباره کشف شده و پیشنهاد می‌شه.

روش اینطوریه:

۱. عضلات صورت رو ریلکس کنین، از جمله زبان و فک و عضلات پیشنونی و لپ و اطراف صورت. این ریلکس کردن می تونه در دو سه مرحله اتفاق بیافته و در هر مرحله آدم تعجب می کنه که «اون فلان عضله هنوز سفت بود!»
۲. شونه ها رو آویزون کنین و تا جایی که می شه از سرتون فاصله بدین. بعد هم بازوها و دست ها رو
۳. نفستون رو بیرون بدین و سینه رو ریلکس کنین و بعدش هم پاها رو. از رون ها شروع کنین و پایین برین
۴. ده ثانیه در مغزتون به یکی از سه موضوع زیر فکر کنین:

1️⃣ توی یک قایق پارویی یک نفره لم دادین و در یک دریاچه آرام هستین و آسمون آبی بالای سرتونه
2️⃣ در یک ننوی سیاه در یک اتاق کاملا تاریک لم دادین
3️⃣ با خودتون بگین «به چیزی فکر نکن، به چیزی فکر نکن، به چیزی فکر نکن» و برای ده ثانیه به آرومی تکرارش کنین.

ادعا می‌شه که بعد از شش هفته تمرین به این شیوه، ۹۶٪ آدم‌ها می تونن در دو دقیقه به خواب برن! خلاصه اش هم اینه که برای خواب به سه چیز نیاز داریم: جای مناسب، بدن ریلکس و فکر خالی.

امیدوارم حسابی روت جواب بده (:

کانال @jadinet