وبگاه شخصی حسن فتحی

پنج مرحله برای رسیدن به یک مصاحبه شغلی عالی

مصاحبه یا گفتگو؟

افرادی که دنبال کار هستند با این مقوله بیشتر سرو کار دارند و درگیر هستند، و حتی اکثر افراد با شنیدن کلمه “مصاحبه” دچار استرس می شوند؛ اما باید توجه داشت که مصاحبه شغلی هم یک گفتگوی دوستانه صرفا برای شناخت طرفین (شرکت مربوطه و کارجو) جهت نیل به هدف شغلی مورد نظر است.

باید به این نکته توجه داشت که در مصاحبه نیاز بازار رو می شود از نزدیک لمس کرد و هم به توانایی ها و پتانسیل های خود پی برد.

اجازه بدید در ادامه چند نکته مهم در رابطه با مصاحبه شغلی رو مرور کنیم

در نظر داشته باشید که فرض کردیم شما توانایی های فنی مورد نیاز برای شروع کار را در رابطه با شغل مورد نظر دارید.

ادامه مطلب ...

۰۹ مهر ۹۵ ، ۲۳:۰۸ ۰ نظر موافقین ۱ مخالفین ۰
حسن فتحی

IEnumerable VS IQueryable in .Net Framework

دو عنصر بالا از شی ها یا به عبارتی نوع داده های (Data Type) دات نت هستند؛ ما از IEnumerable  و IQueryable برای دستکاری داده استفاده می کنیم (LINQ). در دات نت IEnumerable  توسط IQueryable  به ارث برده می شود به عبارتی دیگر IQueryable  همه ویژگی های IEnumerable  دارد و علاوه بر آن ها ویژگی های منحصر به فرد خود را نیز دار؛ هر دوی این دو شی برای بازیابی و دستکاری داده های موجود در پایگاه داده (Database) به کار می روند. اجازه دهید ویژگی های هر کدام و برتری آنها نسبت به هم را نام ببرم؛ که نقش مهمی در بالا بردن سرعت و کارایی پرس و جوهای (LINQ) دارند.
دو عنصر بالا شباهت زیادی به هم دارند و همه برنامه نویسان از هر دو آنها استفاده می کنند ولی از لحاض کارایی در سناریوهای مختلف متفاوت عمل می کنند.

IEnumerable  :
  • فضای نام (System.Collections)
  • بهترین مورد استفاده آن در بازیابی داده از شی های موجود در حافظه (in-Memory Objects) مانند لیست، آرایه و ... است 
  • موقعی که بازیابی داده از پایگاه داده انجام می شود IEnumerable  پرس و جو را سمت سرور اجرا کرده و داده ها را در شی های in-Memory در سمت کلاینت بارگذاری کرده و بعد عمل فیلترینگ را انجام می دهد
  • بهترین و مناسب ترین برای پرس و جوهای LINQ to Object و LINQ to XML
  • پشتیبانی از (deferred execution)
  • عدم پشتیبانی از پرس و جوهای سفارشی (custom query)
  • عدم پشتیبانی از (lazy loading) و نامناسب برای صفحه بندی (paging)
IQueryable :
  • فضای نام (System.Linq)
  • بهترین مورد استفاده آن در بازیابی داده از شی های موجود در خارج حافظه (out-Memory Objects) مانند پایگاه داده ها، سرویس ها و ... است 
  • موقعی که بازیابی داده از پایگاه داده انجام می شود IQueryable پرس و جو را سمت سرور با انجام  عمل فیلترینگ اجرا می کند
  • بهترین و مناسب ترین برای پرس و جوهای LINQ to SQL
  • پشتیبانی از (deferred execution)
  • پشتیبانی از پرس و جوهای سفارشی (custom query) با استفاده از CreateQuery و Execute methods.
  • پشتیبانی از (lazy loading) و مناسب برای صفحه بندی (paging)
مثال :
IEnumerable  :
  1. MyDataContext db = new MyDataContext ();
  2. IEnumerable<Employee> list = db.Employees.Where(p => p.Name.StartsWith("S"));
  3. list = list.Take<Employee>(10);
پرس و جوی تولید شده :
  1. SELECT [t0].[EmpID], [t0].[EmpName], [t0].[Salary] FROM [Employee] AS [t0]
  2. WHERE [t0].[EmpName] LIKE @p0
توجه : اجرای پرس و جو سمت سرور (SQL SERVER) و فیلتر کردن آن سمت کلاینت توسط شی موجود در حافظه کلاینت

IQueryable :
  1. MyDataContext db = new MyDataContext ();
  2. IQueryable<Employee> list = db.Employees.Where(p => p.Name.StartsWith("S"));
  3. list = list.Take<Employee>(10);
پرس و جوی تولید شده :
  1. SELECT TOP 10 [t0].[EmpID], [t0].[EmpName], [t0].[Salary] FROM [Employee] AS [t0]
  2. WHERE [t0].[EmpName] LIKE @p0
توجه : اجرای پرس و جو سمت سرور (SQL SERVER) و فیلتر کردن آن در همان سمت
۱۵ اسفند ۹۴ ، ۱۰:۳۶ ۱ نظر موافقین ۱ مخالفین ۰
حسن فتحی

روش یا قانون 15 دقیقه

این قانون رو هممون میدونیم و بدیهیه؛ و تقریبا واسه حداکثر مردم هم اثبات شدس خب معلومه که انجام دادنش هم به ظاهر آسونه ولی هممونم میدونیم که خیلی سخته ... 

ولی ارزش تلاش برای انجامش رو داره تو هر زمینه ای؛ حداقل همه میتونن تلاش کنن واسه انجامش و امکان موفقیتم هم تقریبا درصدش خیلی بالاس، من هدفم از این پست اشاره دوباره به این قانون و ترغیب شما برای انجام این روشه؛ امیدوارم که تاثیر گذار باشه.

این قانون به قدرت تغییرات کوچک اشاره دارد!

تکرار کارهایی کوچک نه تنها شخصیت انسان را می سازد بلکه شخصیت ملت ها را تعیین می کند.(ساموئل اسمایلز)

۱-اگر روزی ۱۵ دقیقه را صرف خودسازی کنید؛ در پایان یک سال تغییر ایجاد شده در خویش را به خوبی احساس خواهید کرد.

۲-اگر روزی ۱۵ دقیقه از کارهای بی اهمیت خویش بکاهید؛ ظرف چندسال جهالتمان تبدیل به خرد خواهد شد.

۳-اگر روزی ۱۵دقیقه رابه فراگیری زبان اختصاص دهید از هفته ای یک بار کلاس زبان رفتن بهتر است.

۴-اگر روزی ۱۵دقیقه را به پیاده روی سریع اختصاص دهید از هفته ای چند بار به باشگاه ورزشی رفتن ؛ نتیجه ی بهتری خواهید گرفت.

۵-اگر روزی ۱۵ دقیقه مطالعه وسلول های خاکستری خویش را درگیر کنید؛ به پیشرفت های عظیم یادگیری دست خواهید یافت…

زیبایی روش یا قانون ۱۵ دقیقه در این است که آن قدر کوتاهست که هیچ وقت به بهانه ی این که وقت ندارید آن را به تاخیر نمی اندازید.

۰۵ اسفند ۹۴ ، ۱۱:۵۷ ۰ نظر موافقین ۰ مخالفین ۰
حسن فتحی

نظارت بر عملکرد و کارایی پایگاه داده با استفاده از Query Store در SQL SERVER 2016

قابلیت  Query Store امکانی را برای مدیران پایگاه‌ داده‌ها فراهم می‌کند تا با بینشی عمیق برای کوئری های خود Execution Plan (طرح پرس و جو)ی مناسبی را در جهت بهبود کارایی و عملکرد پایگاه داده خود انتخاب کنند. این امکان شما را قادر می‌سازد تا با یک عیب‌یابی ساده عملکرد تاثیرات ناشی از تغییرات کوئری‌ها در طرح پرس و جو را ردیابی کرده و با مشاهده تفاوت عملکردها بهترین کوئری را (از لحاظ کارایی) انتخاب کنید؛ این امکان به طور خودکار تاریخچه کوئری ها، طرح کوئری ها و آمار های زمان اجرا را ذخیره و برای استفاده و بازبینی شما نمایش می دهد، داده ها را بر اساس ساعت سیستم (زمان ویندوز) جدا و دسته بندی می‌کند و به شما اجازه می‌دهد الگوهای استفاده از پایگاه داده را مشاهده و تغییرات Execution Plan ها را روی سرور مشاهده کنید.

فعال سازی Query Store:
توسط صفحه Query Store در Management Studio :
1- روی پایگاه داده راست کلیک کرده و گزینه Properties را انتخاب کنید
2- در Database Properties روی گزینه Query Store کلیک کنید
3- در جعبه Enable  گزینه True را انتخاب کنید
توسط دستور ALTER DATABASE :
ALTER DATABASE dataBase_Name SET QUERY_STORE = ON;
بعد از فعال سازی این امکان Object Explorer را Refresh کنید تا بخش Query Store در پایگاه داده شما اضافه شود. بعد از اضافه شدن یکسری توابع، وییو و روال و کوئری ها هستند که با استفاده از آن ها میتوانید Query Store را مدیریت کنید.
هفت وییو برای ارائه اطلاعات درباره Query Store وجود دارد:

شش Stored Procedure برای پیکربندی Query Store وجود دارد:



برای اطلاعات بیشتر و تکمیلی به MSDN مراجعه کنید.
۱۰ دی ۹۴ ، ۱۶:۱۸ ۱ نظر موافقین ۰ مخالفین ۰
حسن فتحی

تلنت یاب | ارزیابی | آزمون شخصیتی | توسعه فردی

تلنت یاب بستری برای شناسایی استعدادها و توسعه مهارت های حرفه ای است که شامل انواع آزمون های شخصیتی طبق استاندادرهای موجود است، همچنین تلنت یاب دارای محتوایی غنی برای بالا بردن دانسته ها و توسعه فردی است.


**برای مشاهده عکس زیر را کلیک کنید**

۳۰ آبان ۹۴ ، ۱۸:۱۸ ۰ نظر موافقین ۰ مخالفین ۰
حسن فتحی

امکان جدید بسط جداول در اس کیو ال سرور ۲۰۱۶

در بسیاری از جداول بانکهای اطلاعاتی، اغلب داده هایی که مورد جستجو و بازیابی قرار می گیرند، داده هایی هستند که اخیراً ذخیره شده اند و به ندرت به داده هایی مثلا با قدمت یکسال پیش نیاز داریم.

بنابراین بسیار عقلانی به نظر میرسد که داده های قدیمی را جدا از داده های جدید نگه داریم تا سرعت بازیابی و جستجو و درج اطلاعاتمان بالا رود. از طرفی با ایجاد یک مکانیزم بهینه، کاری کنیم که در صورت جستجوی داده های قدیمی تر، آنها نیز در نتایج ظاهر شوند و کاربر متوجه تفکیک این دو بخش (داده های قدیمی، داده های جدید) نشود.

مایکروسافت در نسخه جدید اس کیو ال سرور یعنی SQL Server 2016‌ این امکان را به مجموعه امکانات خود اضافه کرده است و از سرویس ابری و آنلاین آژور Azure  برای ذخیره داده های قدیمی و از سیستم محلی کاربر برای داده های جدید استفاده می کند. نکته جالب ماجرا اینجاست که با فعال کردن این قابلیت که StretchDB نام دارد و ساخت یک حساب کاربری در سرویس ابری آژور، عملیات انتقال داده ها به سرور آژور به صورت خودکار توسط خود اسکیو ال سرور انجام میگیرد و بازیابی اطلاعات هم به صورت خودکار صورت می پذیرد.


منبع: سایت مهندسی داده

۲۳ آبان ۹۴ ، ۱۶:۳۱ ۰ نظر موافقین ۱ مخالفین ۰
حسن فتحی

زندگی شما بدون وجود شبکه‌های اجتماعی چگونه خواهد بود؟

قبل از اینکه ایده‌ی فیسبوک به ذهن مارک زاکربرگ برسد، ما همچنان با خانواده و دوستانمان در ارتباط بودیم. قبل از پدیدار شدن شبکه‌های اجتماعی، زندگی همچنان در جریان بود، آسمان هنوز آبی بود و خورشید همچنان می‌تابید. اگر شما رابطه‌تان را با این شبکه‌ها قطع کنید، آسمان به زمین نخواهد آمد، تابش خورشید متوقف نخواهد شد، و زندگی در جهان مثل همیشه ادامه خواهد‌ یافت‌‌؛ اما در اینجا برایتان از ۸ اتفاقی می‌گوییم که رخ خواهد داد.

ادامه مطلب...
۰۲ آبان ۹۴ ، ۲۰:۳۳ ۱ نظر موافقین ۱ مخالفین ۰
حسن فتحی

۷ کاری که افراد موفق در وقت ناهاری خود انجام می‌دهند


دست یافتن به قله‌های موفقیت زمان‌بر است. خوشبختانه می‌توانید با استفاده بهینه از وقت ناهاری‌تان این مسیر را کوتاه کنید. به طور معمول پنج ساعت در هفته وقت ناهار دارید. آن‌چه در ادامه می‌خوانید به شما کمک می‌کند که از این زمان به‌درستی استفاده و آن را مدیریت کنید:

۱- ترک کردن محل کار

این کار یک راه اساسی برای استفاده صحیح از وقت ناهار است. ترک کردن محل کار فرصتی برای شما فراهم می‌کند تا از شلوغی به دور باشید و تجدید قوا کنید. اما اگر در این زمان در اتاق کارتان باشید، همکاران و رئیستان برای کار به شما مراجعه می‌کنند.

۲- مرور کردن کار هفتگی

کنترل کردن و زیر نظر داشتن زندگی کار سختی نیست. به همین علت است که افراد موفق عادت به بازنگری دارند. برای مثال در وقت ناهار می‌توانید ایمیل‌هایی که فرستاده‌اید را مرور کنید تا بدانید اقدامات بعدی چیست. یا می‌توانید با مراجعه به تقویم به قرارهایی که در طول هفته دارید نگاهی بیاندازید. هر دوی این کارها تمرینی هستند که شما را در زمان جلو می‌برند.

۳- ورزش کردن

افراد موفق می‌دانند که ورزش کردن برای سلامت ذهن و جسم ضروری است. این افراد قسمتی از وقت ناهار را به ورزش کردن اختصاص می‌دهند مثلاً پیاده‌روی می‌کنند و یا چند حرکت نرمشی انجام می‌دهند. ورزش کردن راه مناسبی برای کاهش استرس ناشی از محیط کاری است.

۴- برقراری دوستی

تقسیم غذا با دیگران یکی از بهترین روش‌ها برای برقراری رابطه دوستانه است. افراد موفق می‌دانند دوستی‌ها از یک ملاقات ساده شروع می‌شود. قدم بعدی، بیشتر وقت گذراندن با آن‌ها است. دعوت به ناهار، روشی خوب برای مستحکم کردن دوستی‌هاست، زیرا فرصتی‌ست برای صحبت‌های شخصی و دور شدن از مسائل کاری.

۵- غذا خوردن برای سلامتی، و نه تفریح

آن‌چه برای ناهار می‌خورید تأثیر بسزایی بر فعالیت‌های شما دارد. به همین دلیل است که افراد موفق از خوردن پاستا و غذای سنگین در ظهر خودداری می‌کنند. برای افزایش انرژی خود بادام، گردو و غذاهای انرژی‌زای دیگری میل کنید. مصرف زیاد مواد قندی در طول روز خوب نیست. به‌علاوه، از خوردن غذاهای پر ادویه و سس در روزهای کاری خودداری کنید. خوردن تنقلات را به بعد از ساعات کاری و یا آخر هفته موکول کنید.

۶- انجام کارهای شخصی

افراد موفق، اهمیت داشتن تمرکز در کار را درک می‌کنند. به همین دلیل است که از انجام کارهای شخصی در ساعات کاری (مانند تلفن زدن و یا ترک کردن محل کار) خودداری می‌کنند. اما همگی ما در زندگی گرفتار مسائل مختلفی می‌شویم و نیاز است تا حتی در محل کار خود به برخی از این امور رسیدگی کنیم. بدین منظور می‌توانید از وقت ناهاری خود برای انجام این کارها استفاده کنید.

۷- داشتن چرت کوتاه

افراد موفق ارزش خوب استراحت کردن را می‌دانند. یک چرت ۲۰ تا ۳۰ دقیقه‌ای باعث افزایش تمرکز و کارایی شما می‌شود. این کار هم‌چنین اثرات مثبتی بر سلامتی قلب دارد.


منبع : پونیشا
۰۲ آبان ۹۴ ، ۱۸:۳۳ ۰ نظر موافقین ۰ مخالفین ۰
حسن فتحی

یک گفت‌وگوی خواندنی با موسس تلگرام

ایتنا- دوروف: هر دولتی که بخواهد خود را دموکرات بنامد باید پذیرای اسنودن باشد و به او اجازه دهد در آن کشور زندگی کند.

ذهن‌های خلاق، حد و مرز و کشور نمی‌شناسند. تنها ویژگی مشترک افراد خلاق و کارآفرین، متفاوت بودن آنهاست. «پاول دوروف» نیز از این قاعده مستثنی نیست؛ مرد جوانی که در مدت کوتاهی در سراسر جهان مشهور شد و نامش در کنار غول‌های فناوری مانند «زاکربرگ» و «استیو جابز»، دیده می‌شود.

این مرد جوان اهل روسیه حرکات، فعالیت‌ها، عقاید و دلایلش برای انجام هر کاری نوعی معماست؛ معمایی که خبرنگار «فایننشال تایمز» سعی می‌کند از خلال گفت‌وگویی دوستانه هنگام ناهار خوردن در رستورانی شیک در لندن از آن رمزگشایی کند.

به گزارش ایتنا از ایسنا، در ادامه مطلب متن ترجمه‌شده گفت‌وگو با موسس شبکه اجتماعی محبوب «تلگرام» را می‌خوانید:

ادامه مطلب...
۱۲ مهر ۹۴ ، ۱۵:۱۷ ۱ نظر موافقین ۱ مخالفین ۰
حسن فتحی

دسته (Batch) در T-SQL

دسته (Batch):مجموعه ی از یک یا چند دستور T-SQL که همواره همراه با هم به سرور ارسال می شوند که هر دسته از دستورات با هم ترجمه و بدنبال هم اجرا میشوند. چنانچه یک دسته ،شامل چندین دستور باشد.

تمام مراحل بهینه سازی لازم روی مجموعه ی این دستورات انجام می شود و پلن اجرائی (Execution plan) بر مبنای مجموعه دستورات موجود در دسته ،تعیین می گردد.

چند نمونه از دسته ها
۱-  همه دستورات موجود در یک تریگر یک دسته محسوب می شود.
۲-رشته ای که توسط یک فرمان EXECUTE اجرا می شود، یک دسته محسوب می شود.
قواعد کار با دسته ها
دستور CREATE در هرجائی بجزء در اولین دستور یک دسته قرار می گیرد، همه دستوراتی که در یک دسته، پس از این دستور قرار می گیرند بعنوان بخشی از همان دستور در نظر گرفته میشوند.
اگر در یک دسته ، ساختار یک جدول تغییر داده شود ، نمی توان در همان دسته از ستونهای جدید استفاده کرد.
اگر دستور EXECUTE اولین دستور یک دسته باشد می توان از نوشتن کلمه کلیدی EXECUTE خود داری کرد.

 

 

چگونگی اجرای دسته ها 
در هر مرحله ارسال دسته ای از دستورات به سرور ،سروردر پنج مرحله  آنها را مورد بررسی و پردازش قرار می دهد که این مراحل به شرح زیر می باشد :

۱-تفکیک نگارشی: دستورات دریافتیاز نظر املا مورد بررسی قرار می گیرند.
۲- تفکیک ارجاعی: اشیاء مورد ارجاء بررسی می شوند تا از وجود آنها  و وجود مجوز دسترسی به آنها برای کاربر اطمینان حاصل شود.
۳- بهینه سازی : طرح اجرای مناسب برای رسیدن به سریعترین مسیر اجرای دستورات را پیدا می کند.
۴- ترجمه :طرح اجرایی ترجمه می شود.
۵- اجرا: طرح ترجمه شده توسط سرور اجرا می شود.

نکته پایانی
قرار دادن تعداد زیادتری دستور در یک دسته ،سرعت اجرای دستورات توسط سرور را افزایش می دهد . زیرا ضمن کاهش عملیات I/O امکان بهینه سازی یهتر نیز بوجود می آید.


منبع: nikamooz.com

۱۰ مهر ۹۴ ، ۱۵:۲۰ ۰ نظر موافقین ۱ مخالفین ۰
حسن فتحی