Friday, 24 December 2010

حکایت اسکندر

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

Saturday, 4 December 2010

How To Turn Google Translate Into Google Beatbox!

Here's how to make fun with Google Translate:
1) Go to Google Translate
2) Set the translator to translate German to German
3) Copy + paste the following into the translate box: pv zk pv pv zk pv zk kz zk pv pv pv zk pv zk zk pzk pzk pvzkpkzvpvzk kkkkkk bsch
4) Click “listen”
5) Be amazed :)

And a guide to make your own beats:
zk = suspended cymbal
bschk = snare
pv = brush
bk = bass
tk = flam1
vk = roll tap
kt = flam2
kttp = flam tap
krp = hi hat tap
pv = short roll
th = better hi hat
thp, ds = instant rimshot.

Have Fun!

stdafx چیست؟

stdafx یک فایل .hاست که توسط IDE wizard مایکروسافت ویژوال استودیو تولید شده و فایلهای include سیستم استاندارد و فایلهای include پروژه خاص (project specific) رو که مکررا استفاده میشن اما به ندرت تغییر می کنند، توصیف میکنه. به بیان دیگر، stdafx یک اسم پیش فرض برای "دستوردهنده هدرهای از پیش کامپایل شده" هست. هدرهایی که در این فایل شامل شده اند، تنها یک بار کامپایل میشوند و اطلاعات در دیسک ذخیره میشه. موقع کامپایل کردن برنامه، کامپایلر به جای parse (تجزیه) کردن همه هدرها، فقط داده های از پیش کامپایل شده رو بارگیری میکنه. به این ترتیب، زمان کامپایل برنامه تا حد زیادی کاهش پیدا می کنه.
std در stdafx.h مخفف کلمه "استاندارد" هست اما AFX مخفف عبارت Application Framework eXtension (توسعه چارچوب کاربرد) هست که اصالتا مربوط به (Microsoft Foundation Classes (MFC میشه. پروژه های ویژوال استودیو ممکنه به طور اختیاری از هدرفایلهای از پیش کامپایل شده اجتناب کنند، علاوه بر این، ممکنه یک اسم دیگه رو برای اونها مشخص کنند (هرچند stdafx.h به طور پیش فرض استفاده میشه)
کامپایلرهای سازگار مثل VC++ 6.0 (و نسخه های جدیدترش) این فایل رو از پیش کامپایل می کنن تا زمان کلی کامپایل رو کاهش بدهند. Visual C++ هیچ چیزی رو که قبل از خط  #include "stdafx.h" باشه کامپایل نمی کنه مگر اینکه گزینه /Yu'stdafx.h' به طور پیش فرض چک نشده باشه؛ در واقع اون کدها رو کامپایل شده قلمداد می کنه!
مشکل اینجاست که استفاده از هدرهای از پیش کامپایل شده، منجر به اضافه شدن تمام اون هدرها به هر فایل .cpp میشه و این مسئله باعث میشه حجم برنامه کلی افزایش پیدا کنه (مخصوصا وقتی پروژه شما 200 فایل .cpp داشته باشه!) اما اگر زمان برای شما مهمتره، چاره ای جز استفاده از stdafx ندارید!