VPS   

بالاخره بعد از مدت ها بررسی یه VPS برای خودم گرفتم. CentOS روش نسبه. توصیه می کنم اگه دوست دارید مدیریت کامل یه سرور رو کامل یاد بگیرید یه دونه برای خودتون بگیرید.

Squid روش نصب کردم شده پروکسی اختصاصی خودم :( قیمتشم بالا نیست با ماهی ۴.۵ دلار یکی می تونین بگیرید. کلا خیلی حال میده:(( 

لینک
دوشنبه ۱٠ خرداد ،۱۳۸٩ - ehsan emadzadeh

   الگوی سینگلتن (Singleton)   



این الگو تضمین میکنه که یک کلاس همیشه یک نمونه (Instance) داره و یک اشاره گر سراسری برای دسترسی به نمونه اون کلاس میده.

UML دیاگرام یک کلاس سینگلتن به شکل زیره:






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






// Singleton pattern -- Structural example



using System;

 

namespace DoFactory.GangOfFour.Singleton.Structural

{

  ///

  /// MainApp startup class for Structural

  /// Singleton Design Pattern.

  ///

  class MainApp

  {

    ///

    /// Entry point into console application.

    ///

    static void Main()

    {

      // Constructor is protected -- cannot use new

      Singleton s1 = Singleton.Instance();

      Singleton s2 = Singleton.Instance();

 

      // Test for same instance

      if (s1 == s2)

      {

        Console.WriteLine("Objects are the same instance");

      }

 

      // Wait for user

      Console.ReadKey();

    }

  }

 

  ///

  /// The 'Singleton' class

  ///

  class Singleton

  {

    private static Singleton _instance;

 

    // Constructor is 'protected'

    protected Singleton()

    {

    }

 

    public static Singleton Instance()

    {

      // Uses lazy initialization.

      // Note: this is not thread safe.

      if (_instance == null)

      {

        _instance = new Singleton();

      }

 

      return _instance;

    }

  }

}

دقت کنید که متد Instance کار سازنده رو میکنه و به صورت static تعریف شده تا بدون نیار به نمونه قابل دسترسی باشه و متد سازنده رو protected کردیم تا کسی نتونه یک نمونه دیگه از روی این کلاس بسازه. متد های دیگر کلاس سینگلتن نیازی نیست بصورت static تعریف بشن.

یه روش بهتر میتونه کد زیر باشه:




public sealed class Singleton
{
    static readonly Singleton instance=new Singleton();

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

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            return instance;
        }
    }
}

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

امیدوارم مفید باشه

یا علی

لینک
چهارشنبه ٢٤ تیر ،۱۳۸۸ - ehsan emadzadeh

   Perl Drawbacks   

Why i don't like perl too much(got it from "Building a scalable distributed WWW search engine ... NOT in Perl!" and agree with that):

  • Not strong in GUI department
  • Hard to deal with Multi-Threading and Asyncronous sockets
  • OOP is more of a hack
  • Lax compile-time checks due to not being strictly typed
  • Fear of performance bottlenecks forcing to use C++
  • Hard to profile for performance analysis
  • Managed memory lacks support for pointers (?)
  • Poor exceptions handling

on the other hand perl has some lovely attitudes which i like too!

لینک
چهارشنبه ٧ اسفند ،۱۳۸٧ - ehsan emadzadeh

   تویتتر   

سلام دوستان

اخیرن دارم به تویتتر عادت میکنم باحاله.

دوستان لطفا سوالات در باره ی مالزی رو هم در سایت IrMalezi مطرح کنید. این ترم Agent Based Systems  داریم. ایشاللا جند تا مطلب راجع به سیستم های بر اساس ی اجنت طراحی شده میدم.

قربان شما

شاد و سلامت باشید

 

 

لینک
جمعه ٢ اسفند ،۱۳۸٧ - ehsan emadzadeh

   اطلاعات مالزی   

با سلام،

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

http://www.IrMalezi.Com

 

در پناهش

 

لینک
سه‌شنبه ٢۳ مهر ،۱۳۸٧ - ehsan emadzadeh

   Ajax Design Pattern   

Ajax Design Patterns
View SlideShare presentation or Upload your own. (tags: ajax design)
لینک
جمعه ۸ شهریور ،۱۳۸٧ - ehsan emadzadeh

   Template Design Pattern   

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

این الگو از دو بخش زیر تشکیل شده:

کلاس ابسترکت: متر را به صورت ابسترکت شامل مشوند. بدین معنی که کلاسی که از آن به ارث میبره باید اون متد رو دوباره تعریف کنه.

کلاس های کانکریت: متد های ابسترکت کلاس ابسترکت رو تعریف می کنند.

مثال زیر رو در C# نگاه کنید:


// Template pattern -- Structural example

using System;

namespace DoFactory.GangOfFour.Template.Structural
{

// MainApp test application

class MainApp
{
static void Main()
{
AbstractClass c;

c =
new ConcreteClassA();
c.TemplateMethod();

c =
new ConcreteClassB();
c.TemplateMethod();

// Wait for user
Console.Read();
}
}

// "AbstractClass"

abstract class AbstractClass
{
public abstract void PrimitiveOperation1();
public abstract void PrimitiveOperation2();

// The "Template method"
public void TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
Console.WriteLine("");
}
}

// "ConcreteClass"

class ConcreteClassA : AbstractClass
{
public override void PrimitiveOperation1()
{
Console.WriteLine("ConcreteClassA.PrimitiveOperation1()");
}
public override void PrimitiveOperation2()
{
Console.WriteLine("ConcreteClassA.PrimitiveOperation2()");
}
}

class ConcreteClassB : AbstractClass
{
public override void PrimitiveOperation1()
{
Console.WriteLine("ConcreteClassB.PrimitiveOperation1()");
}
public override void PrimitiveOperation2()
{
Console.WriteLine("ConcreteClassB.PrimitiveOperation2()");
}
}
}


Output

ConcreteClassA.PrimitiveOperation1()
ConcreteClassA.PrimitiveOperation2()

 

برای کسی که با مبانی شی گرایی آشنا باشه این الگو بسیار ساده و بدیهی به نظر می رسه.

منبع: http://www.dofactory.com/Patterns/PatternTemplate.aspx#_self1

احسان

لینک
پنجشنبه ۱٧ امرداد ،۱۳۸٧ - ehsan emadzadeh

   الگوهای طراحی نرم افزار(Software Design Patterns)   

 

با سلام،

از امروز قصد دارم شروع به نوشتن درباره ی الگوهای طراحی نرم افزار(Software Design Patterns) بکنم. الگوهای طراحی در واقع تجربیات برنامه نویسان خبره است که به صورت الگویی قابل استفاده در همه نرم افزار ها در آمده. برنامه نویسان می توانند با استفاده از این الگوها از تجربیات گرانبهای دیگران در نظم دهی و سازمان دهی کد ها یشان استفاده کنند. برای مطالعه درباره تعریف (Software Design Patterns) ها منابع زیادی وجود دارد، ولی اصلی ترین مرجع کتاب Gang of Four معروف به GoF است.

http://en.wikipedia.org/wiki/Design_Patterns

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

  • مدل های سازنده (Creational Patterns)
    • Factory Method
    • Abstract Factory
    • Builder
    • Prototype
    • Singleton
  • مدل های ساختاری (Structural Patterns)
    • Adapter
    • Bridge
    • Composite
    • Decorator
    • Flyweight
    • Façade
    • Proxy
  • مدل های رفتاری (Behavioral Patterns)
    • Template method
    • Chain of responsibility
    • Command
    • Iterator
    • Mediator
    • Memento
    • Observer
    • State
    • Strategy
    • Visitor

از این همه اسم عجیب و غریب نترسید، اکثرشون معمولا الگوهایی هستند که ما کم و بیش ازشون تو برنامه هامون استفاده می کنیم.

 

اگه بشه چند تا از معروف تریناشونو می خوام توضیح بدم.

 

فعلا،

در پناهش

لینک
دوشنبه ۱٤ امرداد ،۱۳۸٧ - ehsan emadzadeh

   کار در مالزی   

سلام دوستان،

 

دست تقدیر ما رو فعلا اوورده مالزی، شکر خدا تونستم تو یه شرکت کار پیدا کنم.  کار جالبیه، با Perl , Linux  کار میکنیم! من قبل از اینکه بیام اینجا اصلا با لینوکس کار نکرده بودم ولی مجبور شدم یاد بگیرم.

جالبتر اون که وقت مصاحبهمن همه کارام با C# , ASP.NET بود ولی استخدامم کردن و تازه بعدش گفتن با لینوکس و پرل کد میزنن!!:)

ولی خداییش عجب کد کثیفیه این پرل!زبان

 

راستی اگر دنبال کار هستید شرکت ما داره استخدام میکنه، برای جذب نیرو داره یه سرم ایران میاد. اگه خواستید از اینجا اطلاعات بیشتر و ببینید:

http://www.cyberjaya-jobs.com/

موفق باشید.

احسان

لینک
جمعه ٢۱ تیر ،۱۳۸٧ - ehsan emadzadeh

   بالاخره اینترنت دار شدیم...   

بالاخره اینترنتمونو وصل کردن... بعد ٣ ماه...این مالزیایی ها با اینترنت دادنشون.

البته فقط برای خارجی ها انقدر طول میدن...خدارو شکر، مردیم از بی اینترنتی!

 

 

لینک
چهارشنبه ٢٢ خرداد ،۱۳۸٧ - ehsan emadzadeh