بایگانی ماهیانه: آوریل 2013

جواب دندان‌شکن!

این توی فیسبوک بود. عالیه :)

در راستای ایجاد آرم ننگین PEPSI که گفته میشه مخفف واژه Pay Each Penny Save Israel یعنی پرداخت هر پنی ذخیره اسراییل است ، خون شرکت های ایرانی بجوش آمده و معانی پنهان اسامی تجاری خود را آشکار کردند تا جواب دندان شکنی به شرکت پپسی داده باشن:

پفک نمکی = پایمردی فلسطین، کابوس ناگوار ملت کینه توزیهودی.

تک ماکارون = تکنولوژی کشور متجاوز اسرائیل کارامدتر از راه ولایت نیست.

شادنوش = شکست اسراییل دربرابر نیروی ولایتمدار شیعیان.

داماش = دندان اسراییلو مردم ایران شکستند!!!!!

کاله = کشور اسرائیلو له میکنیم !!!!

پگاه = پاشو گمشو اسرائیل هرجایی!!!

بن ساله = بنیامین نتانیاهو، سگ اسرائیلی لندهور

دامداران = دهن این مردم دهاتی اسرائیل را، استغفرا… نزار دهنم باز شه

آموزش برنامه‌نویسی – بخش چهارم – دوباره باز می‌گردیم!

سلام!

بعد از کلی دردسر و تنبلی دوباره این‌جاییم که آموزش برنامه‌نویسی رو ادامه بدیم.

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

و امروز چون خیلی از جلسه‌ی قبلی گذشته روی درس جلسه‌ی قبل یه مروری خواهیم داشت. البته به‌جز آموزش ساختن پروژه!

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

cout << {} << {} << {};

 اول cout رو می‌نویسیم و

<<

رو می‌نویسیم به‌طوری که نوک تیزشون سمت

cout

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

 و اگر چیز دیگه‌ای خواستیم بنویسیم هم دوباره

<<

رو می‌ذاریم و همین‌طور ادامه می‌دیم کار رو؛ محدودیت هم نداره! و یا می‌تونیم از یه cout دیگه استفاده کنیم و یادمون هم نمی‌ره که آخر دستورات‌مون حتما نقطه‌ویرگول فراموش نشه!

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

cout << "hi" << endl << "welcome!";

و روش دوم هم استفاده از کارکترهای ویژه مثل /n و /t و کلی کارکتر دیگه‌ست که توضیحات‌ش رو توی آموزش قبلی دادم و این‌جا هم هرجا استفاده کنیم توضیح‌ش رو بهتون می‌دم که توی این‌جا برای رفتن به خط بعد هرجا لازم شد توی نوشته‌مون که توی دبل کوتیشن می‌نویسیم‌ش یه بک‌اسلش و یه n می‌نویسیم و برنامه هم هرموقع به این‌جا رسید می‌ره خط بعدی.

cout << "hinwelcome!";

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

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

بعلاوه یک بخشی از کدهایی که توی آموزش قبلی گفتم وجودشون اجباریه رو دلیل وجودشون رو توضیح می‌دم تا بدانید و آگاه باشید که اینا رو ما از الکی و برای خوشگلی تو برنامه‌مون نمی‌ذاریم!

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

  1. اولین مرحله اینه که برنامه‌مون رو توی محیط ویرایش‌گر می‌نویسیم.
  2. وقتی که به کامپایلر می‌گیم که برنامه‌مون رو برامون کامپایل کنه اول یه چیزی به اسم Pre Compiler میاد برنامه‌مون رو بررسی می‌کنه و یک‌سری از دستورات خاص رو که ما اون‌ها رو با علامت # مشخص کردیم رو پردازش می‌کنه.ما هم به این دستورات خاص که توی ویرایشگر‌های ما هم با یه رنگ دیگه مشخص می‌شن می‌گیم دستورات پیش‌پردازنده. مثلا اگر یادتون باشه اولین دستوری که ما می‌نویسیم

    #includeهستش. این‌جا داریم می‌گیم که این دستوریه که باید پیش‌پردازنده پردازش‌ش کنه.

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

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

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

  3. مرحله‌ی بعدی اینه که کامپایلر میاد و کد ما + اون‌چیزی که پیش‌پردازنده تولید کرده رو به کدهای زبان‌ماشین تولید می‌کنه و یه فایل با پسوند obj می‌سازه.
  4. تو مرحله‌ی چهارم که توی سیستم‌عامل‌های مختلف تفاوت اینجا می‌شه اینه که لینکر کتابخانه‌های سیستم‌عامل رو صدا می‌زنه. مثلا اگر برنامه‌ی شما صدای بیب سیستم‌عامل رو در میاره. این توی ویندوز و لینوکس شیوه‌ی متفاوتی داره که لینکر کارش اینه که توی هر سیستم‌عامل این شیوه رو عملی کنه.البته این قضیه خودش یه‌ذره پیچیده‌ست که چجوریه که فایل‌هایی که به زبون ماشین هستن توی سیستم‌عامل‌های مختلف یکسان نیستن که منم دقیقا نفهمیدم قضیه چیه و فکر هم نمی‌کنم که انقدر مهم باشه.
    و حالا فایل اجرایی ما که می‌شه فایل exe توی ویندوز یا نمی‌دونم چی توی لینوکس ساخته می‌شه. این نمی‌دونم چی هم واقعی بود چون دقیقا نمی‌دونم ساختار برنامه‌ها توی لینوکس چجوریه.
  5. حالا وقتی می‌خوایم برنامه‌مون رو اجرا کنیم اول لودر برنامه‌مون رو روی رم سیستم آدرس‌دهی می‌کنه و بعدش هم برنامه توسط CPU پردازش می‌شه.

خوب این نمونه‌ی یک برنامه‌ایه که هیچ کاری نمی‌که و فقط اون قالبیه که ما دفعه‌ی قبل گفتیم باید باشه:

#include <iostream>
using namespace std;
int main()
{
}

 

و ما خط اول رو توضیح دادیم. حالا توی خطی که می‌نویسیم

using namespace std;

 و نقطه‌ویرگول هم یادمون نمی‌ره! یکی از مشکلات اساسی‌ای که ممکنه تو برنامه‌نویسی پیش بیاد رو حل می‌کنیم.

ببینید فرض کنید که من یه کتاب‌خونه‌ای می‌نویسم که خیلی پرکاربرده و توی اون یه دستوری دارم مثلا به اسم دستور a که یه کار خاص انجام می‌ده برای من. و شما هم یه کتاب‌خونه‌ی پرکاربرد دیگه دارید و توی اون هم یه دستوری دارید به اسم دستور a و یه کار دیگه متفاوت با کار من انجام می‌ده. حالا یه کاربری توی برنامه‌ش می‌خواد هم از کتاب‌خونه‌ی من و هم از کتاب‌خونه‌ی شما استفاده کنه و می‌کنه و حالا توی برنامه‌ش از دستور a استفاده می‌کنه. و معلومه که کامپایلر گیر می‌کنه بین این‌که از a من استفاده کنه یا از a شما و برای همین هم کامپایل ارور می‌گیریم!

برای حل این مشکل یه چیزی هست به اسم

namespace

 یا به فارسی خودمون می‌شه فضای نام. حالا این یعنی چی؟ یعنی این‌که اگر من دستور a رو منتشر کردم اون رو تحت فضای‌نام خودم منتشر می‌کنم و کاربر باید با شیوه‌ی خاصی که بعدا می‌گیم a رو از فضای‌نام من صدا بزنه و aای که شما منتشر کردید رو هم از فضای‌نام خودتون صدا بزنه.

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

حالا بریم سراغ کدنویسی‌مون.

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

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

 حالا بیخیال این بحث. اون دوتا چیزی که کامپایلر می‌خواد برای ساختن متغیر اول از همه اسم متغیره و دومی هم نوع‌شه. اسم متغیر می‌تونه از اعداد و حروف و underline تشکیل بشه ولی اول‌ش نمی‌تونه عدد باشه ولی با underline مشکلی نداره یعنی اول اسم متغیرمون می‌تونه underline هم باشه.

دومین چیزی که لازمه یعنی نوع متغیره یعنی این‌که توی متغیرتون می‌خواید چی بریزید عدد بریزید یا نوشته یا چیزای دیگه. و به این قضیه هم بیش‌تر می‌پردازیم. در واقع به وقت‌ش بهش می‌پردازیم.

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

برای تعریف یک متغیر تو سی‌پلاس‌پلاس اول نوع‌ش رو می‌نویسیم و بعد هم اسم‌ش رو و بقیش هم با کامپایلره و بازهم تاکید می‌کنم که آخرش نقطه‌ویرگول یادمون نمی‌ره! مثلا اگر متغیرمون رو اسم‌ش رو بذاریم ali و نوع‌ش هم عدد صحیح باشه که بالا گفتم ما توی اولین خط یا هر جایی که خواستیم متغیر رو معرفی کنیم (واقعا هرجایی! البته فکر کنم باید بعد از

#include <iostream>

 باشه) می‌نویسیم

int ali;

که همون‌طور که گفتم اول نوع و بعد هم اسم متغیر رو آوردیم.

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

مثلا ما که متغیر ali رو بالا معرفی کردیم حالا هرجا بخواهیم بهش مقدار بدیم می‌نویسیم

ali = 2;

 

 و نقطه‌ویرگول یادمون نمی‌ره (البته اینو اگر هم یادمون بره مطمئن باشید محیط ویرایش‌گر کد یا کامپایلر یادش نمی‌ره ولی وقتی چند هزار خط کد نوشته باشید و برنامه‌تون Compile Error بگیره خیلی شاکی خواهید شد اگر این ارور به‌خاطر فراموش کردن نقطه‌ویرگول در خط ۱۳۲۳۴ باشه!)

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

int ali;

باشه و تو دومی

ali = 2;

می‌تونیم داشته‌باشیم

int ali = 2;

و البته این راحت‌تر از قبلیه.

و در ضمن می‌تونیم چندتا متغیر رو که هم‌نوع هستند (یعنی همه‌شون مثلا int هستن که ما فعلا فقط int رو بلدیم!) رو یک‌جا باهم تعریف کنیم. این‌جوری که اول نوع متغیر رو می‌نویسیم و اول اسم اولین متغیر رو و اگر هم خواستیم با علامت = مقدار دهیش می‌کنیم و بعد علامت , رو می‌ذاریم و اسم متغیر بعدی رو و اگر هم خواستیم با = مقداردهی‌ش می‌کنیم و همین‌طور تا آخر.

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

مثلا حوصله ندارن توی دیکشنری دنبال معنی کلمه بگردن پس یه برنامه می‌نویسن که این کار رو براشون بکنه یا حال کار توی سیستم‌عامل متنی یعنی سیستم‌عاملی که فقط با نوشتن دستور کار می‌کنه رو ندارن و برای همین هم سیستم‌عامل گرافیکی می‌نویسن و کلی مصداق دیگه‌ش رو هم شما می‌تونید پیدا کنید..!

برای این‌‌که از کاربر مقداری بگیریم باید از دستور

cin

 استفاده کنیم. طرز استفاده‌ش هم مشابه coutه یعنی اول cin رو می‌نویسیم و بعد برعکس cout که از دوتا علامت بزرگ‌تر یا کوچک‌تر که تیزی‌شون به سمت cout بود استفاده می‌کردیم دوتا از همین علامت‌ها ولی به‌شکلی که تیزی‌شون به سمت cin نباشه می‌ذاریم و بعدش هم اسم متغیر رو می‌نویسیم.

مثلا

int ali;
cin >> ali;

 و اگر می‌خوایم مقدار چندتا متغیر رو بگیریم مثل cout که چندبار از اون علامت استفاده می‌کردیم؛ اسم هر متغیر رو می‌نویسیم و بعدش اون علامت رو دوباره می‌نویسیم و بعدش هم اسم متغیر بعدی و بازهم این عمل رو می‌تونیم نامحدود بار انجام بدیم.

مثلا

int ali,hasan,reza;
cin >> reza >> ali >> hasan;

و فکر کنم تا الان فهمیده باشید که c اول این دوتا دستور مخفف consoleه و همین‌طور in و out هم که واضح‌ن!

و البته اون تیزی‌ها رو هم می‌شه این‌جوری توجیه کرد که اگر تیزی رو مثل یه فلش درنظر بگیریم، در واقع داریم می‌گیم که جناب cin، مقداری که می‌گیری رو بریز توی این متغیری که داره بهش اشاره می‌شه و همین‌طور جناب cout که داره بهت اشاره می‌شه، اون چیزی که داره بهت اشاره می‌کنه رو چاپ کن.

-خلاصه

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

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

خوب این بود چهارمین بخش از آموزش ما! یادتون نره سوال‌ها و نظر‌هاتون رو بنویسید. یادتون نره اینایی که گفتیم رو تمرین کنید و تا بخش بعد خدانگهدارتون…

گوگل Doodle امروزش برای روز زمینه

Doodle جالبیه. روی اشیای طبیعت که کلیک کنید هرکدوم یه کار می‌کنن مثلا یه خرس از غار میاد بیرون یا آب چکه می‌کنه یا پرنده‌ها پرواز می‌کنن.

متاسفانه با آی‌پی ایران نمی‌تونید ببینید :( ولی حالا این عکس‌ش رو از من داشته باشید :دی!

g

ایده‌ی خلاقانه: کلاینت غیررسمی اینستاگرام برای ویندوز فون

ویندوز فون ۸، یک سیستم‌عامل نوپا برای گوشی‌ها است که به تازگی وارد بازار شده. طی چند ماه اخیر، بسیاری از اپلیکیشن‌های مهم و ضروری وارد Windows Phone Store شده است؛ جالب است بدانید به گفته‌ی یکی از مدیران ارشد مایکروسافت، ۴۸ اپلیکیشن از ۵۰ اپلیکیشن پرطرفدار، برای ویندوز فون وجود دارد.

تصور می‌کنم دو برنامه‌ی باقی‌مانده، Instagram و Flipboard باشند.

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

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

instagram-socialmatic-camera

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

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

آن‌ها روش خود را به طور دقیق بیان نکردند، ولی گمان می‌کنم کلیّت کار این باشد که آن‌ها تعدادی ماشین مجازی آندرویدی روی سرور‌های خود دارند، و عکس‌هایی که ارسال می‌کنیم از طریق این ماشین‌های مجازی آندرویدی ارسال می‌شوند!

ایده‌ی بسیار جالب و شگفت‌انگیزی است، و البته هزینه‌بر. به همین دلیل است که برنامه‌ی آنها، Instagraph، رایگان نیست و ۲.۵ دلار قیمت دارد.

مشکل اینجا بود که اپلیکیشن آنها فقط می‌توانست در اینستاگرام آپلود کند، و شما برای استفاده از اینستاگرام باید از دو اپلیکیشن استفاده کنید. از این رو سازنده‌های Instagraph و Metrogram به فکر ادغام برنامه‌ها افتادند، تا تجربه‌ی کاملی از اینستاگرام برای کاربران ویندوزفون فراهم کنند!

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

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

پی‌نوشت: بی‌اختیار یاد آن جوان خلاق میلیونر، Nick D’Aloisio افتادم… (+ و +)

خلاق باشید!

زلزله زلزله زلزله

حدود یک‌ساعت پیش،1فرانک مجیدی تویت کرد که توی تبریز زلزله اومده که طی همین یک ساعت معلوم شد که زلزله ۴.۸ ریشتری نزدیکی مرند بوده. چند روز پیش که زلزله ۷ ریشتری توی مرز ایران و پاکستان اومد و اوایل فروردین هم که توی بوشهر زلزله اومد (ببخشید که تسلیت نگفتیم!) که این می‌شه سه تا توی کم‌تر از یک ماه و با زلزله‌ی آذربایجان هم می‌شه ۴تا توی کم‌تر از شیش ماه!

تحقیق شده که هر ۱۵۰سال یک بار تهران زلزله میاد و الان از اون زمانی که قرار بوده تهران زلزله بیاد حدود ۲۰ سال گذشته…

ما هم که آمادگی‌مون در برابر زلزله ۱۰۰درصده…

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

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

توی یک‌ساعت گذشته من و مهدی داشتیم بحث می‌کردیم که اگر تهران زلزله بیاد چی می‌شه و چجوری باید جون سالم ازش به در ببریم. و دوست داریم نظر شما رو هم بدونیم.

سایت امدادنا هم برای مسائل زلزله پیشنهاد شده. و خوب بحث هم توی شبکه‌های اجتماعی داره داغ می‌شه.

مایکروسافت از فایل‌های Visual Studio Update 1 من شکایت کرده!

سلام!

امروز که توی مدیافایر لاگین کردم این پیام رو دیدم!

می‌گه که فایل‌های ویژوال‌استودیو آپدیت ۱ غیرقانونی‌اند!

به‌نظرتون جواب‌شون رو بدم؟

Use of a file in your account has been suspended

Dear MediaFire User:

MediaFire has received notification under the provisions of the Digital Millennium Copyright Act (“DMCA”) that your usage of a file is allegedly infringing on the file creator’s copyright protection. The file named Visual Studio 2012 Update 1.7z.001 is identified by the key (4pjz5577hpf204f). As a result of this notice, pursuant to Section 512(c)(1)(C) of the DMCA, we have suspended access to the file.

The reason for suspension was:

Demand for Immediate Take-Down: Notice of Infringing ActivityDate: 2013/04/09Dear Sir or Madam,Microsoft has received information that the domain listed above, which appears to be on servers under your control, is offering unlicensed copies of, or is engaged in other unauthorized activities relating to copyrighted works published by Microsoft.

1. Identification of copyrighted works:Copyrighted work(s): see BelowCopyright owner: Microsoft

2. Copyright infringing material or activity found at the following location(s):See belowThe above computer program(s) is being made available for copying, through downloading, at the above location without authorization of the copyright owner.

3. Statement of authority:The information in this notice is accurate, and I hereby certify under penalty of perjury that I am authorized to act on behalf of Microsoft, the owner of the copyright(s) in the work(s) identified above.

I have a good faith belief that none of the materials or activities listed above have been authorized by Microsoft, its agents, or the law. We hereby give notice of these activities to you and request that you take expeditious action to remove or disable access to the material described above, and thereby prevent the illegal reproduction and distribution of this software via your company’s network.

We appreciate your cooperation in this matter. Please advise us regarding what actions you take.Yours sincerely,

Herv lemaireInternet Investigator On behalf of Microsoft CorporationOne

Microsoft WayRedmond, WA 98052United States of America

E-mail: [blocked]

Visual Studio 2012

http://www.mediafire.com/?4pjz5577hpf204f (http://www.mediafire.com)

http://www.mediafire.com/?h1qkh4ukjr7xq6b (http://www.mediafire.com)

http://www.mediafire.com/?g4017c65s2u8gfg (http://www.mediafire.com)

http://www.mediafire.com/?m95lqce3gj0wtoe (http://www.mediafire.com)

Information about the party that filed the report:

Company Name: LeakID
Contact Address: 
Contact Name: Hervé Lemaire
Contact Phone: 
Contact Email: [blocked]

Copyright infringement violates MediaFire’s Terms of Service. MediaFire accounts that experience multiple incidents of alleged copyright infringement without viable counterclaims may be terminated.

If you feel this suspension was in error, please submit a counterclaim by following the process below.

Step 1. Click on the following link to open the counterclaim webpage.

http://www.mediafire.com/myaccount/suspension_claim.php?u=[blocked]

Step 2. Use the following PIN on the counterclaim webpage to begin the process:

****

Step 3. Fill in the fields on the counterclaim form with as much detail as possible.

This is a post-only mailing. Replies to this message are not monitored or answered.

خوشبختانه سرور دانلود ما که هاست‌ش وارز هست‌ش تا مهرماه دوام داره و تا اون موقع مشکلی نداریم. بعدش هم می‌ریم سراغ مگا! دوشواری نداریم که!

دانلود مستقیم Visual Studio Update 2

سلام. با ۲ ساعت تاخیر نسبت به انتشار نوشته‌های روزهای قبل این نوشته منتشر می‌شه چون آپلود فایل‌ها از شب قبل شروع شده و برای احتیاط (که فایل‌ها کامل آپلود بشن) ۲ ساعت دیرتر نوشته رو منتشر می‌کنیم (در ضمن موقع انتشار نوشته هم ما تو مدرسه‌ایم!).

خوب با تشکر از دوستان بابت اطلاع‌رسانی. مثل دفعه‌ی قبل ما Visual Studio Update 2 رو هم به‌صورت مستقیم توی سرور دانلود کردیم و برای شما این‌جا می‌ذاریم!

مواد لازم: یک عدد دانلودر Visual Studio Update 2، یک عدد سرور یا کامپیوتر با سرعت دانلود مناسب، چند عدد سرور برای آپلود کردن فایل‌ها که اگر یکی‌شون خدایی نکرده از دست‌رس خارج شد دوستان معطل نشن!

طرز پخت: ابتدا دانلودر رو دانلود می‌کنیم و توی سرور می‌ریزیم. شعله‌ی اینترنت رو روی بالاترین حالت ممکن‌ش قرار می‌دیم و دانلودر رو با چاشنی /layout هم می‌زنیم. تا دانلودر خوب ور بیاد و حدود ۲ گیگ فایل‌های آپدیت رو دانلود کنه شعله رو همون‌جور نگه می‌داریم و بعدش شعله رو کم می‌کنیم که… خوب نمی‌دونم! حالا باید با چاقوی 7z فایل‌هایی که دانلود شده رو به تیکه‌های ۲۰۰ مگابایتی تقسیم کنیم که MediaFire وقتی فایل‌ها رو نوش جان می‌کنه خدایی نکرده بالا نیاره. خوب تیکه‌کردن و فشرده‌ساری فایل‌ها (در حالت Ultra!) حدود ۴ ساعت طول می‌کشه که می‌تونید برید هرکاری دوست داشتید توی اون زمان انجام بدید!

خوب حالا که تیکه‌ها آماده شد سرورها رو میاریم پیش سرورخودمون و فایل‌های تیکه‌شده رو توشون می‌ریزیم و یه‌ذره تزئیین‌شون می‌کنیم (اسم فایل‌ها رو بهتر می‌کنیم!) و میزاریم جلوی دوستان تا نوش‌جان کنند!

فقط این‌که فایل‌های فشرده ۷تا فایل ۲۰۰مگابایتی هستند که حدود ۱.۳ گیگ حجم داره و باید با آرامش اینا رو مصرف (دانلود!) کنید که پهنای باند اینترنت‌تون کم نیاره و فایل‌ها رو پس نزنه!

در ضمن پیشنهاد می‌کنم این غذا رو با IDM مصرف کنید که خوب هضم بشه و براتون مشکل پیش نیاره!

خوب حالا می‌تونید این آپدیت‌ها رو از سرور دو برنامه‌نویس، سرور دانلود دو برنامه‌نویس یا از مدیافایر دانلود کنید.

امیدوارم مفید باشه!

به گوگل کمک کنید تا سایت‌های اسپم رو شناسایی کنه

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

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

یک‌سری آدم خیّر هستند که به گوگل کمک می‌کنن که تای‌لانگ‌ها رو بشناسه و… خوب دیگه توی نتایج‌ش اونا رو نشون نده. خود گوگل هم به کاربراش می‌گه که اگه سایتی رو می‌شناسید که تای‌لانگ بازی در میاره به من معرفی‌ش کنید (تا شاخ‌شو بشکونم!) و ابزارهای مختلف‌ش رو هم به کاربراش می‌ده تا بهش کمک کنن.

منم که از گوگل استفاده می‌کنیم از دوست داریم بهش کمک کنم و همین‌طور از شما هم درخواست کنم که به گوگل کمک کنید. برای این‌کار هم افزونه‌هایی توی گوگل کروم و فایرفاکس هستش که ما قرار بود اینا رو به شما معرفی کردیم (خوب دیگه معرفی شد. برید استفاده کنید!).

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

پی‌نوشت: قضیه‌ی قطب شمال و جنوب الگوریتم پنگوئن گوگله:

googlepenguinقضیه‌ی چین هم الگوریتم پاندای گوگله که دوستان از کونگ‌فو پاندا به‌عنوان نماد این الگوریتم استفاده می‌کنن:

google-panda-update-2011

 

و خوب تای‌لانگ هم دشمن پو توی انیمیشن Kung Fu Panda بوده دیگه (انصافا عکس‌ش هم به سایت‌های اسپمر می‌خوره!)

Tai_Lung_Kung_Fu_Panda_1023