جادی تی وی ۰۰۷ – ipython notebook و vcfها

در این قسمت از جادی تی وی، یک برنامه بسیار ساده برای تبدیل یک فایل متنی به چندین فایل کارت ویزیت دیجیتال با استفاده از زبان برنامه نویسی پایتون و ابزار ipython notebook که معمولا دیتا ساینتیست ها ازش استفاده می کنن می نویسیم. هدف آشنایی با یک ضرب المثل بزرگ در دنیای برنامه نویسی است:

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

و همچنین شناختن ipython و notebookهاش که یکی از پر کاربردترین ابزارهای دیتا ساینتیست‌ هایی هستن که با زبان پایتون کار می‌کنن.

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

گرفتار ماحیگیری نشین: دولت ما مالیات پس نمی ده، اونم با دریافت رمز دوم و تاریخ انقضا و …

یعنی دیگه فیشینگ تابلوتر از این نداریم:

maliat

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

خب راستش نباید این شکلی باشه که ما به هم تذکر بدیم ولی به هرحال این اطراف ظاهرا شیوه محافظت از آدم ها اینه که پلیس کاغذ بچسبونه تو شعبه بانک که «مواظب کیف قاپ‌ها باشید» یا بالاسر تقلبی فروش های جلوی علاءالدین پارچه نوشته بزنه که «اینجا موبایل تقلبی می فروشن، نخرین» (: خب منم براتون دوباره هشدارهای ایمنی می زنم اینجا شاید به درد کسی که خواننده دائمی اینجا نیست بخوره:

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

دعوت به جشن ده سالگی لاگ تهران

آفرین به همه دوستانی که ده سال پیش لاگ رو درست کردن، جلساتش رو گذاشتن و با همه پستی بلندی های محیط، ادامه اش دادن. جلسه بعدی گروه کاربران لینوکس تهران» مشهور به TehLug این پنج شنبه ۱۵ مرداد از ساعت ۹ تا یک و نیم برگزار می شه؛ شامل ۱۲ کارگاه از مبتدی تا پیشرفته و یک برنامه کوتاه در سالن ۳۰۰ نفره موسسه آموزش عالی خاتم در خیابون ملاصدرا… و بگین چی (: من تو این برنامه آخر حرف می زنم.. به شرطی که بخندین و شاد باشین (:

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

تاریخچه کامپیوتر لای بوته ها. با اپل ۳ آشنا بشین

appleIII

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

کامپیوترهای اپل ۳ یکی از شکست‌های بزرگ این کمپانی بودن و در ۱۹۸۱ تقریبا ماهانه تنها ۵۰۰ نمونه از اونها فروخته می شد – اکثرا هم به عنوان جایگزین کامپیوترهای خراب شده. جابز گفته که این کامپیوتر باعث ضرر بی نهایت شرکت اپل شد، وزنیاک افسانه ای می گفت سخت افزار صد در صد این کامپیوترها دچار مشکل بودن و مدیر سابق اپل تیلور پوهلمن می گه:

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

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

اما …. عکس بالا را نگاه کنید. ما از دوره جذابی از دنیای کامپیوترها عبور کرده ایم.

اگر هنوز از مدیر سیستم خودتون تقدیر نکردین، روزش امروزه: ۳۱ جولای

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

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

امروز ۳۱ جولای، روز مدیرهای سیستم است. مهترین ۲۴ ساعت جهان و یک تعطیل ملی (که شانس آوردیم خورده به جمعه وگرنه بازم باز بود – هرچند که در این تعطیل هم داریم ایمیل کاری می زنیم و جواب می دیم). اگر فکر مکنین دوست دارین تو این جشن شریک باشین کمی فکر کنین که مدیر سیستم شما کیه و ازش با یک چیز خوب تشکر کنین یا حداقل روز رو بهش تبریک بگین. مثلا اسمس بزنین که «امروز روز مدیر سیستم ها است! روزت مبارک!» یا اینکه اگر بیشتر دوستش دارین فردا یا حتی امروز دعوتش کنین بیرون، بهش یک پیتزا، کارت پستال، هدیه کوچیک، هدیه گیکی باحال، تی شرت یا کتاب بدین که خوشحال بشه.

اگر هم مدیر سیستم هستین تو کامنت ها بگین چی شما رو از همه بیشتر خوشحال می کنه (:

مرتبط:
مدیر سیستم از دید افراد مختل
۹ سال قبل در جادی نت: روز تقدیر از مدیران سیستم
یک مدیر سیستم به چه مهارت هایی نیاز داره یا چطوری در لینوکس حرفه ای بشیم

فروهر (Faravahar یا Farohar)

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

faravahar_web

فروهر یک نشان کاملا شناخته شده و دقیق زردشتی است. معنای لغوی آن در زبان پهلوی، «من انتخاب می کنم» است. این نماد، یادآور هدف زندگی در روی زمین است؛ زندگی به شیوه ای که روح تعالی معنوی پیدا کند و به اهورا-مزدا بپیوندد. این حالت را در اوستا Frasho-kereti می گویند.

این نشان، تعمیم یافته نماد «صفحه بالدار» مصری های باستان است که به عنوان نماد پادشاهی استفاده می شده و بعدها نیز به سرزمین آشور راه یافته است. به هرحال این نماد در دین زردشتی با هدف بازنمایی روح انسانی استفاده شده است.

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

در وسط فروهر یک حلقه وجود دارد که نمادی از روح فرد است. شکل دایره آن یادآور ابدی و ازلی بودن روح است و بال های دو طرف، وسیله روح هستند برای پیشرفت و رشد. هر یک از این بال ها سه لایه دارند که یادآور راه آشا یا آرتا (Asha) است: پندار نیک (Humata)، گفتار نیک (Hukhta) و کردار نیک (Hvarasta). روح از طریق توسل به این سه اصل خواهد توانست به سمت تعالی پرواز کند. دامن بسته پایین نشانگر «پندار شر»، «گفتار شر» و «کردار شر» است که روح را از پرواز باز می دارد.

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

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

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

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

پی دی اف رایگان کتاب مبانی یونیکس و اینترنت اثر اریک ریموند

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

مرتبط:

چرا گنو لینوکس رو دوست دارم: پاسخ دادن به اینکه آیا سیستم ما وضعیت عادی داره یا مورد حمله است

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

# ps -ef | grep A | wc -l
101

مشخصه دیگه: ps -ef پروسه ها رو نشون می ده، grep A فقط خط هایی که توشون A هست رو جدا می کنه و در نهایت wc -l تعداد خط ها رو می شمره (اگر گفتین چرا به جای ۱۰۰ تا شده صد و یکی؟).

علی الحساب تعداد Aها رو به حداکثر ۱۰۰۰ عدد افزایش می دیم و می ریم سراغ سوالی که مطرحه:

آیا ما مورد حمله هستیم؟ آیا حوالی ظهر سیستمی شروع به کار با سیستم ما می کنه که فشار رو به شکل غیرعادی بالا می بره؟ یا واقعا این شرایط عادی است و اینقدر از این سیستم استفاده می شه؟

ما لاگ هایی به این شکل داریم که حاصل کار A هستن:

127.0.0.1 -  26/Jul/2015:03:48:53 +0430 "POST /index.php?_url=xxxxx" 200 /home/adp/www/xxx/public/index.php 357.489 2048 86.72%
127.0.0.1 -  26/Jul/2015:03:48:58 +0430 "POST /index.php?_url=qqqq" 200 /home/adp/www/xxx/public/index.php 91.281 1280 98.60%
127.0.0.1 -  26/Jul/2015:03:49:32 +0430 "GET /index.php?aaa" 200 /home/adp/www/xxx/public/index.php 373.649 1792 56.20%
127.0.0.1 -  26/Jul/2015:03:50:03 +0430 "HEAD /index.php" 200 /home/adp/www/xxx/public/index.php 43.501 1280 91.95%
127.0.0.1 -  26/Jul/2015:03:55:03 +0430 "HEAD /index.php" 200 /home/adp/www/xxxx/public/index.php 63.519 1280 94.46%

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

jadi@funlife:/tmp/dir$ ls -ltrh 
total 36M
-rw------- 1 jadi jadi 9.2M Jul 22 03:17 www.access.log-20150722
-rw------- 1 jadi jadi 6.0M Jul 23 03:10 www.access.log-20150723
-rw------- 1 jadi jadi 6.4M Jul 24 03:25 www.access.log-20150724
-rw------- 1 jadi jadi 2.5M Jul 25 03:25 www.access.log-20150725
-rw------- 1 jadi jadi 7.4M Jul 26 03:45 www.access.log-20150726
-rw------- 1 jadi jadi 4.2M Jul 26 15:17 www.access.log
jadi@funlife:/tmp/dir$ cat www.access.log-* www.access.log > all.log
jadi@funlife:/tmp/dir$ ls -ltrh 
total 72M
-rw------- 1 jadi jadi 9.2M Jul 22 03:17 www.access.log-20150722
-rw------- 1 jadi jadi 6.0M Jul 23 03:10 www.access.log-20150723
-rw------- 1 jadi jadi 6.4M Jul 24 03:25 www.access.log-20150724
-rw------- 1 jadi jadi 2.5M Jul 25 03:25 www.access.log-20150725
-rw------- 1 jadi jadi 7.4M Jul 26 03:45 www.access.log-20150726
-rw------- 1 jadi jadi 4.2M Jul 26 15:17 www.access.log
-rw-rw-r-- 1 jadi jadi  36M Jul 26 15:30 all.log

راحت و سر راست. دستور cat که محتوای فایل ها رو نشون می ده، کل فایل ها رو چسبونده به هم تا یک فایل بزرگ به اسم all.log داشته باشیم که هر خطش چنین فرمی داره:

127.0.0.1 -  26/Jul/2015:03:48:53 +0430 "POST /index.php?_url=xxxxx" 200 /home/adp/www/xxx/public/index.php 357.489 2048 86.72%

کافه من تاریخ رو جدا کنم. دستور کات همیشه دوست منه:

jadi@funlife:/tmp/dir$ cut -d' ' -f4 all.log | head
20/Jul/2015:12:03:35
20/Jul/2015:12:03:36
20/Jul/2015:12:03:39
20/Jul/2015:12:03:39

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

jadi@funlife:/tmp/dir$ cut -d' ' -f4 all.log | cut -d: -f1,2 | head
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12
20/Jul/2015:12

چقدر عالی. دیگه فقط کافیه سورت کنیم و بگیم بشمره. دستور uniq‌ می تونه با سوییچ های مختلف کارهای مختلف کنه. مثلا فقط خط های غیرتکراری بده، فقط خط های تکراری رو بده، از هر خط بیشتر از یکبار نده، بشمره از هر خط چند تا هست و … و البته این دستور وابسته به اینه که ورودی اش مرتب شده باشه. پس:

jadi@funlife:/tmp/dir$ cut -d' ' -f4 all.log | cut -d: -f1,2 | sort -n | uniq -c > data
jadi@funlife:/tmp/dir$ head data
   2795 20/Jul/2015:12
   2363 20/Jul/2015:13
   2383 20/Jul/2015:14
   2251 20/Jul/2015:15
   1796 20/Jul/2015:16
   1599 20/Jul/2015:17
    843 20/Jul/2015:18
    704 20/Jul/2015:20
    765 20/Jul/2015:19
   1039 20/Jul/2015:21

چه کردیم! (: فقط کافیه ترسیمش کنیم:

تعداد درخواست های سرور

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