GNU/Linux Chart

2009/09/29

سلام

سعی کردم اجزاء مهم سیستم‌عامل گنو/لینوکس ارتباطشون با همدیگه رو توی یه نمودار نمایش بدم.

با کلیک روی عکس، سایز بزرگ رو ببینید.

احتمالأ می‌تونید حدس بزنید که با Inkscape درستش کردم. فایل svg ش رو می‌تونید از اینجا دانلود کنید. بعد از دانلود پسوند png رو ازش بردارید و پسوند svgz بدید! (چون وردپرس فرمت svg یا svgz رو برای آپلود قبول نمی‌کنه، مجبور شدم پسوندش رو عوض کنم!)

اولش می‌خواستم نمودار رو بصورت حلقه‌ای درست کنم (قبلاً هم یدونه ساده‌ترش رو بصورت حلقه‌ای درست کردم) ولی دیدم نمیشه یعنی خیلی سخته!

هر اشکال یا نکته‌ای یا پیشنهادی برای بهبودش داشتید بگید ممنون میشم.


Nintendo , Tsubasa

2009/09/17

اجرای یک نرم‌افزار خاص با زبان فارسی

2009/07/07

خیلی از نرم‌افزارهای معروف هستن که بصورت چندزبانه طراحی شدن، یعنی میشه با اضافه کردن فایلهای ترجمه، زبانی که توی رابط گرافیکی برنامه استفاده میشه رو تغییر داد. این فایلهای ترجمه توی گنو/لینوکس معمولاً پسوند mo دارن، البته بعد از کامپایل، اما قبل از کامپایل فایلهایی با پسوند po هستن که فایل‌های متنی ساده(و عموماً بصورت UTF-8) هستن که میشه توسط یه ویرایشگر ساده هم اونا رو درست کرد، بعد به فایلهای mo کامپایل شده و نصب میشن و به این ترتیب پشتیبانی از اون زبان، به اون نرم‌افزار اضافه میشه و اگه زبان سیستم رو تغییر بدید، زبان interface اون نرم‌افزار هم تغییر میکنه. یعنی اگه موقع لاگین به گنوم یا KDE زبان سیستم رو به فارسی تغییر بدید، تمام نرم‌افزارهایی که پشتیبانی از فارسی بهشون اضافه شده، خود به خود فارسی میشن.

اما شما ممکنه بخواید فقط یه نرم‌افزار خاص interface ش فارسی بشه، نه کل سیستم(شامل گنوم یا kde و تمام نرم‌افزارها). اکثر نرم‌افزارهایی هم که بصورت چندزبانه طراحی شدن(یعنی با فایل‌های ترجمه میشه فارسی‌شون کرد) امکان تغییر زبان از طریق خود نرم‌افزار رو ندارن. در واقع معدود نرم‌افزارهایی هستن که این قابلیت رو اشته باشن، مثل دیکشنری xFarDic یا همین StarCalendar خودمون که توی تنظیماتش گزینه‌ای برای تغییر زبان داره(البته برای اعمال شدن باید برنامه ری‌استارت بشه). پس برای باقی نرم‌افزارها چیکار باید کنیم. مثلاً میخوایم فقط Evolution یا مثلاً StarDict محیطش فارسی بشه، اما نه کل سیستم. راهش خیلی ساده‌س. یه ترمینال باز کنید و توش بنویسید LANG=fa_IR.UTF-8 بعد یه فاصله(space) بزنید و بعدش دستور همون نرم‌افزار رو بنویسید(مثلاً evolution یا stardict یا هر چی). تمام.

یا اینکه بنویسید export LANG=fa_IR.UTF-8 و اینتر و بعدش دستور اون نرم‌افزار.

اما نکته‌ای که باید توجه کنید اینه که بعضی نرم‌افزارها(مثل همین Evolution یا ورژن‌های جدید StarDict) اجازه نمیدن که دو نمونه از خودشون توسط یه کاربر همزمان اجرا بشه. البته ممکنه بشه در چند پنجره اجراش کرد(منظورم این نیست) ولی همهٔ اونها یکی هستن و تنظیمات جدید اعمال نمیشه. مثلاً اگه Evolution باز باشه که زبانش هم انگلیسی هست(زبان interface)، بعد دوباره Evolution رو اجرا کنید اما با زبان فارسی(به همین روشی که گفتم) می‌بینید که پنجرهٔ جدید زبانش فارسی نشده. همین قضیه برای فایرفاکس هم صادق هست. یعنی مثلاً اگه یه اکستنشن(افزونهٔ) جدید نصب کنید، برای فعال شدنش بای تمام پنجرهٔ فایرفاکس رو ببندید و دوباره فایرفاکس رو باز کنید. و اگه بدون بسته پنجره(ها)ی قبلی، یه پنجرهٔ جدید باز کنید، اون اکستنشن در پنجرهٔ جدید فعال نمیشه.

ناتیلوس(مدیر فایل گنوم) و gedit و مجموعهٔ OpenOffice.Org و خیلی نرم‌افزارهای دیگه هم همینطور هستن.

بعضی از نرم‌افزارها هم که فقط در یک پنجره میتونن اجرا بشن. مثل StatDict و xFarDic و MDic و… البته منظورم اونهایی هستن که موقع اجرا چک می‌کنن که آیا یک پروسهٔ دیگه در حال اجرای این برنامه هست یا نه. وگرنه بعضی نرم‌افزارها(مثل StarCalendar خودمون) اصلاً چک نمیکنن و میشه چند بار همزمان اجرا کرد و مستقل از هم باشن(بر خلاف فایرفاکس و ناتیلوس و…). پس تا اینجا نرم‌افزارها رو به سه دسته تقسیم کردیم.

از بحث اصلی دور نشیم. منظورم این بود که بعضی از نرم‌افزارها برای اینکه با interface فارسی اجراشون کنیم، باید تمام پنجره‌های مربوط به اون نرم‌افزار که در حال اجرا هست رو ببندیم.

پس این کد می‌تونه برای فارسی کردن Evolution به کار بره:

killall evolution

LANG=fa_IR.UTF-8 evolution

یا اینطوری:

killall evolution

export LANG=fa_IR.UTF-8

evolution

(خط اول برای اینکه مطمئن بشیم در حال اجرا نیست)

که برای راحتی کار خودتون، میتونید این دو سه خط رو توی یه اسکریپت کوچیک قرار بدید و مثلاً در مسیر usr/bin/evolution-fa/ قرار بدید و هر وقت خواستید دستور evolution-fa رو اجرا کنید، تا مستقل از زبان کل سیستم، Evolution رو بصورت فارسی داشته باشید.

اما تمام اینها به شرطی هست که language-pack فارسی به سیستمتون اضافه شده باشه و فایلهای ترجمهٔ Evolution هم نصب شده باشه. خلاصه‌ش اینکه اگه از گنوم و یکی از توزیع‌های مبتنی بر دبیان(مثل اوبونتو) استفاده می‌کنید، این پکیج‌ها رو نصب کنید:

language-pack-fa

language-pack-fa-base

language-pack-gnome-fa

language-pack-gnome-fa-base

البته نصب این پکیج‌ها شرط کافی هست، اما شرط لازم نیست! شاید بعداً در این مورد بیشتر نوشتم.

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

یکی از کاربران گنو/لینوکس با اسم مستعار 417 جدیداً تعدادی از اپلیکیشن‌های گنوم رو ترجمه کرده بود(یا ترجمه‌های موجود رو تکمیل کرده بود)

خودم هم چند وقتی هست که دارم ترجمهٔ Evolution (و گاها بعضی اپلیکیشن‌های دیگه) رو تکمیل می‌کنم. که خب ان‌شاءالله بعداً درباره‌ش می‌نویسم و فایل‌هاش رو براتون آپلود می‌کنم.

موفق باشید


Time Format of GNOME Clock

2009/05/28

مقدمه:

یکی از ویژگی‌های محیط گرافیکی گنوم اینه که همهٔ امکاناتش جلوی چشم نیستن، حتی بعضیاش تا حدودی پنهان هستن. این هم می‌تونه عیب باشه، هم حسن، حالا بحثم این نیست. شاید بعداً در مورد ویژگی‌های مختلف گنوم و KDE بحث کردم. اما به هر حال کشف امکانات مخفی گنوم، میتونه خیلی جالب و هیجان‌انگیز باشه :-D

ابزار gconf-editor یه ابزار واقعاً کامل برای تنظیمات مختلف گنوم هست، که خیلی از اون امکانات مخفی گنوم رو برای ما آشکار میکنه. قبلاً یه مقاله‌ای در مورد auto thumbnailing در گنوم نوشتم که توسط همین ابزار بود. جدیداً هم به یه نکتهٔ جالب پی بردم که موضوع همین مطلب هست:

تغییر فرمت تاریخ و زمان، در اپلت ساعت گنوم

دستور gconf-editor رو داخل ترمینال(یا با Alt+F2 و باز شدن run application) تایپ کنید تا پنجرهٔ Configuation Editor باز بشه. یه نمودار درختی می‌بینید که شبیه فایل‌سیستم یا همون سیستم پوشه دایرکتوری هست. حالا باید مسیر مربوط به تنظیمات ساعت گنوم رو پیدا کنید. از منوی Edit گزینهٔ Find رو انتخاب کنید(یا کنترل+F بزنید) و بنویسید ClockApplet و اون تیک دوم(saerch also in key values) رو علامت بزنید و دکمهٔ Find رو بزنید. احتمالا دو تا مورد براتون پیدا میکنه. یکی

/apps/panel/default_setup/applets/clock/bonobo_iid

و یکی هم چیزی شبیه این

/apps/panel/applets/applet_2/bonobo_iid

(شایدم شماره‌ش فرق داشته باشه)

مورد اول همونطور که از اسمش پیداست مربوط به بعضی تنظیمات پیش‌فرض اپلت ساعت گنوم هست، که ما فعلاً با این کاری نداریم(اون چیزی که میخوام بگم توی این نیست)

شما روی مورد دوم کلیک کنید. بعد سمت چپ، از توی اون نمودار درختی، زیرشاخهٔ prefs رو انتخاب کنید، تا در نهایت به این مسیر برسید:

/apps/panel/applets/applet_2/bonobo_iid /prefs

حالا برید سمت راست و پارامتر هفتم یعنی format رو ویرایش کنید و بنویسید custom (روش دبل کلیک کنید و تاپ کنید custom و اینتر) حالا برید سراغ پارامتر دوم یعنی پارامتر custom_format و اون رو ویرایش کنید و هر چی خواستید بذارید. مثلاً من گذاشتم:

%Y/%m/%d – %T

که در نتیجه اپلت ساع گنوم همچین چیزی رو نشون میده:

2009/05/28 – 05:47:50

اینجا شما باید با فرمت زمان و تارخ آشنا باشید. اگه برنامه‌نویس باشید شاید تابع strftime رو دیده باشید. مخصوصاً برنامه‌نویسان وب و PHP حتماً باید با این چیزا آشنا باشن. اگه هم به خط فرمان گنو/لینوکس(یا کلاً یونیکس) علاقه داشته باشید، حتماً دستور date و فرمت‌های مختلفی که میشه بهش داد به دردتون می‌خوره.

مثلاً دستور زیر توی ترمینال:

date +%Y-%m-%d

یه همچین خروجی رو به شما میده:

2009-05-28

که مخصوصاً توی اسکریپت‌نویسی bash ممکنه به درد بخوره.

یا مثلاً دستور

date “+Date: %Y/%m/%d Time: %T”

یه همچین خروجی رو میده:

Date: 2009/05/28 Time: 06:04:55

بطور خلاصه:

عبارت Y% نماد سال هست. و y% فقط دو رقم سمت راستش هست(مثلاً 09 بجای2009)

عبارت m% نماد شمارهٔ ماه(در سال) هست

عبارت d% نماد شمارهٔ روز(در ماه) هست

عبارت D% خلاصهٔ تاریخ هست(سه تای قبلی) مثلاً 05/28/09

عبارت T% نماد زمان بصوت کامل(ساعت:دقیقه:ثانیه) هست

عبارت A% نماد اسم روز در هفته هست(مثلاً Thursday) و a% خلاصه‌ش(مثلاً Thu)

بقیه‌ش رو دیگه خواستید توی منوال دستور date بخونید(man date)

راستی توی gconf-editor اون مسیر

/apps/panel/applets/applet_2/bonobo_iid

رو می‌تونید bookmark کنید(منوی Bookmark گزینهٔ Add Bookmark) که اگه بعداً دوباره خواستید فرمتش رو تغییر بدید راحت پیداش کنید.

اینم یه اسکرین‌شات بعنوان خلاصهٔ کل این بحث:

نکتهٔ آخر این که اون کار رو(که با gconf-editor انجام دادیم)، می‌تونیم از طریق ترمینال و با مستقیماً با دستور gconftool هم انجام بدیم:

gconftool -s /apps/panel/applets/applet_2/prefs/custom_format -t string “%Y/%m/%d – %T”

موفق باشید


Virtual Box -> Windows -> SunCalendar & StarCalendar

2009/05/27

سلام

اول لینک این مطلبی که دوست عزیزم نوشتن رو بذارم: بهترین تقویم‌ها برای ویندوز و لینوکس

خیلی وقت بود که ویندوز درپیت رو از روی هاردم پاک کرده بودم. یعنی واقعاً هم نیاز خاصی نداشتم. فقط گاهی وقتا هوس می‌کردم یه برنامهٔ ویندوزی رو با wine توی اوبونتو اجرا کنم، ولی بعضی وقتا اجرا میشد بعضی وقتا هم نمیشد،‌ حالا بگذریم که جدیدأ wine شکل و قیافهٔ برنامه رو به هم می‌ریزه، گاهی نمیشه نوشته‌هاش رو خوند. به هر حال امیدوارم این مشکلات wine در آینده حل بشه. شایدم راه‌حلی داشته باشه و من بلد نیستم.

حالا بگذریم. به فکرم افتاد که ماشین مجازی بزنم. محض کنجکاوی هم که شده یه Virtual Box توی اوبونتو نصب کردم و بعدش هم ویندوز xp رو براش تعریف کردم و سیدی xp رو گذاشتم و از طریق Virtual Box بوت کردم و روی یه پارتیشن مجازی نصب کردم. خلاصه موفق شدم ویندوز رو از توی اوبونتو اجرا کنم. تا حالا همچین تجربه‌ای نداشتم، یعنی زیاد هم دنبالش نبودم(فقط اون اوایل توی اوپن‌سوزه با ماشین مجازی XEN سر و کله زدم ولی موفقیتی حاصل نشد). تازه این مخازن اوبونتو(6 تا DVD) رو فقط برای ابونتو 8.10 داشتم.

خلاصه ویندوز xp از طریق Virtual Box اومد بالا. جالب بود که توی ویندوز(Virtual Box) صدا هم داشت، یعنی صداهای خود ویندوز و برنامه‌هاش، از توی اوبونتو شنیده میشد. فقط مشکل این بود که اون پارتیشن مجازی ویندوز مثلاً root/.VirtualBox/VDI/win_xp.vdi/ رو نمیشد توی اوبونتو مونت کرد و خوند یا نوشت. حتی folder sharing ش هم کار نمی‌کرد!(یعنی من نتونستم). برای همین برای انتقال دیتا به ویندوز مجبور شدم فایل iso بسازم(با دستور genisoimage) و بعنوان سیدی معرفی کنم به Virtual Box تا توی ویندوز مونت کنه(ویندوز فکر می‌کنه سیدی توی سیدی‌رام گذاشتیم!) یعنی مجبور شدم کلک بزنم! کاش میشد همون پارتیشن مجازی(که پسوند vdi داره) مثل فایل iso (یا مثل یه loop device دیگه) مونت کرد. یا یه loop device رو بعنوان پارتیشن ویندوز به Virtual Box معرفی کرد. اصلاً نمی‌دونم اون فرمت vdi چی هست؟!

خلاصه SunCalendar رو توی ویندوز نصب کردم(که با wine نتونسته بودم اجراش کنم). بعدش به ذهنم رسید که StarCalendar رو هم میشه به زور توی ویندوز اجرا کرد(مثل بقیهٔ برنامه‌های PyGTK) یعنی قبلاً روی لپ‌تاپ رفیقم که ویستا داشت StarCalendar و همینطور PyGlossary رو اجرا کرده بودم. ولی اجراشون دردسر داره. باید GTK و Python و PyGTK و PyGObject و چند تا کتابخونهٔ دیگه رو توی ویندوز نصب کنیم(که مجموعاً بیشتر از 20 مگ میشه، تازه باید ورژن‌هاشون هماهنگ باشه) و بعد متغیر PATH ویندوز رو تغییر بدیم و خلاصه سخته! ولی چون قبلاً تجربهٔ این کارها رو داشتم در عرض چند دقیقه پیش‌نیازهاش رو نصب کردم و بعد StarCalendar رو توی ویندوز xp اجرا کردم، اولش دو سه تا مشکل فنی پیش اومد ولی اونم با اصلاح کد پایتون برطرف کردم و این شد مثلاً پورت کردن StarCalendar به ویندوز! عکسش رو می‌تونید این زیر ببینید.

البته بازم میگم شما بهتره هوس نکنید که StarCalendar رو توی ویندوز اجرا کنید چون دردسر داره، توی ویندوز بهتره از SunCalendar استفاده کنید.

قبلاً سعی کرده بودم که PyGlossary رو با همهٔ پیش‌نیازهاش توی یه فایل exe خلاصه کنم که راحت توی ویندوز نصب و اجرا بشه، یکم با py2exe ور رفتم ولی موفق نشدم. بعدشم بی‌خیال شدم گفتم ولش کن. هر کاربر ویندوز که واقعاً بهش نیاز داشت فوقش یه سیدی لایو(مثلاً اوبونتو یا پارسیکس) بذاره بیاد استفاده کنه. چرا من خودم رو علاف ویندوز کنم؟!

این بار هم که با ماشین مجازی، ویندوز رو نصب کردم یکی برای کنجکاوی بود یکی هم برای مواقع خاص که به یه برنامهٔ نیاز دارم ولی با wine اجرا نمیشه، از ماشین مجازی استفاده کنم.

روز به روز گنو/لینوکسی‌تر باشید

و موفق باشید

=-=-=-=-=
Powered by Bilbo Blogger


هنوز زنده‌ام

2009/05/25

سلام

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

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

از یه طرف هم روی اون تقویم starcal کار می‌ کنم که داره خیلی خفن میشه(هم کامل میشه، هم به جاهای پیچیده و سختش رسیده)، نسخهٔ 1.3.5 رو هم که آپلود کردم تغییرات زیادی دادم، از جمله بهینه‌سازی‌های اساسی توی مختصات نقاط، که باعث شده تنظیماتش با تنظیمات ورژن‌های قبلی ناسازگار باشه(البته نگران نباشید، شما آپدیت کنید، بچه‌م خودش ردیفش میکنه!). ولی اون تغییرات کلی و بنیادین که ان‌شاءالله قراره توی ورژن 1.4 تکمیل بشه در مورد همون «افزودن روز دلخواه» هست(که شاید به bookmark یا «نشانه» تغییر نام بدم) قراره شدیداً کامل و انعطاف‌پذیرتر بشه(حتی انعطاف‌پذیرتر از تقویم Evolution) توی این ورژنی که آپلود کردم(1.3.5) فقط رابط گرافیکیش(اونم نه کامل) بصورت نمایشی(demo) قرار گرفته. حالا ان‌شاءااله ورژن 1.4 که اومد مفصل در مورد تغییرات و امکانات اضافه‌شده می‌نویسم.

حالا که حرف از Evolution شد: خداییش عجب چیــــــــــــزیه این Evolution !!! عجب برنامهٔ کامل و قدرمتندی هست! بی‌شباهت به یه سیستم‌عامل نیست! خداییش ناول چه کارها که نمیکنه! اون از ابزار کامل YaST که قدرتمندترین و کامل‌ترین ابزار گرافیکی مدیریت سیستم هست، اونم از اوپن‌سوزه که جزو بهترین و محبوب‌ترین توزیع‌های گنو/لینوکس هست(البته جدیداً اوبونتو محبوب‌تر شده). اون از پروژهٔ مونو. اینم از Evolution که هم یه Mail Client هست، هم Feed Reader هست، هم تقویم و Task و Reminder و یادداشت‌نویسی و کلی چیز دیگه داره!! جالبه بدونید Evolution جزئی از گنوم هست(البته من تعصبی روی بحث گنوم و KDE ندارم. ولی خداییش Korginizer هم چیز توپیه). جالب‌تر اینکه ظاهرا ً Evolution و گنوم با هم مچ هستن، آخه اون روزهای خاص(Appoinment ها یا همون کارها) که توی Evolution تعریف می‌کنیم، توی اپلت تقویم گنوم هم نشون میده! خیلی جالبه! قصد دارم حتماً بین Evolution و StarCalendar خودم ارتباط برقرار کنم، مثلاً بتونه این روزهای خاص رو از تنظیماتش import و export کنه.

مدتی هم هست(یکی دو ماهی میشه) که به کمک Evolution فید می‌خونم. اگرچه زیاد نمی‌رسم وبلاگ‌ بروبچ رو بخونم، حتی جدیداً به فروم‌های گنو/لینوکسی(تکنوتاکس ابونونتو-ایران) هم کمتر سر می‌زنم. اما فید شیش‌هفت تا از بچه‌های گنو/لینوکس‌کار رو اضافه کردم به Evolution و گاهی اوقات سرگرم فیدخونی میشم.

اگرچه به تلویزیون علاقهٔ چندانی ندارم، ولی این روزا کارتون فوتبالیست‌ها رو نگاه می‌کنم(سعی می کنم ساعت 6 حتماً پای تلویزیون حاضر بشم). از بچگی عاشق این کارتون بودم، اون قدیما هم که با میکرو بازی می‌کردم عاشق بازی فوتبالیست‌ها بودم(هم ژاپنی‌ش رو خیلی بازی کردم هم انگلیسی‌ش رو). بازی‌ش پر از خلاقیت بود(اصلاً سرعتی نبود بلکه شدیداً استراتژیک بود). یادش به خیر، چه خاطراتی با این کارتون و بازی دارم(با چه علاقه‌ای می‌نشستم رمزهای پیچیدهٔ ژاپنی رو می‌نوشتم). قیافهٔ کلمات ژاپنی رو یاد گرفتم(شوت و پاس و دریبل و…، به علاوهٔ اسم بازیکن‌های معروف مثل سوبا و کاکرو و تارو و واکی‌بایاشی و واکاشی‌مازو و…) با اینکه نمی‌تونستم این کلمات رو بخونم(ژاپنی بلد نبودم) ولی از شکل و قیافهٔ حروفش می‌فهمیدم کدوم کدومه.

آدم وقتی بچه‌س آرزو می‌کنه زود بزرگ بشه، وقتی بزرگ می‌شه گاهی وقتی با خودش میگه کاش می‌شد برگردم به دوران بچه‌گی!

کاش یه بازی آزاد(اوپن‌سورس) تحت گنو/لینوکس برای فوتبالیست‌ها موجود بود! فایل نینتندو اش رو که دانلود کردم نتونستم اجرا کنم، اگه کسی تونسته این بازی رو توی گنو/لینوکس اجرا کنه، بگه.

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

موفق باشید


جشن انتشار و معرفی اوبونتو ۹.۰۴

2009/05/07

جشن انتشار و معرفی اوبونتو ۹.۰۴

زمان: پنج‌شنبه ۱۷ اردیبهشت از ساعت ۹ الی ۱۴

مکان: تهران – خیابان شریعتی – پایین تر از خیابان شهیدبهشتی – خ. اندیشه اصلی – خ. اندیشه پنجم شرقی – خانه معلم. تلفن: ۸۸۴۴۹۲۱۰

خب مراسم خوبی بود. خوشحال شدم که خیلی از دوستان رو از نزدیک دیدم، آقای مهدی حسن‌پور، آقای بهرام سیادتی(مدیر سایت OSPDev)، دوست عزیزم آقای مهرداد مومنی، آقای ناصر غانم‌زاده، آقای سعید زبردست…

در ضمن با شرکت داتک هم آشنا شدیم. و خوشحال شدیم از اینکه بیشتر کارشون بر اساس نرم‌افزار آزاد هست و فقط ۳۰ درصد سرورهاشون ویندوزی هست، بقیه‌شون از FreeBSD و گنو/لینوکس و سولاریس استفاده می‌کنن. کارومندانشون هم برای محیط توسعه‌شون اصرار دارن از اوبونتو استفاده کنن. جدیداً هم که داتک از انجمن کاربران ایران اوبونتو حمایت میکنه.

و نکات فنی خوبی هم از پرزنت‌ها یاد گرفتم(اگرچه بیشترش برام تکراری بود، غیر از اسلاید معرفی داتک)

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

در ضمن مسیرش هم یکم برام سخت یود. ولی در مجموع خوب بود.

من که عکس نگرفتم(یادم رفت باتری دوربین دیجیتالم رو شارژ کنم! در ضمن دوستان دوربین‌های خیلی بهتری داشتن). ایشالا دوستان عکس‌های مراسم رو توی وبلاگ یا سایتشون یا غیره میذارن.

اونجا که کسی ما رو نمی‌شناخت. ولی آخر مراسم رفتم خودم رو به مهرداد معرفی کردم و یه سلام علیکی کردیم!

به امید اینکه مراسم انتشارهای بعدی بهتر و بهتر باشه(و به امید دیدار دوستان در جشن انتشار اوبونتو 9.10)

در ضمن این پست رو(مثل چند تا پست قبلی) با Bilbo می‌فرستم(که مهرداد توی جشن معرفی کرد). ایشالا که مهرداد هم این برنامه رو کامل و کاملتر کنه(ما که خیلی بهش نیاز داریم).

خداحافظ


نشت نشا، یا همان فرار مغزها

2009/04/26

سلام

(قرار نیست که تمام نوشته‌های وبلاگم در حوزهٔ کامپیوتر باشد!)

به‌تازگی به چند کتاب از یک نویسندهٔ واقعاً توانمند برخوردم. این نویسنده آقای «رضا امیرخانی» است. شاید اکثر آثار ایشان، داستان یا رمان باشد، که ایشان واقعاً یک رمان‌نویس متبحر هستند و ذهن خلاق و تخیل بسیار بالا و قدرت فضاسازی خوب و ادبیات قوی دارند. در ضمن رمان‌‌های ایشان بسیار آموزنده هستند، و با اینکه چندان اهل خواندن داستان مخصوصاً رمان (یا داستان غیرواقعی) نیستم اما کتاب «ارمیا» دید من را نسبت به رمان بسیار تغییر داد(تنها رمانی بود که تا آخر خواندم). «ارمیا» با باقی رمان‌ها بسیار متفاوت است.

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

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

به همهٔ دوستان پیشنهاد می‌کنم این کتاب را بخرند و مطالعه کنند.

نشت نشا (جستاری در پدیده‌ی فرار مغزها)

مؤلف: رضا امیرخانی (http://amirkhani.ir و http://www.ermia.ir)

ناشر: موسسهٔ انتشارات قدیانی

چاپ دهم: ۱۳۸۶ (چاپ اول: ۱۳۸۰)

قیمت: ۱۰۰۰ تومان

فهرست مطالب:

۰- نشت نشا! (پیش درآمد)

۱- روابط علی (نشت نشا، یک مسألهٔ کلان)

۲- کانون توطئه… (نمونه‌هایی از نگاه رایج خرد غیرمسأله‌ای به پدیده‌ی نشت نشا)

۳- در زمین که می‌کاریم؟ (با این کاشت و داشت و برداشت، نشت نشا یک امر طبیعی است)

۴- علم بومی… (تنها راه آب‌بندی نشت نشا)

۵- متدولوژی (نمونه‌ای از ترجمه‌ی ناموفق علم)

۶- باز هم متدلوژی (باز دست مریزاد به اهل ترجمه‌ی روش)

۷- علوم انسانی (عقب‌ماندگی جدی‌تر در علوم انساتی)

۸- علم و زنده‌گی! (آیا غربی‌ها علم بومی دارند؟)

۹- رپ یا انصار؟ (نمونه‌ای از نگاه بومی فراموش‌شده)

۱۰- زنده‌گی و علم! (مقدار مجاز فاصله‌ی شهر تا دانش‌گاه چه‌قدر باید باشد؟)

۱۱- نتایج دروغین نظام آموزشی (تنگ‌چشمان نظر به میوه کنند!)

۱۲- چه نباید کرد؟ (فرار مغزها به فرموده متوقف نمی‌شود!)

۱۳- تکریم (سازو‌کار تکریم درست)

۱۴- ارزیابی مستمر و حقیقی… (تنها سازو‌کار تکریم درست…)

۱۵- چه باید کرد (دو راه‌برد بلندمدت و میان‌مدت)

۱۶- سخن آخر (نجوایی با اهالی نشت نشا)

۱۷- مؤخره


Kilo, Mega, Giga…

2009/04/13

سلام

احتمالاً تا حالا شده یه هارد یا فلش بخرید! و احتمالاً بعد از خریدن و وصل کردن به کامپیوتر یه نگاهی به حجمش هم انداختید که مثلاً بجای هارد 120 یه هارد 60 گیگ بهتون نداده باشن! البته اگه اینقدرا اختلاف داشته باشه که می‌فهمید. ولی اگه بجای 120 گیگ 112 گیگ باشه ممکنه متوجه نشید، یا اینکه زیاد اهمیت ندید. یا وقتی که بجای یه فلش 8 گیگ یه فلش 7.4 گیگ تحویل بگیرید. یا خلاصه تقریباً 7 درصد کمتر از چیزی باشه که انتظار دارید! ممکنه هم این سوال براتون پیش اومده باشه که «پس بقیه‌ش چی شده؟». آیا شرکت سازنده به شما دروغ گفته یا کم‌فروشی کرده؟! یا اون جنس تقلبی هست؟! یا فروشنده‌ها و دلال‌ها وسط راه چند یه خورده‌ش رو کش رفتن؟!! پس علتش چیه؟!

دلیل خیلی دلیل ساده‌ای داره. در یک جمله بخاطر تفاوت 1000 با 1024 هست. در دنیای کامپیوتر کیلو معمولاً به معنای 1024 هست(نه 1000) و مگا هم 1024 کیلو. گیگا هم 1024 مگا، ترا هم 1024 گیگا…

اما ظاهرأ سازنده‌های حافظه، از این قاعده پیروی نمی‌کنن و بجای 1024 همون 1000 در نظر می‌گیرن. نمی‌دونم چرا. دلیل فنی داره یا دلیل اقتصادی(برای نفع خودشون)؟ ولی با یه حساب سرانگشتی میشه فهمید که حدوداً 7 درصد کمتر از چیزی میشه که ما انتظار داریم(و حجم اسمی اون هارد یا فلش هست). بصورت دقیق‌تر حجم واقعی میشه 0.9313 برابر حجم اسمی. حالا اگه تونستید خودتون این حساب سرانگشتی رو انجام بدید و عدد دقیقترش رو بهم بگید؟! :D


Partition Table Structure

2009/04/09

سلام

خب این دو سه هفته مشغول بودم نتونستم وبلاگ رو آپدیت کنم. تصمیم گرفتم مواقعی که وقت یا حوصلهٔ نوشتن مطلب جدید رو ندارم، مطالبی رو که قبلاً تهیه کردم رو توی وبلاگ بذارم تا هم شاید به درد دوستان بخوره هم اینکه وبلاگم خاک نخوره!

چند ماه پیش می‌خواستم به یه بنده خدایی پارتیشن‌بندی رو درست و حسابی یاد بدم، برای همین یه نموداری رو درست کردم که ساختار پارتیشن‌بندی هارد رو در حالت‌های مختلف نشون بده. مخصصوصاً برای کسایی که میخوان لینوکس نصب کنن(اونم رو یه هاردی که ویندوز یا دیتا روش هست) درک کردن ساختار partition table خیلی کمک میکنه. متأسفانه حتی خیلی از لینوکس‌کارهای نسبتاً باتجربه هم ساختار Partition Table هارد رو درست درک نکردن و فرق بین Primary و Logical و Extended رو نمیدونن(حتی بعضی‌ها فرق بین Extended با فرمت ext3 رو نمیدونن). توصیه می‌کنم به این نمودار حسابی دقت کنید و برید توی بهرش تا ساختار Partition Table هارد رو درک کنید، چون زیربنای پارتیشن‌بندی درست همین هست، اگه اینو یاد بگیرید با هر ابزاری که دم دستتون باشه می‌تونید پارتیشن‌بندی کنید.

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

پارتیشن Extended ظرفی برای پارتیشن‌های Logical هست. در واقع Extended یه پارتیشن مجازی هست یعنی ما نمی‌تونیم ازش مستقیماً برای ذخیره‌سازی دیتا استفاده کنیم. در واقع ما فقط از پارتیشن‌های Primary و Logical برای ذخیره‌سازی دیتا استفاده می‌کنیم.

هر هارد حداکثر یک پارتیشن Extended میتونه داشته باشه(یعنی یا یدونه یا هیچی). و حداکثر 3 پارتیشن Primary میتونه داشته باشه(و حداقل هم یکی). البته اگه Extended (و در نتیجه Logical) نداشته باشید می‌تونید 4 تا Primary هم داشته باشید. اما هر تعداد Logical ها محدودیت نداره، به شرطی که یدونه Extended داشته باشیم، اونوقت هر تعداد که خواستیم می‌تونیم داخلش Logical بذاریم.

اگه هارد رو به یه اداره یا شرکت تجاری تشبیه کنیم، پارتیشن(های) Primary مثل مدیر(های) شرکت هستن، و پارتیشن Extended رو میشه به محل کار کل کارمندان شرکت تشبیه کرد که هر پارتیشن Logical مثل یکی از کارمندان شرکت هستن.

فرمت‌های مختلف پارتیشن مثل fat و fat32 و ntfs و ext2 و ext3 و reiserfs و… ربطی به نوع پارتیشن(Primary و Logical و Extended) نداره، یعنی یه پارتیشن چه Logical باشه چه Primary میتونه هر فرمتی(مثل ext3 و ext4 و fat32) داشته باشه. این فرمت‌ها نحوهٔ ذخیره‌سازی دیتا روی پارتیشن رو مشخص می‌کنن(پارتیشن Extended هم که گفتم مجازی هست و مستقیماً برای ذخیره‌سازی دیتا استفاده نمیشه پس براش فرمت تعریف نمیشه)

به قول فلاسفه نوع پارتیشن، خاصیت ذاتی پارتیشن هست(نمی‌تونه تغییر پیدا کنه). اما فرمت پارتیشن خاصیت عرضی هست(می‌تونه تغییر کنه).

یه پارتیشن رو میشه به راحتی فرمت کرد و فرمتش رو تغییر داد، ولی یه پارتیشن Logical رو نمیشه به Primary تبدیل کرد! یا بالعکس!

نکتهٔ آخر اینکه در روش اسم‌گذاری لینوکس، اسامی sda1 و sda2 و sda3 برای پارتیشن‌های Primary رزرو شده(البته Extended هم نوعی Primary هست)، یعنی اگه یدونه Primary هم داشته باشید(غیر از خود Extended)، پارتیشن بعدی(که باید Extended باشه) sda2 هست و Logical های داخلش اسامی sda5 و sda6 و… دارن.(یعنی پارتیشن‌هایی به اسم sda3 و sda4 وجود نداره)

دیگه بیشتر از این فکر نمی‌کنم نیاز به توضیح داشته باشه. ولی باز اگه جای مبهمی بود بگید.

موفق باشید