چاپ دوم کتاب برنامه نویسی با پایتون

چاپ دوم کتاب “برنامه نویسی با پایتون : چطور مثل یک کامپیوتردان فکر کنیم” نوشته آلن داونی؛ ترجمه بنده و دوست عزیزم جناب آقای کیوان رسولی بوسیله نشر دانشگاهی کیان به بازار ارائه شد. در این چاپ تغییر خاصی در کتاب ارائه نشده. می توانید دو فصل اول کتاب رو به صورت رایگان از آدرس زیر دانلود و مطالعه کنید.

دانلود و مطالعه رایگان دو فصل اول کتاب برنامه نویسی با پایتون

طرح جلد کتاب برنامه نویسی با پایتون ترجمه غلامرضا صابری تبریزی

تجزیه و تحلیل پرفروش ترین برنامه های کافه بازار

در این پست قصد دارم از نقطه نظر آماری به بررسی پرفروش ترین برنامه های کافه بازار بپردازم. داده های استفاده شده در این پست مربوط به لیست پر فروش ترین برنامه های کافه بازار در تاریخ شانزدهم مهرماه ۱۳۹۴ است. این داده ها بوسیله یک Web Scrapper بسیار ساده که با زبان پایتون نوشته ام  جمع آوری شده. می توانید داده های خام را در قالب یک فایل اکسل از اینجا دانلود کنید.

در تجزیه و تحلیل های انجام شده درآمد یک برنامه برابر با تعداد نصب های های فعال ضرب در قیمت آن تعریف شده است.

توجه: برای مشاهده تصویر کامل نمودارها روی تصاویر کلیک کنید.

در ادامه به سوالاتی که در آن زمان برای خودم مطرح شده بود می پردازم:

۱- بازار چند برنامه پر فروش دارد؟

پاسخ: در زمان بررسی کافه بازار ۵۰ برنامه پرفروش در لیست برترین های فروشی خود داشت. نام نرم افزار ها به همراه دسته های آنها در فایل ضمیمه شده موجود است.

۲- در لیست پرفروش ترین ها چه تعداد برنامه از هر گروه وجود دارد؟

پاسخ: جواب این سوال را می توانید در Pareto Chart زیر به وضوح مشاهده کنید. در این نمودار ستون افقی نام دسته ها و ستون عمودی تعداد برنامه های موجود در آن دسته را نشان می دهد.

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

همان طور که مشاهده می کنید بیشترین تعداد برنامه ها در دسته کاربردی قرار دارند. در جدول زیر می توانید فراوانی نسبی (Relative Frequency) برنامه های موجود در هر دسته را مشاهده کنید:

تعداد برنامه های موجود در هر دسته

۳- میانگین قیمت برنامه های موجود در هر دسته چقدر است؟

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

میانگین قیمت برنامه های موجود در هر دسته

میانگین قیمت برنامه های موجود در هر دسته

۴- در میان پر فروش ترین ها به طور کلی میانگین قیمت چقدر است؟

به طور کلی میانگین قیمت برنامه در میان پر فروش ترین ها ۱۵۱۹ تومان است.

۵- درآمد کل کافه بازار از پرفروش ترین ها چقدر بوده؟ سود کافه بازار در این میان چقدر بوده است؟

در کل کافه بازار تا تاریخ مذکور از پرفروش ترین های خود مبلغ  یک میلیارد و هفتصد و پنجاه و سه میلیون و صد و پنج هزار تومان در آمد داشته است. در این میان سود کافه بازار که ۳۰ درصد این مبلغ است برابر با پانصد و بیست و پنج میلیون و نهصد و سی و یک هزار و پانصد تومان بوده است.

۶- مجموع در آمد برنامه های موجود در هر دسته چقدر بوده است؟ پر در آمد ترین دسته ها به ترتیب کدامند؟

پاسخ این سوال را می توانید در نمودار و جدول زیر ملاحظه کنید (نتایج بر اساس بیشترین درآمد مرتب شده اند).

EarningPerCatParetoChart

EarningPerCatTable

۷- توزیع درآمد برنامه ها چگونه است؟
برای پاسخ به این سوال باید مواردی مانند پردرآمد ترین برنامه (Max)، کم درآمد ترین برنامه (Min) و رنج درآمد برنامه ها (Range) را به دست آوریم. اطلاعات مربوط به پردرآمدترین و کم درآمد ترین برنامه ها را برای استفاده شما آورده ام:

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

توزیع درآمد برنامه ها در هیستوگرام  زیر آمده است:

EarningHistogram

نتیجه گیری

همان طور که مشاهده می کنید درآمد اکثر نرم افزار ها بین کمترین میزان (Min) تا حدودا پانزده میلیون تومان است. این در حالی است که ما در حال بررسی لیست پرفروش ترین نرم افزارهای کافه بازار هستیم. پانزده میلیون تومان حدودا، صدک ۳۸ درآمدها است؛ یعنی: ۳۸ درصد برنامه های پرفروش درآمدی کمتر یا برابر با این مقدار دارند. در این میان درآمد برنامه قانون که بیشترین میزان را به خود اختصاص داده است، حتی در میان پرفروش ترین ها، یک داده پَرت به شمار می رود. درآمد نرم افزار قانون صدک ۱۰۰ ام درآمدها است؛ یعنی بزرگترین میزان درآمد. در میان پرفروش ترین برنامه ها احتمال به دست آوردن درآمدی معادل درآمد نرم افزار قانون برابر با ۰.۰۲ است. این عدد در میان کل برنامه ها تقریبا صفر خواهد بود.

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

اما چرا نرم افزاری مثل قانون چنین درآمدی را به خود اختصاص داده؟ آیا این میزان فروش به معنای علاقه جامعه ما به قانون است یا دلیل دیگری دارد؟ نظر شما چیست؟

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

سید مهدی موسوی – به هر کار

این روزها  که آینه هم  فکر ظاهر است

هرکس که گفته است خدا نیست کافر است

 

با  دیدن  قیافه  این  مردمان ِ خوب

باید قبول کرد که گندم مقصّر است

 

آن سایه ای که پشت سرت راه می رود

گرگی مخوف در کت و شلوار عابر است

 

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

وقتی گرسنه مانده به هر کار حاضر است

 

شاعر فقط برای خودش حرف می زند

در گوشه اتاق فقط عکس پنجره ست

 

آن جاده و غروب قشنگی که داشتیم

حالا نماد فاصله در ذهن شاعر است

 

در این دیار ، آمدن نو بهار ِ پوچ

تنها دلیل رفتن مرغ مهاجر است

 

دارد قطار فاجعه نزدیک می شود

بمبی هنوز در چمدان مسافر است

خانه جدید!

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

نکته: مطالب وبلاگ قدیمی رو می توانید در قالب گروه مطالب وبلاگ قدیمی یا با مراجعه به لینک وبلاگ قدیمی مشاهده کنید.

امیدوارم مورد استفادتون قرار بگیره.

دنیایی از غریبه ها!

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

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

۱- حاضرم؟ (Checking for readiness): در این مرحله فرد سعی می کند با پیداکردن یک جسم شفاف مانند آینه یا شیشه وضعیت کلی خود را بررسی کند و ببیند برای ورود حاضر هست یا نه.

۲- بررسی سریع اطراف (Taking a reading): در این مرحله فرد وارد مکان عمومی می شود و با نگاهی سریع وضعیت اطراف را بررسی می کند. برای به دست آوردن فرصت برای این نگاه سریع افراد روش های متفاوتی ذارند: بعضی ها بستن در را کش می دهند تا با فرصت پدیدآمده اطراف را بررسی کنند. بعضی ها وانمود می کنند که دارند به ساعتشان نگاه می کنند. البته اگر کسی دوست یا آشنایی داشته باشد که در مکان عمومی منتظرش است ممکن است اصلا اطراف را بررسی نکند و اطلاعات لازم را از دوستانش کسب کند!

۳- پیداکردن جا (Finding a Place): در این مرحله فرد سعی می کند جایی برای نشستن یا منتظرماندن پیدا کند. در این حالت بسیاری از افراد با نگاه کردن به صندلی یا محل مورد نظرشان به سمت آن می روند و آنجا را تصاحب می کنند. البته بعضی هم به شیئی که به ظاهر نظرشان را جلب کرده (مثل یک نقاشی) نگاه می کنند و صندلی یا جای نزدیک به آن را انتخاب می کنند.

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

روش انتظار (Waiting Styles): بعد از ورود فرد وارد مرحله انتظار می شود. لافلند به زیبایی افراد را با توجه به روش انتظارکشیدنشان دسته بندی می کند. این دسته بندی ها با کمی دستکاری عبارتند از:

۱- مجله خوان ها: به افرادی گفته می شود که در زمان انتظار در حال مطالعه مجله هستند. البته امروزه مجله جای خود را به تلفن همراه داده است. افراد به این شکل خودشان را ازدنیای اطراف جدا می کنند.

۲- لانه سازها (Nester): این افراد سعی می کنند وسایلشان را دور خود بچینند و با این کار به دیگران اخطار می دهند که نباید وارد حریم شخصیشان شوند.

۳- کارآگاه ها (Investigators): این افراد به خواندن تابلوها، نگاه به اطراف و … می پردازند!

طبق مشاهدات من در فضاهای بسیار متراکم مثل مترو، افراد از روش ۱ و ۳ برای انتظارکشیدن استفاده می کنند!

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

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

شعر زیبا

چون صید به دام تو به هر لحظه شکارم، ای طرفه نگارم
از دوری صیاد دگر تاب نیارم، رفته‌است قرارم
چون آهوی گمگشته به هر گوشه دوانم
تا دام در آغوش نگیرم نگرانم

از ناوک مژگان چو دو صد تیر پرانی، بر دل بنشانی
چون پرتو خورشید اگر رو بکشانی، وای از شب تارم
در بند و گرفتار بر آن سلسله مویم
از دیده ره کوی تو با اشک بشویم، با حال نزارم

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

گر بوی تو را باد به منزل برساند، جانم برهاند
ور نه ز وجودم اثری هیچ نماند، جز گرد و غبارم

آشفته بازار

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

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

اطلاعات دست دوم و مشکلات آن

امروز یکی از دوستان رویدادی رو از زبان خودش برام تعریف کرد که چند روز قبل یک شخص دیگر به گونه ای دیگر اون رو برام تعریف کرده بود. تفاوت جزئیات این دو برام جالب بود و به نظرم خوب اومد که اندکی در باب اطلاعات دست دوم (Secondhand Information) و مشکلات اون براتون بنویسم.

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

یکی از بدترین انواع مواجهه با اطلاعات دست دوم، اخبار و رسانه های عمومیه. اگر شما یک خبر خاص رو در ۱۰ خبر گذاری مختلف بخونین هر کدوم جنبه خاصی از اون خبر که برای اون خبرگذاری مهم تره مورد بررسی قرار می دن. و اینطوری میشه که هیچ وقت نمی تونین بفهمین اصل داستان چی بوده و چرا اتفاق افتاده. فقط نظر یک سری راوی رو می خونید. در مورد تصاویر منتشر شده هم همین نکته وجود داره. این امر در مورد مطالب علمی گزارش شده هم وجود داره و متاسفانه باعث گمراهی بسیاری از مخاطبین میشه. کاریکاتور زیر کاملا گویای مشکل اطلاعات دست دوم در رسانه هاست:

اطلاعات دست دوم در رسانه ها

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

خالی بندی و علل آن

چند روز پیش در ژورنال PLOS ONE به مقاله جالبی در مورد فریبکاری (Deception) برخوردم. این مقاله سعی داره به بررسی علل روان شناختی فریبکاری بپردازه و در این راستا با طراحی یک آزمایش تجربی نتایجی هم به دست آورده. البته مقاله به عقیده من از نظر روش پیاده سازی تحقیق با مشکلات عدیده ای مواجه است که در انتهای این متن به اونها پرداختم. به علاقه مندان پیشنهاد می کنم پس از مطالعه این متن مقاله رو مطالعه کنند.

اما نکته جالبی که در این مقاله توجه من رو به خودش جلب کرد فرض تحقیق (Hypothesis) و مشاهدات شخصی خودم در این زمینه است. فرضیه ای که این مقاله سعی داره به صورت تجربی بررسی کنه از این قراره:

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

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

مشکلات مقاله

مقاله سعی در بررسی مورد بسیار جالبی داره اما نتایجش خیلی قابل اعتماد نیستند. روش برپاسازی از یک عدم وجود تغییر در متغیر مستقل (Manipulation) و فقدان تصادفی بودن (Randomization) تخصیص شرکت کننده گان در تخقیق رنج میبره. فقدان تصادفی بودن قابل پذیرشه و روش تحقیق رو از یک روش Experimental به یک روش Quasi-Experimental تغییر می ده اما عدم کنترل و تغییر متغیر مستقل قابل قبول نیست. به علاوه مشکلات دیگری هم در نحوه برپاسازی تحقیق وجود داره:

۱- گنگ بودن تقدم زمانی علت و معلول (Ambiguous Temporal Precedence): دقیقا مشخص نیست در فرض ارائه شده (individuals who overestimate their abilities at a task are overrated at that task by observers) بزرگنمایی دیگران باعث خود فریبی می شه یا خود فریبی علت دست بالا گرفته شدن بوسیله سایرینه!

۲- روش مورد استفاده برای سنجش کمی فریب مناسب نیست (Low Construct Validity).

۳- در انتخاب شرکت کنندگان در تحقیق بایاسی به سمت شرکت کنندگان مونثی که در رشته های علوم انسانی تحصیل می کنند و مشتاق به شرکت در تحقیق هستند وجود داره (Selection Bias).

۴- روش مورد استفاده برای دریافت نظر مخاطبان می تونه باعث تغییر نظر اونها بشه (Sensitization).

تمامی این موارد می تونه باعث بشه خواننده بتونه توضیحات جایگزینی رو برای نظریه ارائه شده بیاره که در نهایت تهدیدی برای اعتبار درونی تحقیق (Threat to Internal Validity) به حساب میاد.

اندکی در باب امنیت

سلام. امیدوارم حالتون خوب باشه. دوست عزیزی در قسمت نظرات درخواست کرده بودند کمی در مورد هک و امنیت صحبت کنم. راستش رو بخواین در این زمینه تخصص خیلی زیادی ندارم. اما اخیرا کتاب جالبی دیدم که شاید بررسی و صحبت در مورد اون خالی از لطف نباشه. اخیرا کتابی از ایوان ریستیک (Ivan Ristic) به چاپ رسیده به نام Bulletproof SSL and TLS که مطالب بسیار کاربردی و جالبی رو در مورد پروتکل TLS و نحوه کارکردش در اون آورده. در این کتاب مواردی نظیر نحوه کلی کار پروتکل TLS، تاریخچه مختصری از اون، قالب گواهی نامه های SSL، انواع حملات ممکن، چگونگی استفاده از OpenSSL و بسیاری موارد دیگر ذکر شده. مهمترین ویژگی این کتاب توضیح مطالب اون به زبان ساده و کاربردی برای مدیران سیستم هاست. کتاب حملات ممکن روی TLS رو به شکل تقریبا کاملی مورد بررسی قرار می ده که می تونه برای متخصصان امنیت بسیار جالب باشه. البته من خودم هنوز فرصت نکردم کتاب رو تا انتها مطالعه کنم اما طبق مواردی که تا به حال خوندم اون رو به شدن برای علاقه مندان به امنیت توصیه می کنم.

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