تبلیغات
فناوری اطلاعات

چرا پرشین دیگ یک وب 2.0 نیست

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

بالاتریم

جمعه 3 خرداد 1387 , توسط علی کسایی زاده

سلام

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

نکته رو می تونید تو عکس زیر ببینید (لطفا اگه از لینک عکس استفاده می کنید کپی رایت یادتون نره)روی عکس کلیک کنید تا واضح تر ببینید.

balatarim

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

با گوگل تاک محرمانه سخن بگویید

یکشنبه 29 اردیبهشت 1387 , توسط علی کسایی زاده

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

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

حالا سوالی که پیش میاد اینه که اگه نخواهیم گوگل این مکالمات رو دخیره کنه. اون موقع چی کار باید بکنیم. در این صورت دو حالت دارد. یا می خواهید به هیچ عنوان گوگل حرف های شما رو با هیچ کسی دخیره نکنه که در اون صورت می تونید بر روی صفحه اصلی گوگل تاک توی ستینگ(setting) برید و توی قسمت چت گزینه (Don't save chat history in my gmail account ) رو انتخواب کنید.

حالت دوم زمانیه که شما می خواید چت شما با یه فرد بخصوصی ذخیره نشود و در این حالت توی پنجره ای که با طرف دارید چت می کنید یک دکمه وجود دارد که علامت رو به پایین داردو در با زدن اون اولین گزینه(Go off the record) هستش اون رو انتخواب کند و چتتون رو بدون ترس از ذخیره شدن ادامه دهید.

گوگل و فرستادن ایمیل با سرعت بیشتر (صفحه های وب با

شنبه 21 اردیبهشت 1387 , توسط علی کسایی زاده

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

نمونه اول ایمیل:

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

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

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

خانه دوست کجاست (نگاهی به فناوری ای پی تو لوکیشن)

جمعه 20 اردیبهشت 1387 , توسط علی کسایی زاده

خانه دوست کجاست؟

آیا ما در اینترنت واقعا ناشناخته هستیم؟

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

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

ای پی که به معنی پروتوکل اینترنتی هستش دارای ورژن های مختلفی است. دو ورژن معروف اون ورژن ۴ و ورژن ۶ هستش که هر کدوم خواص خودشونو دارن.

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

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

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

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

امید وارم از این موضوع خوشتون بیاد

شکلک در بلاگ اسکای

جمعه 13 اردیبهشت 1387 , توسط علی کسایی زاده

نکته مهم

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

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

مقدمه

برای شروع بد نیست بدونیم این سیستم چطور کار میکنه. این سیستم شکلک ها در سیستم های بلاگی مثل مترجم های زبان کار میکنند. به عنوان مثال اگه اپل به فارسی میشه سیب توی بلاگ اسکای [:S017:] میشه شکلک و همینطور شکلک های دیگه. یعنی سیستم وبلاگ توی نوشته شما جستجو میکنه و تمام این مشخصه ها رو به شکلک تغییر میدهد.

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

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

قسمت اول جاوا اسکریپت

این قسمت خیلی مهمه چون یه رابط میشه بین فرم نظرات و عکس هایی که در کنار فرم قرار دارند. یعنی کاری میکنه که با کلیک بر هر عکس کد مورد نظر به فرم نظرات اضافه بشه. و این هم نمونه کد جاوا اسکریپتش هست:

<script language="javascript" type="text/javascript">

function insertSmiley(smiley)
{
 commentText = document.getElementById("txtComment" ;
 smiley = "[:" + smiley + ":]"

 if (commentText.createTextRange)
 {
  commentText.focus(commentText.caretPos)
  commentText.caretPos = document.selection.createRange().duplicate()
  commentText.caretPos.text = smiley
 }
 else
 {
  commentText.value += smiley
 }
}

</script>

توجه داشته باشید که این کد باید در قسمت هدینگ قالب نظرات اضافه بشه و خب برای تازه واردا باید بگم که هر وقت به این تگ رسیدید یعنی اخر هدینگ (</head>  البته / قبل از هد قرار داره اما به هر حال این کد رو باید قبل از اون تگ قرار بدید

قسمت دوم عکس ها

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

<td style="text-align: left">
        <txtarea name="txtComment" style="width: 400px; height: 160px" onkeypress="FKeyPress()" onkeydown="FKeyDown()"></txtarea>
       </td>

ببینید پیدا کردن اون تیکه که قرمز کردم خیلی مهمه چون تگ قبلیش با اینی که اینجا میبینید فرق داره پس قبل از اون تیکه قرمز تگ (<td style="text-align: left"> رو با تمام کم و زیادش پاک کنید اما توجه کنید فقط همون خط رو وردارید.

حالا این کر رو در همون خطی که پاک کردید اضافه کنید تا شکلک ها به قالب نظرات اضافه بشه.

<td style="text-align: right; width: 100px">
      <a href="javascript:void(0);" onclick="insertSmiley('S001')"><img src="http://www.blogsky.com/images/smileys/001.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S003')"><img src="http://www.blogsky.com/images/smileys/003.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S004')"><img src="http://www.blogsky.com/images/smileys/004.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S005')"><img src="http://www.blogsky.com/images/smileys/005.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S006')"><img src="http://www.blogsky.com/images/smileys/006.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S007')"><img src="http://www.blogsky.com/images/smileys/007.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S008')"><img src="http://www.blogsky.com/images/smileys/008.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S011')"><img src="http://www.blogsky.com/images/smileys/011.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S016')"><img src="http://www.blogsky.com/images/smileys/016.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S013')"><img src="http://www.blogsky.com/images/smileys/013.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S014')"><img src="http://www.blogsky.com/images/smileys/014.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S015')"><img src="http://www.blogsky.com/images/smileys/015.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S017')"><img src="http://www.blogsky.com/images/smileys/017.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S018')"><img src="http://www.blogsky.com/images/smileys/018.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S019')"><img src="http://www.blogsky.com/images/smileys/019.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S021')"><img src="http://www.blogsky.com/images/smileys/021.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S022')"><img src="http://www.blogsky.com/images/smileys/022.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S023')"><img src="http://www.blogsky.com/images/smileys/023.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S024')"><img src="http://www.blogsky.com/images/smileys/024.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S025')"><img src="http://www.blogsky.com/images/smileys/025.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S027')"><img src="http://www.blogsky.com/images/smileys/027.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S035')"><img src="http://www.blogsky.com/images/smileys/035.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S037')"><img src="http://www.blogsky.com/images/smileys/037.gif" alt="" /></a>
      <a href="javascript:void(0);" onclick="insertSmiley('S042')"><img src="http://www.blogsky.com/images/smileys/042.gif" alt="" /></a>
     </td>
       <td style="text-align: left">

خب کار دیگه تمومه قالب رو ذخیره کنید و از شکلک ها لذت ببرید

متغیر ها (قسمت سوم)

چهارشنبه 14 فروردین 1387 , توسط علی کسایی زاده

زبان های سطح بالا

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

Int32 myVar;

کامپایلر (مترجم زبان) این خط از برنامه را به EQU myVar 0x2F  ترجمه میکند و برای این متغیر در جافظه های 16 بیتی دو خانه تعلق می دهد. البته حافظه های کامپیوتر ها امروزی 32 یا 64 بیت هستند که نسبت به اندازه آنها کامپایلر فضای مخصوص را برای متغیر حفظ می کند. البته در سیستم عامل های امروزی ادرس های ذخیره شده به صورت داینامیک هستند و سیستم عامل مکان اصلی متغیر را تعریف میکند.

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

1-      استراکچرال Structural -

این دسته از برنامه ها به روش خطی اجرا می شوند و اولویت اجرا دستور نسبت به مکان ان تعیین می شود. زبانهای C, Qbasic  و غیره از جمله این برنامه ها هستند. در این دسته از برنامه ها معمولا متغیر ها 4 مشخصه در خود ذخیره میکنند.

·         نوع متغیر

·         اندازه متغیر

·         اسم متغیر

·         ادرس متغیر

به عنوان مثال

Float myVar = 0.5;

نوع متغیر فلوت هستش که شامل اعداد اعشاری می شوند

معمولا برای این متغیر ها فضایی معادل 128 بیت تعلق میگیرد

اسم متغیر myVar است

ادرس متغیر نیز بر اساس تنظیم حافظه سیستم عامل به صورت خودکار تعیین می شود

در این دسته از برنامه ها متغیر به مانند یک اشاره گر عمل می کند که به یک سری از خانه های حافظه (رم) اشاره میکند. پس عمل = مقدار تعیین شده را در حافظه قرار می دهد

2-      ابجکت ارینتد  Object Oriented (OO) –

زبانهایی مثل جاوا و خانواده دات نت(.NET)  مثل VB.Net  یا C# و یا غیره از جمله این برنامه ها هستند. در این زبانها هرچند ممکن است متغیر ها به یک صورت تعریف شوند اما دامنه استفاده انها بسیار وسیع تر گردیده. دیگر متغیر ها به عنوان یک اشاره گر عمل نمی کنند و به طور عمومی نمی توان گفت که هر متغیر چند ویژگی در خود ذخیره میکند. مانند یک خانواده که پسر از پدر یک سری ویژگی به ارث میبرد متغیر ها نیز ممکن است از کلاس پدر ویژگی هایی به ارث ببرد. به عنوان مثال در یک زبان استراکچرال برای تبدیل استرینگ ( رشته جروف) به عدد نیاز داریم عملیاتهای زیادی انجام دهیم اما در زبانهای ابجکت ارینتد تنها با صدا کردن کلاس پارس (پارس عملیات تبدیل یک نوع متغیر به نوع دیگر میگویند) و سپس کلاس فرزند مثلا فلوت و در اتها صدا کردن وریبل یک وریبل را از یک نوع به نوع دیگر می توان تبدیل کرد.

String myStr = new String(“12.23f”);

Float myFloat;

Char myChr;

myFloat = myStr.parsToFloat();

myChr = myStr.charAt(0);

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

متغیر ها (قسمت دوم)

یکشنبه 11 فروردین 1387 , توسط علی کسایی زاده

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

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

زبانهای برنامه نویسی

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

زبانها به ترتیب از زبان ماشین به بالا

۱- زبان ماشین

هگز یا مبنای ۱۶ این زبان تنها شامل اعداد مبنای ۱۶ میشود که حروف A-F نیز شامل این حروف هستند نمونه این زبان رو دی پایین میبینید

:1000000000308A003E290000FF00030E8301A1009A

همونطور که می بینید تنها و تنها از اعداد مبنای ۱۶ استفاده شده و بعدا این اعداد به مبنای ۲ رفته و برای کامپیوتر معنا دار می شوند

۲- اسمبلی

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

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

my_Var  EQU 0x3F

در این دستور شما برای حافظه خانه 3F یا خانه شماره ۶۳ حافظه یک اسم قرار دادید که هر بار اسمبلر (برنامه ای که دستورات اسمبلی را به هگز تبدیل میکند) به این کلمه می رسد به خانه ۶۳ مراجعه میکند. و بر اساس دستور داده با آن رابطه بر قرار می کند به عنوان مثال

   MOVLW my_Var

این دستور مثلا مقدار داخل خانه ۶۳ را به داخل پروسسور می برد تا اعمال بعدی را بر روی ان انجام دهد

در قسمت های بعدی زیانهای سطح بالا تر را مورد برسی قرار می دهیم.