وبلاگ شخصي
 
به

وبلاگ شخصی حسین مرگانی

خوش آمدید
Welcome to

Hossein Margani's Weblog

حلقه صفر بار در Visual Basic 07:35 27/05/1388

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

For index = 0 to 0
    Console.WriteLine(index)
Next 

چرا؟

تگها: ,

Programming

اینم از پایان نامه! 17:06 25/02/1388
بالاخره پایان نامه هم حل شد و رفت پی کارش. البته تایپ و بقیه کاراش مونده، الان فقط برنامه ای که لازم بود رو نوشتم. انتروپی می ده توووووپ. واسه تصویر لِنا (Lenna) انتروپی 7.9998 میده. فقط یه خورده سرعتش پائینه که کم کم حل میشه.


برای بزرگنمایی تصویر روی آن کلیک نمائید

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

تگها:

تمام شد! 15:30 25/02/1388
پروژه ای که از 8 مرداد سال پیش آغاز کرده بودم، ناتمام بستمش و تنها نتیجه ای که برام داشت یاد گرفتم از این نوع پروژه ها برندارم. تجربه خوبی بود ولی کاش نتیجه هم داشت.

تگها:

آمار برنامه Friends For Sale در فیس بوک 04:43 23/02/1388
در عرض 3 ماه از فعالیت برنامه Friends For Sale، این برنامه به جائی رسید که تبدیل به دهمین برنامه برتر در فیس بوک شد. تعداد درخواست های وب (Request) به این برنامه 200 درخواست در ثانیه و دارای آمار بازدید 300 میلیون صفحه در ماه است. تمام اینها به مدد Ruby on Rails، دو برنامه نویس پاره وقت، یک کلاستر از 12 ماشین و یک معماری استاندارد است.
نوشتن این برنامه از 20 اکتبر 2007 توسط Siqi Chen و Alex Le شروع شد و 10 روز بعد یعنی در اول نوامبر 2007 منتشر شد. در ماه دسامبر به بازدید 1 میلیون صفحه در روز رسید که باعث شد هر دو از محل کار بیرون آمدند تا بصورت تمام وقت روی FFS کار کنند. این دو نفر، شش ماه بعد به درآمد 4 میلیون دلاری رسیدند که البته واضحه که هیچ هزینه ای نکردند. این برنامه برروی 20 سرور Ruby on Rails اجرا می شود. در فوریه 2008 این دو نفر شرکت Serious Business را تاسیس کردند تا برنامه های دیگری بسازند.


آمار برنامه تا 12 می 2009
  • دهمین برنامه پرمخاطب در فیس بوک
  • حدود دو و نیم میلیون کاربر فعال
  • نیم میلیون کاربر واحد در روز به سرعت در حال رشد
  • سیصد میلیون بازدید صفحه درماه
  • نرخ سیصد درصدی رشد ماهانه
  • 2.1 میلیون بازدید واحد در ماه گذشته
  • 200 درخواست در ثانیه
  • 5 ترابایت پهنای باند ماهانه
  • دو برنامه نویس پاره وقت (اکنون تمام وقت) و یک مدیر پایگاه داده از راه دور
لینک برنامه: Friends for Sale
منابع: highscalability.com , successguides.org

تگها:

چند نکته! 11:36 02/01/1388
اگر روزي دشمن پيدا كردي، بدان در رسيدن به هدفت موفق بودي!
اگر روزي تهديدت كردند، بدان در برابرت ناتوانند!
اگر روزي خيانت ديدي، بدان قيمتت بالاست!
اگر روزي تركت كردند، بدان با تو بودن لياقت مي خواهد!

تگها:

My Mind

عرضه IE8 06:38 02/01/1388

IE8 عرضه شد.

لینک دانلود IE8 برای ویندوز XP

لینک دانلود IE8 برای ویندوز Vista

با هر بار عرضه شدن نسخه جدید از طرف مایکروسافت و جدیداً فایرفاکس، تن ما برنامه نویسای وب می لرزه که نکنه برنامه ما تو نسخه جدید کار نکنه ولی مثل اینکه IE8 بهتر باشه. اونقدر هم وضعش بد نیست.

آغاز بهار مبارک 06:32 02/01/1388

آغاز فصل بهار فصل آورنده بهترین ها برای همه مبارک باشه.

تگها:

یه مشت نقل قول درباره برنامه نویسی 11:33 27/11/1387
  • اشکال زدایی دو برابر سخت تر از کد نویسیه. بنابراین اگر شما کدی رو در نهایت باهوشی بنویسید باز آنقدر باهوش نیستید که آن را اشکال زدایی کنید. (Brian Kernighan)
  • فقط دو نوع زبان برنامه نویسی وجود داره، یکی که افراد از اون شاکی ان، و یکی که اصلاً کسی باهاش کد نمی نویسه. (Bjarne Stroustrup)
  • هر احمقی می تونه کدی بنویسه که کامپیوتر متوجه بشه، برنامه نویس خوب کدی می نویسه که هر انسانی متوجه بشه. (Martin Fowler)
  • دو راه برای طراحی نرم افزار وجود داره، یه راه اینکه اون رو طوری بنویسیم که ظاهرا هیچ نقصی نداره، راه دیگه اینه که آنقدر پیچیده طراحی کنیم که هیچ نقص ظاهری نداره. راه اول خیلی مشکل تره. (C.A.R. Hoare)
  • اکثر نرم افزارهای امروزه بیشتر شبیه اهرام مصره با میلیونها آجر چیده شده روی یکدیگر بدون هیچ نقص ساختاری، اما توسط هزاران برده و نیرو بی رحمانه انجام شده. (Alan Kay)
  • مقیاس گذاری پیشرفت نرم افزار با خطوط کد نوشته شده همانند مقیاس گذاری پیشرفت ساخت هواپیماست با وزن آن. (Bill Gates)
  • اگر عزم ساخت و توسعه یه چیز جدید و بزرگ دارید نیاز به میلیونها دلار سرمایه ندارید، پیتزا به مقدار کافی ونوشابه بعلاوه یه PC ارزون قیمت که روش کار کنید و یه جو اراده که به کار ادامه بدین. (John Carmack)
  • برنامه ها بایستی برای افراد نوشته شن که بخونن و در ضمن اون برای ماشین که روی اون اجرا بشن. (Abelson / Sussman)
  • سوال: چطور یه پروژه بزرگ نرم افزاری یه سال دیرتر به پایان میرسه؟ پاسخ: با هر بار یه روز (Fred Brooks)
  • هیچ کس نباید یه پروژه بزرگ رو قبول کنه. با یک پروژه کوچک جزئی شروع کنید و اصلاً نباید از پروژه انتظار گسترده شدن داشته باشید. اگه همچین انتظاری داشته باشید، فقط کار بیهوده ای کرده اید و کلاً تصور می کنید که پروژه خیلی مهم تر از اینه که در اون مرحله به نظر می رسه. یا بدتر، از اندازه کاری که با آن روبرو هستید وحشت کنید، بنابراین کم شروع کنید و درباره جزئیات فکر کنید. به تصور بزرگ و طراحی تجملی فکر نکنید. اگر بعضی نیازهای فوری برطرف نشد، تقریباً نصف راه رو رفته اید، انتظار نداشته باشید کاربران به یکباره وارد کار شوند و به شما کمک کنند. باید تا نیمه های راه بروید و کاربرد را ایجاد کنید، اونوقت خود کاربران به سراغ شما می آیند و به شما کمک می کنند چون به نظرشان تقریباً همان چیزی بوده که آنها دنبالشان بوده اند. (Linus Torvalds)
ملزومات برنامه نویسی 14:41 25/10/1387

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

  • هر برنامه نویس نیاز به فضای کار بزرگ دارد: این کار زمان لازم برای پیدا کردن یک کاغذ یا خودکار رو بصورت رادیکالی کاهش میده
  • هر برنامه نویس باید دو تا مونیتور داشته باشه: این کار باعث میشه برنامه نویس فضای بیشتری داشته باشه برای راهنماها مثل MSDN یا انتخاب عکس یا آیکون یا جستجو در اینترنت. همچنین زمانی که برای بستن یا Minimize کردن پنجره ها صرف می شد حذف میشه.
  • کامپیوتر هر برنامه نویس باید امکانات کاملی داشته باشد: برنامه نویسا باید بهترین سخت افزارها در اختیارشون باشه چون نصف زندگیشونو پشت کامپیوترن. دلیل دیگه اینکه هیچ برنامه نویسی خوشش نمی آد که منتظر کامپایل یه برنامه،ا اجرای یک برنامه بشه.
  • هر برنامه نویس باید صندلی راحتی داشته باشه: چون یه برنامه نویس مدتهای طولانی روی صندلیش می شینه بنابراین باید صندلی راحتی داشته باشه. ضمن اینکه فکر نمی کنم وقتی آدم در اون قسمت احساس درد می کنه مغز بتونه کار کنه!
  • هر برنامه نویس باید خوردنی کنار دستش باشه مخصوصاً چای یا قهوه: بعضی روزها برنامه نویس بیشتر از معمول کار می کنه، بنابراین چای یا قهوه و خوردنی جات باعث می شه بتونه ادامه بده. البته سیگار جزو این دسته نمیشه.
  • هر برنامه نویس باید موس و صفحه کلید دلخواهشو داشته باشه: مثل اکثر برنامه نویسا من دوست دارم صفحه کلید نرم و صاف داشته باشم مثل صفحه کلید لپ تاپ. بهتره صفحه کلید خاص نباشه که کلیدای خفن روش باشه، یه صفحه کلید معمولی که محل دکمه ها مثل اکثر صفحه کلیدا باشه. در مورد موس هم یه موس نرم که کلیداش نرم باشه و حتماً اسکرول هم داشته باشه.
  • هر برنامه نویس باید اینترنت با سرعت بالا داشته باشه: این مسئله مهم تر میشه وقتی راهنمای offline ندارین. مثل MSDN. یادم می آد وقتی مشکلی برام پیش میومد، چه خطای syntax په مشکلای برنامه ای بلافاصله وصل می شدیم به اینترنت، با مودم 56K که در اصلی 33K بود و یه 30 ثانیه ای هم وصل شدنمون طول می کشید حدوداً یه جستجوی Google و پیدا کردن مشکل یه ربعی وقتمونو می گرفت، ضمن اینکه به خاطر هزینش بعد از اینکه کارمون تموم می شد مجبور می شدیم قطعش کنیم. بعدها که اینترنت ADSL گرفتم این زمان به 5 دقیقه کاهش پیدا کرد. و البته با اعصاب راحتتر مشکلمو حل می کنم. و با همین کار ساده 15% از زمان کار کم میشه.
  • هر برنامه نویس باید حق داشته باشه بپرسه: چرا؟: چند دفعه احساس کردین پروژه ای که دارین روش کار می کنین مشکل داره و باید درست بشه؟ مثلاً طراحی فرمی که بهتون دادن بنویسین خوب نیست و باید بهتر باشه، قشنگ تر باشه. و می بینید که کسی که این طراحی رو انجام داده از کد نویسی چیزی نمی دونه و اصرار داره که حتماً این طوری طراحی بشه. بهتره جو طوری باشه که برنامه نویس در گفتن این جور انتقادات راحت باشه و بتونه نظرشو راحت بگه.
  • برنامه نویس باید دسترسی به هر منبع و کتاب و مقاله و مستندی رو داشته باشه مخصوصاً Google: چرا مدیرا فکر می کنن کسی که برنامه نویسه باید هر چیزی رو در خصوص زبانهای برنامه نویسی و برنامه ها و محیط های IDE بدونه؟ پس Google برای چیه؟ کلاً 10 دقیقه بیشتر طول نمی کشه که یه مطلب که اصلاً در موردش چیزی نمی دونی با کلی مثال و مطلب، کامل یاد بگیری. به فرض هم که برنامه نویس حرفه ای باشه یه جایی یه موقعی نیاز به کمک داره، نیاز به این داره که از تجربیات دیگران استفاده کنه.
  • هر برنامه نویس باید حق داشته باشه هر چی دوست داره بپوشه: نمی تونم تصور کنم که یه برنامه نویس با کت و شلوار و کقش ورنی و کروات! نشسته داره برنامه نویسی می کنه. ممکنه برای ملاقات ها و جلسه ها لازم باشه که لباس رسمی پوشیده بشه ولی خود من اینطوری ام وقتی برنامه نویسی می کنم یه لباس راحت مثل تی شرت و شلوار کتون و کفش راحتی و یا دمپایی بپوشم. البته تو این مورد یه خورده باید فکر بقیه رو هم بکنین که اگه سوالی ازتون دارن روشون بشه بیانو سوال بپرسن و به خاطر پی جامه که پاتونه قید صحبت با شما رو بزنن!
یه برنامه نویس به چه چیزای دیگه می تونه نیاز داشته باشه؟
چرخه توسعه نرم افزار 04:00 24/10/1387
  1. برنامه نویس کدنویسی رو تموم می کنه و معتقده هیچ باگی نداره
  2. برنامه تست میشه و 20 تا باگ پیدا مشه
  3. برنامه نویس 10 تاشو تصحیح می کنه و به تیم تست توضیح میده که 10 تای دیگه اصلاً باگ یا اشکال نیست
  4. تیم تست متوجه میشه 5 تا از این تصحیح ها کار نمیکنه و 15 تا باگ جدید پیدا می کنه
  5. تا زمانیکه رئیس شرکت صداش در نیومده برو به 3
  6. به علت فشار بازار و یا رسیدن زمان تحویل پروژه، محصول عرضه میشه
  7. کاربران 137 تا باگ جدید پیدا می کنن
  8. برنامه نویس اصلی پولشو گرفته و آب شده رفته زمین
  9. تیم برنامه نویسی جدیدی شکل می گیره و همه ی 137 تا باگ رو تصحیح می کنه و 456 تا باگ جدید پیدا مشه
  10. برنامه نویس اصلی به تیم تست فعلی که هنوز پولشو نگرفته یک کارت پستال از فیجی می فرسته که باعث میشه تیم تست استعفا بده
  11. شرکت که محصولش الان 783 تا باگ داره توسط شرکت رقیب خریده میشه و تحول اساسی در شرکت شکل میگیره
  12. رئیس جدید، هیئت مدیره جدید شکل میده و برنامه نویس استخدام میکنه که کار رو از اول دوباره انجام بده
  13. برنامه نویس کدنویسی رو تموم می کنه و معتقده هیچ باگی...

تگها: , ,

SE


Spread Firefox Affiliate Button


Software tracking