নেটখাতা

November 28, 2010

Mirror Printing: A Unicode DTP Problem in FLOSS

Let me first state the problem that was nagging us for around four years or so. I was first aware of the problem when in 2005 my Bangla book on GNU-Linux was getting published. All the chapters were in PDF, with page setup and graphics and layout complete. And now to proceed into Offset printing the next step was to take ‘tracing’, as they call it, that is, mirror print of the pages on tracing paper. From these tracing-s, the blocks or something are created, which are then used in printing.

This is an apparently small problem, but, in OOo, it is not possible, at least within my knowledge, to take a mirror print. Manoj De, the publisher of the book, came up with the solution. He had a postscript printer, and so, the printer on its own gave us mirror prints of the pages.

Some time after that, Arnab Sengupta and Dibakar Sarkar, when they took some texts from me in soft copy, written in Unicode Bangla, the usual thing in any FLOSS distribution, to publish them in their little magazine ‘Akshar-Jatra’, and reported me the same problem, in a more difficult version. The added difficulty came from this that in Calcutta (or, in the decolonized version, Kolkata) printing industry has some particular custom, that is fitting with economy of printing. They set two pages side by side on some page, usually A4 sized, and then the blocks are created fitting with this A4 sized physical pages. So, two logical pages are kept side by side on one physical A4 sized page. This leads to optimum use of paper, the major component of cost in printing industry. This problem was not there in my Bangla book on GNU-Linux, because, for writing them, from the very start, for the sake getting space for elaborate diagrams, or things like that, I used A4 sized page layout. And so, each A4 size physical piece of paper was holding only one logical page, and this made the whole thing easier.

Now, to do this positing of two logical pages on one physical page, they use some page-layout software like Pagemaker. The problem is here, that for any word-processor like OOo-Writer or MS-Word or something, a page means a physical page and a logical page both together. So, even if someone makes columns appropriately to look like two logical pages side by side on the same A4 sized page layout, the word-processor would still consider these two together as one page, and number them accordingly. But, page-layout packages like Pagemaker can do this. They take the whole text as a flow, and go on dividing them into page-units, indifferent to the size of physical piece of paper, and number them accordingly.

In FLOSS, or, Free-Libré-Opensource-Software, the page layout package is Scribus. But, the problem with Scribus is that, it cannot handle Indic complex text layouts, and so, all the vowel marks and all get mangled when the Unicode Bangla text is imported into Scribus. So, now their added difficulty was bringing two logical pages into one physical page, as we elaborated above, to the original problem of taking mirror prints. Let us number these two problems:

1. Mirror print

2. Logical layout

Over the last three years or so, I had repeated conversations with my younger (and hence brighter) friends in FLOSS, about these two problems, and engaged in many hours of search on the Net about some solution. But nothing came up.

And another problem got added about this doing DTP on FLOSS, that was page number in Indic. In Hindi books, a lot of which are printed in Unicode Hindi, this problem is not there. The usual custom for a lot of books in Hindi is using page numbers in Roman. And so, the third problem was adding page numbers in Bangla, which we never could do, however hard we tried it in OOo. And we did not try things like Abiword or Kword as a word-processor because, we were so used to OOo, and everything about Bangla text can be done so easily with that. So, we list here another problem.

3. Page numbering in Bangla.

The package pdfjam, and a component of it, pdfnup solved the problem of bringing two logical pages into one physical page. But, problem 1, printing in mirror, and problem 3, page number in Bangla, remained. In fact, solving the problem 2 actually made problem 1 harder. Because till now, Arnab was importing page by page into some graphics package as a picture, and then flipping them horizontally. And this could not be done any more.

When we are making two pages side by side, and importing them into graphics software, the mirror flipping is being done with a pair and hence the order of the pages is changing. The order 1, 2, 3, 4, 5, 6 is becoming 2, 1, 4, 3, 6, 5. And so, this did not work. We tried hard. We tried with transferring the whole page into graphics, and flipping that with Inkscape or Gimp or something. But none of them worked.

And at last, at late night, two days back, I came up with a solution, that solves both 1 and 2, though 3 remains, and Arnab or Dibakar are inserting them manually. I have a feeling that somewhere I have heard that 3 can be done in OOo, but none of us could find it out in help documents on OOo.

For this solution we are going to use OOo in the first place in creating the documents, and then applying pdfjam and ‘convert’ on that document. ‘Convert’ is a binary that is a part of the package ImageMagick.

Let me elaborate the process step by step, if it helps anybody doing it.

Step 1. Ensuring if the packages are available in the system.
OOo and ImageMagick and pdfjam were all available in Fedora repository, and I just installed them with yum. OOo is an omnipresent package in GNU-Linux distributions these days, so it is no problem. One will need to install ImageMagick and pdfjam on the system. ‘Pdfjam’ is small in itself but it uses ‘pdflatex’ in its backend, and so, this becomes a bit heavy an installation. ‘ImageMagick’ is also usually a regular part of a GNU-Linux distro.

Step 2. Creating and formatting the pages in OOo.
You will need to measure the physical sizes of a page, as it will happen in the book and provide this to OOo Format–>Page… window. Lke in our case, where we measured a similar book page with a scale and provided the measurements:

Paper format: User
Width: 14 cm.
Height: 21 cm.
Left, Right, Top, Bottom: 1.5 cm. each

Then we went to Header and Footer flap and set the measurements there.

Header: On
Header Spacing and Height: 0.3 cm. each
Footer: On
Footer Spacing and Height: 0.3 cm. each

So, now we got each page measuring 14×21cm. We now use the File –> Export to PDF… dialog to export this into a PDF, say test.pdf.

Step 3. Using ‘convert’ to transform the pages into images.
We issue the command ‘convert test.pdf test.jpg’ to do this. In this case it was an eleven page document. And so, we get eleven JPG images of the individual pages.

[dd@mamdo x]$ ls
test.pdf
[dd@mamdo x]$ convert test.pdf test.jpg
[dd@mamdo x]$ ls
test-0.jpg   test-11.jpg  test-2.jpg  test-4.jpg  test-6.jpg  test-8.jpg  test.pdf
test-10.jpg  test-1.jpg   test-3.jpg  test-5.jpg  test-7.jpg  test-9.jpg

Now, we have to rename the images. ‘Convert’ names them from 0 to 11, but it will create problems later. Because it does not use two digits for the images from 0 to 9, this disturbs the order. As we can see in the list, images 1 to 9 are listed after images 10 and 11. But to renumber them, first we have to get rid of the ‘test-’ part before the number. And so, we do the usual bash thing to do this.

[dd@mamdo x]$ for i in *.jpg ; do mv $i ${i##test-}; done
[dd@mamdo x]$ ls
0.jpg  10.jpg  11.jpg  1.jpg  2.jpg  3.jpg  4.jpg  5.jpg  6.jpg  7.jpg  8.jpg  9.jpg  test.pdf

So, now they are all just named in numbers, followed by the JPG suffix. Because they are numbered this way, with a wrong order among them, later, when we recompose them into a PDF, they will have a wrong order. So, to correct the order we have to add a 0 before all the single digit numbers. This we do with bash.

[dd@mamdo x]$ for i in ?.jpg ; do mv $i 0$i ; done
[dd@mamdo x]$ ls
00.jpg  01.jpg  02.jpg  03.jpg  04.jpg  05.jpg  06.jpg  07.jpg  08.jpg  09.jpg  10.jpg  11.jpg  test.pdf

Now, see, the order is restored among the files. They are listed in the regular number system way. This step is complete. Our PDF is now a series of page-pictures numbered properly.

Step 4. Getting the mirror images of the page-pictures.
For this we use ‘convert’ again. We employ bash again to pick every page-image individually and convert them into mirror image. ‘Convert’ does this with the ‘-flop’ option. ‘Convert’ can also flip vertically, for that we use ‘-flip’ option. Here we don’t need that. Read ‘man convert’ for all the details. Now we tell bash to convert the images and name the mirror images with a ‘mirror-’ prefix added to their name.

[dd@mamdo x]$ for i in *.jpg ; do convert -flop $i mirror-$i ; done
[dd@mamdo x]$ ls
00.jpg  03.jpg  06.jpg  09.jpg  mirror-00.jpg  mirror-03.jpg  mirror-06.jpg  mirror-09.jpg  test.pdf
01.jpg  04.jpg  07.jpg  10.jpg  mirror-01.jpg  mirror-04.jpg  mirror-07.jpg  mirror-10.jpg
02.jpg  05.jpg  08.jpg  11.jpg  mirror-02.jpg  mirror-05.jpg  mirror-08.jpg  mirror-11.jpg

As we can see in the list, eleven mirror-images are there, created from the eleven page images. So, this step is complete. Now we get back our PDF from the mirror-images.

Step 5. Recomposing the page-images into a PDF
To do this we use ‘convert’ and bash shell. And we needed the naming order among the files for this step. If the order is not proper among the names of the files, then pages in the PDF will have a wrong order.

[dd@mamdo x]$ convert mirror-*.jpg mirror-test.pdf
[dd@mamdo x]$ ls
00.jpg  03.jpg  06.jpg  09.jpg  mirror-00.jpg  mirror-03.jpg  mirror-06.jpg  mirror-09.jpg  mirror-test.pdf
01.jpg  04.jpg  07.jpg  10.jpg  mirror-01.jpg  mirror-04.jpg  mirror-07.jpg  mirror-10.jpg  test.pdf
02.jpg  05.jpg  08.jpg  11.jpg  mirror-02.jpg  mirror-05.jpg  mirror-08.jpg  mirror-11.jpg

All the mirror images had the ‘mirror-’ prefix added to them, and now used all the files with ‘mirror-’ prefix to create a new PDF with a ‘mirror-’ prefix. The difference between the original test.pdf and mirror-test.pdf is that, here all the pages will be in their respective mirror images.

Step 6. Bringing two logical pages into a single page.
Here we come to the final step. We use ‘pdfnup’ here, which is a part of the ‘pdfjam’ package to do this. But, first let us get rid of all the images in the directory, we don’t need them any more.

[dd@mamdo x]$ rm *jpg
[dd@mamdo x]$ ls
mirror-test.pdf  test.pdf
[dd@mamdo x]$

So, we are now left with just the two PDF files. So we run ‘pdfnup’ now. We use some options with ‘pdfnup’. They are quite easy to understand. Read ‘pdfnup –help’ for farther clarifications and other options.

[dd@mamdo x]$ pdfnup –nup 2×1 –frame false –paper a4paper –landscape mirror-test.pdf
—-
pdfjam: This is pdfjam version 2.07.
pdfjam: Reading any site-wide or user-specific defaults…
(none found)
pdfjam: Effective call for this run of pdfjam:
/usr/bin/pdfjam –suffix nup –nup ‘2×1′ –landscape –nup ‘2×1′ –frame ‘false’ –paper a4paper –landscape — mirror-test.pdf -
pdfjam: Calling pdflatex…
pdfjam: Finished.  Output was to ‘/home/dd/Desktop/mirror/x/mirror-test-nup.pdf’.
[dd@mamdo x]$ ls
mirror-test-nup.pdf  mirror-test.pdf  test.pdf

The lines displayed by ‘pdfnup’ shows ‘pdflatex’ working in the background. So, now, the file that was created by ‘pdfnup’ and named as ‘mirror-test-nup.pdf’ is finally there that contains all the mirror images of the individual pages, in proper order, and two pages ready to be printed in a single physical piece of paper. Now check this new PDF with any reader like ‘evince’ or ‘xpdf’ to ensure that it’s page number is half of the original. In this case it was six, while there were eleven pages in test.pdf.

So, our problems 1 and 2 are solved. But, still Arnab or Dibakar or I have to insert the Bangla page numbers manually. I call for help here from everyone concerned.

Filed under: গ্নু-লিনাক্স — dd @ 8:50 am

September 18, 2010

একটা বই শেষ হল

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

September 10, 2010

Opening Port in Nokia Siemens 1600 Residential Router for Azureus or Vuze on Fedora 13

For running BT clients like Azureus (or, as it is called now Vuze) needs opening a port, or forwarding a port to the router. This becomes more difficult for the BSNL ISP because it assigns a new port every time the router is powered on. My router is Nokia Siemens Residential Router 1600. I faced a lot of problems. So I am writing here all the steps that it may help others. Here we describe, Fixing the internal IP, then opening the port, and then readjusting the firewall rules for a Fedora 13 system.

There is a guide on Port Forwarding Azureus on the NokiaSiemens C2110. This gives some ideas. But, the problem is, the tools given there are for MS-Windows systems, and the Simens Nokia 1600 Residential router is quite different from the one given there. This router that was provided by the ISP — BSNL Dataone, and this is much cheaper than the C2110 model, and hence with a much less and cryptic functionality. And the obnoxious thing is that, the ISP, while giving me the router did not give any manual, only an MS-Windows driver CD that no GNU-Linux user does ever need. Let me give here the details for anyone in the same kind of fix.

These were the steps taken to open the port for Azureus (or, Vuze, as you call it) and readjust the firewall rules on a Fedora 13 system with Nokia Siemens Residential Router 1600 (with WL). I am writing here in a bit detailed way, such that people like me, not conversant in network things, can get some help.

Step 1.

The first problem was the fluid or dynamic IP. The ISP makes it that way. Every time my router powers on it gets a new IP. This assigns an IP to my machine. This can be dynamic too, if configured the DHCP way. But, this internal IP has to be made ‘fixed’ if to enable port forwarding. This was already done in my machine, because I regularly use some ‘rsync’ backup scripts between my desktop (internal IP 192.168.1.2) and my laptop (192.168.1.3). There are many ways to do this, like using ‘ifconfig’ and ‘route add default gw’, which I used before. But, these days I use ’system-config-network’ — a GUI frontend for all these things.

So first I become superuser and run ’system-config-network’. This brings up this window.
system-config-network

Here in default, the ethernet card should be eth0, but my original one with the motherboard was giving problems, so I added this ethernet-card, and it is shown as eth1. Now I click on this connection and click ‘Edit’ on the topbar, this brings up this card configuration window.
Ethernet Configuration

As we can see, here ‘Statically Set IP’ is clicked, and the IP of this desktop is given to 192.168.1.2, subnet mask 255.255.255.0 and the gateway, the router, is set to be 192.168.1.1. We make here OK and come out. So, our first task, setting a fixed internal IP 192.168.1.2 for the machine was done under the router as 192.168.1.1.

Step 2.
Now we enter the router by issuing ‘http://192.168.1.1′, without the quotes, in the browser. This shows this window for Nokia Siemens Residential Router 1600 (with WL). This opens this window.
Nokia Siemens 1600 Residential Router

Here, as we can see, the IP of the router is shown to be 192.168.1.1. And ISP has provided it with the dynamic IP 59.93.240.1. The two lines below it show the Google DNS 8.8.8.8 and 8.8.4.4 — these two DNS were fed into the router because it helps to access some sites that are not at times blocked by ISP assigned DNS.

Step 3.

Now we go to the page ‘http://192.168.1.1/scvrtsrv.cmd?action=view’ without the quotes. This page I could get in the manual that BSNL never gave me. I got the address of the page from the Net, just like another very necessary page of the router; ‘http://192.168.1.1/main.html’ — this page gives all very necessary things like the DNS set-up and all, and many other things, by clicking ‘Advanced Setup’.

Now, after I have forwarded my port, this page ‘http://192.168.1.1/scvrtsrv.cmd?action=view’ has this look.
Router NAT Table

As we can see, two ports are already setup here: 6881 and 61640.

Step 4.

This 6881 port is fixed for Azureus, but the other port we get from Azurues options. We open Azureus — Tools — Options — Connection, and this gives this window.
Azureus/Vuze Port Option

As we can see, 61640 is given there. This we can change too, by clicking Azureus — Tools — Configuration Wizard, and going step by step. Azureus or Vuze (as it is called these days) Wiki will give us some idea. We can very well choose the port that was automatically selected by Azureus as we got in the option. We write down this number.

Step 5.

We go to this page ‘http://192.168.1.1/scvrtsrv.cmd?action=view’ of our router and click ‘Add’ there. This gives us this window.
Adding NAT

Here we select ‘Custom Server’ and give a name, say, like ‘custom1′. Then we put ‘6881′ in both ‘External Port Start’ and ‘External Port End’. And choose ‘TCP/UDP’ in ‘Protocol’. Then click ‘Save’. We repeat the same step for the port we have chosen in Azureus options. Again we click ’save’ and we get the ports opened.

Step 6. Now we go to Azureus and go to Tools — Configuration Wizard. In the third step we come to the ‘Port Test’ window. If we did the earlier steps correctly we should get an ‘OK’ here when we test for the port we chose.

Step 6.

Now we change the firewall rules. As superuser we start ’system-config-firewall’. This opens the firewall window. Now we click ‘Other Ports’. Then we click ‘Add’ and this opens this window.
system-config-firewall

Here we have clicked ‘User Defined’, and we add ‘6881′ for ‘TCP’, then again ‘6881′ for ‘UDP’. We repeat the same step for the port we chose from Azureus Options.
Then we click ‘OK’ and come out.

Step 7.

Now we activate the firewall rules by becoming root and issuing ’service iptables start && service ip6tables start’. Most probably ’system-config-firewall’ did already look after this, but there is no harm in doing it once again.

Hope it helps.

Filed under: গ্নু-লিনাক্স — dd @ 12:31 pm

April 19, 2009

ফেডোরা ১১ এবং নতুন মেশিন

শুধু নতুন মেশিন না, এই ব্লগটা লেখার সময় আরও বেশ কয়েকটা উপাদান নতুন।

এক, বাংলা অক্ষর লেখার জন্য এতদিন স্কিম (scim) ব্যবহার করতাম, এই ফেডোরা ১১-য় ডিফল্টটা হল আইবাস (iBus), সেটা দিয়েই লিখছি। এটা বোধহয় বেশ ভাল, স্কিমের চেয়ে সহজ তো বটেই, তবে এইটুকু ব্যবহারে কিছু বলা যায় না।

দুই, সচরাচর আমি এক্সএফসিই (Xfce) ব্যবহার করি, কিন্তু এক্সএফসিই-তে আইবাস চলছে না। তাই গ্হনোম (Gnome) ব্যবহার করতে হচ্ছে। কিছু গোলযোগ অস্বাভাবিক নয়। ফেডোরা ১১ এখনো বিটা। এই প্রথম আমি র-হাইড থেকে কিছু ইনস্টল করলাম।

তিন, ব্রাউজার ব্যবহার করি এপিফ্যানি (Epiphany), কিন্তু এপিফ্যানিতে গিয়ে কনফিগারেশন বদলে যেই বানান-পরীক্ষা চালু করতে গেলাম, এপিফ্যানি ঝুলে গেলেন। এটাও বিটা ওএসের অবদান।

বেশ কদিন কাজ গেছে, এবার খুব দ্রুত কাজে ফেরত আসতে হবে, এই বিটা ওএস এখনো ভোগাবে কিনা কে জানে। আমি ভয়ে ওপনঅফিস চালু করে দেখার চেষ্টাও করছি না। কিন্তু এই বিটা ওএস না-করে কোনও উপায় ছিল না। এই নতুন মেশিনের মাদারবোর্ড হল DG 41 TY, ইনটেলের, সেটার সঠিক ড্রাইভার এখনো আসেনি। সায়মিন্দু আমায় বলল এই মাদারবোর্ড কিনতে কারণ এটায় ভারচুয়ালাইজেশন খুব ভাল হয়। আমায় একাধিক গ্নু-লিনাক্সের ব্যবস্থা রাখতে হয় আমার মেশিনে নানা জনের প্রয়োজনের জন্য। কিন্তু দিনকে দিন ওই গুষ্টির পিণ্ডি ইউইউআইডি-র (UUID) কল্যাণে একই মেশিনে একাধিক ওএস খাড়া করা সমস্যার হয়ে দাঁড়াচ্ছে। আমি আপাতত যেটা করি সেটা হল এফস্ট্যাব ফাইল থেকে ইউইউআইডি লাইনগুলো হ্যাশ করে দিয়ে তার নিচে ওই লাইনগুলো /dev/sda1 /dev/sdb2 ইত্যাদি ডিভাইসনাম দিয়ে লিখে নেওয়া। কিন্তু সেটারও নাকি সমস্যা আছে, ক্রমে নানা সফটওয়্যার সরাসরি নাকি ইউইউআইডি পড়া শুরু করেছে। তাই সায়মিন্দু পরামর্শ দিল লিনাক্স একটাই রেখে ভারচুয়ালাইজেশন দিয়ে অন্য লিনাক্স করতে। তাই এই মাদারবোর্ড। আর সেটা এতটাই নতুন যে ফেডোরা ১০ থেকে সেটায় ঢুকতে হয়ে xdriver=vesa এই লাইন লিখে। কিন্ত এই ভেজা ড্রাইভার দিয়ে শুকনো শুকনো কাজ করা অত্যন্ত সমস্যার হচ্ছিল। তাই বাধ্য হয়ে ফেডোরা ১১ করতে হল।

কেসটা অনেকটা তাঁতির হেলে গরু কেনার মত আমার নিজেরই লাগছে, আমার টেকনিকাল জ্ঞান প্রায় শূন্য বললে মোটেও বিনয় হয় না, তার এরকম একটা রক্তপাতময়, ব্লিডিং এজ, ওএসে যাওয়া উচিত হল কিনা কে জানে।

Filed under: গ্নু-লিনাক্স — dd @ 10:13 pm

January 23, 2009

বিএসএনএল ডেটাকার্ড ফেডোরা ৮ – সংযোজন ১

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

এক এক বার করে অন্য ভারচুয়াল টার্মিনালে যাও আর একটু করে কনফিগারেশন ফাইল xorg.conf বদলাও, আবার ইনিট পাঁচে যাও, আবার হল না, আবার করো। করতেই থাকো। হরাইজন্টাল ভার্টিকাল রিফ্রেশ রেট একটু একটু করে বদলাও, বদলাও ভিডিও মোড। আর শেষ অব্দি যখন এক্স চলত, তখন ‘চালাও পানসি বেলঘরিয়া’ বলেও মিটত না, একদম টেনিদা ব্রান্ড ‘ডিলাগ্রান্ডি মেফিস্টোফিলিস ইয়াক ইয়াক’ ছাড়া আবেগ মোচনই হত না। আহা সে যে কী জয়ের অনুভূতি। যাকগে, সুখের চেয়ে স্বস্তি ভালো।

আজকে যা হল বিএসএনএল জিপিআরএসে, পরপর দুটো মেশিনে, একটা ফেডোরা ৮, অন্যটা ফেডোরা ১০, সে তো একেবারে ‘পুঁদিচ্চেরি’। আমি এতটাই তর হয়ে গেলাম যে তখ্খুনি ফোন করে প্রথমে প্রণবদা পরে সঞ্চিতাকে লাফ দিয়ে লাফ দিয়ে বোঝালাম কেন ওদের এইমুহূর্তেই, যদি পয়সা না-থাকে তো ঘটিবাটি বেচেও, জিপিআরএস নেওয়া উচিত। সঞ্চিতা বেচারি সাইকেল চালিয়ে খোয়াই দিয়ে যাচ্ছিল কোপাই নদীর দিকে, ওকে মাঠের মধ্যে দাঁড় করিয়ে বুঝিয়েছি। আর পয়সা তো আসলে লাগেই না, যদি পোস্টপেইড না কী ওইটা হয়, মানে পরে যেটায় বিল আসে। আমি সেলফোন তো ছাই বুঝিও না। কিন্তু লোকজনকে জিগেশ করলেই বলে দেবে, বিএসএনএল অল্পদিন হল গোটাটাই ফ্রি করে দিয়েছে, শুধু রেন্টালটা নেয়, ১৯৯ টাকা। আর একটা ফোন অবশ্য কিনতে হয়, কিন্তু সে তো আজকাল সবারই থাকে, আমার মত দু-চারজন সমাজবিরোধী ছাড়া।

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

তিনি ভুরু কুঁচকে একটু তাকিয়ে জিগেশ করলেন, আপনার ফোন?

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

যাইহোক, যা দেখলাম, ফোনে একটু টিপলেই পাওয়া যাবে সেটিং। সেটায় ঢুকে যেতে হবে ‘ফোন সেটিং’-এ। সেখানে গিয়ে ‘পিসি এনাবল’ করে দিতে হবে। এটুকু করে নেওয়ার পরে আর কিছু নেই।

এবার জাস্ট ফোনটা লাগাও। একবার দেখে নাও ‘lsusb’ করে বস্তুটা পেল কী না। এবার ওই একই, ডেটাকার্ডের মত, রুট হয়ে

wvdialconf /etc/wvdial.conf

দেখলাম প্রতিটি কিছু হুবহু পেয়ে গেছে, শুধু ফোন নম্বর আর পাসওয়ার্ড লাইনটা বদলাতে হবে। আর সবকিছু ও নিজেই ঠিকঠাক করে নিয়েছে। বদলানো ফাইলটার ‘[Dialer Defaults]‘ অংশটা এখানে তুলে দিলাম, যেখানে ও তুলেছে এই জিপিআরএস ডিটেইলস। আগের অংশটা তো একই আছে, ওই ‘[Dialer BSNL-NIC]‘ অংশটা, যেটা আমরা আগেই বানিয়েছিলাম।

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Stupid Mode = 1
Modem Type = USB Modem
ISDN = 0
Phone = *99#
Modem = /dev/ttyACM0
Username = ” ”
Password = ” ”
Baud = 460800

এবার রুট হয়ে ‘wvdial’ চালালাম। কয়েক সেকেন্ড বাদেই পরপর পিলপিল করে লাইনগুলো ফুটে উঠল, যাতে প্রাইমারি ডিএনএস, সেকেন্ডারি ডিএনএস এসমস্ত বলে দিল। তারপর সেখান থেকে সেই ডিএনএস ১ আর ২ এর আইপি দুটো তুলে নতুন করে একটা ‘/etc/resolv.conf’ লিখে দিলাম, তার কায়দাকানুন তো এই ডেটাকার্ড নিয়ে আগের ব্লগ দুটোয় আছেই।

ওই রুট কনসোলে wvdial চলতেই থাকল। আর আরামসে নেট করতে শুরু করলাম। ফেডোরা ১০ আর ৮ দুটোতেই একই আরামে হল। আমি এতটাই মুগ্ধ হয়ে গেলাম যে প্রণবদাকে বোঝাতে শুরু করলাম, দেখো তুমি একটা এসার অ্যাসপায়ার ওয়ান কেনো, দাম কমে এখন চোদ্দ হাজারে গেছে, আমি নিজে ফেডোরা ১০ করে দেব। তুমি ভাবো, ট্রেনে বিশ্বভারতী যেতে যেতে তুমি নেট করতে পারবে। সঞ্চিতাকে বলতে যাচ্ছিলাম, তুই সাইকেলে খোয়াই যেতে যেতে নেট করতে পারবি, তোর তো ল্যাপটপ আছেই, সেটায় ফেডোরা ৮ ও আছে, কিন্তু ততটা আর এগোলাম না, যতই হোক জিপিআরএস লাগিয়ে সেটা ও করবে কী করে, দু হাতই তো সাইকেলের হ্যান্ডেলে। আর হঠাৎ করে হাতের সংখ্যা বেড়ে গেলে লোকে কী বলবে, দিদিমণি বলে কথা।

Filed under: গ্নু-লিনাক্স — dd @ 9:56 pm

January 14, 2009

বিএসএনএল ডেটাকার্ড ফেডোরা ৮ — সংযোজন

এক নম্বর কথা, শুধু ফেডোরা ৮ নয়, ফেডোরা ১০-এও এই প্রক্রিয়া কাজ করছে, কিন্তু দুটোতেই একটা ঝঞ্ঝাট করছিল, সেটার কথায় আসছি তিন নম্বর কথায়।

দুই নম্বর কথা, বিএসএনএলের ইঞ্জিনিয়ার নিত্যানন্দ, আমাদের জিএলটির প্রথম মিটিং-এও ছিল ও, ব্লগ পড়ে বলেছিল, আমি ভুল লিখেছি, ওটা ১৪৪ কিলোবিট নয়, ও ঠিকটা পরে মন্তব্য আকারে এখানে লিখে দেবে। কিন্তু এখনো দেয়নি। ছেলেপিলেরা এরকম ভুলে যায়।

তিন নম্বর কথা, কিছু ঝঞ্ঝাট করছিল। নিজে বুঝলাম কাল। ব্রডব্যান্ডে কাল গোলযোগ করছিল, এটা দিয়ে নেটে ঢুকতে গিয়ে। উদারহৃদয় বুড়িয়া-দেবাশিস এটা আমাকে আপাতত দান করে গেছে। সেই ঝঞ্ঝাট সমাধান করার প্রক্রিয়াটা এখানে লিখে রাখা যাক। ওটা যে কাজ করে তার প্রমাণ এই লেখাটা নিজেই, এটা লেখা হচ্ছে ওই ভাবে নেটিত হয়েই।

ঝঞ্ঝাটটা এই যে, ডিভাইস ফাইলটা থাকছিল না। ‘ifup ppp0′ করলে, সিস্টেম জানাচ্ছিল ডিভাইস ফাইল ‘/dev/modem’ নেই। এটা udev-এর ফ্যাঁকড়া। সে ব্যাটা সমস্ত এরকম প্রতীকী ফাইল, সিম্বলিক লিংক উড়িয়ে দেয় সিস্টেম শাটডাউনের সময়। কালকে ঝঞ্ঝাটটা দেখে নিজে একটা ফের বানিয়ে দিলাম, ‘ln -s /dev/ttyUSB0 /dev/modem’ কমান্ড দিয়ে। তারপর হল।

আজ সকালে মনে হল, প্রতিবার এটা দেখে নেওয়া, বড়ই ঝামেলার। আর একই বুটে কেউ একাধিকবার ppp0 চালু বা বন্ধ করতে পারে, তখন তো আবার ডিভাইস ফাইলটা রয়ে যাবে। তাই একটা কুচো ব্যাশস্ক্রিপ্ট বানিয়ে নিলাম।

বানানোর কমান্ডটা হল:

cat > /usr/bin/bsnl-nic

এর পর, কমান্ড প্রম্পট নিজের উঠোন খুলে দিল, মানে ফিরে এল না, তখন পরপর নিচের লাইনগুলো টাইপ করে দিলাম। কিন্তু একটা কথা বলে নেওয়া ভালো, টাইপ করতে ভুল হলে সংশোধনের দরকার হতে পারে, তাই

emacs /usr/bin/bsnl-nic

বা

vim /usr/bin/bsnl-nic

দিয়ে একটা এডিটর খুলে নেওয়াই ভালো। আর এগুলোর কাজকর্ম তেমন জানা না থাকলে, আমি ধরে নিচ্ছে গ্রাফিকাল ইউজার ইন্টারফেসেই কাজ চলছে, ‘mousepad’ বা ‘gedit’ দিয়েও ‘/usr/bin/bsnl-nic’ ফাইলটা খুলে নেওয়া যেতে পারে। ইঁদুরের পেট টিপেই ফাইল সম্পাদনা করে নেওয়া যাবে।

যে লাইনগুলো পরপর লিখে দিলাম ফাইলে:

#!/bin/bash
[ -f /dev/modem ] && rm -f /dev/modem
ln -s /dev/ttyUSB0 /dev/modem
ifup ppp0

প্রথম লাইনটা তো ব্যাশস্ক্রিপ্টের পৈতে, দেখে যাতে ব্যাশস্ক্রিপ্ট বলে চেনা যায়। দ্বিতীয় লাইনটা দেখে নিচ্ছে, ‘/dev/modem’ নামে কোনও ফাইল সিস্টেমে আছে কিনা, এবং যদি থাকে তবেই সেটাকে সজোরে উড়িয়ে দেবে, কোনও প্রশ্নোত্তর ব্যতিরেকে। তৃতীয় লাইনটা হল ফের একবার ওই নামে একটা প্রতীকী সংযোগ, সিম্বলিক লিংক বানিয়ে দেওয়ার। এবং চতুর্থ লাইনটা হল ‘ppp0′ চালু করার।

এবার একটাই কথা, এটা শুধু রুটের বা সুপারইউজারের চালনীয়, অন্য কেউ যাতে ট্যাঁফোঁ না করতে পারে, তাই রুট হয়েই কমান্ড দিতে হল:

chmod 700 /usr/bin/bsnl-nic

এটা রুট ছাড়া অন্য কেউ কিছু করতে গেলেই সিস্টেম বলে দেবে, ওকে ছুঁয়োনা ছুঁয়োনা ছি। ওই অসূর্যমস্পর্শা ফাইল শুধু রুটের দ্বারাই লিখনীয়, পাঠনীয় এবং চালনীয়। কোনও কৌতূহল হলে ‘man chmod’ পড়ে নেওয়া ভালো। এখন থেকে ’su -’ কমান্ড দিয়ে রুট হয়ে কমান্ড দিতে হবে:

bsnl-nic

তাহলেই ppp0 চালু হয়ে যাবে। কিন্তু ’su’ কমান্ড দিয়ে রুট হলে কিঞ্চিত ব্যথা আছে, ’su -’ হল লগিন শেল, যেন রুট লগিন করল সিস্টেমে, তাই সিস্টেমের সমস্ত সিস্টেম বাইনারি সে তার নিজের পথেই পেয়ে যায়। ’su’ হল ইউজারের গায়ে একটা ‘রাজা’ লেখা কোট চাপিয়ে দেওয়ার মত, সিস্টেম বাইনারি চালাতে গেলে পুরো পথ দিয়ে কমান্ডটা দিতে হয়।

Filed under: গ্নু-লিনাক্স — dd @ 9:55 am

January 3, 2009

বিএসএনএল ডেটাকার্ড ফেডোরা ৮

বুড়িয়ারা জলপাইগুড়ির চা-বাগানে বসে যাতে ইমেল-টিমেল করতে পারে, সেই জন্যে বিএসএনএলের ডেটাকার্ড কিনেছিল। মডেল ইসি ৩২৫, হুয়াওয়েই, ডব্লুএলএল ডেটা কার্ড। এটা ওই ইভিডিও নয় কিন্তু, যাতে ২ মেগাবিটে পাওয়া যায়, এর তথ্যহার ১৪৪ কিলোবিট প্রতি সেকেন্ড। ওরা এত ক্যাবলা যে কেনার আগে খোঁজও নেয়নি যে এটা কলকাতা থেকে কিনে জলপাইগুড়িতে ব্যবহার করতে পারবে না। ওদের ল্যাপটপে ফেডোরা ছিল, ফেডোরা ১০। তার সঙ্গে ইনস্টল করতে গিয়ে দেখলাম সরাসরি নেটওয়ার্ক ম্যানেজার দেখাচ্ছে না, ডেটা কার্ডটা খুঁজে পাচ্ছে, কিন্তু সেটাকে ডিসকানেক্টেড দেখাচ্ছে।

তারপর তো জানা গেল ওটা জলপাইগুড়িতে চলবেই না। আমি ওদের ক্যাবলা বলায় ওরা আমায় বলল, বুদ্ধিটা তুমিই দিয়েছিলে। কে ওদের বোঝায় বুড়ো মানুষদের অমন বলতে নেই, সত্যি হলে তো একদমই বলতে নেই। তা যাই হোক, বুড়িয়া আজ রেখে গেল ডেটা কার্ডটা। আমি সেটা আমার ফেডোরা ৮-এর ল্যাপটপে লাগিয়ে চালু করলাম, আর তাই এই ব্লগ। এই মুহূর্তে সেটা দিয়েই নেট করছি। সায়মিন্দু বলে রেখেছিল, ডেটা কার্ডটা নেটওয়ার্ক ম্যানেজার দিয়ে চালু করতে পারলেই ব্লগে তুলে দিতে। আর সদ্য পরপর দুদিন সায়মিন্দু আমায় পাতন প্রক্রিয়ায় ঘনীভূত কফিবাষ্প দিয়ে তৈরি একটা কফি খাইয়েছে, অমন উমদা জিনিস আমি জীবনে কমই খেয়েছি। এখন ওকে অমান্য করলে হয়ত বলে বসল, দুদিনের চার কাপ কফি পেট থেকে বার করে দাও, কিন্তু সে তো আমার হজম হয়ে গেছে।

প্রথমে বস্তুটা আমার মেশিনের ইউএসবিতে লাগালাম। এবার একটা টার্মিনাল খুলে তাতে রুট হলাম ’su -’ করে, পাসওয়ার্ড দিয়ে। এবার ‘lsusb’ কমান্ড দিয়ে দেখে নিলাম, আমার ওএস বস্তুটাকে খুঁজে পেয়েছে কিনা। তাতে একটা লাইন ছিল:

Bus 004 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem

অর্থাত, খুঁজে হ্যাজ। খুঁজে যখন পেয়েছে, এবার কর্তব্যকর্ম হল ‘wvdial’ চালু করা। তার জন্যে প্রথমে কনফিগারেশনটা বানাতে হবে। সেই জন্যে কমান্ড দিলাম:

wvdialconf /etc/wvdial.conf

মানে ডব্লুভিডায়াল হারামজাদা যাতে কনফিগারেশন ফাইলটা বানায় /etc ডিরেক্টরিতে ‘wvdial.conf’ নামে। এটাই ওর ডিফল্ট, তাই এর পর থেকে ডব্লুভিডায়াল চালালে ওখান থেকেই পড়বে।

ওখানে একটা কনফিগারেশন ফাইল বানাল ডব্লুভিডায়াল। কিন্তু তাতে কিছু কিছু জিনিস একটু বদলে নিতে হল। একটা হল, Stupid Mode যোগ করা। এছাড়া ফোন নম্বর, ইউজারনেম এবং পাসওয়ার্ডটা বদলানো। বদলে নেওয়ার পর /etc/wvdial.conf ফাইলটা দাঁড়াল এরকম:

[Dialer Defaults]
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
Stupid Mode = 1
New PPPD = yes
Phone = #777
ISDN = 0
Username = ???
Init1 = ATZ
Password = ???
Modem = /dev/ttyUSB0
Baud = 460800

শুধু আমি ফাইলটাতে পাসওয়ার্ড আর ইউজারনেমের জন্যে বিএসএনএল থেকে দেওয়া একই তিন অঙ্কের সংখ্যটাকে বদলে এখানে ‘???’ করে দিয়েছি। এবং দেখুন ‘Stupid Mode = 1′ লাইনটাও যোগ করে দিয়েছি। এবং, ইউজারনেম, পাসওয়ার্ড, আর ফোন নম্বরের লাইনটার গোড়ায় একটা সেমিকোলন (;) ছিল, সেই চিহ্নটা এবং তার পরের স্পেসটাও উড়িয়ে দিয়েছি। মোডেম ডিভাইস দেখুন, /dev/ttyUSB0, ও নিজে থেকেই যোগ করে নিয়েছে।

এবার রুট থেকে কমান্ড দিলাম ‘wvdial’। এতে কিছুক্ষণ ধরে হিজিবিজি চলল, তারপর এক এক করে দুটো নেমসার্ভারের আইপি দেখাল ডব্লুভিডায়াল। কিন্তু তখনো নেটে যোগ করতে পারছে না, আমার এপিফ্যানি ব্রাউজার তো চলছেই না, এমনকি পিংপংও করা যাচ্ছে না। ‘ping google.com’ দিলে দেখাচ্ছে, সার্ভার খুঁজে পাওয়া যায়নি ইত্যাদি কিছু একটা। এটা হওয়ারই কথা, কারণ, ‘resolv.conf’ ফাইলটা বদলানো হয়নি। এমনিতে আমার বিএসএনএল ব্রডব্যান্ড রাউটার দিয়ে নেটে যোগ করে, তাই পুরোনো ফাইলটাই আছে। ওই টার্মিনালে তো ডব্লুভিডায়াল চলছে, আর একটা টার্মিনাল খুললাম, সেখানেও রুট হলাম। ‘cat /etc/resolv.conf’ করে পাওয়া গেল:

; generated by /sbin/dhclient-script
nameserver 192.168.1.1

কারণ আমি ল্যাপটপটার ওয়ারলেস কার্ড দিয়ে নেট করি, ‘dhclient wlan0′ দিয়ে ওয়ারলেস চালু করি। সেটায় রাউটারটার আইপি ১৯২।১৬৮।১।১, সেরকমই দেওয়া resolv.conf ফাইলে। এবার রুট থেকে পুরোনো ফাইলটা ব্যাকআপ করলাম, আর নতুন ফাইল লিখলাম, ‘cat > /etc/resolv.conf’ কমান্ড দিয়ে:

; generated by user for bsnl-nic
nameserver 218.248.240.135 ‌

নেমসার্ভারের এই আইপিটাই দিয়েছিল। এবার পিংপং এবং এপিফ্যানি বেশ করা গেল। অর্থাত, নেট চালু হল। কিন্তু কলির এখনো সন্ধে, সায়মিন্দু বলেছে, নেটওয়ার্ক ম্যানেজার দিয়ে চালাতে হবে। তো চালাও। যে টার্মিনালে ডব্লুভিডায়াল চলছিল, সেটাতে কন্ট্রোল-সি মেরে ডব্লুভিডায়াল বন্ধ করলাম। এবার রুট হয়েই চালালাম, ’system-config-network’, তাতে নেটওয়ার্ক কনফিগারেশন চালু হল। সেখানে ‘New’ ক্লিক করলাম। নতুন সংযোগ কী জাতের হবে সেটা ও জানতে চাইল। ক্লিক করলাম ‘Modem’। এবার ‘Forward’ করে এগিয়ে যাওয়ায় দেখলাম, ও মোডেমের ডিভাইস ফাইলটা চাইছে। ‘wvdial.conf’ ফাইলে আগেই দেখেছি, ও ডিভাইস পাচ্ছিল ‘/dev/ttyUSB0′, আর নেটওয়ার্ক কনফিগ দেখলাম খুঁজছে ‘/dev/modem’, তাই এবার রুট হয়েই টার্মিনাল থেকে কমান্ড দিলাম:

ln -s /dev/ttyUSB0 /dev/modem

মানে, গোলাপ যে নামে ডাকো — যে নামে সিস্টেম তাকে খুঁজছে সেই নামেই তাকে ধরে দিলাম। এবার সরাসরি এগিয়ে গেলাম, নেটওয়ার্ক ম্যানেজারে নবমোডেম, কদম কদম বঢ়ায়ে যা। ইউজারনেম এবং পাসওয়ার্ড তো আছেই, আর ফোন নম্বর ‘#777′ দিয়ে দিলাম, নাম দিলাম, ‘bsnl-nic’। সেভ করলাম। এবার এই নতুন মোডেম সংযোগ ppp0 ক্লিক করে উপরে ‘Activate’ ক্লিক করলাম। নেটওয়ার্ক কনফিগারেশন দেখলাম wvdial.conf ফাইলটাকে একটু বদলে নিয়েছে, স্বাভাবিক ভাবেই। নতুন চেহারাটা হল:

[Modem0]
Modem = /dev/modem
Baud = 115200
SetVolume = 0
Dial Command = ATDT
Init1 = ATZ
Init3 = ATM0
FlowControl = CRTSCTS
[Dialer bsnl_nic]
Username = ???

Password = ???

Phone = #777
Stupid Mode = 1
Init1 = ATZ
Inherits = Modem0

এবং আরামসে নেট এসে গেল মেশিনে। কিন্তু আমার আরাম এখনো আসেনি। সায়মিন্দু বলেছে নেটওয়ার্ক-ম্যানেজার দিয়ে করতে হবে, এবং জিনোমে। কারণ সবাই ওটাতেই করে। আমি নেটওয়ার্ক-ম্যানেজারকে অত্যন্ত খারাপবাসি। আমার ওয়ারলেস সে করতেই পারে না। কিন্তু খুবই ভালোভাবে আমি এই প্রবল শীতে দুপুরে ছাদের রোদে বসে নেট করতে পারি শুধু তিনটে কমান্ড দিয়ে, iwlist, iwconfig, এবং dhclient, ম্যানেজার-ট্যানেজার দিয়ে আমি কী করব? আর আমি এক্সএফসিই করি, খুবই আড়ম্বরহীন শান্ত সাদামাঠা ডেস্কটপ, আমার বেড়ে লাগে।

কিন্তু এখন তো করতেই হবে। ইয়াম গ্রুপইন্সটল জিনোম-ডেস্কটপ করে জিনোম লাগালাম। (ও, রুণা বকাবকি করে বলে লিখে রাখা গেল, Gnome হল জিনোম,আর Xfce হল এক্সএফসিই। ) এবার লগ-আউট করলাম। switchdesk gnome কমান্ড দিয়ে জিনোম করলাম। startx কমান্ড দিয়ে ফের চালু করলাম জিনোম, এবং উপরের তক্তাটায়, মানে Top Bar-এ, ওটাকে কী একটা বলে ডাকে, আমি নাম ভুলে গেছি, সেটায় নেটওয়ার্ক-ম্যানেজারের চিত্তির মানে আইকন দেখলাম চকচক করছে। সেটায় ক্লিক করে দেখলাম আরামসে পেয়ে গেছে ppp0, তার মানে, নেটওয়ার্ক ম্যানেজার দিয়েও ডেটা কার্ড পাওয়া গেল।

এবং অত্যন্ত বেদনাদায়ক হলেও এটা সত্যি যে এই মুহূর্তে আমি জিনোমে বসে ফায়ারফক্স দিয়ে এই লেখাটা লিখছি, ডেটা কার্ডের সংযোগে, এক্সএফসিই থেকে এপিফ্যানি দিয়ে নয়।

Filed under: গ্নু-লিনাক্স — dd @ 8:44 pm

December 31, 2007

২০০৭ শেষ, ফেডোরা ৮, সিপিএম, এবং আমাদের পিতৃশ্রাদ্ধ

গত কয়েকদিন ধরে মধ্যমগ্রামে এক নৃত্য-উৎসব চলছিল। মানে, টিভিতে যেমন হয়, কোনও ফিল্মি গানের সঙ্গে নাচ, তার প্রতিযোগিতা। সংগঠক দেবীগড় সাংস্কৃতিক চক্র, মানে, সিপিএমের গনফ্রন্ট যেমন ডিওয়াইএফআই, তার আবার গনতরফ্রন্ট ওই চক্র। তার জন্যে মধ্যমগ্রামের গলির পর গলির গোটা রাস্তা জুড়ে ছড়ানো এবং জড়ানো হয়েছিল আলোকমালা, প্রায় দেড় কিলোমিটার ব্যাস জুড়ে সমস্ত খুঁটি ভূষিত হয়েছিল মাইকের চোঙায়।

আমার বাড়ি সেই ব্যাসেরও বাইরে, কতটা বাইরে তার একটা তুলনা দেওয়া যাক। এই মাইকায়িত এলাকার শেষ চোঙদার খুঁটি ছিল মধ্যমগ্রাম কালীবাড়ির গায়ে, যেখান থেকে আমার বাড়ি আসতে হলে প্রথমে দুমিনিট মত, এবং তার পর লম্ব ভাবে বেঁকে আবার এক মিনিট মত আসতে হয়, মানে, বহুভুজ বরাবর সোয়া দুই মিনিট মত হাঁটা হবে। এর পরেও, আমার বাড়ির সমস্ত জানলা এবং দরজা বন্ধ থাকার পরেও, আমার বাড়ির কমপক্ষে দুটি দরজা বা একটি জানলা (কাঁচের এবং বন্ধ) ভেদ করে সেই ‘মুংলা, মুংলা’ ইত্যাদি গানের ঝটকা আমার কম্পিউটার টেবিলের সামনে বসে থাকা আমার মাথায় আঘাত করছিল। ড্রামের বিটগুলো এসে লাগছিল যেন পেটে। আমি আমার একাধিক বন্ধুকে টেলিফোন চলাকালীন কথা বন্ধ করে ওই আওয়াজ শোনাই এবং তারা শুনতেও পায়।

এদিকে গতকাল আমার একটা কাজও ছিল, এলএফওয়াই-এর সঙ্গে যে ডিভিডিটা দিয়েছে, ফেডোরা ৮-এর, সেটা পত্রিকার সঙ্গে দেওয়া সিডি বলে আমার খুব একটা ভরসা হয়নি। এদিকে নিজের মেশিনে ফেডোরা ৭ দিব্য চলছে, কিন্তু অন্যদের জন্যে, সেটা বিট টরেন্টে নামাতে বসিয়েছি পরশু থেকে। অ্যাজেরিউসের পোর্ট খোলা নিয়ে বড্ড ঝামেলা হয়, তাই একটা নতুন ক্লায়েন্ট ডেলিউজ দিয়ে। বেশ কাজ করছে সেটা, নিজেই খুঁজে নেয় কোন পোর্টে কাজ করতে হবে। আবার কাল খুলে যাবে কলেজ, তার আগে হয়ে গেলেই ভাল। একে আমাদের এদিকে এই অক্লান্ত লোডশেডিং, এবং তার উপর আমার মেশিনও প্রায় আট বছরের বুড়ো অ্যাথলন ১৮০০, তার একটা হার্ডডিস্কও তাই। তাই নজরদারিটা রাখতেই হয়। গত কাল রাতেও তাই, শোয়ার আগে, বারোটা অব্দি মেশিনের সামনেই বসেছিলাম। দু-একটা মেলের উত্তর দিলাম, ইত্যাদি করছিলাম।

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

অন্য ঘরে মেয়ে রু আর তার মা ঘুমোচ্ছে, আওয়াজ আটকাতে জানলার পাল্লার সামনে মোটা বেডকভার ঝোলানো। আমি দেখছি, ডেলিউজে বিন্দু বিন্দু করে বাড়ছে ফেডোরা ৮ এর ডিভিডির ইমেজ, রেস্কিউ সিডির ইমেজ, এবং তাদের এসএইচওয়ান সাম। আওয়াজগুলো কানে শরীরে বাড়ি মেরে চলেছে। হঠাৎ একবার মনে হল, এই সব ফ্রি সফটওয়্যার, জিএলটি, লিনাক্স এইসব, বা যে কোনও কাজই, কোনও কাজ, করার মানে কী? এই সিপিএমই তো ইতিহাস। আর তো কিছু নেই, কোথাও নেই। মনে হল মেশিনে একটা লাথি মারি।

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

দম আটকে আসছিল, গা গোলাচ্ছিল, ও ঘরে গিয়ে একবার ঘুমন্ত মেয়ের পাশে বসে ওর মুখের দিকে তাকিয়ে বসে রইলাম। তাতেও কিছু হল না। কী হবে কোনও কিছু করে? সব কিছুই তো সিপিএম।

… সেই প্রেতনৃত্য চলল ভোর পাঁচটা অব্দি …

আমি শেষ অব্দি ফেডোরা ৮ এর ডাউনলোড থামিয়ে দিইনি। মেশিনে লাথিও মারিনি, ছি মারতে পারি, আমার কতদিনের সঙ্গী, কত লেখা লিখেছি, আর ওর নামও মামদো, মহম্মদকে যা বলে ডাকতাম, সোহাগের সময়। ফেডোরা ৮ ডাউনলোড চলছে, এখন একটু পজ করে নিয়েছি ডেলিউজ, এই ব্লগটা লিখছি বলে। … রক্তক্লেদ বসা থেকে রৌদ্রে ফের উড়ে যায় মাছি / সোনালি রোদের ঢেউয়ে উড়ন্ত কীটের খেলা কত দেখিয়াছি …

December 27, 2007

মেয়ের মুণ্ড, বাংলা ওয়েবপেজ, এবং ফ্লস

কাল আমার এক আত্মীয় এসেছিল, তার মেয়েকে নিয়ে। রু-এর চেয়ে দুই দিনের বড়। অথচ মাথা ভর্তি ফুলোফুলো চুল। যেখানে রু এর মাথায় এই পাঁচ মাস ন-দিন বয়সেও কিছু ধূসর আঁচড়ের মত চুলের অ্যাপলজি। আমি গুণে দেখিনি। কিন্তু চাইলে গোনাই যায়। মা বলল, ও তো হবেই, তোরও চুল উঠেছিল দেরিতে, তোর তো সবকিছুই দেরিতে, তোর মেয়েরও তাই হবে।

ঠিক তাই। আমার সবকিছুই খুব দেরিতে। হয়ত, বড্ড দেরিতে। আমার গ্নু-লিনাক্সের বইটার একদম গোড়াতেই লিখেছিলাম, লিনাক্স ব্যবহার করতে, শিখতে শুরু করে মনে হয়েছিল, এত দেরিতে এটা পেলাম কেন, কম বয়সে পেলে তো আরও কত শিখতে পারতাম। তখন তো কাজ, কাজের ঝঞ্ঝাটও কত কম ছিল। বেশি ছিল উদ্যম, মানে উত্তেজিত হওয়ার দম।

কাল আর আজ এই দুদিন বসে আমার বেশ কিছু লেখার ওয়েবপেজ বানালাম। অনেকগুলো গল্পের ওয়েবপেজ এবং তার সূচী। লেখাগুলো আগেই ছিল আমার সাইটে। পিডিএফে। এর কিছু লেখা এত পুরোনো যে সেগুলো পিডিএফ ছাড়া আর কিছুই নেই। সেখান থেকে ইউনিকোড করাও যাবে না। নিজে নিজেই ওয়েবপেজ বানিয়ে বড় আমোদ পেলাম। কিছুই না, একদমই ভ্যানিলা ওয়েবপেজ। কিন্তু নিজে নিজেই করে ফেলার একটা মজা আছে। আরও যেটা আমার কাজের জায়গা নয়।

যা বলছিলাম, এই লেখালেখিও শুরু হয়েছিল আমার বড় দেরিতে। এমএসসির-ও পরে এসে। মোটামুটি যে বয়সে বাঙালি ছেলেপিলে লেখালেখি ছেড়ে দিয়ে কাজে মন দেয়। হয়তো কোনও দিন লিখতামও না। কিন্তু সেইসময় রাজনীতি ছেড়ে বসে যাওয়ার বেদনাটা এমন ঘিরে ধরেছিল, সেটার হাত থেকে বাঁচার বাসনাতেই বোধহয় লিখতে শুরু করেছিলাম। আমার প্রথম গল্প ছাপা হয়ে বেরিয়েছিল ‘বারোমাস’ পত্রিকায়। এপ্রিল ‘৮৮তে, একটি লড়াইয়ের ব্যবচ্ছেদ। নিজেরই আজ দেখে কেমন অদ্ভুত লাগছিল। বেশ অনেক জায়গা অনেকটা কাঁচা গদ্যও লাগছিল। ওরকম অবশ্য লাগেই, পুরোনো লেখা।

ওয়েবপেজগুলো বানালাম গেডিট-এ। ও, রুণা বকেছিল, ইংরিজি নাম না-দেওয়ায়, গেডিট মানে gedit, গুহনোমের টেক্সট এডিটর। যদিও আমি এক্স-উইনডোজ ব্যবহার করি এক্সএফসিই (Xfce)। বানাচ্ছিলাম আর দেখে নিচ্ছিলাম ফায়ারফক্স (Firefox) আর এপিফ্যানি (Epiphany) আর কংকোরার (Konqueror) চালিয়ে। ঠিকঠাক দেখাচ্ছে কিনা। বেশ মজা পাচ্ছিলাম এই ভেবে যে, লেখাটার সমাপ্ত অবয়বটাও হচ্ছে আমার হাতেই। এই করে ফেলা আর শিখে ফেলার মজাটা ওই বুড়ো বয়সে এসে আমাকে দিয়েছিল ফ্লস। যা যা দিয়ে আমি কাজ করলাম সেই গোটাটাই তৈরি একটা কমিউনিটির, সম্প্রদায়ের। আমি সেই জ্যান্ত সম্প্রদায়ের একটা জ্যান্ত অংশ। এটা যখনই ভাবি একটা আবেগ তৈরি হয়। আর একবার ধন্যবাদ ফ্লসকে, তাই কায়দা করে, নিজেকেও।

December 24, 2007

কম্পিউটার, বাংলা, ওসিআর

আজ সকালে, আমাদের বাড়ির সামনে ফ্ল্যাটবাড়ির দরজা দিয়ে বেরিয়ে একটি কুচো বালিকা গপ্পোগাছারত তার মা-কে প্রশ্ন করে, “মা, শাঁখ বানানে চন্দ্রবিন্দু আছে?” আমি চন্দ্রবিন্দুটা এখানে আপনাদের বোঝার স্বার্থে দিইনি। সত্যিই সে চন্দ্রবিন্দুটা উচ্চারণ করেছিল। এতে তার মা, যিনি, সকলের জ্ঞাতার্থে জানাই, বাঙালি এবং গ্রাজুয়েট, এবং কোনদিনই নন-রেসিডেন্ট-বাঙালি নন, উত্তর দেন, “আমি তো ঠিক মনে করতে পারছি না, তুই বই থেকে দেখ না”, এবং আবার তার ক্রিয়ায় রত হন।

আমার কলেজের এক বাংলা মাস্টারমশাই, তিনি ডঃ-ও বটেন, গত পুজোর ছুটির পড়ার দিনে, ভোজ উপলক্ষে (কেন ভোজ? — এই প্রশ্ন করবেন না, কলেজের মাস্টারমশাইদের লেখাপড়ার দায়িত্ব থেকে মুক্তিপ্রাপ্তির সঙ্গে সঙ্গে এক গুরুদায়িত্ব অর্পিত হয়েছে — মাস্টারমশাইরা কী করে? কেন, খায়। শুধু খায় তারা। হয়ত এই দায়িত্ব আমাদের কলেজে বিকশিততর, উত্তর কলকাতার খাবারের প্রাচুর্য ও সুলভতার কারণে। ঠিক যখন শোভাবাজার মেট্রো ইস্টিশনের ধারে রাস্তার রেলিঙের গায়ে এই ডিসেম্বরের শীতে পড়ে থাকে অভুক্ত ভিখিরির বাচ্চা, বস্তুটা মরে গেছে না বেঁচে আছে, সেটাও ভালো বোঝা যায় না।) টিচার্স রুমের বোর্ডে নোটিশ লেখেন, “দূর্গাপূজার ভোজ”। আপনারা যারা পড়লেন, আপনাদেরও অনেকেই, স্বীকার করুন আর নাই-করুন, বুঝতে পারেননি, কেলোটা কোথায়। আমি যখন তাকে বললাম, ওটা বোধহয় “দুর্গা” হবে, তিনি আমাকে একটু এলিট উচাটন নিয়ে প্রতিপ্রশ্ন করলেন, “তুমি কি শিওর দীপঙ্করদা?”

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

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

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

যাই হোক, অন্য প্রসঙ্গে চলে যাচ্ছি, একটা ওসিআর যদি থাকত, বাংলার এই গোটা অবিশ্বাস্য ভাণ্ডারটা তুলে দেওয়া যেত। এবং, খেয়াল করুন, কাফকার গ্রেট ওয়াল অফ চায়নার সেই রূপকল্পের মত, একটু একটু করে –পিসমিল কন্সট্রাকশন– আজ একটু, কাল আর একটু, পরশু আরও একটু। এবং, কম্পিউটারের কারণে, সেটা তোলা মাত্রই চলে আসত পাঠের আওতায়, ছাপার ঝক্কি এবং খরচ এবং ব্যয় শূন্য। এবং, এর চেয়েও বড় কথা, চাওয়া মাত্র সংশোধনযোগ্যতা। এবং সংশোধনমাত্রই ফের সেটা পাঠের আওতায়।

অথচ? অথচ নেই। কোনও ওসিআর নেই বাংলার। চৈনিক ভাষা, ইংরিজি, হিন্দি এবং তামিলের পরেই এই পৃথিবীতে সবচেয়ে বেশি মানুষ যা বলে, বোধহয়। দুটো দেশ জুড়ে ছড়ানো। একটা দেশে সেটা জাতীয় ভাষা।

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

আচ্ছা, হাইকোর্ট বা সুপ্রিমকোর্ট ছাড়া কেউ তো আজকাল জল উঁচু না নিচু সেটুকুও বলে না। আমরা একটা মামলা করতে পারি না? যে হারামজাদারা এই টাকাগুলো মারল, তারা হয় বাংলা ওসিআর দিক, নয়তো, টাকা ফেরত দিক — এই বলে?

Next Page »

Powered by WordPress