Archive for 2008

سال 2009 میلادی مبارک

۱۳۸۷/۱۰/۱۱ ۱۶:۰۰ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۱۰/۱۱ دسته بندی : ، ، 1

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

این درخت هم تقدیم به مسیحی های عزیز:
Xmas Tree

 

بررسی فعال بودن Javascript در ASP.NET

۱۳۸۷/۱۰/۰۸ ۴:۵۱ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۱۰/۰۸ دسته بندی : ، ، ، ، 3

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

  • استفاده از تگ noscript


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

<meta http-equiv="refresh" content="0;url=EnableScripts.htm">

همانطور که از کد مشخصه این کار باعث میشه تا کاربر به صفحه EnableScripts.htm هدایت بشه. معمولا این روش زیاد کاربر پسند نیست ولی برای صفحاتی که بدون وجود جاوا اسکریپت به هم خواهند خورد و فعال بودن آن حیاطی هست می تونید از این روش استفاده کنید. دقت کنید که کد بالا باید در بخش Head سایت قرار بگیره، مانند زیر:<head>
<title>Welcome</title>
<noscript>
<meta http-equiv="refresh" content="0;url=http://www.google.com">
</noscript>
</head>


همچنین به جای کد بالا می تونید پیغامی رو در صفحه نمایش بدید:

<noscript>
کاربر گرامی، برای مشاهده این صفحه باید جاوا اسکریپت را در مرورگر خود فعال نمایید.
</noscript>


که این کد رو می تونید در هرجای صفحه قرار بدین.

  • استفاده از فیلد مخفی یا Hidden در ASP.NET


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

برای بررسی فعال بودن جاوا اسکریپت در رویداد های PostBack ابتدا باید یک فیلد hidden رو در فرم قرار بدین و مقدار این فیلد رو برابر 0 قرار بدین. چیزی شبیه این:
<asp:HiddenField ID="txtCheckJS" runat="server" Value="0" />

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

<script type="text/javascript">
document.getElementById('<%=txtCheckJS.ClientID %>').value='1';
</script>


کاری که این کد جاوا اسکریپت انجام میده تغییر مقدار فیلد به 1 هست، که یعنی جاوا اسکریپت فعال است. تنها کاری که باقی مونده بررسی این فیلد در رویداد کلیک هست. کافی هست که کدی مانند زیر رو استفاده کنید:
if (Page.IsPostBack)
{
if (Convert.ToInt32(txtCheckJS.Value) == 1)
{
// Javascript is enabled
}
else
{
// Oh No!
// Javascript is not enabled
}
}


روش دیگری از بررسی که با استفاده از Validator ها پیاده سازی شده رو می تونید تو این پست از وبلاگ وحید نصیری مطالعه کنید.

 

راهنمای کامل توابع JQuery و MooTools به صورت CHM

۱۳۸۷/۱۰/۰۱ ۰:۴۵ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۱۰/۰۱ دسته بندی : ، ، ، ، 5

در زیر لینک دانلود مرجع کامل توابع اصلی JQuery همراه با توابع UI رو گذاشتم. حجم فایل 184 کیلوبایت و در فرمت chm هست.

برای آشنایی با JQuery می تونید به این پست و این پست آقای امیر عباس مراجعه کنید.

به روز رسانی 7 بهمن: JQuery 1.3  لینک دانلود

JQuery 1.2.1  لینک دانلود 1
JQuery 1.2.1  لینک دانلود 2

این هم لینک دریافت مرجع توابع کتابخانه MooTools:

MooTools لینک دانلود:

http://www.adrive.com/public/15c1ff4378301e96b18a9a56a1fa591f4ec46972ba49a5b5ad2ab0126e5570c5.html

منبع: http://charupload.wordpress.com/2007/12/07/jquery-documentation-chm

 

اینترنت بدون فیــــ.ــلتــر با Opera Mini

۱۳۸۷/۰۹/۲۹ ۵:۳۲ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۹/۲۹ دسته بندی : ، 7

Opera Mini

جایی رو برای این روشی رو امروز می خوام معرفی کنم تو اینترنت پیدا نکردم که کامل باشه و فکر کردم که شما خواننده عزیز از این موضوع مطلع نباشین.

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

موارد مورد نیاز

  • یک خط ایرانسل

  • یک عدد نرم افزار OperMini

  • مقدار زیادی شارژ !


طریقه دریافت و نصب OperaMini

برای دریافت به آدرس http://www.opera.com/mini/download بروید. تو انتخاب برای دریافت دارید، یکی وارد کردن شماره گوشی و دریافت لینک دانلود از طریق sms که به این علت که نام ایران در این لیست نبود من این مورد امتحان نکردم.

مورد بعدی با نام PC Download لیستی از برند گوشی ها هست که برند گوشی تون رو از لیست انتخاب کنید. در صفحه بعدی می تونید مدل گوشی تون رو انتخاب کنید. پس از انتخاب وارد صفحه دانلود می شوید که دو تا فایل داره. فقط فایل jar لازم است ولی برای احتیاط واینکه برخی گوشی ها نیاز به هردو فایل دارند هر دو را دانلود کنید، با نام های opera-mini-advanced.jad و opera-mini-advanced.jar . سپس به گوشی تون انتقال داده و نصب کنید.

اولین اجرا

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

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

نسخه آنلاین!

این امکان با استفاده از شبیه ساز فراهم شده تا بدون نیاز به نصب یک نسخه انلاین رو امتحان کنید. فیل از این کار باید نسخه زمان اجرای جاوا یا همان JRE بر روی سیستم شما نصب باشه. اگه این بسته رو ندارید از این پست دریافت کرده و نصب کنید تا نسخه آنلاین رو بتونید مشاهد کنید. در این آدرس http://www.opera.com/mini/demo

ویژگی های جالب این مرورگر موبایل

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

سایر مزیتهای این مرورگر موبایل

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

  • امکان زوم  بر روی صفحه و ماوس مجازی برای حرکت در درون سایت (این ویژگی در نسخه 4 موجود هست که بر روی گوشی های قدیمی اجرا نمی شود).

  • امان بازگشت به صفحه قبلی بدون نیاز به بارگزاری مجدد صفحه

  • امکان تغییر پوسته


در آخر مواظب مقداری که در اینترنت گردش می کنید باشید، چون هنوز اینترنت ایرانسل گران هست!

امیدواردم فیل.تر نشم!

موفق باشید و شب به خیر!

 

رفع مشکل login در وردپرس

۱۳۸۷/۰۹/۱۹ ۲:۴۸ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۹/۱۹ دسته بندی : ، ، 11

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

نمی دونم این مشکل رو همه دارن یا نه ولی حداقل برای من که 6 تا ISP رو امتحان کردم 5 تاش مشکل داشت!!


    • به روز رسانی 21 آذر


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

    • بررسی مشکل و علت آن


    مشکل رو که بررسی کردم متوجه شدم که در ارتباط SSL مشکلی وجود داره. به زبان ساده وقتی که وارد صفحه login می شید ابتدای آدرس یه S اضافی داره. یعنی httpS://wordpress.com/wp-login.php

    پس از مدتی گشت و گذار تو اینترنت متوجه شدم که این مشکل مربوط به وردپرس نیست و تعدادی سایت هم باهاش مشکل پیدا کردند. مانند سایت donbale که هنوز این مشکل رو داره و چند تا دیگه. این در حالیه که با استفاده از پراکـــسی به راحتی میشه حتی از این S اضافه هم استفاده کرد(منظور همون SSL هست).

    احتمالیکه من میدم اینه مشکل از سیستم فیل.ترینگ مخابرات و شرکت های ISP هست و به نحوی دچار مشکل هستند. احتمال بسیار ضعیف هم وجود که لیسانس SSL این سایت ها مسدود شده باشه، که البته فکر نکنم تکنولوژی این کار تولید شده باشه! شاید هم اینا کردن!؟!

    به هر حال برای رفع این مشکل در wordpress باید SSL رو دور بزنیم.


    • رفع مشکل


    رفع مشکل کمی فنـیه و اگه اطلاعات کمی داشته باشید ممکنه که دچار مشکل بشید، به هر حال سعی میکنم که ساده توضیح بدم.

    موارد مورد نیاز:

    بعد از اینکه افزونه Web Developer رو نصب کردین (و البته پس از Restart مرورگر)، باید نواری از منوها در زیر نوار آدرس نمایش داده بشه. پس مراحل زیر رو دنبال کنید:

    1. به صفحه Login وردپرس برین. دقت کنید که httpS نــبـــاشـد. دقیقا این آدرس.

    2. از نوار مربوط به Web Developer گزینه Miscellaneous رو که آیکون نسبتا خاکستری داره پیدا کرده و کلیک کنید. از منوی ظاهر شده گزینه Edit Html رو انتخاب کنید.

    3. باید پتجره ای در پایین مرورگر با نام Edit Html ظاهر شده باشه که در اون می تونید کدهای Html رو ویرایش کنید که همان لحظه در مرورگر اعمال می شه.

    4. در کادر کوچک بالایی این پنجره که برای جستجو در میان کدهای html هست، عبارت https://wordpress.com رو وارد کنید تا نشانه گر در متون html قرار بگیره. در این حالت فقط حرف S رو از https در متون html که مشخص شده است حذف کنید.

    5. بدون اینکه به پنجره Edit Html دست بزنید در صفحه وردپرس نام کاربری و کلمه عبورتون رو وارد کنید و فراموش نکنید که Remember me رو تیک بزنید تا دیگه مجبور نباشید مراحل بالا رو تکرار کنید.

    6. دکمه Login رو بزنید. صبر کنید تا داشبورد وردپرس بالا بیاد و بعد اون می تونید پنجره Edit Html رو ببندید

    7. تمام! تصویری از Edit Html و کاری رو که باید در اون باید انجام بدید رو مشاهده می کنید:


    ن�وه اعمال تغییرات با استفاده از گزینه Edit Html

    • توضیح بیشتر


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

    • به روز رسانی: روشی ساده تر


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

    1. آدرس http://m.wordpress.com وارد کنید.

    2. نام کاربری و کلمه عبورتون رو وارد کنید و گزینه Remember me رو انتخاب کنید.

    3. دکمه Login رو کلیک کنید و تمام! از این پس در سایت اصلی وردپرس می تونید از حساب کاربری خودتون استفاده کنید.


    موفق باشید.

     

    دریافت نسخه جدید Netbeans 6.5 به همراه JDK

    ۱۳۸۷/۰۹/۱۴ ۲۱:۵۹ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۹/۱۴ دسته بندی : ، ، 24

    netbeans

    از اونجایی که دریافت مستقیم از سایت Netbeans برای ایرانی ها بسته است، به همین خاطر فایل های این نسخه رو در یه جای دیگه قرار دادم تا به راحتی بتونید اونها رو دریافت کنید.

    • دریافت Netbeans


    دریافت Netbeans 6.5.1 برای ویندوز


    دریافت Netbeans 6.5.1 برای لینوکس


    دریافت Netbeans 6.5.1 برای Mac




    • این هم بسته های JDK و JRE


    دریافت JDK 6u12 برای ویندوز


    دریافت JRE 6u12 برای ویندوز


    دریافت JRE 6u12 برای لینوکس



    دریافت JDK 6u12 برای لینوکس

    * پ.ن: دوتا از صفحه های سایت netbeans رو دیدم که فارسی بود. جالبه بدونید که یکی از صفحات مربوط به لیست پستی و دیگری مربوط به مشارکت در سایت netbeans.org است. این درحالیه که دریافت این نرم افزار برای ایرانی ها بسته است.



    اینجا: مشارکت در netbeans.org
    و اینجا: لیست های پستی NetBeans

    به روزرسانی 23 اردیبهشت 88

    نسخه Netbeans 6.5.1 و همچنین به روزرسانیهای 6u12 قرار گرفتند.

     

    تعریف ویژگی ها (Properties) در جاوا اسکریپت

    ۱۳۸۷/۰۹/۰۸ ۲۲:۲۱ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۹/۰۸ دسته بندی : ، ، ، 6

    یکی از امکانات نسخه های جدید JavaScript پشتیبانی از ویژگی ها (Property) هست. اگر با سایر زبان های برنامه نویسی آشنایی داشته باشید، مطمئنن می دانید که ویزگی ها یکی از بخش های جدایی ناپذیر زبانهای برنامه نویسی OOP هستند.

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

    با این مقدمه می خواهم چند روش تعریف ویژگی ها در جاوا اسکریپت مطرح کنم.

    تعریف اول:

    جاوا اسکریپت زبان بسیار ساده ای است. ابجکت ها (یا اشیا) در جاوا اسکریپت چیزی بیش از مجموعه ای از کلید ها و مقادیر نیستند. به این معنی که برای دسترسی به عضوی از یک شیئ می توانید همانند یک آرایه با آن رفتار کنید.

    برای مثال برای افزودن یک عضو به یک شیئ به مثال زیر توجه کنید:
    var thing = new Object();
    thing[ “prop1” ] = “Hello”;

    در این مثال ما عضو جدیدی به نام prop1 را به thing اضافه کردیم. مقدار prop1 برابر Hello خواهد بود. روش دیگری هم برای افزودن عضو به شیئ مورد وجود دارد. به مثال زیر توجه کنید:
    var thing = new Object();
    thing.prop1 = “Hello”;

    روش دیگر برای معرفی اشیا استفاده از لیتراتهای ابچکت هست که نتیجه ای دقیقا مانند دو مثال قبلی دارد:
    var thing = {prop1 : “Hello”};

    استفاده از مقدار prop1 بسیار ساده است می توان همانند یک آرایه یا یک ویژگی از آن استفاده کرد:
    var thing = new Object();
    thing.prop1 = “Hello”;
    alert( thing[“prop1”] );
    thing.prop1 = “Hello Again!”;
    alert( thing.prop1 );

    روش دوم:

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

    برای رفع این مشکل شرکت Mozilla راه حلی را ارائه کرده است که به مرور سایر مرورگر ها نیز از آن پشتیبانی می کنند.

    این روش چیزی جز کلمات کلیدی get و set نیست.
    var thing =  {
    _price: 0,
    get price() { return this._price; },
    set price(value)
    {
    if (value < 0)
    throw "price must be greater than zero";
    this._price = value;
    }
    };

    در این مثال شیئ با نام thing تعریف شده است. این شیئ دارای یک متغیر با نام price_ و ویژگی price هست که با استفاده از یک متد get و یک متد set تعریف شده است.

    به طور ساده تر زمانی که می خواهید مقداری را از ویزگی price بخوانید تابع معرفی شده در مقابل get فراخوانی خواهد شد و همچنین، هنگام مقدار دهی به price تابع معرفی شده در مقابل set فراخوانی خواهد شد.

    همانطور که می بینید ویزگی price در هنگام عمل set مقدار ورودی را بررسی می کند و اگر کوچکتر از صفر باشد خطایی را تولید خواهد کرد.

    نمونه استفاده از کد بالا:
    // مقدار دهی
    thing.price = 5;
    // نمایش مقدار
    alert( thing.price );
    // مقدار نامعتبر و تولید خطا
    thing.price = -10;

    متاسفانه از این روش مرورگر های کمی پشتیبانی می کنند و در حال حاظر مرورگرهای Firefox و Safari 3 و Opera 9.5 از آن پشتیبانی می کنند.

    روش سوم:

    این روش را مرورگر Firefox برای استفاده در خودش طراحی کرده و در سایر مرورگرها کار نخواهد کرد. روش بسیار جالبی است و ساده تر از روش قبلی می باشد.
    var thing =
    {
    _price: 0
    };
    thing.__defineGetter__("price", function(){ return this._price; });
    thing.__defineSetter__("price", function(value)
    {
    if (value < 0)
    throw "price must be greater than 0";
    this._price = value;
    }
    );

    در این مثال ابتدا شیئ thingتعرفی می شود. سپس با استفاده از تابع __defineGetter__ متد get با برای ویژگی price تعریف می شود. این تابع دو ورودی دارد که اولی نام ویژگی مورد نظر است و دومی رفرنسی به تابع مورد نظر برای get. البته در این مثال تابع در همان جا تعریف شده است.

    تابع __defineSetter__ همانند __defineGetter__ عمل می کند و فقط برای اضافه کردن تعریف set به ویژگی مورد نظر مورد استفاده است. در این مثال تابع مربوط به set در همان خط تعریف شده و مقدار ورودی را برای مقادیر کمتر از صفر کنترل می کند.

    همانند مثال قبلی این مثال نیز کار خواهد کرد:
    // مقدار دهی
    thing.price = 5;
    // نمایش مقدار
    alert( thing.price );
    // مقدار نامعتبر و تولید خطا
    thing.price = -10;

    روش چهارم:

    در این روشی که می خوام معرفی کنم، واقعا ویژگی ها را پیاده سازی نمی کند ولی مانند یک ویژگی عمل می کنه و می تونه در کار شما مفید واقع بشه. در این روش در حقیقت ما دو تابع جداگانه برای خواندن و نوشتن در متغیر تعریف می کنیم و کارهای مورد نظر را در داخل آنها انجام می دهیم.
    function thing()
    {
    var _price = 0;
    this.getPrice = function(){
    return _price;
    };
    this.setPrice = function(val){
    if (val < 0)
    throw "price must be greater than 0";
    _price = val;
    };
    }

    در این مثال شیئ thing به عنوان یک تابع تعریف شده است که می توان از روی متغیر و اشیا دیگری هم ساخت. در داخل این تابع دو تابع getPrice برای خواندن و setPrice برای نوشتن در متغیر _price تعریف شده است.
    // ایجاد نمونه جدید از تابع تعریف شده
    var product= new thing();
    // دسترسی متقیم به متغیر داخلی
    alert(product._price);
    //مقدار دهی با استفاده از تابع
    product.setPrice(2);
    // دسترسی به مقدار با استفاده از تابع مربوطه
    alert( product.getPrice() );
    // مقدار با یک مقدار نامعتبر و دریافت خطا
    product.setPrice( -4 );

    با این اوصاف مشاهده می کنید که javascript روز به روز قوی تر می شود، مخصوصا که Web 2 بسیار به javascript وابسته هستند.

    موفق باشید

    منابع:

    http://weblogs.asp.net/stephenwalther/archive/2008/02/29/creating-javascript-properties-in-asp-net-ajax.aspx
    http://ejohn.org/blog/javascript-getters-and-setters/
    http://ajaxian.com/archives/getters-and-setters-in-javascript

     

    نقاشی از مردی پیر

    ۱۳۸۷/۰۹/۰۴ ۲۲:۲۳ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۹/۰۴ دسته بندی : ، ، 3

    این نقاشی رو که میبینید می بینید برادرم کشیده. برام جالبه و نگاه عجیبی داره.

    mybro-painting-oldmanبرادر من یه نقاشه، البته زیاد نقاشی نمی کنه ولی با این حال، شاید هر از گاهی نقاشی هاش رو اینجا گذاشتم.

    در ضمن اخیرا یه کم مشغله ام زیاد شده و نمی تونم زیاد پست کنم، ببینیم کی آزادی فکری بیشتری پیدا می کنم تا بتونم بیشتر بنویسم.

    خوش باشین.

     

    12 نکته برای افزایش سرعت کدنویسی در Visual Studio

    ۱۳۸۷/۰۸/۲۵ ۳:۴۰ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۸/۲۵ دسته بندی : ، ، 2

    نسخه های اخیر Visual Studio یعنی 2005 و 2008 کلید های میانبر و ابزارهای متفاوتی را عرضه کرده اند که به برنامه نویس اجازه می دهد با فشردن چند کلید در عوض رفتن به میان منو های مختلف، به راحتی به مقصود خود برسد.

    این ابزارها و کلید های میانبر در سرعت نوشتن کد تاثیر زیادی دارند و باعث حفظ تسلط بر روی کد می شوند.

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

    • اضافه کردن namespace به صورت خودکار


    در هنگام نوشتن کد بسیار پیش می آید که برگشتن به اول صفحه در فایلهایی که مقدار زیادی کد دارند سخت به نظر برسد و یا حالتی را در نظر بگیرید که اسم namespace رو فراموش کردید.

    در این حالت تنها کافی است که نام کلاس رو وارد کرده و کلید .+CTLR (کلید کنترل همراه با نقطه) را بزنید. در این صورت منویی ظاهر خواهد شد. در این منو فضای نام مورد نظرتون رو با ماوس و یا کلید های بالا و پایین صفحه کلید انتخاب کرده و اینتر را بزنید. در این صورت آن فضای نام به صورت خودکار به فایل اضافه خواهد شد:

    suggestion



    این ویژگی برای VS 2005 و VS 2008 کار می کند

    • استفاده از الگوهای کد نویسی


    تکه الگو های کد یا code snippet ها تکه کد هایی هستند که تمامی یک عبارت را به صورت خودکار درج می کنند.

    این تکه الگو ها به چند روش در دسترس هستند. برای مشاهده و انتخاب از لیست کلید های CTRL+K و CTRL+X رو فشار دهید. در لیست نمایش داده شده می توانید یکی از را اتخاب کنید که در این صورت کد مربوط به آن الگو درج خواهد شد.

    روش بعدی، وارد کردن نام الگو و سپس فشردن دوبار کلید tab هست. برای مثال برای درج الگوی ویژگیها (Property) به این صورت عمل کنید: prop + tab +tab

    در این روش کادرهای سبز رنگی ظاهر می شوند که باید مقادیر مورد نظر یا درخواستی رو در آنها وارد کنید و پس از پایان کارتون باید کلید Enter را فشار دهید.

    snippetچند نمونه از الگوها:

    درج الگوی try..catch: try+tab+tab


    درج الگوی try..finally: tryf+tab+tab


    حلقه for: for+tab+tab


    شرط switch: switch+tab+tab


    پراپرتی فقط خواندنی همراه با متغیر: propg+tab+tab




    • مرتب سازی و حذف ورودی های کلاس (using یا Imports) های زاید


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

    برای رفع این مشکل در محیط کد نویسی بر روی صفحه کلید راست کنید تا منو باز شود. در زیر منوی Organize usings چند گزینه وجود دارد که می توانید از آنها برای ویرایش ورودی های کلاس استفاده کنید. مقصود ما فعلا گزینه Remove and sort   است که باعث حذف شدن موارد زاید و مرتب سازی بقیه آنها می شود:

    remove-sort

    این ویژگی فقط بر روی VS 2008 کار می کند

    • تبدیل به توضیح کردن و یا غیر فعال کردن چندین خط کد


    ممکن است خواسته باشید که چندین خط کد را یکباره غیرفعال و یا اینکه به توضیح تبدیل کنید. در این حالت فقط کافی است که متن مورد خودتان را انتخاب کرده و از ترکیب کلید های CTRL+K و CTRL+C استفاده کنید.

    برای برگرداندن به حالت اولیه در متون انتخاب شده از ترکیب کلید های CTRL+Kو CTRL+U استفاده کنید.

    این مورد در تمامی ویرایشگر های VS قابل استفاده است. از جمله html و javascript و vb.net و web.config و ..

    • ایجاد خودکار ویژگها (Property) از روی متغیر


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

    برای این منظور بر روی متغیر قرار گرفته و کلید های CTRL+E و CTRL+R را فشار دهید. در این صورت پنجره ای ظاهر خواهد شده که همراه با چند وِیژگی دیگر نامی را پیشنهاد خواهد داد. پنجره را تایید کنید تا وِیژگی ایجاد شود.

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

    encapsulate-field

    • فرمت کردن و منظم کردن کد تنها با فشار چند کلید


    معمولا کدی که می نویسیم کاملا مرتب نیست و کمی به هم ریخته به نظر می رسد. فاصله ها رعایت نشده و یا اینکه کد ها منظم نوشته نشده اند. در نسخه های 2005 و 2008 این امکان فراهم شده است تا کد نوشته شده به صورت خودکار فرمت و قالب دهی شود. میتوانید به جای صرف وقت برای تنظیم و مرتب کردن کد به صورت دستی از این کلید میانبر استفاده کنید.

    ترکیب کلیدهای CTRL+K و CTRL+D

    • کپی، بریدن و درج یک خط به صورت سریع


    برای کپی کردن و یا بردین یک سطر از کدتان لازم نیست که حتما آن خط را انتخاب کنید.

    برای این منظور روی خط مورد نظر قرار گرفته و برای کپی کردن کلید CTRL+C و برای بریدن کلید CTRL+X و برای درج کردن از حافظه کلید CTRL+V را فشار دهید.

    • کلیدهای میانبری دیگری برای کپی، بریدن و درج


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

    Copy: CTRL+Insert


    Cut: Shift+Del


    Paste: Shift+Insert




    • کامل کردن خودکار نام متغیر ها و کلاس ها


    در هنگام نوشتن کد اگر نام متد و یا کلاسی را کامل به یاد نمی آورید و یا اینکه چند حرف اول آن را به یاد می آورید، کافی هست که چند حرف اول را تایپ کرده و ترکیب کلید های CTRL+Space را فشار دهید.

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

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


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

    برای دسترسی به این لیست بدون نیاز به ماوس از ترکیب کلید های CTRL+F2 استفاده کنید.

    navigationbar

    • کامپایل پروژه و اجرای آن و انصراف از کامپایل


    برای اینکه کد خود را کامپایل کنید لازم نیست که حتما از منوها اقدام کنید. از ترکیب کلیدهای زیر استفاده کنید.

    کامپایل تمامی solution: ترکیب CTRL+Shit+B

    لغو کامپایل (زمانی که برنامه در حال کاپایل است، قابل استفاده است): CTRL+Break

    کامپیل و اجرا در حالت عادی: ترکیب CTRL+F5

    کامپیل و اجرا در حالت Debug: ترکیب F5

    • انتخاب یک عنصر تنها با یک کلیک


    برای انتخاب یک عنصر تنها کافی است کلید CTRL را پایین نگه داشته و بر روی آن کلیک کنید.

    اگر کلید CTRL را همچنان پایین نگه دارید و توسط ماوس متن انتخابی را بکشید، در این صورت یک کپی از متن را می توانید در هر جایی قرار دهید.

     

    وسوسه ای به نام مهاجرت

    ۱۳۸۷/۰۸/۱۸ ۰:۲۱ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۸/۱۸ دسته بندی : ، ، 9

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

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

    در کنار این مورد، مسئله مالی هم خیلی مهم هست. با نگاهی به سایت HotJobs یاهو و شغل های برنامه نویسی می تونید رنج حقوق رو مشاهده کنید. معمولا کمترین حقوق از پایه ای 40,000 در سال هست و بسته به حرفه های مختلف این مورد افزاریش پیدا می کنه. برای مثال برنامه نویسان .NET در حدود 60,000 تا 80,000 دلار دریافت می کنند و مدیران شبکه در حدود 140,000 دلار و در نهایت مدیران و مدیران ارشد بالای 200,000 دلار.

    این ارقام آدم رو خیلی وسوسه می کنه و در مقایسه مبالغ ناچیزی که در ایران دریافت می کنیم بسیار زیاد هستند.

    اما این همه مسئله نیست، طبق بررسی انجام شده در سال 2007 شغل برنامه نویسی بهترین شغل در آمریکا و وکیلی پردرآمدترین شغل بوده است. انتخاب به عنوان بهترین شغل بدین جهت است که استرس های اضافی ندارد و دارای ریسک کمی می باشد. همچنین امکانات رفاهی مناسبی در اختیار آنها قرار می گیرد.

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

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

    مسئله ما هم شده بحث جاذبه و دافعه. اینجا اونقدر نیرو های دافعه هست که اگه گیر و بند های فعلی وجود نداشت شاید چند سال پیش شخصا رفته بودم.

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

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

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

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

     

    وبلاگ شخصی لینوس توروالدز

    ۰:۲۰ Salar https://www.blogger.com/profile/08261083424775464146 دسته بندی : ، ، ، 1

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

    به نظرم کمی دیر دست به نوشتن زده.

    لینک وبلاگ ایشان

     

    بروکراسی اداری و پروژه ما

    ۱۳۸۷/۰۸/۱۴ ۲:۳۲ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۸/۱۴ دسته بندی : ، ، 4

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

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

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

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

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

    دیگه حرفی برای گفتن ندارم

     

    نگاهی به Ubuntu 8.10 نسخه جدید اوبونتو

    ۱۳۸۷/۰۸/۰۹ ۲۲:۱۳ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۸/۰۹ دسته بندی : ، 17

    Ubuntu

    نسخه جدید Ubuntu امروز به طور رسمی انتشار می یابد. نام این نسخه Intrepid Ibex هست که بنا به رای گیری انجام شده به فارسی "بز بی باک" ترجمه شده است. اینجا.

    این دومین نسخه از Ubuntu هست که امسال منتشر می شه. نسخه قبلی که Hardy Heron نام داره، دارای تعدادی مشکل بود تا آنجایی که شرکت کانونیکال canonical مجبور شد که نسخه دیگر و اصلاحیه ای رو برای اون منتشر کنه که شامل بسته های اصلاح شده بود. آنها قول داده اند که این نسخه پایدارتر از گذشته باشه.

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

    • قابلیت حمل


    یکی از این ویژگیها قابلیت حمل هست. برنامه ای کوچک همراه این نسخه هست که به کاربر این احازه رو می ده، با ایجاد یک USB راه انداز نسخه ای از Ubuntu خود را در هر جا داشته باشه. همچنین این امکان وجود دارد که تنظیمات اعمال شده توسط کاربر نیز همراه این دیسک USB قرار داده بشه.

    تصویری از این برنامه:

    ساخت دیسک USB راه انداز

    • Compiz و افکت ها تصویری


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

    در این نسخه سعی شده است که اشکالات نسخه قبلی Compiz رفع بشه. موتور گرافیکی جدیدی نیز بر پایه GTK+ مورد استفاده قرار گرفته تا با استفاده از پوسته های SVG محیطی زیبا را خلق کند.
    تصاویری از این نسخه را در زیر می بینید.

    نمایشی از گرافیک کامل از SVG

    م�یط Ubuntu

    • کاربر میهمان


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

    Guest session

    • اتصال به اینترنت راحت


    Mark Shuttleworth مدیر Ubuntu دسترسی آسان و بدون دردسر رو یکی از ویژگی های عمده این نسخه دانسته است. یکی از مشکلات کاربران لینوکس اتصال به اینترنت در مکانهای مختلف و کانکشن های مختلف است. سیستم یکپارچه اتصال به اینترنت یکی از ویژگی ها مهم خواهد بود و سعی خواهد کرد که کاربر همیشه بتواند به راحتی در مکانهای مختلف و با اتصالات مختلف اقدام به اتصال به اینترنت کند.

    • BBC


    در مدیا پلیر های نسخه جدید اوبونتو (Totem Movie Player و Rhythmbox) ویژگی جدیدی قرار داده شده است که با استفاده از آن می توان آخرین ویدیو و صوت و یا Podcast را از اینترنت دریافت کرد. این سرویس را BBC فراهم میکند.

    • 3G networking


    پشتیبانی از شبکه های 3G از مدت ها در لینوکس قرار داشت، از زمانی که شبکه های این وسایل مانند بلوتوس و تلفن های همراه و مودم های USB استاندارد شدند لینوکس می توانست انها را به کار بگیره. تنها مشکلی که وجود داشت تنظمیاتی که به اندازه کافی سخت هستند و هر کاربری از پس آنها بر نمی آید. در راستای سیاست اوبونتو مبتنی بر لینوکس برای همه؛ یک ابزار گرافیکی یا به قولی GUI که اطلاعات لازم را از کاربر گرفته و با شناسایی خودکار وسایل تنظیمات را اعمال می کند.

    • نحوه دریافت اوبونتو 8.10


    برای دریافت این نسخه جدید چند کار می تونید انجام بدید.

    اگر ADSL ولی با سرعت محدود دارید می تونید CD را از اینترنت و از لینک زیر دریافت کنید:

    اصلی CD :http://releases.ubuntu.com/8.10/ubuntu-8.10-desktop-i386.iso
    Alternative CD: http://releases.ubuntu.com/8.10/ubuntu-8.10-alternate-i386.iso

    Torrent link: http://releases.ubuntu.com/8.10/ubuntu-8.10-desktop-amd64.iso.torrent



    اگر ADSL و اینترنت پر سرعت هستید می تونید DVD اون را که شامل همه بسته ها هست و شامل CD های Desktop و Alternative و Server میشه رو از اینترنت دریافت کنید، در آدرس زیر:

    DVD: http://cdimages.ubuntu.com/releases/8.10/release/ubuntu-8.10-dvd-i386.iso



    ** اگر هم موارد فوق رو ندارین می تونید درخواست خود CD رو انجام بدین تا شرکت Canoncial سی دی ها رو برای شما ارسال کنه. این سی دی ها معمولا یک هفته تا یک ماه بعد از درخواست به دست شما خواهد رسید. در وارد کردن آدرس دقت کنید:

    https://shipit.ubuntu.com

    گزینه دیگر خرید از سایت http://linuxshop.ir هست. فعلا لینکی در این سایت نداریم.

    • نحوه ارتقا، از نسخه قبلی


    برای دیدن نحوه ارتقا به این لینک مراجعه کنید. مقاله فارسی هست که توسط مهدی حسنپور تهیه شده است: http://wiki.ubuntu.ir/IntrepidUpgrades

     

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

    ۱۳۸۷/۰۸/۰۵ ۱:۰۴ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۸/۰۵ دسته بندی : ، ، ، 3

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

    این تنها مشکل ما نیست و در میان همه نرم افزارهایی که از SQL Server استفاده می کردند، این مشئله کاملا مشخص هست. تنها تفاوتی که در میان نرم افزارهای ایرانی و خارجی دیدم، قابلیت تنظیم نحوه نصب پایگاه داده در نرم افزارهای خارجی هست، در حالی که این امکان به طور کلی در نرم افزارهای ایرانی وجود ندارد و در چند مورد، حتی خود فرد باید پایگاه داده را نصب کند.

    این که ما نرم افزار نوشته شده رو به صورت بسته ارائه کنیم نیز یک طرف قضیه هست. این مدل ارائه نشان از قدرت کاری شرکت هست که می تونه تمامی قسمت های کار رو تا اماده سازی و نهایی کردن محصول به درستی انجام بده. زیاد وارد این بحث نمی شم ولی این رو هم بدونید که چنین چیزی در ایران رسم نیست. بسته های نرم افزاری که مشکل دارند و نرم افزارهای سفارشی به صورت حضوری نصب و تنظیم می شوند.

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

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

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

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

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

    SQL Server  و Oracle و MySQL
    من اینگونه در نظر می گیرم شما خواننده محترم با این پایگاه داده آشنا هستید و موارد استفاده را هم می دانید.

    Firebird
    این پایگاه داده با داشتن موتوری قدرتمند از اکثر استانداردهای SQL پشتیبانی می کند.
    مزیت های مهم: امکان استفاده از این پایگاه به عنوان یک پایگاه داده توکار و یا به عنوان یک سرور موجود هست. همچنین امکان استفاده از این پایگاه داده در چند سیستم عامل وجود دارد.
    عیب مهم: تنها مورد ذکر شده عدم پشتبانی از fulltext search هست. ابزارهای مدیریتی گرافیکی توسط خود تولید کننده ارائه نمی شود و باید از ابزارهای سایر شرکتها استفاده شود.

    PostgreSQL
    پایگاه داده PostgreSQL هم دارای موتور قدرمتندی است و همه استاندارند ها sql را پشتیبانی می کند.
    عیب نه چندان مهم: با توجه به اطلاعاتی که در سایت موجود بود به نظر می رسه که امکان استفاده مستقل از این پایگاه داده موجود نیست و حتما باید سرویس این پایگاه داده نصب باشد. همچنین امکان استفاده از این پایگاه داده در چند سیستم عامل وجود دارد.
    مزیت مهم: ابزارهای مدیرتی موجود در بسته این پایگاه داده کامل بوده و از تمامی امکانات پشتیبانی می کند.

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

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

    دسته بندی نرم افزارها و پایگاه داده های قایل استفاده
    در ادامه به بررسی که نرم افزارهای تولیدی در ایران می پردازم و پایگاه داده ای مناسب برای آنها

    دسته اول: نرم افزارهای سازمانی و بین سازمانی
    این گونه نرم افزارها چون با حجم داده ها و تراکنش های زیادی مواجه هستند، باید به دنبال پایگاه داده های بسیار قدرمتند باشند. در این زمینه به چز چند انتخاب شامل Oracle، SQL Server و شاید MySQL انتخاب دیگری وجود ندارد.
    در این دسته کار ها در اختیار تعدادی شرکت معدود قرار دارد و انها با توجه به نیروری کاری خود یکی از موارد فوق رو انتخاب می کنند.
    بحث نصب و نگهداری هم مستقیما توسط مجری انجام میشه و به همین علت به این دسته کاری نداریم.

    دسته دوم: نرم افزار های اداری/دفتری
    داده های دریافتی این گونه نرم افزارهای با توجه به نوع کار در حد متوسطی قرار دارد.
    نرم افزار باید بتواند به صورت شبکه در چند سیستم نصب شده و کار کند.
    در چنین مواردی انتخاب های فایل طرح Firebird و PostgreSQL و Blackfish و SQL Server و MySQL هستند.
    همانطور که مشخص هست در این دسته گزینه بیشتری برای انتخاب وجود دارد.
    بهترین گزینه برای نرم افزارهایی که دارای کاربران شبکه محدود هستند BlackFish و برای تعداد کاربران بیشتر  SQL Server است.

    دسته سوم: نرم افزارهای تک نفره
    داده های دریافتی این نرم افزارها در حد محدودی قرار دارد. نیازی نیست که نرم افزار به صورت تحت شبکه نیز کار کند.
    همانند دسته دوم پایگاه داده های قابل انتخاب زیاد هستند که باید به انها موارد SQLite و Access رو هم اضافه کرد.
    اگر وجود امکانات کامل برای پایگاه داده ضروری باشد BlackFish گزینه مناسبی هست در غیر اینصورت SQLlite می تواند گزینه خوبی باشد.

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

    لطفا پایگاه داده مورد استفاده خودتون رو به من در بخش نظر ها اعلام کنید.
    پایگاه داده خوبی داشته باشد!

    * مطالب مرتبط:
    SQLite پایگاه داده ای سبک و چابک

     

    ویژگیهای جدید در CSS 3 بخش دوم

    ۱۳۸۷/۰۷/۲۵ ۱:۴۹ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۷/۲۵ دسته بندی : ، ، ، ، 11

    این مقاله ادامه مقاله بخش اول هست که به بررسی ویژگی های جدید در CSS 3 می پردازیم.

    تعدادی از ویژگی ها با صورت لیست وار

    بخش اول
    • Selector ها - انتخاب کننده های عناصر
    • text-shadow - سایه در زیر متن
    • border-image - تصاویر برای حاشیه عناصر
    • border-radius - خمیده کردن حاشیه عناصر
    • box-shadow - سایه در زیر یک کادر
    • text-overflow - از محدوده خارج شدن متن
    • word-wrap - خط شکن در متون طولانی
    • resize - قابلیت تغییر اندازه کادر ها توسط کاربر
    • outline - خطوط پیرامون اشیا
    بخش دوم
    • @page - انتخابگرهای صفحه

    • multiple backgrounds - چندین زمینه برای اشیا

    • background-origin و background-clip - تعیین محدوده و موقعیت به صورت پیشرفته برای پس زمینه ها

    • Opacity - تعیین شفافیت یا آلفای یک شیئ

    • رنگهای HSL و HSLA و RGBA

    • Multi-column - چند سطونی کردن متون

    • Web fonts - فونت های سفارشی برای سایت

    • Speech - برای تعیین نحوه خواندن متون توسط نرم افزار

    توضیح پیرامون ویژگی های فوق در بخش دوم

    انتخابگر @page

    ویژگی که در CSS 3 تغییر زیادی کرده انتخابگر page@ هست. این نوع انتخابگر ها با نام media شناخته می شن و با کارکتر @ مشخص میشوند. چون این موارد هنوز تکمیل نشده است و احتمال تغییر در اونها خیلی زیاده در موردشون توضیح نمی دم اما برای اطلاعات بیشتر می تونید به اینجا مراجعه کنید: http://www.w3.org/TR/css3-mediaqueries

    انتخابگر مورد نظر من که خیلی جالب هست page@ هست. این انتخابگر یا selector این قدرت رو میده که به صفحه به صورت تکه تکه استیل تعیین کنید. نحوه کار این ویژگی اینطور هست که صفحه را به چندین قسمت تقسیم کرده و امکان تنظیم ویژگی های css رو به آنها میده. در تصویر زیر می بینید که صفحه به چندین قیمت تقسیم شده و سه قسمت از راست پر رنگ نشان داده شده اند:

    CSS3 Paged Media Margin Boxes

    به این کد توجه کنید
    @page {
    size: 8.5in 11in;
    margin: 10%;
    @right-top {
    content: "Hamlet";
    }
    @right-middle {
    content: "Page " counter(page);
    }
    @right-bottom {
    font-size: 14pt;
    }
    }

    در این کد ابتدا صفحه به عنوان یک مدیا در نظر گرفته میشه و سپس طول 8.5 اینچ و ارتفاع 11 اینج و مقدار margin 10 درصد از کل صفحه داده میشه. در انتخابگر بعدی قسمت بالا راست right-top از صفحه انتخاب شده و متن اون Hamlet قرار داده میشه. همونطور که میبینید امکان تعریف تو در توی انتخابگر های مدیا وجود داره. بخش های بعدی هم right-middle برای سمت راست وسط و right-bottom برای راست پایین هستند.

    قسمت هایی که قابل استفاده هستند و در شکل بالا با نقطه چین نمایش داده شد اند شامل موارد زیر هستند:
    top-left-corner, top-left, top-center, top-right, top-right-corner, left-top, left-middle, left-bottom, right-top, right-middle, right-bottom, bottom-left-corner, bottom-left, bottom-center, bottom-right, bottom-right-corner

    اطلاعات بیشتر: http://www.w3.org/TR/css3-page

    multiple backgrounds

    با استفاده از این ویژگی این امکان فراهم می شود که به جای تعیین یک پس زمینه چندین پس زمینه جداگانه تنظیم کنید.

    امکان تنظیم چندین پس زمینه برای من یک آرزو بود تا زمانی که این ویژگی رو تو CSS 3 دیدم. تصور اینکه چه قدرتی این ویژگی به شما خواهد دور از انتظار هست. پس برای اینکه گوشه ای از قدرت این ویژگی رو ببینید به تصویر زیر نگاه کنید:

    Multiple backgrounds


    در آدرس: http://www.css3.info/wp-content/uploads/2007/09/multiple-backgrounds-example.html

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

    تو این صفحه فقط به یک تگ div برای تنظیم زمینه پس زمینه داده شده است! در ضمن از هیچ تگ اضافه هم استفاده نشده است.
    background: url(body-top.gif) top left no-repeat,
    url(banner_fresco.jpg)  top 11px no-repeat,
    url(body-bottom.gif) bottom left no-repeat,
    url(body-middle.gif) left repeat-y;

    اطلاعات بیشتر: http://www.w3.org/TR/css3-background/#the-background-image

    background-origin

    این ویژگی موقعیت اعمال ویژگی موقعیت یا background-position را تحت تاثیر قرار میده و موقعیت کلی را تغییر می دهد.

    این ویژگی سه مقدار می گیرد که border، padding و content هستند. در صورت انتخاب padding موقعیت یا position با توجه گوشه بالایی سمت چپ ویژگی padding شیئ در نظر گرفته خواهد شد. در صورت انتخاب border موقعیت با توجه به گوشه بالایی سمت چپ ویژگی border شیئ در نظر گرفته خواهد شد و در صورت انتخاب content موقعیت با توجه به گوشه بالایی سمت چپ محتویات یا متن داخل شئ در نظر گرفته خواهد شد.

    برای دیدن نمونه به تصویر بعدی نگاه کنید.

    background-clip

    این ویزگی تعیین می کند اعمال ویژگیهای پس زمینه در قسمت حاشیه به چه صورت باشد. این ویژگی دو مقدار می گیرد که اولی border هست و تایین می کند اعمال پس زمینه فقط تا border ادامه داشته باشد. مقدار دوم padding هست که مشخص می کند که اعمال پس زمینه تا ناحیه Padding باشد.

    ویژگی های background-clip و background-origin در تصویر زیر مشخص شده اند.

    در تصویر زیر در سطر اول برای background-clip مقدار border و در سطر دوم مقدار padding انتخاب شده است.
    همچنین برای ویژگی background-clip ردیف اول اعمال مقدار border ردیف دوم padding و ردیف سوم content را نشان می دهد.

    background origin and clip

    اطلاعات بیشتر: http://www.w3.org/TR/2005/WD-css3-background-20050216

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

    رنگهای HSL و HSLA و RGBA
    امکان انتخاب رنگ ها را طیف رنگهای مختلف میدهد. در گذشته باید زنگها حتما در استاندارد RGB رنگ انتخاب میشد.

    برای مطالعه پیرامون Opacity و رنگها به این مقاله مراجعه کنید: A brief introduction to Opacity and RGBA

    Multi-column
    ویژگی جالب دیگری که اضافه شده امکان ستون بندی متون است. این ستون یندی به دو صورت قابل تعریف است؛ اولی با تعیین عرض برای هر ستون و دومی با تعریف تعداد ستون ها.
    در حال حاضر این ویژگی به طور غیر رسمی توسط مرورگرها FireFox و Safari پشتیبانی می شود.
    FireFox
    -moz-column-width: 13em;
    -moz-column-gap: 1em;

    Safari
    -webkit-column-width: 13em;
    -webkit-column-gap: 1em;

    توضیحات کامل: http://www.w3.org/TR/css3-multicol
    Web fonts

    امکان تغییر فونت های سایت به فونت هایی سفارشی را می دهد.

    تغییر دادن فونت های سایت به فوت سفارشی ویژگی کاملا جدیدی نیست و توسط IE 5 پشتیبانی شده بود. ولی به این علت که نوع فونتی که مورد استفاده قرار می گرفت (Embedded Open Type .eot) مورد استقبال سایر مرورگر ها قرار نگرفت؛ تا الان که به صورت استاندارد درآمده است.
    در حال حاظر امکان استفاده از فونت های TrueType .ttf و OpenType .otf باید توسط مرورگر ها فراهم شود. نکته ای که در اینجا مهم است لایسنس داشتن فونت ها است.
    اعمال فونت های سفارشی توسط ویژگی @font-face فراهم شده است.
    @font-face {
    font-family: Delicious;
    src: url('Delicious-Roman.otf');
    }

    جالب است بدانید که یکی از دلایل عقب افتادن عرضه FireFox 3.1 پیاده سازی این ویژگی است.

    نمونه اعمال شده: http://www.css3.info/preview/web-fonts-with-font-face
    توضیحات کامل: http://www.w3.org/TR/css3-webfonts/#font-descriptions

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

    توضیحات کامل: http://www.w3.org/TR/css3-speech


     

    شعری از کریمی - شاعر آذربایجان

    ۱۳۸۷/۰۷/۱۸ ۲۰:۳۴ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۷/۱۸ دسته بندی : ، ، 7

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

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

    Sağlığımda məni yad et əxəvi,
    Mən öləndən sonra cırma yəxəvi.
    Sağlığımda məni dindir dilinən,
    Gəlmə tarhimimə tac-o-gülünən.
    Sağlığımda əlivi cək başıma,
    Yaxma burnun zılığın baş daşıma.

    Ta varam üzmə əlimdən əlivi,
    Nə qara gey nə uzat səqqəlivi.
    Qoy yanım mən sənə, səndə mənə yan,
    Sən mənə can de, deyim mən sənə can.

    Sallama qəbrimə şalvar bağıvı,
    Dayama bövrümə sik daşşağıvı!
    Dilim olsaydı bozardım tağıvı,
    Əlim olsaydı kəsərdim ağıvı.

    Sağlığımda qoluyun boynuma sal,
    Gah gahi busunan göylümü al.
    Heç gəlib qəbrimə yad etmə məni,
    Başıma çalma qələt fatihəni!
    Qalama şəm'ilə tonqal götümə.
    Ölmüşəm yaxmamışam bal götümə.

    Kaş gorkan qoya qəbrimdə dəlik,
    Mənilə dəfn ola bir canlı cəlik.
    O adamlar ki gəlir fatihəyə,
    Sağlığımda mənə çıxmazdı diyə,
    Uzadaydım kəfən altdan çəliyi,
    Zor verəydim gənələrdi dəliyi!

    Baba sağlıxda mənim gül üzümə,
    Müştəri ol sözümə həm özümə.
    Məni təşviq elə xəl'ətlər ela,
    Göylümü şad elə də'vətlər elə.

    El gərək qiyməte əş'arı bilə,
    Niyə İranda gərək şair ölə?
    Sənəte şe'ri çəkiblər fəsada,
    Düşdü bazare fəsahət kəsada.

    Bir qəzəl li gəlir eşqiylə başa,
    Kim alır bir qəzəli bir lavaşa?

    Sə'di, Hafez, Baba Tahir, Xəyyam,
    Səhərin etdi nahar, naharsız axşam.
    Geymədi əyninə qiymətli qəba,
    Salmadı çiyninə bir tazə əba.

    Şəhryarın adı dillərdə gəzir,
    Təzə Heydər Baba əllərdə gəzir.
    Bir kiçik evdə günün verdi başa,
    Qaldı bir manqalı, bir hoqqa maşa.

    Ey xuda ver bizə bir əql o şu'ur,
    Şairi eyləmiəx zində be gur!

    برگرفته از وبلاگ دوست خوبم علی

     

    ویژگیهای جدید در CSS 3 بخش اول

    ۱۳۸۷/۰۷/۱۴ ۱۴:۵۰ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۷/۱۴ دسته بندی : ، ، ، ، 7

    در این مقاله کوتاه می خوام که شما رو با تعدادی از ویژگی های استاندارد CSS 3 آشنا کنم.

    کار بر روی استاندارد CSS 3 از سال 2002 شروع شد، یعنی نزدیک به یک سال از زمانی که پرونده CSS 2.1 بسته شد. کار بر روی این استاندارد هنوز به پایان نردسیده و شاید تا یک یا دو سال آینده هم به طول بکشه ولی با این حال بسیاری از موارد این استاندارد تکمیل شده است.
    نکته ای که در این وسط خیلی مهمه پشتیبانی مرورگر ها از این استاندارده. متاسفانه چون خیلی از موارد به موقع آماده نشده اند پشتیبانی کاملی توسط مرورگر های قدیمی از آنها نمی شود، پس برای آزمایش و مشاهد مواردی که در ادامه مطرح خواهد شد باید آخرین نسخه و یا حتی نسخه آزمایشی را دریافت کنید.

    در حال حاظر مرورگر FireFox 3.1 نسخه آزمایشی و Opera 9.5 و Safari نسخه آزمایشی بسیاری از موارد زیر را پشتیبانی می کنند. متاسفانه IE در زمینه خیلی ضعیف عمل کرده و آخرین نسخه آن یعنی IE 8 beta 2 پشتیبانی کاملی از موارد زیر ندارد.

    تعدادی از ویژگی ها با صورت لیست وار

    بخش اول

    • Selector ها - انتخاب کننده های عناصر

    • text-shadow - سایه در زیر متن

    • border-image - تصاویر برای حاشیه عناصر

    • border-radius - خمیده کردن حاشیه عناصر

    • box-shadow - سایه در زیر یک کادر

    • text-overflow - از محدوده خارج شدن متن

    • word-wrap - خط شکن در متون طولانی

    • resize - قابلیت تغییر اندازه کادر ها توسط کاربر

    • outline - خطوط پیرامون اشیا


    بخش دوم

    • @page - انتخابگرهای صفحه

    • multiple backgrounds - چندین زمینه برای اشیا

    • background-origin و background-clip - تعیین محدوده و موقعیت به صورت پیشرفته برای پس زمینه ها

    • Opacity - تعیین شفافیت یا آلفای یک شیئ

    • رنگهای HSL و HSLA و RGBA

    • Multi-column - چند سطونی کردن متون

    • Web fonts - فونت های سفارشی برای سایت

    • Speech - برای تعیین نحوه خواندن متون توسط نرم افزار


    توضیح پیرامون ویژگی های فوق

    Selector ها
    یکی از مهمترین بخش های CSS انتخابگر ها هستند که برای انتخاب عناصر در صفحه مورد استفاده قرار می گیرند. برای گسترش توانایی ها، چند ویژگی جدید در نسخه 3 به CSS اضافه شده که به صورت خلاصه توضیح میدم.
    انتخاب کننده [att^=val]
    در این حالت عناصری انتخاب خواهد شد که مقدار ویژگی att آن با val شروع شده باشد. برای مثال

    a[title^="ho"] {background: green;}



    که مشخص می کند لینک هایی که مقادیر title انها با حرف ho شروع شده باشد رنگ سبز رو به عنوان پس زمینه بدهد.

    انتخاب کننده [att$=val]
    در این حالت عناصری انتخاب خواهد شد که مقدار ویژگی att آن با val پیان پذیرفته باشد. برای مثال

    a[title$="t"] {background: green;}



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

    انتخاب کننده [att*=val]
    در این حالت عناصری انتخاب خواهد شد که در ویژگی att آن مقدار val یافت شود. برای مثال

    a[title*="ont"] {background: green;}



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

    تست این موارد بر روی FireFox 3.1 و Opera 9.5 به خوبی کار کردند ولی IE 8 بدترین نمره را کسب کرد. برای تست این که مرورگر شما کدامیک از انتخاب گر ها را پشتیبانی می کنه از لینک زیر استفاده کنید: http://www.css3.info/selectors-test


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

    text-shadow
    برای ایجاد سایه در زیر متون مورد استفاده است. یکی دیگر از ویژگیهای جالب که با ترکیب آنها می توان سایت های جذاب را خلق کرد.

    تصویر زیر را مشاهده کنید که از ترکیب چندین سایه تشکیل شده است. کد این تصویر:

    multiple-shadows

    text-shadow:0 0 4px white, 0 -5px 4px #FFFF33, 2px -10px 6px #FFDD33, -2px -15px 11px #FF8800, 2px -25px 18px #FF2200;

    توضیحات کامل: http://www.w3.org/TR/2003/CR-css3-text-20030514/#text-shadows

     

    خواندن مطالب دیگر »

    عید فطر مبارک

    ۱۳۸۷/۰۷/۱۱ ۳:۰۱ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۷/۱۱ دسته بندی : ، ، 1

     

    کشتار شبانه

    ۱۳۸۷/۰۷/۰۵ ۱۶:۲۶ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۷/۰۵ دسته بندی : ، ، 2

    کشتار شبانه

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

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

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

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

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

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

    پایان!

    پس و پیش نوشت ها:
    *- نصفه شبی رفته بودم آب بخورم که متوجه رفت و آمد سوسک ها شدم.
    *- اون شب برق ها رفته بود.
    *- اسلحه من دمپایی بود.
    *- تیر هوایی= دمپایی ها رو به هم زدم.

    حالا که اصل قضیه براتون مشخص شد داستان را دوباره بخونید.

     

    ساخت ویروس در عرض چند ثانیه

    ۱۳۸۷/۰۷/۰۱ ۱۴:۱۰ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۷/۰۱ دسته بندی : ، 5

    Virus

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

    فقط کافیه که یک خط کد زیر رو در جایی که می گم بنویسید تا برنامه به صورت پی در پی اجرا بشه و طرف مقابل کلافه بشه. در ضمن این کد فقط برای زبان های دات نتی یعنی C# و VB.NET و ... کار می کنه.

    برای انجام این کار در پروژه C# خودتون فایل Program.cs و در پروژه VB.NET خودتون فایل Program.vb رو باز کنید و در ابتدای تابع Main کد زیر رو بنویسید:

    Application.Restart()



    این کار رو می تونید رو سیستم همکارتون انجام بدین و منتظر بمونین که برنامه رو اجرا کنه. توصیه می کنم از این لحظه فیلم تهیه کنید و به سایت youtube هم اضافه کنید. :twisted:

    راز این موضوع در تایع Application.Restart نهفته است. این تابع باعث ریستارت شدن برنامه میشه. به این صورت که یک برنامه موقت و کوچک در دایرکتوری temp در سیستم ایجاد میکنه و سپس برنامه اصلی رو می بنده، بعد از بسته شدن برنامه، فایل اجرایی ایجاد شده در temp برنامه ما رو دوباره اجرا می کنه و سپس پاک میشه. در کد بالا چون ما کد رو در ابتدای برنامه نوشتیم پس برنامه در همان ابتدای اجرا ریستارت خواهد شد و این روند ادامه خواهد داشت تا زمانی که سیستم پر از این برنامه خواهد شد.

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

    Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","Hello",System.Windows.Forms.Application.ExecutablePath)



    این کد رو قبل از تابع Restart بنویسید و نتیجه رو مشاهده کنید. برای اینکه از شر این روش هم خلاص بشید، راه سادش رفتن در حالت Safe Mode و حذف کردن کلیدی که آدرسش در کد بالا هست.

    در پایان بهتره که این کار رو تو اوقات فراغت و برای شوخی با همکاران یا دوستانتون انجام بدین. در ضمن این روش قبلا توسط من روی همکاران و توسط همکاران روی من امتحان شده و 100% جواب داده و موجب شاده و خنده بسیار شده است.

    خوش باشین

     

    ابزار Reflector به شرکت RedGate واگذار شد

    ۱۳۸۷/۰۶/۲۹ ۲:۱۵ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۲۹ دسته بندی : ، 1

    Reflector

    اخیرا ابزار Reflector به شرکت Reg Gate واگذار شد. این ابزار برای Decompile کردن کد های  dotNET مورد استفاده است و شاید تعداد کمی از دات نت کارها آن رو نشناسند. ابزاری قدرتمند و سریع برای جستجو ، پیمایش و آنالیز کدهای دیکامپایل شده.

    نویسنده Reflector که Lutz Roeder نام دارد، در شرکت Microsoft کار می کند و یکی از اعضای اصلی تیم پیاده سازی  Expression Blend می باشد. Lutz Roeder قبول کرد که این ابزار رو به طور کامل به شرکت Red Gate واگذار کند. طبق گفته این شرکت این ابزار در آینده نیز به طور رایگان عرضه خواهد شد. برای اطلاعات بیشتر در مورد آینده این ابزار اینجا را مطالعه کنید.

    صفحه Relector در سایت شرکت Red Gate

    دانلود Reflector

     

    سایت خود را قیمت گذاری کنید

    ۱۳۸۷/۰۶/۲۳ ۱۹:۱۷ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۲۳ دسته بندی : ، 6

    dnScoop Logo

    با استفاده از سایت dnScoop میتونید قیمت سایت خودتون رو مشخص کنید. در این آدرس: www.dnscoop.com

    این سایت با بررسی چندین فاکتور اقدام به ارزش گذاری و در نهایت با بررسی این موارد اقدام به قیمت گداری می کنه. این فاکتور ها شامل این موارد هستند:

    1. قدمت دامین سایت شما. نام دامین شما هر چه قدیمی تر باشه قیمت بیشتری خواهد داشت.

    2. رنکینگ گوگل. هر چه Pagerank که گوگل به سایت شما می دهد زیاد باشد بر قیمت تاثیر مثبتی خواهد داشت.

    3. تعداد لینک های داده شده به سایت. این مورد هم تاثیر مثیت داره.

    4. ترافیک روزانه و رنکینگ مشخص شده توسط سایت Alexa

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

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


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

    برای مثال برای سایت برنامه نویس مبلغ پیشنهادی 8,260 دلار بود که به نظرم کمه! در مقابل به سایت codeproject.com مبلغ 1,686,400 دلار قیمت گذاری کرد.

    همچنین می تونید لینک قیمت داده شده رو هم به سایت خودتون اضافه کنید.

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

     

    SQLite پایگاه داده ای سبک و چابک

    ۱۳۸۷/۰۶/۱۸ ۲۳:۰۱ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۱۸ دسته بندی : ، ، 5

    SQLite Logo
    SQLite یک پایگاه داده کوچک (حجمی در حدود 500 KB) که به زبان C در قالب یک کتابخانه (Library) نوشته شده است و از پایگاه داده های RDBMS به حساب می آید. این پایگاه داده بدون لیسانس (Public Domain) ، آزاد و open source منتشر می شود.
    • بررسی ویژگیها
    برخلاف پایگاه داده های client-server پایگاه داده ی SQLite به عنوان یک پروسه مجزا عمل نمی کند. بلکه به عنوان کتابخانه ای عمل می کند که همراه برنامه انتشار یافته و امکان دسترسی به دیتا را به برنامه می دهد و همانند بخشی از آن عمل می کند.
    برنامه می بایست از طریق توابع فراهم شده اقدام به فراخوانی و دسترسی به دیتا نمایند که این نحوه فراخوانی باعث بهینه تر و سریعتر در دسترس قرار گرفتن نتایج خواهد شد. این روش از درخواست به سرویس های دیگر جهت دریافت اطلاعات که سایر پایگاه داده های از آن استفاده می کنند برای داده های کم حجم و پایگاه داده کوچک، بهینه تر است.

    تمامی اطلاعات این بانک اطلاعاتی (شامل جداول، تعریفات، دیتا و غیره) در یک فایل که برای تمامی سیستم عامل ها یکسان است ذخیره می شود. این روش یکی از دلایل موفقیت این پایگاه داده به شمار می آید.
    SQLite با توجه به نوع ساختاری که دارد تعدادی از ویژگی های استاندارد که در SQL-92 به تصویب رسیده را پشتیبانی نمی کند. شاید بزرگترین این موارد عدم پشتیبانی از توابع و stored procedure ها باشد. سایر موارد استاندارد SQL پیاده سازی شده و در دسترس هستند.
    موارد قابل استفاده در این پایگاه داده را می توان trigger ها، View ها و Query های پیچیده نام برد.

    یکی از موارد جالب در پیاده سازی SQLite نحوه اعمال نوع داده ها به فیلدها (Columns) است. در این پایگاه داده به جای اختصاص دادن نوع به فیلد مورد نظر که در اکثر پایگاه داده های معتبر از این روش استفاده می شود، فقط نوع به مقدار (value) داده شده اختصاص داده می شود. برای مثال اگر نوع فیلدی Integer تعریف شده باشد و کاربر قصد وارد کردن داده ای از نوع رشته را داشته باشد، موتور پایگاه داده ابتدا سعی خواهد کرد که داده را به نوع Integer تبدیل کند. این باعث افزایش انعطاف پذیری نوع داده های فیلدها می شود. مخصوصا وقتی که نیاز به عمل bind در سایر زبانها به صورت دینامیک مورد نیاز باشد.

    • شیوه مدیریت دسترسی ها
    چندین پروسه یا thread می تواند به صورت همزمان به یک پایگاه داده بدون مشکل دسترسی داشته باشد و از آن اطلاعات دریافت نمایند. ولی برای نوشتن اطلاعات فقط یک پروسه امکان دسترسی خواهد داشت. سایر پروسه ها باید منتظر بمانند و یا اینکه با خطا مواجه خواهند شد.

    • ابزارهای توسعه
    یکی از مهمترین مزیت های این پایگاه داده امکان استفاده آن در اکثر زبانهای برنامه نویسی است. برنامه های دسترسی به این پایگاه داده در اکثر زبانها نوشته شده است و در دسترس است. برای مشاهده ابزارهای دسترسی به این ادرس مراجعه کنید: http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers
    مهمترین کتابخانه های رابط برای استفاده از SQLite
    dotNET Framework: http://sqlite.phxsoftware.com/
    dotNET Framework: http://www.mono-project.com/SQLite
    Delphi: http://www.aducom.com/
    Delpi: http://wikitaxi.org/delphi/doku.php/products/sqlite3/index
    C++: http://www.sqliteplus.com/
    Java: http://www.ch-werner.de/javasqlite
    PHP: SQLite is bundled with PHP 5. http://www.php.net/
    Python: http://pysqlite.org/

    برای طراحی و ایجاد پایگاه داده SQLite می توانید از ابزارهای زیر استفاده کنید:
    SQLite Manager: یک extension برای مرورگر فایرفاکس که با به سادگی امکان دسترسی به تمامی امکانات SQLite رو فراهم می کند. لینک: https://addons.mozilla.org/en-US/firefox/addon/5817
    SQLite مورد مقبولیت فراوانی برای استفاده به عنوان یک دیتابیس Embeded قرار گرفته و در پروژه های زیر مورد استفاده قرار گرفته است:

    • FireFox - این مرورگر برای ذخیره اطلاعات خود از SQLite استفاده می کند.

    • Mac OS X - سیستم عامل شرکت Apple به صورت داخلی از SQLite به عنوان یک پایگاه داده استاندارد استفاده می کند.

    • Skype - این نرم افزار چت و گفت و گوی آنلاین که با مقبولیت خوبی روبروست از SQLite استفاده می کند.

    • Symbian - سیستم عامل گوشی های موبایل در نسخه های جدید خود از این پایگاه داده به صورت توکار استفاده می کند.

    • Android - سیستم عامل جدید گوگل برای موبایل

    • iPhone و iPod touch : در این دو دستگاه محصول Apple از این پایگاه داده استفاده شده است.

    • Google Gears - ابزار گوگل برای نوشتن برنامه های تحت وب با استفاده از تکنولوژی های مختلف روز.
    • معایب
    در طی آزمایشات گوناگونی که انجام گرفته سرعت این پایگاه داده در مقابله با حجم اطلاعات زیاد مقداری بیش از حد معمول پایین می آید.
    عدم امنیت. در این پایگاه داده هیچ روش خاصی برای حفظ امنیت داده های در نظر گرفته نشده است و این مورد می تواند برای ذخیره داده های حساس مشکل ساز شود.
    • سخن آخر
    پایگاه داده SQLite یک ابزار کوچک سریع و مطمئن است که برای مقاصد خاص نوشته شده است. از این پایگاه داده می توانید برای سیستم های Embeded استفاده کنید. یا برای نزم افزار های کوچک و تک کاربره خود تا خود را از شر مشکلات انتشار پایگاه داده های بزرگ همراه نرم افزار خود دور بمانید.
    همچنین این یک گزینه فوق العاده برای کسانی است که از access صرفا برای پایگاه داده خود استفاده می کنند.
    • منابع مفید
    سایت اصلی: http://www.sqlite.org
    دانلود نسخه اصلی: http://www.sqlite.org/download.html
    ویژگی های حذف شده از SQL استاندارد: http://www.sqlite.org/omitted.html
    ویژگی های پیاده سازی شده: http://www.sqlite.org/lang.html

     

    زیر میزی

    ۱۳۸۷/۰۶/۱۷ ۲۳:۳۷ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۱۷ دسته بندی : ، ، 2

    به نظر شما چه فرایندی زیر میز اتفاق میافته یا چه چیز و چیزهایی رد بدل میشه که پشت میزی ها اینتقدر به اون علاقه دارند؟؟

    این سوال مدتیه ذهن منو به خودش مشغول کرده و خوشحال میشم من رو راهنمایی کنید.

     

    Don't Send فارسی از Visual Studio

    ۱۳۸۷/۰۶/۱۵ ۲۱:۳۴ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۱۵ دسته بندی : ، ، 1

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

    در حال بررسی یه خطای منطقی بودم که خیلی اذیتم کرد و معلوم نبود از کجاست. به خاطر همین مجبور بودم که مرتب به حالت debug سوئیچ کنم. نمی دونم چی شد که در بعضی موارد باعث ایجاد خطا تو visual studio شد و سرور وب داخلی اون یعنن WebDav به هم ریخت و پیغام خطا داد.

    تا اینجا که همه چی به نظر عادی می رسید که دیدم پیغام خطا که همون don't send معروف بود به فارسی نمایش داده شد.

    تصویر زیر رو ببینید:

    پیغام خطای فارسی WebDav

    این هم تصویری از سایر اطلاعات خطا هست که البته اینها هم به فارسی هستند:

    پیغام خطای فارسی WebDav

    ماجرا به اینجا ختم نشد و مدتی بعد که خود visual studio هم دچار مشکل شد. خطای اون هم فارسی بود:

    پیغام خطای فارسی VisualStudio 2005

    جالب قضیه اینجاست که چرا باید اینچنین پیغام اعصاب خورد کنی فارسی باشه!

    این رو هم بدونین که پیغام خطای نمایش داده شده توسط برنامه DW20.exe نمایش داده میشه و زبان نمایش توسط این برنامه تایین میشه.

    من علت این موارد رو نصب پکیج فارسی سازی مجموعه office می دونم. البته این پکیج رو فقط برای غلط گیر فارسی اون نصب کرده بودم، که البته می تونه همون برنامه DW20 رو هم تحت تاثیر قرار داده باشه. متاسفانه در اون زمان که این اشکالات پیش اومد وقت رسیدگی به موضوع رو نداشتم ببینم علت چیه و مسائله حل نشده باقی موند.

    شاید ندونید ولی visual studio تمامی تنظیمات زبان خوش رو از ویندوز می گیره. یعنی اگر زبان ویندوز خودتون را در هنگام نصب یا از طریق control panel رو فارسی تنظیم شده باشه و اگر نسخه فارسی از visual studio نصب می بود مطمئنن به طور خودکار محیط برنامه رو فارسی نشون می داد.

     

    Google Chrome مرورگر جدید از گوگل

    ۱۳۸۷/۰۶/۱۲ ۲۲:۵۲ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۱۲ دسته بندی : ، ، 12

    به تازگی گوگل مرورگر وب خودش رو معرفی کرده. این مرورگر که با نام Chrome شناخته می شه و بزودی منتشر خواهد شد.

    Google Chrome

    این مرورگر مقداری جنجال مبنی بر به چالش کشیدن Microsoft به وجود آورده و پیش بینی میشه که بتونه سهم خوبی از بازار مرورگر های وب بدست بیاره.

    ولی من اینطوری فکر نمی کنم. مطمئنا می تونه این مرور گر موفق بشه ولی این مرورگر باعث کاهش استفاده کنندگان از firefox خواهد شد. علت این موضوع به خاطر این است که اکثر افرادی که از firefox استفاده می کنند افرادی متخصص یا دارای دانش و تخصص هستند و مسلما این مرور گر جدید آنها را جذب خواهد کرد. اما کاربران عادی ویندوز و IE که سهم زیادی از مرورگر ها رو به خودشون اختصاص دادن زحمت نصب این نرم افزار رو به خودشون نخواهند داد. چون اگر قرار بود این کار را بکنند قبلا با firefox انجام می دادند.

    مرورگر گوگل open source خواهد بود. جالبه بدونید که موتور درونی این نر م افزار WebKit خواهد یود. WebKit همان موتور استفاده شده در مرورگر معروف Safari کمپانی Apple هست.

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

    Google Chrome Tabs

    این مرورگر صفحه پیش فرض خود را speed dial قرار داده است مانند آنچه که در Opera وجود داره:

    chrome speed dial

    ستاره کنار نوار آدرس این امکان می دهد که به سرعت آدرس را به لیست علاقه مندی های خود اضافه کنید، همانند firefox:

    chrome fast bookmark

    نوار آدرس هوشمند برای کلمات تایپ شده و یافتن گزینه مناسب. همانند firefox 3 و IE8:

    chrome address bar

    این مرور گر از موتور JavaScript با نام V8 استفاده می کنه که به گفته آنها برای بهینه سازی سرعت اجرای کد های جاوا اسکریپت طراحی شده است. این موتور هم به صورت open source در دسترس همه قرار داره و امکان استفاده آن در سایر مرورگر ها هم وجود هست.

    همچنین این مرورگر یک حالت امنیتی ویژه خواهد داشت که به کاربر اجازه می دهد در صفحات وب گردش را انجام بدهد بدون اینکه هیچ ردی از آن در کامپیوتر باقی بماند. در حقیقیت هیچ log از کارهای وی گرفته نخواهد شد. این امکان با نام incognito شناخته می شه.

    پ.ن: این مرورگر برای دانلود در لینک زیر آماده شد: http://www.google.com/chrome
    پ.ن2: دریافت این مرورگر برای ایرانی ها بسته هست و برای دریافت آن باید از پراکسی استفاده کنید.

    لینک دانلود بدون محدودیت برای ایرانی ها: http://rapidshare.com/files/142129854/chrome_installer.exe

     

    طراحي پيشرفته FireFox

    ۱۳۸۷/۰۶/۱۱ ۱۱:۵۲ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۱۱ دسته بندی : ، ، ، 1



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

    اين مورد رو به طور اتفاقي وقتي که داشتم تو لیست موارد about:config نگاه مي کردم پيدا کردم و خيلي جالبه.

    مرورگر Firefox خودتون رو باز کنيد و در آدرس بار مقدار زير رو وارد کنيد:

    chrome://browser/content/browser.xul



    در کمال تعجب خواهيد ديد که يک محيط فايرفاکس جديد در Tab نمايش داده خواهد شد.

    توضيح اين مطلب:
    آدرس chrome رو که به عنوان نام پروتوکل در آدرس بار وارد شد به فايرفاکس اعلام ميکنه اين يک فايل منبع داخلي براي فايرفاکس است و داده ها بايد از منابع داخلي خوانده شود.
    در مورد مذکور فايل browser.xul در داخل فايل منبع browser.jar در در پوشه chrome همراه فايرفاکس قرار داره. اين فايل شامل تمام موارد مورد نياز براي طراحي ظاهر فايرفاکس مورد استفاده است.
    با استفاده از برنامه WinAce مي تونيد فايل browser.jar را از حالت فشرده خارج کنيد و ويرايش مورد نظر را انجام داده و مجددا با WinAce عمل فشرده سازي با فرمت JAR رو انجام بديد.

    اما توضيح فايل browser.xul:
    اين يک فايل XUL است که مخفف XML User-Interface Language استاندارد طراحي ظاهر براي چندين سيستم عامل است که توسط Mozilla ايجاد شده است. و از ويژگي هاي پيشرفته اي که در FireFox و مرورگر Mozilla در اون استفاده شده است و باعث انعطاف پذيري باور نکردني و قابليت حمل فراوان اون شده است. راز اجرا شدن فایرفاکس در چندین سیستم عامل هم تو همین XUL هست. تنها چیزی که لازم خواهد بود مفسر برای اجرا در هر سیستم عامل هست. اطلاعات بيشتر در مورد XUL در اينجا: http://www.xulplanet.com

    نتيجتا وقتي ما آدرس chrome://browser/content در مرورگر فايرفاکس وارد مي کنيم از نظر فاير فاکس اين يک روند عادي به شما ميره.
    و نتيجه نهايي اينکه تمام فرمهاي FireFox نوعي Browser هستند با اين تفاوت که امکانات استاندارد مرورگر نمایش داده نمی شوند و حذف شده اند.

    در تصوير بالا چندين محيط FireFox رو در تو در تو وارد کردم ميتونيد ببينيد. (به تعداد خطاهاي Javascript توجه کنيد که البته طبيعيه)

    همه اينها مزيد بر علت شد تا پيش از پيش FireFox را به خاطر طراحي کم نظيرش دوست بدارم.
    ساير نمونه هايي که ميتونيد امتحان کنيد:

    Firefox: chrome://browser/content
    Page info: chrome://browser/content/pageinfo/pageInfo.xul
    preferences: chrome://browser/content/preferences/content.xul
    Manage search engine: chrome://browser/content/search/engineManager.xul
    Print page setup: chrome://global/content/printPageSetup.xul

    و نکته اي که يادم رفت بگم و جالبتر هم هست اينکه تمامي عمليات با استفاده از JavaScript انجام ميشه:
    مثلا عمل جستجو:

    chrome://browser/content/search/engineManager.js

     

    به یاد زمستان

    ۱۳۸۷/۰۶/۰۱ ۲۰:۲۸ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۶/۰۱ دسته بندی : ، 1

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

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

    به هر حال این شد که به یاد زمستون افتادم. البته زمستون هم مشکلات خودش رو تو ایران(!) داره.

    این عکس رو وقتی که می خواستم اول صبح به محل کارم برم گرفتم:

    به یاد زمستان

     

    SQL Server 2008

    ۱۳۸۷/۰۵/۲۷ ۱۱:۱۵ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۵/۲۷ دسته بندی : ، 1

    SQL Server 2008 هم در حالی بیرون اومد که هنوز سه سال از ورژن قبلی sql server 2005 فاصله گرفتیم و با این حال هنوز نتونسته به درستی جای خودشو باز کنه. من خیلی جاها و به خصوص هاستینگ های وب رو دیدم که هنوز از sql server 2005 پشتیبانی نمی کنند. شاید این ترس مربوط به تنکنولوژی های جدیدی هست که معرفی شدند! پس معلوم نیست که کی از 2008 پشتیبانی بکنند. می تونید ویژگی های جدید رو از اینجا بخونید.

    مهمترین ارتقاء یا نکته ای که برای برنامه نویسها هست، یک provider جدید برای LINQ جهت کار مستقیم با SQLServer هست.

    چیز جدیدی که برای من جالب بود و به زبان TSQL تو این ورژن اضافه شده و البته نتونستم مثال عملی ازش پیدا کنم دستور MERGE هست. همانطوری که ماکروسافت گفته با استفاده از این query ها می شه قبل از این که دیتا در دیتابیس ذخیره بشه وجود اون رو بررسی کرد. این کار با استفاده از تغییراتی در دستور INSERT انجام می شه.

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

    درنهایت ماکروسافت اعلام کرده که کارایی sql server 2008 تا 35 درصد بهبود پیدا کرده! البته صحت این ادعا در مرور زمان مشخص خواهد شد.

    همچنین Visual Studio 2008 SP81 همراه با dotNET 3.5 SP1 هم چند روزی می شه که منتشر شده. در این مورد هم به اینجا مراحعه کنید.

    برای مطالعه ویژگی جدید ADO.NET یعنی ADO.NET Entity Framework به اینجا مراجعه کنید.

     

    کار نرم افزاری یا رابطه نرم افزاری (راز بقا)

    ۱۳۸۷/۰۵/۲۳ ۱:۰۷ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۵/۲۳ دسته بندی : ، 2

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

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

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

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

    و این است راز بقا!!

     

    قطعی برق، گرما و کار

    ۱۳۸۷/۰۵/۱۶ ۱۸:۴۲ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۵/۱۶ دسته بندی : ، 1

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

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

    خلاصه اینکه موندیم تو این گرما با قطعی برق و بیکاری!!!

     

    این هم از وبلاگ جدید

    ۱۳۸۷/۰۵/۱۵ ۲۳:۰۹ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۷/۰۵/۱۵ دسته بندی : 0

    سلام

    این هم از وبلاگ جدیدم. برای نوشتن جایی لازم بود تا بتونم بالاخره بنویسم.

    نوشته های من بیشتر پیرامون مسائل اطراف خودم خواهد بود. صد البته چون من از اهالی نرم افزار هستم به این مسائل نیز خواهم پرداخت. حالا ببینیم چی پیش میاد.

    فعلا