#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
دنیای AR یا Augmented Reality باعث ایجاد مفاهیم جدیدی در UI/UX شدهاست. توان خلق موجودیتها در فضای اطراف کاربر امکانی است که قبلا وجود نداشته و به همین دلیل ظهور AR باعث ایجاد تجربیات جدیدی در دنیای UX شدهاست.
برای مثال در لینک زیر یکی از طراحان ارشد هولوگرافیک توضیح میدهد که در نسخههای اولیه نرمافزار طراحی برای خلق اشیا سه بعدی، از یک «میز چهارگوش» مجازی استفاده شده بود که کاربر روی آن شروع به طراحی میکرد (مثلا طراحی یک اسباببازی). پس از تستهای UX متوجه شدند چهارگوش بودن میز باعث میشود کاربران بیشتر یک سمت میز بایستند و کمتر دور شیی که طراحی میکنند بچرخند. به همین دلیل در نسخههای بعدی از یک میز مجازی «گرد» استفاده شد. نتیجه عالی بود، کاربران دیگر یک جای ثابت نمیایستند و تقریبا هر دفعه از یک زاویه جدید محصول خود را میبینند.
در مقاله زیر طراح ارشد تجربیات خود و درسهایی که تا به حال از انجام پروژههای هولوگرافیک کسب کرده را توضیح داده و چند مثال جذاب دیگر را هم بیان کرده است.
https://developer.microsoft.com/en-us/windows/holographic/case_study_-_3_holostudio_ui_and_interaction_design_learnings
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
برای مثال در لینک زیر یکی از طراحان ارشد هولوگرافیک توضیح میدهد که در نسخههای اولیه نرمافزار طراحی برای خلق اشیا سه بعدی، از یک «میز چهارگوش» مجازی استفاده شده بود که کاربر روی آن شروع به طراحی میکرد (مثلا طراحی یک اسباببازی). پس از تستهای UX متوجه شدند چهارگوش بودن میز باعث میشود کاربران بیشتر یک سمت میز بایستند و کمتر دور شیی که طراحی میکنند بچرخند. به همین دلیل در نسخههای بعدی از یک میز مجازی «گرد» استفاده شد. نتیجه عالی بود، کاربران دیگر یک جای ثابت نمیایستند و تقریبا هر دفعه از یک زاویه جدید محصول خود را میبینند.
در مقاله زیر طراح ارشد تجربیات خود و درسهایی که تا به حال از انجام پروژههای هولوگرافیک کسب کرده را توضیح داده و چند مثال جذاب دیگر را هم بیان کرده است.
https://developer.microsoft.com/en-us/windows/holographic/case_study_-_3_holostudio_ui_and_interaction_design_learnings
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Iran .Net
اصل پیشاهنگی یا The Boy Scout Principle
این اصل، از یک اصلِ فلسفی بریتانیایی برداشت شده است: "سعی کنیم جهان را - به نسبت آنچه که پیش تر یافته ایم - جای بهتری کنیم".
در کتاب خواندنی "97 نکته ای که هر برنامه نویس باید بداند"، Uncle Bob با استفاده از این اصل، اصلی دیگر را در حوزه نرم افزار بیان می کند: "هر بار کدی را دیدیم، به نسبت قبل آن را بهتر کنیم." در این میان مهم نیست که کدام یک از اعضای تیم قبلا این کد را زده و یا مقدار بهبود چه حد کوچک باشد. این بهبود می تواند به کوچکی تغییر نام متغیر ها، کم کردن تکرار (duplication) ، کوتاه کردن یک متد طولانی و خواناتر کردن کد و ... باشد.
در جهان، همه هستی (اعم از نرم افزار) به طور طبیعی به ویرانی و آشوب و فرسودگی میل می کند و برای جلوگیری از این امر ما باید انرژی مصرف کنیم و تعهد داشته باشیم. در نرم افزار هم وقتی همه اعضای تیم به این اصل متعهد باشند، ساختار کد به جای هرز رفتن در گذر زمان، روز به روز و به تدریج بهتر خواهد شد.
همانطور که آشغال ریختن در طبیعت، عملی خلاف شعور و فرهنگ می باشد، این اصل بیان می کند که اصلاح نکردن کد در صورت مشاهده ایراد و ضعف به همان میزان دور از فرهنگ و تعهد و حرفه ای گری است. قرار نیست فقط به کد های خودمان اهمیت بدهیم و نسبت به آن ها حساس باشیم. هر کدام از اعضای تیم باید نسبت به کیفیت کار کل تیم حساس بوده و سعی در بهبود داشته باشند.
1. یادداشت عمو باب در مورد اصل پیشاهنگی
http://programmer.97things.oreilly.com/wiki/index.php/The_Boy_Scout_Rule
2. در مقاله "ریفکتورینگ فرصت طلبانه"، مارتین فاولر توضیح می دهد که چطور علی رغم وجود دوره هایی برای اصلاح ساختاری سیستم، باید تیم همواره و هر جا و هر زمانی نسبت به ریفکتورینگ و اصلاح کد تعهد داشته باشد. در اینجا فاولر فرصت های متعددی را که در حین کار با کد های سیستم پیش می آید، مطرح می کند و هر کدام را به عنوان فرصتی برای ریفکتورینگ مغتنم می شمارد. فاولر معتقد است ریفکتورینگ یک امر و اصل همیشگی و جاری در سیستم باید باشد.اگر با تیمی مواجه هستیم که همیشه برای اصلاح کد ها نیاز به برنامه ریزی و جلسات متعدد دارد، یک جای کار می لنگد!.
https://martinfowler.com/bliki/OpportunisticRefactoring.html
این اصل، از یک اصلِ فلسفی بریتانیایی برداشت شده است: "سعی کنیم جهان را - به نسبت آنچه که پیش تر یافته ایم - جای بهتری کنیم".
در کتاب خواندنی "97 نکته ای که هر برنامه نویس باید بداند"، Uncle Bob با استفاده از این اصل، اصلی دیگر را در حوزه نرم افزار بیان می کند: "هر بار کدی را دیدیم، به نسبت قبل آن را بهتر کنیم." در این میان مهم نیست که کدام یک از اعضای تیم قبلا این کد را زده و یا مقدار بهبود چه حد کوچک باشد. این بهبود می تواند به کوچکی تغییر نام متغیر ها، کم کردن تکرار (duplication) ، کوتاه کردن یک متد طولانی و خواناتر کردن کد و ... باشد.
در جهان، همه هستی (اعم از نرم افزار) به طور طبیعی به ویرانی و آشوب و فرسودگی میل می کند و برای جلوگیری از این امر ما باید انرژی مصرف کنیم و تعهد داشته باشیم. در نرم افزار هم وقتی همه اعضای تیم به این اصل متعهد باشند، ساختار کد به جای هرز رفتن در گذر زمان، روز به روز و به تدریج بهتر خواهد شد.
همانطور که آشغال ریختن در طبیعت، عملی خلاف شعور و فرهنگ می باشد، این اصل بیان می کند که اصلاح نکردن کد در صورت مشاهده ایراد و ضعف به همان میزان دور از فرهنگ و تعهد و حرفه ای گری است. قرار نیست فقط به کد های خودمان اهمیت بدهیم و نسبت به آن ها حساس باشیم. هر کدام از اعضای تیم باید نسبت به کیفیت کار کل تیم حساس بوده و سعی در بهبود داشته باشند.
1. یادداشت عمو باب در مورد اصل پیشاهنگی
http://programmer.97things.oreilly.com/wiki/index.php/The_Boy_Scout_Rule
2. در مقاله "ریفکتورینگ فرصت طلبانه"، مارتین فاولر توضیح می دهد که چطور علی رغم وجود دوره هایی برای اصلاح ساختاری سیستم، باید تیم همواره و هر جا و هر زمانی نسبت به ریفکتورینگ و اصلاح کد تعهد داشته باشد. در اینجا فاولر فرصت های متعددی را که در حین کار با کد های سیستم پیش می آید، مطرح می کند و هر کدام را به عنوان فرصتی برای ریفکتورینگ مغتنم می شمارد. فاولر معتقد است ریفکتورینگ یک امر و اصل همیشگی و جاری در سیستم باید باشد.اگر با تیمی مواجه هستیم که همیشه برای اصلاح کد ها نیاز به برنامه ریزی و جلسات متعدد دارد، یک جای کار می لنگد!.
https://martinfowler.com/bliki/OpportunisticRefactoring.html
martinfowler.com
bliki: Opportunistic Refactoring
Refactoring does not need to be planned out, mostly it is done opportunistically, to fix problems while working on another task.
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
سازگاری با مرورگرهای مختلف از ابتدا برای طراحان مشکلاتی را در بر داشته و مشکل از جایی عمیقتر میشود که این مرورگرها نسخههای متفاوتی دارند و شما نمیتوانید همه آنها را کنار هم داشته باشید، بخصوص که این روزها استفاده از مروگرهای تلفن همراه و تبلتها نیز بالا رفته است. پس وبسایت شما باید با همه مرورگرها سازگار و یا اصطلاحا cross-browser باشد .
از بین سرویسدهندگانی که این تستها را انجام میدهند شاید یکی از بهترین سرویسدهندگان، BrowserStack باشد. با استفاده از این سرویس میتوانید سایت خود را در بیشتر از 1000 نسخهی از مرورگرهای مختلف تست کنید. این تنوع شامل دستگاهها و حتی سیستم عاملهای مختلف میشود. همینطور این امکان را به شما میدهد تا بتوانید نسخهی اجرای شدهی سایت خود را در نسخههای مختلف مرورگرها، حتی دستگاههای مختلف توسط اسکرین شات ببنید. مهمترین قابلیت آن تست سایتهای local و خصوصی به اکثر زبانهای برنامه نویسی میباشد.
میتوانید به کمک لینک زیر از سایت خود روی مرورگرهای مختلف اسکرین شات بگیرید.
https://www.browserstack.com/screenshots
#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1
کانال تلگرام:
@SoftwarePhilosophy
___
از بین سرویسدهندگانی که این تستها را انجام میدهند شاید یکی از بهترین سرویسدهندگان، BrowserStack باشد. با استفاده از این سرویس میتوانید سایت خود را در بیشتر از 1000 نسخهی از مرورگرهای مختلف تست کنید. این تنوع شامل دستگاهها و حتی سیستم عاملهای مختلف میشود. همینطور این امکان را به شما میدهد تا بتوانید نسخهی اجرای شدهی سایت خود را در نسخههای مختلف مرورگرها، حتی دستگاههای مختلف توسط اسکرین شات ببنید. مهمترین قابلیت آن تست سایتهای local و خصوصی به اکثر زبانهای برنامه نویسی میباشد.
میتوانید به کمک لینک زیر از سایت خود روی مرورگرهای مختلف اسکرین شات بگیرید.
https://www.browserstack.com/screenshots
#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1
کانال تلگرام:
@SoftwarePhilosophy
___
Browserstack
Browser Screenshots For Quick Testing On 3000+ Real Browsers | BrowserStack
Generate Screenshots of your Website on Chrome, IE, Firefox and Safari to test for Cross Browser compatibility on desktop browsers and real mobile devices.
Forwarded from Iran Agile
چگونه محصولی کاملا متمایز از رقبا ارایه دهید
با افزایش رقابت، ایجاد تمایز در محصولها کار بسیار سختی است و واقعیت این است که محصول شما بدون رقیب نیست. در نتیجه باید از این مسئله اطمینان حاصل کنید که محصول دارای ویژگیهای متمایزی بوده و دلیل قانع کننده ای به مشتری برای استفاده از آن به جای محصولات مشابه می دهد. Strategy Canvas یک ابزار بسیار مناسب برای رسیدن و سنجیدن این مسئله است. بوم استراتژی توسط کیم و مابورگن خالقان تئوری اقیانوس آبی معرفی شد.
📰 📝
🌐 http://blog.scrum.ir/2017/01/strategy-canvas/
@iranagile
با افزایش رقابت، ایجاد تمایز در محصولها کار بسیار سختی است و واقعیت این است که محصول شما بدون رقیب نیست. در نتیجه باید از این مسئله اطمینان حاصل کنید که محصول دارای ویژگیهای متمایزی بوده و دلیل قانع کننده ای به مشتری برای استفاده از آن به جای محصولات مشابه می دهد. Strategy Canvas یک ابزار بسیار مناسب برای رسیدن و سنجیدن این مسئله است. بوم استراتژی توسط کیم و مابورگن خالقان تئوری اقیانوس آبی معرفی شد.
📰 📝
🌐 http://blog.scrum.ir/2017/01/strategy-canvas/
@iranagile
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مفهوم «Saga» در معماری نرمافزار مفهومی است که اخیرا در مقالههای مربوط به CQRS Pattern بسیار زیاد از آن صحبت میشود.
با این که مفهوم بیشتر از طریق CQRS شناخته شدهاست ولی در حقیقت این مفهوم از قبل وجود داشتهاست. مفهوم Saga اولین بار در مقالهای با نام «Sagas» توسط «هکتور گارسیا» و «کنت سالم» در سال سال ۱۹۸۷ معرفی شد. لینک زیر این مفهوم را با نام «Process Manager» معرفی کرده و این نام را نام بهتری برای این مفهوم دانسته.
مطلب زیر یکی از بهترین منابع برای آشنایی با مفهوم Saga است که به سادگی آن را توضیح داده است. در این مقاله مفهوم Saga با یک مثال ساده بیزنسی شرح داده شده و کاربرد آن در مقایسه با سایر روشها بررسی شدهآست.
https://msdn.microsoft.com/en-us/library/jj591569.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
با این که مفهوم بیشتر از طریق CQRS شناخته شدهاست ولی در حقیقت این مفهوم از قبل وجود داشتهاست. مفهوم Saga اولین بار در مقالهای با نام «Sagas» توسط «هکتور گارسیا» و «کنت سالم» در سال سال ۱۹۸۷ معرفی شد. لینک زیر این مفهوم را با نام «Process Manager» معرفی کرده و این نام را نام بهتری برای این مفهوم دانسته.
مطلب زیر یکی از بهترین منابع برای آشنایی با مفهوم Saga است که به سادگی آن را توضیح داده است. در این مقاله مفهوم Saga با یک مثال ساده بیزنسی شرح داده شده و کاربرد آن در مقایسه با سایر روشها بررسی شدهآست.
https://msdn.microsoft.com/en-us/library/jj591569.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
اگر قصد انتخاب فریم ورکی برای ساخت برنامههای تک صفحهای سمت کاربر را دارید حتما میدانید که انتخابهای زیادی پیش روی شما قرار دارد که از آن جمله میتوان به Angular 1 , Durandal , React یا Ember اشاره کرد. اما فریم ورکهای جدیدتر Angular2 و Aurelia که توجه زیادی را به خود جلب کردهاند میتوانند جزو اولویتهای شما قرار بگیرد، ولی "کدام یک بهتر است؟" این سوالی است که همه با آن مواجه میشوند و افرادی که تجربه کار با Angular1 را دارند شاید بر این باور باشند که مطمئنا Angular2 انتخاب مناسبتری است ولی در واقع این دو فرم ورک فقط در نام Angular با هم مشترک هستند و در Angular2 شاهد بازنویسی کامل ساختار فریم ورک میباشیم.
تصمیم گیری بین این دو میتواند شما را با چالش مواجه کند زیرا هر دو دارای طراحی فوق العاده و قدرتمندی میباشند که تمام نیازها برای ساخت برنامههای تک صفحهای را برآورده میکنند و همینطور پشتوانه تجاری خوب آنها از دیگر ویژگیهای این دو به شمار میرود. به همین دلیل میتوان گفت بین این دو فریم ورک قدرتمند برندهای وجود ندارد ولی تفاوت های زیادی از قبیل معماری یا Data binding با هم دارند. مقایسه این موارد میتواند در تصمیم گیری به شما کمک کند تا از میان فریم ورکها راحتتر انتخاب کنید.
لینک زیر به شرح مقایسه بین فریم ورک های Aurelia و Angular2 می پردازد.
https://www.pluralsight.com/blog/software-development/angular-2-vs-aurelia
#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1
کانال تلگرام:
@SoftwarePhilosophy
___
تصمیم گیری بین این دو میتواند شما را با چالش مواجه کند زیرا هر دو دارای طراحی فوق العاده و قدرتمندی میباشند که تمام نیازها برای ساخت برنامههای تک صفحهای را برآورده میکنند و همینطور پشتوانه تجاری خوب آنها از دیگر ویژگیهای این دو به شمار میرود. به همین دلیل میتوان گفت بین این دو فریم ورک قدرتمند برندهای وجود ندارد ولی تفاوت های زیادی از قبیل معماری یا Data binding با هم دارند. مقایسه این موارد میتواند در تصمیم گیری به شما کمک کند تا از میان فریم ورکها راحتتر انتخاب کنید.
لینک زیر به شرح مقایسه بین فریم ورک های Aurelia و Angular2 می پردازد.
https://www.pluralsight.com/blog/software-development/angular-2-vs-aurelia
#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1
کانال تلگرام:
@SoftwarePhilosophy
___
Pluralsight
Aurelia vs. Angular 2
Learn the differences between Aurelia and Angular 2 and decide which SPA framework is right for you.
#خلاصه_مطالب «فلسفه نرمافزار» در هفته گذشته:
۱. تجربیات یک طراح ارشد UX پروژههای هولوگرافیک
#ux #hololens
https://news.1rj.ru/str/SoftwarePhilosophy/654
۲. دو مقاله تفصیلی در مورد The Boy Scout Principle (ایران دات نت)
https://news.1rj.ru/str/SoftwarePhilosophy/655
۳. ابزاری برای تست صفحات وب در browser های مخلتف به همراه اسکرینشات
#frontend #browsercompability
https://news.1rj.ru/str/SoftwarePhilosophy/658
۴. چگونه محصولی کاملا متمایز از رقبا ارایه دهید (Iran Agile)
#productdesign
https://news.1rj.ru/str/SoftwarePhilosophy/659
۵. مفهوم Saga در معماری نرمافزار
#cqrs #designpattern #saga
https://news.1rj.ru/str/SoftwarePhilosophy/661
۶. مقیاسه فریم ورکهای Aurelia و Angular2
#angular2 #aurelia
https://news.1rj.ru/str/SoftwarePhilosophy/662
ـــــــــــ
@SoftwarePhilosophy
۱. تجربیات یک طراح ارشد UX پروژههای هولوگرافیک
#ux #hololens
https://news.1rj.ru/str/SoftwarePhilosophy/654
۲. دو مقاله تفصیلی در مورد The Boy Scout Principle (ایران دات نت)
https://news.1rj.ru/str/SoftwarePhilosophy/655
۳. ابزاری برای تست صفحات وب در browser های مخلتف به همراه اسکرینشات
#frontend #browsercompability
https://news.1rj.ru/str/SoftwarePhilosophy/658
۴. چگونه محصولی کاملا متمایز از رقبا ارایه دهید (Iran Agile)
#productdesign
https://news.1rj.ru/str/SoftwarePhilosophy/659
۵. مفهوم Saga در معماری نرمافزار
#cqrs #designpattern #saga
https://news.1rj.ru/str/SoftwarePhilosophy/661
۶. مقیاسه فریم ورکهای Aurelia و Angular2
#angular2 #aurelia
https://news.1rj.ru/str/SoftwarePhilosophy/662
ـــــــــــ
@SoftwarePhilosophy
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از محصولاتی که بصورت تخصصی در حوزه مجازی سازی در لایه سیستم عامل فعالیت میکند Docker می باشد . داکر یک محصول Open Source است که فرایند ایجاد، توسعه و اجرا کردن Application ها را با استفاده از Container ها ساده میکند. Container ها به یک برنامه نویس این اجازه را میدهد که application خود را با تمامی اجزای مورد نیاز آن اعم از فایلهای dll و کلیه library ها، کلیه وابستگی ها در قالب یک بسته نرم افزاری بیرون بدهد به شکلی که از بیرون یک نرم افزار واحد به نظر برسد.
از ویژگی های اصلی Docker میتوان به Open Source بودن محصول، سبک بودن، Deploy سریع اپلیکیشن، قابلیت جابجایی Containerها بین ماشینهای مختلف و قابلیت ورژن کنترل Containerها میباشد.
لینک زیر در مورد مکانیزم Docker و ویژگیهای آن توضیح میهد.
http://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-popular
#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1
کانال تلگرام:
@SoftwarePhilosophy
___
از ویژگی های اصلی Docker میتوان به Open Source بودن محصول، سبک بودن، Deploy سریع اپلیکیشن، قابلیت جابجایی Containerها بین ماشینهای مختلف و قابلیت ورژن کنترل Containerها میباشد.
لینک زیر در مورد مکانیزم Docker و ویژگیهای آن توضیح میهد.
http://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-popular
#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1
کانال تلگرام:
@SoftwarePhilosophy
___
ZDNET
What is Docker and why is it so darn popular?
Docker, a new container technology, is hotter than hot because it makes it possible to get far more apps running on the same old servers and it also makes it very easy to package and ship programs. Here's what you need to know about it.
Forwarded from Iran .Net
جلوگیری از حمله DOS
یکی از آسان ترین روش های حمله به وب سایت ها استفاده از تکنیکی به نام Denial Of Service (عدم پذیرش سرویس) و یا DOS می باشد.
در این تکنیک، فرد مهاجم تعداد بسیار بالایی از درخواست ها را به سمت سامانه شما روانه می کند. با بالا رفتن درخواست ها، منابع بسیاری زیادی در سرور اشغال می شود و یک صف طولانی از درخواست ها شکل می گیرد که به علت طولانی بودن، بسیاری از درخواست ها هیچ وقت شانس رسیدگی پیدا نخواهند کرد و کاربران شما عملا از دسترسی به وب سایت محروم خواهند شد.
برای جلوگیری از این اتفاق یکی از ساده ترین کار ها آن می باشد که فهرستی از تمامیِ IP هایی که به سمت شما آمده اند را ذخیره کنید و در هر بازه ی زمانیِ مشخص، اجازه تعداد محدودی درخواست را به آن IP بدهید.
قطعا بهترین جا برای پیاده سازی این منطق، جایی است که در فاصله زیادی از برنامه شما قرار داشته و نزدیک به سیستم عامل و وب سرور می باشد. در این صورت قبل از رسیدن درخواست به سمت برنامه و گرفتن منابع، درخواست مسدود شده و از صف خارج خواهد شد.
قابلیت Dynamic IP Address Restrictions، در IIS دقیقا به همین منظور قرار داده شده است. توسط این قابلیت می توانید در سطح وب سرور، محدودیت ها و سیاست هایی را بر روی IP ها اعمال کنید تا در صورت وقوع حملات DOS، به طور خودکار IP های مهاجم تشخیص داده شده و از چرخه سیستم عامل خارج شوند.
1. https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-dynamic-ip-address-restrictions
2. https://technet.microsoft.com/en-us/library/hh831785(v=ws.11).aspx
@Irandotnet
یکی از آسان ترین روش های حمله به وب سایت ها استفاده از تکنیکی به نام Denial Of Service (عدم پذیرش سرویس) و یا DOS می باشد.
در این تکنیک، فرد مهاجم تعداد بسیار بالایی از درخواست ها را به سمت سامانه شما روانه می کند. با بالا رفتن درخواست ها، منابع بسیاری زیادی در سرور اشغال می شود و یک صف طولانی از درخواست ها شکل می گیرد که به علت طولانی بودن، بسیاری از درخواست ها هیچ وقت شانس رسیدگی پیدا نخواهند کرد و کاربران شما عملا از دسترسی به وب سایت محروم خواهند شد.
برای جلوگیری از این اتفاق یکی از ساده ترین کار ها آن می باشد که فهرستی از تمامیِ IP هایی که به سمت شما آمده اند را ذخیره کنید و در هر بازه ی زمانیِ مشخص، اجازه تعداد محدودی درخواست را به آن IP بدهید.
قطعا بهترین جا برای پیاده سازی این منطق، جایی است که در فاصله زیادی از برنامه شما قرار داشته و نزدیک به سیستم عامل و وب سرور می باشد. در این صورت قبل از رسیدن درخواست به سمت برنامه و گرفتن منابع، درخواست مسدود شده و از صف خارج خواهد شد.
قابلیت Dynamic IP Address Restrictions، در IIS دقیقا به همین منظور قرار داده شده است. توسط این قابلیت می توانید در سطح وب سرور، محدودیت ها و سیاست هایی را بر روی IP ها اعمال کنید تا در صورت وقوع حملات DOS، به طور خودکار IP های مهاجم تشخیص داده شده و از چرخه سیستم عامل خارج شوند.
1. https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-dynamic-ip-address-restrictions
2. https://technet.microsoft.com/en-us/library/hh831785(v=ws.11).aspx
@Irandotnet
Docs
IIS 8.0 Dynamic IP Address Restrictions
The Dynamic IP Restrictions Extension for IIS provides IT Professionals and Hosters a configurable module that helps mitigate or block Denial of Service Atta...
اولین قدم در ساخت تیم پروژه در TFS انتخاب پروسه آن است که قالب کلی سیستم پیگیری ورکآیتمها را مشخص میکند.
یکی از این پروسهها، CMMI است. در اصل Capability Maturity Model Integration (CMMI) یک مدل است و نه نسخهای که قدم به قدم قابل اجرا باشد. این مدل مجموعه ای از رفتارهای سازمانی برای توسعه نرم افزار و مهندسی سیستم را ارايه میدهد. هدف این مدل ارزیابی میزان بلوغ فرایندهای سازمان و ارائه راهکارهایی برای بهبود آنهاست که نهایتا منجر به بهبود محصول نهایی میشود.
در TFS زمانی این نوع پروسه انتخاب میشود که تیم از روشهای مشخص و خاصی در پروژه استفاده میکند و نیازمند چارچوبی برای بهبود پروسه و فرایندهای خود است که امکان ارزیابی تصمیمات و روشها را فراهم کند.
در این پروسه امکان پیگیری requirement, change request, risk and review وجود دارد.
لینک زیر به طور کامل پروسه CMMI را در TFS شرح میدهد.
https://www.visualstudio.com/en-us/docs/work/guidance/cmmi-process
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
یکی از این پروسهها، CMMI است. در اصل Capability Maturity Model Integration (CMMI) یک مدل است و نه نسخهای که قدم به قدم قابل اجرا باشد. این مدل مجموعه ای از رفتارهای سازمانی برای توسعه نرم افزار و مهندسی سیستم را ارايه میدهد. هدف این مدل ارزیابی میزان بلوغ فرایندهای سازمان و ارائه راهکارهایی برای بهبود آنهاست که نهایتا منجر به بهبود محصول نهایی میشود.
در TFS زمانی این نوع پروسه انتخاب میشود که تیم از روشهای مشخص و خاصی در پروژه استفاده میکند و نیازمند چارچوبی برای بهبود پروسه و فرایندهای خود است که امکان ارزیابی تصمیمات و روشها را فراهم کند.
در این پروسه امکان پیگیری requirement, change request, risk and review وجود دارد.
لینک زیر به طور کامل پروسه CMMI را در TFS شرح میدهد.
https://www.visualstudio.com/en-us/docs/work/guidance/cmmi-process
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
Docs
CMMI process template artifacts - VSTS & TFS
CMMI process objects used to plan and track work, monitor progress, and trends when connecting to Visual Studio Team Services & Team Foundation Server
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۶۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
نوشتن بات برای بازیهای کامپیوتری یکی از تفریحاتی است که برای برنامهنویسان میتواند جذاب باشد. با اینکه این برنامهها معمولا جز برنامههای کوچک محسوب میشوند ولی معماری نرمافزاری آنها کماکان میتواند جذاب باشد. یکی از روشهای معماری این نرمافزارها مدل کردن جهان بازی است. در این معماری تمامی امکاناتی که یک بازی در اختیار کاربر قرار میدهد به طور انتزاعی طراحی میشود. برای مثال برای اینکه بازی ساده Telegram Lumberjack را مدل کرد باید بررسی کرد این بازی چه امکاناتی را در اختیار بازیگر قرار میدهد. برای مثال یک عامل میتواند با گرفتن فیلم از اسکرین و فرستادن دکمههای چپ و راست به موقع به عنوان یک بات برای این بازی عمل کند.
لینک زیر یکی از پیادهسازیهای ممکن برای گرفتن امتیازهای بالا در Telegram Lumberjack را شرح دادهاست.
http://mehrandvd.me/2016/10/30/cheating-telegram-lumberjack/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر یکی از پیادهسازیهای ممکن برای گرفتن امتیازهای بالا در Telegram Lumberjack را شرح دادهاست.
http://mehrandvd.me/2016/10/30/cheating-telegram-lumberjack/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مورد توافقترین تعریفی که در ارتباط با مدیریت محصول وجود دارد، تعریفی بسیار ساده و قابل درک است: «ارائه محصولی درست به شیوه ای درست به مشتری». اما مدیریت محصول کماکان یکی از سخترین شرح وظایفهایی است که میتوان در هر سازمان تصور کرد. این ابهام در چیستی و چگونگی مدیریت محصول در شرکت های نرم افزاری که تجربهای درست در داشتن مدیر محصول ندارند بسیار بیشتر است.
لینک زیر می تواند یک شروع خوب برای آشنا شدن با این مفهوم باشد.
https://medium.com/@joshelman/a-product-managers-job-63c09a43d0ec#.i6pcfk9wa
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر می تواند یک شروع خوب برای آشنا شدن با این مفهوم باشد.
https://medium.com/@joshelman/a-product-managers-job-63c09a43d0ec#.i6pcfk9wa
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Medium
A Product Manager’s Job
Product management is one of the hardest jobs to define in any organization, partially because it’s different in every company. I’ve had several recent conversations about “what is a product…