برچسب‌های نوشته ‘برنامه نویسی’

آنلاین برنامه‌نویسی کنید

تیر ۲۶م, ۱۳۸۹

قبلاً در نوشته‌ای درباره محاسبات ابری گفته بودم:

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

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

CodeRunحالا که قرار است پردازش برنامه‌های کامپیوتری روی اینترنت باشد چرا برنامه‌نویسی روی اینترنت نباشد؟ خب این ایده ما رو به IDE های آنلاین می‌رسونه: سایت‌هایی که می‌توانید به کمکشون آنلاین برنامه نویسی کنید، برنامه‌هاتون رو کامپایل و دیباگ و تست کنید و بالاخره اون‌ها رو برای اجرا با دیگران به اشتراک بگذارید.

یکی از سایت‌های جالبی که توی این حوزه بهش برخورد کردم سایت CodeRun هستش. به کمک این سایت می‌توانید پروژه‌هایی با زبان‌های  C#.NET‌ و PHP و JavaScript ایجاد کنید. محیط سایت بسیار شبیه محیط IDE های برنامه‌نویسی نظیر Visual Studio هستش و شما امکان watch کردن متغیرها و دیباگ رو هم دارید، ساختار Solution و Project ها درست مثل ویژوال استودیو هست و قابلیت‌هایی نظیر Syntax Highlight و Intellisense به خوانایی و راحتی کدنویسی کمک می‌کنه.نمونه دیگه‌ای از این سایت‌ها kodingen هستش که اون هم امکان توسعه نرم‌افزاری ابری (Cloud Software Development) رو میده. 

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

ایده‌های توییتری خود را قبل از اجرا تست کنید

اردیبهشت ۱۳م, ۱۳۸۹

twitterconsole هنگامی که کتاب توییتر را پیاده‌سازی می‌کردم برای تست بعضی حالت‌ها در فراخوانی API توییتر مجبور بودم برنامه را تغییر بدهم و مجدداً کامپایل و منتشر کنم. کمی بعد متوجه وجود سایت hurl شدم که کارش ایجاد HTTP Request است. به کمک این سایت به راحتی می‌توانید با ارسال درخواست HTTP و در صورت نیاز ست کردن header خروجی را در قالب مورد نظر (مثلاً json) بسته به آدرس درخواستی ببینید.

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

داستان Stack Overflow

آبان ۲۸م, ۱۳۸۸

لوگوی سایت از مفهوم نامش بهره میگیرد اگر در دنیای برنامه نویسی باشید حتماً نام سایت Stack Overflow را شنیده‌اید. Stack Overflow یک سایت پرسش و پاسخ برای برنامه نویسان است، اما نه یک سایت معمولی.

چیزی فراتر از انجمن‌های گفت‌وگو

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

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

برای درک بهتر ساختار Stack Overflow شکل زیر را ببینید. StackOverflow در واقع نقطه اشتراک سیستم‌های مختلف است:

StackOverflow

    بدون ثبت نام عضو شوید!

یکی از اولین مسائلی که در برخورد با Stack Overflow‌ پیش می‌آید این است که: بسیار خب، این سایت مفیدی هست، اما چطوری می‌تونم ثبت نام کنم؟ پاسخ این است که شما همین الان عضو هستید و نیازی به ثبت نام ندارید! در واقع Stack Overflow‌ از OpenID پشتیبانی می‌کند بنابراین اگر شما اکانتی در گوگل، یاهو، وردپرس یا دیگر تامین کنندگان OpenID داشته باشید در واقع عضو Stack Overflow هم هستید. کافی است Login‌ کنید.

نشان‌ها، مدال‌های افتخار شما

یکی از دلایلی که کاربران را به استفاده و مشارکت در Stack Overflow‌ مشتاق می‌کند، نشان‌ها یا Badge‌هایی است که سایت به آن‌ها می‌دهد. این نشان‌ها تنها بر اساس میزان مشارکت نیستند، مثلاً اگر سوالی بپرسید که جواب و کامنت و مشاهده کمی برای یک هفته داشته باشد نشان Tumbleweed را دریافت می‌کنید! نشان‌های Stack Overflow‌ که در سه دسته کلی طلایی، نقره‌ای و برنزی دسته‌بندی شده‌اند در واقع مدال‌های کاربران هستند و به میزان شهرت کاربر کمک می‌کنند. شهرتی که دیگر کاربران می‌توانند روند آن را به صورت یک نمودار در پروفایل هر کاربر ببینند.

خانواده Stack Overflow

Stack Overflow تنها یک سایت نیست، سایت‌های دیگری نیز که به سایت‌های خواهر معروفند با همین ایده شکل گرفته‌اند، از جمله این سایت‌ها به Server Fault که سایت پرسش و پاسخ مخصوص مسائل شبکه و Super User اشاره کرد. البته سایت‌های دیگری هم هستند که از ایده Stack Overflow استفاده کرده‌اند اما نرم افزارشان با نرم افزار Stack Overflow متفاوت است. 

ویژگی‌های فنی و پروژه‌های مشابه

جالب است بدانید که Stack Overflow‌ با ASP.NET‌ کار شده است. در اینجا می‌توانید لیستی از زبان‌ها و فناوری‌هایی که برای ساخت Stack Overflow استفاده شده است را ببینید. و اینجا هم اطلاعاتی درباره سرور اختصاصی Stack Overflow‌ هست.
گرچه نرم افزار Stack Overflow هنوز اپن سورس نشده است (در این مورد زمزمه‌هایی هست)، اما پروژه‌های مشابهی با  php‌ و Ruby on Rails ایجاد شده‌اند. البته وقتی نمونه چینی سایت درست شد، بحث‌هایی در مورد میزان موفقیت پروژه‌های کپی شده در گرفت که اگر حوصله دارید این مطلب فوق العاده را از دست ندهید. در مورد کپی‌های چینی (که حالا همه چیز از چفیه عربی تا آیفون امریکایی را شامل می‌شوند) سایتها این مطلب خواندنی است.

یک نکته دیگر این که اگر به ساخت وب سایتی مشابه Stack Overflow‌ علاقمند شدید باید بدانید که معماری و ساخت نرم افزار Stack Overflow‌ خیلی ساده نیست. اینجا می‌توانید مقالات و کدهایی درباره ساخت چنین نرم افزاری با استفاده از ASP.NET  را ببینید.

Stack Overflow چگونه پول در می‌آورد؟

Stack Overflow‌ رایگان است اما چطور هزینه‌های خود را تامین می‌کند و پول در می‌آورد. در واقع دو راه اصلی برای کسب درآمد در Stack Overflow‌ هست، یکی تبلیغات و دیگر ارائه خدمات میزبانی شده سایت‌های پرسش و پاسخ مبتنی بر نرم افزار Stack Overflow. در این روش دوم در واقع شما از طریق سایت Stack Exchange‌ می‌توانید پلتفرم Stack Overflow را برای راه اندازی سایت پرسش و پاسخ خود استفاده کنید.

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

پ.ن: مدتی است که گرفتاری کاری زیاد شده است، اما سعی می‌کنم از این به بعد منظم‌تر اینجا را به روز کنم.