دیفیس شدن سایت رسمی کمپین دونالد ترامپ

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

این هکر که خودش رو پرو مستر معرفی کرده، با پیام

Hacked by Pro_Mast3r ~
Attacker Gov
Nothing Is Impossible
Peace From Iraq

تونسته سرور ترامپ که پشت کلاودفلر هم بوده رو دیفیس کنه. بامزه اینه که سرور هنوز پایینه و تنها اثر از هکر، یک لینک است به یک جاوااسکرپیت که الان دیگه وجود نداره روی اکانتی به اسم masterendi روی گوگل کد.

اگر من به دانشگاه بر میگشتم

چاپ شده در نشریه دانشگاهی


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

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

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

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

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

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

لینک های شاد دوشنبه آخر ماه بهمن ۱۳۹۵ – کوتاه ولی مفید

  • طبق روندی که همه چیز داره می ره تو تلگرام و دیگه قابل پیدا شدن توسط عموم نیست، لازمه بگم که این لینک گروهی برای آیونیک است.
  • و این هم سایت ترجمانو برای ترجمه های شما که با کد Hamkar-6513 می تونین توش تخفیف هم بگیرین.
  • کنفرانس سار زمستان هم جمعه ۶ اسفند برگزار می شه. من درگیر کنفرانس آینده وب و موبایل هستم و نمی تونم بپیوندم ولی به نظرم این کنفرانس سار یکی از اون نقطه امیدهای زندگی تو ایرانه. آدم هایی خوب که سعی می کنن موزه ملی علوم و فناوری رو چیزی بکنن که باید باشه، با همه مشکلات. کنفرانس سار نه فقط خودش خوبه که حمایت ازش خیلی خوبه. من تمام تلاشم رو می کنم توی سار بهار باشم. کد تخفیف ۵۰٪ : jadi
  • دانلودچی باشی هم دو ساله شده. سیستمی برای دانلود فایلای مالتی مدیای سرویسهای یوتیوب، ویمئو، ساوندکلاد و فیس بوک یا پیدا کردن زیرنویس و اینجور چیزها. الان بخش های تورنت و دانلود از مگنت و ویدئوهای توییتر و مستقیم کردن لینک ها (بخصوص بسته شده ها)‌ رو هم داره. شاید دانلودچی باشی گره ‌ای از مشکلی باز کنه.

خوش باشین و خرم و اگر دوست داشتین چیزی تون توی دوشنبه آخر ماه اسفند تبدیل حضور داشته باشه، به jadijadi روی جیمیل ایمیل بزنین.

برنامه‌های پیش رو: این‌ هفته #پایتون و هفته بعد آینده وب و موبایل

در طول این دو تا آخر هفته پیش رو، من دو تا جا می رم و کلی حرف می‌زنم. اولیش کنفرانس پای کان است در ۲۹ بهمن و دومی همایش آینده وب و موبایل در تاریخ ۴ و ۵ اسفند.

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

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

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

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

  • امکاناتی که در سمپاد هست از کجا اومده؟ هی برین بالا یکی می خواد بگه از بودجه رییس جمهور است و اون یکی بگه از فلان جا ولی در نهایت در کشور ما یک حجم محدودی منابع آموزشی هست و وقتی حجم عظیمی از اونها یک جای خاص متمرکز می شن، یعنی سهم بقیه جاها کم شده
  • آزمون های ورودی سمپاد اصولا هوش رو نمی‌سنجن. انواع کلاس های کنکور و … در نهایت باعث شدن نمونه ای که دارن تو سمپاد درس می خونن اکثرا از خانواده های بالاتر از متوسط باشن. این مساله سریعا در حال گسترش هم بوده و هست. اوایل کلاس ها پذیرای بچه های فقیر هم بود ولی الان یک لحظه فکر کنین کدوم کلاس سمپاد رو یادتون می یاد که توش بیشتر از نصف بچه ها از متوسط به پایین جامعه اومده باشن؟
  • چیزها در طبیعت در یک نمودار نرمال قرار می‌گیرن. هوش و موفقیت تحصیلی و درس خون بودن و … هم جزو این چیزها است. اگر شما نمونه ای از بالای نمودار رو جدا کنین و در یک کلاس بذارین، بازهم شکل نرمال زنگوله‌ای به خودش می گیره. یک مشکل کلاس «تیزهوشان» اینه که هر کدوم از این بچه ها می تونستن در مدرسه خودشون بسیار موفق و خفن حساب بشن ولی اینجا نصفشون معمولی هستن و مثلا ده درصدشون «تنبل».
  • توزیع امکانات فرصت های بیشتری به افراد جامعه می ده. به همین دلیل کشورها هر چقدر پیشرفته تر می شن سعی می کنن توزیع رو برابرتر کنن تا فرصت به استعدادهایی که در جاهای کمتر دیده شده بروز می کنه هم برسه. سمپاد عملا خلاف این ایده عمل می کنه.
  • سمپاد معمولا سیستم آموزشی اشتباهی داره. کنکوری های سابق و بچه های ۲۰ ساله چون توی کنکور نفر اول شدن با هیجان معلم سمپاد می شن و فکر می کنن باید به یک بچه راهنمایی درس دبیرستان بدن و به بچه دبیرستان درس دانشگاه. این از نظر روانشناسی آموزش اشتباهه و متون مختلفی براش هست. ما وقتی رفتیم درس بدیم کلی گشتیم و خوندیم در این باره. یک سیستم آموزشی درست باید معلم های پر تجربه تر داشته باشه؛ در واقع معلمی یک شغل و مهارت و علم است که اتفاقا سواد در حد آموزش در دبیرستان کمترین اهمیت رو انتخاب یک معلم خوب داره. مشکل سمپاد در بخشی از معلم هاش اینه که فقط چون یک نفر خودش دانش رو بلده، تصمیم می گیره از ترم بعد معلم هم باشه. این به نظرم یکی از بدترین قسمت های طراحی سمپاد است.
  • ایده «بهترین ها رو جمع کنیم و پرورش بدیم» ذاتا فاشیستی است. معنی اش این نیست که اگر ما رفتیم سمپاد حتما فاشیست هستیم بلکه معنی این حرف اینه که این کار دقیقا اونی است که هیتلر هم تلاش می کرد بکنه و اصرار می کرد آدم های قشنگ با هم ازدواج کنن تا نیروهای خوب برای آلمان نو ساخته بشه. این اصرار به ازدواج «درون گروهی» رو هم حتی در سمپاد داشتیم. جالبه که این سیستم با اینکه در لحظه اول با ذهنیت فاشیست زده خیلی از ما هماهنگه، در لحظه دوم باید یادمون بیاریم که حتی به شکل تجربی هم هیچ جا جواب مثبتی نداده. بشر کمی پیچیده تر از لوبیا است (: راستی اونطرف این بحث، بحث عقیم کردن «خنگ ها» است (:
  • سمپاد با اصرار به آدم هاش می گه «شما باهوشین». این فشار روانی گاهی بسیار ازار دهنده می شه. بخصوص اگر برین دانشگاه و یکهو ببینین همه در حال هورا کشیدن برای شما نیستن، فیزیک هالیدی رو قبلا خوندین و سر کلاس حوصله تون سر می ره و اتفاقا آدم هایی که مهارت های اجتماعی یا هوش اجتماعی بالاتر، همه رو جذب خودشون کردن نه کسانی که تو کنکور اول شدن یا برچسب باهوش به سینه‌شون چسبیده.

و یک نکته دیگه هم هست که هیمشه حرف منه؛ تو سمپاد صادقه و در بقیه جاها هم، از جمله در یاد گرفتن برنامه نویسی:

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

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

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

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

راهنمای شروع و پیشرفت و حرفه ای شدن در زبان برنامه نویسی پایتون

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

شروع ایده اصلی

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

در این مرحله اگر از یک زبان برنامه نویسی دیگه میاین و در حال حاضر زبون خودتون رو بلدین، پیشنهاد می کنم به شکل عمومی دنبال python tutorial بگردین و چند تا رو باز کنین و اونی که دوست دارین رو کامل بخونین. اینجوری خیلی زود سینتکس جذاب پایتون رو یاد می گیرین و می تونین برین مرحله بعدی.

نکته: بعضی ها در اولین برخورد با پایتون با یک سورپریز بزرگ روبرو می شن: پایتون از { و } برای مشخص کردن بلوک ها استفاده نمی کنه و به راحتی از اسپیس یا تب برای اینکار کمک میگیره. گفته می شه اولین شروع هر کس که از زبان دیگه اومده به پایتون، با یک فرار همراهه و بار دوم احوالپرسی از پایتون است که عاشق این زبون ساده و کم ادعا می شه (:

پنج نکته برای دوری

جان سونمز پنج نکته رو می گه که باید ازش دوری کنین و یکی از اصلی ترین مراجع این مطلب هم اونو تکرار می کنه و من کی باشم که تکرارشون نکنم؟

  1. کتاب ها رو از اول تا آخر نخونین. در شروع کتاب ها رو از اول تا آخر نخونین. ما بخش کمی از کتاب ها رو یادمون می مونه و فقط کتاب خوندن بخش زیادی از انرژی شما رو می گیره. کتاب مال وقتی است که شما موضوعات رو بلدین و می خواین توش عمیق بشین.
  2. بدون برنامه تو بحث شیرجه نزنین. آدم ها رو به دلایل مختلف جو می گیره. یکهو می خوان خدای چیزی بشن و یک عالمه کتاب دانلود می کنن و شایدم دو تا ادیتور برنامه نویسی و عضو یکسری کانال و فروم و میلینگ لیست می شن و هی چیز می خونن و فیلم می‌بینن. این اشتیاق معمولا به همین سرعت هم فروکش می‌کنه. بدونین برای چی وارد بحث شدین و می خواین به کجا برسین و می خواین باهاش چیکار کنین.
  3. حوزه خودتون رو مشخص کنین. دنیا وسیعه! حتی برنامه نویسی هم خیلی وسیعه و شاید براتون جالب باشه که حتی پایتون هم خیلی وسیعه! بهتره شما بدونین در چه حوزه ای می خواین کار کنین و از اون شروع به یادگیری کنین. اگر می خواین اپ تحت وب درست کنین لازم نیست با numpy شروع کنین و اگر می خواین محاسبات انجام بدین شروع کردن یا اصرار روی scikit اشتباهه. از یک جا شروع کنین و توش پیش برین.
  4. دو (یا بیشتر!) چیز رو همزمان یاد نگیرین. این اشتباه با مورد ۲ شباهت‌هایی داره. آدم ها یکهو می خوان «هکر» بشن و شروع می کنن شبکه و سیستم عامل و برنامه نویسی و انگلیسی و آلمانی و روسی و نقد فیلم و ادبیات کلاسیک رو با هم خوندن و یاد گرفتن. از یک جا شروع کنین و وقتی در حد معقولی پیش رفتین برین سراغ چیز بعدی. این مساله حتی داخل پایتون هم صدق می کنه. اگر دارین جنگو یاد می گیرین نیازی نیست همزمان شروع به خوندن فلسک هم بکنین. یکی رو پیش برین در حد معقول و بعد فرصت برای بعدی هست.
  5. بدون تجربه کردن پیش نرین. بعضی چیزها برای آدم ها لذت بخشه. من از دیدن فیلم بازی شطرنج خیلی خوشم می یاد و در نتیجه شش ماه فیلم دیدم بدون اینکه بازی کنم؛ هیچ پیشرفتی هم نداشتم. حتما حین تئوری با عمل هم برخورد داشته باشین.

شروع عملی پایتون

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

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

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

یک پروزه عملی بردارین

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

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

حالا عمیق بشین

شما درک از زبان دارین و می تونین باهاش کار کنین درسته؟ حالا وقتشه که حرفه ای بشین و بهتر از هر کس زبان رو درک کنین. حداقل بهتر از ۸۰٪ آدم‌های دیگه. این بخش‌ها مهمترین اجزای داکیومنتهای رسمی پایتون هستن برای خونده شدن توسط کسی که می خواد زبان رو به تسخیر خودش در بیاره: 1, 2, 3, 4, 5, 6.1, 6.2, 26.4 و 27.3.

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

پیشرفت کنین

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

  • کتاب Fluent Python
  • کتاب Effective Python

در صورتی که می خواین با نوشتن برنامه خودتون رو محک بزنین، به این مطلب محمد فاضلی نگاهی بندازین

نکته پایانی

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

منابعی برای نگاه کردن

رباتی که وسایلتون رو می ذارین توش و دنبالتون راه می افته می یاد

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

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

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

گیت لب عالیه؛ از هر دو نظر

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

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

حالا چرا عالیه؟ چون شفاف و معقول اینها رو گفته و چون یک داکیومنت آنلاین درست کرده که هر قدم تعمیراتی رو به ما می‌گه:

GitLab.com Database Incident - 2017/01/31



This incident affected the database (including issues and merge requests)
but not the git repo's (repositories and wikis).

Timeline (all times UTC):

2017/01/31 16:00/17:00 - 21:00

YP is working on setting up pgpool and replication in staging, creates
an LVM snapshot to get up to date production data to staging, hoping he
can re-use this for bootstrapping other replicas. This was done roughly
6 hours before data loss.

Getting replication to work is proving to be problematic and time
consuming (estimated at ±20 hours just for the initial pg_basebackup
sync). The LVM snapshot is not usable on the other replicas as far as YP
could figure out. Work is interrupted due to this (as YP needs the help
of another collegue who’s not working this day), and due to spam/high
load on GitLab.com

2017/01/31 21:00 - Spike in database load due to spam users - Twitter
| Slack

Blocked users based on IP address

Removed a user for using a repository as some form of CDN, resulting in
47 000 IPs signing in using the same account (causing high DB load). This
was communicated with the infrastructure and support team.

Removed users for spamming (by creating snippets) - Slack

Database load goes back to normal, some manual PostgreSQL vacuuming is
applied here and there to catch up with a large amount of dead tuples.

2017/01/31 22:00 - Replication lag alert triggered in pagerduty Slack

Attempts to fix db2, it’s lagging behind by about 4 GB at this point

db2.cluster refuses to replicate, /var/opt/gitlab/postgresql/data is
wiped to ensure a clean replication

db2.cluster refuses to connect to db1, complaining about max_wal_senders
being too low. This setting is used to limit the number of WAL (=
replication) clients

YP adjusts max_wal_senders to 32 on db1, restarts PostgreSQL

PostgreSQL complains about too many semaphores being open, refusing
to start

YP adjusts max_connections to 2000 from 8000, PostgreSQL starts again
(despite 8000 having been used for almost a year)

db2.cluster still refuses to replicate, though it no longer complains
about connections; instead it just hangs there not doing anything

At this point frustration begins to kick in. Earlier this night YP
explicitly mentioned he was going to sign off as it was getting late
(23:00 or so local time), but didn’t due to the replication problems
popping up all of a sudden.

2017/01/31 23:00-ish

YP thinks that perhaps pg_basebackup is being super pedantic about there
being an empty data directory, decides to remove the directory. After
a second or two he notices he ran it on db1.cluster.gitlab.com, instead
of db2.cluster.gitlab.com

2017/01/31 23:27 YP - terminates the removal, but it’s too late. Of
around 310 GB only about 4.5 GB is left - Slack

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

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

مرتبط:
چرا دراپ باکس می گه پسوردهاش لو رفته؟