مهدی عزیزی

تفاوت بین سایت و پورتال

تفاوت های اساسی میان یک وب سایت و یک پورتال وجود دارد. مهمترین این موارد در زیر به صورت خلاصه آورده شده است:
  • پورتال به صورت دروازه ورود به یک بانک اطلاعاتی است. آنچه که مهم است، آن است که پورتال همواره ما را به سایتها یا پورتال های دیگر راهنمایی می کند و به خودی خود تنها یک راهنما است. برای همین است که در بعضی از موارد به پورتالها، Internet Yellow Pages می گوییم.
    در حالی که یک وب سایت می تواند حاوی مقدار زیادی اطلاعات باشد که فقط بر روی آن سایت قابل دسترسی است.
    ممکن است، وب سایت از امکاناتی مشابه یک پورتال برای جستجو و مدیریت داده ها استفاده نماید، اما آنچه که مهم است آن است که این داده ها عموما بر روی پایگاه داده های خود سایت قرار دارند.
  • پورتال عموما" حاوی مطالبی است که جنبه اطلاعات عمومی دارد. داده هایی که از منابع مختلف بر روی یک پورتال جمع آوری می شوند، معمولا دارای پراکندگی فراوانی هستند. به همین علت، در بسیاری از پورتال ها، ابزارهایی مانند Directory قرار داده می شود تا این اطلاعات را طبقه بندی نماید.
    از سوی دیگر داده های قرار داده شده بر روی یک وب سایت، اولا" از منابع محدودتری تامین می شوند و ثانیا" دارای پراکندگی زیادی نبوده، حول یک محور و موضوع مشخص دور می زند و به اصطلاح نخصصی تر هستند .
  • پورتال یک سیستم کاربر محور است. به این معنی که تمام امکانات پورتال بر این اساس پیش بینی شده است تا جوابگوی نیاز های کاربران با سلایق، علاقمندیها، سنین و رده های کاری متفاوت باشد. امکاناتی مثل پست الکترونیکی، Chat، انجمنهای اینترنتی و ... همه برای آن است که کاربران را به هر شکل ممکن به پورتال دعوت نماید.
    در حالیکه یک وب سایت،یک سیستم Subjective یا موضوع محور است. درست است در هر وب سایت، امکاناتی برای کاربران مختلف پیش بینی می شود، اما باید به این نکته توجه داشت که کاربری که با یک وب سایت کار میکند باید به شکلی به موضوع وب سایت مرتبط یا علاقمند باشد.
  • یکی از مهمترین جنبه های تفاوت بین پورتال و وب سایت جنبه اقتصادی آن است. پورتال ها عموما" برای کسب درآمد ساخته شده اند. بیشتر پورتال ها درآمد های خود را از طریق تبلیغات کسب می نمایند.
۰۵ فروردين ۹۳ ، ۰۲:۱۳ ۱ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

مدیریت حالت(State Management) در ASP.NET

در این مقاله به مبحث State management پرداخته شده است، این بحث نیاز حیاتی برای برنامه نویسان وب که با تکنولوژی ASP.NET برنامه نویسی می کنند می باشد. اهمیت این موضوع به دلیل وجود راه های متفاوت برای مدیریتState در تکنولوژی ASP.NET می باشد. در این مقاله سعی بر این است تا این راه های متفاوت را مورد بحث قرار داده و و نقاط قوت و ضعف این راه ها را ارئه می‏کنیم. شاید کمکی باشد برای برنامه نویسان ایرانی تا برنامه های کاربردی بهتری را در محیط وب توسعه دهند.

پیش درآمد موضوع

همان طور که می‏دانید، HTTP یک پروتوکل State less است به این معنی که هیچ وضعیتی را بعد از انجام درخواست نگه داری نمی کند. به عبارت دیگر زمانی که کاربران درخواستی را به سرور ارسال می‏کنند سرور مطابق با نیاز های پاسخگویی منابعی مانند بخشی از حافظه، پردازشگر و غیره ... را به آن اختصاص داده و پس از پاسخ گویی کامل تمامی این منابع را آزاد می‏کند. این بحث برای برنامه نویسانی که تنها تجربه برنامه نویسی با Windows را دارند مطلبی جالب و تا حدی عجیب  است.

اگر قصد پیگیری اطلاعات کاربر در بین صفحات مختلف که توسط او دیده شده است و یا حتی اطلاعات مشاهده یک صفحه توسط کاربران مختلف داشته باشیم. در این حالت نیاز است که از تکنولوژی State management  که در ASP.NET وجود دارد استفاده شود.تکنولوژی State management پردازشی است که در ASP.NET به برنامه نویسان این امکان را میدهد تا وضعیت صفحات و اطلاعات موجود در درخواست ها و صفحات مختلف را مدیریت کنند.

 انواع State management

دو نوع کلی در State management  وجود دارد:

Client Sate Management

Server Sate Management

هنگامی که از حالت اول یعنی Client Sate management استفاده می‏شود به این معنی است که تمامی وضعیت ها و اطلاعات در سمت Client ،که از این پس در این مقاله به آن مشتری گفته میشود، ذخیره میگردد. در این حالت اطلاعات دائماٌ بین سرور و مشتری در سفر است.

سود مندی :

این حالت کمک میکند تا بار زیادی از مسئولیت مدیریت داده ها از دوش سرور برداشته شود، و فضای زیادی از حافظه سرور حفظ شود.

نقطه ضعف:

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

در نقطه مقابل ،حالت Server State Management تمامی اطلاعات را در سمت سرور ذخیره می‏کند.

سودمندی:

همان طور که اشاره شد سودمندی این حالت در امن نگاه داشتن داده های حساس می باشد.

نقطه ضعف:

در این حالت حجم زیادی از حافظه سرور مورد استفاده می‏شود.

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

Client Side State Management

View State

Control State

Hidden Field

Cookies

Query String

 

Server Side State management

Application State

Session State

برای یادگیری مدیریت حالت در ASP.NET این مقاله را از لینک زیر دانلود کنید:

دانلود مقاله

۲۲ اسفند ۹۲ ، ۱۹:۰۱ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

نحوه درج فایل فلش در ASP.NET

1-کنترل flash control رو از آدرس زیر دانلود کنید.

http://www.flash-control.net/download/FlashControl.zip

2-visual studio رو باز کنید و در toolbox هر جایی که می خواهید این کنترل اضافه بشه (مثلا قسمت standard) کلیک راست کنید.

3- گزینه choose Items رو انتخاب کنید و بعد در قسمت Net Framework components. دکمه browse رو انتخاب کنید. حالا فایل flashcontrol.dll رو از هاردتون بهش معرفی کنید.

همین...!

حالا دقیقا مثل بقیه کنترلها ازش استفاده کنید...

۰۶ اسفند ۹۲ ، ۱۲:۵۸ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

CGI چیست و چگونه کار می‌کند

CGI مخفف Common Gateway Interface است. CGI یک بخشی از وب سرور (Web Server) است که این قابلیت را فراهم میکند تا برنامه ای در سمت سرور اجرا شود و خروجی آن برنامه برای کاربر متصل شده به سرور از طریق صفحه ی وب به نمایش در آید. CGI یکی از اولین روش ها برای تولید صفحات وب پویا (Dynamic) به حساب می‌آید که دارای قدمت زیادی ست. به عنوان مثال در موتور های جستجو کاربر تنها یک صفحه در مقابل خود میبیند که شامل یک کادر برای وارد کردن کلید واژه و یک دکمه‌ی جستجو ست. وقتی کاربر دکمه ی جستجو را میزند، CGI یه اسکریپت را (فرضا" به زبان Perl) که در پوشه‌ی خاصی (cgi_bin) روی سرور قرار گرفته اجرا می کنه. با اجرای این اسکریپت کلید واژه ی کاربر به عنوان ورودی استخراج شده و در پایگاه داده‌ای این کلید واژه جست و جو می‌شود تا نتایج جست و جو به دست آید. در نهایت در خروجی اسکریپت یه فایل HTML درست شده که نتایج جستجو را شامل می‌شود و CGI این HTML را به عنوان پاسخ برای کاربر ارسال میکند. چون پویش در یک پایگاه داده به طور مستقیم از راه HTML ممکن نیست، مجبور شدیم از کد Perl برای این کار کمک بگیریم و CGI فقط نقش یه واسطه را بازی میکند.

۲۷ بهمن ۹۲ ، ۱۳:۴۸ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

آموزش ساخت افزونه برای فایرفاکس

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

کتاب Build Your Own Firefox Extension تمامی‌آنچه که برای ساخت یک افزونه فایرفاکس نیاز دارید را به شما آموزش می‌هد. در این کتاب با ساختار پوشه‌ها و فایل‌های موجود در یک افزونه، شیوه توسعه رابط کاربری از طریق CSS و XUL، ایجاد قابلیت‌ها و ویژگی‌های پیشرفته به وسیله جاوا اسکریپت، اضافه کردن میانبر‌های صفحه کلید و امکانات بین المللی، آموزش شیوه انتشار محصول نهایی و نیز با مقدمه از Jetpack آشنا خواهید شد. از لینک زیر می توانید این کتاب انگلیسی را دریافت کنید.

دانلود کتاب ساخت افزونه برای فایرفاکس

۱۷ بهمن ۹۲ ، ۲۱:۲۸ ۱ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

نرمال سازی(normalization) دیتابیس

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

شکل 1NF

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

  1. نوع داده‌ها و اطلاعات در هر ستون یکسان باشد.
  2. محتویات هر ستون یک مقدار مشخص باشد اتمیک باشد.
  3. هر سطر از جدول منحصربه‌فرد باشد به این منظور می‌توان از قید کلید اصلی یا PK استفاده نمود.
شکل 2nf

یک جدول در فرم دوم نرمال است اگر شرایط زیر را داشته باشد:

  1. در فرم اول نرمال باشد.
  2. کلید ستون‌های غیر کلید وابستگی تابعی کامل به کلیه ستون‌های کلید داشته باشد.
شکل 3nf

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

  1. در فرم اول و دوم نرمال باشد
  2. فاقد وابستگی‌های با واسطه باشد

لازم به ذکر است که فرم های دیگری هم وجود دارد ولی این 3 اصلی ترین فرم های نرمال سازی است.

۱۷ بهمن ۹۲ ، ۱۵:۰۴ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

Collation

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

از جایی که زبان انگلیسی با احتساب حروف کوچک در نهایت 52 حرف دارد، مضاف بر علائم کنترلی و نگارشی و اعداد در نهایت 128 کاراکتر قرارداد شد و برای هر کدام کدی اختصاص داده شد.

از اونجایی هم که برای ذخیره 128 نماد نیاز به 7 بیت هست و تعداد بیت ها می باید مضربی از 8 می بود، از 8 بیت یا یک بایت برای ذخیره استفاده کردند.

برای 128 فضای خالی باقی مونده هم از علائمی استفاده کردند که بتوانند به صورت ساده گرافیک و جدول را پیاده کنند و پرینت بگیرند.

در حالت فارسی هم از همون فضای کاراکتر های چاپی استفاده می کردند.

تا این جا مشکلی نبود اما با ورود زبانهای دیگر به کامپیوتر یک بایت اضافی هم در نظر گرفته شد. این بایت در حقیقت نمایانگر زبان مورد استفاده بود.

یعنی مثلا اگر کاراکتر 186 علامت || در زبان استاندارد ASCII بود این بار اگر کد پیج (همون کاراکتر اضافی) روی زبانی غیر از انگلیسی بود این کاراکتر به معنی مثلا آلفا می شد.

این کاراکتر برای زبان استاندارد صفر و برای زبان فارسی 6 در نظر گرفته شد. (254 هم هست)

می تونید برای اطلاعات بیشتر از برنامه CharMap خود ویندوز جریان رو ببینید.(در Run تایپ کنید)

در برنامه نوت پد هم در حالتی که بخواهید در استاندارد جدید (UniCode) متنتون رو ذخیره کنید خواهید دید که حجم جدید به دو برابر + 2 بایت اضافی برای هدر تشخیص افزایش خواهد یافت.

در اس کیو ال هم جریان مشابهی هست.

در حالت استاندارد اسکی برای هر کاراکتر یک بایت در نظر گرفته خواهد شد که انواع داده ای Char, Text, VarChar از همین نوعند.

اگر قرار باشد که حروف فارسی رو ذخیره کنید کدپیج کجا ذخیره می شد؟

ادامه مطلب...
۰۵ بهمن ۹۲ ، ۱۶:۰۰ ۲ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

موتور بازی

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

3 نوع موتور بازی داریم :

  • سطح پایین : شرکت ها بصورت دلخواه تمام قسمت های بازی را تولید می کنند.
  • سطح میانی : مثل unreal و Gamebryo . موتور هایی که برنامه نویسی کمی دارند و مراحل توسعه راحت تر از قبلی است.
  • سطح بالا : مجموعه کاملی از ابزارها و امکانات مورد نیاز برای خلق یک بازی را در اختیار قرار می دهند. مثل موتورهای : Torquee Game Builder و Game Maker و Unity3d . مشکل این سطح این است که فقط دو سبک بازی اکشن و استراتژیک را ساپورت می کنند. البته در ورژن های جدیدتر بهبود یافته و تا حدودی این مشکل را برطرف کرده اند.

لازم به ذکر است با زبان سی شارپ در موتور Unity3d کد نویسی ها را انجام داد.

۲۸ دی ۹۲ ، ۲۲:۵۱ ۰ نظر موافقین ۱ مخالفین ۰
مهدی عزیزی

سیستم های پیشنهاد دهنده (Recommender Systems)

سیستم های پیشنهاد دهنده سیستم هایی هستند که در پیدا کردن و انتخاب نمودن آیتم های مورد نظر کاربران به آنها کمک می کنند. طبیعی است که این سیستم ها بدون در اختیار داشتن اطلاعات کافی و صحیح در مورد کاربران و آیتم های مورد نظر آنها (بعنوان مثال فیلم، موزیک، کتاب و ...)  قادر به پیشنهاد دادن نمی باشند. بنابراین یکی از اساسی ترین اهداف آنها جمع آوری اطلاعات گوناگون در رابطه با صلایق کاربران و آیتم های موجود در سیستم است. منابع و روش های گوناگونی برای جمع آوری چنین اطلاعاتی وجود  دارد. یک روش جمع آوری اطلاعات بصورت صریح که در آن کاربر صراحتا اعلام می کند که به چه چیز هایی علاقه دارد ( بعنوان نمونه با امتیاز دادن (rate) به یک موزیک). روش دیگر روش ضمنی  است که کمی دشوار تر است و در آن سیستم باید صلایق کاربر را با کنترل و دنبال کردن رفتار ها و فعالیت های او بیابد ( بعنوان مثال باید ببینید کاربر به چه موزیک هایی بیشتر گوش می دهد، چه صفحاتی را بازدید می کند، با چه کسانی در ارتباط است و ...). علاوه بر اطلاعات ضمنی و صریح برخی از سیستم ها نیز هستند که از اطلاعات شخصی کاربران استفاده می کنند. بعنوان مثال سن، جنسیت و ملیت کاربران می تواند منبع خوبی برای شناخت کاربر  و ارائه پیشنهاد به وی باشد. به این گونه از اطلاعات Demographic Information گفته می شود که گروهی از سیستم های پیشنهاد دهنده مبتنی بر همین اطلاعات بنا شده اند. با ظهور web 2 و گسترش شبکه های اجتماعی در سال های اخیر محققین به منبع اطلاعاتی دیگری برای بهبود کیفیت پیشنهاد ها پی بردند  که همان اطلاعات موجود در شبکه های اجتماعی بود  و بر همین اساس کار های تحقیقاتی زیادی در این حوزه شکل ریزی گردید.

اهمیت سیستم های پیشنهاد دهنده وقتی بیش از پیش مشخص می شود که کاربران

ادامه مطلب...
۱۵ دی ۹۲ ، ۰۲:۰۵ ۶ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

دست یابی آژانس امنیت ملی آمریکا به رایانه کوانتومی

آژانس امنیت ملی آمریکا (NSA) برای رمزگشایی از گذرواژه‌ها به فن‌آوری تازه‌ای در عرصه صنعت رایانه دست یافته است. با بهره‌گیری از این فن‌آوری تازه، آژانس امنیت ملی آمریکا می‌تواند به کامپیوترهای حکومت‌ها و بانک‌ها و صنایع نفوذ کند.

روزنامه واشنگتن پست گزارش داده است که آژانس امنیت ملی آمریکا (NSA) در عرصه صنعت رایانه و در عرصه ساخت کامپیوترهای کوانتومی به فن‌آوری‌های تازه‌ای دست یافته است که با بهره‌گیری از آن می‌توان کامپیوتری ساخت که از آن به عنوان «سوپرکامپیوتر» یاد می‌شود. این کامپیوتر این توانایی را دارد که از گذرواژه‌های بسیار دشوار رمزگشایی کند و دسترسی به اطلاعات بانک‌ها، مراکز پژوهشی و کامپیوترهای وزارتخانه‌ها را فراهم آورد.

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

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

روزنامه نیویورک تایمز دوم ژانویه

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