സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് പ്ലാനറ്റ്

October 16, 2012

Adding text search in Calligra active presentation slides

Core Dump

Last sunday I added the feature for text search in calligra active presentation slides. So now the user can search for the next occurrence(s) of the text and the previous occurrence(s) of the search. Below given is a small screen shot of what I had implemented.

I searched for the text “hack” and here is what it shows in the current slide. User can navigate the search throughout the slides. While searching for previous occurrence of text, in a new slide it starts search from bottom of the page. When you try this feature in the tablet, please let me know if there are any issues which I might have forgot to address. I have also updated the calligra wiki accordingly.

by sujith at October 16, 2012 05:40 AM

October 09, 2012

Report on ExpEyes workshop at NIT Warangal

Pramode C.E - The GnuVision Blog

Report on ExpEyes workshop at NIT Warangal

9 October, 2012

NIT Warangal had conducted a FOSSMEET as part of their technical festival, Technozion.

I was invited to conduct a workshop on ExpEyes. The workshop took place on 30th september - it was attended by students from NIT Warangal and also some other nearby engineering colleges.

The first part of the workshop was a hands-on introduction to Python following which I introduced the participants to ExpEyes and did some simple demos. I also talked to them briefly about the experiment design contest.

October 09, 2012 12:00 AM

October 08, 2012

Collecting people, some thoughts and ideas

Praveen Arimbrathodiyil blogs here

I would like to share some ideas and thoughts about collecting people for social change based on my recent experiences in setting up a computing center in Pandav Nagar Pune. You can see details of each step here.

  1. Don’t restrict yourself to what you currently can. Aim bigger and then you’d see it natural to ask people for help because you can’t do it alone.
  2. Have a minimal backup plan which you can do if you don’t get much help. Things you cannot do should not stop you from doing things you can.
  3. These two may look conflicting ideas at first but they are not. You might already know about the high jump analogy people say – set your bars higher. Sometimes you won’t be able to cross it if its too high, but unless you don’t set it high, you’ll never reach new heights.

  4. Don’t be afraid of the challenges. There will be many, but if you don’t even try, you’ll never overcome those.
  5. When your actions affect others, be open to them. If you’re genuine they would understand.
  6. In this particular initiative there was always a risk that I won’t be able to find enough people to help me. So my backup plan was, I would teach alone if I don’t find people. I actually reached that stage once when no one was ready to commit after many talks. But I was pleasently surpriced and overjoyed when I saw a surge of interest from the Free Software community it Pune. It was really heart warming when you had a new person telling me they are interested every day for almost 2 weeks! We have about 14 people in the team and last Saturday 7 of us went to Hutatma Rajaguru school for our first class and installation session.

  7. You have to ask for help. If you don’t ask people won’t know they can help. Many of the times if you can ask for a specific help, it more likely that it would be done. Make it easier for people to understand and break down the big tasks.
  8. So when I was talking about a computing center people have many things in their minds and they may not understand what it is. But when I broke it down to “GNU/Linux installation in a school”, many people felt they could do it and said they want to help.

I will keep updating this blog as I learn more or get more ideas. Share your thoughts in comments. I would like to hear what you think and your experiences doing similar activities.

by Praveen A at October 08, 2012 02:29 AM

October 06, 2012

Added preview for text documents in calligra active

Core Dump

The idea started of when Shantanu implemented the preview for presentation slides in active. I had never worked or created a model in C++( to be honest in my life :P ). But for this task, I had to write a model for the text document. Because this is expected by our QML. Hence wrote a code to override the QAbstractListModel’s rowCount and the data methods. The rowCount returned pageCount ( from the KWPageManager). And for the data method, I re-used the thumbnail method from the KWPage.  Registering the QML created for the center overlay was required. Once these changes were done, in the CATextDocumentHandler I tried to return the shapemanager and the document to the model. This was the key to access the KWPage and KWPageManager. And then after some qml beautification’s, the feature is ready. Sounds simple? Yes it is simple. But it wasn’t when I started of. The only thing that motivated me was to learn something new. And I got it :)  Here is the screenshot of what I had implemented:

I give a big thank you to Shantanu for sharing the idea and giving me a big helping hand. Thanks a lot. Feel free to post the suggestion for the work. Oh by the way this was the longest patch I had ever pushed to KDE :)

by sujith at October 06, 2012 07:50 PM

October 04, 2012

shijualex

abundance of the heart

Last week I shared news  about the few workshops (Ludhiana, Patiala, and Amritsar) that happened recently for Punjabi wikipedia in the Punjab state of India which helped in creating  more awareness about Punjabi Wikipedia among Punjabi speakers and also helped in making the Punjabi Wikipedia active. But Punjabi wikipedia didn’t became active just because of these 3 workshops. There are lot of activities happened in the background executed by multiple wikipedians which led to this revival. In this blog post I am sharing my experience with building community for Punjabi Wikipedia.

Along with Oriya and Assamese, Punjabi was another language which attracted my interest long back. One of the main reason for that is the fact that there were no active users in all these three languages even though all these languages are spoken my several lakh of people.  Even the 2010 report shows that all these languages were having very less (or no) active users.

My several attempts to contact the then active user Gman124 (even now Gman is the Punjabi editor with maximum number of edits with close to 5000 edits) didn’t worked mainly because Gman124 didn’t respond to emails. With out support from at least one native editor it is impossible to build community for any Indic language wikipedia. And I do not believe in building the community without the involvement of respective language speakers who are interested in that particular language wikipedia. Even though I was trying to contact each and every person  who were trying to edit Punjabi Wikipedia (including Guglani who lead the current outreach workshops now) not much happened till 2011 November when the Wikiconfernce India happened.

As part of Wikiconfernce India 2011 we had a Hackathon also. One of the major task for Hackathon was to add support for more Indic languages in Narayam. Amir Aharoni (who has passion to study various language scripts and language and who is now Localization Engineer at WMF) took much interest to provide support for languages like Punjabi which was not supported in Narayam. Surinder Wadhwan who’s mother language is Punjabi also attended the hackathon and Amir’s call for Punjabi script support in Narayam reached Surinder. With Surinder’s active support Amir was able to add Transliteration tool to Narayam. That interaction bought Surinder close to Punjabi Wikipedia. Surinder again attended Pune hackathon and helped again to enhance the typing tool and slowly started contributing to Punjabi wikipedia also.

Note: There are few other wikimedians who contributed to the typing tool integration to Punjabi Wikipedia and in building Punjabi Wikipedia community. For example, User:SPQRobin also contributed to Punjabi Narayam as mentioned in the second comment of this blog post. In this blog post (as the title of this blog post shows) I am mentioning only those users whom I interacted with building the Punjabi Wikipedia community .

During June 2012 another user User:Dulaysinghb started editing Punjabi Wikipedia. Even though Dulaysingh did only very few edits he was responding to emails that I sent regarding building Punjabi Wikipedia. We almost decided to do a workshop in Jalander where he stays. But since Dulaysingh is a student and since he was joining for a new course and since his access to internet was very limited it didn’t worked out. Still I would like to specially mention User:Dulaysinghb due to his sincere efforts to give some hope of building the community.

While communication with Dulaysingh I also wrote to Surinder  since I know he was one of the very few members who was  helping Amir to enhance the Punjabi typing tool. User:Guglani also contributed much to typing tool enhancement.  Even though Surinder was based in Mumbai and he was very busy in his professinal and personal life he replied back saying he can come over to Punjab to help conducting Punjabi Wikipedia introduction workshops. That decision by Surinder opened a new door for Punjabi Wikipedia.

As mentioned in the blog post, Surinder decision to come forward inspired veteran Punjabi wikipedian Guglani also to join the first Ludiana worksshop. http://shijualex.wordpress.com/2012/10/02/the-first-punjabi-wikipedia-workshop/ gives more details about the first Punjabi Wikipedia workshop.

The following two blog sposts give more details about the subsequent workshops happened at Pataiala and Amritsar.

There are many people who helped in this effort of reviving the Punjabi Wikipedia. Apart from Amir, Surinder, and Guglani who did some core work behind this, we have Noopur who did all communication and speaking with the institutions both in Ludhiana and Patiala which helped us to get venue for workshops.

I want to conclude this blog post with one note. Unless some existing users come forward to represent their wiki it is difficult to build community for any Indic language wikipedia. The examples from Oriya, Assamese, and now Punjabi are showing this again and again.

The 2011 December statiustics shows that Punjabi wikipedia was having jsut one active user.  Now due to the community building activities we have around 7-8 active users.

The first edit in Punjabi Wikipedia happened in 2002 June and along with Assamese it is one of the first Indic language wikipedia.  This means that Punjabi Wikipedia completed 10 years of its existence in  June 2012. But in June 2012 there was no community to celebrate it. Now slowly community is building up and we have around 7-8 active users. If the current active members show interest to build the community further I am sure we will have a different story for Punjabi Wikipedia for future.

Let us congratulate all wikipedians who helped in making the Punjabi Wikipedia active. They need a big applause.


by Shiju Alex at October 04, 2012 07:26 AM

HBase Administration Cookbook by Yifeng Jiang : Review

Jaggu's world

 Packt publishers has announced a new book HBase Administration Cookbook by Yifeng Jiang. I think this is the first Big-Data book from Packt. The name suggest that the book HBase Administration Cookbook by Yifeng Jiang is essentially for people who is playing with HBase and would like to deep dive into HBase administration essentials. The book discusses various essential topics in HBase administration starting from installation to performance tuning. The book targets big-data administration professionals primarily. The author discusses the art and science of HBase administration in nine systematically arranged chapters. The initial chapter deals with installation of Habse in Amazone EC2 instance and discusses various setting . The chapter ends with High Availability master settings. The second chapter deals with migrating data to Habse. There is a detailed discussion on how to migrate MySQL data to HBase. This may be interesting for people who plans to migrate existing data to HBase. The third chapter mainly deals with HBase administration tools and over view of the tools. Data backup and restoration is one of the key concept when we discuss about data management. Fourth chapter of this book deals with data backup, restoration and replication in HBase. The fifth chapter deals with HBase cluster monitoring and diagnosis. The chapter comes with beautiful scripts for reporting cluster status. Security aspects of Habse is being discussed in chapter six. Security essentials for HBase and Hadoop with Kerberos is also discussed with detailed examples. Necessary troubleshooting aspects for HBase administration is discussed in chapter seven. Performance tuning and advanced configuration etc are discussed in chapter eight and nine.


The author has presented each topics in the book in lucid and digestive manner. Necessary examples and explanations were provided throughout the book; which helps the reader to gain a hands on experience in HBase administration. Even though some books are available on general aspects of Habse this is the first book which deals with HBase administration in detail. This book will be helpful for budding HBase and big-data administrators. Even though the book discusses the cluster setup and installation based on Amazone EC2 smart administrators can manage the same in their non Amazone clusters.

by jaganadhg at October 04, 2012 04:17 AM

October 02, 2012

പേര്

Solid Smoke

ഒരു പേരിലെന്തിരിക്കുന്നു എന്ന് പലരും ചോദിക്കറുണ്ടല്ലോ.. പക്ഷേ ചില കുട്ടികളുടെ പേരുകള്‍ കേട്ടാല്‍ ഇത്രയും വേണമായിരുന്നോ എന്ന് തോന്നിപ്പോകും. ഈയടുത്ത് ഒരാള്‍ 'മൃത്യു' എന്ന് പേരുള്ള ഒരു കുട്ടിയെ പരിചയപ്പെട്ടു എന്ന് പറഞ്ഞുകേട്ടു.
ഏതാണ്ട് ഒരു കൊല്ലം മുമ്പ് ഞാനും ഭാര്യയും ഞങ്ങള്‍ക്ക് ജനിക്കാനിരിക്കുന്ന കുഞ്ഞിന്റെ പേര് തപ്പിനടക്കുകയായിരുന്നു. സ്കാനിങ്ങ് ചെയ്തപ്പോഴൊന്നും കുട്ടി ആണാണോ പെണ്ണാണോ എന്നൊന്നും ഞങ്ങള്‍ അന്വേഷിച്ചില്ല. പക്ഷേ യാതൊരു അടിസ്ഥാനവുമില്ലാത്ത ഏതോ തോന്നല്‍ കാരണം കുട്ടി പെണ്ണ് തന്നെ എന്ന് ഞങ്ങള്‍ ഉറപ്പിച്ചു.
എന്റെ പേരന്വേഷണത്തിലുള്ള ചൂടില്ലായ്മയെ പഴിച്ച് പ്രിയതമ കൊണ്ടുപിടിച്ച അന്വേഷണം തുടങ്ങി. അദ്ദേഹത്തിന് ഒരുപാട് നിബന്ധനകള്‍ ഉണ്ടായിരുന്നു. ആരും കേട്ടിട്ടുള്ള പേരായിരിക്കരുത്, S, U, Vമുതലായ അക്ഷരമാലയില്‍ അവസാനത്തില്‍ വരുന്ന അക്ഷരങ്ങളില്‍ തുടങ്ങരുത് മുതലായ കഠിനമായ നിബന്ധനകള്‍. അങ്ങനെ ഇടയ്ക്കിടയ്ക്ക് ഇദ്ദേഹം ഓരോ പേരുകള്‍ കണ്ടുപിടിച്ച് കൊണ്ടുവരും. ഒട്ടുമിക്ക പേരുകളും ഞാന്‍ വീറ്റോ ചെയ്തുകളയും. ഇത് വായിക്കുമ്പോള്‍ നിങ്ങള്‍ക്ക് ഒരു പക്ഷേ ഞാന്‍ ചെയ്തത് ശരിയായില്ല എന്ന് തോന്നുന്നുവെങ്കില്‍ എന്റെ ഭാര്യ കണ്ടുപിടിച്ച പേരുകള്‍ ഒന്ന് വായിച്ചു നോക്കൂ:

  1. മാനസ
  2. ചിന്മയി
  3. ഹൈമവതി
  4. സവ്യദക്ഷിണ
  5. മൈത്രേയി
  6. വൈശാഖ
  7. ചാരുത
  8. സ്മരണിക
  9. ഹാസിനി
  10. പാവനി
  11. വിപ്രപ്രിയ
  12. ശുഭകാംഷി
  13. ദിവംഗത
എങ്ങനെയുണ്ട്? ഈ വക പേരെങ്ങാനും ഇട്ടിരുന്നെങ്കില്‍ കുട്ടി വലുതാകുമ്പോള്‍ എന്നെ കുനിച്ച് നിര്‍ത്തി ഇടിച്ചേനെ!

ശുഭകാംഷി പോലും.. കേള്‍ക്കുമ്പോള്‍ സിനിമകളിലെ സീനുകള്‍ ഓര്‍മ്മ വരുന്നു:
ഹലോ പോലീസ് സ്റ്റേഷന്‍? ഇന്നത്തെ മദ്രാസ് മെയിലില്‍ ബോംബ് വച്ചിട്ടുണ്ട്
ഹേ? നിങ്ങളാരാ?
ഒരു അഭ്യുദയകാംഷി!
ഇതില്‍ അവസാനം പറഞ്ഞ പേര് - ദിവംഗത കേട്ടപ്പോള്‍ ഞാന്‍ ഉരുണ്ട് കിടന്ന് ചിരിച്ചു. എന്തോ പന്തികേട് തോന്നിയ ഭാര്യ ഉടനേ: "ഞാന്‍ ഉദ്ദേശിച്ചത് ദിവ്യംഗത എന്നാ.. അതായത്  ദിവ്യങ്ങളായ അംഗങ്ങളുള്ളവള്‍ എന്ന്". ചിരിച്ച് ചിരിച്ച് കണ്ണ് മപ്പിയ അവസ്ഥയിലായിരുന്നതിനാല്‍ ഞാന്‍ പ്രതികരിച്ചില്ല.

ഇനി എങ്ങാനും ആണ്‍കുട്ടിയായാലോ എന്ന് വിചാരിച്ച് ഒരു പേരും കൂടി മഹതി കണ്ടുപിടിച്ചു: ദേവവ്രതന്‍. കേട്ടപ്പോള്‍ ഞാന്‍ കല്ലെടുത്തെറിഞ്ഞില്ലെന്നേ ഉള്ളൂ..

ഒടുവില്‍ ആ സുദിനം വന്നെത്തി. സുന്ദരനായ ഒരു ആണ്‍ കുഞ്ഞ്! മലപ്പുറം കത്തിയും അമ്പും വില്ലുമെല്ലാം വെറുതെയായി! "ബേബി ഓഫ്..." വച്ച് അഡ്ജസ്റ്റ് ചെയ്തു!

വാല്‍: ഭാര്യ ഇത് വായിക്കുന്ന ദിവസം തല്ല് ഉറപ്പാ..

by Syam Krishnan (noreply@blogger.com) at October 02, 2012 05:15 PM

http://upload.wikimedia.org/wikipedia/commons/2/21/Punjabi_Wikipedia_Workshop-17Aug2012-10.JPG

abundance of the heart

After Ludhiana and Patiala we came to Amritsar, which we all know is home to the Golden Temple and the spiritual centre of Sikh religion, to introduce Punjabi Wikipedia.  The workshop was held at the Spring Dale Senior School, Amritsar on August 17, 2012.

When we decided to conduct a Punjabi Wikipedia introduction workshop at Amritsar, the location was an issue. We tried to contact many institutes (mostly colleges) over phone. We couldn’t get the permission. Finally, Punjabi Wikipedian G.S. Guglani directly approached the Spring Dale senior school management with the request for a space to do the Punjabi Wikipedia introduction workshop. Spring Dale is a famous English medium school in Amritsar. The school principal, Rajiv Sharma not only agreed to host the workshop but also made arrangements to bring selected students and teachers from eight other schools in Amritsar to join the workshop. Actually this was a bonus for us since we asked just a meeting place to host our workshop but not only we got the meeting place, we got assured participation from eight other schools and the permission to use the computer lab to conduct the hands-on wiki editing session.

Nearly 50 participants including students and teachers from eight different schools apart from the students and teachers of Spring Dale School attended the workshop. One of the active and long-time Punjabi Wikipedian Guglani Gurdip Singh lead the workshop with the active support from Shiju and Subhasish.

 

The event started with a formal opening talk in Punjabi by a student of Spring Dale. The Principal of the Spring Dale Senior School Rajiv Sharma introduced the guests to the audience and briefed the participants about the workshop. Guglani took the participants through a brief presentation (http://bit.ly/Rnki2r) and explained the history and current status of Punjabi Wikipedia.

Few participants were invited to create  user account in Punjabi Wikipedia. Guglani demonstrated Punjabi typing and basic wiki editing. There was a question-answer session where participants asked about typing, editing, referencing and many other contribution related questions.

 

http://upload.wikimedia.org/wikipedia/commons/2/21/Punjabi_Wikipedia_Workshop-17Aug2012-10.JPG

Participants asking questions in the Question-Answer session

After a short break and students and teachers gathered in the computer lab. Booklets containing Punjabi typing scheme were distributed among the participants. Guglani, Shiju, and Subha supported them with editing various articles in Punjabi. As none of the students was exposed to Punjabi typing before they took much interest to type Punjabi. We were able to see the surprise in the eyes of the students and teachers when Narayam converted the typed  words to Gurumukhi Punjabi. However, all the present typing tools integrated to Punjabi Wikipedia have some issues. After getting inputs from users I logged some bugs to enhance it. Bug 1 (Phonetic keymap update), Bug 2 (My Best Keyboard update). Hope WMF developers will look into it.

At the end of the session email addresses were exchanged for future communication. New wikipedians were given pointers to stay in touch and ask questions when they face problems with editing.

This workshop involving school childern was really a very good experince for us. I would like to thank the Spring Dale Senior School management for the warm hospitality that they extended to us. We are touched. I could see the possibility of doing programs there.

After conducting three workshops for Punjabi (two workshops (Luhiana and Patiala) involving college students and one workshop (Amritsar) involving school children), I am sure there is bright future ahead for the Punjabi Wikipedia if community can come forward to build the community further. From the statistical report of last year we can see that it was only Guglani editing Punjabi Wikipedia. Now Guglaniji and Surinder came forward to build it and we have around 6-7 active users now. For a language with almost 3 crore speakers 7 active users is not an encouraging number. So we need to have more programs to build it further. Hope community will be able to come forward for that.

More pictures of this workshop is available at: http://commons.wikimedia.org/wiki/Category:Punjabi_Wikipedia_Workshop-17Aug2012

 


by Shiju Alex at October 02, 2012 03:18 PM

Few Participants from the Patiala Workshop

abundance of the heart

Patiala is the home to the famous Punjabi University. A Wikipedia workshop was organized at the Punjabi University’s Punjabi Department on August 16, 2012.

When the veteran Punjabi wikipedian G.S. Guglani agreed to come forward to spread the message of Punjabi wikipedia among Punjabi speakers it opened a way to revive and build the Punjabi Wikipedia community. Once Guglani’s support was confirmed we looked for suitable places to conduct the introduction workshop for Punjabi Wikipedia. Guglani himself suggested Patiala, Ludhiana, and Amritsar as the probable places to conduct the Punjabi Wikipedia introduction workshops. Prof. Rajinder Brar, Head of the Punjabi Department agreed to provide full support to conduct a workshop at Patiala.

Few Participants from the Patiala Workshop

About 30 participants including students and teachers attended the workshop. Guglani played a pivotal role in organizing the workshop. Shiju Alex gave ample support. The workshop began with a welcome message by  Prof. Rajinder. Guglani then took the participants through a brief presentation (http://bit.ly/Rnki2r) and explained the history and current status of Punjabi Wikipedia. To our surprise two of the participants, Satdeep Gill and Paramjeet Singh were already aware about the Punjabi Wikipedia and they had created their accounts sometime back even though they didn’t do much editing. The presence of Satdeep and Paramjeet and their previous experience with Punjabi helped us during the course of the workshop. Guglani taught one of the participants to create a user account and do the wiki editing. He showed them Punjabi typing and basic wiki editing.

This was followed by a question-answer session where the participants asked about typing, editing, referencing and many other contribution related questions. The workshop ended with a small photo session.

We are happy to share that Satdeep has become quite active after this workshop and as of now is one of the very  active users in Punjabi Wikipedia. We are sure his presence will attract more Punjabi people from Patiala to Punjabi Wikipedia.

More pictures of this workshop is available at: http://commons.wikimedia.org/wiki/Category:Punjabi_Wikipedia_Workshop-16Aug2012


by Shiju Alex at October 02, 2012 03:04 PM

File:1st Punjabi Wikipedia Workshop-9.jpg

abundance of the heart

For those who might not be aware, Punjabi Wikipedia is one of the first Indic Wikipedias where community started editing way back in 2002. However, after the initial few edits all activities got stopped and it was inactive over the last decade. Recently we conducted a few workshops that led to the revival of Punjabi Wikipedia. This post is about the first Punjabi Wikipedia workshop held in Ludhiana, Punjab on July 28, 2012.

Surinder Wadhawan, a Mumbai based Wikipedian played an important role in designing this workshop and introducing Punjabi Wikipedia to the Punjabi speakers. The interest and enthusiam showed by Surinder encouraged long-time Punjabi wikipedian G.S.Guglani to join this workshop.

About 25 participants came over for this workshop. The College of Computer and Information Technology (CCIT) supported in hosting this event.

Sarabjit Singh, CEO of the organization introduced the invited guests and explained briefly about the session. Surinder thereafter made a presentation explaining the basics of Wikipedia editing. Guglani, one of the old and active editors of Punjabi Wikipedia talked about the Punjabi Wikipedia and its present situation. He then invited one of the participants and helped her creating her user account and edit an article. Janmeja Singh, a Punjabi language researcher spoke about unicode standards and the importance of Wikipedia for Punjabi language. Gurjeet Singh, another new wikipedian demonstrated Punjabi typing using commonly used keyboards with Roman characters for those who were not aware of typing in Punjabi.

We then started the editing session. Out of them 15 new editors (of which 13 were female) edited various articles. We showed them the typing support page (http://bit.ly/Uw8WaV) on Punjabi Wikipedia and distributed the same in printed form (http://bit.ly/Rk9wde). Guglani, Subhashish and Surinder helped editors with basic editing and referencing. New Wikipedians were also informed about the Punjabi Wikipedia Facebook page (http://on.fb.me/Pr7tBE).

File:1st Punjabi Wikipedia Workshop-9.jpg


Participants from the first Punjabi Wikipedia workshop


More Photos available at: http://commons.wikimedia.org/wiki/Category:First_Punjabi_Wikipedia_Workshop,_Ludhiana

 

The workshop was covered in Signpost (http://bit.ly/SSvUYh). There was some media coverage as well:

 


by Shiju Alex at October 02, 2012 02:38 PM

September 24, 2012

Last week update on Calligra Active

Core Dump

Last week was particularly awesome for me. I had lot to enjoy. Fixed one main issue of pagination which persisted in the calligraactive.  The rectangle which was passed to the ensureVisible function was wrong. Hence I spend a few hours ( I don’t bother, those were enjoyable moments for me :P ) It needed  the outer rectangle. After that adjusting the Y co-ordinate solved the issue of scrolling. Here is the screen shot taken by uploading a sample odt file :

 

Now when the user clicks the 3rd page on the left panel, it renders and shows the 3rd page properly.

 

This was a long time pending bug. First of all a big sorry for the users. It shouldn’t have taken this long time to fix it. My apologies. The other cool thing is that. in both the screen shot you can see  the pages which are selected are highlighted in the left panel. Isn’t it cool!!! That’s the small update I have to share.

by sujith at September 24, 2012 07:57 PM

Implementation overview of redirection and pipe operators in shell

Sarath Lakshman

unix design
I have been always fascinated about the design of UNIX. I am still curious and enjoy the philosophy and the idea of ‘Write programs that do one thing and do it well’. Aim of this blog post is to walk through some interesting aspects on implementation of file descriptors and to illustrate how gracefully that design helps to build interesting unix shell methodologies. For any process, there are three default file descriptors. Stdin – with descriptor number 0, Stdout – with descriptor number 1 and Stderr with descriptor number 2.

Let us go through some basic system calls. All the system calls explained below are not exact syntax. Please refer man for correct function prototype.

1. fork()
The fork system call creates another copy of current process and mark the new process as child of parent process which called fork. This system call returns zero in the child process and return child’s pid in the parent process. It copies everything including file descriptors, and virtual memory. If a process tries to write any virtual memory page, it will do a copy on write to create copy of that particular page for that process space.

2. exec(binary_path)
The exec system call overwrites the current process with executable image from a file. Eg. if you run exec(“/bin/ls”). It will overwrite the memory code image with binary from /bin/ls and execute. The file descriptor table remains the same as that of original process.

3. open(file, mode)
Opens a file and creates a file descriptor associated with the file.
IMPORTANT: By design, when the kernel allocates a file descriptor, it will create the fd with next smallest available file descriptor number.

4. close(fd)
Closes the open file descriptor

5. dup(fd)
The dup system call creates a file descriptor that is duplicate of given fd passed as argument.

6. pipe(int arr[2])
Creates a pipe, and stores the read descriptor in array location zero and write descriptor in array location one.

7. read(fd, buff, len)
Reads len bytes to buff from file descriptor fd.

8. write(fd, buff, len)
Writes len bytes from buff to file descriptor fd.

Let us go through some interesting shell features that we use frequently and look at their implementations.

1. Redirections

$ cmd1 > stdout.txt
The above command redirects stdout to file stdout.txt

For implementing the above operation, we should be able to link stdout of cmd1 with file descriptor of stdout.txt opened with write mode.

Let us look at the code.

main(){
    close(1); //Release fd no - 1
    open("stdout.txt", "w"); //Open a file with fd no = 1
    if (fork() == 0) {//Child process
        exec("cmd1"); //By default, the program writes to stdout (fd no - 1). ie, in this case, the file
    }
}

 

$ cmd1 2> stdout.txt
The above command redirects stderr to file stdout.txt

main(){
    close(2); //Release fd no - 2
    open("stderr.txt", "w"); //Opens file with fd no - 2
    if (fork() == 0) {//Child process
        exec("cmd1"); //Writes to stderr (fd no 2)
    }
}

 

$ cmd2 > stdout_stderr.txt 2>&1
The above command redirects both stdout and stderr to file stdout_stderr.txt

main(){
    close(1); //Release fd no - 1
    open("stdout_stderr.txt", "w"); //Opens file with fd no - 1
    if (fork() == 0) {//Child process
        close(2); //Release fd no - 2
        dup(1); //Create fd no - 2 which is duplicate of fd no -1. Hence, we joined fd 1 and 2 (stdout and stderr)
        exec("cmd2");
    }
}

 

$ cmd3 < input.txt
The above command redirects data from input.txt to stdin for cmd3.

main(){
    close(0);//Release fd - 0
    open("stdout.txt", "r"); //Open file with fd - 0
    if (fork() == 0) { //Child process
        exec("cmd3"); //By default, program reads from stdin. ie, fd - 0
    }
}

 

2. Pipe

$ cmd1 | cmd2
This command says that cmd2 will receive stdin from stdout of cmd1.

main(){
    int p[2];
    pipe(p); //Creates a pipe with file descriptors Eg. input = 3 and output = 4 (Since, 0,1 and 2 are not available)

    if (fork() == 0) { //Child process
        close(0);//Release fd no - 0
        close(p[0]);//Close pipe fds since useful one is duplicated
        close(p[1]);
        dup(p[0]); //Create duplicate of fd - 3 (pipe read end) with fd 0.
        exec("cmd2");
    } else {//Parent process
        close(1);//Release fd no - 1
        close(p[0]); //Close pipe fds since useful one is duplicated
        close(p[1]);
        dup(p[1]); //Create duplicate of fd - 4 (pipe write end) with fd 1.
        exec("cmd1");
    }
}

Aren’t you feeling awesome?
With simple design, without making any code change to individual programs, it is possible to connect input and output streams to individual programs. Hats off to designers of UNIX.

by Sarath at September 24, 2012 05:15 PM

Growth of Readers during January 2012 - June 2012

abundance of the heart

I have compiled the statistical update of the Indic language Wikipedias for the period 2012 January to 2012 June. As usual in this report, my aim is to provide my perspectives on the health of various Indic language communities as well as the state of various Indic language wikipedias for the above mentioned period. (The period of analysis is editor contributions between 2012 January 1 and 2012 June 30). (Read last year’s report here). The data for this report and analysis are based on the statistical data published at http://stats.wikimedia.org. Thanks to Erik Zachte for compiling all this information.

Some of the important points from this report are:

  • As always Indic wikipedia communities that are focused on community building had done well. Progress is slow but the results are steady and sustainable.
  • The communities that have made substantial progress in community building are Urdu, Oriya, Assamese, and Malayalam. (among this, for Urdu Wikipedia most of the activity is from Pakistan). The most recent entry to this club is Punjabi which will show up in the statistics of next few months.
  • Providing adequate support for newbies is very much required after each outreach. But many communities are failing here. This is affecting the conversion rate even though many outreach activities are happening across the country,
  • As seen in the past the readership of Indic language wikipedias is still growing up.

This report is presented in the following sequence.

  • Community
  • Content
  • Readership

Community

As community is the backbone of every Indic language Wikipedia it is important that respective language wiki communities give adequate importance to community building. Many language communities are still not understanding the importance of building the community. To achieve the goal of building free knowledge database in the respective language we need participation from maximum number of speakers of the respective language . The following table give information on 2 important parameters about community in the respective language wikipedia.

  • Number of users who had 100 or more edits in a month (high active Wikipedians)
  • Number of users who had at least 5 or more edits a month (active Wikipedians)

User growth in Indic language Wikipedias during 2012 January-June

Some of the important information that we can make out from this table are:

  • The number of high active editors (editors with more than 100 edits per month) are the backbone of each language wikipedia. Apart from doing normal article editing they are the users maintaining the wiki. Tamil and Malayalam continue to be on the top spot with almost 24 active users . Marathi, Gujarati, Oriya, Punjabi, and Urdu also showed growth in the number of high active users.
  • Assamese wikipedia is showing a reduction in the number of high active users even though its number of active users increased. This means that Assamese wikipedia requires some more current active users to take up the role of wiki adminship and similar leadership roles.
  • The number of active users (editors with more than 5 edits per month) give an overview of the overall activity in wikipedia. Here also Malayalam and Tamil continue to be on the top. Some of the languages that showed notable growth in the number of active users are Urdu, Oriya, and Assamese. As we know there are lot of community building activities happening in both Oriya and Assamese. Along with community building activities both the communities are making sure they are providing sufficient support to newbies using various options. And there efforts are showing up in the form of community strength.
  • The number of active members in Odia has increased to 25 which means community has grown 3 times over the past 6 months.
  • The number of wiki editors per million for most Indic languages is still below 1. This shows that awareness about Indic language wiki projects is still an issue for most Indic Wikipedias. From this statistics (http://stats.wikimedia.org/EN/Sitemap.htm), we can see that for Sanskrit the number of editors per million speakers has become 280 which is one of the highest in the world. No other Indic language wikipedia is near Sanskrit in this parameter. Malayalam comes second with 3 editors per million and Assamese and Bishnupriya Manipuri comes third with 2 editors per million. Tamil is in the fourth place with 1 editor. For all other Indic languages the number of editors per million population is below 1. Which shows that still the penetration of respective language Wikipedia among the speakers of a language is very low. We need more outreach programs to reach the speakers of the respective language.

Content

Number of articles is an important parameter which has misguided some wiki communities. But still it is a very important parameter if communities are increasing the number of articles in a way helpful to the readers of the wiki.

Article growth during 2012 January – 2012 June

  • Hindi continues to be on the top spot with 1,02,902. During the past 6 months almost 2000 articles got added to Hindi Wikipedia.
  • Telugu Wikipedia crossed the 50,000 article milestone is one of the major accomplishments during this period. I remember reading the news about Telugu Wikipedia crossing the 30,000 article milestone in June 2007 which shows that it took almost 5 years to reach 50,000 article milestone. As pointed out by User:Veeven in his blog post (about Telugu wikipedia crossing the 50,000 articles), Telugu wikipedia needs more support from Telugu speaking population to build the free knowledge project in Telugu. The current number of active users in Telugu wikipedia is not showing justice to the huge speaker base (more than 8 crores) of Telugu.
  • Another major milestone was Assamese wikipedia crossing the 1,000 article milestone.
  • Tamil and Malayalam are the two language wikipedias that added most number of articles during this time period. Both the language wikipedias added close to 3000 articles.
  • Sindhi, Newari (Nepal Bhasha) and Bishnupriya language wikipedias showed reduction in the number of articles. There are 2 reasons for this. 1. There is no active community to add new articles (see the first table for the number of active users) 2. Spam/Vandalism pages were deleted by Stewards/Global Sysops.

Readers (Pageview)

Number of people visiting the website continue to increase for all Indic language wikipedias and the total visits for all Indic language wikipedias combined is close to 4 crore now.

Please note that the information available in the below table is the total visits (page views) for a language wikipedia for a month from all the platforms combined. It includes visits by readers and editors.  This is NOT the list of Number of Unique Visitors to the website.

(The Number of Readers shown in the below table is in lakhs)

Growth of Readers during January 2012 - June 2012

(The Number of Readers shown in the above table is in lakhs)

  • For most of the Indic languages readership has gone up. For Assamese and Odia it almost doubled.
  • Among big languages unlike the number of active users when it comes to readers most Indic languages are doing justice to its speaking population volume. So even though many of our speakers are not editing the respective language wikipedia they are reading it. Bengali and Telugu are two languages that behaves different here which shows that awareness is very low for both the languages.
  • As the Indic language support in smart phones and different OSs is in better position now, I am sure the readership is going to increase further in future.

Still a major percentage of our speakers (I mean speakers who has access to internet) doesn’t know that there is a wikipedia exists in their own mother language and they not using it is a big issue. If our reader base is not increasing it will affect the community growth also. Hope things will improve as at least few language communities are involved in various awareness and outreach programs.


by Shiju Alex at September 24, 2012 08:57 AM

September 19, 2012

Report on Raspberry Pi workshop at College of Engineering, Trivandrum

Pramode C.E - The GnuVision Blog

Report on Raspberry Pi workshop at College of Engineering, Trivandrum

19 September, 2012

A Raspberry Pi workshop was conducted by Recursive Labs at CET (Trivandrum) on the 16th of September. The workshop included a demo of some of the capabilities of the Raspberry Pi as well as a hands-on session on using Python/Flask to build a small web app and access the Rpi I/O through a browser based interface. A small group of enthusiastic students and professionals attended the workshop.

September 19, 2012 12:00 AM

September 16, 2012

Raspberry Pi!

Soliloquies

As part of Fedora Summer of Open Hardware, I found myself fortunate enough to receive a Raspberry Pi. Two days ago it arrived, thrilled to see this tiny little guy after unpacking. One more reason to love the Fedora project!


Tagged: fedora

by Rajeesh at September 16, 2012 07:45 AM

September 11, 2012

Defend your rights NOW!

Praveen Arimbrathodiyil blogs here

Aseem Trivedi is in jail fighting for our rights. It is now our responsibility to stand up for him and join this fight to defend our freedoms. He is being silneced because he spoke against the government for the people, for you and me. Our people have fought hard for years to secure our freedoms from British. Now the same freedoms are being taken away from us, by a few of our own people in power. It is now on us how we respond to this. Are you ready to join this fight to protect our freedoms?

I was fortunate to be with him when he was arrested and I met him when he was in police custody. I’m moved by his courage and don’t want to let his personal sacrifice for us, for you and me, to go waste. I need your help, comment here if you can help out any way. Its even better if you organize yourself. I’m sharing Aseem’s note here, which I was fortunate to have personally witnessed. His friend Alok Dixit, Mayank Gandhi from IAC and his lawyer Vijay Hiremat were also present.

This is the letter written by Aseem when he was in the police lock-up at Bandra Police Station in Mumbai.


साथियो, मैं इस देश का एक सच्‍चा नागरिक हूं। कोई देशद्रोही नहीं हूं।

साथियो, अगर सच बोलना देशद्रोह है तो मैं देशद्रोही हूं। हां, मैं देशद्रोही हूं अगर देशप्रेम और देशद्रोह की परिभाषाएं बदल चुकी हैं। मैं भी देशद्रोही हूं अगर गांधी, भगत सिंह और आजाद देशद्रोही थे। दोस्‍तो, मेरा मकसद देश का एक छोटा बच्‍चा भी समझ सकता है। मैं अपने देश के नागरिकों और संविधान के अपमान का विरोध करता हूं और अपने कार्टूनों के माध्‍यम से मैं देश के प्रतीकों और संविधान के अपमान का विरोध करता आया हूं। दोस्‍तो, कला और साहित्‍य समाज का दर्पण है और मैंने अपने कार्टून्‍स में वही दिखाया है, जो अपने चारों ओर देखा है।

दोस्‍तो, भारत माता कोई और नहीं बल्कि हम और आप जैसे भारत के 125 करोड़ नागरिक ही हैं। और हमारा अपमान भारत मां का अपमान है।

मेरी पूर्ण आस्‍था भारतीय संविधान और संविधान निर्माता डॉ अंबेडकर के साथ है। इसलिए संविधान का अपमान होता देख मुझे कष्‍ट होता है। और मैं अपने कार्टून्‍स के जरिये इसे रोकना चाहता हूं।

मैं गांधी के रास्‍ते पर चल रहा हूं और स्‍वयं को कष्‍ट देकर देश की सेवा करना चाहता हूं। मेरे जेल में होने से परेशान न हों। अन्‍ना जी कहते हैं कि देश के लिए जेल जाना तो हमारा भूषण है। इसलिए मैं जमानत नहीं मांग रहा। क्‍योंकि मैंने जो किया, उस पर मुझे गर्व है और मैं बार-बार करूंगा। मैं कोई अपराधी नहीं हूं कि पैसे जमा कर के जमानत लूं। जब तक देशद्रोह जैसा तानाशाही और ब्रिटिश राज का ये कानून नहीं हटाया जाएगा, मैं जेल में रह कर ही 124 (A) और सेंसरशिप के खिलाफ लड़ाई लड़ता रहूंगा।

आपका,
असीम त्रिवेदी
बांद्रा पुलिस लॉक अप, 2:10 PM, 10.09.2012

This is the text of a statement issued by ASEEM TRIVEDI from inside a jail in Mumbai. Trivedi has been remanded to judicial custody till 24 September for displaying and publishing cartoons that are allegedly seditious, insult national honour and, under the IT Act, are “grossly offensive” and of “menacing character”.

Translation by Shivam Vij

Friends,

I am a faithful citizen of this country, not someone who has committed sedition.

If speaking the truth is sedition, then I have indeed committed sedition. If raising one’s voice against injustice is sedition, then I have committed sedition. If nationalism and the definition of nationalism have changed, then you could say I have committed sedition. If Gandhi, Bhagat Singh and Azad were seditious so am I.

Even a small child of this country can understand my motive. I oppose the insulting of the people and the Constitution of India. I have been opposing the insulting of the people and the Constitution of India through my cartoons.

Art and literature are a mirror to society. I have only depicted in my cartoons what I have seen all around me. Mother India is nobody but 1.25 billion citizens of India, people like you and me. When we the people are insulted, India is insulted.

I have nothing but respect for the Constitution of India and its key drafter, Dr Ambedkar. I am pained when I see the Constitution insulted. Through my cartoons I seek to prevent exactly such affront.

I am walking in the footsteps of Gandhi and I want to serve the nation through my own suffering. Do not be disturbed by my going to jail. Anna Hazare ji says that going to jail for the country is like wearing a jewel. That is why I am not asking for bail. I am proud of what I have done. I will say this again and again. I am not a criminal that I will deposit some money to get bail. Until such time as sedition, an authoritarian British Raj law, is not repealed, I shall remain in jail. I will fight against Indian Penal Code Section 124A (sedition) and against censorship from within jail.

Yours,

Aseem Trivedi
Bandra Police Lock-up,
10 September 2012, 2:12 PM

by Praveen A at September 11, 2012 01:33 AM

Report on Rpi demo at Electronics Rocks 2012, Bangalore

Pramode C.E - The GnuVision Blog

Report on Raspberry Pi demo at Electronics Rocks 2012, Bangalore

11 Sep 2012

read here

September 11, 2012 12:00 AM

September 10, 2012

അസീമിന്റെ ആവിഷ്കാര സ്വാതന്ത്ര്യത്തിന്റെ ലംഘനം ചെറുത്തു് തോല്‍പ്പിയ്ക്കണം

Praveen Arimbrathodiyil Blogs here

അസീമിനെ അറസ്റ്റിനെക്കുറിച്ചുള്ള മാധ്യമം വാര്‍ത്തയില്‍ നല്‍കിയ അഭിപ്രായം. അസീമിനൊപ്പം ചെലവഴിച്ച ഒരു സായാഹ്നത്തെപ്പറ്റിയും അറസ്റ്റിന്റെ സാക്ഷിയാവാന്‍ നിമിത്തമായതിനെപ്പറ്റിയും കൂടുതല്‍ പിന്നീടെഴുതാം.

ഇതിനെതിരെ ജനാധിപത്യ വിശ്വാസികളായ ഓരോരുത്തരും ശബ്ദമുയര്‍ത്തിയേ തീരൂ. കാരണം ഇതും വെറും അസീമിന്റെ മാത്രം പ്രശ്നമല്ല. നമ്മുടെ എല്ലാവരുടേയും ഭരണഘടന ഉറപ്പു് തരുന്ന ആവിഷ്കാര സ്വാതന്ത്ര്യത്തിന്റെ പ്രശ്നമാണു്. കോടികള്‍ കട്ടുമുടിയ്ക്കുന്നവര്‍ സുഖലോലുപതയിലും പ്രതികരിയ്ക്കുന്ന നിരപരാധികള്‍ ജയിയലുമാകുന്ന അവസ്ഥ ജനാധിപത്യ വിശ്വാസികള്‍ക്കാര്‍ക്കും അനുവദിയ്ക്കാനാവില്ല.

പ്രസ് കൌണ്‍സില്‍ ഓഫ് ഇന്ത്യയുടെ ചെയര്‍മാനയ ജസ്റ്റിസ് മാര്‍ക്കണ്ടേയ കട്ജു പറഞ്ഞ പോലെ നിരപരാധിയ അറസ്റ്റ് ചെയ്തു് തുറുങ്കിലടച്ച പോലീസുകാര്‍ക്കെതിരെ നടപടിയുണ്ടാവണം. ഇതുപോലൊരവസ്ഥ മറ്റൊരാള്‍ക്കു് വരാതെ നോക്കാന്‍ ഈ രാജ്യത്തെ പൌരന്മാരെന്ന നിലയില്‍ നമ്മളോരോരുത്തരം ബാധ്യസ്ഥരാണു്.

September 10, 2012 04:07 AM

August 30, 2012

August 18, 2012

സ്വതന്ത്ര ഇന്റര്‍നെറ്റിലേക്കു്

Free as in Freedom

(തേജസ് പത്രത്തിനുവേണ്ടി രചിച്ചു് 2011 ജൂലൈ 19നു് അയച്ചതു്)

സ്വതന്ത്രമായി ആശയങ്ങള്‍  വിനിമയം ചെയ്യാനുള്ള മാധ്യമമായി ഇന്റര്‍നെറ്റിനെ കാണാറുണ്ടു്. ചര്‍ച്ചാസംഘങ്ങള്‍  (discussion groups), ബ്ലോഗുകള്‍ തുടങ്ങി നിയന്ത്രണങ്ങളില്ലാതെ ആര്‍ക്കും ഉപയോഗിക്കാവുന്ന സൌകര്യങ്ങള്‍  പണം കൊടുക്കാതെതന്നെ ഇപ്പോള്‍  ഇന്റര്‍നെറ്റില്‍  ലഭ്യമാണു്. പത്രമാസികകള്‍, റേഡിയൊ, ടെലിവിഷന്‍  തുടങ്ങിയവയില്‍നിന്നു് വ്യത്യസ്തമായി ഇന്റര്‍നെറ്റിലൂടെ സ്വന്തം ആശയങ്ങള്‍  പ്രകാശിപ്പിക്കുന്നതിനു് ആരുടെയും അനുമതി ആവശ്യമില്ല. പുസ്തകങ്ങള്‍  പ്രകാശിപ്പിക്കുന്നതിനു പോലും ഇപ്പാള്‍ ഇന്റര്‍നെറ്റില്‍  സൌകര്യമുണ്ടു്. എന്നാല്‍  ഇന്റര്‍നെറ്റ് എന്ന ഈ പ്രതിഭാസം തികച്ചും സ്വതന്ത്രമാണോ? അല്ല എന്നതാണു് സത്യം. ഇന്റര്‍നെറ്റിനു് ആവശ്യമായ വിവരവിനിമയ ഘടകങ്ങള്‍  വലിയ കമ്പനികളാണു് സ്ഥാപിച്ചിരിക്കുന്നതു്. വെബ് സൈറ്റിനുള്ള വിലാസങ്ങള്‍  നല്‍കുന്നതും മറ്റു പല കാര്യങ്ങളും നിയന്ത്രിക്കുന്നതും കമ്പനികളാണു്. കേന്ദ്രീകൃതമായ ഈ സംവിധാനത്തെ സ്വാധീനിക്കാന്‍  സര്‍ക്കാരുകള്‍ക്കു് എളുപ്പത്തിലാവും. അതുകൊണ്ടു് സര്‍ക്കാരുകള്‍ക്കു് ഇഷ്ടപ്പെടാത്ത അഭിപ്രായങ്ങള്‍  ഇന്റര്‍നെറ്റില്‍  അധികകാലം നിലനില്‍ക്കില്ല. ഉദാഹരണമായി, സര്‍ക്കാരിന്റെ ആവശ്യപ്രകാരം ഇന്റര്‍നെറ്റ് സേവനദാതാക്കളായ കമ്പനികള്‍  തടയുന്നതു കാരണം ചൈനയിലുള്ളവര്‍ക്കു് അനേകം വെബ് സൈറ്റുകള്‍  കാണാനാവില്ല. വ്യക്തിസ്വാതന്ത്ര്യത്തിനു് അങ്ങേയറ്റത്തെ പ്രാധാന്യം കല്പിക്കുന്നു എന്നവകാശപ്പെടുന്ന അമേരിക്കന്‍  സര്‍ക്കാര്‍  പോലും ഇന്റര്‍നെറ്റിനെ നിയന്ത്രിക്കാന്‍  പരമാവധി ശ്രമിക്കുന്നുണ്ടു്. തികച്ചും സ്വതന്ത്രമായ ഒരു ആശയവിനിമയ  സംവിധാനം ഉണ്ടാകണമെങ്കില്‍  കമ്പനികളുടെയും സര്‍ക്കാരുകളുടെയും നിയന്ത്രണത്തില്‍നിന്നു് വിമുക്തമാകണം എന്നു് ചിലരെങ്കിലും പറഞ്ഞുതുടങ്ങിയിട്ടു് കുറച്ചു കാലമായി. ബദലായി ചില സംവിധാനങ്ങളുണ്ടാക്കാനുള്ള ശ്രമങ്ങളും തുടങ്ങിയിരുന്നു. ഇപ്പോഴിതാ യുദ്ധത്തിന്റെ പിടിയിലകപ്പെട്ട അഫ്ഘാനിസ്ഥാനില്‍  ചിലര്‍  സ്വതന്ത്രമായ ഒരു കമ്പ്യൂട്ടര്‍  ശൃംഘല ഒരുക്കിയിരിക്കുന്നു. അതെപ്പറ്റി ചര്‍ച്ച ചെയ്യുന്നതിനു മുമ്പു് ഇന്റര്‍നെറ്റ് എങ്ങിനെ ഉണ്ടായി, അതു് എങ്ങനെ നടക്കുന്നു തുടങ്ങിയ കാര്യങ്ങള്‍  പരിശോധിക്കാം.

ലോസ് ആഞ്ചലസിലെയും കാലിഫോര്‍ണിയയിലെയും ഓരോ കമ്പ്യൂട്ടറുകള്‍  ബന്ധിപ്പിച്ചുകൊണ്ടു് 1969ലാണു് ഇന്റര്‍നെറ്റിന്റെ തുടക്കം എന്നു പറയാം. അമേരിക്കന്‍  പ്രതിരോധവകുപ്പിനുവേണ്ടിയുള്ള ഗവേഷണങ്ങളുടെ ഭാഗമായിരുന്നു കമ്പ്യൂട്ടറുകള്‍ തമ്മില്‍  ബന്ധിപ്പിച്ചുകൊണ്ടുള്ള ഈ പരീക്ഷണം. സര്‍വ്വകലാശാലകള്‍ക്കുള്ള ഒരു ശൃംഘല നിര്‍മ്മിക്കാന്‍ 1985ല്‍  അമേരിക്കയിലെ ദേശീയ ശാസ്ത്ര ഫൌണ്ടേഷന്‍ (National Science Foundation) മുന്‍കൈ എടുത്തു. ഇതിനു മുമ്പുതന്നെ 1983ല്‍  അമേരിക്കയിലെ ആദ്യത്തെ ഇമെയില്‍  സേവനം ആരംഭിച്ചിരുന്നു. എംസിഐ എന്ന കമ്പനിയാണു് ഇതു് തുടങ്ങിയതു്. ദേശീയ ശാസ്ത്ര ഫൌണ്ടേഷന്റെ ശൃംഘലയെ ഈ ഇമെയില്‍  സംവിധാനവുമായി ബന്ധിപ്പിക്കാന്‍  1988ല്‍  അനുമതി ലഭിച്ചു. 1989ല്‍  അതു് നടപ്പിലായി. തുടര്‍ന്നു് മറ്റു് ഇമെയില്‍  സേവനദാതാക്കളുമായും ബന്ധം സ്ഥാപിച്ചു. അക്കാലത്തുതന്നെ കച്ചവടാടിസ്ഥാനത്തില്‍  ഇന്റര്‍നെറ്റ് സേവനം ലഭ്യമാക്കുന്ന കമ്പനികളും നിലവില്‍വന്നു. മറ്റു കമ്പ്യൂട്ടര്‍  ശൃംഘലകളും മേല്പറഞ്ഞ ശൃംഘലയുമായി ബന്ധിപ്പിച്ചു തുടങ്ങി.

1989ല്‍  ടിം ബെര്‍നേഴ്സ് ലീ (Tim Berners Lee) എന്ന ബ്രിട്ടിഷ് ശാസ്ത്രജ്ഞന്‍  വികസിപ്പിച്ച വേള്‍ഡ് വൈഡ് വെബ് (world wide web, www) എന്ന സങ്കേതത്തിനു് 1990കളില്‍  നല്ല പ്രചാരം ലഭിച്ചു. ഇതിനു പിന്നില്‍  പരമാണുകേന്ദ്ര ഗവേഷണത്തിനുള്ള യൂറോപ്യന്‍  സ്ഥാപന (European Organization for Nuclear Research, CERN)ത്തിന്റെ വലിയൊരു പങ്കുണ്ടായിരുന്നു. ഇന്നു് ഇന്റര്‍നെറ്റില്‍  ലഭ്യമായ എല്ലാ സേവനങ്ങളിലും വച്ചു് ഏറ്റവുമധികം ഉപയോഗിക്കുന്നതു് വേള്‍ഡ് വൈഡ് വെബ്ബാണു്. മാത്രമല്ല, ഇന്റര്‍നെറ്റിനു് ഇത്രയധികം ജനപ്രീതി ലഭിക്കാനുള്ള കാരണവും വെബ്‌സൈറ്റുകള്‍  സാധ്യമാക്കുന്ന ഈ സങ്കേതം തന്നെയാണു്.

ഇനി എങ്ങനെയാണു് ഇന്റര്‍നെറ്റു് നിയന്ത്രിതമാകുന്നതു് എന്നു പരിശോധിക്കാം. ഇന്റര്‍നെറ്റുമായി ബന്ധപ്പെടുന്ന ഓരോ കമ്പ്യൂട്ടറിനും ഒരു വിലാസം ആവശ്യമാണു്. ഇതിനു് ഐ.പി. വിലാസം എന്നു പറയുന്നു. ഇതു് നാലു് സംഖ്യകളുടെ ഒരു കൂട്ടമാണു്. ഈ സംഖ്യകള്‍  ഓരോ കുത്തുകൊണ്ടു് വേര്‍തിരിച്ചിരിക്കുന്നു. ഉദാഹരണമായി ഒരു കമ്പ്യൂട്ടറിന്റെ വിലാസം 74.125.236.50 എന്നാകാം. ഈ വിലാസം ലഭിച്ചാല്‍  ആ കമ്പ്യൂട്ടറുമായി   ഇന്റര്‍നെറ്റുവഴി മറ്റൊരു കമ്പ്യൂട്ടറിനു് ബന്ധപ്പെടാം. എന്നാല്‍  നമുക്കാവശ്യമുള്ള വിലാസങ്ങള്‍  ഈ രൂപത്തില്‍  ഓര്‍മ്മിച്ചുവയ്ക്കാന്‍  ബുദ്ധിമുട്ടാണല്ലോ. അതു് സൌകര്യപ്പെടുത്താനാണു് വെബ് സൈറ്റുകള്‍ക്കു് പേരുകള്‍  നല്‍കിയിരിക്കുന്നതു്. പേരുകള്‍  ഓര്‍മ്മിച്ചുവയ്ക്കാന്‍  നമുക്കു് ബുദ്ധിമുട്ടില്ല. ഉദാഹരണമായി \engmal{google.com} എന്നു് ഓര്‍മ്മിച്ചുവയ്ക്കാന്‍  വലിയ പ്രയാസമില്ല. പക്ഷെ ഈ പേരുകള്‍  ഉപയോഗക്കാന്‍  കമ്പ്യൂട്ടറുകള്‍ക്കു് പ്രയാസമാണു്. അവയ്ക്കു് സംഖ്യകള്‍  തന്നെയാണു് സൌകര്യം. അതുകൊണ്ടു് പേരുകളില്‍നിന്നു് സംഖ്യാരൂപത്തിലുള്ള വിലാസങ്ങളിലേക്കും മറിച്ചും ``തര്‍ജമ'' ചെയ്യാനുള്ള സംവിധാനം വേണം. ഇതു് ചെയ്യുന്ന കമ്പ്യൂട്ടറുകള്‍  ഇന്റര്‍നെറ്റില്‍  ലഭ്യമാണു്. അവയുടെ സേവനമുപയോഗിച്ചാണു് വെബ് സൈറ്റുകളുമായി നമ്മുടെ കമ്പ്യൂട്ടര്‍  ബന്ധപ്പെടുന്നതു്.

ഇനി പേരുകള്‍  നല്‍കുന്നതിനും വിലാസങ്ങള്‍  നല്‍കുന്നതിനും എല്ലാം കേന്ദ്രീകൃത സംഘടനകള്‍  ആവശ്യമാണല്ലോ. എങ്കിലല്ലേ ഒരേ പേരിലോ ഒരേ വിലാസത്തിലോ ഒന്നിലധികം കമ്പ്യൂട്ടര്‍  ഇല്ല എന്നു് ഉറപ്പു വരുത്താനാകൂ. അതുകൊണ്ടു് വിലാസങ്ങള്‍  നല്‍കാന്‍  ഇന്റര്‍നെറ്റ് അസൈന്‍ഡ് നമ്പര്‍  അതോറിറ്റി  (Internet Assigned Number Authority, IANA) എന്നൊരു സംഘടനയുണ്ടു്. അതുപോലെ പേരുകള്‍  നല്‍കുന്നതിനു് Internet Corporation for Assigned Names and Numbers, ICANN എന്നൊരു സംഘടനയുമുണ്ടു്. ഇത്രയും നല്ലതുതന്നെ. പക്ഷെ കേന്ദ്രീകൃതമായതിന്റെ പ്രശ്നങ്ങള്‍  ഈ സംഘടനകള്‍ക്കുണ്ടു്. ചില സര്‍ക്കാരുകള്‍ക്കെങ്കിലും ഈ സംഘടനകളെക്കൊണ്ടു് ചില കാര്യങ്ങള്‍  ചെയ്യിക്കാനാകും. ഉദാഹരണമായി ഒരു പ്രബലരാഷ്ട്രത്തിലെ സര്‍ക്കാരിനു് ഒരു നിശ്ചിത വെബ് സൈറ്റില്‍  ലഭ്യമായ വിവരങ്ങള്‍  തങ്ങള്‍ക്കു് ദോഷം ചെയ്യും എന്നു് തോന്നിയാല്‍  ആ സൈറ്റിന്റെ പേരോ വിലാസമോ ഇല്ലാതാക്കാന്‍  കഴിയും.

ഇന്റര്‍നെറ്റ് സേവനദാതാക്കളാണു് ഈ ശൃംഘലയിലെ മറ്റൊരു ബലഹീന കണ്ണി. അതതു് രാഷ്ട്രങ്ങളിലെ സര്‍ക്കാരുകള്‍ക്കു് ഈ സേവനദാതാക്കളെ വരുതിക്കു് നിര്‍ത്താന്‍  യാതൊരു പ്രയാസവുമില്ല. അങ്ങനെയാണല്ലോ ചൈനയിലും മറ്റും സാധാരണ ജനങ്ങള്‍ക്കു് പല വെബ് സൈറ്റുകളും ലഭ്യമല്ലാതായതു്. നമ്മള്‍  വികേന്ദ്രീകൃതവും സ്വതന്ത്രവും എന്നെല്ലാം കരുതുന്നെങ്കിലും ഇന്റര്‍നെറ്റും ജനങ്ങളുടെ അധീനതയിലല്ല എന്നതു തന്നെയാണു് സത്യം.

ഈ സാഹചര്യത്തിലാണു് അഫ്ഘാനിസ്ഥാനില്‍  ജനങ്ങളുടേതായ കമ്പ്യൂട്ടര്‍  ശൃംഘല ഉണ്ടാക്കിയിരിക്കുന്നതു്. ഭൂപ്രകൃതികൊണ്ടും യുദ്ധത്തിന്റെ പ്രത്യാഘാതങ്ങള്‍  കൊണ്ടും സാധാരണ ഇന്റര്‍നെറ്റ് സംവിധാനം ബുദ്ധിമുട്ടായിരിക്കുന്ന സാഹചര്യം അവിടെയുണ്ടു് എന്നോര്‍മ്മിക്കണം. ആ സാഹചര്യത്തിലാണു് കടകളില്‍നിന്നു് വാങ്ങാവുന്ന ചില ഇലക്‌ട്രാണിക് ഘടകങ്ങളും മറ്റു വസ്തുക്കളും ഉപയോഗിച്ചു് ഒരു വയര്‍ലെസ് ശൃംഘല നിര്‍മ്മിക്കാന്‍  ജലാലാബാദിലെ ചിലര്‍  ഇറങ്ങിത്തിരിച്ചതു്. ഇതിനു് താല്പര്യമെടുത്തവരുടെ വ്യക്തിപരമായ സമ്പാദ്യങ്ങളും അമേരിക്കയിലെ ദേശീയ ശാസ്ത്ര ഫൌണ്ടേഷന്റെ ധനസഹായവും ചേര്‍ത്തു് ഇക്കൂട്ടര്‍  ജലാലാബാദ് നഗര നിവാസികള്‍ക്കായി ഒരു കമ്പ്യൂട്ടര്‍  ശൃംഘല നിര്‍മ്മിച്ചുകഴിഞ്ഞു. രാജ്യം മൂഴുവനുമൊ വലിയൊരു പ്രദേശത്തൊ ഉപയോഗിക്കാവുന്ന ശൃംഘലയല്ല ഇതു്. ഈ ശൃംഘലയലെ രണ്ടു കമ്പ്യൂട്ടറുകള്‍  തമ്മിലുള്ള ഏറ്റവും കൂടിയ ദൂരം ഏതാണ്ടു് ആറു കിലോമീറ്റര്‍  മാത്രമാണു്. പക്ഷെ ജനങ്ങള്‍  തങ്ങള്‍ക്കുവേണ്ടി സര്‍വ്വസാധാരണമായി ലഭിക്കുന്ന ഘടകങ്ങള്‍  ചേര്‍ത്തു് നിര്‍മ്മിച്ചതാണു് എന്ന പ്രത്യേകത ഇതിനുണ്ടു്. മാത്രമല്ല ഇതിന്റെ രൂപകല്പനയും മറ്റും തുറന്നതാണുതാനും. അതുകൊണ്ടു് ഇതു് എല്ലാ അര്‍ത്ഥത്തിലും തികച്ചും സ്വതന്ത്രമാണു്.

അമേരിക്കയിലെ മാസച്ച്യുസെറ്റ്സ് ഇന്‍സ്റ്റിറ്റ്യൂട്ട് ഓഫ് ടെക്‌നോളജിയില്‍  വികസിപ്പിച്ചെടുത്ത ഫാബ്‌ലാബ് (FabLab -- Fabrication Laboratory) എന്ന ആശയത്തില്‍നിന്നാണു് ഇതിന്റെ തുടക്കം. അഫ്ഘാനിസ്ഥാനിലെ ഫാബ്‌ലാബാണു് ഫാബ്‌ഫൈ (FabFi) എന്ന ഈ വയര്‍ലെസ് സംവിധാനത്തിനു് രൂപകല്പന നല്‍കിയതു്. അഫ്‌ഗാനിസ്ഥാനില്‍  വിജയകരമായി മൂന്നു വര്‍ഷം പ്രവര്‍ത്തിച്ച സംവിധാനം കെനിയയിലും ഇപ്പോള്‍ പരീക്ഷണാര്‍ത്ഥം തുടങ്ങിയിരിക്കുകയാണു്.

ഇന്റര്‍നെറ്റ് നിഷ്പക്ഷമായിരിക്കണം എന്നൊരു നിയമം നെതര്‍ലന്‍ഡ്സ് സര്‍ക്കാര്‍ ഈയിടെ പാസാക്കി. എന്നാല്‍  അമേരിക്ക ഉള്‍പ്പെടെയുള്ള സര്‍ക്കാരുകള്‍  അതിനു് തയാറാകുന്നില്ല. ജനങ്ങള്‍ക്കു് അവരുടേതായ ഒരു ശൃംഘല ഇപ്പോള്‍ നിര്‍മ്മിക്കാമെന്നിരിക്കെ സര്‍ക്കാരുകള്‍  കനിയാനായി എന്തിനു് കാത്തിരിക്കണം എന്നാണു് ചിലര്‍  ചോദിക്കുന്നതു്.

(ഈ ലേഖനം ക്രിയേറ്റീവ് കോമണ്‍സ്  by-sa  ലൈസന്‍സില്‍ പ്രസിദ്ധീകരിച്ചിരിക്കുന്നു.)

by Sasi (noreply@blogger.com) at August 18, 2012 12:34 PM

സിനിമ ഇന്റര്‍നെറ്റിലൂടെ

Free as in Freedom

സിനിമയും സംഗീതവും മറ്റും ഇന്റര്‍നെറ്റിലൂടെയോ അല്ലാതെയോ പകര്‍ത്തുന്നതു് ഇതൊക്കെ നിര്‍മ്മിക്കുന്നവരെ വല്ലാതെ ബാധിക്കും എന്നും അവരുടെ നിലനില്പിനുതന്നെ ഭീഷണിയാണെന്നും ഒക്കെയാണു് നമ്മോടു് സാംസ്ക്കാരിക വ്യവസായികള്‍  പറയുന്നതു്. അതിന്റെ  തുടര്‍ച്ചയായാണു് അമേരിക്കയിലാണെങ്കിലും കേരളത്തിലാണെങ്കിലും സംഗീതവും സിനിമയും മറ്റും ഡൌണ്‍ലോഡ് ചെയ്യുന്നതിനും "വ്യാജ" സിഡികള്‍  ഉപയോഗിക്കുന്നതിനും എതിരായി ടെലിവിഷനിലും പത്രങ്ങളിലും സിനിമ സിഡികളില്‍പ്പോലും പരസ്യങ്ങള്‍  വരുന്നതും  ഇടയ്ക്കിടയ്ക്കു്  പോലീസിന്റെ  സഹായത്തോടെ കടകളില്‍   റെയ്ഡുകള്‍  നടത്തുന്നതും. ഇതു് ശരിയല്ല എന്നു് സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍  പ്രവര്‍ത്തകര്‍  കുറച്ചുകാലമായി പറയുന്നുണ്ടു്. തങ്ങളുടെ സംഗീതം ഇന്റര്‍നെറ്റിലൂടെ പരസ്പരം പകര്‍ന്നുകൊടുക്കുന്നതു് തങ്ങള്‍ക്കു് നഷ്ടമുണ്ടാക്കുന്നില്ല എന്നും തങ്ങളുടെ ജനപ്രിയത വര്‍ദ്ധിക്കാന്‍  സഹായിക്കുന്നതിലൂടെ തങ്ങള്‍ക്കു് കൂടുതല്‍  കച്ചേരികള്‍  ലഭിക്കാന്‍  ഉപകരിക്കുകയേയുള്ളൂ എന്നും പാശ്ചാത്യരാജ്യങ്ങളിലെ ചില സംഗിതജ്ഞര്‍  പറഞ്ഞിട്ടുണ്ടെങ്കിലും  സിനിമകളും സംഗീതവും സിഡികള്‍  വഴിയോ അല്ലാതെയോ കൈമാറുന്നതു് തെറ്റാണു് എന്നുതന്നെയാണു് ഇപ്പോഴും പലരും ആത്മാര്‍ത്ഥമായി വിശ്വസിക്കുന്നതു്. അങ്ങനെയിരിക്കെയാണു്   ആസ്ട്രേലിയയിലെ ഒരു ചലച്ചിത്ര നിര്‍മ്മാതാവു് തന്റെ പുതിയ ചിത്രം പ്രദര്‍ശനത്തിനു് റിലീസ് ചെയ്യുന്നതിനോടൊപ്പംതന്നെ ഡൌണ്‍ലോഡ് ചെയ്യാനായി ഇന്റര്‍നെറ്റില്‍  ഇടാനും തീരുമാനിച്ചതു്. ഒരു പ്രശസ്ത ബ്രിട്ടിഷ് സംഗീതഗ്രൂപ്പു് തങ്ങളുടെ പുതിയ ആല്‍ബം  ഇഷ്ടമുള്ള വില നല്‍കിയോ വില നല്‍കാതെതന്നെയോ ഡൌണ്‍ലോഡ് ചെയ്യാന്‍  ഇന്റര്‍നെറ്റിലിട്ടുകൊണ്ടു് പുറത്തിറക്കിയിട്ടു് അധികകാലമായിട്ടില്ല. ഇത്തരം സാംസ്ക്കാരിക സൃഷ്ടികള്‍  വിതരണം ചെയ്യുന്ന പുതിയ രീതിയുടെ തുടക്കമാകാം ഇതു്.

ഒരു ചലച്ചിത്രം നിര്‍മ്മിക്കുന്നതു് വളരെയധികം ചെലവുള്ള കാര്യമാണു്. അതിനായി ചെലവുചെയ്ത പണവും കുറച്ചെങ്കിലും ലാഭവും തിരികെ കിട്ടുക എന്നതു് പണം മുടക്കുന്നവരുടെ ന്യായമായ ആഗ്രഹമാണു്. അങ്ങനെ പണം മുടക്കി നിര്‍മ്മിക്കുന്ന ചലച്ചിത്രം വെറുതെ കാണണം എന്നു പറയുന്നതു് അന്യായമല്ലേ എന്നു ചന്തിക്കുന്നതു് സ്വാഭാവികം മാത്രമാണു്. എന്നാല്‍  പലപ്പോഴും നമ്മള്‍  വിസ്മരിക്കുന്ന ചില സത്യങ്ങളുണ്ടു്.  വെറുതെ കാണണം എന്നു് ആഗ്രഹമുള്ളതുകൊണ്ടല്ല പലരും കമ്പ്യൂട്ടറിലോ ടെലിവിഷനുമായി ഘടിപ്പിച്ചിരിക്കുന്ന പ്ലെയറിലോ  സിഡിയിട്ടു് ചലച്ചിത്രം കാണാന്‍  താല്പര്യപ്പെടുന്നതു്. നല്ല സിനിമ  ആസ്വദിക്കണമെങ്കില്‍  തിയേറ്ററില്‍  ഇരുന്നു് കാണുക തന്നെ വേണം എന്നു് ആസ്വാദകര്‍  സമ്മതിക്കും. അതുകൊണ്ടു് തിയേറ്ററില്‍  പോയി ടിക്കറ്റെടുത്തു് കാണാനുള്ള അസൌകര്യമൊ അതിനുണ്ടാകുന്ന ചെലവൊ ഒക്കെയാണു് സിഡി എടുത്തു് കാണാന്‍  പ്രേരിപ്പിക്കുന്ന ഘടകങ്ങള്‍. അതുകൊണ്ടു് സിഡിയിട്ടു് സിനിമ കാണുന്നവര്‍  പലരും തിയേറ്ററില്‍  പോയി കാണാന്‍  ഇടയില്ലാത്തവരായിരിക്കാനാണു് സാദ്ധ്യത.

മാത്രമല്ല, പുതിയ സാങ്കേതികവിദ്യകള്‍  ഉണ്ടായിവരുന്നതു് ഇത്തരം സാംസ്ക്കാരിക സൃഷ്ടികള്‍  കൂടുതല്‍  ആള്‍ക്കാരുടെ അടുത്തെത്തിക്കാനും കൂടുതല്‍  സൌകര്യത്തോടെ ആസ്വദിക്കാനും ഉള്ള മാര്‍ഗങ്ങള്‍  സൃഷ്ടിക്കുന്നു എന്നതു് നാം ഓര്‍ക്കേണ്ടതുണ്ടു്. സാങ്കേതികവിദ്യ  മാറുന്നതനുസരിച്ചു് നമ്മള്‍  ഓരോ കാര്യങ്ങള്‍ ചെയ്യുന്നതിന്റെ രീതി മാറുന്നുണ്ടു്, മാറണം, എന്ന കാര്യം വിസ്മരിച്ചുകൂട. ഉദാഹരണമായി, ബോര്‍ഡുകളും ബാനറുകളും മറ്റും ബ്രഷും പെയിന്റുമുപയോഗിച്ചു് കൈകൊണ്ടു് എഴുതിയിരുന്ന കാലം വളരെയൊന്നും പണ്ടല്ല. കമ്പ്യൂട്ടര്‍  സാങ്കേതികവിദ്യ വന്നതോടെ ആ തൊഴില്‍  ചെയ്തിരുന്നവര്‍ക്കെല്ലാം തൊഴില്‍  നഷ്ടമായി. അതുപോലെ തന്നെയായി അച്ചുകള്‍  നിരത്തി കമ്പോസിംഗ് ചെയ്തിരുന്നവരുടെയും ഗതിയും. അതുകൊണ്ടു് പുതിയ സാങ്കേതികവിദ്യകള്‍  ഉണ്ടാവണ്ട എന്നു് ആരും പറയാറില്ല.  വീട്ടിലിരുന്നു് കമ്പ്യൂട്ടറിലോ ടിവിയിലോ സിനിമ കാണാനുള്ള സൌകര്യമാണു് ഇപ്പോള്‍  ലഭ്യമായിട്ടുള്ളതു്. എന്നാല്‍  നല്ല സിനിമ കാണാന്‍  ഇന്നും ചലച്ചിത്രാസ്വാദകര്‍  തിയേറ്ററുകളില്‍  തന്നെ പോകും. അതുകൊണ്ടാണല്ലോ കമ്പ്യൂട്ടറും മറ്റും വര്‍ഷങ്ങള്‍ക്കു മുമ്പേ എത്തിയ പാശ്ചാത്യ നാടുകളില്‍‌പ്പോലും ഇപ്പോഴും സിനിമ വ്യവസായം നിലനില്‍ക്കുന്നതു്.

ആളുകള്‍  ഇന്റര്‍നെറ്റിലൂടെ ഡിജിറ്റല്‍  രൂപത്തില്‍   സിനിമ കൈമാറുന്നതു് വ്യവസായത്തിനു് വലിയ നഷ്ടമുണ്ടാക്കുന്നു എന്നു് അമേരിക്കയിലെ ചലച്ചിത്ര വ്യവസായികളും പരാതിപ്പെടുന്നുണ്ടു്. എന്നാല്‍  അതു് കൂടുതല്‍പേരെ തിയേറ്ററുകളിലേക്കു് കൊണ്ടുവരാന്‍  സഹായിക്കുന്നുണ്ടു് എന്നും ഒരഭിപ്രായമുണ്ടു്. ഉദാഹരണമായി, 2004ല്‍  ഹാര്‍വാര്‍ഡ് ബിസിനസ് സ്ക്കൂളിലെ ഫെലിക്സ് ഓബര്‍ഹോള്‍സര്‍-ഗീയും (Felix Oberholzer-Gee)  ഉത്തരകരോളിന സര്‍വ്വകലാശാലയിലെ കോള്‍മാന്‍  സ്ട്രംപ്‌ഫും (Koleman Strump)  നടത്തിയ ഒരു പഠനത്തില്‍  കണ്ടതു്  സംഗീതം ഇന്റര്‍നെറ്റില്‍നിന്നു് ഡൌണ്‍ലോഡ് ചെയ്യുന്നതു്  സംഗീത സിഡികളുടെ വില്പനയില്‍  കുറവുവരുത്താന്‍  കാരണമായിട്ടില്ല എന്നാണു്.  2006ല്‍  നടത്തിയ മറ്റൊരു പഠനത്തിന്റെ  ഫലമായി മൈക്കല്‍  സ്മിത്തും രാഹുല്‍  തലാങ്ങും കണ്ടെത്തിയതു് ഇന്റര്‍നെറ്റ് സൌകര്യം വികസിച്ചതനുസരിച്ചു് സിനിമ ഡിവിഡികളുടെ വില്പന വര്‍ദ്ധിക്കുകയാണു് കുറയുകയല്ല ചെയ്തിട്ടുള്ളതു് എന്നാണു്.  2000-03 കാലഘട്ടത്തിലെ ഡിവിഡി വില്പനയുടെ വിവരങ്ങളാണു് അവര്‍  ഈ പഠനത്തിനായി ഉപയോഗിച്ചതു്. സിനിമകളെക്കുറിച്ചുള്ള വിവരങ്ങള്‍  കൂടുതല്‍  പേരുടെ അടുത്തെത്തിക്കാനാണു് ഇന്റര്‍നെറ്റ് സഹായിച്ചതു് എന്നാണിതു് സൂചിപ്പിക്കുന്നതു്. കൂടുതല്‍  ഗാനമേളകളും അങ്ങനെ കൂടുതല്‍ വരുമാനവും  ലഭിക്കാന്‍  നല്ലതു് സ്വതന്ത്രമായി സംഗീതം ഡൌണ്‍ലോഡ് ചെയ്യാന്‍  അനുവദിക്കുന്നതാണു് എന്നു് ജാനിസ് അയന്‍  (Janis Ian)  എന്ന ഗ്രാമ്മി അവാര്‍ഡ് ജേതാവായ അമേരിക്കന്‍  പാട്ടുകാരി ഇന്റര്‍നെറ്റില്‍  എഴുതിയിരിക്കുന്നു (http://news.cnet.com/2010-1071-944488.html).   ഇതെല്ലാം സൂചിപ്പിക്കുന്നതു് സംഗീതവും ചലച്ചിത്രവും മറ്റും ഇന്റര്‍നെറ്റിലൂടെ ഡൌണ്‍ലോഡ് ചെയ്യുന്നതും ``വ്യാജ'' സിഡിയും ഒന്നും ഈ വ്യവസായങ്ങള്‍ക്കു് വലിയ ദോഷം ചെയ്യുന്നില്ല എന്നല്ലേ?

ഇവിടെ റേഡിയോഹെഡ് (Radio Head)  എന്ന ബ്രീട്ടീഷ് സംഗീത ഗ്രൂപ്പിന്റെ കഥ വളരെ പ്രസക്തമാണു്. ഇന്നുള്ള ഏറ്റവും ജനപ്രിയ ഗ്രൂപ്പുകളില്‍  ഒന്നാണവര്‍. 1985ല്‍  രൂപമെടുത്ത ഈ ഗ്രൂപ്പിന്റെ ആദ്യത്തെ ആറു് ആല്‍ബങ്ങളുടെ രണ്ടര കോടി കോപ്പികള്‍  2007 ആയപ്പോഴേക്കു് വിറ്റുകഴിഞ്ഞിരുന്നു. റെക്കാര്‍ഡിങ്ങ് കമ്പനികളുമായുണ്ടായിരുന്ന കരാറുകള്‍  തീര്‍ന്ന സാഹചര്യത്തില്‍  അവര്‍  തങ്ങളുടെ ഏഴാമത്തെ ആല്‍ബം ഇന്റര്‍നെറ്റില്‍  ഡൌണ്‍ലോഡ് ചെയ്യാന്‍  ഇട്ടു. അതിന്റെ വിലയായി അവര്‍  കൊടുത്തിരുന്നതു് ``നിങ്ങള്‍ക്കിഷ്ടമുള്ള തുക'' എന്നായിരുന്നു. ഒരു പൈസയും കൊടുക്കാതെ വേണമെങ്കിലും ഡൌണ്‍ലോഡ് ചെയ്യാമായിരുന്നു. അതില്‍നിന്നു് അവര്‍ക്കു് ധാരാളം പണം ലഭിച്ചു. എന്നിട്ടും ഏതാനും മാസങ്ങള്‍  കഴിഞ്ഞു് അവര്‍  ഇതേ ആല്‍ബം സിഡിയായി പുറത്തിറക്കിയപ്പോള്‍  വില്പനയുടെ കാര്യത്തില്‍  ഇംഗ്ലണ്ടിലും അമേരിക്കയിലും അതു് ഏറ്റവും മുന്നിലെത്തി! ഇന്റര്‍നെറ്റുവഴി ലഭ്യമാക്കിയതുകൊണ്ടു് സിഡിയുടെ വില്പന കുറയില്ല എന്നതിനു് ഇനിയെന്തു തെളിവു് വേണം?

ഈ സാഹചര്യത്തിലാണു് ദി ടണല്‍  (The Tunnel)  എന്ന ആസ്‌ട്രേലിയന്‍  ചിത്രം  മെയ് 18നു് റിലീസ് ചെയ്യുന്നതിനോടൊപ്പം തന്നെ ഒരു അമേരിക്കന്‍  കമ്പനിയുമായി ചേര്‍ന്നു് ബിറ്റ് ടോറന്റ് എന്ന സോഫ്റ്റ്‌വെയറുപയോഗിച്ചു് ഇന്റര്‍നെറ്റിലൂടെ ഡൌണ്‍ലോഡ് ചെയ്യാനുള്ള സംവിധാനവും ഒരുക്കിയതു്. ഇതു് ചിത്രത്തിനു് നല്ല പ്രചാരം നല്‍കാന്‍ സഹായിക്കും എന്ന വിശ്വാസത്തിലാണു് അവര്‍  ഇങ്ങനെ ചെയ്തതു്. ചിത്രം ഇപ്പോള്‍  അവരുടെ  http://www.thetunnelmovie.net/  എന്ന വെബ് സൈറ്റില്‍നിന്നു് ഡൌണ്‍ലോഡ് ചെയ്യാവുന്നതാണു്. ചെലവുകുറച്ചു് നിര്‍മ്മിച്ച ഈ ചിത്രത്തിനു വേണ്ടി ഇന്റര്‍നെറ്റുവഴി തന്നെയാണു് അവര്‍ പണം സ്വരൂപിച്ചതു് എന്നു് അവരുടെ വെബ്‌സൈറ്റില്‍  പറയുന്നു. ഇതിന്റെ സിഡി വിറ്റും തിയേറ്ററുകളില്‍ ഓടിയും ലഭിക്കുന്ന പണമുപയോഗിച്ചു് ചിത്രത്തിനുവേണ്ടി പ്രവര്‍ത്തിയടുത്തവര്‍ക്കു് പ്രതിഫലം നല്‍കും എന്നാണു് അവര്‍  അവകാശപ്പെടുന്നതു്. ആര്‍ക്കും ഡൌണ്‍ലോഡ് ചെയ്യത്തക്ക വിധം ഇന്റര്‍നെറ്റില്‍  ചിത്രം ലഭ്യമാക്കാനായിട്ടാണു് ഇങ്ങനെയെല്ലാം ചെയ്തതു്. ലഭിക്കുന്ന പണം മിച്ചം വന്നാല്‍  അതു് അടുത്ത ചിത്രത്തിന്റെ  പണികള്‍ക്കായി മാറ്റി വയ്ക്കും എന്നവര്‍  പറയുന്നു.

സിനിമ നിര്‍മ്മിക്കുന്നതിനും വിതരണം ചെയ്യുന്നതിനുമുള്ള ഒരു പുതിയ രീതി തന്നെയാണു് ഇവിടെ നാം കാണുന്നതു്. വലിയ സംഖ്യകള്‍  ഈടാക്കുന്ന താരങ്ങളെ ഒഴിവാക്കിയും മറ്റു രീതികളില്‍  ചെലവു കുറച്ചും ചിത്രങ്ങള്‍  നിര്‍മ്മിക്കാനാവും. ചലച്ചിത്ര ആസ്വാദകരെ കള്ളന്മാരായി മുദ്ര കുത്താതെ ആധുനിക സാങ്കേതിക വിദ്യയുടെ സഹായത്തോടെ സിനിമകള്‍  വിതരണം ചെയ്യാനുമാവും. സ്വതന്ത്രമായി ഡൌണ്‍ലോഡ് ചെയ്യാനും പ്രദര്‍ശിപ്പിക്കാനുമുള്ള അവകാശത്തോടെ ഇന്റര്‍നെറ്റില്‍  ലഭ്യമാക്കിയിട്ടുള്ള പതിനഞ്ചോളം ചിത്രങ്ങളുടെ പേരുകള്‍  വിക്കിപ്പീഡിയയില്‍  കാണാം. ഇതേ ഉദ്ദേശ്യത്തോടെ കേരളത്തില്‍  തുടങ്ങിയിട്ടുള്ള പ്രോജക്‌ടാണു് ചാമ്പ എന്ന പേരില്‍  അറിയപ്പെടുന്നതു്. സാംസ്ക്കാരിക ഉത്പന്നങ്ങളുടെ സൃഷ്ടിയിലും വിതരണത്തിലും പുതിയൊരു രീതി വന്നു തുടങ്ങുകയാണു് എന്ന കാര്യത്തില്‍  സംശയമില്ല. അധികകാലം കഴിയുന്നതിനുമുമ്പു് ഈ മാറ്റം ഇന്ത്യയിലും കേരളത്തിലും എത്തുമെന്നതിനും സംശയമില്ല.

by Sasi (noreply@blogger.com) at August 18, 2012 05:31 AM

August 12, 2012

GNUs found grazing at Palakkad Fort

Praveen Arimbrathodiyil blogs here

I was supposed to be taking shell scripting session yesterday, but we couldn’t get a hall arranged and we had to cancel it. So I tought of meeting some students if they were interested. Three students from NSS Palakkad – Ashik, Manoosh and Lal Krishna, turned up 4 O’clock as announced. I could reach only at 4.30. We sat down inside Fort above the temple. We started discussing about problems they faced with Free Software. Ashik mentioned about mp3 not working with totem player on Debian Squeeze and codec install option not popping up. I’m not sure what is missing here. As per my information mp3 coded should be installed by default and totem should ask for codec installation. I told him to try wheezy, anyway they are computer science students and they should be the ones fixing these issues.

Ashik asked the often asked question of being rewarded for one’s hard work and being able to support oneself by selling software. I compared it to knowledge and asked them if Newton was asking money for using his third law (every action has an equal and opposite reaction) when launching rockets? Another example I gave was example of custom software, where some one will have to maintain it (like software for a bank). Free Software would not take away jobs in service industry.

Then they said to contribute to Free Software one should have another job. I asked them why someone go to a lawyer when they can argue their case themselves? They said its for expertise. I told them its the same way Free Software service work. Another example was how teachers help when students can read the text book themselves.

Then I asked them what do they know about Free Software. They had some confusion about how Open Source is different from Free Software. I gave up insisting people use Free Software instead of Open Source sometime back itself. I tell them to understand the difference and choose what they feel comfortable associating themselves with. I also told them to look online for the difference and understand it. Let’s see if they come back with more questions.

At 6 they were closing the inside gate to the Fort. The security guy lost a bit of cool and asked us what did we think when he was visling whether he was calling us for food :) We clearly were at fault as we knew they would close at 6, so I didn’t argue and smiled at his words.

Adhil joined us by then and we continued our discussion about difference between Open Source and Free Software. Some one told them Open Source means some part is hidden and Free Software means everything is free!

For explaining the difference I had to ask them about copyrights. We discussed origin of copyrights and how it is different from a patent. Copyright prohibits copying same code (it doesn’t apply when same thing is created independantly) where as patents prohibit implementing same ideas by different people without license from patent holder.

Then we discussed what licenses are and compared it with a driving license. There are certain conditions for a driving license like you have to follow traffic rules. I told them every license has conditions attached to it. Free Software Foundation and Open Source Initiative both maintain a list of licenses which match their definitions of Free Software and Open Source. Except for one rarely used license every other license on both lists match and practically all Open Source Software are also Free Software. The difference is in their philosohies. When people say Open Source they are interested in the practical aspects only and they don’t want to talk about Freedom.

We also discussed about a program on Septermber 29th in memory of first anniversery of losing our dear friend Jinesh to Lukemia. We will publish a book of his writings and also organize an SMC get together. I also told them we would like the new folks to take initiative and conduct this program. They have offered to take session on introducing Free Software and Malayalam computing. They have also offered to promote this event in their college. I have suggested them to use slidify and latex/beamer to make their presentations.

Ashik and Adhil opened their fast and we joined them for lime juice and samosa. We ended the meeting there. Hoping to see more involvement from them. I hope they will contact me when they get stuck somewhere.

Update 1: Added link to Lal Krishna’s blog.

Update 2: Lal Krishna’s post on the meeting

Update 3: Ashik’s post on the meeting

by Praveen A at August 12, 2012 04:43 PM

August 10, 2012

August 09, 2012

Unlikely lullabies

Solid Smoke

I have no problems in admitting that I'm a terrible singer. I do like music and have my fair share of favourite tracks. But when it comes to putting my musical cords to work, you better be somewhere else.

However, having a 10-month old son has forced me to exercise my singing skills. When the baby needs to sleep and his mother is not around, or when she's not up to the job :-) I have to pitch in. I don't know any of the standard lullaby songs, so as any engineer would do, I make use of what I have.

The following tracks are perhaps the last ones to pass for as lullabies, but nevertheless, these are my, or rather our lullabies:
Apart from these two, I try my hand at Etho varmukilin (G Venugopal, Pookkalam Varavai, 1991), the only track that would qualify for the purpose.

Anyway, in case you are wondering if these songs work, then my answer is yes! At least I try to think so. More than the musical content (or the lack of it), my guess is that he stays calm because he doesn't feel lonely.
My wife says its a good thing that my baby can't talk yet and I can pass for as a singer till he does :-)
Whatever works, right?

by Solid Smoke (noreply@blogger.com) at August 09, 2012 09:23 PM

August 08, 2012

Report on Functional Programming workshop conducted on 5th August 2012

Pramode C.E - The GnuVision Blog

Report on Functional Programming workshop conducted on 5th August, 2012

Aug 8, 2012

The first functional programming workshop by Recursive Labs was conducted on Sunday, 5th August. There were more than 25 participants from various institutions.

One of the participants has a short writeup here.

August 08, 2012 12:00 AM

July 27, 2012

July 22, 2012

rpmbundle - Copy RPMs for offline installation

Solid Smoke

Installing Fedora (and most other free distros) on computers without a fast (and economical) Internet connection is a bit painful since most of the popular multimedia file formats aren't supported out of the box. Being a free distribution, Fedora only supports and includes free and open source software.

Support for all the other patent encumbered formats are available from RPMFusion repository. However, you'll need a fast (and reasonably cheap) Internet connection to download several megabytes worth of RPM files from these repositories.

I present here the steps and a small utility program for copying RPM files from a PC with Internet connection for offline installation at other computers. This can be used to update existing installations or to install new software on stand-alone PCs.


Step 1 - Download RPMs

The simplest way to harvest RPMs is to enable YUM's cache on the source machine. This way, everything YUM fetches on the machine will be available in one place from where we can copy the required ones.
 
To enable yum cache, edit /etc/yum.conf and set keepcache=1 and cachedir to a directory of your choice (for example, cachedir=/mnt/disk/yumcache). Keep in mind that you might be downloading quite a lot of RPMs when you update your computer and install new software and so the cache location must have sufficient free space. Don't forget to manually create the cache directory (/mnt/disk/yumcache).

From now on, every time you install/update a package using YUM, the corresponding RPM file will be available in the cache directory.
For example, when you do something like:
yum install vlc
all RPM files downloaded by YUM (including the VLC package and any other dependency/update packages) will be cached.

Step 2 - Copy RPM files for bundling

When you're ready to copy out files, follow these steps:
mkdir ~/rpms
cd /mnt/disk/yumcache
find -iname *.rpm -exec cp -arvu {} ~/rpms \;
The above commands would copy all RPM files in the cache directory to 'rpms'. The arguments to cp are selected to avoid unnecessarily overwriting existing files in the destination directory.

Step 3 - Removing old versions

One problem with using yum's cache is that it tends to bloat over time. After a while, the cache will contain multiple old versions of the same package files. Although yum should gracefully handle these multiple versions and select the newest version during installation, copying all these files will only serve to increase the size of the offline install bundle. Further, I recently noticed a (probably x86_64 specific) bug that causes problems when you try to install multiple version RPM files of the same package.

So, I cooked up an extremely naive Python script that scans the list of RPMs and deletes the old versions. It will tell you which files are to be kept and which ones are to be deleted and if the user wishes, it will delete the redundant ones too.
Here's how to use it:
cd ~/rpms
./rpmbundly.py
Files to keep:
        anjuta-3.4.3-1.fc17.x86_64.rpm
        apg-2.3.0b-16.fc17.x86_64.rpm
        apper-0.7.2-2.fc17.x86_64.rpm
        argyllcms-1.4.0-2.fc17.x86_64.rpm
        .....
Files to remove:
        apper-0.7.1-5.fc17.x86_64.rpm
        apper-0.7.2-1.fc17.x86_64.rpm
        ...

confirm delete[y/n]:
As you can see from the above example, two old versions of the package apper have been marked for deletion. If the user chooses 'y' for the confirmation, these files will be deleted from the current directory.

You can download the script file from github, or even clone the repository by doing:
git clone git://github.com/syamcr/rpmbundle.git

Step 4 - Copy the RPMs & install on target machine

You need to manually copy the RPM files to the target computer. Note that the distro version and architecture (i686, x86_64 etc.) of both machines must match. You can't use a 32-bit machine to download the RPMs and then try to install them on a 64-bit machine. Nor can you install the RPMs for Fedora 17 on a Fedora 16 installation. Technically, it is possible to download the RPMs matching the target machine on any other machine. But the steps involved are lot more complicated than those described here.

Once you've copied the RPMs to the target machine, you can install them with yum:
cd ~/rpms
yum install *.rpm
Now just sit back and enjoy as yum does all the heavy lifting involved in the installation/updates.

------------------------------------------------


PS: I'm a pathetic noob when it comes to Python programming. This is my first serious Python program and my first upload to github. So feel free to offer advice and suggestions.


by Solid Smoke (noreply@blogger.com) at July 22, 2012 03:49 PM

July 20, 2012

July 14, 2012

The woes of structure packing - #pragma pack

Solid Smoke

We were developing an application on Red Hat Enterprise Linux 5.3 that, among other things, needed to use a PCI interface card for acquiring IRIG-B time codes. The Qt 4.5 based application was first developed without this capability, and later the device driver API was integrated to it. The API had a header file with a class declaration and a corresponding source file containing definitions of the class functions. Integrating the API involved adding these two files to the list of the project's source files and making calls to the API functions.
This integration caused the application to abruptly crash after receiving SIGABRT signal. The reason reported was along the lines of: “*** glibc detected *** application_name: malloc(): memory corruption: 0x092a51c8 ***”.
Being a memory error, we used Valgrind to locate any memory access violations.
We found that the crash always happened at a single statement that dynamically allocated memory using operator new. The statement was inside the constructor for a class object. The allocation statement was something like:

try
{
const unsigned int SIZE = 1024;
char *p = new char[SIZE];
//< SIGABRT here
}
catch(...)
{
//report memory allocation error
}
There was one allocation statement before this code. that just created an object of a class. It was guaranteed to be clean. The program was receiving a SIGABRT and no exception was being thrown. When debugged with gdb, gdb claimed the variable SIZE to be missing (even after making it volatile and compiling with -O0).
When executed with Valgrind memory check tool, Valgrind reported many occurrences of invalid write/read – i.e. beyond memory allocated by operator new.
For example, for instances like these:

class ct;
...
ct *p = new ct;
Valgrind was reporting that operator new had allocated only 103 bytes for *p, although sizeof(ct) reported 112 bytes (as obtained by printing sizeof(ct) in code and also in debugger).
Further, it was observed that the mere inclusion of the API source files in the project caused a crash, even if none of the API functions were actually called.
This made us examine the driver source files and at the very beginning of the 3rd party device driver header file was this line:

#pragma pack(1)
And sure enough, this line was found to be causing all the problems we were observing.

The pragma pack directive

Pragmas are special directives that are used to communicate additional information to the compiler. Pragma directives are therefore non-standard and highly compiler specific. In our case '#pragma pack' (for gcc compiler) changes the maximum alignment of members of structures, unions, and classes subsequently defined.

Data alignment and structure padding

Data objects are generally aligned at specific word boundaries so that read/write operations can be performed efficiently. For example, on x86 platform, integers (32-bit) are generally aligned at 4- byte boundaries, where as 'short int' (16-bit) will be generally aligned at 2-byte boundaries and so on. The alignment rules are platform-specific, and might even change from compiler to compiler, for the same platform.
For a struct (or union or class) having member variables, the members themselves need to be aligned to such boundaries. This requires the compiler to insert additional unnamed data members so that proper alignment is maintained for the member objects. Checkout this example for x86 from Wikipedia.
The size of a struct/union/class object, as reported by operator sizeof, includes the size of these padding bytes. The size of a struct/class object is therefore at least (and not exactly equal to) the sum of the sizes of its members.
More on structure padding here: Data alignment: Straighten up and fly right

Changing the default packing

With the 'pragma pack' directive, it is possible to change the default alignment rule and force a particular maximum alignment boundary. For example,
    #pragma pack(2)
will force all structure (and union and class) members to be aligned at boundaries not larger than multiples of 2. i.e. An 'int' member, which would've been otherwise aligned at a 4-byte boundary, will now be aligned at a 2-byte boundary.
This tighter packing of bytes will obviously reduce the size of the structure objects, but at the cost of performance. Most processors can fetch an aligned word from memory (an atomic operation) faster than words that cross alignment boundaries. Misaligned memory requests cause multiple memory access cycles (therefore not an atomic operation) and this additional complexity adversely affects the performance of the application.
Also, note that while the x86 architecture tolerates misaligned memory access (with a performance penalty, of course), some other processors will terminate the application with a 'Bus error' (SIGBUS).
Forcing a tight alignment might still be useful when dealing with hardware drivers. The struct objects might be directly used for interacting with hardware and the padding bytes might be undesirable here. That may be the reason for using this pragma in the device driver header file.
When we included this file in our project, the pragma directive became active for all struct/class/union definitions in the included header files. This apparently created very confusing problems (gdb's weird reports). The problems we observed with our code were caused by alignment issues for some of the classes for which the pragma directive had become active. Searching the internet, I find that others have also reported problems with #pragma pack and Qt classes.

The solution

The ideal solution is to not change the default natural alignment rules. Pragma directives themselves are generally considered problematic and leading to non-portable code.
If the 'pragma pack' directive cannot be avoided at all (as in the case of a device driver), then the original packing scheme must be restored after the definition of the structures that require tight packing. i.e. the header file must be modified to something similar to:

//push current alignment rules to internal stack
#pragma pack(push)

//force 1-byte alignment boundary
#pragma pack(1)

//the above two lines can be merged to:
//#pragma pack(push,1)

/*
definition of structures requiring
tight packing
*/

//restore original alignment rules from stack

#pragma pack(pop)
The above solution works for GNU, Microsoft and Borland compilers. This should have been implemented in the header file supplied by the manufacturer. For gcc, instead of the push-pop technique, you can also use #pragma pack() to restore the original packing rule.

by Solid Smoke (noreply@blogger.com) at July 14, 2012 08:31 PM

A caveat on using %u with scanf for reading positive integers

Solid Smoke



Do you use scanf() class of functions? Do you use the %u conversion specifier to read positive integer values? Do you use the return value of scanf() as a confirmation of successful operation? If you do, then read on..


The task

Parse a string (e.g. "42") (or a field within a string) to read a positive decimal integer value and validate it by confirming that the string indeed is a positive integer (and not things like "abcd", "-42"). Use the C programming language.


The sscanf method

The scanf class of functions (scanf/sscanf/fscanf) supports several conversions for reading different types of values - integers, floats, strings etc. The conversions to be done on the input are specified by means of a format string argument. A conversion specification typically consists of the  '%' character followed by a character specifying the conversion to be performed. For example, "%d" is for reading 'int' values, "%u" for 'unsigned int' objects, "%s" for strings and so on.
The return value of these functions is the number of of input items successfully matched and assigned.

So the most straight forward solution is to use scanf() with %u conversion to read an 'unsigned int' and check its return value to confirm the operation was successful:

Listing-1:
char str[] = "42";
int ret;
unsigned int val;
   
ret = sscanf(str, "%u", &val);
if(ret == 1)
    printf("success: %u\n", val);
else
    printf("failed\n");
As such, the above code prints "success: 42" and seems to work fine. It also prints "failed" for non-numeric inputs.

Can you spot any problems with listing-1? For the time being, we can ignore the fact that it converts only the initial part of the string and will stop at the first invalid character. i.e. for inputs such as "42abcd" and "42.5", sscanf() will return 1 (indicating a successful conversion) and the converted value will be 42. This is a common nuisance when processing the last field of a string.

So, problem solved? Not quite!


The caveat


Testing the code in listing-1 with a negative integer as input produces a surprising (at least for me) result:

Listing-2:
char str[] = "-5";
int ret;
unsigned int val;
   
ret = sscanf(str, "%u", &val);
if(ret == 1)
    printf("success: %u\n", val);
else
    printf("failed\n");
The output of listing-2 (with gcc v4.7 on glibc/Linux) is:
"success: 4294967291".
i.e. even though the input is negative, sscanf returns 1 indicating that it made a successful 'unsigned int' conversion.

Is this really valid behaviour, or a compiler bug??

Unfortunately, the behaviour is perfectly valid; says the ISO C language standard. Here's what the standard (c99) says about the 'u' conversion for fscanf() (the emphasis is mine):

"Matches an optionally signed decimal integer, whose format is the same as expected for the subject sequence of the strtoul function with the value 10 for the base argument. The corresponding argument shall be a pointer to unsigned integer."
Okay. So the input can be optionally signed and the rules of the conversion is essentially same as those for strtoul(), another C library function. To understand further, we must necessarily refer to the documentation of strtoul(). And so it goes:
If the subject sequence begins with a minus sign, the value resulting from the conversion is negated (in the return type).
There you have it. The behaviour of %u with scanf is identical to that of strtoul(). And strtoul() considers a negative number as a valid input. For such values, the function returns the negative number in its unsigned form (i.e. 2's complement for most platforms).

Because of this, when using scanf(), there's no direct way to know if the input really was positive.


The solution

If the acceptable range of inputs is representable by a signed int, then you can use %d instead of %u and use a plain 'int' object to hold the value. You must check the return value of scanf() and then check the value of the converted integer to be within the required limits (i.e. greater than zero and less than some upper limit).

However, if you need to read huge numbers that can be represented only by the unsigned int type, then you must use some other indirect method. One way would be to use %s to read the field as a string first, and then check if the first character is not a '-' sign. Once that is clear, use strtoul() to perform the conversion. One additional benefit of this method is that strtoul() will tell you if there were any additional invalid characters in the input - use the second argument to get a pointer to the first invalid character, which should be the terminating null character if the whole string was successfully converted. With this scheme, invalid inputs such as "42abcd" and "42.5" can be successfully caught.


Conclusion


Avoid using %u with scanf() class of functions. In most practical cases, the range of acceptable values will be sufficiently small to fit in a signed integer. So use %d to read a plain 'int' and then check if the value is negative.


The 'u' conversion is useful only if you really want to read in huge positive numbers that are not representable by a signed int.


So, check your code to see if you have any instances where %u is used to read positive integers and the return value of scanf() is used as a confirmation of valid input.

by Solid Smoke (noreply@blogger.com) at July 14, 2012 08:29 PM

Mocking my intelligence - 1

Solid Smoke

I got this SMS a couple of days back and almost literally LOL'd


Choose any one soap
PEARS
LUX
DOVE
DETTOL
HAMAM
& Know wats ur lover think
about you on ur first meeting!! SMS SP
to ???????? at Rs.3/MT

I wonder how many poor souls actually fall for these things!

by Solid Smoke (noreply@blogger.com) at July 14, 2012 05:46 PM

July 06, 2012

ഇരവില്‍ വിരിയും പൂ പോലെ?

Solid Smoke

ശ്യാമപ്രസാദിന്റെ ഏറ്റവും പുതിയ സിനിമയായ "അരികെ - so close" -ലെ 'ഇരവില്‍ വിരിയും പൂ പോലെ' എന്ന ഗാനം റേഡിയോവില്‍ കേല്‍ക്കാന്‍ ഇടയായി. പാട്ടു കേട്ടപ്പോള്‍ എവിടെയോ കേട്ടുമറന്ന മാതിരി. ഒടുവില്‍ തപ്പി കണ്ടുപിടിച്ചു.
ഔസേപ്പച്ചന്‍ ഈണം നല്കി, മംത മോഹന്‍ദാസ് ആലപിച്ച ഈ ഗാനത്തിന് ആമിര്‍ (2008) എന്ന ഹിന്ദി ചിത്രത്തിലെ 'ഏക് ലോ ഇസ് തരഹ്' (ആലാപനം ശില്പ റാവു, സംഗീതം അമിത് ത്രിവേദി) എന്ന ഗാനവുമായി അനിഷേദ്ധ്യമായ സാമ്യമുണ്ട്.

ഈ രണ്ട് ഗാനങ്ങളും ഒന്ന് കേട്ടു നോക്കൂ..

എന്ത് തോന്നുന്നു?
 

by Solid Smoke (noreply@blogger.com) at July 06, 2012 08:08 PM

മേല്‍വിലാസം - Movie Review

Solid Smoke


സൂര്യ കൃഷ്ണമൂര്‍ത്തിയുടെ തിരക്കഥ അടിസ്ഥാനമാക്കി മാധവ് രാമദാസന്‍ സംവിധാനം ചെയ്ത ഈ സിനിമ ഇറങ്ങിയിട്ട് കുറേ കാലമായെങ്കിലും, പലര്‍ക്കും ഇങ്ങനൊരു സിനിമ ഉണ്ടെന്ന് പോലും അറിയില്ലെന്ന് തോന്നുന്നു. അതുകൊണ്ട് വൈകിയാണെങ്കിലും എന്റെ വക ദാ ഇവിടെ..

ഒരു പട്ടാള ഓഫീസറെ വെടിവച്ചു കൊല്ലുകയും മറ്റൊരു ഓഫീസറെ കൊല്ലാന്‍ ശ്രമിക്കുകയും ചെയ്ത കുറ്റത്തിന് ഒരു സാദാ ജവാനെ (ജവാന്‍ അല്ല, സവാര്‍ ആണത്രേ) പട്ടാളക്കോടതി വിചാരണ (court-martial) ചെയ്യുന്നതാണ് കഥ. സിനിമ മുഴുവനും ഈ ഒറ്റമുറിയില്‍ നടക്കുന്ന സംഭവങ്ങളാണ്.
പ്രതിയായ സവാര്‍ രാമചന്ദ്രന്‍ (പാര്‍ത്ഥിപന്‍) കുറ്റസമ്മതം നടത്തുന്നുവെങ്കിലും അയാള്‍ക്കായി നിയോഗിക്കപ്പെട്ടിട്ടുള്ള defense counsel ക്യാപ്റ്റന്‍ വികാസ് റായ് (സുരേഷ് ഗോപി) കോടതിയില്‍ അയാളുടെ മൗനത്തിനു പിന്നിലെ സത്യം തേടുന്നു. ഒരു open and shut case എന്ന് എഴുതിത്തള്ളിയേക്കാവുന്ന സംഭവം അങ്ങനെ കൂടുതല്‍ സങ്കീര്‍ണ്ണമാകുന്നു. വിചാരണക്കോടതിയുടെ കര്‍ക്കശക്കാരനായ പ്രിസൈഡിങ്ങ് ഓഫീസറായ കേണല്‍ സൂരത് സിങ്ങ് എന്ന കഥാപാത്രത്തെ അവതരിപ്പിക്കുന്നത് തമിഴ് നടനായ തലൈവാസല്‍ വിജയ്. അശോകന്‍, കൃഷ്ണകുമാര്‍, നിഴല്‍ഗള്‍ രവി എന്നിവര്‍ മറ്റു കഥാപാത്രങ്ങളെ അവതരിപ്പിക്കുന്നു.


സൂര്യ കൃഷ്ണമൂര്‍ത്തിയുടെ തന്നെ ഇതേ പേരിലുള്ള ഒരു നാടകമാണ് തിരക്കഥയ്ക്കാധാരം. സ്വദേശ് ദീപകു് എഴുതിയ 'കോര്‍ട്ട് മാര്‍ഷല്‍' (1991) എന്ന ഹിന്ദി നാടകമാണ് 'മേല്‍വിലാസം' എന്ന നാടകത്തിനാധാരം. (ചിത്രത്തിന്റെ ഓപ്പണിങ്ങ് ക്രെഡിറ്റ്സില്‍ 'the source of inspiration to write the script is a Hindi story by Prof. Swadesh Deepak' എന്നാണ് സൂര്യ കൃഷ്ണമൂര്‍ത്തി എഴുതിയിരിക്കുന്നത്. വരികള്‍ക്കിടയിലൂടെ വായിക്കണോ ആവോ..).


എന്തായാലും സിനിമയുടെ സംഭാഷണങ്ങള്‍ വളരെ നാടകീയമാണ്. നാടകത്തില്‍ നിന്ന് സിനിമയിലേക്കുള്ള ദൂരം ഏറെ തന്നെ എന്ന് ഈ സിനിമ കാട്ടിത്തരുന്നു. ഒട്ടു മിക്ക രംഗങ്ങളും, സംഭവങ്ങളും സംഭാഷണങ്ങളും എല്ലാം സിനിമയേക്കാള്‍ നാടകങ്ങള്‍ക്ക് യോജിച്ചവയാണെന്ന് തോന്നും. കാഴ്ചക്കാര്‍ ബുദ്ധി കുറവുള്ളവരാനെന്നും കാര്യങ്ങളെല്ലാം വളരെ സ്പഷ്ടമായി സംഭാഷണങ്ങളില്‍ ഉള്‍കൊള്ളിച്ചാല്‍ മാത്രമേ അവര്‍ക്ക് വല്ലതും മനസ്സിലാവൂ എന്ന മട്ടിലാണ് കഥാപാത്രങ്ങളുടെ സംസാരം. കേന്ദ്ര കഥാപാത്രങ്ങളൊഴിച്ചുള്ളവരുടെ വരികള്‍ തികച്ചും അസ്വാഭാവികം.

ചിത്രത്തിന്റെ കഥ അല്പം കാലഹരണപ്പെട്ടതാണെന്നാണ് എന്റെ അഭിപ്രായം. ഒരു പക്ഷേ നമ്മള്‍ തെക്കേ ഇന്ത്യക്കാരായത് കൊണ്ട് തോന്നുന്നതാവാം. എങ്കിലും ഇത് ഒരു രസംകൊല്ലിയാവുന്നില്ല എന്നത് സമാധാനം. ആകെ മൊത്തം A Few Good Men, 12 Angry Men എന്നീ ഹോളിവുഡു് സിനിമകളെ ഓര്‍മ്മപ്പെടുത്തുന്ന അന്തരീക്ഷം.

അഭിനേതാക്കളുടെ കാര്യമെടുക്കാം. പാര്‍ത്ഥിപന്‍ മികച്ചുനിന്നപ്പോള്‍ സുരേഷ് ഗോപി അലോസരപ്പെടുത്തി. ഇത്രയും പരിചയസമ്പന്നനായ ഒരു നടന്‍ എന്തിനാണ് യാതൊരു നിയന്ത്രണവുമില്ലാതെ ഇങ്ങനെ അമിതമായ നാടകീയത കലര്‍ത്തി ഡയലോഗുകള്‍ പറയുന്നതെന്ന് മനസ്സിലാകുന്നില്ല (ഇപ്പോള്‍ ടിവിയില്‍ ഓടുന്ന "നിങ്ങള്‍ക്കും ആകാം കോടീശ്വരനിലെ" പ്രകടനവും വ്യത്യസ്തമല്ല).  തലൈവാസല്‍ വിജയ് വളരെ മോശം. ചിത്രത്തിന്റെ അവസാന രംഗങ്ങളില്‍ ഇദ്ദേഹത്തിന്റെ പ്രകടനം അസഹനീയമാണ്. ബാക്കിയുള്ളവര്‍ക്ക് കാര്യമായൊന്നും ചെയ്യാനില്ലെങ്കിലും കൃഷ്ണകുമാറും രവിയും തരക്കേടില്ലാത്ത പ്രകടനം കാഴ്ചവച്ചിരിക്കുന്നു.

ആകെ മൊത്തം ഇതൊരു ഭേദപ്പെട്ട ചിത്രമാനെന്നാണ് എന്റെ അഭിപ്രായം. മുകളില്‍ പറഞ്ഞ ന്യൂനതകള്‍ ഉണ്ടെങ്കിലും പ്രോത്സാഹിക്കപ്പെടേണ്ട ഒരു സിനിമ തന്നെയാണ് മേല്‍വിലാസം. ഈ സിനിമ ചാനലുകളിലോ മറ്റോ കാണാന്‍ അവസരം കിട്ടിയാല്‍ നഷ്ടപ്പെടുത്തണ്ട.






by Solid Smoke (noreply@blogger.com) at July 06, 2012 12:13 PM

July 04, 2012

Report on our first Raspberry Pi "Demo Day"!

Pramode C.E - The GnuVision Blog

Report on our first Raspberry Pi "Demo Day"!

Jul 4, 2012

Report on Raspberry Pi demo day (From my Recursive Labs blog)

July 04, 2012 12:00 AM

June 30, 2012

Raspberry Pi Demo Day on July 1st!

Pramode C.E - The GnuVision Blog

Raspberry Pi Demo Day on Sunday, July 1st!

Jun 30, 2012

Raspberry Pi Demo Day on July 1st (from my Recursive Labs blog)

June 30, 2012 12:00 AM

June 29, 2012

സൌരേതരഗ്രഹത്തെ ബാഷ്പീകരിച്ച് ഒരു സ്റ്റെല്ലാര്‍ ഫ്ലയര്‍

കിഴക്കുനോക്കിയന്ത്രം


'പൊള്ളുന്ന വ്യാഴം??' എന്തോ ഒരു പന്തികേട് അല്ലേ? വാതകഗോളമായ നമ്മുടെ വ്യാഴം വല്ലാതെ തണുത്ത ഒരു ഗ്രഹം തന്നെ. പൊള്ളുന്ന വ്യാഴം പക്ഷേ നമ്മുടെ വ്യാഴമല്ല. HD 189733b എന്നു പേരിട്ടിരിക്കുന്ന ഒരു സൌരേതരഗ്രഹമാണ്. വ്യാഴത്തെപ്പോലെ തന്നെയാണ് ഇതിന്റെയും ഘടന. അല്പം വലിപ്പക്കൂടുതലുണ്ടെന്നേയുള്ളൂ. കേന്ദ്രനക്ഷത്രത്തില്‍ നിന്നും വെറും 50 ലക്ഷം കിലോമീറ്റര്‍ മാത്രം അകലെയാണ് ഈ ചങ്ങാതിയുടെ നില്‍പ്പ്. HD 189733A എന്നു പേരുള്ള നക്ഷത്രമാകട്ടെ നമ്മുടെ സൂര്യനേക്കാള്‍ അല്പം ചെറുതാണ് എന്നു മാത്രം.




Alien Flare (splash)
(നക്ഷത്രത്തില്‍ നിന്നുമുള്ള ദ്രവ്യക്കാറ്റുമൂലം ബാഷ്പീകരിക്കപ്പെടുന്ന ഗ്രഹം - ചിത്രകാരഭാവന)

ഇപ്പോള്‍ ഇതു പറയാന്‍ കാരണം ഒരു കാര്യമുണ്ട്. ഈ ഗ്രഹത്തിന്റെ അന്തരീക്ഷത്തെയാകെ മാറ്റി മറിച്ച് ഒരു പ്രതിഭാസം അവിടെ സംഭവിച്ചു. സൂര്യനില്‍ നിന്നും ഇടയ്ക്കിടെ അതിലെ ദ്രവ്യം പുറത്തേക്ക് അതിവേഗത്തില്‍ തെറിച്ചുപോകാറുണ്ട്. ഏതാണ്ടു അതുപോലെ പക്ഷേ അസാധാരണമായ അളവില്‍ ഈ നക്ഷത്രത്തില്‍ നിന്നും ദ്രവ്യത്തിന്റെ ഒരു തെറിച്ചുപോക്കുണ്ടായി. ഈ നക്ഷത്രക്കാറ്റില്‍പ്പെട്ട് നക്ഷത്രത്തെ ചുറ്റിയിരുന്ന ഗ്രഹത്തിന്റെ അന്തരീക്ഷത്തിലെ വാതകത്തിന്റെ ഒരു വലിയ അളവ് നഷ്ടപ്പെട്ടു. ഓരോ സെക്കന്റിലും 1000 ടണ്‍ എന്ന കണക്കിനാണത്രേ ഗ്രഹത്തിന് ദ്രവ്യനഷ്ടമുണ്ടായത്.
രണ്ടു വ്യത്യസ്ത നിരീക്ഷണങ്ങളാണ് ഇങ്ങനെയൊരു നിഗമനത്തിലേക്ക് ശാസ്ത്രജ്ഞരെ എത്തിച്ചത്. ഹബിള്‍ സ്പേസ് ടെലിസ്കോപ്പാണ് 2010 ല്‍ ഈ ഗ്രഹത്തെ കണ്ടത്തിയത്. അന്തരീക്ഷത്തെക്കുറിച്ച് കൂടുതല്‍ വിവരങ്ങള്‍ നമുക്കു നല്‍കിയത് പക്ഷേ ഹബിള്‍ തന്നെ നടത്തിയ 2011 ലെ നിരീക്ഷണമായിരുന്നു.
സെക്കന്റില്‍ 1000 ടണ്‍ എന്ന കണക്കില്‍ ദ്രവ്യം നഷ്ടപ്പെടുന്ന കാഴ്ച! ഈ നിരീക്ഷണത്തിന് ഏതാണ്ട് 8 മണിക്കൂര്‍ മുന്‍പ് സിഫ്റ്റ് എക്സ്-റേ ടെലിസ്കോപ്പ് മറ്റൊരു കാഴ്ച കണ്ടു. നമ്മുടെ ഈ നക്ഷത്രത്തില്‍ നിന്നും ശക്തമായ ഒരു ഫ്ലയര്‍! ഈ രണ്ടു നിരീക്ഷണങ്ങളുടെയും അടിസ്ഥാനത്തിലാണ് പുതിയ നിഗമനത്തില്‍ ശാസ്ത്രജ്ഞര്‍ എത്തിച്ചേര്‍ന്നിരിക്കുന്നത്
.

by ടോട്ടോചാന്‍ (noreply@blogger.com) at June 29, 2012 01:01 PM

June 28, 2012

June 22, 2012

EZ430 Chronos and the BeagleBone

Pramode C.E - The GnuVision Blog

EZ430 Chronos and the BeagleBone

Jun 22, 2012

EZ430 Chronos and the BeagleBone (from my Recursive Labs blog)

June 22, 2012 12:00 AM

June 20, 2012

Report on Jun 17th BeagleBone workshop

Pramode C.E - The GnuVision Blog

Report on Jun 17th BeagleBone workshop

Jun 20, 2012

Report on Jun 17th BeagleBone workshop (from my Recursive Labs Blog)

June 20, 2012 12:00 AM

June 15, 2012

June 13, 2012

Quick MySQL to CouchDB migration with Python

Jaggu's world

I used to play a lot with text databases. Today I was just thinking of migrating some of my data collection to CouchDB. I used the following script to convert one of my DB table (Almost all fields are TEXT) to a CouchDB collection.

#!/usr/bin/env python
import couchdb
import MySQLdb as mdb
couch = couchdb.Server()
db = couch.create('YOUR_COLLECTION_NAME')
con = mdb.connect(host='HOST_NAME',user='YOU',passwd='YOUR_PASS',db='YOUR_DB')
cur = con.cursor(mdb.cursors.DictCursor)
command = cur.execute("SELECT * FROM YOUR_DB_TABLE")
results = cur.fetchall()
for result in results:
    db.save(result)

The DictCursor in Python MySQLdb API was a great help in creating fields and values in CouchDB collection. As my table contained text data only the operation was smooth and I was able to migrate about 1 GB data to CouchDB. But !!! life is not easy if your text data have encoding issues or junk values that can't be converted to Unicode you are in trouble. Don't worry here comes the solution; replace the last two lines in the code with below given code.

for result in results:
    k = result.keys()
    v = result.values()
    v = [repr(i) for i in v]
    d = dict(zip(k,v))
    db.save(d)

Hmm so far so good. But I tried the same code with a different table where the structure is like:

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| ID    | int(11)      | NO   | PRI | NULL    | auto_increment |
| NAME  | varchar(30)  | NO   |     |         |                |
| PRICE | decimal(5,2) | NO   |     | 0.00    |                |
+-------+--------------+------+-----+---------+----------------+

Now the code thrown a big list of error. Life is not easy !! have to find a good solution for this ... Happy hacking !!!!

by jaganadhg at June 13, 2012 07:06 PM

June 12, 2012

June 11, 2012

Using the ChibiOS virtual timer

Pramode C.E - The GnuVision Blog

Using the ChibiOS virtual timer

Jun 11, 2012

Using the ChibiOS virtual timers (from my Recursive Labs blog)

June 11, 2012 12:00 AM

June 07, 2012

June 06, 2012

വിസ്മയിപ്പിച്ച് ശുക്രസംതരണം

കിഴക്കുനോക്കിയന്ത്രം

അപൂര്‍വമായ ശുക്രസംതരണം എല്ലാവര്‍ക്കും വിസ്മയമായി മാറി. രാവിലെ സൂര്യനുദിച്ചപ്പോള്‍ മുതല്‍ സൂര്യബിംബത്തില്‍ ഒരു കറുത്ത പൊട്ടായി ശുക്രനും ഉണ്ടായിരുന്നു. സൂര്യബിംബത്തിലേക്ക് ശുക്രന്‍ കടക്കുന്നതു കാണാനുള്ള അവസരം നമുക്കാര്‍ക്കും ഉണ്ടായിരുന്നില്ല. തിരുവനന്തപുരം പ്ലാനറ്റോറിയത്തില്‍ ശുക്രസംതരണം വീക്ഷിക്കുവാനുള്ള സംവിധാനങ്ങള്‍ ഒരുക്കിയിരുന്നു. രാവിലെ മഴമേഘങ്ങള്‍ ചതിക്കുമോ എന്നായിരുന്നു പേടി. പേടി അസ്ഥാനത്തായില്ല. കാണാന്‍ പോകാനായി ഇറങ്ങിയപ്പോള്‍ തന്നെ മഴ! മഴമാറിയപ്പോള്‍ തന്നെ സൂര്യന്‍ മേഘങ്ങളില്‍ നിന്ന് വിടുതല്‍ നേടി പ്രത്യക്ഷമായി. അല്പനേരം വീക്ഷിച്ചപ്പോഴേക്കും വീണ്ടും മേഘങ്ങളുടെ ശല്യം. പക്ഷേ അതിനു ശേഷം 7.30 മുതല്‍ 8.45 വരെ വലിയ ശല്യം ഉണ്ടായില്ല. പ്ലാനറ്റോറിയത്തിന്റെ മുറ്റത്തൊരുക്കിയ രണ്ട് പ്രതിഫലനടെലിസ്കോപ്പുകളില്‍ നിന്നും വെളുത്ത പ്രതലത്തിലേക്ക് സൂര്യന്റെ പ്രതിബിംബത്തിന്റെ പ്രൊജക്ഷന്‍. വളരെ ആസ്വദിച്ച് ആവേശത്തോടെ അവിടെ കൂടിയിരുന്ന എല്ലാവരും സൂര്യബിംബത്തിനു മുന്നിലൂടെയുള്ള ശുക്രന്റെ യാത്ര ആസ്വദിച്ചു. സംതരണത്തിന്റെ അവസാനഭാഗങ്ങള്‍ കാണാന്‍ മണ്‍സൂണ്‍ മേഘങ്ങള്‍ അനുവദിച്ചില്ല. 10.20 ഓടെ ശുക്രസംതരണം അവസാനിച്ചു. ഇനി 105 വര്‍ഷങ്ങള്‍ക്കു ശേഷം ശുക്രസംതരണം വീണ്ടും കാണാമെന്ന പ്രതീക്ഷ!യോടെ എല്ലാവരും അവരവരുടെ സങ്കേതങ്ങളിലേക്ക്....


 
(ചിത്രത്തില്‍ അമര്‍ത്തി കൂടുതല്‍ കാഴ്ചകള്‍ ആസ്വദിക്കൂ..)

by ടോട്ടോചാന്‍ (noreply@blogger.com) at June 06, 2012 08:36 PM

June 04, 2012

June 01, 2012

ഡെബിന്‍ ഡെവലപ്പറിലേയ്ക്കുള്ള യാത്ര

Praveen Arimbrathodiyil Blogs here

ഞാന്‍ കമ്പ്യൂട്ടറുമായി പരിചയത്തില്‍ വരുന്നതു് എട്ടാം ക്ലാസിലാണു്. അന്നു് എംഎസ് ഡോസായിരുന്നു ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റം. പിന്നീടു് എഞ്ചിനീയറിങ്ങിനു് കോഴിക്കോട് എന്‍ഐടിയില്‍ പടിയ്ക്കുമ്പോഴാണു് വീണ്ടും കമ്പ്യൂട്ടറുമായി അടുക്കുന്നതു്. രണ്ടു് വര്‍ഷം പ്രീഡിഗ്രി കാലത്തു് എന്‍ട്രന്‍സ് പരീക്ഷ മാത്രമായിരുന്നു് ലക്ഷ്യം :( കോഴിക്കോട് വച്ചു് സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍ പരിചയപ്പെടുകയും ഒരു സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍ ഉപയോക്താവും വക്താവുമായി. പക്ഷേ സ്വതന്ത്ര സോഫ്റ്റ്‌വെയറില്‍ സംഭാവന നല്‍കി തുടങ്ങാന്‍ വിണ്ടും വര്‍ഷങ്ങളെടുത്തു. ബാംഗ്ലൂരില്‍ വച്ചാണു് ഡെബിയന്‍ ഇന്‍സ്റ്റോളറിന്റെ മലയാളം പരിഭാഷ ചെയ്തു് തുടങ്ങുന്നതു്. അന്നു് ഓണ്‍ലൈന്‍ കീബോര്‍ഡ് വഴി മലയാളം ടൈപ്പ് ചെയ്താണു് തുടക്കം. ആ സംരംഭത്തോടെയാണു് സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് രണ്ടാമതും സജീവമായതു്. പിന്നീടു് കുറേക്കാലം സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങില്‍ സജീവമായിരുന്നു. ഗ്നോം, കെഡിഇ തുടങ്ങിയവയുടെ പരിഭാഷയും പല ഒത്തുചേരലുകളുമായി നടന്ന സമയം.

റെഡ് ഹാറ്റ് പൂനെയിലെ സഹപ്രവര്‍ത്തകനായ കുശല്‍ ദാസെഴുതിയ ലെഖോനി (lekhonee-gnome) എന്ന വേര്‍ഡ്പ്രസ്സ് ബ്ലോഗ് ക്ലയന്റിനെ ഡെബിയനില്‍ ചേര്‍ത്താണു് വിണ്ടും ഡെബിയനില്‍ സജീവമായതു്. പിന്നീടു് പുതിയ കെഡിഇ പതിപ്പിനു് വേണ്ടി ഡിബസ് മെനു ലൈബ്രറിയുടെ ക്യൂട്ടി പതിപ്പു് (libdbusmenu-qt) ഡെബിയനില്‍ ചേര്‍ത്തു. ഡയാസ്പുറ വികേന്ദ്രീകൃത സോഷ്യല്‍ നെറ്റ്‌വര്‍ക്ക് സോഫ്റ്റ്‌വെയറിനെ ഡെബിയനില്‍ ചേര്‍ക്കാനുള്ള ശ്രമമാണു് കൂടുതല്‍ സമയം ഡെബിയനില്‍ ചെയവഴിയ്ക്കാന്‍ കാരണമായതു്. ഈ ശ്രമം റൂബി പാക്കേജിങ്ങ് സംഘവുമായി ചേര്‍ന്നു് പ്രവര്‍ത്തിയ്ക്കാന്‍ സഹായിച്ചു. ഡയാസ്പുറ വളരെയധികം (നൂറിലധികം) റൂബി ലൈബ്രറികളുകയോഗിയ്ക്കുന്നതിനാല്‍ ഈ ശ്രമം ഇപ്പോഴും തുടരുകയാണു്. കൂടുതല്‍ ആളുകളുടെ സഹായം പ്രതീക്ഷിച്ചു് പല സ്ഥലങ്ങളില്‍ ഡെബിയന്‍ പാക്കേജിങ്ങ് പഠിപ്പിച്ചു.

ഈ ശ്രമത്തിലൂടെ പുതിയ പലരേയും ഡെബിയന്‍ കൂട്ടായ്മയുമായി അടുപ്പിയ്ക്കാന്‍ കഴിഞ്ഞതില്‍ സന്തോഷമുണ്ടു്. ഡെബിയന്‍ മെയിന്റൈനറാവാന്‍ (DM - സ്വന്തം പാക്കേജുകളുടെ പുതിയ പതിപ്പുകള്‍ ഡെബിയനില്‍ ചേര്‍ക്കാനുള്ള അനുവാദം) ഗുജറാത്തില്‍ നിന്നുള്ള കാര്‍ത്തിക് മിസ്ത്രിയും ഫ്രാന്‍സിലെ ക്രിസ്ത്യന്‍ പെറിയറും ശുപാര്‍ശ ചെയ്തു. പിന്നീടു് ഡെബിയന്‍ ഡെവലപ്പറാകാന്‍ (പുതിയ പാക്കേജുകള്‍ ചേര്‍ക്കാനും പുതിയ ആളുകള്‍ക്കു് അവരുടെ പാക്കേജുകള്‍ ഡെബിയനില്‍ ചേര്‍ക്കാന്‍ സഹായിയ്ക്കുവാനും ഡെബിയന്‍ പ്രൊജക്റ്റിന്റെ നേതാവിനെ തിരഞ്ഞെടുക്കാനുള്ള വോട്ടെടുപ്പില്‍ വോട്ടു് രേഖപ്പെടുത്താനും മറ്റു് നയപരമായ തീരുമാനങ്ങളില്‍ വോട്ടു് ചെയ്യാനും അനുവാദം) ക്രിസ്ത്യന്‍ പെറിയറാണു് ശുപാര്‍ശ ചെയ്തുതു്. പിന്നീടു് നാലു് മാസം ഡച്ച് ഡെബിയന്‍ ഡെവലപ്പറായ തിജിസ് കിങ്ക്ഹോസ്റ്റാണു് സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍ ആശയങ്ങള്‍, പകര്‍പ്പവകാശ അനുമതി പത്രങ്ങള്‍, ഡെബിയന്റെ പ്രവര്‍ത്തന രീതികള്‍, പാക്കേജിങ്ങ് മറ്റു് സാങ്കേതിക കഴിവുകള്‍ എന്നിവ പരിശോദിച്ചു് ഇപ്പോള്‍ ഡെബിയന്‍ ഡെവലപ്പറാക്കാനുള്ള ശുപാര്‍ശ നല്‍കിയതു്. രണ്ടു് മൂന്നു് സാങ്കേതിക പടികള്‍ കൂടി കടന്നാല്‍ വോട്ടു് ചെയ്യാനും നേരിട്ടു് പാക്കേജുകള്‍ ഡെബിയനില്‍ ചേര്‍ക്കാനുമാകും.

June 01, 2012 03:09 PM

Northern railway bed sheet

abundance of the heart

As all of you know, most Indic languages use unique scripts for writing the language while some share a common script, such as Devanagari (for Hindi, Marathi, Sanskrit, Nepali and Bhojpuri).

A very interesting phenomenon in Indic languages is the usage of numerals. All Indic languages use its own script for representing the text, but the situation is very different when some one need to represent the numerals. Even though most Indic scripts has its own unique glyphs/symbols (see the following table) for representing numerals, many use Arabic numerals (or Indo-Arabic numerals) instead of language’s own numeral glyphs. (For those who do not know, the official name for the 0,1 2, 3…9 that we use in our daily lives is Arabic numerals! It has many names: Arabic numerals, West Arabic numerals, Hindu numerals, Indo-Arabic numerals, Hindu-Arabic numerals, to name a few :) , but many of us refer them as English or Roman or international numerals).

Here are the numerals of indic languages from the most popularly used numeral systems.

Arabic/West Arabic/Indo-Arabic

0

1

2

3

4

5

6

7

8

9

Asomiya (Assamese)

Bangla

Devanagari

Gujarati

Gurmukhi

Kannada

Malayalam

Oriya

Tamil

Telugu

Urdu

۰

۱

۲

۳

۴

۵

۶

۷

۸

۹

Those of you familiar with any one of these languages will quickly realize that many of us do not use these numerals in our daily life – as Arabic numerals are now the norm in many languages. There are some exceptions though. More details about this is there in the next few sections.

Current status of numerals in Indic languages

Non-Devanagri languages

All Dravidian languages except Kannada (to some extent) have transitioned to Arabic numerals with media, printing industry and entertainment almost entirely on them. Even school text books have gone down this road. Tamil, Telugu, and Malayalam now use Arabic numerals almost exclusively for everything. The majority of the current generation of the speakers of these languages cannot even identify the numerals of their own mother language. The wikipedias in these languages (Tamil, Telugu, and Malayalam) also completely moved to Arabic numerals.

Kannada is an exception in this regard. Having lived in Bangalore for many years, I have seen Kannada numerals used for bus numbers and elsewhere. (It is actually thanks to this use of Kannada along with English in public space that I learned to read and write Kannada quickly (including numerals!)). Some Kannada text books also use Kannada numerals such as the 10th standard textbooks. (Incidentally, isn’t it wonderful that you can download these for free from an official website!) However, the situation is not so in media (print, online or TV) – where most use Arabic numerals.

So while Malayalam, Tamil & Telugu Wikipedias – use Arabic numerals, Kannada uses its own numerals. However, I have been observing that the new editors coming to Kannada wikipedia mostly tend to start off with Arabic numerals – as it takes a bit of time for them to realise that the preferred numerals on Kannada wikipedia are the Kannada ones. But it is good to note that most Kannadigas are familiar with Kannada numerals, which is not the case for other dravidian languages. In Kannada wikipedia a few community members are of the opinion that Arabic numerals should be used for articles related to science, mathematics, and technology.

Interestingly, Bengali and Assamese language speakers also user their own numerals every where, and Wikipedias also use them. I got the opportunity to see the usage of Assamese numerals in newspapers, books, and elsewhere when I visited Assam for the Assamese wikipedia workshops. Wikipedians from these 2 languages are making major efforts to make sure that all complex Wikimedia templates support their numerals also. This is even more laudable when one considers that the support for non-Arabic numerals is very less now when it comes to complex programs. The work they are doing will benefit all languages that use non-Arabic numerals.

The case is almost similar with Gujarati, Odia, and Punjabi languages where speakers use respective numerals in most places even though TV channels/news papers in some case use Arabic numerals.

Devanagari Languages

By Devagri languages I mean the languages that use devanagri script. Some major languages that use devanagri are Hindi, Marathi, Nepali, Sanskrit, Bhojpuri, and so on. The majority of the speakers of Devanagari languages, prefer arabic numerals over devanagari numerals when they want to represent the language in writing.This is widely prevalent in movies, newspapers, books, online, and so on.

Devanāgarī numerals
0 1 2 3 4 5 6 7 8 9

However, in the Wikimedia world, Marathi, Nepali and Sanskrit communities have decided to stick to Devanagari numerals. So, except for Hindi (which is using both the numerals simualtenously) , all other Wikipedias follow Devanagari numerals. In Hindi, the community uses both the numerals which is complicating the situation.

The Debate in Hindi

The situation in Hindi wiki community is bit complex. The community is divided over which to use – Devanagari or Arabic.

Some say that since we use Arabic numerals everywhere else, then this should be followed on Wikipedia too. They quote official communication from the Government of India which suggests that Arabic numerals should be used (though they refer to it as the “international form of Indian numerals”), and refer to a Government notification in this regard. They also talk about a proposal from the Government further reinforcing this. They also say that if South Indian languages can use Arabic numerals, then why can’t Hindi? There are also few Government decisions that went in favor of Arabic numerals (and Romanization of Hindi), such as

Apart from this, the Hindi film industry almost completely moved to Roman letters for most film publicity. For example, I can’t remember the last time I saw a Hindi movie poster in Devanagari. A Hindi film posters search shows all posters only in Roman alphabets – and Hindi film credits are also now in English.

So the main argument is that most of people who have access to media and internet prefer Arabic over Devanagari – and so the former should be adopted as standard.

The counterpoint by wikipedians who argue for Devanagari numerals is that – in spite of the official stance – neither the people, nor indeed Government authorities – have completely abandoned Devanagari, and it is still commonly used across many Hindi speaking areas of North India. For instance, official Government bodies like Indian Railways or Delhi Metro, and even some book publishers follow Devanagari numerals. According to them, unlike urban populations, the majority of the Hindi speaking rural population in UP and Bihar prefer Devanagri numerals when they want to write Hindi. They further point out that a language or script is not owned by the Government but by the speakers of that language. To that extent, they suggest that even if the Government has come up with an order that affects the growth of a language, it is the duty of the speakers of the language to stand and defend their language and script.

Northern railway bed sheet
A bedsheet with devanagri numerals printed on it

Moving forward

While both the arguments are solid, there are unique complications that arise in the Wikimedia world due to the usage of both the numerals simultaneously. It is creating difficulties when both kinds of numerals are used on the same project like Hindi Wikipedia (for content, article titles, and so on) as this adversely affects hyperlinking as well as search. There are many other complications arising out of the simultaneous use of both the numerals everywhere. A decision based on community consensus is urgently needed to resolve what could potentially spiral into a much larger issue given that it is already a 1 lakh article project.

Bengali, Kannada, Assamese, Sanskrit and few other wikipedias are showing that it is perfectly fine to use own numerals every where. But few other indic languages like Tamil, Telugu, and Malayalam have gone with the Arabic numerals. So technically both options are possible in the wikimedia world. But community need to reach consensus on sticking to one type of numeral.

Lot of discussion regarding this has happened between Hindi wikipedians both on wiki and off-wiki. The link to one of the on-wiki discussion is here.

http://hi.wikipedia.org/wiki/%E0%A4%B5%E0%A4%BF%E0%A4%95%E0%A4%BF%E0%A4%AA%E0%A5%80%E0%A4%A1%E0%A4%BF%E0%A4%AF%E0%A4%BE:%E0%A4%A6%E0%A5%87%E0%A4%B5%E0%A4%A8%E0%A4%BE%E0%A4%97%E0%A4%B0%E0%A5%80_%E0%A4%85%E0%A4%82%E0%A4%95

In the past, community was not been able to reach consensus – but it is important that the Hindi community should urgently agree on any one numeral system and move forward.


by Shiju Alex at June 01, 2012 09:35 AM

May 31, 2012

Releasing myfest.in – A web app to find and share campus fest and events!

Syntax

I’m very happy to release my little hobby project myfest.in, a place where you can find and share campus fests across India. The backend is written in ruby using Ruby on Rails framework and I’ve been having a nice time developing it for the last few weekends :)

The initial spark to build it was from the experience that I’ve been going to campus fests in Kerala and realized the necessity for a simpler way of sharing the information regarding fests. Many times I’ve seen students from other states (like from Rajasthan and Haryana) attending the fests in Kerala and I wondered how they got the necessary information. Most of them told they either got a personal invitation or came to know about fest from some website. I thought about the thousands of students who were missing the opportunities because they didn’t come to know about it on time. Also I’ve seen some campus fests without much of an outside participation. They were not able to promote the fest to interested students. I wanted to make a little solution for this and hence built myfest.in. Thanks to Arjun for the myfest.in logo :)

To those who are interested in the technologies myfest.in uses: It’s written in Ruby on Rails with  MySQL database and a little jQuery. It runs in a dedicated VPS with nginx and passenger.

I hope you liked it. If you happen to find any bug, please report it to myfest@myfest.in.  Thank you :)

by ershad at May 31, 2012 04:11 PM

ശുക്രസംതരണം വരുന്നൂ.. 2012 ജൂണ്‍ 6 ന്

കിഴക്കുനോക്കിയന്ത്രം

2004 ലെ ശുക്രസംതരണം

ജൂണ്‍ 6 ന് രാവിലെ സൂര്യനുദിക്കുന്നതിനു മുന്‍പുതന്നെ ഉണരുക. വീണ്ടും
കിടന്നുറങ്ങാതെ സൂര്യനുദിക്കുന്നതു കാണാന്‍ കഴിയുന്ന ഒരിടത്തേക്ക്
ചെല്ലുക. സൂര്യനുദിച്ചുയരുമ്പോള്‍ ജീവിതത്തില്‍ ഇനിയൊരിക്കലും
നിങ്ങള്‍ക്കു കാണാന്‍ സാധ്യതയില്ലാത്ത ഒരത്യപൂര്‍വ്വ കാഴ്ചയ്ക്ക്
സാക്ഷിയാകാം. സൂര്യനൊരു കറുത്ത പൊട്ടുതൊട്ട് ശുക്രന്‍ കടന്നുപോകുന്ന
അത്യപൂര്‍വ്വ കാഴ്ച. ശുക്രസംതരണം! മഴക്കാറുകള്‍ ചതിച്ചില്ലെങ്കില്‍
രാവിലെ ഏതാണ്ടു പത്തുമണി വരെ ഈ കാഴ്ച തുടരും. സൂര്യനുദിക്കുമ്പോള്‍
നഗ്നനേത്രങ്ങള്‍ കൊണ്ടു കാണാമെങ്കിലും സൂര്യരശ്മികള്‍ക്ക്
ശക്തിവരുമ്പോഴേക്കും സോളാര്‍ഫില്‍ട്ടറുകളോ അനുയോജ്യമായ മറ്റു
സംവിധാനങ്ങളോ ഉപയോഗിച്ചു മാത്രമേ സൂര്യനെ നിരീക്ഷിക്കാവൂ. അന്നിതു
കണ്ടില്ലെങ്കില്‍ ജീവിതത്തിലൊരിക്കലും നമുക്കീ കാഴ്ച കാണാനുള്ള
അവസരമുണ്ടാകാന്‍ സാധ്യതയില്ല. കാരണം അടുത്ത ശുക്രസംതരണം 2117 ലാണ്!

എന്താണ് ശുക്രസംതരണം?



നാമെല്ലാം സൂര്യഗ്രഹണം കണ്ടിട്ടുണ്ടാകും. സൂര്യനും ഭൂമിക്കും ഇടയിലൂടെ
ചന്ദ്രന്‍ കടന്നുപോകുമ്പോള്‍ സംഭവിക്കുന്ന അപൂര്‍വവും സുന്ദരവുമായ
ജ്യോതിശ്ശാസ്ത്രപ്രതിഭാസം. സൂര്യബിംബത്തിനും നമുക്കും ഇടയിലൂടെ ഏത്
വസ്തു കടന്നുപോയാലും സൂര്യബിംബം മറയപ്പെടും. സൂര്യനും ഭൂമിക്കും
ഇടയിലുള്ള രണ്ടു ഗ്രഹങ്ങളെ നമുക്കറിയാം. ശുക്രനും ബുധനും. ഇവര്‍
ചിലപ്പോഴെല്ലാം നമുക്കും സൂര്യനും ഇടയിലൂടെ കടന്നുപോകും.
സൂര്യബിംബത്തില്‍ ഒരു ചെറിയ കറുത്ത പൊട്ടുപോലെയാണ് നമുക്കിതനുഭവപ്പെടുക.
സൂര്യനെ പൂര്‍ണമായി മറയ്ക്കാന്‍ കഴിയാത്തതിനാല്‍ സംതരണം എന്നാണ് ഇത്തരം
ജ്യോതിശ്ശാസ്ത്രപ്രതിഭാസങ്ങളെ വിളിക്കുന്നത്. ശുക്രന്‍ സൂര്യന്റെ
മുന്നിലൂടെ കടന്നുപോകുമ്പോള്‍ ശുക്രസംതരണം(Transit of Venus or TOV)
എന്നും ബുധന്‍ കടന്നുപോകുമ്പോള്‍ ബുധസംതരണം എന്നും പറയും. ഒരു
നൂറ്റാണ്ടില്‍ പതിമൂന്നോ പതിനാലോ ബുധസംതരണങ്ങള്‍ നടക്കാറുണ്ട്. എന്നാല്‍
ശുക്രസംതരണം വളരെ അപൂര്‍വമാണ്. നൂറ്റാണ്ടില്‍ ഒന്നോ രണ്ടോ തവണ മാത്രം!
ശുക്രസംതരണത്തിന് ഇടയിലുള്ള ഇടവേളകളും കൃത്യമായി
ആവര്‍ത്തിക്കപ്പെടുന്നവയാണ്. 8 വര്‍ഷത്തെ ഇടവേളയില്‍ രണ്ടു
ശുക്രസംതരണങ്ങള്‍ നടന്നു കഴിഞ്ഞാല്‍ പിന്നെ 105.5 വര്‍ഷത്തിനു
ശേഷമായിരിക്കും അടുത്ത സംതരണം. പിന്നെ വീണ്ടും 8 വര്‍ഷം കഴിഞ്ഞ് സംതരണം
ആവര്‍ത്തിക്കും. പിന്നീട് 121.5 വര്‍ഷത്തിനു ശേഷമായിരിക്കും സംതരണം
ഉണ്ടാവുക. 8 വര്‍ഷത്തെ ഇടവേളയ്ക്കു ശേഷം വീണ്ടും. ഈ സമയക്രമം പിന്നീട്
ആവര്‍ത്തിച്ചുകൊണ്ടേയിരിക്കും.


ചരിത്രം

ശുക്രനെക്കുറിച്ച് പ്രാചീനര്‍ക്ക് അറിവുണ്ടായിരുന്നെങ്കിലും ശുക്രസംതരണം
എന്ന പ്രതിഭാസം അവരുടെ ശ്രദ്ധയില്‍പ്പെട്ടതിനെക്കുറിച്ചു വ്യക്തമായ
തെളിവുകളൊന്നുമില്ല. ബാബിലോണിയക്കാരുടെ രേഖകളില്‍ ശുക്രനെക്കുറിച്ചും
സൂര്യനെക്കുറിച്ചും പറയുന്നുണ്ടെങ്കിലും ശുക്രസംതരണത്തെക്കുറിച്ച്
വ്യക്തമായ സൂചനകളൊന്നും തന്നെ അതു നല്‍കുന്നില്ല. കെപ്ലര്‍ ആണ്
ശുക്രസംതരണത്തെക്കുറിച്ച് ആദ്യം പ്രവചനങ്ങള്‍ നടത്തുന്നത്. 1631 ഡിസംബര്‍
6 നും 1761 ലും ശുക്രസംതരണം നടക്കുമെന്ന് ടൈക്കോബ്രാഹയുടെ
നിരീക്ഷണരേഖകള്‍ വച്ച് അദ്ദേഹം പ്രവചിച്ചു. പക്ഷേ നിര്‍ഭാഗ്യമെന്നു
പറയട്ടെ 1631 നു നടന്ന ശുക്രസംതരണം യൂറോപ്പിലൊന്നും തന്നെ കാണാന്‍
കഴിഞ്ഞിരുന്നില്ല. 1639 ലെ ശുക്രസംതരണം പ്രവചിക്കാന്‍ കെപ്ലര്‍
വിട്ടുപോവുകയും ചെയ്തു. പക്ഷേ അതിനുള്ള അവസരം ലഭിച്ചത് നിരന്തരം ശുക്രനെ
നിരീക്ഷിച്ചുകൊണ്ടിരുന്ന ജര്‍മിയാക് ഹൊറോക്‌സ് (Jeremiah Horrocks) എന്ന
ബ്രിട്ടീഷ് ശാസ്ത്രജ്ഞനാണ്. 1639 ഡിസംബറില്‍ നടന്ന ശുക്രസംതരണം ഹൊറോക്‌സ്
പ്രവചിക്കുകയും തന്റെ ടെലിസ്‌കോപ്പുപയോഗിച്ച് കടലാസില്‍ സൂര്യന്റെ
പ്രതിബിംബം വീഴ്ത്തി നിരീക്ഷിക്കുകയും ചെയ്തു. പിന്നീടിതുവരെ നടന്ന
ശുക്രസംതരണങ്ങളെല്ലാം ശാസ്ത്രജ്ഞര്‍ നിരീക്ഷിക്കുകയും പഠനങ്ങള്‍
നടത്തുകയും ചെയ്തിട്ടുണ്ട്.

2012 ജൂണ്‍ 6 ലെ സംതരണം

2004 ജൂണ്‍ 8 നായിരുന്നു കഴിഞ്ഞ ശുക്രസംതരണം സംഭവിച്ചത്. അന്ന്
കേരളത്തിലെ നിരവധി സ്കൂളുകളില്‍ ശുക്രസംതരണം ഒരുത്സവമായി
ആഘോഷിക്കുകയുണ്ടായി.8 വര്‍ഷത്തെ ഇടവേളയ്ക്കു ശേഷം 2012 ല്‍ വീണ്ടും ഒരു
ശുക്രസംതരണം വന്നിരിക്കുകയാണ്. കേരളത്തില്‍ സൂര്യനുദിക്കുന്നതിനു മുന്‍പു
തന്നെ സംതരണം തുടങ്ങിയിരിക്കും. ഉദയസൂര്യന്റെ ചുവന്നബിംബത്തില്‍ ഒരു
കറുത്ത പൊട്ടുപോലെ ശുക്രനെ കാണാനാകും. പത്തുമണിയോടെ സൂര്യബിംബത്തിനു
പുറത്തേക്ക് ശുക്രന്‍ കടന്നു പോകും.

ജ്യോതിശ്ശാസ്ത്രപരമായ പ്രാധാന്യം

സൂര്യനും ഭൂമിക്കും ഇടയിലൂടെ ശുക്രന്‍ കടന്നുപോവുക എന്നത് ലളിതമായ
സംഭവമായി തോന്നിയേക്കാമെങ്കിലും ജ്യോതിശാസ്ത്രജ്ഞരെ സംബന്ധിച്ചിടത്തോളം
വളരെയധികം പ്രാധാന്യമുള്ള പ്രതിഭാസമാണ് ശുക്രസംതരണം. സൂര്യനും ഭൂമിയും
തമ്മിലുള്ള ദൂരം കണക്കാക്കാന്‍ ശുക്രസംതരണത്തെ പ്രയോജനപ്പെടുത്താമെന്ന്
1663 ല്‍ ഗണിതശാസ്ത്രജ്ഞനായ ജയിംസ് ഗ്രിഗറി കണ്ടെത്തി. ഈ നിര്‍ദ്ദേശത്തെ
പ്രയോജനപ്പെടുത്തി സൂര്യനും ഭൂമിക്കും ഇടയിലെ ദൂരം കണക്കാക്കാന്‍
കഴിഞ്ഞതോടെ 1882 ഡിസംബര്‍ 6 ന് നടന്ന ശുക്രസംതരണം ചരിത്രത്തില്‍ ഇടം
നേടി. കെപ്ലറുടെ ഗ്രഹനിയമങ്ങളിലെ മൂന്നാം നിയമവും പാരലാക്‌സ് രീതിയും
പ്രയോജനപ്പെടുത്തിയായിരുന്നു ഈ കണക്കുകൂട്ടല്‍. ശുക്രസംതരണത്തിലെ നാലു
ഘട്ടങ്ങളാണ് ഇതിനായി പ്രയോജനപ്പെടുത്തുന്നത്. സൂര്യന്റെ വക്കില്‍ പുറത്തു
നിന്നും ശുക്രന്‍ സ്പര്‍ശിക്കുന്ന സമയം, സൂര്യബിംബത്തിലേക്ക് പൂര്‍ണമായി
കടക്കുന്ന സമയം, സൂര്യനെ തരണം ചെയ്ത് പുറത്തുകടക്കാന്‍ തുടങ്ങുന്ന സമയം,
പൂര്‍ണമായി പുറത്തു കടക്കുന്ന സമയം.

നേരിട്ടു സൂര്യനെ നോക്കരുതേ...

ശുക്രസംതരണം കാണാന്‍ എന്തായാലും സൂര്യനെ നോക്കാതെ പറ്റില്ല. പക്ഷേ
സൂര്യനെ നേരിട്ടു നോക്കുന്നത് ആപത്താണ്. കാഴ്ചക്ക് സ്ഥിരമോ ഭാഗികമോ ആയ
തകരാറുകള്‍ സംഭക്കിക്കാന്‍ ഇത് കാരണമായേക്കാം. ശുക്രസംതരണവും ഗ്രഹണവും
കാണാന്‍ പല വഴികളുമുണ്ട്. X-ray ഫിലിമുകളില്‍ കൂടി നോക്കാവുന്നതാണ്.
എന്നാല്‍ ഒരു X-ray ഫിലിം മാത്രമായാല്‍ അത് കുഴപ്പം സൃഷ്ടിച്ചേക്കാം.
കുറെയധികം ഫിലിമുകള്‍ ഒന്നിനു പുറകില്‍ ഒന്നായി അടുക്കി ആദ്യം ഒരു
100Watt ബള്‍ബിലേക്ക് നോക്കുക. ബള്‍ബിന്റെ ഫിലമെന്‍റ് മാത്രം കാണുന്ന
വരേക്കും ഫിലിമുകള്‍ ഒന്നിനു പുറകില്‍ ഒന്നായി ചേര്‍ക്കണം. ഇത്തരം ഒരു
സംവിധാനത്തിലൂടെ ഒരു വിധം നന്നായി സൂര്യനെ നിരീക്ഷിക്കാവുന്നതാണ്. (ഇതും
തീര്‍ത്തും സുരക്ഷിതമല്ല. കറുത്ത X-ray ഫിലിം തന്നെ ഉപയോഗിക്കണം)

വെല്‍ഡിംഗ് ഗ്ലാസിലൂടെ സംതരണം നിരീക്ഷിക്കുന്നത് ഏറെ സുരക്ഷിതമാണ് .
എന്നാല്‍ ഇത് പലപ്പോഴും ലഭ്യമാവില്ല എന്ന പ്രശ്നമുണ്ട്. സ്വന്തമായി
സോളാര്‍ ഫില്‍ട്ടറുകള്‍ നിര്‍മ്മിക്കുകയും ആവാം. തോരണങ്ങള്‍ കെട്ടാന്‍
ഉപയോഗിക്കുന്ന സില്‍വര്‍ പേപ്പര്‍ (വെള്ളി പോലെ തിളങ്ങുന്നത്) ഒരു ഷീറ്റ്
മേടിക്കുക. ഈ ഷീറ്റിലുള്ള പദാര്‍ത്ഥം സോളാര്‍ ഫില്‍ട്ടര്‍ ആയി
പ്രവര്‍ത്തിക്കും. മൂന്നോ നാലോ പാളികള്‍ ഒരുമിച്ച് ചേര്‍ത്ത് വേണം
ഫില്‍ട്ടര്‍ നിര്‍മ്മിക്കുവാന്‍. ഒരു 100W ബല്‍ബിലേക്ക് സില്‍വര്‍
പേപ്പറിന്റെ ഒരു പാളിയിലൂടെ നോക്കുക. ബള്‍ബ് കാണാന്‍ കഴിയും. അടുത്ത
പാളികൂടി ചേര്‍ത്ത് വച്ച് നോക്കുക. ബള്‍ബ് അല്പം അവ്യക്തമാവുന്നത് കാണാം.
ഇങ്ങിനെ ബള്‍ബിന്റെ ഫിലമെന്റ് മാത്രം കാണുന്ന വിധത്തില്‍ സില്‍വര്‍
പേപ്പര്‍ പാളികളുടെ എണ്ണം വര്‍ദ്ധിപ്പിക്കുക. മൂന്നോ നാലോ പാളികള്‍
ആകുമ്പോഴേക്കും ഈ അവസ്ഥ എത്തിയിട്ടുണ്ടാകും. ഇതിലൂടെ സൂര്യനെ
നിരീക്ഷിക്കാവുന്നതാണ്. ഈ ഫില്‍ട്ടര്‍ ഉപയോഗിച്ച് കണ്ണട നിര്‍മ്മിച്ചാല്‍
കൂടുതല്‍ നന്നായിരിക്കും. ചാര്‍ട്ട് പേപ്പറും റബര്‍ബാന്‍ഡുകളും
ഉപയോഗിച്ച് കണ്ണട നിര്‍മ്മിക്കാവുന്നതാണ്.

സുരക്ഷിതമായ മറ്റൊരു വിദ്യ.

ഒരു കണ്ണാടി എടുക്കുക. അതേ വലിപ്പത്തില്‍ ഒരു കട്ടിക്കടലാസും
മുറിച്ചെടുക്കണം. കട്ടിക്കടലാസിന്‍റെ നടുക്ക് 5mm വ്യാസം വരുന്ന ഒരു
സുഷിരം ഇടണം. അത് കണ്ണാടിക്ക് മുന്‍പില്‍ ഒട്ടിക്കുക. സൂര്യപ്രകാശം
കണ്ണാടിക്കു മുന്‍പിലുള്ള ചെറിയ സുഷിരത്തില്‍ നിന്നും പ്രതിഫലിപ്പിച്ച്
ഒരു ഭിത്തിയില്‍ പതിപ്പിക്കുക. ഇത് സൂര്യന്റെ പ്രതിബിംബമാണ്. ശുക്രസംതരണം
മുഴുവന്‍ ഇതിലൂടെ കാണാവുന്നതാണ്. ഏറ്റവും സുരക്ഷിതമായ മാര്‍ഗ്ഗമാണിത്.
ജൂണ്‍ 6 ന് പത്തുമണിക്കു മുന്‍പാണ് സംതരണം സംഭവിക്കുന്നത് എന്നതിനാല്‍
അല്പം ശ്രമിച്ചാലേ ഈ പണി നടക്കൂ. ഗ്രഹണത്തിന്റെ കാര്യത്തില്‍ ഈ വിദ്യ
മികച്ചതാണെങ്കിലും ശുക്രസംതരണത്തിന്റെ കാര്യത്തില്‍ ചില
ന്യൂനതകളൊക്കെയുണ്ട്. ശുക്രനെ കാണാന്‍ മാത്രം വ്യക്തതയുണ്ടാവണമെങ്കില്‍
ഇരുട്ടുള്ള സ്ഥലത്തേക്കു തന്നെ പ്രകാശം പ്രതിഫലിപ്പിക്കേണ്ടിവരും.
വ്യക്തത കുറവായിരിക്കും എന്ന ന്യൂനതയുണ്ടെങ്കിലും പിന്‍ഹോള്‍ ക്യാമറ
ഉപയോഗിച്ചും നിരീക്ഷണം നടത്താവുന്നതാണ്.

ടെലിസ്കോപ്പ് ഉപയോഗിച്ച് എങ്ങിനെ ശുക്രസംതരണം നിരീക്ഷിക്കാം?

ടെലിസ്കോപ്പ്, ബൈനോക്കുലര്‍ തുടങ്ങിയ ഉപകരണങ്ങളിലൂടെ നേരിട്ട് സൂര്യനെ
നോക്കുന്നത് അത്യന്തം അപകടകരമാണ്. എന്നാല്‍ പ്രൊജക്ഷന്‍ രീതിയിലൂടെ
ടെലിസ്കോപ്പ് ഉപയോഗിച്ച് ഗ്രഹണം ദര്‍ശിക്കാം. ഗലീലിയോ ലിറ്റില്‍
സയന്റിസ്റ്റ് പരിപാടിയിലൂടെ കേരളത്തിലെ നിരവധി കുട്ടികള്‍ സ്വന്തമായി
ടെലിസ്കോപ്പ് നിര്‍മ്മിച്ചിട്ടുണ്ട്. പ്രൊജക്ഷന്‍ രീതിക്ക് ഈ
ടെലിസ്കോപ്പുകള്‍ ഉപയോഗിക്കാവുന്നതാണ്. ടെലിസ്കോപ്പ് ഒരു സ്റ്റാന്‍ഡില്‍
ഉറപ്പിക്കണം. തുടര്‍ന്ന് ടെലിസ്കോപ്പിന്റെ ഒബ്ജക്റ്റീവ് ലെന്‍സ് സൂര്യന്
അഭിമുഖമായി തിരിക്കുക.യാതൊരു കാരണവശാലും ഈ സമയത്ത് ഐപീസിലൂടെ നേരിട്ട്
നോക്കുവാന്‍ പാടുള്ളതല്ല.ഐപീസില്‍ നിന്നും വരുന്ന സൂര്യപ്രകാശം ഒരു
വെളുത്ത കടലാസില്‍ വീഴ്ത്തുക. ഐപീസും ഒബ്ജക്റ്റീവും തമ്മിലുള്ള അകലം
വ്യതിയാനപ്പെടുത്തി സൂര്യന്റെ വളരെ വ്യക്തമായ ഒരു പ്രതിബിംബം കടലാസില്‍
പതിപ്പിക്കാവുന്നതാണ്. കടലാസും ഐപീസും തമ്മില്‍ ഉള്ള അകലം
കൂടുതലായിരിക്കാന്‍ ശ്രദ്ധിക്കുക. കൂടുതല്‍ വലിയ പ്രതിബിംബം ലഭിക്കാന്‍
ഇത് സഹായിക്കും.
ശുക്രസംതരണം കാണുന്ന കൂട്ടത്തില്‍ സൗരകളങ്കങ്ങളും കാണാവുന്നതാണ്.
സൂര്യനിലെ കറുത്തപൊട്ടുകള്‍ എന്ന് വിശേഷിപ്പിക്കപ്പെടുന്ന സൗരകളങ്കങ്ങള്‍
കാണാന്‍ ഫില്‍ട്ടര്‍ ഉപയോഗിച്ച് നേരിട്ട് സൂര്യനെ നോക്കുന്നത്
അനുയോജ്യമായിരിക്കില്ല. അതിനായി ഈ സംവിധാനം തന്നെ ഉപയോഗിക്കേണ്ടിവരും.
കൂടുതല്‍ വിലയേറിയ ടെലിസ്കോപ്പുകളില്‍ സൂര്യനിരീക്ഷണത്തിനായി പ്രത്യേകം
ഫില്‍ട്ടര്‍ സംവിധാനങ്ങള്‍ ഉണ്ട്. കേരളത്തിലെ ബി.ആര്‍.സി കളില്‍
ലഭിച്ചിട്ടുള്ള ടെലിസ്കോപ്പുകളില്‍ ചിലതില്‍ ഇത്തരം സംവിധാനങ്ങള്‍ ഉണ്ട്.
ഈ ടെലിസ്കോപ്പുകളും ശുക്രസംതരണം നിരീക്ഷിക്കാനായി
പ്രയോജനപ്പെടുത്താവുന്നതാണ്. ടെലിസ്കോപ്പ് ഉപയോഗിച്ചുള്ള പ്രൊജക്ഷന്‍
രീതി ഏറ്റവും സുരക്ഷിതമാണ്. എന്നാല്‍ ഒരു സമയത്തുപോലും ടെലിസ്കോപ്പിലൂടെ
നേരിട്ട് സൂര്യനെ നോക്കുവാന്‍ പാടുള്ളതല്ല. അധ്യാപകരുടെ സഹായത്തോടെ വേണം
സ്കൂളുകളില്‍ ഇത്തരം പരിപാടികള്‍ സംഘടിപ്പിക്കാന്‍.

അന്ധവിശ്വാസങ്ങള്‍?
സൂര്യഗ്രഹണത്തെ സംബന്ധിച്ചിടത്തോളം നിരവധി അന്ധവിശ്വാസങ്ങള്‍
നിലവിലുണ്ട്. ശുക്രസംതരണം എന്നത് അത്യപൂര്‍വ്വ കാഴ്ചയായതിനാല്‍
ജ്യോതിഷികള്‍ ഇതിന് പ്രാധാന്യം കല്‍പ്പിക്കുന്നില്ല. അതുകൊണ്ടു തന്നെ
ഇതുമായി ബന്ധപ്പെട്ട അന്ധവിശ്വാസങ്ങള്‍ ഏതാണ്ട് ഇല്ല എന്നു തന്നെ പറയാം.


അപ്പോള്‍ മറക്കേണ്ട, ജൂണ്‍ 6 ന് രാവിലെ നേരത്തേ തന്നെ ഉണരുക.
കൂട്ടുകാരെയും നാട്ടുകാരെയും എല്ലാം കൂട്ടി ജീവിതത്തിലെ അത്യപൂര്‍വ്വമായ
ഈ കാഴ്ചയെ നെഞ്ചിലേറ്റുക.



അവലംബം
1. http://www.transitofvenus.org/
2. ശുക്രസംതരണം - സൗരയൂഥത്തിന് ഒരു അളവുകോല്‍ - പ്രൊഫ. കെ പാപ്പൂട്ടി- കേരള ശാസ്ത്രസാഹിത്യ പരിഷത്ത്‌

by ടോട്ടോചാന്‍ (noreply@blogger.com) at May 31, 2012 12:10 PM

May 29, 2012

May 27, 2012

Rajeesh

Soliloquies

Is your internet connection slow?

Yeah yeah, you have connection with bandwidth of 7.2 Mbps but it sulks (no pun intended) and you wonder why.

The answer, mostly is, #bufferbloat [1]. In short, the data flows from Google+ to your computer sitting somewhere in the dark corner on the opposite side of the world, ‘packets’ of this data are stored and transmitted at each intermediate stop through which they are passed. The protocol used to communicate between your computer and a google server, and everything in between (the intermediate stops), is called TCP and that beast is pretty good at adapting to the best speed with which those two end points (your computer and the google server) can talk to each other.
The way TCP achieves that is – when google server sends a few thousand packets at a go with the maximum speed it has, your computer might be choking to cope up with the volume and it will start dropping the packets (UPDATE: and acknowledgements, hereafter referred to as ACK, are sent notifying the dropping ACK is sent on successful delivery of packets. Dropping is assumed if no ACK is received in a reasonable amount of time. For more technical details, see excellent comment from James Cape), and google server slows down sending packets accordingly.

Wondering where the problem is, then? Well, all those intermediate points – including servers, routers, your broadband ISPs, their servers, routers, your WiFi router and even the Network Card (NIC) on your computer – have ‘buffer’ to keep a large number of packets, before it could be processed/transmitted further. And that excessive buffering, is what the problem is, which defeats TCP adapting itself. +Jim Gettys was one mastermind who got irritated with the same, decided to investigate, zeroed in on the problem, created widespread awareness and coined the term #bufferbloat for it, towards the end of 2010.

Now the question is, how to fix it. Looks pretty simple – reduce the amount of buffer, right? Unfortunately, not quite. What is the standard size of the buffer to be used? If the size of the buffer is too small, slow connections suffer. If the buffer size is too large, fast connections suffer. What was needed is another algorithm, usually called Adaptive Queue Management. There were various attempts to find One True ™ algorithm independent of network/bandwidth/timing/buffer size/queue size, devoid of knobs for fine tuning.

Now, Kathleen Nichols and Van Jacobson (yes, /the/ Van Jacobson) have come up with an algorithm closest to that, called #CoDel [2]. The very first implementations of CoDel by +Dave Taht and +Eric Dumazet and are going into #Linux kernel now, along with similar implementations to #CeroWrt (based on #Linux ) for routers [3]. This is one of the pieces of solution to bufferbloat, not the only one, but definitely one in the right direction.

These extra ordinary people, today, are silently fixing tomorrow’s internet. And they deserve big props for that. All you technologists who didn’t get a chance to appreciate Nikola Tesla or Dennis Ritchie, here is your chance to do that for some of the real heroes of our time.

[1] http://gettys.wordpress.com/category/bufferbloat/
[2] http://queue.acm.org/detail.cfm?id=2209336
[3] http://lwn.net/Articles/496509/

Disclaimer: The descriptions of various technological aspects in this article are overly simplistic and may not be one hundred percent correct, please add a note or comment if you find an inaccuracy.


Tagged: bufferbloat, linux

by Rajeesh at May 27, 2012 05:59 AM

May 23, 2012

PWM using ChibiOS/RT and the STM32F4Discovery

Pramode C.E - The GnuVision Blog

PWM using ChibiOS/RT and the STM32F4Discovery

May 23, 2012

Read: PWM using ChibiOS/RT and the STM32F4Discovery on my Recursive Labs blog!

May 23, 2012 12:00 AM

May 21, 2012

BangPypers meetup (Yesterday)

Baiju Muthukadan's Blog

Yesterday we had BangPypers meeting at ZeOmega office. There was 10 members came for the meeting. There was no specific agenda for the meeting, we discussed some general topics related to Python.

I demonstrated the installation of Salt in Windows XP ( http://saltstack.org/ ). Salt is a remote execution and configuration management tool. For those who missed, here is the screencast I created today for the installation of Salt in Windows: http://www.youtube.com/watch?v=eeJByb-alz8 BTW, community is working on a unified installer for Windows.

If you are interested to learn more about Salt, look at the excellent documentation here:

http://salt.readthedocs.org/en/latest/index.html

You can replace remote execution systems like Fabric & Capistrano with Salt. Also you can replace configuration management systems like Puppet, Chef & CFEngine.

I have tried Salt with RHEL,CentOS,Debian,Ubuntu,Fedora,FreeBSD,Windows 2008 Server R2 and Windows XP. For example, if you want to install Salt in a CentOS machine, just run these two commands:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
yum install salt*

Similarly for Ubuntu:

add-apt-repository ppa:saltstack/salt
apt-get update
apt-get install salt-master salt-minion

While talking about Salt, I also happened to demonstrate Jenkins server I setup for the same project ( http://jenkins.saltstack.org/ ). Here is the screencast I created sometimes back for the same project: http://www.youtube.com/watch?v=7IRzPFYtyD4 This screencast walk through various code metrics available for Python like: clonedigger, pep8, pyflakes, pylint & sloccount.

by Baiju Muthukadan (noreply@blogger.com) at May 21, 2012 03:04 AM

May 16, 2012

RTOS Programming guide

Pramode C.E - The GnuVision Blog

RTOS Programming guide

May 16, 2012

I am writing a "beginners guide to programming real time operating systems" - you can check it out here: http://recursive-labs.com/rtos-guide/. This will be integrated with the ARM architecture and Programming online course I am currently developing.

May 16, 2012 12:00 AM

May 14, 2012

May 10, 2012

Fix for Rails 3.x.x error “[FATAL] failed to allocate memory” in OS X Lion

Syntax

This error happens when mysql2 gem is either installed for some other version of mysql or when it cannot find required dynamic library. To fix this error, uninstall mysql2 gem and install as follows

$ env ARCHFLAGS="-arch x86_64" gem install mysql2 -v='0.3.11' -- --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include --with-mysql-config=/usr/local/mysql/bin/mysql_config

Please change ‘/usr/local/mysql’ to your mysql installation path. Thank you.

by ershad at May 10, 2012 04:51 AM

May 09, 2012

ragsagar

r4g54g4r's h4ckl0g

While i was working on the project onspot_v2, i came across with a specific need. onspot_v2 makes use of the django admin interface for data entry. When employees are entering data, ‘branch’ field in the form will get populated automatically as per the branch of the employee. When a manager is entering data using the form, an extra field should appear to select the ‘branch’ instead of automatically populating. Googling didn’t help much. Finally i thought of overriding the ModelAdmin.add_view() method which is invoked when you try to add an entry using the admin. I changed the editable property of the field ‘branch’ inside after checking the request.user and it worked out. Part of my code in admin.py

from django.contrib import admin
from books.models import Agent, PolicyIssue

class PolicyIssueAdmin(admin.ModelAdmin):
 
    def add_view(self, request, form_url='', extra_context=None):
        if request.user.get_profile().is_employee:
            self.model.branch.field.editable = False
        else:
            self.model.branch.field.editable = True
        return super(PolicyIssueAdmin, self).add_view(request, form_url)

admin.site.register(PolicyIssue, PolicyIssueAdmin)


by Rag Sagar.V രാഗ് സാഗര്‍.വി at May 09, 2012 05:22 PM


അവസാനം പുതുക്കിയതു്: October 16, 2012 05:32 PM
എല്ലാ സമയവും യു.ടി.സിയില്‍

സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് പ്ലാനറ്റ് അവതരിപ്പിക്കുന്നതു്: Planet

സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് പ്ലാനറ്റ് പരിപാലിക്കുന്നതു്: അനിവര്‍ അരവിന്ദ്, സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ്. നിങ്ങളുടെ ബ്ലോഗുകള്‍ ഇതിലേയ്ക്കു ചേര്‍ക്കണമെങ്കില്‍ അനിവര്‍ അരവിന്ദുമായി ബന്ധപ്പെടുക. ഇവിടെ പ്രസിദ്ധീകരിക്കുന്ന ബ്ലോഗുകളുടെ ഉള്ളടക്കത്തിന്റെ പകര്‍പ്പവകാശം അതാതു് രചയിതാക്കള്‍ക്കു സ്വന്തം.