Posts Tagged ‘ایده’

شایسته ترین چی بود؟ چرا و چه‌جور من «شایسته ترین» رو نوشتم؟

2012/07/15

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

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

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

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

قسمت اول: جمع‌آوری اطلاعات

خب مهمترین قسمت این بود که بتونم اطلاعات تمام کسایی که توی دانشگاهمون درس می‌خونن رو جمع کنم. فکر‌های زیاد به سرم زد، یکیش این بود که یه پیج فیس‎بوک بزنم و بقیه رو دعوت کنم توش تا بتونم از اطلاعاتشون استفاده کنم، راه دیگه این بود که خودم یکی یکی برم پیج بچه‌های دانشگاه و اطلاعات رو جمع کنم. این دوتا ایده زیاد جالب نبود. چون ایده اولی رو هیچکس مطمئنا نمیومد سمتش و ایده دوم هم اضافه کاری خیلی زیادی داشت. راهی که ازش استفاده کردم برای جمع‌آوری اطلاعات این بود که اگه دقت کرده باشید، فیس‌بوک یه قسمت داره به نام Find Friends وقتی وارد این قسمت می‌شید با استفاده از یه سری الگوریتم بهتون افراد رو پیشنهاد می‌ده برای دوستی. اگه باز بیشتر دقت کرده باشید اون سمت چپش یه سری چک باکس هست برای فیلتر کردن دوست‌ها بر اساس این‌که کجا درس می‌خونن، اهل کجان، یا کجا کار می‌کنن. اگه یکم اهل هک کردن باشید الان متوجه شدید که من چی‌کار کردم…

صفحه‌ی جستجوی دوستان فیس‌بوک

صفحه‌ی جستجوی دوستان فیس‌بوک، به اون قسمتی که مشخص شده دقت کنید، اونجا رو می‌گم

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

کد‌های html صفحه‌ی جستجوی دوستان در فیس‌بوک

کد‌های html صفحه‌ی جستجوی دوستان در فیس‌بوک. اگه دقت کنید، می‌بینید فیس‌بوک آی‌دی افراد رو یه جورایی جا داده بین کد‌های html

قسمت دوم: اپن گراف (Open Graph) فیس‌بوک چجوری کار می‌کنه؟

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

http://graph.facebook.com/put-your-facebook-id-or-your-username-here

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

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

قسمت سوم: خریدن دامین، راه انداختن سایت، درست کردن html و css و … و انجام دادن یه سری از کارهای روتین

خب دامین رو خریدم (یادش بخیر اونموقع دلار ارزون بود و دامنه .com نه هزار تومن بود، الان شده بیست هزار تومن) یه مقدار کد اچ تی ام ال زدم و سایت آماده بارگزاری شد. اسمش رو گذاشتم شایسته‌ترین. طرز کارش دقیقا شکل فیس‌مش بود با همون الگوریتم امتیاز دهی، با همون ایده، اما با عکس‌های فیس بوک هم کلاسیایی دانشگاهیم. کل این اتفاقات در عرض سه روز افتاد. اینجوری هم کار می‌کرد که با استفاده از یه کد SQL به طور رندوم دو تا ردیف که کد جنسیتشون یکی بود انتخاب می‌شد، با درخواستی که به اپن گراف فیس‌بوک فرستاده می‌شد عکس‌ها و اسم‌هاشون برام میومد (کل دیتا بیس سه تا ستون داشت، آی‌دی، کد جنسیت و امتیاز 🙂 ) و من اونا رو می‌زاشتم توی صفحه، و فردی که اومده بود امتیاز بده، بعد از این‌که روی عکس کلیک می‌کرد آی ‌دی عکس به سرور میومد و الگوریتم امتیاز دهی روش اجرا می‌شد و نتیجه ذخیره می‌شد. به همین راحتی، به همین خوشمزگی!

شایسته‌ترین

شایسته‌ترین، صفحه‌ی انتخاب 🙂

نتیجه گیری

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

پ.ن: یه سری آمار از این سایت تونستم به دست بیارم که بعدا حتما بهتون می‌گم، خیلی جالب بود واسه خود من به شخصه.

پ.ن: از همه دوستام که شاید اون موقع ناراحت شده‌ن معذرت می‌خوام.

چرا و چگونه باید یک ایده را مطرح کرد؟

2012/03/25

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

وقتی یه ایده رو با یه نفر درمیون می‌زارید، ۲تا حالت می‌تونه داشته باشه. یا طرف ۱۰۰٪ میفهمه چی میگید! (که خب اگه اینجوری باشه، یعنی اون طرف یا ذهن خوان ماهری هست، یا این ایده قبلا تو ذهنش بوده) یا یه درصد خیلی کمی از ایده‌تون رو می‌فهمه. اگه درصد کمیش رو فهمید معمولا دو حالت داره، یا ازتون توضیح بیشتری می‌خواد یا بهتون می‌گه این ایده مسخره‌س و روش وقت نباید گذاشت.

حالت دوم رایج تر هست، یعنی یکی یه چیزایی می‌فهمه از ایده‌ی شما اما چون از زاویه‌ی دید خودش داره نگاه می‌کنه به ایده و جزئیات و ریزه‌کاری هایی که شما می‌بینید اون نمی‌بینه، خودش رو راحت می‌کنه و در یک کلام می‌گه «فکر خوبی هست اما خیلی آرمانیه و فکر می‌کنم جواب نمی‌ده!» (حالا نه خود طرف امتحانش کرده نه هیچی، فقط حس می‌کنه این عملی نیست!)

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

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

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

راه آخر این هست که از دیگران یاد بگیرید چطور باید ایده‌تون رو با دیگران شریک بشید! یکی از راه‌هایی که می‌شه خیلی از راه‌های انتقال فکر و ایده رو یاد گرفت دیدن کنفرانس‌های استیو جابز هست (توی یوتیوب ریخته!). خیلی از چیز‌هایی که الان دور و برمون هست رو بار اول اپل ساخته واونو زمانی ساخته که اصلا نیازی بهش حس نمی‌شده. اما استیو جابز چند جا با ارائه‌ی ذهنیاتش به افراد تونسته اونارو راضی کنه که الان بیشتر از هر وقت دیگه‌ای نیاز به فلان چیز هست!. یکی هنگامی که ایده‌ش رو به کارمندای اپل می‌گه. یکی هم وقتی محصولاتش رو به مردم معرفی می‌کنه. (توصیه می‌کنم برای شناختن راه‌هایی که استیوجابز استفاده می‌کرده برای انتقال ایده و تفکرش، کتاب  the presentation secrets of steve jobs رو بخونید. البته زندگی‌نامه‌ی استیو جابز هم پر هست از لحظه‌هایی که جابز تونسته فکر افراد و کارکنان و مردم رو تغییر بده و ایده‌ی ذهنش رو با اون‌ها شریک بشه)

مطمئنا راه‌های زیادتری برای انتقال ایده‌ها و فکرها هست. و قطعا نمی‌شه کل راه ها رو توی یه پست وبلاگ جمع کرد (اونم موقعی که اکثرا عادت دارن همه چیز رو تو ۱۴۰ کارکتر جمع کنن). اگه شما هم راهی رو استفاده می‌کنید برای انتقال فکرتون به دیگری یا تجربه‌ای داشتید حتما با ما هم شریک بشید (توی کامنت ها بگید!)

چطور باید شروع به کار کرد

2012/03/19

وقتی سال نود شروع شد، یکی از دغدغه هایی که داشتم این بود: چرا چیزهایی رو که می‌خوام نمی‌تونم تولید کنم.  این دغدغه از اینجا شروع می‌شد که سال قبلش (یعنی ۸۹) واسه خودم یه برنامه بلند مدت چیده بودم که تا آخر امسال فلان کار رو انجام می‌دم، فلان موضوع رو بیشتر روش کار می‌کنم، فلان مطلب رو یاد می‌گیرم و … اما خب، اون «سنگ» بزرگ شد و باعث شد نتونم پرتش کنم.

اما برعکس الان دیگه اون دغدغه‌ی شروع سال نود رو ندارم، اونم به خاطر اتفاقاتی بود که امسال افتاد. مهم‌ترین کاری که انجام دادم پروژه‌ی «پیشنیاز» بود (در اصل پیشنیاز، یک تیر و چند نشون بود، چون کنارش خیلی چیزای جدید دیگه رو هم تجربه کردم، از جمله کار تیمی، سر و کله زدن با آدمای مختلف، برخورد با کاربرها و …) تابستونش «شایسته‌ترین» رو ساختم  و همینطور پاییزش، «فکر و بکر» رو درست کردم. در اصل سال نود نزدیک‌تر بود به چیزی که انتظارشو داشتم.

اما چی شد که اینجور شد.

من آدمی هستم که تا وقتی دلیلی برای انجام یه کار نبینم اون کار رو انجام نمی‌دم. تا وقتی بتونم عقب می‌ندازم تمام کار ها رو. اما امسال فهمیدم این اخلاق کاملا به درد نخوره. چرا که توی این ۳تا پروژه دقیقا برعکس عمل کردم و اتفاقا نتیجه گرفتم. یعنی به محض این‌که «ایده» به ذهنم رسید، کار پیاده سازیش رو خیلی زود و همون لحظه شروع کردم و گذاشتم مراحل صیغل خوردن ایده و کامل شدنش در همون اجرای کار انجام بشه.

شروع یه کار سخت ترین و مهم‌ترین بخش کار هست. بهترین مثالی که می‌تونم بزنم مثال «اصطکاک» هست. وقتی یه ماشین رو می‌خوای هل بدی، اولش انرژی خیلی زیادی می‌خواد تا حرکت کنه، اما به محض اینکه راه افتاد هی سرعتش زیاد و زیادتر می‌شه. انجام کارهای مختلف هم به همین شکله. باید شروع کنی به هل دادن خودت که کار رو انجام بدی، بعد کم کم کار خودش خود به خود روی دور میوفته.

«انگیزه» اون انرژی اضافی هست. و متاسفانه تاریخ انقضای انگیزه، یه ذره کم هست! اگه تا انگیزه‌ی یه کاری رو داری انجام ندیش، و بگی باشه شاید یه موقع این انگیزهه بیشتر شد، متاسفانه باید بگم، هیچ وقت بیشتر که نمی‌شه هیچ، کمتر هم می‌شه. خیلی‌ها از جمله خودم فکر می‌کنیم واسه شروع کردن کار باید یه علامتی از یه جایی بیاد که بگه از الان باید شروع کرد. این اشتباهه. این باعث شکست خوردن،ه چرا که هیچ وقت اون علامت نمیاد یا اگر هم میاد در آخرین لحظه میاد (مثلا شب امتحان). بهتره اینجوری بگم، اگه کاری رو لازمه انجام بدید، خوب پس زودتر انجام بدید دیگه!

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