نمودارهای اولیه و نتایج خام نظر سنجی بزرگ کار و زندگی برنامه نویسان و مدیران سیستم ایران در سال ۱۳۹۷

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

اما اولین مطلب،‌ منطقا آمار ابتدایی است.

اطلاعات جمعیتی

می‌بینیم که بیشتر پاسخ دهنده‌ها جون هستن و مرد. زن‌ها ۱۰٪ جمعیت پاسخگو رو تشکیل دادن و افراد ۴۰ سال به بالا بسیار کم هستن. این هم میتونه به خاطر شکل بازار باشه هم به خاطر ترکیب کسانی که این پرسشنامه بهشون می رسه و حوصله می کنن بهش جواب بدن.

حدود ۲۸٪ پاسخگوها گفتن کمتر از ۱ سال سابقه کار دارن و سابقه کار یک تا هفت سال، تقریبا ۵۰ درصد جمعیت رو می‌پوشونه. همچنین بیشترین پاسخگوها لیسانسشون رو گرفتن و رتبه دوم دست کسانی است که در حال تحصیلن.

کار و شرکت

اما کجاها کار می کنیم؟

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

بیشترین گروه مربوط به توسعه دهنده‌های بک اند است و البته فول استک که در حال رشده. فول استک با اسم دهن پر کنش این روزها داره تبدیل می شه به «بیا همه کار بکن» (: بعد از این دو تا توسعه دهنده‌های موبایل بیشترین شغل رو دارن و ۱۷٪ هم توسعه دهنده نرم افزارهای دسکتاپ هستن.

دورکاری هنوز زیاد باب نیست ولی ظاهرا قابل توجه است.

زندگی شخصی

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

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

چای سیاه هنوز در مقابل قهوه برنده است و ۱۲٪ ما نوشیدنی‌ّای انرژی‌ زا هم می‌خوریم. خوشبختانه نوشابه حضور پررنگی نداره و به جاش آب، رقیب سوم است (:

از بین ۲۱۳ نفری که می‌گن تو بدنشون تغییرات دادن، تتو با ۳۷٪ بیشترین طرفدار رو داره. همچنین پیرسینگ گوش با ۲۱٪ قابل توجه است (که باید در مورد جنس جداسازی بشه) و ۱۷٪ هم گفتن از تقویت کننده‌های حواس استفاده می‌کنن – منم دقیق نمی دونم چیه (: منطقا از عینک تا سمعک باید جزوش باشن. اوه.. ۳٪ ما هم پیرسینگ‌های غیر از گوش داریم و کلا جواب‌های متفرقه این بخش هم جالبه. بعدا در موردش می‌نویسم و در دیتاهای اصلی هم می‌تونین ببینین.

حدود ۴۰٪ جمعیت ازدواج کردن یا با پارتنر دائمشون هستن. یک چهارم ما علاقمند هستیم رابطه ای رو شروع کنیم و البته ۱۵٪ ما با یه چیزی تو کامپیوترمون تو رابطه ایم (:

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

سبک کار

خوشبختانه ۸۰٪ پاسخگوها دارن از سورس کنترل‌ها استفاده می‌کنن، تقریبا همه از گیت. یک سوم هم از بیلد سیستم‌ها و یک چهارم از کانتینرها. این آمار بسیار خوبیه و به نظرم باعث افتخار (: چیزی که جاش خالیه استفاده از کلاود است که منطقا در بقیه دنیا رتبه‌های اول رو داره ولی خب با اینترنت ما و تحریم ها و … منطقا خودمون باید پروایدر تمام سرویس های کلاودی خودمون هم باشیم (:

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

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

اکثر ما از ترکیب کردن ویدئوهای خارجی و ویدئوهای مستقل و یک پروژه، چیز یاد می‌گیریم. کمترین یادگیری ما در کلاس‌های فیزیکی اتفاق افتاده.

جای مای‌اسکوئل و ام اس اسکوئل منطقی است. چیزی که هیجان انگیزه حضور پر رنگ اسکیولایت در کارهای ماست (:

با توجه به محبوبیت ویندوز ۱۰، تقریبا ۷۰٪ از انواع ویندوز استفاده می‌کنند. مک‌کارها ۱۳٪ هستند و حضور لینوکس هم پر رنگ است. حدود ۱٪ هنوز به ویندوز ایکس پی وفادار هستند و البته در معرض انواع مشکلات امنیتی (:

اما روی سرور لینوکس اوبونتو و سنت او اس محبوب‌ترین است و وقتی بخواهیم ویندوز انتخاب کنیم ویندوز ۲۰۱۶، انتخاب اکثریت. با توجه به حضور تنها ۱.۵٪ی بی اس دی‌ها، لازم است یادآوری کنم که بی اس دی ها یکی از بهترین گزینه‌ها برای سرورهای مهم هستند و انتخابی خوب برای شرکت‌های بزرگ که احتمالا به خاطر [نگرانی از] کمبود متخصص، در ایران خیلی سراغشون نرفته‌ایم.

و آدم‌هامون ظاهرا هنوز به تلفن‌های خنگ قدیمی که یک هفته باتری دارن وفادارن، حداقل نزدیک ۳٪ مون (:

و در بحث بامزه بین کامپیوتری‌ها، تب جلو است و هشت درصد هم اهل این شوخی نیستن (:

و البته در بحث بامزه دوم، ترم تیره پیروزه

حقوق و مزایا

و مهمترین بخش ماجرا، حقوق و مزایا!‌ شدیدا لازمه که این بخش بعدا با چیزهایی مثل سابقه کار، زبان‌های مورد استفاده و … بررسی بشه ولی فعلا اطلاعات خام!

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

در این بخش نیمی از پاسخگوها گفتن که کار ساعتی هم می‌کنن و ۱۸٪ بین ده تا ۲۵ تومن و ۱۲٪ بین بیست و پنج تا پنجاه براش می‌گیرن. درآمد بالای ۲۰۰ بسیار نادره و برای گرفتن نتایج دقیقتر، لازمه اینو در کنار تجربه و حوزه کاری بذاریم.

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

رضایت کلی

ولی ما برنامه نویسی، مدیریت سیستم و سر و کله زدن با کامپیوترها رو دوست داریم. نزدیک ۷۰٪ ما واقعا راضی هستیم که اینکار رو انتخاب کردیم و تنها نزدیک ۱۰٪ به نوعی ابراز نارضایتی کردیم.

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

بررسی وضعیت شغلی برنامه نویسان و مدیر سیستم_های ایران – jadi.net – 97 (Responses) – Form Responses 1

بررسی وضعیت شغلی برنامه نویسان و مدیر سیستم_های ایران – jadi.net – 97 (Responses)

در این لحظه نمی دونم چرا گوگل داکز نمی ذاره فرمت odf دانلود کنم، ولی csv هست برای دوستان کاملا آزاد کار.

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

یکی از سوال های دائمی اینه که «از کجا شروع کنم» یا «تا اینجا اومدم حالا کجا برم». جواب این سوال نیاز به یک نقشه داره؛ یک نقشه راه!

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

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

برای دیدن عکسهای بزرگتر، روی عکسها کلیک کنید




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

مشتری طراحی سایت پولتون رو نمی ده؟ با این کد خورد خورد سایتش رو غیب کنین

امروز یک رپوزیتوری دیدم که واقعا حیفه بهتون معرفی نکنم: kleampa/not-paid. بهتون این جاوااسکریپت رو می ده:

(function(){
    /* change these variables as you wish */
    var due_date = new Date('2017-02-27');
    var days_deadline = 60;
    /* stop changing here */
    
    var current_date = new Date();
    var utc1 = Date.UTC(due_date.getFullYear(), due_date.getMonth(), due_date.getDate());
    var utc2 = Date.UTC(current_date.getFullYear(), current_date.getMonth(), current_date.getDate());
    var days = Math.floor((utc2 - utc1) / (1000 * 60 * 60 * 24));
    
    if(days > 0) {
        var days_late = days_deadline-days;
        var opacity = (days_late*100/days_deadline)/100;
            opacity = (opacity < 0) ? 0 : opacity;
            opacity = (opacity > 1) ? 1 : opacity;
        if(opacity >= 0 && opacity <= 1) {
            document.getElementsByTagName("BODY")[0].style.opacity = opacity;
        }
        
    }
    
})()

که کافیه بعد از تنظیم دو تا متغیربالاییش به اسم not-paid.js ذخیرش کنین و تو بخش صداش بزنین. حالا یک میزان opacity به body اضافه می شه و هر روز که بگذره بیشتر می شه و سایت رو کم رنگ و کم رنگ تر می کنه تا بالاخره بعد از گذشتن مهلت مقرر (مثلا ۶۰ روز) سایت مشتری کاملا محو بشه (:

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

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

آپدیت ها

  • عرفان در کامنت ها فورک خودش که تاریخ شمسی می پذیره رو گذاشته.
  • سعید هم در ایمیل تذکر داده که «با توجه به ماده ۷۳۸ قانون در نظر داشته باش و هشدار بده که این کار به معنی ممانعت از دسترسی افراد مجاز به اطلاعاتشون هست! و این یعنی ۱ سال زندان و ۲ میلیون هم جریمه» است. منم تو متن تذکر دادم که این مطلب برای فان است و در قوانین ایران بهتره هیچ شوخی این شکلی نکنین. آدم هایی می شناسم که سر چیزهای خیلی خیلی کوچیکتر دردسرهای بسیار عجیبی متحمل شدن در قوانین عجیب ما

مقدمه ای بر اینکه برنامه هایی با رابط گرافیکی، چطور نوشته می شن: کیوت + پایتون

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

  • در تمام سیستم عامل های مرسوم کار میکنه
  • با اکثر زبان های مرسوم می شه درستش کرد
  • قشنگه و کارا
  • سر راست است و راحت
  • منابع منظم و زیادی داره و خوب هم آپدیت می شه

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

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

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

و دو نکته آخر:

  1. این رو گذاشته ام در درک برنامه نویسی. دلیلش اینه که می تونین نگاه کنین ببینین مفهوم کلی نوشتن یک برنامه در محیط گرافیکی چیه. لازم نیست کل جزییات قابل درک باشن
  2. یادم رفته بود ویدئوی اول رو ادیت کنم و اطلاعاتی مثل شماره ملی و تلفنم توش بود. یکی از دوستان تذکر داد و ادیت کردم و دوباره آپلود.

توزیع پنجاه نسخه رایگان از «کتاب مدیریت محصول چابک با اسکرام اثر رومن پیچلر» برای دنبال کننده‌ها

آپدیت: فرصت شرکت در این قرعه کشی تموم شد. نتایج قرعه کشی در سایت پارسکدرز

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

و خبر خوب؟ تیم پارسکدرز تصمیم گرفته ۵۰ جلد از این کتاب رو به رایگان بین مخاطب‌های جادی.نت نوزیع کنه (: اگر شما هم می خواین توی این قرعه کشی شرکت کنین کافیه بعد از فالو کردن من و گفتن به دویست تا از دوستاتون و تگ کردن و ریتوییت و چاپ و نصب در میدون شهر و. … این فرم آنلاین رو پر کنین و خب معلومه که بخش فالو و تگ و اینها شوخی بود (:

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

توضیح اینکه چرا در خیلی زبان‌های کامپیوتری، 9999999999999999.0 – 9999999999999998.0 = 2

دیروز توییت کردم که در اکثر زبان های برنامه نویسی این محاسبه جوابش اینه:

9999999999999999.0 - 9999999999999998.0 = 2

عجیبه؟ بله. غیر منطقی است؟ اصلا. توی این ویدئو در مورد مساله اعداد اعشاری در کامپیوتر توضیح می دم و با هم می بینیم که چرا بعضی وقت ها محاسباتمون عجیب غریب از آب در میان.

انرژی بخشه اگر مخاطب های خوب کانال آپارات و یوتوب رو عضو بشن و ویدئوها رو دنبال کنن.

توضیح ویدئویی آسیب پذیری پالیسی کیت CVE-2018-19788

خبر عجیب و بامزه اینه که یک مشکل امنیتی توی پالیسی کیت لینوکس پیدا شده. کار پالیسی کیت اینه که پروسه‌های نیازمند دسترسی رو به پروسه‌های بدون نیاز به دسترسی وصل کنه. در نتیجه مثلا وقتی شما دستور systemctl رو در بسیاری از لینوکس های جدید اجرا می‌کنید، پالیسی کیت اگر لازم باشه پسورد شما رو می گیره و به سیستم‌دی می‌گه که شما دسترسی لازم رو دارین. حالا مشکل چیه؟ پالیسی کیت برای بررسی دسترسی ها از اعداد صحیح (int) استفاده می کنه و اگر کسی با UID بالاتر از ماکزیمم عدد صحیح اون سیستم درخواست بده، …. قاطی می کنه و بهش دسترسی می ده!

فکر کردم باحاله این رو توی ویدئو نشون بدم و نتیجه اش شده این ویدئو:

که خب روی یوتوب، تلگرام و آپارات هم هست.

پروسه و برنامه تقسیم پول اینفلوئنسربازی بین فالوئرها با معکوس کردن احتمال کسانی که چند بار ثبت نام کردن

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

۱. آیا من از این طریق فالوئر جمع می کنم؟

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

۲. آیا بهتر نبود به خیریه بدیم؟

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

۳. ایا بهتر نبود کالا بدیم؟

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

۴. بهتر نبود خرج جادی.نت و رادیوگیک و… بشه؟

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


اما حدود ۴۰۰۰ نفر فرم رو پر کردن:

طبق قرار باید ۶ نفر رو به شکل رندم از بین این آدم‌ها انتخاب کنیم. اول فرم گوگل رو توی یک فایل متنی ذخیره کردم. یک ستون حاوی همه اسم ها. اسم فایل هست all.txt و می خوام پیدا کنم که اسامی تکراری چند بار تکرار شدن.

sort all.txt| uniq -c | sort -n | awk '{$1=$1};1' > counted.txt

این دستور بهمون یک فایل جدید می ده که تعدادی که هر نفر اسمش رو نوشته جلوی اسمش اومده. مثلا اینطوری:

      4 Kyarash_bordbar
      5 توییتر
      6 Mary_am_j 
     16 Kayvan_mrz
     16 اینستاگرام

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

sort all.txt| uniq -c | sort -n | awk '{$1=$1};1' | cut -f1 -d' ' | uniq 
1
2
3
4
5
6
16

یک و دو که منطقی است. ولی کسانی که ۳ تا ۶ و حتی ۱۶ بار اسم نوشتن رو چیکار کنیم؟ اینها سعی کردن شانس خودشون رو زیاد کنن پس بهتره ما شانسشون رو کم کنیم (: ایده من اینه که کسی که ۱۶ بار ثبت نام کرده یک شانزدهم بقیه شانس برنده شدن داشته باشه. اول کوچکترین مضرب مشترک این اعداد رو پیدا می کنیم:

def BMM(i, nums):
    for n in nums:
        if i%n:
            return False
    return True

i = 1
nums = [1, 2, 3, 4, 5, 6, 16]
while not BMM(i, nums):
    i += 1
print (i)

240

یعنی ما باید هر اسم رو اگر یک یا دو بار تکرار شده بود ۲۴۰ بار تکرار کنیم، اگر ۳ بار نوشته شده بود ۷۰ بار، اگر هم ۱۶ بار نوشته شده بود فقط ۱۵ بار (: شانس رو معکوس کردیم که خیلی حال می ده. بذارین برنامه اش رو بنویسیم:

import re

f = open ('/tmp/counted.txt')
o = open ('/tmp/go.txt', 'w')

for line in f:
    num, name = re.findall ('(\d+) (.*)\n', line)[0]
    if num == '2':
        num = 1
    for i in range(0, 240/int(num)):
        o.write(name+'\n')

حالا ما یک فایل داریم که اگر توش کسی ۱۶ بار ثبت نام کرده، اسمش ۱۵ بار اومده، اگر کسی یک یا دو بار ثبت نام کرده اسمش ۲۴۰ بار اومده! شانس ها معکوس شد. حالا وقت قرعه کشی است:

import random
lines = open('/tmp/go.txt').read().splitlines()
myline =random.choice(lines)
print(myline)

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