چرا گنو لینوکس رو دوست دارم: دانلود کردن خودکار هر فصل جدید به محض انتشار

سعید پرسیده:

سلام جادی جان.
یه سوال داشتم ازت.
من چند مدته دارم آموزش سی شارپ رو یاد میگیرم از طریق سایت webtarget.ir
و اینجوریه که هر از چند مدت یه آموزش میزاره و من دنبال میکنم. میخ,استم بدونم راهی هست که من بدون اینکه مراجعه کنم به سایت و هر دفعه فایل های پی دی اف رو دانلود کنم بتونم با یه اسکریپت یا یه کد توی ترمینال تمام آموزهای سی شارپ رو توی یه فولدر دانلود کنم؟
ضمنا اینم آدرس یکی از فایل های پی دی اف آموزش سی شارپ هست و جاهایی که هر دفعه تغییر میکنه رو توی لینک دوم با ستاره برات مشخص میکنم.
http://dl.webtarget.ir/027-cSharpTime/session-33/cSharpTimeSession-33.pdf
http://dl.webtarget.ir/027-cSharpTime/session-**/cSharpTimeSession-**.pdf

خب.. سوال های اینجوری مثل یک پازل یا جدول بامزه هستن که جلوی تلویزیون لم می دیم و حلشون می کنیم. البته از نظر عقلی این سایت باید حتما RSS داشته باشه که بشه به سادگی دنبالش کرد ولی خب… ایده شما چیه؟ ایده من اینه که کافیه یکی از این فایل ها توی یک دایرکتوری باشه و ما روزی یکبار از اون دایرکتوری ls بگیریم و در آخرین فایل دانلود شده (بالاترین عدد در اسم ها) نگاه کنیم و عدد فایل رو جدا کنیم و بهش یکی اضافه کنیم و دانلودش کنیم. اگر فایل جدیدی بود دانلود می شه و اگر نبود چیزی دانلود نمی شه. فردا هم روز از نو روزی از نو.

برنامه ساده می شه این:

#!/usr/bin/python

import os, re

# یک ال.اس. می گیرم از فایل های مشابه اون کتاب و سورت و خط آخر رو جدا می کنم
f = os.popen('ls -1  cSharp*pdf | sort | tail -1')
lastdl = f.read()
# متغیر حاوی بخشی از اسم فایل است که عدد سریال توش قرار داره + ۱
lastNum = str(int(re.search ('cSharpTimeSession-(\d+).pdf', lastdl).group(1))+1)

# یک کامند می سازم که با دبلیوگِت شماره بعدی رو دانلود می کنه	
dlCommand = "wget http://dl.webtarget.ir/027-cSharpTime/session-" \
			+ lastNum + "/cSharpTimeSession-" \
			+ lastNum + ".pdf"
# اجراش می کنم
f = os.popen(dlCommand)

و البته اگر بخوایم به حالت های خاص جواب بدیم و مثلا خودمون اگر هیچ فایلی نبود به اولین فایل یک عدد بدیم (ظاهرا در سایتشون اولین نسخه شماره ۰۴ است) یا اگر زیر ۹ بودیم یک صفر اولش اضافه کنیم و … برنامه می شه این:

#!/usr/bin/python

import os, re

try:
	f = os.popen('ls -1  cSharp*pdf | sort | tail -1')
	lastdl = f.read()
	lastNum = int(re.search ('cSharpTimeSession-(\d+).pdf', lastdl).group(1))
except:
	lastNum = 3 #first file there is 4. so we'll assume that the current one is 3
	
if lastNum < 9:
	lastNum = "0" + str(lastNum+1)
else:
	lastNum = str (lastNum + 1)
	
dlCommand = "wget http://dl.webtarget.ir/027-cSharpTime/session-" \
			+ lastNum + "/cSharpTimeSession-" \
			+ lastNum + ".pdf"
f = os.popen(dlCommand)

منطقا این رو باید در یک کرون بذاریم یا سری اول با تکنیک watch python ./autodlcSharpbook.py دانلودش کنم که همه شماره ها رو بگیره یا مثلا اگر خروجی دستور موفقیت آمیز بود یک ایمیل بزنیم به صاحب جریان که فایل بهش اتچ باشه یا چنین چیزهایی. اونش با شما و سلیقه‌های شخصی‌تون.

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

jadi_while_programming

آیا استیو جابز کد نویسی بلد بود؟

سوال ایمیلی از استیو وزنیاک، یکی از دو موسس اپل:

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

پاسخ وزنیاک:

استیو هیچ وقت کد ننوشت. او مهندس نبود و هیچ طراحی اصیلی هم انجام نداد اما به اندازه کافی فنی بود که بتواند طراحی دیگران را تغییر دهد یا به آن اضافه کند. من شخصا تمام اپل یک و اپل دو را انجام دادم؛ شامل انتخاب فیچرها. من همه BASIC را خودم نوشتم (با دست روی کاغذ چون پول اسمبلر نداشتم). تنها شخصی که در نوشتن بخش‌هایی از کد اپل ۲ کمک کرد آلن باوم بود که در نوشتن برنامه monitor همکاری کرد.

منبع

در پروژه آزمایشی گرید کامپیوتینگ مشارکت کنین

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

خود معین توضیح داده:

معمولا برای محاسبات پیچیده و سنگین مجبوریم که یک کلاستر از پردازنده ها درست کنیم، اینکار علاوه بر تمام مزیت هاش، یکسری معایب هم داره، هزینه بالا، مصرف انرژی و تولید گرما که از عوامل محیط زیستی اون حساب می شند.این اتفاق در حالی می افته که تعداد زیادی کامپیوتر در حال استفاده خیلی کمی از توان پردازششون هستند، معمولا زیر ده درصد.به زبان ساده به استفاده از توان این کامپیوترهای برای انجام یک پردازش هدفمند رایانش مشبک می گند.چندین سال که در دنیا از این روش برای محاسبات علمی با مشارکت افراد علاقه مند استفاده میشه.مثلا SETI@HOME برای جستجوی هوش فرازمینی(با پردازش سیگنال های دریافت شده از فضا توسط ناسا) و یا برای FOLDING@HOME که برای تاشدگی پروتئین برای تولید برنج مرغوب تر استفاده میشه(لیست بیشتری رو می تونید اینجا ببینید).در همه نرم افزارها افراد داوطلب باید یک نرم افزار روی کاپیوتر خودشون نصب کنند، ولی این دفعه ما می خواهیم اینکار رو با استفاده از Web Worker ها و تحت وب انجام بدیم.یعنی استفاده از کامپیوتر شما برای انجام یکسری محاسبات در مدت زمانی که شما در یک سایت هستید.

چلنج: رسیدن به روزانه دویست و پنجاه اسکات در سی روز

گیک‌هایی که زیاد توی اینترنت هستن، احتمالا چلنج‌های اینترنتی رو می‌بینن؛ کارهایی که کمی سختن، یکهو مد می شن، آدم‌ها در مقابلشون احساس ضعف نسبی می کنن و در نهایت حس می کنن خوبه اینو انجام بدن تا به خودشون ثابت بشه «من می تونم!». چیزی شبیه به ماجراهای دوستمون که می گفت «Challenge accepted!» و کارهای غیرمعمول می کرد تا خودش رو ثابت کنه.

معلومه که یک گیک کلاسیک، اکثر این چلنج ها رو انجام نمی ده (اشاره نمی کنم که کسی هم سراغش نره!) ولی یکیش برای هر گیک سالم توصیه می شه: چلنج ۲۵۰ اسکات.

30-day-squat-challenge

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

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

قطره قیر بالاخره چکید

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

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

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

رادیو گیک شماره ۲۷ – چگونه هکر شویم

دو سه هفته قبل مصاحبه ای داشتم با آیپالس و مصطفی لامعی عزیز در مورد اینکه چطوری می شه هکر شد… البته به نظر خودم شخصیت هکر من خیلی کمرنگتر از بقیه شخصیت هام است ولی به هرحال احتمالا مورد علاقه ترین یا مورد ارائه ترین آیپالس بوده… در رادیو گیک ویژه شماره بیست و هفت شما رو دعوت می کنم به گوش کردن به رادیو پالس شماره ۲۵: گپی با جادی در مورد اینکه چطوری هکر بشیم.

<

audio controls=”controls”>
<source src=”http://jadi.net/audio/jadi-net_radio-geek_027_how-to-become-a-hacker.ogg type=”audio/ogg”>
متاسفانه براوزر شما از اچ تی ام ال ۵ پشتیبانی نمی کند. یا خیلی باحال است یا خیلی عجیب!

مشترک رادیو گیک بشین


آرس اس اس رادیو گیک

رادیو گیک در آیتونز

و فراموش نکنین که رادیو گیک یک ایستگاه رادیویی نیست! رادیو گیک یک حرکتگاه رادیوییه!

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

نکات مهم:

  • می دونم که پیچوندم ولی خب این رو هم دوست داشتم بذارم تو سایت و سری های رادیو گیک
  • موزیک آخر از AaRON است به اسم (U-Turn (Lili.
  • قرار بود یک جوری اسم خانم میرشفیع که ترتیب دهنده مصاحبه بود و از بچه های خوب آی.کلاب رو توی پادکست بگم که نتونستم هیچ جا جا بدم. اینجا می نویسم: خانم میرشفیع.
  • من شروع کردم به نوشتن یک کتاب-طوری. قراره در مورد لینوکس باشه و همه چیزهای دیگه زندگی! الان وقت معرفی است چون چند تا لینک و مطلب خوب آخرش هست که به نظرم با این بحث کاملا مرتبط هستن: www.LinuxBook.ir – البته توجه کنین که این سایت تموم نشده و هنوز مراحل اولیه است ولی منتشر می کنیم هر چه بادا باد! ترس نداره که.
  • اولین شماره است که به توصیه دوست عزیزمون از پلیر html5 استفاده کردم. امیدوارم درست کار کنه!

ایکس اوی گیک‌ها: ایکس اوی آلتیمیت

سایت «ریاضی با نقاشی‌های بد» اینجوری توضیح می ده که ایکس او بازی بسیار حوصله سر بری است:

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

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

جریان نسبتا ساده است… یک ایکس او که هر خونه اش خودش به خودی خود یک ایکس او است و برای اینکه شما بتونین توی یکی از خونه ها ایکس بزنین یا او، باید ایکس اوی داخل اون خونه رو بنده شده باشین:

و برنده نهایی کسی است که ایکس اوی بزرگ رو برنده بشه:

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

طرف حتما باید در اینجا بازی کنه:

واضحه؟ چون بازیکن در ایکس اوی کوچیک گوشه بالا سمت راست رو زده، بازیکن بعدی حتما باید در ایکس اوی گوشه بالا سمت راست بازی کنه. اینطوری یک مفهوم استراتژیک مهم به بازی اضافه می شه: حرکت شما است که تعیین می کنه نفر باید در کدوم خونه بازی کنه و حرکت اونه که می گه شما باید کجا بازی کنین.

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

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

آپدیت: برای ویندوز فون هم اینجا رو ببینین

برای خوندن قواعد کامل و دیدن تصاویر و یک استراتژی اینجا رو نگاه کنین

مرتبط:

سنگ کاغذ قیچی گیک‌ها
یک برنامه ساده ایکس او به زبان سی پلاس پلاس که یه بار برای مشق یک نفر نوشتم

سنگ کاغذ قیچی گیکی: سنگ کاغذ قیچی سوسمار اسپاک

برای فردا یک مطلب نوشتم که مقدمه اش شاید این بازی سنگ کاغذ قیچی سوسمار اسپاک بود! گفتم شاید بعضی ها اینو ندیده باشن. این یک نسخه بهبود یافته از بازی قدیمی سنگ کاغذ قیچی است که سوسمار و کاپیتان اسپاک هم توش شرکت دارن. فلش نشون می ده که چی ، چی رو می بره، می پوشونه، می شکنه یا شکست میده.

Pierre_ciseaux_feuille_lézard_spock_aligned.svg

تمرین کنین که در دیدار بعدی شاید لازم بشه مسابقه بدیم!