۱۳۸۹ خرداد ۱۸, سهشنبه
۱۳۸۹ اردیبهشت ۲۷, دوشنبه
تعطیلات غیرمنتظره و شکوفایی آشپزی اتاق... و یه چیز دیگه!
این تعطیلیها چه اثراتی که ندارند! با توجه به تعطیلی که اعلام شد، و بعد تکذیب شد، و بعد در هر صورت به علت مشکلات به وجود اومده تایید شد، و این که من و محمد مهدی (داداش میثم نبی!) نرفتیم خونه، و این که این ۳ روز رو دانشگاه غذا نمیده، ما مجبور شدیم به فکر غذا باشیم. از شانس منم (و با توجه که من و محمد به آشپزی علاقمندیم) محمد هر گونه غذا از مشتقات تخممرغ محترم (انواع املت و نیمرو) رو ممنوع کرده؛ صبح تا شب باید به این که چی بخوریم فکر کنم! همشم کار فکر کردنو میده به من (هر چند تهش مجبور میشه خودش بگه چی بخوریم معمولا) ؛). خلاصه... ظهر امروز که به عدس پلو رضایت داد:
اما بعد تصمیم گرفتیم که برای شب یه غذای مقویتر درست کنیم تلف نشیم یه وقت! برای غذا هم زرشک پلو با مرغ رو انتخاب کردیم، در نتیجه عصری پا شدیم رفتیم یه خرید درست و حسابی یه فروشگاه زنجیرهای (که برای این که تبلیغ نشه اسمشو نمیگم P: چقدر کلاس داشت این جمله!)، اون موقع متوجه شدم چقدر وقته فروشگاه نرفتم(؟!!)، و خلاصه خرید کردیم و برگشتیم و ... تهش نتیجه شد همون عکس اولی! البته اکثر زحمتش رو هم محمد کشید. جاتون خالی بعد همون سوپش احساس سیری کردیم، ولی خب آدم که دلش نمیاد بعد آماده شدن غذا از خیرش بگذره که! این شد که نشستیم و البته با یه مقدار تخفیف بقیش رو خوردیم. با این که یه ۱ ساعتی از خوردنش میگذره هنوز احساس ترکیدگی میکنم D: جاتون خالی چیز خوبی از آب درومد!
***
خب بگذریم! شما میدونستین حتی اگه گرونترین دوربین فیلمبرداری دیجیتال مدرن رو بخرین و باهاش فیلم بگیرین، حداقل توی یه سری از کشورها از جمله آمریکا، حق فروش فیلمی که گرفتین رو ندارین؟!! و اگه بخواین بفروشین باید بسته به تعدادی که میخواین بفروشین هزینه بدین به MPEG-LA. این فرمت H.264 هم که اخیرا قراره خیلی از سایتها برای پخش فیلم به جای فلش ازش استفاده کنن مربوط به MPEG-LA میشه و با توجه به شرایطی که داره ممکنه بعدا دردسر بشه! هرچند تا ۲۰۱۵ میشه فیلمهایی به این فرمت رو بدون پرداخت هزینهای به رایگان پخش کرد (اگه بخواین بفروشین باز باید پول بدین) اما بعد از اون سال ممکنه حتی به صورت رایگان هم حق پخش نداشته باشین... و این اصلا چیز خوبی نیست! و البته با توجه به این که مرورگرهای opera و فایرفاکس فعلا تصمیم ندارن هزینه گواهی پخش H.264 رو بدن و ازش پشتیبانی کنند؛ و در نتیجه این ۲تا ازاین قالب پشتیبانی نمیکنند، باید ببینیم تهش چی میشه! متاسفانه گوگل و مایکروسافت و اپل از این قالب پشتیبانی میکنند...
۱۳۸۹ اردیبهشت ۲۵, شنبه
۱۳۸۹ اردیبهشت ۱۸, شنبه
حافظ!
این حافظ فیسبوک که خیلی با من راه نمیاد، ولی امروز به یه حافظ دیگه سر زدم (البته یه نفر بهم معرفیش کرد) و یه فال گرفتم. این یکی حافظ مثل این که کارش بهتره ؛):
اینم تعبیری که زده بود:
ای صاحب فال، اگرچه در این ایام حوصله کاری را نداری و از طرف کسی ناراحت شدهای و حیران و سرگردان میباشی ولی با استعانت از خداوند بزرگ بهزودی فرجی در کار حاصل خواهی کرد انشاالله.
منم امیدوارم! :)
| نه هر که چهره برافروخت دلبری داند | نه هر که آینه سازد سکندری داند | |
| نه هر که طرف کله کج نهاد و تند نشست | کلاه داری و آیین سروری داند | |
| تو بندگی چو گدایان به شرط مزد مکن | که دوست خود روش بنده پروری داند | |
| غلام همت آن رند عافیت سوزم | که در گداصفتی کیمیاگری داند | |
| وفا و عهد نکو باشد ار بیاموزی | وگرنه هر که تو بینی ستمگری داند | |
| بباختم دل دیوانه و ندانستم | که آدمی بچهای شیوه پری داند | |
| هزار نکته باریکتر ز مو این جاست | نه هر که سر بتراشد قلندری داند | |
| مدار نقطه بینش ز خال توست مرا | که قدر گوهر یک دانه جوهری داند | |
| به قد و چهره هر آن کس که شاه خوبان شد | جهان بگیرد اگر دادگستری داند | |
| ز شعر دلکش حافظ کسی بود آگاه | که لطف طبع و سخن گفتن دری داند |
اینم تعبیری که زده بود:
ای صاحب فال، اگرچه در این ایام حوصله کاری را نداری و از طرف کسی ناراحت شدهای و حیران و سرگردان میباشی ولی با استعانت از خداوند بزرگ بهزودی فرجی در کار حاصل خواهی کرد انشاالله.
منم امیدوارم! :)
۱۳۸۹ فروردین ۷, شنبه
اندازهی int در سی/سی++!
شما میدونین اندازهی int، short و long توی سی/سی++ چقدره؟!! من تا همین چند روز پیش فکر میکردم میدونم ولی فهمیدم که نمیدونم!
خیلی از کسایی که توی کامپایلرهای تحت داس سی یاد میگیرن و به حرف استاداشون زیادی اعتماد میکنن فکر میکنن int دو بایتیه! اونهایی هم که شانس دارن و استادشون یکمی بهروز تره و تحت ویندوز برنامهنویسی یاد میگیرن فکر میکنن اندازش ۴ بایتیه...
من براساس چیزایی که قدیما خونده بودم این توی ذهنم بود که اندازهی short و long تقریبا همهجا ثابته و ۱۶ و ۳۲ بیته، اما int کاملا وابسته به سیستمه (در واقع وابسته به کامپایلر) و اندازش با اندازهی واحد محاسباتی cpu (معمولا رجیسترهای عدد صحیح cpu) یکیه. در نتیجه انتظاری که داشتم این بود که توی سیستم ۶۴ بیتی و با یه کامپایلر ۶۴بیتی، اندازهی int هشت بایت باشه (و به طرز مسخرهای از long بزرگتر باشه!). همون چند روز پیش داشتم روی یه کد کارمیکردم که خلاصه یهو متوجه شدم که intم ۴ بایتیه (با این که توی یه لینوکس ۶۴ بیتی بودم). این شد که فهمیدم ای دل غافل! ظاهرا بحث اندازهی این متغیرها به این سادگیها هم نیست. خلاصه بعد از یه چرخی توی اینترنت و به کمک ویکیپدیا و این صفحه (که مزایای سیستم LP64 رو توضیح میده) اطلاعات کاملتری بهدستم رسید به این شرح:
۱. تنها چیزی که استاندارد سی مشخص کرده اینه (این ابهام با توجه به ملاحظاتی صورت گرفته!): اندازهی short حداقل ۲ بایته و از int بزرگ تر نیست، اندازهی int هم از long بزرگتر نیست. اندازهی long حداقل ۳۲بیت و اندازهی long long هم حداقل ۶۴ بیته. همین! مثلا ممکنه توی یه سیستم هر ۴ تای اینا ۶۴ بیتی باشن یا حتی بیشتر.
۲. توی سیستمهای ۶۴ بیتی مدلهای مختلفی استفاده شده. توی ویژوال سی ویندوز اندازهی اون سه نوع اصلی با سیستمهای ۳۲ بیتی یکیه، یعنی short دو بایت و اون ۲تای دیگه ۴ بایتند. برای ۶۴ بیت باید از long long استفاده کرد. البته اشارهگر ها ۸بایتی هستند توی ۶۴بیتیها کلا. این میشه مدل LLP64
توی لینوکس و خیلی از یونیکسها (کامپایلرهاشون) از مدل LP64 استفاده میکنند: short دو بایت، int چهار بایت و long هشت بایت.
یه مدل ILP64 هست که توی اون int و دادههای بزرگتر همه ۸ بایتی هستند. و یه مدل SILP64 که توش حتی short هم ۶۴ بیتیه.
خلاصه توی هیچ کدوم از سیستمهای ۶۴ بیتی که من فعلا ممکنه باهاشون سروکار داشته باشم int هشت بایتی نیست! با توجه به این که زمان زیادی در اشتباه به سر میبردم گفتم بزنم شاید برای بقیه هم خوب باشه!!
البته کلا اگه اندازه مهمه، بهترین راه استفاده از انواع تعریفشده توی stdint.hه مثل int32_t که داده با اندازهی دقیق میده، یا int_least32_t که کوچکترین داده که حداقل ظرفیت ذکر شده رو داره میده و یا int_fast32_t که سریعترین نوعی که به عقلش میرسه با حداقل اندازه ی گفته شده رو میده. برای ذخیرهی اشاره گر ها هم توی یه متغیر عددی باید از intptr_t استفاده کرد.
خیلی از کسایی که توی کامپایلرهای تحت داس سی یاد میگیرن و به حرف استاداشون زیادی اعتماد میکنن فکر میکنن int دو بایتیه! اونهایی هم که شانس دارن و استادشون یکمی بهروز تره و تحت ویندوز برنامهنویسی یاد میگیرن فکر میکنن اندازش ۴ بایتیه...
من براساس چیزایی که قدیما خونده بودم این توی ذهنم بود که اندازهی short و long تقریبا همهجا ثابته و ۱۶ و ۳۲ بیته، اما int کاملا وابسته به سیستمه (در واقع وابسته به کامپایلر) و اندازش با اندازهی واحد محاسباتی cpu (معمولا رجیسترهای عدد صحیح cpu) یکیه. در نتیجه انتظاری که داشتم این بود که توی سیستم ۶۴ بیتی و با یه کامپایلر ۶۴بیتی، اندازهی int هشت بایت باشه (و به طرز مسخرهای از long بزرگتر باشه!). همون چند روز پیش داشتم روی یه کد کارمیکردم که خلاصه یهو متوجه شدم که intم ۴ بایتیه (با این که توی یه لینوکس ۶۴ بیتی بودم). این شد که فهمیدم ای دل غافل! ظاهرا بحث اندازهی این متغیرها به این سادگیها هم نیست. خلاصه بعد از یه چرخی توی اینترنت و به کمک ویکیپدیا و این صفحه (که مزایای سیستم LP64 رو توضیح میده) اطلاعات کاملتری بهدستم رسید به این شرح:
۱. تنها چیزی که استاندارد سی مشخص کرده اینه (این ابهام با توجه به ملاحظاتی صورت گرفته!): اندازهی short حداقل ۲ بایته و از int بزرگ تر نیست، اندازهی int هم از long بزرگتر نیست. اندازهی long حداقل ۳۲بیت و اندازهی long long هم حداقل ۶۴ بیته. همین! مثلا ممکنه توی یه سیستم هر ۴ تای اینا ۶۴ بیتی باشن یا حتی بیشتر.
۲. توی سیستمهای ۶۴ بیتی مدلهای مختلفی استفاده شده. توی ویژوال سی ویندوز اندازهی اون سه نوع اصلی با سیستمهای ۳۲ بیتی یکیه، یعنی short دو بایت و اون ۲تای دیگه ۴ بایتند. برای ۶۴ بیت باید از long long استفاده کرد. البته اشارهگر ها ۸بایتی هستند توی ۶۴بیتیها کلا. این میشه مدل LLP64
توی لینوکس و خیلی از یونیکسها (کامپایلرهاشون) از مدل LP64 استفاده میکنند: short دو بایت، int چهار بایت و long هشت بایت.
یه مدل ILP64 هست که توی اون int و دادههای بزرگتر همه ۸ بایتی هستند. و یه مدل SILP64 که توش حتی short هم ۶۴ بیتیه.
خلاصه توی هیچ کدوم از سیستمهای ۶۴ بیتی که من فعلا ممکنه باهاشون سروکار داشته باشم int هشت بایتی نیست! با توجه به این که زمان زیادی در اشتباه به سر میبردم گفتم بزنم شاید برای بقیه هم خوب باشه!!
البته کلا اگه اندازه مهمه، بهترین راه استفاده از انواع تعریفشده توی stdint.hه مثل int32_t که داده با اندازهی دقیق میده، یا int_least32_t که کوچکترین داده که حداقل ظرفیت ذکر شده رو داره میده و یا int_fast32_t که سریعترین نوعی که به عقلش میرسه با حداقل اندازه ی گفته شده رو میده. برای ذخیرهی اشاره گر ها هم توی یه متغیر عددی باید از intptr_t استفاده کرد.
اشتراک در:
پستها (Atom)
