بایگانی ماهیانه: سپتامبر 2013

سی سالگی گنو. [ Celebrate 30 years of GNU! ] سی سال پیش در چنین روزی پروژه ای شروع شد که امروز همه ما چه بدونیم چه ندونیم مدیونش هستیم؛ پروژه گنو. این پروژه پایه ای شد برای پیوستن کرنل لینوکس بهش و سیستم عاملی رو ساخت که این روزها بهش می گیم گنو/لینوکس یا به شکل خلاصه، سیستم عامل لینوکس که شما مصرف کننده دائمی و هر روزه‌اش هستین. حالا یا به شکل سیستم عامل اول روی لپ تاپ یا پی سی یا به عنوان سرویس دهنده وب و موبایل و تقریبا هر چیز جدی که توی دنیا می شناسین سپتامبر 28, 2013 ، 5 پاسخ
کتابی آزاد در مورد تبدیل مبناها. mabnaعارف رضایی توی وبلاگ تریبون من یک کتاب آزاد نوشته و منتشر کرده در مورد تبدیل مبناها به همدیگه. شاید برای خیلی از مخاطبین این وبلاگ مطلب خیلی سنگینی نباشه و اکثرا در موردش بدونین ولی همونقدر هم شاید برای خیلی‌ها جالب و بامزه باشه خوندنش؛ بخصوص با متن‌هایی که توضیحات اضافی و جالب می دن و شماتیک‌های قشنگ و واضح در مورد مساله‌ها. اگر من دوران دبیرستان بودم حتما کتاب رو می خوندم. در ضمن! دلیلی که باعث شد اینجا حتما معرفی‌اش کنم اینه که کتاب به شکل آزاد روی اینترنت قرار گرفته. سپتامبر 26, 2013 ، 4 پاسخ
شروع خدمات ثبت اینترنت محلی / رایپ aivivid. الان این خبر خوب رو دیدم که ای آی ویوید ارائه دهنده دیتاسنتر و هاستینگ و سرورمجازی و بقیه تکنولوژی‌های زیرساختی مورد علاقه من، که عضو رایپ است، خدمات ثبت رو در این منطقه به سرویس‌هاش اضافه کرده. بهشون تبریک می گم و توصیه می کنم اگر دنبال کولوکیشن یا وی پی اس یا هاستینگ و اینجور چیزها هستین ، به این شرکت سوئدی هم سری بزنین چون طبق تجربه ای که من باهاشون داشتم سرویس‌هاشون خوبه و امکانات معقولی رو با قیمت خوب می دن. سپتامبر 25, 2013 ، 21 پاسخ

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

سعید پرسیده:

سلام جادی جان.
یه سوال داشتم ازت.
من چند مدته دارم آموزش سی شارپ رو یاد میگیرم از طریق سایت 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

در ترجمه پروژه‌های آزاد به فارسی سهیم باشید. ترجمه یک نرم‌افزار به زبان بومی همیشه کار خوبیه چون باعث می‌شه گروهی که به زبان اصلی نمی تونن از برنامه استفاده کنن، فرصت استفاده از اون رو پیدا کنن. این ترجمه در برنامه‌هایی که آزاد هستن و به شیوه درستی نوشته شدن به روش‌های بسیار جالبی انجام می شه که اگر ندیدین پیشنهاد می کنم حتما سری بهش بزنین و نگاهش کنین. ترجمه اینجوری است که فایل‌های جدا حاوی جملات و عبارات مورد استفاده در سایت هستن و شما می تونین توسط برنامه‌های خاص یا بعضی وب‌سایت‌ها زبان خودتون به یک برنامه رو اضافه کنین و شروع کنین به ترجمه عبارت‌هاش و نظر دادن در مورد ترجمه بقیه و ... به اینکار Internationalization می‌گن که در یک تکنیک بامزه خلاصه کننده به جاش i18n می‌نویسیم (۱۸ نشون دهنده تعداد کاراکترهای بین i‌ و n است که برای خلاصه نویسی بیخیال نشوتنشون شدیم). اگر علاقمند هستین در یک پروژه ترجمه مربوط به لینوکس مشارکت کنین یا تجربیاتی در مورد این سیستم‌های ترجمه گروهی کسب کنین سری بزنین به یکی از این پروژه‌ها که روی سیستم ترجمه لانچ پد) در حال ترجمه شدن توسط برخی از دوستان هستن و همزمان منتظر کمک شما: آدرس پروژه های اوبونتو برای فارسی سازی، آدرس پروژه های لینوکس مینت برای فارسی سازی، آدرس پروژه های المنتری او اس برای فارسی سازی، آدرس پروژه کرومیوم برای فارسی سازی. سپتامبر 22, 2013 ، 7 پاسخ