PDA

View Full Version : چگونگی پیاده سازی بازی های استراتژیک تحت وب



2undercover
شنبه 31 خرداد 1393, 05:52 صبح
سلام.

یک سوال که برام پیش اومده اینه که این جور بازی ها (مثل: جنگ خان ها، تراوین، عصر پادشاهان)، چه جوری حرکت نیرو هارو مدیریت می کنند، که مثلا نیرو وقتی تا یک ساعت و هفده دقیقه دیگه به مقصدش که قلمروی یکی دیگه هست می رسه، بر اساس وضعیت همون لحظه ی اون بازیکن نتیجه رو مشخص می کنه؟!
من هر روشی که به ذهنم رسید یا نیاز به تراکنش های سنگین با دیتابیس داره که یک تا چند ثانیه باعث تاخیر میشه، یا هم که Real-Time نیستند و نمیشه بر اساس وضعیت لحظه ای بازیکنان نتیجه رو مشخص کرد!

پیشاپیش تشکر.

Tarragon
شنبه 31 خرداد 1393, 07:46 صبح
با سلام
اینجوریه که یه table دارن می گن ساعت فلان این نیرو به فلان جا حمله می کنه.
اگر کسی تو سرور باشه سر ساعت این حمله رو انجام میده(یعنی در حدی که یکی صفحه لوگین رو باز کنه )
درست فکر کردید خیلی سنگینه.
واسه همین تو تراوین ارور هایی مثل 00:00:0؟ به مجود میاد.
به جرات می تونم بگم سرور بازی travian.com جزو قوی ترین سرور های دنیاست.

cpuram
شنبه 31 خرداد 1393, 10:14 صبح
با سلام
اینجوریه که یه table دارن می گن ساعت فلان این نیرو به فلان جا حمله می کنه.
اگر کسی تو سرور باشه سر ساعت این حمله رو انجام میده(یعنی در حدی که یکی صفحه لوگین رو باز کنه )
درست فکر کردید خیلی سنگینه.
واسه همین تو تراوین ارور هایی مثل 00:00:0؟ به مجود میاد.
به جرات می تونم بگم سرور بازی travian.com جزو قوی ترین سرور های دنیاست.

چرا travian.com رو بستنش؟

Mohammadsgh
شنبه 31 خرداد 1393, 10:24 صبح
اینجور سایتها از چند تا زبان دیگه هم استفاده میکنن.از جمله Node Js

MRmoon
شنبه 31 خرداد 1393, 12:08 عصر
چرا travian.com رو بستنش؟

به دلیل اینکه می گفتن:

1 - پول به خارج کشور میره
2- بازی نمیدونم چی بود کمونیسیتی تروریسیتی یکی از اینا بود:قهقهه:

و کلا نخواستن یه بازی خوب ما بازی کنیم.
کل این بازی های ایرانی جمع کنی تراوین نمیشه!

MRmoon
شنبه 31 خرداد 1393, 12:12 عصر
سلام.

یک سوال که برام پیش اومده اینه که این جور بازی ها (مثل: جنگ خان ها، تراوین، عصر پادشاهان)، چه جوری حرکت نیرو هارو مدیریت می کنند، که مثلا نیرو وقتی تا یک ساعت و هفده دقیقه دیگه به مقصدش که قلمروی یکی دیگه هست می رسه، بر اساس وضعیت همون لحظه ی اون بازیکن نتیجه رو مشخص می کنه؟!
من هر روشی که به ذهنم رسید یا نیاز به تراکنش های سنگین با دیتابیس داره که یک تا چند ثانیه باعث تاخیر میشه، یا هم که Real-Time نیستند و نمیشه بر اساس وضعیت لحظه ای بازیکنان نتیجه رو مشخص کرد!

پیشاپیش تشکر.

بله. مسلم که طول میکشه!!!! شما فکرش رو بکن چند هزار تا بازیکن داری و تازه حمله نیست که! ازتقا ساختمون ها هست، ساخت نیرو ها هست، بازار هست و .... باید یک سرور خیلی قوی داشته باشید!

2undercover
یک شنبه 01 تیر 1393, 05:50 صبح
با سلام
اینجوریه که یه table دارن می گن ساعت فلان این نیرو به فلان جا حمله می کنه.
اگر کسی تو سرور باشه سر ساعت این حمله رو انجام میده(یعنی در حدی که یکی صفحه لوگین رو باز کنه )
درست فکر کردید خیلی سنگینه.
واسه همین تو تراوین ارور هایی مثل 00:00:0؟ به مجود میاد.
به جرات می تونم بگم سرور بازی travian.com جزو قوی ترین سرور های دنیاست.

خوب بحث سره اینه که مثلا یک بازیکن در حال ساخت 100 تا نیرو هست مثلا و موقع رسیدن حمله یان فرایند ساخت نیرو ادامه داره، حالا از کجا بفهمیم که دقیقا (حتی از نظر ثانیه) موقع رسیدن حمله چند تا از این نیرو ها ساخته شده بودند و چند تا هنوز در حال ساخت؟! اگه بخوایم برای هر ساخت و ساز و ارتقا برای هر بازیکن یک درخواست به پایگاه داده بره، وقفه های یک تا چند ثانیه ای ایجاد میشه. مگر اینکه واقعا سرور های قوی ای به کار گرفته بشه!

Tarragon
یک شنبه 01 تیر 1393, 08:46 صبح
خب دقیقا بحث همینه.
ساخت نیرو یه تصاعد حسابی هستش.
تو دیتابیس می گه ثانیه فلان کاربر فلان اینقدر سرباز از نوع فلان ساخت.
این هر چند ثانیه یکی از این مقدار کم می کنه عدد رو میاره جلو و سرباز رد به دهکده مورد نظر اضافه می کنه.

2undercover
یک شنبه 01 تیر 1393, 09:28 صبح
این هر چند ثانیه یکی از این مقدار کم می کنه عدد رو میاره جلو و سرباز رد به دهکده مورد نظر اضافه می کنه.

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

Tarragon
یک شنبه 01 تیر 1393, 10:50 صبح
والا تو اسکریپتی که بنده و دوستانم کار می کردیم اینجوری بود.

abolfazl-z
یک شنبه 01 تیر 1393, 11:00 صبح
حالا میتونین بگین که فیس بوک سرور هایش قویتره یا travian ؟

MMSHFE
یک شنبه 01 تیر 1393, 19:24 عصر
شوخیتون گرفته؟ فیسبوک دیتاسنتر داره. تراوین رو با یک سرور شخصی 10 - 12 میلیون تومانی هم میشه مدیریت کرد!

ضمناً اینکه هر چند وقت یکبار درخواست به دیتابیس بره کاملاً اشتباهه و اگه توی بازی هم بکار رفته باشه (من سورس تراوین رو بررسی نکردم) خیلی ناشیانه بوده. راه منطقی و اصولی (ازنظر من) اینه که برای هر کاربر، یک جدول ایجاد بشه که اطلاعات ساخت و ساز و حمله و... داخلش ثبت بشه و فرضاً وقتی یک نیرو میسازین، زمان شروع و مدت عملیات داخلش ثبت میشه. حالا اگه این وسط بخواد عملی متوقف بشه (فرضاً بخاطر وقوع یک حمله) میشه یک فیلد دیگه هم به جدول اضافه کرد که آخرین زمانی که متوقف شده داخلش قرار بگیره و از روی اختلاف این فیلدها با یک فرمول ساده، بفهمیم کی نیرو ساخته میشه. اونوقت میشه در فواصل دلخواه با کوئری زدن به دیتابیس (ازطریق AJAX) زمانها رو بررسی کرد و به کاربر اطلاع داد. از اونجا که هر کاربر هم جدول خاص خودش رو داره، جداول هم سنگین نمیشه و درخواستهای AJAX سریع مدیریت میشه.

abolfazl-z
یک شنبه 01 تیر 1393, 20:09 عصر
شوخیتون گرفته؟ فیسبوک دیتاسنتر داره. تراوین رو با یک سرور شخصی 10 - 12 میلیون تومانی هم میشه مدیریت کرد!


در کل میخاستم بگم که قویتر از اون هم درست کردن دیگه این چیزی نیست. (البته نه برای بنده و امثال بنده)

MMSHFE
یک شنبه 01 تیر 1393, 20:23 عصر
درسته. البته تراوین واقعاً اسکریپت خیلی بزرگ و وحشتناکی نیست و اگه ما هم یه تیم برنامه نویسی درست کنیم که از 12-10 نفر خبره تشکیل شده باشه (حداکثر) بهترش رو میتونیم بسازیم و مهمتر از خود اسکریپتشون، ایده خوبی که داشتن و پیاده سازی هم کردن، اهمیت داره. حتی همون فیسبوک هم با دانشی که برخی از اعضای همین سایت دارن، به راحتی قابل پیاده سازیه و تنها نیاز مهمش، تجهیزات سخت افزاری و سرورهای قدرتمند هست وگرنه ساخت یک شبکه اجتماعی با امکانات فیسبوک، کار پیچیده و مشکلی نیست. اینجا هم مهمترین چیزی که از فیسبوک، بزرگترین شبکه اجتماعی دنیا رو ساخت، ایده اولیه و پیاده سازی اون در زمانی بود که جامعه به رشد و بلوغ فکری و نیاز به چنین جامعه ای رسیده بود.

2undercover
دوشنبه 02 تیر 1393, 10:42 صبح
شوخیتون گرفته؟ فیسبوک دیتاسنتر داره. تراوین رو با یک سرور شخصی 10 - 12 میلیون تومانی هم میشه مدیریت کرد!

ضمناً اینکه هر چند وقت یکبار درخواست به دیتابیس بره کاملاً اشتباهه و اگه توی بازی هم بکار رفته باشه (من سورس تراوین رو بررسی نکردم) خیلی ناشیانه بوده. راه منطقی و اصولی (ازنظر من) اینه که برای هر کاربر، یک جدول ایجاد بشه که اطلاعات ساخت و ساز و حمله و... داخلش ثبت بشه و فرضاً وقتی یک نیرو میسازین، زمان شروع و مدت عملیات داخلش ثبت میشه. حالا اگه این وسط بخواد عملی متوقف بشه (فرضاً بخاطر وقوع یک حمله) میشه یک فیلد دیگه هم به جدول اضافه کرد که آخرین زمانی که متوقف شده داخلش قرار بگیره و از روی اختلاف این فیلدها با یک فرمول ساده، بفهمیم کی نیرو ساخته میشه. اونوقت میشه در فواصل دلخواه با کوئری زدن به دیتابیس (ازطریق AJAX) زمانها رو بررسی کرد و به کاربر اطلاع داد. از اونجا که هر کاربر هم جدول خاص خودش رو داره، جداول هم سنگین نمیشه و درخواستهای AJAX سریع مدیریت میشه.

خیلی ممنون. احتمالا باید بازی رو دیده باشید، الان مشکل من اینه:

فرضا ساخت یک نوع نیرو به ازای هر سرباز 15 ثانیه طول می کشه و کاربر درخواست ساخت 100 تا از این سرباز هارو به سرور ارسال می کنه (که هر 15 ثانیه یک سرباز به نیروها اضافه و کل فرایند 1500 ثانیه میشه). در بین این ساخت نیرو یک کاربر دیگه به کاربر اول یک حمله ارسال می کنه، خوب یک سطر جدید در پایگاه داده اضافه میشه که ID کاربر ارسال کننده حمله، کاربری که مورد حمله قرار گرفته و زمان ارسال و زمان رسیدن به مقصد هست رو در خودش داره. فرضا اگه حمله تا 1 دقیقه دیگه به مقصدش (یعنی مختصات کاربر اول) برسه از کجا بفمیم که در زمان رسیدن حمله چند تا از اون 100 سرباز که در صف ساخت بودن تا اون زمان ساخته شده اند؟! در ضمن این که با توجه به آمار و اطلاعاتی که از کاربرا نیاز هست که ممکنه هر ثانیه یک کاربر بخواد رتبه بندی رو بررسی بکنه نیاز هست همه چیز سر وقت معین انجام بشه، نه هر وقت که یک کدوم از این دو کاربر (کاربر اول و کاربر ارسال کننده حمله) در بازی حضور داشته باشند.
اینطوری فک می کنم، نیاز باشه یک برنامه در سمت سرور به طور دائم در حال اجرا باشه و هر ثانیه بررسی بکنه که آیا در اون ثانیه، اتفاقی خاصی می افته یا نه؟! که اینجوری حتی با Indexing و بهینه سازی هایی که من انجام دادم در بهترین حالت برای 64000 سطر، درخواست 4.5 ثانیه و در بدترین حالت (بدون Indexing) 21 ثانیه طول کشید (البته بیشتر زمان این اجرای کوئری ها مربوط به حذف سطر هایی بود که به اتمام رسیدن).
و این که در مورد AJAX گفتید رو نمی فهمم؟!

MMSHFE
دوشنبه 02 تیر 1393, 11:09 صبح
درمورد Trigger و Event در MySQL بیشتر تحقیق کنید. خیلی چیزها رو نیازی نیست مرتب با PHP به خورد دیتابیس بدیم. ناسلامتی خود MySQL سرور و سرویس داره برای خودش و دائماً توی حافظه مقیمه. خیلی کارها رو میشه به خودش بسپریم.

eshpilen
دوشنبه 02 تیر 1393, 11:40 صبح
حتی همون فیسبوک هم با دانشی که برخی از اعضای همین سایت دارن، به راحتی قابل پیاده سازیه و تنها نیاز مهمش، تجهیزات سخت افزاری و سرورهای قدرتمند هست
مطمئنید؟!
بعد این همه بند و بساط و ابزارها و فناوریها که فیسبوک برای خودش درست کرده، مثلا HipHop for PHP (http://en.wikipedia.org/wiki/HipHop_for_PHP)، ضرورت نداشته یا اینکه بقول شما براحتی قابل پیاده سازیه؟

MMSHFE
دوشنبه 02 تیر 1393, 11:53 صبح
ببینید، اینکه فیسبوک اومده و PHP رو Tweak کرده تا سریعتر کار کنه و... باعث نمیشه فکر کنیم PHP جدیدی اختراع کردن. دستوراتش همونهاست منتها کارهای پشت پرده این دستورات با کدهای بهینه سازی شده C انجام میشه. در کل منظورم اینه که ساخت یک شبکه اجتماعی کار زیاد سختی نیست. حتی با خدماتی در حد فیسبوک. حالا اینکه فیسبوک اومده کدهای بهینه تری ساخته بخاطر اینه که حتی با سرمایه در حد فیسبوک هم صرفه جویی در منابع ایده بدی نیست. وقتی میشه با هزینه کمتر همون نتایج رو بدست آورد دلیلی نداره هزینه بالا رو به خودمون تحمیل کنیم. اما صحبت من چیز دیگه است. میگم اگه این امکان (تولید HipHop و...) هم برامون مقدور نبود، نوشتن چنین اسکریپتی با PHP کار سخت و غیرممکن و طاقت فرسایی نیست و فقط تجهیزات سخت افزاری مناسب میخوایم که بتونیم به تعداد کاربران بالا جواب مناسب بدیم. گوگل مطمئناً مشکل سرمایه نداره ولی میاد نیروگاه بادی تولید برق درست میکنه و اسمش رو گذاشته Green Server تا هم به محیط زیست کمک کنه و هم هزینه هاش رو کاهش بده. دلیلی نداره که چون مالکین گوگل مولتی میلیاردر هستن، توی هزینه ها صرفه جویی نکنن.

2undercover
دوشنبه 02 تیر 1393, 12:23 عصر
درمورد Trigger و Event در MySQL بیشتر تحقیق کنید. خیلی چیزها رو نیازی نیست مرتب با PHP به خورد دیتابیس بدیم. ناسلامتی خود MySQL سرور و سرویس داره برای خودش و دائماً توی حافظه مقیمه. خیلی کارها رو میشه به خودش بسپریم.

خیلی ممنون، درسته میشه ساخت و ساز ها و ساخت نیرو هارو به خود MySQL سپرد. خوب شبیه سازی نبرد هارو که دیگه فکر نمی کنم بشه به MySQL سپرد، بالاخره این یک مورد رو حداقل باید توسط خود PHP انجام داد و باز هم باید هر ثانیه توسط PHP بررسی بشه اگه یک حمله به مقصد رسید، نتیجه رو شبیه سازی بکنه؟!

Tarragon
دوشنبه 02 تیر 1393, 12:32 عصر
با اجازه آقای شهرکی .

عزیز شما زمان رسیدن حمله رو بعنوان timestamp داری. درست؟
می گی ساخت هر سرباز تو این دهکده X ثانیه طول می کشه.
زمان شروع ساخت نیرو های جدید هم بعنوان timestamp توی دیتابیس داری.
می گی (زمان حمله - شروع ساخت ) تقسیم بر X این می شه تعداد سرباز های ساخته شده زمان حمله.
فقط باید رندش کنی که بهت سرباز نصفه نده!

MMSHFE
دوشنبه 02 تیر 1393, 12:53 عصر
خیلی ممنون، درسته میشه ساخت و ساز ها و ساخت نیرو هارو به خود MySQL سپرد. خوب شبیه سازی نبرد هارو که دیگه فکر نمی کنم بشه به MySQL سپرد، بالاخره این یک مورد رو حداقل باید توسط خود PHP انجام داد و باز هم باید هر ثانیه توسط PHP بررسی بشه اگه یک حمله به مقصد رسید، نتیجه رو شبیه سازی بکنه؟!

خوب منم نگفتم همه چیز رو به MySQL بسپریم. بهرحال روی سرور گیم اجرای یک اسکریپت Cron که فقط به بررسی زمانهای حمله میپردازه کار سخت و سنگینی نیست. وقتی هم به زمان مربوطه رسید، میتونیم بر اساس اطلاعات و قدرتهای دوطرف، شبیه سازی رو انجام بدیم که اونم یکسری محاسبات ریاضی و... است. البته برای اینکه هربار سربارهایی مثل بارگذاری مفسر PHP و درخواستها و گرفتن و آزادسازی منابع و... رو نداشته باشیم، میتونیم فرضاً Cron رو هر 30 ثانیه یکبار اجرا کنیم و توی اسکریپت، یک حلقه 30 مرتبه ای داشته باشیم که هربار دیتابیس رو چک میکنه و اگه حمله ای بود که زمانش رسیده بود، شبیه سازی رو انجام میده و نتایج رو میبره توی دیتابیس و با یک sleep یا usleep کاری میکنیم که این حلقه هر یک ثانیه یکبار اجرا بشه. اینم یک راهشه و در کل اگه بخوایم انجام بدیم راههای زیادی رو میشه ترسیم کرد.

eshpilen
دوشنبه 02 تیر 1393, 13:25 عصر
ببینید، اینکه فیسبوک اومده و PHP رو Tweak کرده تا سریعتر کار کنه و... باعث نمیشه فکر کنیم PHP جدیدی اختراع کردن. دستوراتش همونهاست منتها کارهای پشت پرده این دستورات با کدهای بهینه سازی شده C انجام میشه. در کل منظورم اینه که ساخت یک شبکه اجتماعی کار زیاد سختی نیست. حتی با خدماتی در حد فیسبوک. حالا اینکه فیسبوک اومده کدهای بهینه تری ساخته بخاطر اینه که حتی با سرمایه در حد فیسبوک هم صرفه جویی در منابع ایده بدی نیست. وقتی میشه با هزینه کمتر همون نتایج رو بدست آورد دلیلی نداره هزینه بالا رو به خودمون تحمیل کنیم. اما صحبت من چیز دیگه است. میگم اگه این امکان (تولید HipHop و...) هم برامون مقدور نبود، نوشتن چنین اسکریپتی با PHP کار سخت و غیرممکن و طاقت فرسایی نیست و فقط تجهیزات سخت افزاری مناسب میخوایم که بتونیم به تعداد کاربران بالا جواب مناسب بدیم. گوگل مطمئناً مشکل سرمایه نداره ولی میاد نیروگاه بادی تولید برق درست میکنه و اسمش رو گذاشته Green Server تا هم به محیط زیست کمک کنه و هم هزینه هاش رو کاهش بده. دلیلی نداره که چون مالکین گوگل مولتی میلیاردر هستن، توی هزینه ها صرفه جویی نکنن.
من تجربهء عملی خاصی ندارم اما تاجاییکه دانش و بینش بنده قد میده، مسائل متعدد و بزرگ و پیچیده ای در مقیاس بسیار بزرگ بوجود میان (که طبیعتا باید کیفیت سرویس هم با اون مقیاس و اعتبار هماهنگی کافی داشته باشه) که در مقیاسهای کوچک و معمولی وجود ندارن.
فقط بحث HipHop و پرفورمنس به تنهایی هم نیست. مثلا قبلا جایی خوندم که در فیسبوک یک فریمورک و سیستمی درست کردن که ویژگیها و امکانات جدیدی رو که میخوان اضافه کنن باهاش بصورت پنهان و پشت پرده (یا شاید هم بصورت محدود روی تعدادی از اکانتها) تست میکنن، چون امثال فیسبوک که سایت معمولی نیست مثلا یه مدت تعطیل کنن بگن داریم بروزآوری میکنیم و تغییر میدیم و این حرفا؛ باید حتی الامکان هیچوقت از دسترس خارج نشه و اگر هم میشه بصورت محدود و با سریع ترین سرعت برگشت ممکن. ویژگی و امکانات و کد و ساختار جدیدی رو میخوان پیاده کنن همینطوری نمیتونن بیان یهو توی سیستم در مقیاس کامل و بصورت واقعی اضافه کنن، چون ممکنه منجر به خیلی مشکلات و حتی فاجعه بشه و میلیون ها کاربر دچار مشکلات زیادی بشن که طبیعتا اعتبار و تعداد کاربران فیسبوک رو میتونه تحت تاثیرات جدی منفی قرار بده، ممکنه اصلا کل سیستم دچار مشکلات جدی و نتیجتا داون بشه، ممکنه حفره ها و مشکلات امنیتی پیشبینی نشده ای پیش بیان، ممکنه به هر دلیلی از نظر پرفورمنس از چیزی که فکرش رو میکردن سنگین تر و مشکل زا تر بشه و با اجزاء دیگری دچار تداخل های پیشبینی نشده بشه، ممکنه هزار و یک چیز پیشبینی نشده پیش بیاد خلاصه. بخاطر همین اینا باید چنین چیزی رو درست میکردن که بتونن اون امکانات و کدهای جدید رو در عین اینکه در شرایط و مقیاس بقدر کافی واقعی تست میکنن تا بتونن بقدر کافی از صحت و عملکردش اطمینان داشته باشن و این ریسک ها رو به حداقل برسونن، درصورت بروز مشکلات در جریان این آزمون و برآوردها، خسارت و صدمهء اون هم حداقل باشه و بتونن به سرعت کنترل و غیرفعالش کنن و بدون اینکه برای کاربران مشکل جدی پیش بیاد یا حتی متوجه بشن اون و سایت و سیستم حتی بصورت موقتی و کوتاه داون بشه (یا حتی بخشی از اون) جلوش رو بگیرن یا تغییرش بدن و کدها و روش جدیدی رو تست کنن.
مطمئن باشید این فقط یکی از ده ها و صدها مورد مسائلی بوده که در چنین مقیاس هایی مطرح میشن که در مقیاس ها و سایتهای عادی وجود/اهمیت چندانی ندارن و میشه اونا رو به کل نادیده گرفت.
حالا مثلا ملت ما فیسبوک رو درست میکردن چی میشد؟! اصلا در وهلهء اول به اون مقیاس و موفقیت و اعتبار میتونست برسه؟ بعید میدونم!
همینطوریش سایتها و سیستمهای کشوری مملکت رو داریم میبینیم که آدم برای یک ساعت هم نمیتونه خیالش راحت باشه که وسط یک کاری یه مشکلی توی سیستم پیش نیاد. من خودم تاحالا با اینطور سایتها و سیستمها کار کردم مشکلات و داون شدن و تغییراتی که بعدش تازه میفهمن فلان جا و فلان جا واسه فلان افراد چه مشکلاتی ایجاد کرده درشون به فراوانی دیدم و میبینم.
نمیگم که مثلا مال آمریکا و اروپا و فیسبوک دچار چنین مشکلاتی نمیشن یا امکانش اصلا نیست، ولی باز اونا کارشون حساب شده تره و کنترل شده تر و روی اصول و ابزار بهتری هست که این نرخ چنین مشکلاتی رو و ریسک و خسارت ها رو اغلب به میزان زیادی کاهش میده. و همین میزان در عمل مهمه و منجر به تفاوت اعتبار و گسترش و عدم گسترش یا حتی موفقیت/بقا و شکست/عدم بقای یک سیستم میشه.
اون مهندسان و برنامه نویسانی که از پس پروژه هایی مثل hiphop برمیان هستن که میتونن این سیستمها رو واقعا درست و حسابی بسازن و روی پا نگه دارن. با اطمینان کافی و حداقل ریسک.
سواد و توانایی اونا کجا و برنامه نویسان معمولی کجا!
بنظرم مسلم هست که امثال فیسبوک و گوگل تعدادی از برترین برنامه نویسان دنیا رو در اختیار دارن و این مسلما برای موفقیت اونا ضروری یا بسیار مهمه.
به اینا دیگه فقط نمیشه گفت برنامه نویس. باید گفت اعجوبه، دانشمند، خبره، نابغه، نخبه، غول.

peymang
دوشنبه 02 تیر 1393, 17:20 عصر
.
به اینا دیگه فقط نمیشه گفت برنامه نویس. باید گفت اعجوبه، دانشمند، خبره، نابغه، نخبه، غول.

برو بالاتر :لبخندساده:

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

مثلا اقای شیرازی یا آقای چنگیزی یا اقای شهرکی

یا اگه کار گروهی بخوایم شرکت بیان که خدمات خوبی هم میده یا ایران نهاد

چیزی که ما نداریم اینه که
باور نداریم می تونیم یه کاری رو انجام بدیم
( اینو بنویس یه جایی :لبخند: )

#Elahe#
دوشنبه 02 تیر 1393, 22:49 عصر
فیسبوک و امثال فیسبوک حاصل مدیریتهای کلان هست نه تواناییها و استعدادهای فردی !
حتی همین استعدادها هم حاصل مدیریتهای مذکور هستند
چرا آقا یا خانوم x تو ایران یه فرد عادیه ولی در امریکا رئیس و مدیر فلان شرکت بزرگ ؟! مطمئنا همون مدیریتهای کلان این آقا | خانوم x رو کشف و تربیت کرده
اکثر کشورهای توسعه یافته مثل امریکا نیروهای کارشون اکثریت تشکیل شده از افراد مهاجر است که باز هم همون مدیریت کلان افراد رو از کل دنیا جذب و تربیت میکنه !
وگرنه مسلما یه فرد با آی کیوی هزار تو ایران باشه یا تو امریکا نتیجه زمین تا آسمان فرق خواهد کرد
اکثریت قریب به اتفاق سوئد مردمی آسایش طلب هستند و نیروی کاری این کشور هم اکثریت قریب به اتفاق مهاجر هستند
یعنی یه شرایطی رو به وجود میارن و مدیریت میکنند که مردم دنیا آرزو میکنند کاش میتونستند اقامت این کشور رو بگیرند !

فقط و فقط مدیریت

eshpilen
سه شنبه 03 تیر 1393, 09:59 صبح
برو بالاتر :لبخندساده:

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

مثلا اقای شیرازی یا آقای چنگیزی یا اقای شهرکی

یا اگه کار گروهی بخوایم شرکت بیان که خدمات خوبی هم میده یا ایران نهاد

چیزی که ما نداریم اینه که
باور نداریم می تونیم یه کاری رو انجام بدیم
( اینو بنویس یه جایی :لبخند: )

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

بعضیا فکر میکنن من خودم رو در برابر خارجیها باختم و بزرگ نمایی میکنم و اعتمادبنفس ندارم.
ولی باید بگم اگر اینطور بود که اصلا چرا این همه توی این رشته مطالعه کردم و وقت و انرژی گذاشتم و اگر فکر میکردم که نمیشه و نمیتونم پس چرا رها نکردم برم دنبال چیز دیگری!
البته باید بگم که بنده بنوعی خودم رو مجبور به طی کردن این راه میدونستم چون راههای بدردبخور دیگری که عملی تر باشن سراغ نداشتم. پس درواقع به اعتمادبنفس، کمتر نیاز داشتم، چون بهرحال خودم رو مجبور به طی این مسیر میدیدم، حال نتیجه هرچه میخواست باشد و نهایت به هدفم برسم یا نرسم بهرحال تاثیر چندانی در طی این مسیر نمیذاشت. و این بنظر من بهتر از اعتمادبنفس کاذب و تلقین کردنه، چون اساسی تر و محکم تره؛ و این تاحد زیادی حاصل تفکری علمی و منطقی و واقعگرایی و عملگرایی بوده، نه هیجان، و نه هر نوعی از باورهای کور.
من هم میگم نشدنی نیست، و نمیشه گفت نمیتوانیم، اما میگم، 1) راه اصولی و قوی ترینش از چیزی که اکثریت افراد عادی فکر میکنن تاحد قابل توجهی متفاوت و طولانی تر و دشوارتر است، 2) تضمینی برای شدنی بودن و توانستن و موفق شدن وجود ندارد (از نظر عقلانی و علمی)، ولی چون راه دیگری نیست و مجبور هستیم، بنظرم تفاوت چندانی هم نمیکند! (حداقل در اینکه باید در این راه اصولی تلاش کنیم).

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

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

MMSHFE
سه شنبه 03 تیر 1393, 10:25 صبح
دوباره شروع شد بحثهای طولانی و حاشیه ای که ربطی به موضوع اصلی تاپیک هم نداره. استارتر دقیقاً گفته: «چگونگی...» و نگفته: «آیا میتوانیم...» که دارین در این مورد بحث میکنید. اما بهرصورت یک چیزی مسلمه و اون اینکه راه اندازی سایتی مثل فیسبوک یا یک بازی مثل تراوین نیاز به سخت افزارهای قدرتمندی داره. دانش برنامه نویسی و قدرت تجزیه و تحلیل و طراحی دیتابیس خوبی هم میخواد اما برای شروع کردن، لازم نیست همه دانش موردنیاز برای حد نهایی چنین اپلیکیشنهایی رو همون اول کار داشته باشین. حتی تجهیزات سخت افزاری هم در ابتدای کار نیاز نیست خیلی قوی باشه. برای مثال همین سایت کلوب دات کام خودمون روزهای اول با VPS و... شروع کرد و کم کم توسعه داد و امکانات اضافه کرد و یکی دو بار هم کامل بازنویسی شد. سایتهای بزرگ هم همینطور هستن. درسته که راه اندازی سایتی به بزرگی فیسبوک ممکنه در نگاه اول از توان ایرانیها خارج بنظر برسه (حداقل ازنظر منابع سخت افزاری و مواردی مثل پهنای باند که در ایران فوق العاده گرونتر از خارج از کشوره)، اما حقیقتاً برای شروع چنین پروژه هایی اینقدر سرمایه مالی و توان علمی لازم نیست. وقتی شروع به کار کنیم و در کنار بزرگ شدن سایت، یک ایده تجاری هم کنارش بگذاریم که درآمدزا باشه برامون، کم کم میتونیم هزینه های بزرگ شدن پروژه رو هم تأمین کنیم. بهرحال من شخصاً معتقدم بزرگترین مانع دربرابر موفقیت و پیشرفت آدمها، ندای درونی اونهاست که میگه: نمیتونی! اگه از این سد رد بشیم، خیلی کارها رو میتونیم انجام بدیم. همون بحث مدیریت رو هم که اشاره کردن اگه درنظر بگیریم، واقعاً ازنظر دانش و تئوری مدیریت در ایران چیزی کم و کسر نداریم و تمام سرفصلهای مدیریت منابع انسانی و روانشناسی کار و مدیریت زمان و خلاقیت و... توی ایران هم تدریس میشه و کتابهاش هم (اعم از فارسی یا زبان اصلی) در دسترسه و خیلیها هم خوندن و واقعاً هم فهمیدن. مشکل ما اینه که مدیران ادارات ما افراد فنی هستن و دست به آچارهای ما، مدیران بالقوه. تازه همون افراد فنی که مدیر میشن هم در رشته غیرمرتبط تحصیل کردن (برای مثال معاون فناوری اطلاعات استانداری ...) رو میشناسم که فوق لیسانس کشاورزی داره. پیدا کردن ارتباط بین اون تخصص (اگه تخصصی در کار باشه) با این فیلد کاری با شما !

eshpilen
سه شنبه 03 تیر 1393, 11:09 صبح
حالا بنظر شما کلوب دات کام چقدر با فیسبوک قابل مقایسه است؟
من همون اول یخورده برانداز کردمش بنظرم نشانه های ناشیانه بودن درش مشخص بود!
ضمنا شما با سانسور اون پست من مثلا به علم و فناوری این مملکت فکر کردید کمک میکنید؟ نه بابا همین سیستم که بالای سر شماست و نصف اینترنت رو زده چپ و چول کرده بخاطر همین طرز تفکر و ظرفیت افرادی مثل شماست. تا وقتی هم چنین افرادی هستید و چنین سیستمی دارید، عمرا نمیتونید به امثال آمریکا برسید. از اونور تحریم میشید بخاطر گنده گویی ها و گنده بینی های داخلی، از اینور هم خودشون باز بدون قائل شدن هیچ حق و حقوق و اهمیت کافی برای شما و بدون پاسخگویی و مدیریت لازم نصف امکانات و سایتهای اینترنت رو مختل میکنن. فکر میکنید اونا کمتر از شما ادعای ادب و فهم و معنویت دارن و واقعا کمتره؟ واقعا فکر میکنید یک مملکت با این وضع نابسامان در قوانین و حقوق مدنی و امکانات پایه فنی، میتونه با کشورهای پیشرفته رقابت کنه؟
باز میگید اونا هم سانسور دارن، بلکه دارن ولی خیلی کمتر از مال ما و به شکل اصولی تری. همین تفاوت مسلما در عمل هم تفاوت ایجاد میکنه اونقدری که مهم باشه.

eshpilen
سه شنبه 03 تیر 1393, 11:14 صبح
شما حرفهایی رو که باید زده بشه و مشکلات اساسی توی مردم رو نمیذارید مطرح بشن.
من میگم آقا شما که نمیرید زبان یاد بگیرید، درحالیکه توی تخصص و کار شما خیلی مهمه و پایه است، خب مشکل از همین جا شروع میشه، وقتی مسائل سطح پایین تر و پایه ای رو رها کردید اونوقت چطور حرف از چیزهای سطح بالاتر و گنده تر میزنید و ادعا میکنید.
بعد شما میای پست منو با عنوان بی ربط بودن و نمیدونم اهانت و این حرفا سانسور میکنی!
فکر میکنی مثلا خیلی میفهمید امثال شما؟
خیلی هم با سواد باشی و بهترین حرفهای فنی رو بزنی، بازم این مشکلات اساسی رو حل نمیکنن، چون مشکل وقتی توی تفکر و انتظارات و نگرش و همت خود آدماست، هیچوقت با طرح بحثهای فنی و ادعا و شعار درست نمیشه.
اتفاقا صحبتهای من با ربط هستن، و اگر توهین آمیز بنظر میان بخاطر اینه که سطح مردم اونقدر پایینه که وقتی من مجبور میشم با صراحت بیان کنم انگار بهشون فحش دادی!! مثل اینکه یکی بدکاره باشه و بهش بگی تو بدکاره هستی، درواقع شما واقعیت رو بیان کردی و قصد توهین هم نداشتی، ولی اون طرف چون خودش اون صفت و وضعیت زشت رو داره حتی بیانش هم زشت و جرم بنظر میاد. حالا شما میگی اصلا نباید گفت؟

در بحثی که در پستهای خصوصی داشتیم شما گفتی مسئله سنه و اینکه دیگران قد شما فرصت نداشتن، اما در عمل میبینی که قضیه فقط این نیست، بلکه قضیه سطحی بودن، تنبل بودن، پر انتظار بودنه. وگرنه من چطور وقتی سنم پایین تر بود یا حداقل اولین روزهایی که شروع کردم اینطوری نبودم؟
کسی که جدیت و همت و عمق نداره که کار و قدمهای اول و پایه رو اصولی شروع و کامل کنه، در بقیهء عمر و زندگیش هم همینطور عمل خواهد کرد؛ همه چیز رو سنبل و سطحی انجام میده میره پی کارش. با این رویه هم که نمیشه هر کاری کرد!
حالا شما هی بگو اعتمادبنفس، ما میتوانیم (احتمالا منظورتون در سانسور و سرکوب نیست)، و نسبت به افرادی مثل من ابراز تنفر و برائت کن!
اگر میتوانید، پس اول درس و مشق خودتون رو درست انجام بدید!

abolfazl-z
سه شنبه 03 تیر 1393, 12:45 عصر
در بحثی که در پستهای خصوصی داشتیم شما گفتی مسئله سنه و اینکه دیگران قد شما فرصت نداشتن، اما در عمل میبینی که قضیه فقط این نیست، بلکه قضیه سطحی بودن، تنبل بودن، پر انتظار بودنه. وگرنه من چطور وقتی سنم پایین تر بود یا حداقل اولین روزهایی که شروع کردم اینطوری نبودم؟


میتونین بگین چطوری شروع کردین ؟

MMSHFE
سه شنبه 03 تیر 1393, 12:51 عصر
باشه جناب، شما دنبال مستندات و اصول و علم باش. بگذار بقیه کارشون رو انجام بدن. علت حذف پست شما رو نوشتم و ربطی به سانسور نداره. توهین به کاربران دیگه ممنوعه. فکر نمیکنم مسئله غیر واضحی توش باشه. هرچقدر دلت میخواد باسواد باش ولی حق نداری به کسی توهین کنی. این قانون این سایته. شما اگه خوشت نمیاد دلیلی نداره اینجا بمونی و فعالیت کنی ولی اگه موندی باید به قوانینش احترام بگذاری (حتی اگه بنظرت بد یا اشتباه باشه). درست مثل اون خارجیهایی که میان ایران و باید حجاب اسلامی رو رعایت کنن (با اینکه بهش اعتقادی ندارن). بودن قانون بد بهتر از بی قانونیه. از پست های شما هم تا حالا بجز اطلاعات اندک ولی بعضاً واقعاً سودمند در مبحث امنیت و یکسری مباحث متفرقه دیگه (که تعدادشون زیاد نیست) چیز دیگری غیر از سرزنش و نگاه بالا به پایین به دیگران، عاید کسی نشده. تا وقتی من مدیر این بخش از سایت برنامه نویس هستم، اجازه چنین رفتاری رو نمیدم. بعید میدونم کسی از کاربران هم خوشش بیاد همراه با آموزش، تحقیر هم بشه. توی پیام خصوصی قبلاً بهتون اخطار داده بودم که پستهای توهین آمیز رو بدون اخطار قبلی حذف میکنم. مطالبی هم که از شما حذف شده، مطلب علمی مهمی نبوده و صرفاً پستهای اهانت آمیز رو حذف کردم و این با سانسور و سرکوب فرق میکنه. ضمناً درست حدس زدین، از افرادی که دیگران رو کوچک میشمرن و فکر میکنن واقعاً خیلی بلدن (درحالی که دانش اندکی دارن و فقط در یک زمینه خاص نسبت به بقیه بیشتر میدونن - اونهم نه همه افراد) واقعاً نفرت دارم اما این احساس نفرت و انزجار شخصی رو توی حذف پستهاتون دخیل نمیکنم و مطابق قوانین و هشدارهای قبلی، پستهای شما و هر فرد خاطی دیگه حذف خواهد شد.

eshpilen
سه شنبه 03 تیر 1393, 13:57 عصر
از پست های شما هم تا حالا بجز اطلاعات اندک ولی بعضاً واقعاً سودمند در مبحث امنیت و یکسری مباحث متفرقه دیگه (که تعدادشون زیاد نیست) چیز دیگری غیر از سرزنش و نگاه بالا به پایین به دیگران، عاید کسی نشده.

شما هم بهتره بجای اینکه برای مبتدی های کم سواد کد آماده بنویسی و لقمه رو بجوی و بذاری دهنشون، که حالا دوتا برنامه درپیت رو که دارن درست میکنن و شاید خودشون رو بجای برنامه نویس درست و حسابی هم معرفی کردن و دارن کار تجاری میکنن که معلومه با این سطح سواد و توان و وصله و پینه و یکی از اینجا یکی از اونجا کپی پیست و کمک گرفتن چی میخواد دربیاد، نقش پایه ای تری رو ایفا کنی و بهشون بفهمونی که این رشته الکی نیست علمه اصول داره مسیر داره زمان و زحمت میخواد باید اول پایه ها و ضروریات رو یاد بگیرن نه اینکه زرتی شروع کنن کد زدن و برنامه و سایت درست کردن. بهشون بگی چرا نرفتید زبان یاد نگرفتید و چرا نمیرید خب باید برید بالاخره اونم هرچه زودتر چون پایه ای چون اولیه است بعد که یاد گرفتید دیگه نیاید وقت خودتون و دیگران رو بگیرید یه سرچ میزنید توی اینترنت کلی جواب و مطلب و چیز آماده هست.
انصافا شما خودت اینطوری شروع و طی مسیر کردی و همینطور برنامه سرهم کردی و کد وصله و پینه و کپی پیست و کمک از این و اون، که حالا واسه خودت کسی شدی؟ بعید میدونم!
فکر میکنی با این کمک ها، که مثال همون ماهی دادنه، این افراد عوض میشن و پیشرفت میکنن و حرفه ای میشن؟ فردا میخوان چکاره مملکت بشن و چه کارهای بزرگی رو به خوبی انجام بدن مثلا؟ زهی خیال باطل!
درسته شما سعی میکنی یه چیزایی هم در این حین آموزش بدی، ولی حکایتش مثل اینه که برای یک شاگرد تنبل و بی انگیزه بیای و هرچند وقت یک بار که توی مشق شبش گیر کرده مسئله رو حل کنی، بذاری جلوش، چند خط مربوط از کتاب درسی رو پیدا کنی و توضیح بدی براش، به این امید که بفهمه و پیشرفت کنه و در آینده یک متخصص و حرفه ای بشه!
خیلی از اون چیزایی که شما میذاری و سعی میکنی یاد بدی، شاگرد اگر همت و جدیت و صلاحیت قبولی در اون رشته رو داشت باید خودش قبلا میخوند و خیلی بیش از اون هم یاد میگرفت.
اینکه بنده از اینطور کارها نمیکنم یکی بخاطر همینه که بنظرم در این سطح و به این شکل کمک کردن کار عبث یا حداقل کم بازدهی است، و حتی شاید بتونه مضر هم باشه! واقعا چرا باید فکر کرد که هرکسی با هر سن و سطح سواد و توانی باید بتونه بیاد توی این رشته و بمونه و کار کنه و ما هم باید در این امر کمکش کنیم؟ بنظرم بهتره آدمهایی که صلاحیت ندارن، در همون سطوح پایین از حرکت باز بمونن و دیگه بطور کاذب وارد سطوح و اعتبارهای بالاتر نشن. اگر هر وقت همت و انگیزه نشون دادن و تکالیف شخصی خودشون رو حداقل سعی کردن انجام بدن، اونوقت ما هم سعی میکنیم اگر میتونیم کمکشون بکنیم، که البته بازم این کمک نمیتونه در تمام موارد به اون شکل لقمه رو جویدن و دهن طرف گذاشتن باشه (اگر اصولا وقتش رو داشته باشیم)، چون طرف بالاخره خودش یه حداقل استعداد و کاری باید داشته باشه و انجام بده یا نه؟
الان لابد باز میخوای بگی توهین کردی :لبخند:
عزیزم توهین کجا بود، این عین واقعیته که آدم میبینه. حالا من نگم یا بیام پشت پرده بگم که به این افراد برنخوره؟! من فکر کنم اتفاقا اینجا جای اینطور افراد و اینطور کارها و اینطور تیتیش بازی و نازک نارنجی بودن ها نیست تا اینکه بگید جای افراد و حرفهایی مثل ما نیست، مگر اینکه اینجا رو بیشتر دارای اولویت برای یه فروم برای برنامه نویسان مبتدی و سطحی و افراد کم سن و سال و کم تجربه بدونید.

eshpilen
سه شنبه 03 تیر 1393, 14:07 عصر
صد سال دیگه هم بگذره، من نمیام مثل شما تکالیف دیگران رو براشون حل کنم تا برنامه وصله و پینه کنن. بلکه بازم میگم خب شما اول چطور برنامه نویسی هستی که زبان بلد نیستی، نمیتونی از منابع انگلیسی استفاده کنی، یه سوالایی میای میپرسی مثل اینکه «آیا برای برنامه نویس شدن رگولار اکسپرشن بلد بودن لازمه؟»، قضیه هم این نیست که تلاش کردی وقت گذاشتی ولی نشده، بلکه اصولا معلومه از اولش به خودت زحمت ندادی و خواستی سریع و راحت فقط بری جلو به خیال خودت، یا شایدم این برات بیشتر یه بازی و سرگرمی بنظر میامده تا کار و مسئله ای جدی و فکر کردی با همین دید میتونی توش پیش بری و حتی کار کنی و تازه پول گنده و راحت هم به جیب بزنی!
میگن نابرده رنج گنج میسر نمیشود!
من چیزی و کمکی به اون شکلها برای این افراد ندارم، بلکه هیچ پاسخ و راهکار و نصیحت واقعا بدردبخور و اصولی برای این افراد بنظرم نمیاد جز اینکه بگم درس و مشق خودتون رو خودتون و درست و کامل باید انجام بدید، وگرنه نمیتونید پخی بشید و کارهایی رو بکنید که پخهاش میکنن، انتظار زیادی هم نداشته باشید، این یک مسئلهء سطحی و سرگرمی و اینجا میدان بازی نیست.

شما به این میگی دید بالا به پایین، توهین، غرور، ...

ولی من به این میگم یک دیدگاه و نظر حرفه ای!

MMSHFE
سه شنبه 03 تیر 1393, 14:15 عصر
اون آموزشهای فنی و تخصصی که شما ازش یاد میکنید رو هم در دستور کارمون داریم. پکیجها رو ندیدین؟ سرفصلهاش رو نخوندین؟ ولی همه چیز قدم به قدم. کسی که میخواد یه چیزی یاد بگیره اول باید ترغیب بشه. چهارتا چیز ساده انجام بشه تا ببینه واقعاً هم اینقدرها کار غیرممکن و مسئله بغرنجی نیست. بعدش بهم میگیم عزیز من اون مسئله که اون شکلی برات حلش کردیم، علت نوشتن هرکدوم از اون خطوط کد، این بود که الان بهت میگیم. خدا رو شکر تا اینجا این روش جواب داده و اگه کمی روند کاری بقیه رو دنبال کنید، میبینید که خیلی از مشکلات و سؤالاتی که امروز داره پاسخ داده میشه، توسط کسانی به جواب میرسه که تا دیروز خودشون سؤالات بسیار مبتدیانه تری داشتن. شما هنوز دلت از اون تاپیک RegExp پره درحالی که عقیده من هنوز هم اینه که وقتی من نوعی، عبارات با قاعده رو یاد گرفتم، بهتره بیام یک آموزش فارسی درست کنم تا بقیه هم لازم نباشه برای یادگرفتنش همون مسیر سختی که من رفتم رو برن.

leaping
سه شنبه 03 تیر 1393, 22:58 عصر
از این دوستان عزیز زیاد بودن ... دلیلش رو خوب میشه درک کرد:چشمک:

eshpilen
چهارشنبه 04 تیر 1393, 08:30 صبح
اون آموزشهای فنی و تخصصی که شما ازش یاد میکنید رو هم در دستور کارمون داریم. پکیجها رو ندیدین؟
سرفصلهاش رو نخوندین؟
اگر پول نمیخواست یه نگاهی میکردم.
راستیتش وضع مالی چندان خوب نیست و ضرورت ندیدم برای این موارد پول خرج کنم.


بهتره بیام یک آموزش فارسی درست کنم تا بقیه هم لازم نباشه برای یادگرفتنش همون مسیر سختی که من رفتم رو برن.
من خیلی چیزها خوندم تاحالا که دلم میخواسته ترجمه کنم و در اختیار دیگران هم بذارم، اما خب وقت نمیشه!
اینقدر مطالب زیاد هست که اگر حتی بخوام گوشه ای از اونا رو ترجمه کنم باید روی هم رفته چند سال از عمرم رو صرف این کار کنم، و این در حالیه که واسه کارهای خودم هم به زور وقت دارم و باید به فکر آیندهء شغلی و درآمد خودم هم باشه؛ پس مجبورم به کارها و اهداف شخصی خودم اولویت بدم.
حالا شما دوتا ترجمه و کتاب هم تولید کردی، بقیش چیه، و اون بحث تنبلی و عجول بودن و پرانتظار بودن افراد چی میشه، و مثلا بالاخره کی دنبال یادگیری پایه اصولی و کامل خواهند رفت کی میرن دنبال یادگیری زبان که خودشون از منابع اصلی استفاده کنن آیا بنظر شما با این کار شما و وجود ترجمه های بیشتر به این مسئله کمکی میشه و این رویه تغییری میکنه؟
من همیشه سعی کردم تنها مهمترین و اساسی ترین موارد ضروری رو ترجمه/مطرح کنم، یا مواردی که گوشی و سرنخ یا بهرصورت انگیزه دست افراد بدن که بفهمن داستان چیه فلان چیزهایی هم انگار هست و انگار مهمه و باید یاد گرفت، بعد خودشون باید انگیزه و همت داشته باشن و برن سراغ یادگیریش، یا مواردی که ترجمه و کار روی اونا محدود بوده و وقت و انرژی زیادی صرف نمیکرده در عین حالی که جالب و بدردبخور بودن.
خلاصه منابع محدود است. نباید و نمیشه بدون محدودیت صرفش کرد و نباید روی چیزهای کم بازده هدرش داد.

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

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

eshpilen
چهارشنبه 04 تیر 1393, 09:09 صبح
بنده از بچگی به علم و فناوری علاقهء وافری داشتم. البته یک دلیل مهمش هم این بود که پدرم منو به این چیزا علاقمند کرد، چون خودش صنعتگر و مخترع بود و به علم و فناوری علاقه داشت.
بچه که بودم فکر میکردم میشه همینطوری صرفا با علاقه از هر راه و روشی یه پخی شد و علم و فناوری یاد گرفت؛ میرفتم همینطور از اینور و اونور هرجا دستم میامد، کتاب، مجله، مطالب علم و فناوری رو ساعتها با لذت مطالعه میکردم. همینطور پراکنده و بدون زمینه و یادگیری و تئوری خاصی. مثلا اگر هم جایی توی مطلبی ریاضی داشت حالم گرفته میشد و از روش رد میشدم!
ولی به مرور فهمیدم، و الان خوب میفهمم، که هرچیزی یه روش و اصول و پایه ای میخواد، و برای اینکه در علوم و فناوری مدرن هم پیشرفت کنی باید به ترتیب و طبق اصولش پیش بری، باید زبان یاد بگیری، حداقل مقداری ریاضی، و مباحث تئوریک لازم رو. الان میبینم که در یک روز و یک ساعت چیزهایی که یاد میگیرم اصلا قابل مقایسه با اون زمان و اون روش بچگیم نیست، یعنی الان چیزهای خیلی بدردبخورتری رو در زمان کوتاهتری میتونم یاد بگیرم، و این بخاطر کامل و قوی کردم پایه و روش اصولی ای است که الان دارم و اون موقع نداشتم. اون موقع درحد یکسری اطلاعات عمومی و ایده های سطحی و پراکنده بود.

کسی عمرا با خوندن چندتا آموزش و ترجمه فارسی، هرچقدر هم که زیاد و عالی باشن، نمیتونه یک نخبه بشه در این رشته در این زمان!
این یک واقعیته.
اصلا نخبه که خیلی زیاده، حتی همون برنامه نویس معمولی خوبی هم اساسا شک دارم بتونه به این راحتی بشه. چون اینقدر نیازهای این رشته گسترده و ارتباطها و اشکال متفاوت و پیچیده هستن و با سرعت هم تغییر و افزایش توشون هست، که طرف باید خودش زبان یاد بگیره و از منابع اصلی استفاده کنه؛ این یک ضرورته. نه تنها توانایی خوندن منابع اصلی، بلکه توانایی فهمیدن مطالب استاندارد، نه اینکه همش برای هرچیزی نیاز به tutorial for dumb people داشته باشه! یعنی مثلا دنبال یک آموزش و توضیح کامل و گام به گام هلو برو توی گلو و جویده شده که افراد واقعا کم سواد هم بتونن بفهمن، شاید مثل آموزشهای مهندس شهرکی، بگرده و اگر پیدا نکنه به مشکل جدی بربخوره و نتونه کامل و مطمئن یه چیزی رو یاد بگیره!

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

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

2undercover
چهارشنبه 04 تیر 1393, 09:26 صبح
با تشکر از همه ی عزیزان. من فک می کنم به یک جوابی رسیده باشم، پیشنهاد برای جلوگیری از ادامه ارسال پست های بی ربط به عنوان این تاپیک، تاپیک بسته بشه.

eshpilen
چهارشنبه 04 تیر 1393, 10:34 صبح
برای چی میخوای تاپیک بسته بشه؟
فکر میکنی این پستهای بی ربط به شخص شما یا دیگران ضرری میزنن؟
شما که میگی به جواب رسیدی و دیگه با تاپیک کاری نداری، پس چه اشکالی داره درش بحث دیگری بشه شاید حداقل دو طرف بحث سودی ازش ببرن.
من فکر میکنم این از روی ترس یا ناخوشایند بودن این بحثها برای شماست که میخواید بحث رو خاتمه بدید، وگرنه بحال شما چه فرقی میکنه؟
متاسفانه شما ملتی هستید که از رویارویی با واقعیات و مطرح شدن نقصها و اشکالات بنیادینی که در تفکر و رفتارتون وجود داره اجتناب میکنید. دقیقا به همین دلیل هم هیچوقت نمیتونید از یک حدودی فراتر برید.
همچین میگه پستهای بی ربط به عنوان این تاپیک که انگار این تاپیک ناموسشه یا برند معروفی چیزی هست که داریم ازش سوء استفاده میکنیم یا شاهکار و مطالب عالی ارائه داده که نمیخواد وجهش خراب بشه :قهقهه:

pars1376
چهارشنبه 04 تیر 1393, 10:56 صبح
متاسفانه شما ملتی هستید که از رویارویی با واقعیات و مطرح شدن نقصها و اشکالات بنیادینی که در تفکر و رفتارتون وجود داره اجتناب میکنید. دقیقا به همین دلیل هم هیچوقت نمیتونید از یک حدودی فراتر برید.


شما حرفتون تقریبا درست
اما چرا ملت؟ شما خودت از این ملت نیستی؟

MMSHFE
چهارشنبه 04 تیر 1393, 11:16 صبح
برای چی میخوای تاپیک بسته بشه؟
فکر میکنی این پستهای بی ربط به شخص شما یا دیگران ضرری میزنن؟
شما که میگی به جواب رسیدی و دیگه با تاپیک کاری نداری، پس چه اشکالی داره درش بحث دیگری بشه شاید حداقل دو طرف بحث سودی ازش ببرن.

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

MMSHFE
چهارشنبه 04 تیر 1393, 11:17 صبح
اگر پول نمیخواست یه نگاهی میکردم.
راستیتش وضع مالی چندان خوب نیست و ضرورت ندیدم برای این موارد پول خرج کنم.
نگاه کردن سرفصلهاش که رایگانه. خوندن نظرات کسانی که تهیه کردن هم مجانیه و فقط وقت آزاد میخواد که شما زیاد داری.

eshpilen
چهارشنبه 04 تیر 1393, 12:00 عصر
سرفصل که کیفیت محتوا رو کاملا روشن نمیکنه.
نظرات دیگران هم معیار معتبری نیست. البته تا اینکه دیگران کی باشن!

MMSHFE
چهارشنبه 04 تیر 1393, 12:15 عصر
دلیلی نداره این همه آدم برای خوش آمد گویی پست گذاشته باشن. شما هم بد نیست یکم عینک بدبینیتون رو بردارین تا ببینین توی ایران هم هستند کسانی که از کمک به بقیه لذت میبرن. ضمناً تعریفها شاید ازنظر شما ساختگی باشه یا هر چیز دیگه ولی قطعاً پیش خریدها پکیج PHP پیشرفته (که هنوز تولیدش کامل نشده) (لینک (http://epay.i-nahad.ir/box/6)) یه چیزهایی رو ثابت میکنه.

eshpilen
چهارشنبه 04 تیر 1393, 13:26 عصر
من از نظر منطقیش گفتم مهندس.
شما تاحالا این همه باهاتون بحث کردم ظاهرا هنوز متوجه نشدید که من همیشه سعی میکنم بر اساس منطق محض حرف بزنم، فکر و قضاوت کنم. وگرنه بله در اینکه آموزشهای شما به احتمال زیاد خیلی هم خوبه شکی نیست. فقط گفتم اون دلایل چندان محکم نیستن از نظر منطقی و اثبات قطعی نمیکنن.
ضمنا اصولا در این موضوع ارتباط چندانی به بحثهایی که داشتیم ندیدم!
آموزشهای شما فرض کن عالی، فرض کن ملت رو پیشرفت میده، هرچقدر زیاد، ولی بازم معجزه که نمیکنه! جای اون چیزهایی رو که گفتم نمیگیره که. میگیره؟ جای زبان و منابع گسترده انگلیسی رو میگیره؟ عمرا! جای زحمت و تلاش و جدیت و یادگیری اصولی شخصی رو میگیره؟ شما که نمیتونی تمام موضوعات و جزییات برنامه نویسی رو اینطوری به شکل آموزش دربیاری و به زور ملت رو وادار کنی همه رو کامل و دقیق بخونن و یاد بگیرن. بهرحال نهایت افراد باید یاد بگیرن که اصولی کار کنن و درس و مشق و تکالیف خودشون رو خودشون انجام بدن.

MMSHFE
چهارشنبه 04 تیر 1393, 13:28 عصر
بله حرف شما درسته و باید روی زبان انگلیسی بعنوان پیشنیاز برای رشد در رشته کامپیوتر کار بشه ولی بهرصورت این ذهنیت که منبع فارسی خوب و بدرد بخور نداریم یا اگه کسی بلد باشه، فایده نداره که مجموعه آموزشی فارسی بسازه هم ذهنیت اشتباهیه.

leaping
چهارشنبه 04 تیر 1393, 14:50 عصر
من از نظر منطقیش گفتم مهندس.
شما تاحالا این همه باهاتون بحث کردم ظاهرا هنوز متوجه نشدید که من همیشه سعی میکنم بر اساس منطق محض حرف بزنم، فکر و قضاوت کنم. وگرنه بله در اینکه آموزشهای شما به احتمال زیاد خیلی هم خوبه شکی نیست. فقط گفتم اون دلایل چندان محکم نیستن از نظر منطقی و اثبات قطعی نمیکنن.
ضمنا اصولا در این موضوع ارتباط چندانی به بحثهایی که داشتیم ندیدم!
آموزشهای شما فرض کن عالی، فرض کن ملت رو پیشرفت میده، هرچقدر زیاد، ولی بازم معجزه که نمیکنه! جای اون چیزهایی رو که گفتم نمیگیره که. میگیره؟ جای زبان و منابع گسترده انگلیسی رو میگیره؟ عمرا! جای زحمت و تلاش و جدیت و یادگیری اصولی شخصی رو میگیره؟ شما که نمیتونی تمام موضوعات و جزییات برنامه نویسی رو اینطوری به شکل آموزش دربیاری و به زور ملت رو وادار کنی همه رو کامل و دقیق بخونن و یاد بگیرن. بهرحال نهایت افراد باید یاد بگیرن که اصولی کار کنن و درس و مشق و تکالیف خودشون رو خودشون انجام بدن.
فقط پیرو چندتا از گفته ها تون خواستم چندتا جواب بهتون بدم
اولا گفتین تولید این محتواهای آموزشی به این ترتیب اونهارو تنبل میکنه
باید بگم تنبل نمیکنه بلکه در حد راه اندازی یک وب سایت ساده یک شخص رو توانا میکنه که این به نظرم مفید هست چون خیلی از اشخاص و شرکتها هستن که نمیخوان هزینه های هنگفت برای یک طراحی ناچیز هزینه کنن و یا حتی ندارن که اینکارو بکنن پس رو به برنامه نویس های مبتدی میارن که مبالغ کمتری رو دریافت کنن و این یک امر منطقی هست چون قطعا شخص حرفه ای مثل شما حاضر نیست برای دستمزدهای اندک دست به طراحی سایت بزنه در نتیجه این اشخاص هستن که پاسخگوی این بخش از جامعه باشن و قطعا جای کسی رو هم تنگ نکردن
اما در مورد اینکه گفتین من فقط منطقی حرف میزنم
به نظرم منطقی تر از کامپیوتر تا حالا خلق نشده باشه
اما یادم نمیاد که یک کامپیوتر برای پاسخگویی به سوال کنندش و یا یوزرش پرخاشگر بشه, هدف گرفتن دیگران و تحقیر افراد کار صحیحی نیست و جایی در منطق هم نداره
در مورد سطح توانایی افراد در ایران هم بگم که اشخاص بسیار حرفه ای که در ایران در سطح بسیار بالایی مشغول فعالیت هستن برای خیلی ها ناشناختن چون در خیلی از زمینه ها فعالیت ندارن
بنده با خیلی هاشون آشنایی دارم و سطح علمیشون رو هم مقالاتی که چاپ کردن و محصولاتی که تولید کردن اثبات میکنه
برای تلاش دیگران احترام قائل بشید

leaping
چهارشنبه 04 تیر 1393, 14:55 عصر
قصد تملق ندارم چون نیازی به این کار هم ندارم
اما به شخصه با اینکه بسیاری از عقاید آقای شهرکی در تضاد با باورها و افکار و عقاید من هست اما احترام بسیار بسیار زیادی برای ایشون هم از لحاظ حرفه ای و هم از لحاظ اخلاقی قائل هستم و ایشون رو به عنوان اشخاص بسیار حرفه ای در زمینه php ایران میدونم.

pejman_view
چهارشنبه 04 تیر 1393, 15:07 عصر
سلام

بحث ها بسیار طولانی و فنی بودن با توجه به وقتی که داشتم شاید 4 5 پست اول را خواندم و از بقیه پوزش می طلبمم ممکن است مطالبمم توسط دوستان گفته شده باشد.اما باتوجه به اینکه من پیش زمینه ای در بازی های اجتماعی آنلاین تحت وب دارم مایل دونستم که با شما به این مطلب را به اشتراک بذارم. این گونه بازی ها به دو عنوان خوانده می شوند (MMO) یا (Social Games). این دو عنوان تفاوت آنچنانی ندارند فقط Social Games ها در پلتفرمهایی مانند فیس بوک، تویتر و .. اجرا می شود. بازی های MMO مانند تراوین و جنگ خان ها و Social Games ها مانند Zynga Poker بازی هایی در سایت های اجتماعی. هر دوی این بازی ها دارای کاربران زیادی هستند که همزمان با هم آنلاین هستند و بصورت RealTime در حال کار هستند. در اینگونه بازی ها تحلیلگران و برنامه نویسان سعی می کنند بهینه ترین روش های برنامه نویسی، کوئری ها و ساختار دیتابیس را در نظر بگیرند.
اما مسئله مهم این است آیا با روش های بهینه می شود با یک سرور معمولی بازی راه اندازی کرد؟
با توجه به نظر کارشناسان متخصص و تجربه شخصی بنده خیر. چون هر چقدر هم سیستم بهینه و قوی باشد فشار روی سرورها نبایستی از حدی بیشتر شود. و بازی های امروزی پارامترهای بسیاری را سنجش و پردازش می کنند که همه آن وابسته به دیتابیس هستند بنابراین فشار روی دیتابیس سرور زیاد هستند. بنده با تجربه ای که داشتم متوجه شدم نبایستی سرورها بیش از 60% منابع آن پر شود چون باعث افزایش زمان پردازش می شود.
مثلاً ما در بازی که تست کردیم با 150 کاربر آنلاین سروری با مشخصات قوی ذیل:
CPU: Dual E5-2680v2
RAM: 64GB DDR3
HDD: 120 SSD
سرعت پردازش کلی یک فرآیند بازی از 0.01 ثانیه برای یک بازیکن به 1.9 ثانیه افزایش یافت. این یعنی اینکه کاربری که مثلاً می خواست عملیاتی در بازی انجام دهد بایستی 1.9 ثانیه صبر می کرد این یعنی اگر شما سایت خبری دارید و هر صفحه زیر یک ثانیه بازمی شد حالا بالای 2 یا 3 ثانیه طول می کشد تا باز شود. این یعنی اینکه بازی شما بسیار کند و خسته کننده برای بازیکن ها می شود و مرگ زود رسی برای بازی خود بایستی در نظر بگیرید.

حال دیدم یکی از دوستان گفتند سرورهای 10 12 میلیونی را با سرورها و دیتاسنتر فیس بوک مقایسه می کنید؟ این سوال و مقایسه درست نیست چون در نظر بگیرید اگر بازی های آنلاین به اندازه فیسبوک آنلاین کاربر آنلاین داشته باشند شاید دیتاسنتری چند برابر قوی تر از دیتاسنتر موجود فیس بوک نیازمند بود. چه بسا سیستمی که من در بالا ذکر کردم قیمتی معادل 40 میلیون تومان در ایران دارد و جزء قویترین سیستم های موجود در بازار است.
بگذارید قبل از اینکه به بحث بازی برگردم توضیحاتی در مورد اقدامات فیس بوک در زمینه دیتابیس و وب سرور بپردازیم تا پیش زمینه ای مناسب داشته باشیم. ترجیح می دهم در زمینه فیسبوک با سند بجای حدس و گمان صحبت کنم طبق گفته سخنگوی فیسبوک که در کنفرانسی که چند وقت پیش داشت اعدادی فاش کرد که جای بسی تامل است:
- فیسبوک 800 میلیون یوزر دارد که 500 میلیون آن روزانه فیسبوک خود را چک می کنند.
- 300 میلیون کاربر موبایلی دارند که دائماً در حال دریافت و ارسال اطلاعات است.
- 7 میلیون اپلیکیشن دارد
فیس بوک در هر ثانیه 60 میلیون کوئری را انجام می دهد، 4 میلیون row در هر ثانیه تغییر می کند. اما فیسبوک چگونه این کار را انجام می دهد!!!
دیتابیس فیسبوک چیزی نیست جزء همین MySQL که ما استفاده می کنیم. اما Scale Up شده. Scaling در واژه یعنی بزرگ کردن مقیاس. با دیتابیس بر روی کامپیوتر های مختلف تقسیم شده است.
دیتابیس فیسبوک از 3 لایه: کش ، مدیران دیتابیس ، ذخیره سازها تشکیل شده است. طبق گفته فیسبوک بیش از 90% کوئری ها در لایه کش انجام می شود یعنی اینکه این کوئری ها به لایه استفاده از ذخیره سازها نمی رسند.

فیسبوک از پلاگین نام آشنا Memcache استفاده می کند که سیستم متن-باز برای کش کردن در MySQL استفاده می شود و در کنار آن از ماژول خود ساخته ای با نام FlashCache استفاده می کند تا روی هاردهای SSD کش شوند. که این پلاگین هم فیسبوک بصورت رایگان در github منتشر کرده است.

ادامه دارد....

pejman_view
چهارشنبه 04 تیر 1393, 15:55 عصر
ادامه:


در مورد لایه های ذخیره ساز هم اگر بخوام توضیح بدهم لایه های ذخیره ساز به دو صورت عمودی و افقی هستند. لایه های عمودی شامل کامپیوترهایی هستند که اطلاعات مشابه به هم در آن ذخیره می شود تا با نابودی هر لایه عمودی ، لایه عمودی دیگر کمک رسانی کند و از دست رفتن اطلاعات جلوگیری شود. چون دیتابیس فیس بوک اینقدر بزرگ است که یک کامپیوتر بعنوان Data Node در زیر مجموعه لایه عمودی توانایی ذخیره این حجم اطلاعات را نداشته باشد. آن ها را با تکنیک Sharding تقسیم می کنند (البته این تکنیک در خود MySQL موجود است فقط بایستی از آن بهره جست). و در هر کامپیوتر مقداری از دیتابیس ذخیره می شود که این روش Horizontal Scaling یا بزرگ کردن افقی دیتابیس گفته می شود.

در کل چند کپی از دیتابیس ذخیره شده و هر کپی هم بخاطر بزرگی آن روی چندین کامپیوتر دیگر ذخیره می شود. با این سبک می توان مطمئن بود که اگر شما کامپیوتری را از مدار خارج کردید سایت شما بدون هیچ مشکل به کار خود ادامه می دهد.

و لایه مدیران هم که توضیح دادم کار آن رسیدگی و پردازش Data Node هاست.

وب سرور فیسبوک هم Tornado نام دارد که در کنار nginx نصب می شود. که توانایی nginx را تا چند برابر افزایش می دهد. ساز و کار وب سرور nginx هم مانند دیتابیس است و قابلیت scaling دارد بگونه ای که 10 ها کامپیوتر بعنوان webserver به کاربران پاسخ می دهند و فشار آن ها را روی هم تقسیم می کنند.

خوب حالا رسیدیم به بحث شیرین بازی. من خودم تا اینجا ذهنم خسته شده اما می خواستم توی یک پست جمعش کنم.
برای یک بازی تحت وب - به وب سرور نیاز دارید و بایستی بدانید یک وب سرور برای فرضاً 3000 بازیکن پاسخگو نخواهد بود.
برای یک بازی تحت وب - به دیتابیس نیاز دارید که شما برای دیتابیس توجه داشته باشید لاگ ها ، جداول و ... همه در آن ذخیره می شوند. و با هر بار لود صفحه چند صد کوئری به سمت دیتابیس سرازیر می شود که اگر می خواهید سرعت پردازش شما که در اول به آن اشاره کردم بالا نرود نیاز به لایه های کش ، مدیریت و ذخیره ساز دارید. البته این لایه ها همگی می توانند روی یک کامپیوتر باشند اما تجربه ما ثابت کرده یک کامپیوتر نمی تواند همه این ها را ساپورت کند. بعد جالبی قضیه این است که دیگر تراوین لازم ندارد برای سرورهای خود سرورهای جداگانه راه اندازی کند فقط کافی است تمامی دنیاهای خود را روی یک دیتابیس با این آرشیتکت نگه دارد. هم تا حتی 40% سیستم کمتر نیاز دارد یعنی فرضاً اگر برای هر دنیا نیاز به 5 تا سرور داشته باشد. حال اگر 3 دنیا را در کنار هم روی یک دیتابیس نصب کند ممکن است بجای 15 سرور بتواند از 12 سرور استفاده کند.

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

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

mohamad.550
چهارشنبه 04 تیر 1393, 22:56 عصر
من از نظر منطقیش گفتم مهندس.
شما تاحالا این همه باهاتون بحث کردم ظاهرا هنوز متوجه نشدید که من همیشه سعی میکنم بر اساس منطق محض حرف بزنم، فکر و قضاوت کنم. وگرنه بله در اینکه آموزشهای شما به احتمال زیاد خیلی هم خوبه شکی نیست. فقط گفتم اون دلایل چندان محکم نیستن از نظر منطقی و اثبات قطعی نمیکنن.
ضمنا اصولا در این موضوع ارتباط چندانی به بحثهایی که داشتیم ندیدم!
آموزشهای شما فرض کن عالی، فرض کن ملت رو پیشرفت میده، هرچقدر زیاد، ولی بازم معجزه که نمیکنه! جای اون چیزهایی رو که گفتم نمیگیره که. میگیره؟ جای زبان و منابع گسترده انگلیسی رو میگیره؟ عمرا! جای زحمت و تلاش و جدیت و یادگیری اصولی شخصی رو میگیره؟ شما که نمیتونی تمام موضوعات و جزییات برنامه نویسی رو اینطوری به شکل آموزش دربیاری و به زور ملت رو وادار کنی همه رو کامل و دقیق بخونن و یاد بگیرن. بهرحال نهایت افراد باید یاد بگیرن که اصولی کار کنن و درس و مشق و تکالیف خودشون رو خودشون انجام بدن.




تو خوب خدا بیکارت کرده هی انشاء می نویسی. به جا این همه می نویسی اگه کاری دیگه ای می کردی دنیا رو میترکوندی:قهقهه:

abolfazl-z
چهارشنبه 04 تیر 1393, 23:27 عصر
دیتابیس فیسبوک چیزی نیست جزء همین MySQL که ما استفاده می کنیم. اما Scale Up شده. Scaling در واژه یعنی بزرگ کردن مقیاس. با دیتابیس بر روی کامپیوتر های مختلف تقسیم شده است.
دیتابیس فیسبوک از 3 لایه: کش ، مدیران دیتابیس ، ذخیره سازها تشکیل شده است. طبق گفته فیسبوک بیش از 90% کوئری ها در لایه کش انجام می شود یعنی اینکه این کوئری ها به لایه استفاده از ذخیره سازها نمی رسند.

فیسبوک از پلاگین نام آشنا Memcache استفاده می کند که سیستم متن-باز برای کش کردن در MySQL استفاده می شود و در کنار آن از ماژول خود ساخته ای با نام FlashCache استفاده می کند تا روی هاردهای SSD کش شوند. که این پلاگین هم فیسبوک بصورت رایگان در github منتشر کرده است.


در پی اچ پی براحتی میتوانید از MEMCACHED استفاده کنید.

http://www.php.net/manual/en/book.mysqlnd-memcache.php

اما باید رم بالایی داشته باشیم.

pejman_view
پنج شنبه 05 تیر 1393, 02:45 صبح
در پی اچ پی براحتی میتوانید از MEMCACHED استفاده کنید.

http://www.php.net/manual/en/book.mysqlnd-memcache.php

اما باید رم بالایی داشته باشیم.

سلام

بالتبع فیسبوک می دانسته رم خالی تنها به کارش نمی آید و بایستی دنبال راه چاره دیگری هم باشد و از درایوهای ذخیره ساز SSD استفاده کرد و پلاگینی به نام FlashCache را درست کرد که یادم نیست فکر می کنم یک مهندس هندی این پلاگین را نوشته است.

eshpilen
پنج شنبه 05 تیر 1393, 08:26 صبح
شاید چون حجم مساوی از رم نسبت به انواع دیگر حافظه خیلی گرونتره و محدودیت های فنی هم ممکنه داشته باشه (ساپورت CPU و مادربورد و این حرفا کلا)، اومدن و یجورایی درایوهای حجیم SSD رو بجای حجم زیادی از رم استفاده کردن.
طبیعتا استفاده از هاردهای معمولی این خاصیت رو نداره چون سرعتش پایینه. اما سرعت SSD از هارد مغناطیسی بیشتره (نمیدونم تا چه حد به RAM نزدیکه).

navid3d_69
پنج شنبه 05 تیر 1393, 08:55 صبح
هارد ssd خیلی توی سرعت خوندن و درج اطلاعات تغییر ایجاد میکنه من یادم میاد با هارد قبلی سیستم می خواستم برای تست 5 میلیون رکورد رو با while اضافه کنم فکر کنم 10 دقیقه طول کشید ولی وقتی هارد ssd گذاشتم روی سیستم چند هفته پیش تست کردم کمتر از 1 دقیقه این اطلاعات رو ذخیره کرد الانم که اکثر دیتاسنتر ها سرویس های ssd رو میدن حتی ایرانی ها

metal gear solid 4
پنج شنبه 05 تیر 1393, 08:59 صبح
شاید چون حجم مساوی از رم نسبت به انواع دیگر حافظه خیلی گرونتره و محدودیت های فنی هم ممکنه داشته باشه (ساپورت CPU و مادربورد و این حرفا کلا)، اومدن و یجورایی درایوهای حجیم SSD رو بجای حجم زیادی از رم استفاده کردن.
طبیعتا استفاده از هاردهای معمولی این خاصیت رو نداره چون سرعتش پایینه. اما سرعت SSD از هارد مغناطیسی بیشتره (نمیدونم تا چه حد به RAM نزدیکه).
تا جایی که من شنیدم. هاردهای SSD سرعتشون از 200 مگابایت در ثانیه تا 500 در بهترین حالتشه.
اما سرعت رم متغیره . از 4000 مگابایت در ثانیه شروع میشه تا بالای ده هزار مگابایت در ثانیه. DDR3

navid3d_69
پنج شنبه 05 تیر 1393, 09:22 صبح
بله هارد های ssd حدودا سرعتش همین مقدار هست بستگی به مارک داره اینی که من استفاده می کنم 550 mb هست ولی انتقال از خود هارد به خود هارد 3gb در ثانیه هست که اون خوب استفاده نمیشه ولی قیمت از رم خیلی کمتر هست مثلا 120gb حدودو 300 تومان هست رم 4 گیگ حدودا 120 تومان هست

abolfazl-z
پنج شنبه 05 تیر 1393, 12:55 عصر
سلام

بالتبع فیسبوک می دانسته رم خالی تنها به کارش نمی آید و بایستی دنبال راه چاره دیگری هم باشد و از درایوهای ذخیره ساز SSD استفاده کرد و پلاگینی به نام FlashCache را درست کرد که یادم نیست فکر می کنم یک مهندس هندی این پلاگین را نوشته است.

یعنی در صورت استفاده از memcached دیگه نیازی نیست که خودمون کش کنیم ؟

navid3d_69
پنج شنبه 05 تیر 1393, 18:29 عصر
به نظر من ترکیب باشید باشه من بعضی از قسمت ها که کم تغییر می کنه توسط کاربر رو از طریق فایل کش می کنم اینجوری دیتابیس کمتر درگیر میشه سرعت هم بیشتر میشه ولی پیشنهاد من اینه سیستم رو راه اندازی کنید سیستم اجرا کنید مثلا اگه سیستم 100 قسمت داره هر روز یک قسمت رو روی کش کار کنید اینجوری مشکلی هم اگه به وجود بیاد سریع معلوم میشه و حل میشه

abolfazl-z
پنج شنبه 05 تیر 1393, 18:34 عصر
به نظر من ترکیب باشید باشه من بعضی از قسمت ها که کم تغییر می کنه توسط کاربر رو از طریق فایل کش می کنم اینجوری دیتابیس کمتر درگیر میشه سرعت هم بیشتر میشه ولی پیشنهاد من اینه سیستم رو راه اندازی کنید سیستم اجرا کنید مثلا اگه سیستم 100 قسمت داره هر روز یک قسمت رو روی کش کار کنید اینجوری مشکلی هم اگه به وجود بیاد سریع معلوم میشه و حل میشه

خوب اگر ما از memchached استفاده کنیم و هم بیاییم خودمان کش کنیم یعنی داریم از منابع سیستم بیشتر استفاده میکنیم.



http://www.php.net/manual/en/images/55c7816ef6df6821f05678a68b4e4e63-mymemflow.png
http://www.php.net/manual/en/intro.mysqlnd-memcache.php

navid3d_69
پنج شنبه 05 تیر 1393, 18:47 عصر
memchaed تا جایی که می دونم توی رم ذخیره میشه البته زیاد کار باهاش نکردم سرعت رو زیاد می کنه ولی هزینه زیادی رو داره روی سرور پروژه ای که الان داره تست میشه وقتی اون روش فایل رو روی صفحه که حدودا 10 کوئری توی صفحه داشت 3 تاش رو بردم روی فایل سرعت لود مقداری کم شد من توی کش تجربه خیلی زیادی ندارم ولی این کار جواب گو هست برای کار ما فعلا البته کسی که سرور رو کانفیگ می کرد پیشنهاد کرد اطلاعات اگر زیاد شد سرور دیتابیس رو جدا کنیم و بریم روی mongodb که فعلا ما مشکلی نداریم و کاملا از نظر سرعت سیستم خوب کار می کنه

abolfazl-z
پنج شنبه 05 تیر 1393, 18:56 عصر
memchaed تا جایی که می دونم توی رم ذخیره میشه البته زیاد کار باهاش نکردم سرعت رو زیاد می کنه ولی هزینه زیادی رو داره روی سرور پروژه ای که الان داره تست میشه وقتی اون روش فایل رو روی صفحه که حدودا 10 کوئری توی صفحه داشت 3 تاش رو بردم روی فایل سرعت لود مقداری کم شد من توی کش تجربه خیلی زیادی ندارم ولی این کار جواب گو هست برای کار ما فعلا البته کسی که سرور رو کانفیگ می کرد پیشنهاد کرد اطلاعات اگر زیاد شد سرور دیتابیس رو جدا کنیم و بریم روی mongodb که فعلا ما مشکلی نداریم و کاملا از نظر سرعت سیستم خوب کار می کنه

راستی بین memcached (http://www.php.net/manual/en/intro.memcached.php) و memcache (http://www.php.net/manual/en/book.mysqlnd-memcache.php)کلی تفاوت هست و دو مبحث جداگانه هستند ! خیلی جالب هست :متفکر:

http://stackoverflow.com/questions/1442411/when-should-i-use-memcache-instead-of-memcached

abolfazl-z
پنج شنبه 05 تیر 1393, 19:03 عصر
تاجایی که فهمیدم memcache (http://www.php.net/manual/en/book.mysqlnd-memcache.php)از سرور جداگانه (cache server) استفاده نمیکند! و بصورت cluster هست یعنی روی خود همون سیستم PHP

ولی memcached (http://www.php.net/manual/en/intro.memcached.php) از طریق API وصل میشه به یک سرور کش جداگانه

metal gear solid 4
جمعه 06 تیر 1393, 09:29 صبح
به نظر من از Redis استفاده کنید بهتره. صرفا تنها یک سیستم کش Key Value نیست و از Data Type های بیشتری به صورت Native پشتیبانی میککنه. جستجو توی لیست هاش. بررسی تکراری بودن مقادیر. مرتب سازی و خیلی کارای دیگه به صورت Native درون خودش میتونه صورت بگیره ک به زبان C++‎‎‎‎‎‎‎‎‎ نوشته شده و سرعتش در انجام کارای بالا از php خیلی بیشتره.

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

Redis برای ذخیره سازی روی رم از الگوریتم های خاصی استفاده میکنه ک فضای هدررفت رو به حداقل میرسونه.
مثلا اعداد صحیح کوچیک رو به صورت 16 یا 32 بیتی ذخیره میکنه و وقتی اعداد بزرگ شن نوع ذخیره سازیش عوض میشه و 64 میشه ک فضاش بیشتر میشه.

یک قابلیت دیگش ذخیره سازی در سطح بیت روی رمه. مثلا طبق چیزی ک خودش توی سایتش نوشته و منم تست کردم. شما میتونید مقادیری ک دو حالتی هستن رو به صورت بیت ذخیره کنید. برای ذخیره سازی جنسیت, مقدار یک یعنی مرد و مقدار خالی یعنی زن. با این نوع ذخیره سازی, میشه اطلاعات مربوط ب 100 میلیون کاربر رو تنها توی 12 مگ رم ذخیره کرد!!

Redis (http://redis.io)

#Elahe#
جمعه 13 تیر 1393, 17:24 عصر
منو باش که فکر میکردم با 10-15 تومن میشه یه بازی آنلاین راه انداخت :|

weblox
یک شنبه 15 تیر 1393, 22:05 عصر
منو باش که فکر میکردم با 10-15 تومن میشه یه بازی آنلاین راه انداخت :|

خوب بازی داریم تا بازی ، تراوین بازی هست یه بازی هم مثل فوتبال فانتزی بازی هست.

amg_123
یک شنبه 15 تیر 1393, 22:47 عصر
با سلام
راجع به سوال اولت، این بازیا روی سرور اختصاصی اجرا میشن در نتیجه یه برنامه اپلیکشنم معمولا دارن که رویه کارایه بانک و سایر فعالیت های خودکار مدیریت داره که اکثرا مربوط به دیتا بیس میشه، این برنامه همیشه روی سرور در حال اجراست و اون کارایی که شما مدنظرتون بود رو تو زمان مشخص شده، انجام میدن البته با کرون جابم میشه ولی برنامه اختصاصی بهتره.
جوابا زیاد بود نخوندمشون، نمیدونم تو نستی جوابتو بگیری یا نه، من فرضو بر این گرفتم که جوابتو نگرفتی (:لبخندساده:)!