3/27/2012

লিনক্ষ: ফাইলের ব্যাকআপ নেবার ব্যাশ স্ক্রিপ্ট

ফাইলের ব্যকআপ নেওয়াটা অত্যন্ত জরুরি একটা কাজ। একটা ব্যাশ স্ক্রিপ্ট লিখেছিলাম দিনের কাজের শেষে ফাইলের ব্যাকআপ নেবার জন্য। হারিয়েও ফেলেছিলাম সেটি। ঠিক হারাইনি, ভুলে rm -rf দিয়ে মুছে ফেলেছিলাম। পরে আবার লিখেছি। এর অনেক কিছুই লিনাক্সের বিভিন্ন ফোরাম থেকে নেওয়া। সাজানোটা নিজের। অনেকের কাজে লাগতে পারে ভেবে নিচে দেওয়া। দিনের শেষে স্ক্রিপ্টটি চালালে দিনটি রবিবার হলে ডিরেক্টরির সব ফাইলের ব্যাকআপ নেবে আর অন্য কোনও দিন হলে কেবল একদিনে পরিবর্তিত ফাইলের ব্যাকআপ নেবে। ক্রনট্যাব থেকে চালালে আরও খানিকটা সহজ হয় ব্যাপারটা।

-------------------------------->8--------------------------------
#!/bin/bash
# ভ্যারিয়েবল: আজকের তারিখ
date=`date +%y%m%d%a`
# ভ্যারিয়েবল: যে ডিরেক্টরির ব্যাকআপ নেওয়া হবে
dest="/home/dir_name"
# ভ্যারিয়েবল: ব্যাকআপ ফাইল যেখানে থাকবে
src="/home/dir_name"
# ভ্যারিয়েবল: লগ ফাইলের নাম
log="backup.log"
# ভ্যারিয়েবল: মাউন্ট ডিভাইস
devmnt=`df | grep /dev/mount_device`

# পুরো ব্যাকআপের ফাংশন
fbackup () {
# পুরো ব্যকআপের জন্য ফাইলে নাম
fname="fback"
# স্কিনে ব্যকআপ শুরুর মেসেজ
echo "Backing up $src"
# লগে ব্যাকআপ শুরুর মেসেজ
echo -e "Full backup of $src on system_name" >> ${log}
# লগে ব্যাকআপের তারিখ
echo -e "at" `date` "\n" >> ${log}
# tar এবং gzip ব্যবহার করে ডিরেক্টরির ব্যাকআপ, কয়েক ধরণের ফাইল ছাড়া
tar vczfP ${dest}/${fname}-${date}.tar.gz ${src} --exclude=/home/dir_name/*.tar.gz --exclude=/home/dir_name/backup.log>> ${log}
# লগে ব্যাকআপ শেষের মেসেজ
echo -e "-----------\n" >> ${log}
# ব্যাকআপ ফাইলের আকার
ls -lh ${dest}/${fname}-${date}.tar.gz
# স্ক্রিনে ব্যাকআপ শেষের মেসেজ
echo -e "Full backup completed\n"
}

# প্রতিদিনের ব্যকআপের ফাংশন
pbackup () {
# আংশিক ব্যকআপের জন্য ফাইলে নাম
fname="pback"
# স্কিনে ব্যকআপ শুরুর মেসেজ
echo "Backing up $src"
# লগে ব্যাকআপ শুরুর মেসেজ
echo -e "Partial backup of $src on system_name" >> ${log}
# লগে ব্যাকআপের তারিখ
echo -e "at" `date` "\n" >> ${log}
# tar এবং gzip ব্যবহার করে ডিরেক্টরির ব্যাকআপ, কয়েক ধরণের ফাইল ছাড়া
find ${src} -mtime -1 -type f -print | tar vczfP ${dest}/${fname}-${date}.tar.gz -T - >> ${log}
# লগে ব্যাকআপ শেষের মেসেজ
echo -e "-----------\n" >> ${log}
# ব্যাকআপ ফাইলের আকার
ls -lh ${dest}/${fname}-${date}.tar.gz
# স্ক্রিনে ব্যাকআপ শেষের মেসেজ
echo -e "Partial backup completed\n"
}

# ডিভাইস মাউন্টেড থাকলে, সপ্তাহের কোন দিন
if [ -n "$devmnt" ]; then
case "$(date +%a)" in
# রবিবার হলে, পুরো ব্যকআপ
Sun) fbackup;;
# অন্যান্য দিনে গেল এক দিনের পরিবর্তনের ব্যাকআপ
Mon|Tue|Wed|Thu|Fri|Sat) pbackup;;
esac
else
# ডিভাইস মাউন্টেড না থাকলে, মাউন্ট করার জন্য মেসেজ
echo "Backup block device not mounted";
fi
exit 0

-------------------------------->8--------------------------------

9/29/2011

মণ্ডহরফের সহজ চেহারা এবং দুটি প্রতিষ্ঠান

কয়েকটি ব্লগের পুরনো লেখা পড়তে পড়তে চোখ থেমে গেল একটি লেখায়। কোনও একটি পোস্টের উপর কারও মতামতে লেখা আছে যে টেক্সটবুক বোর্ড ক+ত যুক্তাক্ষরকে উপরে ছোট ক এবং নিচে ছোট ত দিয়ে লিখছে, সাবেকি চেহারায় ত+ত-এ বা মাত্রাযুক্ত ও-এ ক’য়ের কান ঝুলে আছে তেমন করে নয়। এবং তাতেই বোধ করি লেখকের গোসসা। মতামতে প্রশ্ন রাখা আছে টেক্সটবুক বোর্ড যে ‌‍‘বানান পালটাচ্ছে’ সে ব্যাপারে কি বোর্ড বাংলা ‘একাডেমী’র সাথে কথা বলেছে? হরফের চেহারা পালটালেই যে বানান পালটায় না সেটা কে কাকে বোঝাবে? আর যে একাডেমি তার নিজের নামের বানান নিজের নিয়মে লিখতে পারে না তার সাথে কথা কওয়ারই বা কি আছে? বাংলা ভাষা ও সাহিত্যের অন্ধি-সন্ধি খুঁজে বের করার জন্য প্রতিষ্ঠা করা বলেই বাংলা একাডেমিকে ভাষার গতি-প্রকৃতি নিয়ন্ত্রণের চেষ্টা করতে কেউ বলেনি। অনেকেই যুক্তি দেখায় একাডেমির নামের বানান পালটাতে গেলে অনেক হ্যাপা, আইন তৈরির প্রয়োজন, নতুন করে কাগজপত্র ছাপনোর প্রয়োজন, আরও অনেক কিছু। ইংল্যান্ডের সংসদের বয়স প্রায় আট শ’ বছর এবং সংসদের প্রতিষ্ঠানের সময় ইংরেজিতে তার বানান ছিল parlement যেটা এখনকার ইংরেজিতে parliament; এই পরিবর্তনটা ঘটেছে প্রায় ছয় শ’ বছর আগে। ঐতিহ্য আর আইনের দোহাই দিয়ে ব্যাপারটা কিন্তু আদি বানানে আটকে থাকেনি। আর আইনের কথা? ১৯৮৩ সালে তৎকালীন বাংলাদেশ সরকার এক নির্বাহী আদেশে এক দিনেই রাজধানীর বানান Dacca থেকে Dhaka বানিয়ে দিয়েছিল। অনেকের এখনও বেশ মিছে গর্ব অন্তত বানানটা উচ্চারণ মাফিক হয়েছে। অথচ এই পরিবর্তনটা ইংরেজিভাষীদের মধ্যে কেবল ড্যাকা থেকে ডাকা পর্যন্ত। শেক্সপিয়ারের লেখা যুক্তরাষ্ট্র থেকে প্রকাশিত হলে তারও বানান পালটানো হয়, কিন্তু শব্দ এবং শব্দের মানে ঠিকই থাকে।

আর কেবল ক+ত-এর যুক্তি কেন, টেক্সটবুক বোর্ড, বাংলাদেশে তো বটেই, পশ্চিম বঙ্গেও, অনেক যুক্তাক্ষরই ভেঙ্গে লেখে। ঈ-মার্কা ঙ+গ’র চেহারার চেয়ে একটু ছোট বা পূর্ণ ঙ এবং গায়ে লাগিয়ে গ ঢের বেশি সোজা। অন্তত ছোট ছেলে-মেয়েরা তাই মনে করে। আর সেভাবেই লেখা উচিত। অন্তত সরলতা এবং যুক্তির খাতিরে। যদি প্রভাবের দিক থেকে দেখা হয় তাহলে টেক্সটবুক বোর্ড একাডেমির চেয়ে ঢের বেশি শক্তিশালী। বাংলা একাডেমির প্রকাশনা বছরে হাতে গোনা, আর এ বইগুলো পড়ে অনেক কম লোক। কিন্তু টেক্সটবুক বোর্ড ফি-বছর লাখ লাখ ছেলে-মেয়েকে নতুন সহজ যুক্ত হরফে লেখা শেখাচ্ছে। যারা একাডেমি চালায় বা একাডেমি যাদের চালায় তারা যতই হৈ-চৈ করুক না কেন একটা সময় আসবে যখন যারা এখন মণ্ডহরফ ঙ+গ বোধ্য করে লেখে, ক+ত ভেঙ্গে সহজ করে লেখে তারাই একাডেমি চালাবে বা একাডেমি তাদের চালাবে।

7/06/2009

লিনক্ষ: স্ল্যাকওয়্যারে বাংলা টাইপ, xkblayout দিয়ে

স্ল্যাকওয়্যারে লিনাক্সের xkblayout ব্যবহার করে কিবোর্ড লেখার কাজটা অনেক সহজ। প্রয়োজন পড়েছিল, SCIM ঠিকমত ইন্সটল করতে না পারায়। কিন্তু সেখানেও সমস্যা। কারণ deadkey ব্যবহারের ব্যাপারটা ঠিকমত রপ্ত হল না। যাই হোক বহুলপ্রচলিত বিজয় এবং তার ইউনিকোড উত্তরসুরী ইউনিজয় (কারণ ক্যারেক্টার রেপ্রেজ়েন্টেশনের কারণে ইউনিকোডে সমস্ত কার ব্যঞ্জনের পরে টাইপ করে হয়, এবং ও-কার ও ঔ-কার একসাথে টাইপ করতে হয়) কোনওটাই হুবহু ব্যবহার করা গেল না। অগত্যা, অলটারনেট গ্রাফিক্স এবং সাথে শিফট কি। অন্যভাবে করা যেত, তবে মানুষের কিবোর্ডিং হ্যাবিট পালটানো একটু কঠিন, বিশেষত পরিণত বয়সে। যে কেউ নিচের কিবোর্ডটি লিনাক্সে বাংলা লেখার জন্য ব্যবহার করতে পারেন, যদি অবশ্য কি বোর্ডে হরফের অবস্থান পছন্দ হয়। কারণ ইউনিজয়ের যতটা রাখা সম্ভব তার পুরোটা রাখা হয়েছে, সাথে কাজের সুবিধার জন্য কিছু বাড়তি হরফও রাখা হয়েছে। xkb সিম্বল ডেস্ক্রিপশনগুলো কপি করে নিয়ে xkben নামের একটি ফাইলে /etc/X11/xkb/symbols ডিরেক্টরিতে সেভ রাখুন।
-------------------------------->8--------------------------------
// XKBen Bengali keyboard overlay
// based on Bijoy and Unijoy overlays
// abu jar m akkas 2009

partial default alphanumeric_keys
xkb_symbols "xkbengali" {
name[Group1]= "xkben";

key <TLDE> { [ 0x100200c, 0x100200d, 0x100200b, voidsymbol ] };
key <AE01> { [ 0x10009e7, 0x1000021, 0x10009f4, voidsymbol ] };
key <AE02> { [ 0x10009e8, 0x1000040, 0x10009f5, voidsymbol ] };
key <AE03> { [ 0x10009e9, 0x1000023, 0x10009f6, voidsymbol ] };
key <AE04> { [ 0x10009ea, 0x10009f3, 0x10009f7, voidsymbol ] };
key <AE05> { [ 0x10009eb, 0x1000025, 0x10009f2, voidsymbol ] };
key <AE06> { [ 0x10009ec, 0x10000f7, 0x100005e, voidsymbol ] };
key <AE07> { [ 0x10009ed, 0x1000981, 0x10009fa, voidsymbol ] };
key <AE08> { [ 0x10009ee, 0x10000d7, 0x100002a, voidsymbol ] };
key <AE09> { [ 0x10009ef, 0x1000028, voidsymbol, voidsymbol ] };
key <AE10> { [ 0x10009e6, 0x1000029, 0x10009f8, 0x1000970 ] };
key <AE11> { [ 0x100002d, 0x100005f, 0x10009f9, voidsymbol ] };
key <AE12> { [ 0x100003d, 0x100002b, 0x1002260, voidsymbol ] };
key <AD01> { [ 0x1000999, 0x1000982, 0x100098c, voidsymbol ] };
key <AD02> { [ 0x10009af, 0x10009df, 0x10009e1, voidsymbol ] };
key <AD03> { [ 0x10009a1, 0x10009a2, 0x1000988, voidsymbol ] };
key <AD04> { [ 0x10009aa, 0x10009ab, voidsymbol, voidsymbol ] };
key <AD05> { [ 0x100099f, 0x10009a0, voidsymbol, voidsymbol ] };
key <AD06> { [ 0x100099a, 0x100099b, voidsymbol, voidsymbol ] };
key <AD07> { [ 0x100099c, 0x100099d, 0x100098a, voidsymbol ] };
key <AD08> { [ 0x10009b9, 0x100099e, 0x1000990, 0x10009bd ] };
key <AD09> { [ 0x1000997, 0x1000998, 0x1000994, voidsymbol ] };
key <AD10> { [ 0x10009dc, 0x10009dd, voidsymbol, voidsymbol ] };
key <AD11> { [ 0x100005b, 0x100007b, voidsymbol, voidsymbol ] };
key <AD12> { [ 0x100005d, 0x100007d, voidsymbol, voidsymbol ] };
key <AC01> { [ 0x10009c3, voidsymbol, 0x100098b, voidsymbol ] };
key <AC02> { [ 0x10009c1, 0x10009c2, 0x1000989, voidsymbol ] };
key <AC03> { [ 0x10009bf, 0x10009c0, 0x1000987, voidsymbol ] };
key <AC04> { [ 0x10009be, 0x1000985, 0x1000986, voidsymbol ] };
key <AC05> { [ 0x10009cd, 0x1000964, voidsymbol, 0x1000965 ] };
key <AC06> { [ 0x10009ac, 0x10009ad, 0x10009f0, voidsymbol ] };
key <AC07> { [ 0x1000995, 0x1000996, voidsymbol, voidsymbol ] };
key <AC08> { [ 0x10009a4, 0x10009a5, voidsymbol, voidsymbol ] };
key <AC09> { [ 0x10009a6, 0x10009a7, voidsymbol, voidsymbol ] };
key <AC10> { [ 0x100003b, 0x100003a, 0x100201b, 0x100201f ] };
key <AC11> { [ 0x1002018, 0x1002019, 0x100201c, 0x100201d ] };
key <BKSL> { [ 0x1000983, 0x10009ce, 0x1000027, 0x1000022 ] };
key <AB01> { [ 0x1002013, 0x1002014, voidsymbol, 0x10009e2 ] };
key <AB02> { [ 0x10009cb, 0x10009cc, 0x1000993, 0x10009d7 ] };
key <AB03> { [ 0x10009c7, 0x10009c8, 0x100098f, 0x10009e0 ] };
key <AB04> { [ 0x10009b0, 0x10009b2, 0x10009f1, 0x10009e3 ] };
key <AB05> { [ 0x10009a8, 0x10009a3, voidsymbol, 0x10009c4 ] };
key <AB06> { [ 0x10009b8, 0x10009b7, voidsymbol, voidsymbol ] };
key <AB07> { [ 0x10009ae, 0x10009b6, voidsymbol, voidsymbol ] };
key <AB08> { [ 0x100002c, 0x100003c, 0x1000324, 0x1002264 ] };
key <AB09> { [ 0x100002e, 0x100003e, 0x10009bc, 0x1002265 ] };
key <AB10> { [ 0x100002f, 0x100003f, voidsymbol, voidsymbol ] };

modifier_map Shift { Shift_L, Shift_R };

include "level3(ralt_switch_multikey)"
};
-------------------------------->8--------------------------------
যেহেতু এটি একটি অতিরিক্ত কিবোর্ড লেআউট হিসেবে কাজ করবে তাই বাংলাদেশের সিম্বল ফাইল bd বা ভারতের সিম্বল ফাইল in-এর নিচে নিচের পাঁচ লাইন যোগ করতে হবে। অন্য কোনও দেশের সিম্বল ফাইলেও যোগ করা যায়, তেমন কোনও সমস্যা না থাকলে।

// XKBen
xkb_symbols "xkben" {
include "xkben(xkbengali)"
name[Group1]= "Bangladesh - XKBen";
};

এরপর ডিরেক্টরিতে থাকা অবস্থায় xkbcomp -lhlpR '*' -o ../symbols.dir কমান্ডটি দিলে নতুন কিবোর্ড সিম্বল ফাইলটি ইন্সটল্‌ড হয়ে যাবে। এরপর গ্রাফিকাল এনভায়রনমেন্ট startx দিয়ে এক্স-উইন্ডো চালু করে xterm চালিয়ে kcontrol কমান্ড দিলে কেডিই কন্ট্রোল মেনু আসবে। সেখান থেকে কিবোর্ড সেটিং-এ গিয়ে বাংলাদেশ যোগ করে, xkben বেছে নিলে টাস্কবারে একটু কিবোর্ডের আইকন আসবে, এরপর আইকনে ক্লিক করে কিবোর্ড সিলেক্ট করা যাবে।



উপরে কিবোর্ড লেআউটের ছবি দেওয়া হল।

4/14/2009

লিনক্ষ: স্ল্যাকওয়্যার ১২.২ ইনস্টলেশনের পর

স্ল্যাকওয়্যার ১২.২ ইনস্টলেশনের পর প্রথম তিনটি কাজ করার জন্য মুরুব্বিদের নির্দেশ তা হল ফাইলের ডাটাবেস তৈরি করা, সিস্টেমের সিকিউরিটি একটু জোরদার করা এবং একজন ইউজার তৈরি করা।

প্রথমে /var/lib/slocate/-এ slocate.db নামে একটি ডাটাবেস ফাইল তৈরি করতে হবে, যদি তেমন কোনও ডাটাবেস না থেকে থাকে। কমান্ডটি হল: touch /var/lib/slocate/slocate.db এরপর updatedb দিয়ে ডাটাবেসটি তৈরি করতে হবে; শেষে & কমান্ডটি দিয়ে কাজটি ব্যাকগ্রাউন্ডে করানো যায়। পরে যে কোনও সময় locate বা slocate এ পর ফাইলের নাম লিখে খোঁজা যায়।

এর পর সিস্টেমের সিকিউরিটি নিয়ে কাজ। পাল্টানোর আগে /etc-তে থাকা তিনটি ফাইলের ব্যাকআপ নিয়ে নেওয়া উচিত: hosts.allow, hosts.deny আর inetd.conf। ইম্যাক্স বা ভিআই বা পিকো যে কোন এডিটরে দ্বিতীয় ফাইলটি খুলুন আর লিখুন ALL : ALL। সেভ করে বেরিয়ে আসুন। লাইনটির অর্থ হল সিস্টেমের সাথে কেউই কথা বলবে না। এবার প্রথম ফাইলটি খুলে লিখুন :
ALL : 127.0.0.1 অর্থ হল লোকালহোস্ট অর্থাৎ নিজের সাথে কথা বলবে
ALL : 192.168.1. অর্থ হল লোকালহোস্ট ল্যান ব্যবহার করতে পারবে। শেষের ফুলস্টপ-টি কিন্তু ফালতু নয়।

এবার বেরিয়ে এসে তৃতীয় ফাইলটি খুলে তিনটি লাইনের সামনে হ্যাশ চিহ্ন বসিয়ে দিন যেন সেগুলো কমেন্ট হিসেবে গণ্য হয়:
# time
# time
# comsat
কিন্তু নিচের লাইনের আগে কোনও চিহ্ন বসাবেন না।
auth
ফাইলটি সেভ করে বেরিয়ে আসুন।
এবার adduser কমান্ড দিয়ে একজন ইউজার তৈরি করুন, কারণ root হিসেবে কাজ করা বেশ বিপদজনক। ইউজারকে কিছু ক্ষমতা দেবার জন্য আরেকটি ফাইলে কিছু পরিবর্তন করতে হবে।

স্ল্যাকওয়্যার বা লিনাক্সের /etc/ ডিরেক্টরিতে sudoers বলে একটি ফাইল আছে। এই ফাইলে কিছু পরিবর্তন করে সাধারণ ইউজারকে কিছু কাজ করার ক্ষমতা দেওয়া যায়। তবে অনবধানতায় অনর্থ হয়ে যেতে পারে। তাই visudo কমান্ড দিয়ে ফাইলটি খুললে সিস্টেমই অনেকটা দায়িত্ব নিয়ে নেবে। ফাইলটি এডিট করার আগে vi এডিটরের নিয়ম কানুন একটু জেনে নেওয়া প্রয়োজন। ফাইলের একদম শেষে লিখতে হবে, প্রথমে ইউজারনেম, ফাঁকা দিয়ে ALL=NOPASSWD: এবং শেষে যে প্রোগ্রামটি চালানোর অনুমতি দিতে হবে তার নাম, পাথ (path) সহ, নিচের মত করে।

username ALL=NOPASSWD: /sbin/shutdown

বেরিয়ে এসে নতুন করে লগ-ইন করলে, যে ইউজারকে যার অনুমতি দেওয়া হয়েছে তারা সে কাজটি করতে পারবে।

1/28/2009

লিনক্ষ: রেডহ্যাট ৭ থেকে ফেডোরা কোর ৪, পরে স্ল্যাকওয়্যার

শুরুটা খুব বেশি দিনের নয়। প্রায় দশ বছর। প্রথমে রেড‌হ্যাট ৭, পরে রেডহ্যাট ৯, দুয়েকদিনের জন্য রেডহ্যাট ১১, চলতি বুকনিতে যা ফেডোরা কোড ২; এবং শেষে রেডহ্যাট ১৩ বা ফেডোরা কোর ৪; কোর ৩ বাজারে পাওয়া যাচ্ছিল না বলে। তা’বলে ২০০৮-এর শেষে কোর ৪ কেন? কারণ, পিসিটা কেনা ২০০০ সালে, সেলেরন ৭০০ মেগাহার্টস, ৩০ গিগাবাইট হার্ডডিস্ক পরে পাল্টে ৪০ গিগাবাইট। প্রথমে মাসে একদিন, পরে দু’মাসে একদিন; এভাবে কমে কমে একসময় আবার বাড়তে বাড়তে সপ্তাহে একদিনে গিয়ে পৌঁছয়। বেশ কয়েক মাস ধরে প্রতিদিনই লিনাক্সের ব্যবহার, বাসায় এবং ব্যক্তিগত কাজে। পুরোপুরি লিনাক্সে কাজ করতে গিয়ে বেশ কিছু সমস্যার দেখা মিলেছে। বোধকরি সেগুলোর সমাধানের কাহিনি অন্যদের কাজে আসতে পারে।

প্রয়োজন ছিল Gnumeric এবং Abiword-এর ব্যবহারের। কিন্তু ফেডোরা ৪ থেকে প্রোগ্রামদুটো বাদ দেওয়া হয়েছে। তবুও ইনস্টল করা যায়, কিন্তু কিছুতেই ইনস্টল করা যাচ্ছিল না। Yum-ও ঠিক মত কাজ করছিল না। মোটোরোলা এল৭ দিয়ে ইন্টারনেটে যেতে পারলেও আরেকটা CDMA মডেমকে নেওয়াতে ঝামেলা হচ্ছিল। অন্যদিকে কম্পিউটারটা অনেক পুরনো হওয়ায়, ফেডোরার পরের ভার্শনগুলো ইনস্টল করতে চাইছিলাম না। বেশ কিছুদিন আগে থেকে স্ল্যাকওয়্যার সম্পর্কে বেশ উৎসাহী হয়ে উঠি। হঠাৎ ঠিক করলাম স্ল্যাকওয়ারের ব্যবহার করব। সাথে ছোট একটি পার্টিশনে উইন্ডোজ (এক্সপি) থাকবে, দুয়েকটা কাজের জন্যে। আন্তর্জাতিক ধ্বনিতাত্ত্বিক বর্ণমালার একটি সফ্টওয়্যার লিনাক্সে কখনও দেখিনি। সেই ১৯৯১ সাল থেকে ফন্টোগ্রাফারের ব্যবহার। ফন্টফর্জে অবশ্যই কাজ চলবে, তবে ফন্টোগ্রাফার ছাড়তে একটু কষ্ট হচ্ছিল আর অ্যাডোবির ইলাস্ট্রেটরটা একটু প্রয়োজন ছিল। আর মোবাইলের সফ্টওয়্যার, যার অনেকটা কাজ Kmobiletools-এ চলত। তাই সেই ছোট করে উইন্ডোজ, ১০ গিগাবাইটে। পরে আরেকটি হার্ডডিস্ক ড্রাইভ, এবং সেটিও ৪০ গিগাবাইটের, কিনে পুরনো ফাইলের সব ব্যাকআপ নিলাম। প্রাইমারি মাস্টার লিনাক্সের ভাষায় যা hda (আইডিই ড্রাইভ হবার কারণে) সেখানে থাকল ডুয়াল বুট গ্রাব দিয়ে, উইন্ডোজ এক্সপি প্রফেশনাল এডিশন (অবশ্যই পুরো পয়সা দিয়ে কেনা নয়) এবং ফেডোরা ৪।

স্ল্যাকওয়্যারের সাইট থেকে সিডির ইমেজ নামিয়ে বার্ন করে একদিন হঠাৎ নেমে পড়া ততদিন পর্যন্ত আমার কাছে এক দুঃসাধ্য কাজে। তিনদিনে চারবার পার্টিশন ভাঙ্গা, সাতবার ইনস্টল করা এবং শেষ পর্যন্ত ইনস্টল-করা উইন্ডোজ খোয়ানো। তবে এখন বেশ চলছে। পুরোটাই স্ল্যাকওয়্যার। ১২.০২। hdb-তে ১৫ গিগাবাইটের একটি উইন্ডোজ পার্টিশন, কিছু সফ্টওয়্যারের ব্যাকআপ রাখার জন্য। তবে সাতবার ইনস্টল এবং পুরো পার্টিশন ভাঙ্গার কারণ প্রতিবার ইনস্টল করার পর কোনও দুর্বোধ্য কারণে স্ল্যাকওয়্যার হার্ডড্রাইভ থেকে বুট করছিল না। কারণ কোনভাবেই এমবিআর বা সুপারব্লকে লিলো রাখা যাচ্ছিল না। প্রতিবারই সিডি দিয়ে বুট করে চালানোর পর আবার কোনওবারই উইন্ডো চালানো যাচ্ছিল না। এক্স-উইন্ডো না চলবার কারণ বোধ করি স্ল্যাকওয়্যারের এজিপি না চিনতে পারা। কারণ xorgsetup চালিয়ে গ্রাফিক্স কার্ড চিনিয়ে দিতেই এক্স-উইন্ডোতে অবাধ বিচরণ। কিন্তু তখনও পর্যন্ত লিলোর সমাধান হয় নি। এমবিআর বা সুপারব্লকে লিলো কেন রাখা যাচ্ছিল না তা নিয়ে এখনও কিঞ্চিৎ অজ্ঞতা রয়েই গেছে। তবে একটা জিনিস মোটামুটি বুঝতে পারা যাচ্ছিল যে লিলো কোনও কারণে গ্রাফিক্সকার্ড পাচ্ছিল না। তাই শুরু হল লিলো সম্মার্জন। দেখতে হল ঠিক নিচের মত:

lba32 % ১০২৪শের পরের সাইকেলের জন্য
boot = /dev/hda
prompt
timeout = 300
change-rules
reset
vga = normal
image = /boot/vmlinuz
root = /dev/hda1
label = Slackware
read-only

/etc/lilo.conf-এর সম্মার্জন শেষে /sbin/lilo -v চালানো পর দেখি স্ল্যাকওয়্যার নিজেনিজেই হার্ডড্রাইভ থেকে বুট করছে।

9/10/2008

বই: তিন পুস্তকের কাহিনি

উইলিয়াম কেরির অভিধান: ঢাকা বিশ্ববিদ্যালয়ের ডাকসু গ্রন্থকেন্দ্রে একটি বই ছিল বেশ অনেক দিন ধরেই। তখন বোধ করি গেল শতকের নব্বই; একানব্বইও হতে পারে। পয়সা জমিয়ে কিনে ফেলার সে কি আনন্দ! উইলিয়াম কেরির বাংলা-ইংরেজি অভিধানের প্রথম খণ্ড, দিল্লির এশিয়ান এডুকেশনাল সার্ভিসেস-এর প্রতিলিপি ছাপ, ইংরেজিতে যাকে facsimile print বলে। বইটির দাম ষোলশ’ টাকা। মলাটের প্রান্ত ছিল কিছুটা ছেঁড়া, আর প্রচ্ছদ মলিন, দুয়েক জায়গায় কিসের যেন দাগ। অন্তত বইটির চেহারা খুব একটা খাপসুরত নয়। পাশে দাঁড়ানো আরেক ছাত্র বইয়ের দাম শুনেই শুষ্ক হাসি, যেন এত দাম দিয়ে এই রকম বাজে বই কেনার কোনও অর্থ হয় না।

উর্দুতে বাংলা সাহিত্যের ইতিহাস: গেল শতকের নব্বইয়ের প্রথম দিকে ঢাকা বিশ্ববিদ্যালয়ের শিক্ষক-ছাত্র কেন্দ্রে ঢাকা বিশ্ববিদ্যালয় প্রেসের বইমেলা। মেঝেতে ছড়ানো-ছিটানো বইয়ের স্তুপ। মাঝে মুহাম্মদ শহীদুল্লাহ্‌র বাঙ্গালা আদব কী তারীখ (بنگلا ادب کى تاريخ), উর্দুতে বাংলা সাহিত্যের ইতিহাস। বাঁধাই-ভাঙ্গা, সুতো বের-হওয়া, মলাট ছেঁড়া, মলিন প্রথম সংস্করণের (পরে বোধ করি আর কোনও সংস্করণ হয় নি) দশ-পনেরটা কপি। পকেটে শ’ দুয়েক টাকা। বাসায় ফেরার পয়সা বাদ দিয়ে কিনতে পারলেই কেল্লা ফতে। বিক্রেতার প্রশ্ন, ক’টা কিনবেন? সাধারণত মানুষ ক’টা একই বইয়ের কয় কপি কেনে? আর কাউকে দেবার জন্য হলে একটা বেশি। হয়ত। কিন্তু উর্দুতে লেখা বাংলার ইতিহাস! যাই হোক, দাম আট টাকা, ১৯৬০ সালের বইয়ের গায়ের দামের বিশ বা পনের শতাংশ। একটাই। পরে আঠা দিয়ে প্রায় প্রতিটি পৃষ্ঠা জুড়তে হয়েছিল পড়বার জন্য।

শেক্ষপিরের নাটক: তখন ঢাকা বিশ্ববিদ্যালয়ের ছাত্রত্বের শেষের দিক। নীলক্ষেতের পুরনো বইয়ের দোকান থেকে একটি বই কেনা। নাম শেক্সপিয়ার’স লাস্ট প্লেজ়। দাম পঁচিশ টাকার মত। ঠিক মনে নেই। মলাট পোকায় কাটা, ভেতরের পাতাগুলোও একই রকমের এবং এতখানি যে পড়তে গেলে চোখে চাপ পড়ে। লেখক ই, এম, ডব্লিউ, টিলিয়ার্ড। লন্ডন থেকে চ্যাটো অ্যান্ড উইন্ডাসের ছাপানো, ১৯৫১ সালে। বছর দশেক পরে বইটি আবার বাঁধাতে হয়েছিল। নয়ত নষ্ট হয়ে যেত। বইটির প্রথম পাতায় ইংরেজিতে লেখা 'পাসড ফর মুনীর চৌধুরী;' নিচে সই এবং সিলমোহর, সুপারিন্টেন্ডেন্ট, দিনাজপুর জেল। একপাশে সিল সেন্সর্ড অ্যান্ড পাসড, সইয়ের নিচে সুপারিন্টেন্ডেন্ট অব পুলিস, দিনাজপুর, ডি, আই, বি। ভেতরে আখ্যাপত্রে একই রকম সিল এবং সই। পাশে কলমের মোটা দাগে লেখা মুনীর চৌধুরী ১৯৫২। তারও নিচে লেখা, দিনাজপুর জেল জুন, ১৯৫২। মুনীর চৌধুরী সে সময়টাতে দিনাজপুর কারাগারে বন্দি ছিল।

1/23/2008

সব গল্পেরই যেমন একটা শুরু থাকে

বাংলা ভাষা সংক্রান্ত একটি ব্লগ প্রায় বছর তিনেক এবং খবরের কাগজে সম্পাদক এবং লেখকদের প্রতিদিনের কিছু কিছু ঘটনা নিয়ে সে সংক্রান্ত একটি ব্লগ প্রায় দু’বছর ধরে চালানোর পর বাংলা হরফ নিয়ে একটি ব্লগ খোলার প্রয়োজন পড়ে। আশা ছিল মেটাফন্টে বাংলার একটি হরফের রোজনামচা লেখার; অন্তত ভবিষ্যতে যারা বাংলা হরফ নিয়ে কাজ করবে তাদের কিঞ্চিৎ সুবিধে হবার কথা। সে কাজ থেমে আছে; পেশাগত চাপের কারণে, দৈনন্দিন বিশৃংখলায় এবং এরকম অনেক কিছুর জন্য যার দায়িত্ব প্রধানত এবং প্রথমত আমার। আরও তিনটে ব্লগ ছিল এবং এদের কোনওটাই এগোয় নি খুব বেশি।

লিনক্ষ (রোমান হরফের Linux, বাংলা উচ্চারণে লিনুক্স -- লিনুস থুরভাল্‌দ্‌সের নিজের ভাষায়, ই-কারটি হ্রস্ব (যদিও সুয়েডীয় ভাষায় স্বরটি দীর্ঘ) আর উ-কারটি কিঞ্চিৎ অন্যরকম; ইংরেজিতে সাধারণ উচ্চারণ লিনাক্স (দ্বিতীয় স্বরটি হিব্রুর শোয়া’র মত) — লিন্যক্সও লেখা যেতে পারে। তবে ঝোঁকটা প্রথম অক্ষরে। বাংলায় লিনাক্স লেখাটাই দস্তুর। পুরনো বাংলায়, সংস্কৃতের নিয়মে, ক + ষ = ক্ষ, এবং নিয়মটা একটু শিথিল ক’রে Maxmüller মোক্ষমূলর আর Shakespeare শেক্ষপীর। Linux-ও তাই লিনক্ষ।) শিখতে শিখতে হঠাৎ মনে হওয়া যে যা-যা কষ্ট করে ঘেঁটে বের করতে হচ্ছে তা এক জায়গায় লিখে রাখলে আর কারুর সুবিধে হতে পারে। সে থেকেই ‘লিনক্ষের খেরোখাতা’র জন্ম এবং পূর্ণবিকশিত হবার আগেই মৃত্যু।
প্রাত্যহিক কাজে সেই লিনাক্সের সমস্যা-সমাধানের কাহিনি এই লিনক্ষের খেরোখাতা।

পেশার কারণে খবরের কাগজে কাজ করতে হলেও অনুরোধ-উপরোধে এবং টঙ্কার বিনিময়ে অনেক সময়ই কিছু অনুবাদ বা তর্জমার কাজ করতে হয়েছে। অনুবাদের কোনও নিয়ম নেই; কিন্তু চিন্তা করবার অনেক অবকাশ আছে। সেকারণে আরও একটি ব্লগের জন্ম হয়েছিল: ‘রোজনামা-এ-তর্জুমা‘। রোজনামা (روز نامه) শব্দটি রোজনামচা (روزنامچه)-র প্রকারভেদ; আলাদাভাবে বাংলায় এর তেমন একটা প্রচলন নেই। অন্য শব্দের তল্পিবাহক হলেই তাকে আমরা বেশ চিনি: শাহনামা, বাবুরনামা, আকদনামা, তালাকনামা, আমলনামা, মোখতারনামা, ওসিয়তনামা, ওকালাতনামা, ইশতিহারনামা, একরারনামা, হুকুমনামা, হলফনামা, সফরনামা, দাবিনামা, দাখিলনামা, রাজিনামা প্রভৃতি শব্দের সুরত দেখে চিনে নিতে বা বুঝে নিতে অসুবিধা হয় না, অন্তত নামা-র অর্থ। বাংলার শিরনামা, যা প্রায়শই শিরোনাম, আসলে নামা-রই জ্ঞাতি, সর-নামা। রোজ তো অনেকদিন থেকেই বাংলার সফরসঙ্গী। এবং এই ব্লগেরও মৃত্যু।

এদিকে গল্পের যেমন বই হয়, আবার বইয়েরও তেমনি গল্প হয়। বিশেষ করে বই সংগ্রহের গল্প, বই পড়ার গল্প এবং বই হারানোর গল্প। তেমনই কিছু গল্প ছিল ‘বইয়ের গল্প’ ব্লগে। শুরুটা ছিল একটি বইয়ে পাওয়া গল্প দিয়ে...

‘দুষ্প্রাপ্য গ্রন্থের একজন সংগ্রাহকের একটি লোকের সঙ্গে আলাপ হবার পর সেই লোকটি নাকি জানালো যে তার বাড়িতে বহু বছর ধরের সযত্নে রাখা একটি বাইবেল অল্পদিন আগে সে ফেলে দিয়েছে। কে এক “গুটেন...কি যেন” সেই বাইবেলটির মুদ্রক। গ্রন্থপ্রেমী ভদ্রলোক আতঙ্কিত হয় বললেন - “গুটেনবার্গ নয়ত! তা হলে আপনি পৃথিবীর সবচেয়ে বিখ্যাত গ্রন্থটির একটি কপি ফেলে দিয়েছেন। মাত্র কয়েকদিন আগে তার আরেকটি কপি নিলামে বিক্রি হয়েছে চল্লিশ লক্ষ মার্কিন ডলারে।” এ-কথা শুনেও বিন্দুমাত্র বিচলিত হল না সেই লোকটি। সে বলল — আমার বইটির দাম খুব বেশি হলে দু “ডাইম” (এক ডলারের দশা ভাগের এক ভাগ) হত। কারণ মার্টিন লুথার বলে একজন লোক বইটির পাতায় পাতায় টীকা-টিপ্পনী লিখে নোংরা করে রেখেছে।’

শুধুই একটি গল্প। পশ্চিমবঙ্গ বাংলা আকাদেমির প্রকাশিত দীপঙ্কর সেন-এর ‘মুদ্রণচর্চা’ থেকে নেওয়া। এদিকে হঠাৎই মনে হল বিষয় নির্দিষ্ট করে ব্লগ লেখার হ্যাপা অনেক। অনেক ভাল সব ব্লগকে এক করে দেওয়া। বাংলা ভাষা’র ব্লগটা থেকে গেল; সাথে থেকে গেল Notes from Newsroom এবং Bangla Haraph ব্লগ দু’টো। বাকিগুলো এক ক’রে এই নতুন ব্লগ।

থোড় বড়ি খাড়া আর খাড়া বড়ি থোড়; তিনটি শব্দ এবং আবার সেই তিনটি শব্দ, উলটো দিক থেকে। কিন্তু মানে কি? যা তাই-ই। এদিক থেকে আর ওদিক থেকে। চোখে পালটানোর স্বপ্ন দেখায় কিন্তু আদতে পরিবর্তন আনে না। জিভে নতুন স্বাদের স্বপ্ন দেখায় কিন্তু স্বাদ পালটায় না। অর্থাৎ যা আছে তাই-ই। আমাদের যাপিত জীবন। পালটানোর আভাসের মাঝে আবার সেই পুরনোর গন্ধ। ফরাসিদের চোখে ব্যাপারটা বোধ করি বেশ ভাল ধরা পড়েছিল: plus ça change, plus c’est la même chose. জিনিস পালটায়, তবে আদতে পালটায় না। আরেকটি অর্থও কিন্তু আছে। খাড়া, বড়ি আর থোড় তিনটিই অকিঞ্চিৎকর, নগন্য, প্রায় মূল্যহীন। মানুষের যাপনও তাই। সেই একই তালিকা থেকে মাঝেমাঝে দু-একটির আগাপিছু আর জীবনে কোনও কিছুরই তেমন দাম নেই। অনেক দামি কোনও কিছুর মুহূর্তের নগন্য কিছুর শর্তসাপেক্ষে অকিঞ্চিৎকর হয়ে পড়ে। একেই ইংরেজিতে কি hackneyed mundanity বলে?