افزایش کارایی فرم ها با بهره گیری از پیام های خود کار

در این خود آموز نحوه اضافه کردن پیام های خود کار به فیلد های یک فرم آموزش داده میشه. با استفاده از این تکنیک هنگامی که کاربر یک فیلد رو انتخاب کنه یک پیام حبابی با جلوه FadeIn ( ظاهر شدن) نمایان میشه و موقعی هم که تمرکز از فیلد مورد نظر گرفته بشه با جلوه FadeOut غیب میشه.

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

مرحله 1 : ضمیمه کردن کتابخانه های Scriptaculous

ابتدا یک فایل خالی html ( مثلا index.html ) رو ایجاد کنید و در قسمت Head اون کد زیر رو قرار بدین:

<script src=“scriptaculous/lib/prototype.js” type=“text/javascript”></script>

<script src=“scriptaculous/src/scriptaculous.js” type=“text/javascript”></script>
مرحله 2 : کد HTML
در این مرحله یک فیلد متنی به عنوان نمونه جهت جستجو یکی جهت ایمیل و یک فیلد مخفی دیگه با شناسه msgstatus در بدنه فایل HTML قرار میدیم. کار این فیلد مخفی نگه داشتن وضعیت نمایش کادر پیام هست.

<input type=“text” name=“name” id=name onfocus=javascript:showMsg(1)/>
<input id=“msgstatus” type=“hidden” value=“0” />
<div class=”msg” id=msg1 style=“display:none;”>
…some html code here…
<a href=“#” onClick=javascript:hideMsg(1)> Close </a>
<div/>

<input type=“text” name=“email” id=email onfocus=javascript:showMsg(2)/>
<input id=“msgstatus” type=“hidden” value=“0” />
<div class=”msg” id=msg2 style=“display:none;”>
…some html code here…
<a href=“#” onClick=javascript:hideMsg(2)> Close </a>
<div/>

توجه کنید که در قطعه کد بالا از تگ div برای نمایش کادر پیام استفاده میشه. حالا اگر نیاز داشته باشید که تعداد فیلد های بیشتری بسازین و برای هر کدوم هم یه کادر پیام مجزا بذارین باید قسمت ID هر تگ div رو به صورت افزایشی نامگذاری کنید. مثلا msg3 ، msg4 . از طرف دیگه باید شماره هر کادر رو هم با تابع showMsg اعلام کنید.

مرحله 3 : توابع Javascript

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

<script language=“javascript”>
function showMsg(idElement){
idEl= idElement;
statusMenu = document.getElementById(‘msgstatus’);
if(statusMenu.value==0){
statusMenu.value=1;
Effect.toggle(‘msg’+idEl, ‘appear’); return false;
}
}
function hideMsg(idElement){
idEl= idElement;
statusMenu = document.getElementById(‘msgstatus’);
if(statusMenu.value==1){
statusMenu.value=0;
Effect.toggle(‘msg’+idEl, ‘appear’); return false;
}
}
</script>
تمام شد! تبریک میگم به همین سادگی شما تونستید کارایی و قابلیت فرم های خودتون رو بالا ببرید و تجربه دلچسب تری رو برای کاربر نهایی رغم بزنید.

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

دیتا سنترهای گوگل کجا هستند؟

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

در حال حاضر گوگل مالک 36 دیتا سنتر در سراسر دنیا هست که اکثر اون ها مطابق شکل در کشور امریکا قرار دارند که تعدادشون به 19 عدد میرسه که البته بر طبق شواهد در آینده نزدیک بیشتر هم خواهند شد. 12 تای دیگه از اون ها در اروپای غربی قرار دارند و سهم آسیا هم از این تعداد تنها 3 عدد هست. 2 تای باقی مونده هم یکیش تو روسیه هست و دیگری در آمریکای جنوبی و در کشور برزیل.

با استفاده از نقشه های سایت http://www.wayfaring.com

دیتا سنترهای گوگل کجا هستند؟ بیشتر بخوانید »

Foldy PlugIn – جهت کار با پوشه ها در نرم افزار MMB

با توجه به نیاز دوستان و درخواست بعضی از دوستان طی مدت اخیر بنده یک پلاگ این به نام Foldy برای نرم افزار MMB ساختم که فعلا دارای قابلیت های زیر هست:

– کپی محتویات یک پوشه به یک پوشه دیگر به همراه تعیین فیلتر جهت کپی کردن یک سری خاص از فایل ها ( مثلا zip.* )
– بدست آوردن لیست پوشه ها و فایل های درون یک پوشه ( یا مسیر)
– تغییر نام یک پوشه
– حذف یک پوشه به همراه محتویات آن به همراه تعیین فیلتر جهت پاک کردن یک سری خاص از فایل ها
– حذف فایل های دارای ویژگی Read Only
– گرفتن پوشه Home که حاوی زیر پوشه های کاربری هست که به سیستم وارد شده.
– گرفتن اندازه یک پوشه
– گرفتن تعداد محتویات ( فایل ها) یک پوشه

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

Download Foldy Plug-In Here

Foldy PlugIn – جهت کار با پوشه ها در نرم افزار MMB بیشتر بخوانید »

تولید کلمه عبور تصادفی در PHP

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

<?php

function make_password($num_chars) {
if ((is_numeric($num_chars)) &&
($num_chars > 0) &&
(! is_null($num_chars))) {

$password = ;
$accepted_chars = ‘abcdefghijklmnopqrstuvwxyz1234567890’;

// تغذیه کردن مولد پسورد که در نسخه های قدیمی پی اچ پی مرسوم هست
srand(((int)((double)microtime()*1000003)) );

for ($i=0; $i<=$num_chars; $i++) {
$random_number = rand(0, (strlen($accepted_chars) –1));
$password .= $accepted_chars[$random_number] ;
}

return $password;
}
}
?>

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

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

تولید کلمه عبور تصادفی در PHP بیشتر بخوانید »

فرصت هایی که از دست می روند…

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

اگر سری به لیست برترین های صنعت که هر ساله توسط مجله های معتبر از جمله بیزینس ویک منتشر میشه زده باشید و یا بزنید با تعدد شرکت های IT محوری مواجه خواهید شد که دهه اخیردر صدر لیست جا خوش کرده اند. شرکت هایی همچون IBM, Apple و… که پتانسیل های بالای این شاخه رو به خوبی یاد آور می شن. اما اگر نگاهی به داخل کشور و وضعیت اسفبار این صنعت بیندازیم کاری جز تاسف خوردن نمی تونیم بکنیم. خصوصا اینکه طی یکی دو سال اخیر زخم های زیادی بر پیکره IT کشور که خود به اندازه کافی مشکل دار بود وارد شده. از بلا تکلیفی طرح تکفا گرفته تا مظلوم واقع شدن آن در تخصیص بودجه از جانب دولت. همین معضلاتی که در سطح کلان شکل می گیره باعث میشه تا در سطح خرد مشکلات دو چندان بشه و فعالان این حوضه مدام از جریان جهانی عقب بمونن.

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

فرصت هایی که از دست می روند… بیشتر بخوانید »