سوال احمقانه شماره دوازده – IIS چیست؟

بدون نظر

خوب همانطور که میدونید اصولا برای انتشار نرم افزارهای تحت وب یا وب سایت ها نیاز به یک وب سرور داریم. وظیفه وب سرور هاست کردن یا همان میزبانی و پروسس درخواست ها برای صفحات وب است. Internet Information Services یا همان IIS وب سروریه که شرکت مایکروسافت از سال ها پیش (تقریبا از Windows NT 4) ارایه شده و میشه گفت با ارایه هر نسخه از ویندوز یه نسخه جدید از IIS هم منتشر میکنه.

یکی از ویژگی های مهم IIS قابلیت توسعه پذیری (extensible) اونه که در واقع این امکان را میده که هرفرد یا سازمانی بر اساس نیاز اون را تنظیم و استفاده کنه. به عنوان مثال شما میتونین یک وب سایت ساده Html را توی IIS هاست کنین یا اینکه یک وب سایت توسعه یافته با ASP, ASP .NET یا حتی Php را داخل IIS فعال و سرویس دهی کنید. همچنین IIS پروتوکل های بسیار را ساپورت میکنه که از جمله اون میشه به Http, Https, FTP, FTPS, SMTPو NNTP اشاره کرد.

IIS به صورت رایگان بر روی ویندوزهای سری سرور ارایه میشه و در برخی از سایر ویندوزها مثل XP, 7 هم امکان استفاده با پاره ای محدودیت وجود داره. IIS امکانات بسیاری داره که به برخی از اون ها به صورت تیتر وار اشاره کرد:

امکانات عمومی در بخش Http یا همون Common HTTP Features

به طور خلاصه میتونم بگم که نیازمندی های مثل صفحات پیش فرض، پشتیبانی از صفحات استاتیک، پشتیبانی از نمایش/عدم نمایش محتویات دایرکتوری ها، پشتیبانی از خطاهای Http، پشتیبانی از Http Redict یا ارجاع صفحات و … از امکانات اولیه IIS در این بخش هستند.

Application Development Features

شما میتونید با استفاده از این ویژگی وب سایت هایی که با ASP (منظورم نسخه کلاسیک و قدیمی تر) و یا ASP .NET توسعه یافتند را در IIS هاست کنید. قابلیت توسعه پذیری با استفاده از .NET، پشتیبانی CGI و ISAPI Filter ها و ISAP Extenstion ها از سایر بخش های این ویژگی هستند.

Health and Diagnostics Features

توی این بخش IIS امکاناتی را به شما میده که شما بتونین وضعیت سلامت وب سایت ها و بررسی عملکرد اونها را به سادگی انجام بدید. لاگ گرفتن، بررسی لاگ ها، مانیتور کردن درخواست هاو … از جمله امکانات این ویژگی هستند.

Security Features

خوب قطعا یکی از مهمترین ویژگی های یک وب سرور امنیت اون است. برای همین مایکروسافت IIS هم سعی میکنه با ارایه مکانیزم های مختلفی در این بخش این امنیت را برای استفاده کنندگانش به ارمغان بیاره. پشتیبانی از انواع روش های ابراز هویت مثل Basic Authentication, Digest Authentication, Windows Authentication و البته مکانیزم هایی مثل چک کردن و محدود کردن IP ها، فیلترکردن درخواست هاو … از سایر مکانیزم های IIS در بخش امنیت می باشند.

Performance Features

شما در این بخش امکاناتی مثل Compression بر روی محتویات استاتیک و فشرده سازی بر روی محتویات دینامیک را در اختیار دارید

Management Tools

یکی از مهمترین ویژگی های IIS ابزارهای اون در مدیریت این امکاناتی است که بهش اشاره شد. شما می توانید از طریق IIS Management Console به سادگی (البته با کمی مطالعه)‌ مدیریت سایت های خود را انجام بدید و حتی به صورت ریموت (با لحاظ کردن نکات امنیتی) به سرور خود متصل باشید و اون را مدیریت کنید

File Transfer Protocol (FTP) Publishing Service Features

خوب همانطور که قبلا هم اشاره کردم شما در IIS می تونین FTP Server داشته باشید و به وسیله FTP Management Console به مدیریت اون بپردازید

پانویس ۱: خیلی جالبه که معمولا ما برنامه نویس ها میگیم IIS مربوط به کارشناس های شبکه است و اون ها باید تنظیمش کنن و دقیقا اون هاهم اعتقاد دارند که IIS مربوط به برنامه نویس هاست و کارشناس های شبکه فقط باید نصبش کنن و تنظیماتش مربوط به برنامه نویساس

پانویس ۲: این پست بیشتر جنبه آشنایی کلی با IIS داشت، تو پست های بعدی بیشتر راجع بهش ریز میشیم و عملکرد و معماریش و البته ارتباطش با ASP .NET را بررسی میکنیم


سوال احمقانه شماره یازده – NuGet چیست؟

۱ نظر

خیلی ها امروز NuGet را استفاده می کنند و به طور کلی یکی از قدم های موثر مایکروسافت در پشتیبانی از Open Source هاست. اما واقعا NuGet چیه؟

Nuget.org

اگر به خواهیم خیلی خلاصه بگیم، NuGet یا به طور دقیقتر NuGet Package Manager منبعی است که افراد مختلف می تونن پروژه ها و لایبراری های خودشون را برای دسترسی عمومی در آن به اشتراک بگذارند. در نتیجه سایرین هم میتونن به سادگی و استفاده از NuGet Package Manager موجود در Visual Studio نسبت به نصب و راه اندازی و استفاده از پکیج های مورد نظرشون اقدام کنند. امروزه به طور متوسط هر هفته حدود ۳۵ میلیون پکیج از این منبع رایگان که اکثرا مخصوص جامعه برنامه نویسان و توسعه دهندگان مایکروسافتی است دانلود و نصب می شود.

خوب، این NuGet کجاست؟ سایت اصلی Nuget.org است که از سال ۲۰۱۰ فعال شده و شما می تونین Libraray های مورد نظرتون را اونجا پیدا کنین و ازش استفاده کنین یا اگر یک لایبراری نوشتین و دوست دارین در اختیار عموم قرار بدین اونجا منتشرش کنین.

شرکت مایکروسافت و خیلی از شرکت های معتبر دیگه هم که قصد ارایه پکیج های خودشان را دارند در این محل پکیج را منتشر میکنند و اینجوری در اختیار کلیه برنامه نویسان قرار میدهند. به عنوان مثال Newtonsoft.Json و EntityFramework دو از محبوب ترین پکیج هایی است که از طرف مایکروسافت منتشر شده و هر بار که نسخه جدیدی ارایه میشه اینجا بروز میکنند.

یکی از مزیت هایی که ‌NuGet در اختیار شما میگذاره اینه که وقتی پکیج ای را نصب میکنین، میتونین بفهمین که به چه پکیج های دیگری و چه نسخی نیاز یا وابستگی داره و ضمنا بعدها اگر نسخه جدیدی از اون منتشر شده به سادگی اون را بگیرید و بروز کنید.

در Visual Studio شما میتونین NuGet Package Manager را از منوی Tools پیدا کنین. اونجا معمولا سه تا گزینه دارین که یکیش Manage NuGet Package for solution هست که بخش ویژوال این ابزار هست. با کلیک روی اون پنجره ای شبیه به این را میبینین که سه تا تب داره:

Nuget Packge Manager

تب اول که Browse هست به شما امکان میده که با اتصال به منبع اصلی لیست همه (بیش از ۶۵۰۰۰ پکیج) منتشر شده را بگردید و هرکدوم را که خواستید نصب کنید. معمولا به صورت پیش فرص با محبوب ترین ها مواجه میشین. کافیه هرکدوم را خواستین را روش کلیک کنید، نسخه مورد نظر را انتخاب کنین (خودش به صورت پیش فرض آخرین نسخه پایدار را انتخاب میکنه) و روی گزینه Install کلیک کنید. با یک نگاه دقیق میبینین که بهتون میگه هر پکیج به چه پکیج های دیگری وابستگی داره و از کدوم نسخه هاش را همراه اش نیاز داره.

تب دوم یا Installed پکیج هایی که در پروژه شما نصب هست را بهتون نشون میده.

در تب سوم یا Update پکیج هایی از پروژه شما که براش Update ی آمده را نشون میده و به سادگی با کلیک روی هرکدوم میتونین Update ش را نصب کنین. دقت کنین که گاهی نیازه قبل از نصب آپدیت برین و مطالعه ای در رابطه با تغییرات پکیج داشته باشید تا مطمئن بشید که مشکلی برای پروژه تون ایجاد نمیکنه.

و نهایتا تب آخر یا Consolidate (که تو نسخه های اخیر اضافه شد) به شما این امکان را میده که اگر احیانا در یک Solution دارید از نسخ های مختلف پکیج ها در پروژه ها استفاده میکنید، نسخ را یکسان سازی کنید که مشکلی براتون پیش نیاد.

 


مدیر باید در کنار تیمش باشد

بدون نظر

مدیر باید در کنار تیمش باشد

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

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

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

راه‌حل فائق آمدن بر این مشکل خیلی پیچیده نیست؛ کافی است اعتماد کنید و از منابع انسانی خود کار بکشید؛ از شکست‌های کوچک در راه انجام کارهای کوچکی که به تیمتان واگذار می‌کنید نهراسید و آماده تنبیه و اخراج کردن خاطیان باشید. راهی که هزینه‌ها و دردسرهای آن از زمین خوردن کل مجموعه تحت مدیریت یک مدیر بسیار کمتر است. اما تجربه شکست تنها با مشارکت دادن همکاران و نیروهای متخصص درون شرکت از مدیران دور نخواهد ماند؛ مشکل مهم‌تر این است که مدیران زیادی هم هستند که کارها را به تیمشان واگذار می‌کنند، جلسات توجیهی را خوب برگزار می‌کنند، به وقت تنبیه و اخراج حی‌وحاضرند، اما زمان‌هایی که «باید باشند» نیستند!

مهم نیست که شما به‌عنوان رهبر و بنیان‌گذار یک پروژه چقدر گرفتاری دارید؛ مهم نیست که در برنامه‌های روزانه‌تان هزار و یک کار واجب برای انجام دادن ردیف شده است؛ حتما باید بخشی از زمان کارتان را در کنار تیمتان باشید؛ حرف‌هایشان را بشنوید؛ درددل‌ها و غر زدن‌هایشان را با دل و جان گوش کنید و مشکلات و چالش‌های پیش ‌روی آن‌ها را با چشم خودتان ببینید و نه از طریق گزارش‌ها و بازرس‌ها و احتمالا نتیجه نهایی کسب‌وکارتان. فراموش نباید کرد که کسب‌وکارها در مرحله ایده و جلسات توجیهی هم صاحب و دلسوز زیاد دارند و هم نظریه‌پرداز٫ اما وقتی کار وارد مرحله اجرایی و رسیدن به موانع می‌شود نیروها و کارمندان شما به فکر و حضور و البته دلگرمی‌تان برای فائق آمدن بر مشکلات نیاز دارند. این حضور یکی از همان بزنگاه‌هایی است که بسیاری از مدیران جوان از آن ضربه خورده‌اند. همین که فکر کردید وقت شما از پرداختن به مشکل و دغدغه یکی از کارمندان خط تولید یا فروش ارزش بیشتری دارد، بدانید که اولین قدم‌ها را به سوی مقصد تلخ‌منظر شکست برداشته‌اید!

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

پانویس: این یادداشت تو ستون “سنگ آزمایی” هفته نامه آتیه نو تاریخ پانزده شهریور میتونید چاپ شده، نسخه Pdf را می تونین از اینجا دانلود کنید.

دانلود نسخه منتشر شده در هفته نامه آتیه نو – ۱۵ شهریور


جزو آموزشی سی شارپ و برنامه نویسی شی گرا

۴ نظر

چند سال پیش شروع کردم به نوشتن مجموعه مقالاتی که طی آن سی شارپ و برنامه نویسی شی گرا را به زبان خیلی ساده آموزش می دادم. متاسفانه نشد که به جایی که من می خواستم برسه ولی خوب حدود ۱۰۵ صفحه مطالب شد که یه موقعی به نظرم رسید برای اینکه بهتر بشه استفاده کرد خوبه که در قالب یه فایل Pdf هم قابل دانلود باشه. از اونجایی که Domain قبلی را از دست دادم و لینک های مربوط به دانلود این سری آموزشی تو وبلاگ قبلیم دیگه کار نمیکنه، فایل را روی دامین جدید Upload کردم تا دوستانی که درخواست کرده بودند بتون به سادگی دانلود کنند.

این لینک جدید جزو آموزش سی شارپ و برنامه نویسی شی گرا است، اگر دوست داشتید دانلود کنید و نظراتتون را هم به من بگید.


سوال احمقانه شماره ده – فرق Session با Cache چیست؟

۵ نظر

امروز جایی بودم و یکی از دوستانم داشت یک مصاحبه فنی برای استخدام نیروی جدید انجام می داد. یکی از سوالاتی که پرسید این بود که از Caching چی میدونید؟ و در وب چطور از Cache استفاده می کنید؟ در پاسخ فردی که قصد استخدام شدن داشت گفت که از Session برای ذخیره سازی اطلاعات استفاده می کنیم و به جای اینکه اطلاعات را دوباره از بانک اطلاعاتی بخوانیم از Session می خوانیم و در نتیجه Performance سایت یا نرم افزار تحت وبمان بهتر می شود.

همانطور که می دونید کلاس Cache در System.Web.Caching برای ذخیره سازی اطلاعات به صورت موقت (معمولا بعد از بازیابی از بانک اطلاعاتی یا هرجایی که بازیابی داده برایمان سرباردارد) استفاده می شود. خیلی از افراد به جای استفاده از این کلاس وقتی بار اول داده خود را بازیابی می کنند آن را در Session نگهداری می کنند تا در دفعات بعد از Session بازیابی کنند و در نتیجه Performance بهتری داشته باشند. اما چند نکته در استفاده از Cache هست که باید در نظر داشت:

  1. وقتی شی را در Cache نگهداریم امکان مشخص کردن زمان ازبین رفتن آن (Expire Date) را داریم. این زمان می تواند یک تاریخ و ساعت مشخص باشد (DateTime.Now.AddSeconds(2d) یا یک مدت زمان از آخرین دسترسی به شی که به صورت اتوماتیک در هر دسترسی دوباره ست می شود (Sliding) مثلا – TimeSpan.FromSeconds(120d)
  2. وقتی شی را در Cache نگهداریم امکان ست کردن اشیا وابسطه (Dependecy) ها را داریم. به این ترتیب که مثلا وقتی فایل Result.txt در مسیر مشخصی تغییر کردن مقدار مورد نظر ما را از Cache پاک کن. Dependency های پیش فرض در دات نت FileDependecy و SqlDependency هستند که البته امکان توسعه اشیا وابسطه توسط شما نیز وجود دارد.
  3. شما می توانید در زمان ست کردن مقادیر خود در Cache به آن ها اولویت دهید. به این ترتیب وقتی دات نت تشخیص داد که حافظه سیستم شما کم آورده است و شروع به پاک کردن اشیا از حافظه Cache نمود اشیا با اولویت کمتر زودتر حذف و در انتها و در صورت لزوم اشیا با اولویت بیشتر حذف خواهند شد.
البته نکات بیشتر در رابطه با Cache وجود دارد که سعی می کنم در پست های بعدی بیشتر توضیح بدم.
راستی شما چه ویژگی های از Cache را میشناسید که در Session نیست؟

 


سوال احمقانه شماره نه – HTTP Method چیست؟

۸ نظر

همانطور که میدانید پروتکل HTTP ارتباط به کلاینت و سرور را امکان پذیر می کند. این پروتکل با استفاده از مکانیزم درخواست-پاسخ (request-response) بین کلاینت و سرور عمل میکند. در واقع در این پروتکل درخواست های مختلفی برای سرور ارسال و سرور در پاسخ به آن درخواست ها عملیاتی را انجام و نتیجه (پاسخ) را ارسال می نماید. یک مرورگر به عنوان کلاینت و یک وب سایت مستقر در یک کامپیوتر به عنوان سرور در نظر بگیرید. من درخواست نمایش یک صفحه با یک آدرس مشخص را به آن وب سایت ارسال و وب سایت موجود بر روی آن کامپیوتر پاسخ که یک صفحه شامل تصاویر، متون و … است را برایم ارسال میکند، بدین ترتیب صفحات وب برای من قابل استفاده خواهند بود.

HTTP Request

هر درخواست می تواند شامل چهار بخش باشد:

  1. Request Line: نوع درخواست و مسیر و پروتکل آن را مشخص می کند
  2. Request Header: این بخش شامل اطلاعات جانبی درخواست می باشد، اطلاعاتی مثل زبان، اطلاعات کاربری، کوکی ها و … (لیست Request Header ها)
  3. یک خطا خالی
  4. Request Body: این بخش بدنه درخواست می باشد که می تواند وجود نداشته باشد (اختیاری است). در برخی از درخواست ها این بخش شامل اطلاعات می باشد (مثلا در درخواست های نوع POST)
به این درخواست توجه کنید که برای باز کردن صفحه اول گوگل ارسال شده است:
GET / HTTP/1.1
Host: google.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

HTTP Response

پاسخ های ارسالی از سوی سرور نیز دارای چهار بخش می باشند:

  1. Status Line: در این بخش پروتکل و یک کد (که مشخص کننده نتیجه بررسی درخواست کلاینت از سوی سرور است) وجود دارد.
  2. Response Headers: این بخش شامل اطلاعات اضافی (Metadata) راجع به پاسخ ارسال از سوی سرور می باشد. مثلا سرور اعلام می کند که پاسخ ارسال از نوع text/html است یا اینکه مکانیزم Caching این پاسخ به چه صورتی است (لیست Response Header ها)
  3. یک خط خالی
  4. Response Body: که بخش انتخابی (Optional) پاسخ است. این بخش محتویات اصلی پاسخ را ارائه می دهد. (مثلا کد HTML صفحه درخواستی یا محتویات باینری تصویر درخواست)
یک نمونه از پاسخ سرور را می توانید اینجا ببینید:
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Content-Type: text/html; charset=UTF-8
Content-Length: 131
Connection: close

<html>
<head>
  <title>An Example Page</title>
</head>
<body>
  Hello World, this is a very simple HTML document.
</body>
</html>

HTTP Methods

در ساختار HTTP متدهای مختلفی برای مشخص کردن نوع درخواست های وجود دارد. متد های GET, POST, Head, PUT, DELETE معروف ترین و پر استفاده ترین این متدها هستند. اما هریک از این متدها به چه دلیلی ایجاد شدن و هرکدام در چه مواقعی استفاده می شوند؟

GET

متد GET معمولا برای درخواست یک صفحه یا اطلاعات می باشد. با ارسال این نوع درخواست شما صرفا درخواست خواندن و دریافت اطلاعات را دارید و معمولا این درخواست نباید تاثیر دیگری در منبع درخواست شده بگذارد.

HEAD

متد HEAD شبیه درخواست GET برای دریافت اطلاعات یک صفحه یا Resource می باشد. تفاوت بین درخواست GET و Head در این است که در این نوع درخواست شما محتویات صفحه یا Resource را دریافت نمی کنید بلکه صرفا اطلاعات جانبی (Metadata) آن را در قابل Response Header ها دریافت می کنید.

POST

این نوع درخواست در واقع برای ارسال اطلاعاتی (مثلا فرم پرشده توسط کاربر یا اطلاعات ارسال شده توسط یک درخواست AJAX) به سرور به منظور دریافت اطلاعات و ذخیره سازی آن توسط سرور می باشد. معمولا این نوع درخواست برای تکمیل فرم های ورود اطلاعات و یا آپلود کردن فایل بر روی سرور استفاده می شود.

PUT

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

DELETE

همانطور که از اسم این متد مشخص است برای درخواست حذف یک منبع (Resource) استفاده می شود.

 


دوره آموزشی MongoDb برای برنامه نویسان

بدون نظر

حتما راجع به بانک های اطلاعاتی NoSQL شنیدید. MongoDb یه محصول Open Source است و البته یکی از معروف ترین و محبوب ترین بانک های اطلاعاتی NoSQL هست که این روزها برای بسیاری از برنامه نویسان انتخاب خوبی است.

10Gen

شرکت ۱۰Gen که پشتیبانی کننده این بانک اطلاعاتی است که طی یک سری دوره آموزشی آنلاین مفاهیم NoSQL و استفاده از این بانک های اطلاعاتی بر مبنای MongoDb را آموزش می دهد. در صورتیکه تمایل دارید با بانک های اطلاعاتی NoSQL بیشتر آشنا بشوید و روش استفاده از یکی از قدرتمندترین ابزارهای NoSQL را بشناسید به وب سایت ۱۰Gen سری بزنید و ثبت نام کنید.

10Gen

دوره MongoDB for Developers امروز شروع میشه. دوره خوبی است که در آن علاوه بر آشنایی با مفاهیم NoSQL شما را برای استفاده از MongoDb در زبان برنامه نویسی Phyton آموزش می دهد. من بعد اتمام یکی از همین دوره ها تصمیم گرفتم بخش مهمی از یکی از پروژه های جاری ام را که حجم اطلاعات بسیاری داشت و Performance برامون خیلی مهم بود روی MongoDb ببرم و الان پس از چند ماه کاملا راضی هستم (پروژه من ASP .NET MVC بود).

پس شما هم فرصت را از دست ندید و از خدمات رایگان آموزشی ۱۰Gen نهایت استفاده را ببرید:

https://education.10gen.com/courses/10gen/M101P/2013_June/about


آراد بهانه شش ماهه من

۲ نظر

از آخرین مطلبی که نوشتم بیشتر از شش ماه گذشته، تو این شش ماه اتفاقات متعددی پیش اومده که باعث شده فرصت نوشتن نداشته باشم یا بهانه ای برای ننوشتن داشته باشم.

آراد پسرم

مهمترین اتفاق که خیلی مهم و میمون بود، به دنیا اومدن آراد پسرم بود. من پدر شدم و خانواده کوچک ما یه عضو عزیز جدید داره. همیشه یه جمله از مرحوم استفان کاوی (Stephen Covey) را که توی CD صوتی کارگاه Seven Habit of Highly Effective People صحبت میکنه، تو ذهنم داشتم که در مورد پدر شدن میپرسید:

Did you see the world differently? I mean entirely different?!!

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

آراد پسر من

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


اولین دوره ASP .NET MVC 4 در موسسه آرینا پیشرو

۵ نظر

اولین دوره ASP .NET MVC 4 در موسسه آموزشی آرینا پیشرو هفته گذشته به پایان رسید. دوره ی خوبی بود و افراد مشتاقی را در دوره داشتیم. من هم سعی کردم علاوه بر معرفی ASP .NET MVC و تکنولوژی های ارائه شده در این محصول ، به انتقال تجربیات خودم در استفاده از این تکنولوژی در پروژه های اخیرم که طی حدود دوسال گذشته با آن ها درگیر بودم، بپردازم.

همانطور که حتما می دونید تیم ASP .NET در مایکروسافت طی سال های اخیر چرخش بسیار خوبی در جهت دنیای Open Source داشتن به همین دلیل در طول دوره سعی کردم با معرفی ابزارها و تکنولوژی های Open Source ، افراد را بیشتر با این دنیا آشنا کنم. به نظرم این  موضوع باعث شد،  این دوره جذاب تر از سایر دوره ها باشه.

واقعیت این است ASP .NET MVC به عنوان یک روش جدید در ASP .NET به سرعت جایگاه خودش را پیدا کرده و هر روز بیش از پیش در پروژه های گوناگون استفاده می شود و انصافا هم در بسیاری از موارد عملکرد بهتری نسبت به Web Form ها دارد (برای مقایسه ASP .NET Web Form و ASP .NET MVC به این پست مراجعه کنید).

با معرفی سری جدید مدارک مایکروسافت و امتحان ۴۸۶-۷۰ که Developing ASP.NET MVC 4 Web Applications  می باشد، اگر قصد گرفتن مدرک MCSD: Web Applications را دارید، باید حتما با MVC بیشتر سر و کله بزنید و زودتر مسلط بشید.

صحبت هایی که با موسسه آرینا پیشرو شده و قرار شده یک دوره جدید ASP .NET MVC 4 را طی روزهای دوشنبه و چهارشنبه طی ۳۵ ساعت برگزار کنیم. در دوره جدید سعی خواهم کرد علاوه بر پوشش دادن MVC به معرفی دقیقتر ابزار هایی مثل SignalR و Knockout – که در دوره پیش اشاره ای مختصر به آن ها شد – بپردازم.


دریاچه ارومیه برگی از خاطرات کودکی

۲ نظر
دریاچه ارومیه

دریاچه اُرومیه با نام سابق دریاچه رضاییه در شمال غربی ایران و در منطقهٔ آذربایجان واقع شده‌است. این دریاچه طبق آخرین تقسیمات کشوری، بین دو استان آذربایجان شرقی و آذربایجان غربی تقسیم شده‌است. دریاچهٔ ارومیه، بزرگ‌ترین دریاچهٔ داخلی ایران و دومین دریاچهٔ آب‌شور دنیا است. آب این دریاچه بسیار شور بوده و عمدتاً از رودخانه‌های زرینه‌رود، سیمینه‌رود، تلخه رود، گادر، باراندوز، شهرچای، نازلو و زولا تغذیه می‌شود.

کوچکتر که بودم، هر سال تابستان برای دیدن پدر بزرگ و مادر بزرگم سمت آذربایجان میرفتیم و حداقل یک هفته ای را اونجا بودیم.  یکی از تفریح های من و دلخوشی هام این بود که به دریاچه ارومیه بریم و تنی به آب بزنیم. دریاچه ارومیه (یا همون رضاییه) آب خیلی خیلی شوری داشت.

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

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

چند باری هم به همراه خانواده وقتی می خواستیم به ارومیه بریم، به جای دور زدن دریاچه با ماشین، ماشین را سوار کشتی (کشتی که نه ولی نمی دونم چیه اسم درستش!) می کردیم و حدود یک تا دو ساعتی روی دریاچه ارومیه بودیم تا از تبریز به ارومیه می رسیدیم. تجربه خیلی جالبی بود، یادش بخیر.

دریاچه ارومیه - جزیره مشت عثمان

از آخرین باری که به ساحل شرفخانه رفتم، بیشتر از ۱۰ سال گذشته ولی چیزی که از اخبار سایت ها و روزنامه ها و دوستان میشه فهمید اینه که این روزها، دریاچه ارومیه حال و روز خوشی نداره. یعنی فکر کنم ، الان چیزی به نام دریاچه ارومیه وجود نداره! از اون مهمتر اینه که هیچ کس هم براش اهمیتی قائل نیست. اگر هم کسی هست که متوجه عمق فاجعه زیست محیطی هست، کاری از دستش برنمیاد.

امروز خوندم که سازمان ملل ۱۳۵ میلیون دلار برای احیای دریاچه کمک کرده و اینکه بیش از دو سوم دریاچه خشک شده! واقعا آیا دولت مردان ما هم به فکر هستند؟ آیا حاضرند ۱۳۵ میلیون دلار هم آن ها کمک کنند! امیدوارم که تا دیر نشده فکری کنند.

خاطرات کودکی را دریابید، لطفا…