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

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

poster_karaj

زمان کارگاه لینوکس: ۲۵ اردیبهشت ۱۳۹۳ ساعت ۱۰
زمان کارگاه پایتون: ۲۶ اردیبهشت ۱۳۹۳ ساعت ۱۰
مکان: کرج خیابان شهید بهشتی میدان حصارک دانشگاه خوارزمی

آپدیت: بر اساس قوانین دانشگاه ، برای حضور حتما باید ثبت نام کرده باشین… لطفا از این دو لینک پیش ثبت نام رو انجام بدین: http://events.karajlug.org/events/7 و http://events.karajlug.org/events/8

ششمین جشنواره لینوکس دانشگاه امیرکبیر

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

linuxPoster

پورن‌هاب به ازای هر صد ویدئو که ببینین، یک درخت می‌کاره

arborday-wood-hed-2014

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

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

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

نکات همیشگی:

  1. این چیزها اختیاری هستن و هر کس حق داره انتخاب کنه که می خواد ببینه یا نه ولی اگر خودتون می بینین و به بقیه می گین «نبینین خیلی بده» با خودتون کمی فکر کنین شاید یک جایی از کارتون بلنگه (:
  2. پورن قانونی و غیرقانونی داریم. هر چیز زیر هجده سال غیرقانونی است و صالا سراغش نرین چون دارین زندگی کسانی که در مورد این جریان توان قضاوت ندارن رو ضایع می کنین… این سن شاید روزگاری عوض بشه ولی به عنوان یک عدد مورد توافق فعلا روی هجده هستیم.
  3. یاد گرفتن سکس از دیدن فیلم های پورن برابر یاد گرفتن ورزش‌های رزمی از نگاه کردن به فیلم‌های جکی چان است (:

نکات خاص این شماره:

  1. هر فرد قرار نیست ۱۰۰ تا ویدئو ببینه ها! به ازای هر صد تا ویدئو که در سایت دیده بشه یک درخت کاشته می شه!
  2. یکی از دوستان تذکر داد که ویدئوهایی که باید دیده بشن تا درخت کاشته بشه، از مجموعه «معامله‌های بزرگ» هستن. اگر اینطوره فراموش نکنین که سایز متوسط چیزی بسیار پایینتر از چیزی است که فیلم های پورن می گن. رجوع کنین به نکته ۳ از بخش نکات همیشگی.

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

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

حالا به تلفن‌ همراه فکر کنین ! کدوم یکی از ما به تنهایی می تونه یک تلفن همراه بسازه؟ دیوید هانت ظاهرا می تونه.. حداقل در سطح اینکه یک صفحه لمسی آدافروت رو به همراه یک ماژول Sim900 جی اس ام و جی پی آر اس به یک رزبری‌پای وصل کنه و با اضافه کردن یک باتری، یک تلفن هوشمند بسازه که می تونه باهاش زنگ بزنه.

piphone

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

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

قبلا بازی‌های گیکی معرفی کردم. از ۲۰۴۸ تا هل بدین و به گنج برسین تا ایکس‌ اوی گیک‌ها تا نوشته‌هایی مثل چه کسی بازی‌های کامپیوتری را کشت اما غیرقابل اعتماد‌ یک چیز دیگه است! بازی رو سعید نجاتی معرفی کرد و من رو برای چند ساعت معتاد (: در این بازی کاملا ساده از نظر گرافیکی، شما یک کامپیوتر پیدا می کنین که چنین کدی رو اجرا می کنه:

/********************
 * theLongWayOut.js *
 ********************
 *
 * Well, it looks like they're on to us. The path isn't as
 * clear as I thought it'd be. But no matter - four clever
 * characters should be enough to erase all their tricks.
 */

function startLevel(map) {
    map.placePlayer(7, 5);

    var maze = new ROT.Map.DividedMaze(map.getWidth(), map.getHeight());

    maze.create( function (x, y, mapValue) {

        // don't write maze over player
        if (map.getPlayer().atLocation(x,y)) {
            return 0;
        }

        else if (mapValue === 1) { //0 is empty space 1 is wall
            map.placeObject(x,y, 'block');
        }
        else {
            map.placeObject(x,y,'empty');
        }
    });

    map.placeObject(map.getWidth()-4, map.getHeight()-4, 'block');
    map.placeObject(map.getWidth()-6, map.getHeight()-4, 'block');
    map.placeObject(map.getWidth()-5, map.getHeight()-5, 'block');
    map.placeObject(map.getWidth()-5, map.getHeight()-3, 'block');

    map.placeObject(map.getWidth()-5, map.getHeight()-4, 'exit');
}

و از طریقش دور شما یک حصار قرص و محکم می کشه:

javascriptgame

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

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

اگر من استاد دانشگاه بودم اصلا بعید نبودم این بازی غیرقابل اعتماد رو به عنوان امتحان آخر ترم به بچه‌هام بدم.

ضریب اتوبوس

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

bus_factor

ضریب اتوبوس یا Bus Factor در توسعه نرم‌افزار مقیاسی است برای بررسی تجمع اطلاعات در دست اعضای تیم. ضریب اتوبوس در یک پروژه، تعداد نفراتی است که در صورت از بین رفتنشان (مثلاً در صورت تصادف با یک اتوبوس) باعث توقف یا اختلال جدی در کار پروژه می‌شوند. ضریب اتوبوس بالا نشان دهنده پروژه‌ای است که در آن افراد زیادی در مورد اجزای پروژه اطلاعات کافی دارند.

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

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

اگر مایکروسافت چکش درست می کرد

ifmicrosoftwasmakinghammers

ترجمه متون در کامند لاین

میلاد زنگنه این پروژه بامزه رو برام فرستاده:

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

jadi@funlife:/tmp$ axel -q https://github.com/soimort/google-translate-cli/archive/master.tar.gz
jadi@funlife:/tmp$ tar xf master.tar.gz 
jadi@funlife:/tmp$ ./google-translate-cli-master/translate "سلام گیک. حالت چطوره؟"
Hi geek. How are you?
jadi@funlife:/tmp$

البته قبلش باید بسته gawk رو نصب کرده باشین.