Saturday, September 15, 2012

Micromax MMX 353G modem in linux

I am using BSNL broadband for 5-6 years now. Now and then disruption in their service made me wish for a good backup Internet connection for long. Unfortunately in my locality, like most of the places in Bengal, there is no broadband vendor other than BSNL. I tried tata usb modem and reliance netconnect modem earlier. It was plain waste of money.

After the arrival of 3g network, I got to know about this generic 3g modem which one can use with any prepaid/postpaid 3G SIM. I went to a local computer store and randomly purchased Micromax MMX3G. I also got a Vodafone 3G SIM meanwhile.

As it happens generally, the modem didn't work in my CentOS 6.2 desktop. It was mounting the modem as USB Mass Storage device. I was not able to mount it as an USB Modem. After around a weeks of effort in Internet, I found this tool called usb_modeswitch. I installed that and followed some other configuration steps specified in some forums (don't remember the link). NetworkManager was recognizing this device and I was able to create network using this device. But unfortunately I was not getting connectivity. I called Vodafone customer care to find out if they can help. They straight away said that neither do they support this device nor do they support Linux. I still wanted to talk to the technical support team. Fortunately I was connected to a support engineer. He refused to help saying it won't work in Linux. After I insisted for an answer he said I might try with APN (Access Point Name) as www. If it works, well and good. Otherwise, tough luck.

While rechecking my configuration, I found I configured APN as internet earlier. I modified that and tried it again. And, bingo! Network became active, I got connected to the Internet. My billion thanks to that support engineer who provided me this tricky help.

For reference below is the list of steps, I use to start the network using this device. Once these steps are done, NetworkManager detects the device after 2-3 seconds. 0x1c9e and 0x9605 are the vendor and product ids for this device.

service network stop

service NetworkManager start

usb_modeswitch -W -I -c /etc/usb_modeswitch.d/1c9e\:f000 -v 1c9e -p f000

modprobe usbserial vendor=0x1c9e product=0x9605

modprobe option
Good luck :)

Friday, May 11, 2012

Upgrading to CentOS 6.2

Life have been pretty stable with CentOS 5.2 for last couple of years. But experiment to modify some lvm logical volumes ended up corrupting my file system under /usr/local. Since many binary and lib files are stored under this, I thought to fix this fresh OS installation would be the easiest option. I'm not sure if there was any other way around to restore /usr/local.

Thinking of fresh installation, I thought it's also good time I upgrade to a newer version. Since my /home is mounted as a different file system, I thought it'll be fairly easy to install CentOS 6.2. It was actually. Many quirky things which I had to do for 5.2 seemed to work out of the box. But as it happens, fresh installation always comes with its own issues. Few things I noticed:

  • My eclipse started crashing soon after I started using CentOS 6.2. Some looking around in the web pointed me to the potential incompatibility between eclipse and Xulrunner 2 which came with CentOS 6.2. Removing Xulrunner 2 did the trick.
  • I could install FF 12, Google Chrome, Opera without any fuss. 
  • I was pleasantly surprised to find Network Manager automatically creating the DSL connection provided by BSNL. But then the difficulty started. Internet was working. But I found many websites mostly those which uses a CDN service were not loading in browsers. I tried FF, Chrome and Opera. All were having similar behavior. Digging deep in the Internet didn't help much. Finally I thought let me try removing Network Manager and creating the connection using traditional network service. I installed rp-pppoe to create the pppoe connection manually. That happened to be the eureka moment. Now all websites seem to be loading smoothly in all the browsers.

Wednesday, July 08, 2009

Zip file download problem with IE

There is a zip file download button in our application for sometime. Recently to make the browsers identify the file, we set the content type as "application/zip". Which is correct according to the standard[1]. But we found that the file downloaded with IE seem to be corrupted. While trying to investigate the issue, we were absolutely clueless on how to go about this problem. FF and some download managers with IE also seem to be downloading the file properly! After quite some frustrating hours of debugging we replaced the content type with generic: "application/octet-stream". And IE seem to understand this finally.

1. http://www.iana.org/assignments/media-types/application/zip

Tuesday, March 03, 2009

Configuring LAN with BSNL Datone in Linux machine

This is how I configured my home LAN with one desktop and one laptop. Before listing the exact steps let me brief the background. The desktop runs on CentOS and acts as the gateway for the LAN machines. Main difficulty was implementing the NAT so that I could access Internet from my Laptop. Looking at the tldp documentation, I thought it would be fairly easy to implement ip masquerading using iptables. Actually it was but only after I found the correct fix when Internet is provided through PPPoE protocol. The point to remember with PPPoE is the outgoing port in these situation will be ppp* not eth*.


+-------------+ +-------------+ +-------------+
----| | | | 10.0.0.* | |
BSNL| Modem | 192.168.1.* | Gateway |---------------| Internal M/C|
Cable| |---------------| (CentOS) |eth1 | (Ubuntu) |
| | (ppp) eth0| | | |
+-------------+ +-------------+ +-------------+




Step 1:
[root ]# echo 1 >  /proc/sys/net/ipv4/ip_forward

Step 2:
[root ]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Step 3:
[root ]# echo 1 >  /proc/sys/net/ipv4/ip_dynaddr

Step 4:
[root ]# /sbin/iptables -A FORWARD -i eth1 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Step 5:

[root ]# /sbin/iptables -A FORWARD -i ppp0 -o eth1 -j ACCEPT

Step 6:
[root ]# /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Step 7:
[root ]# service iptables save

Step 8:
[root ]# service iptables restart

Step 9:
If you have some firewalls (like Redhat Firewall) enabled in your system, you must make the LAN interface trusted in the gateway machine.

And there you go. Step 4-9 can also be done using UI: /usr/bin/system-config-securitylevel-tui like this:



P.S.: Chennai LUG helped me for this.

Tuesday, February 10, 2009

One CVS trick with eclipse

Recently I had a need to commit some local uncommitted change of a branch into another branch. I was little skeptical that I might loose all the local changes and redo them, manually, again in the other branch. Some soul searching in eclipse help document, revealed that I can do such things using "Team -> Switch to another branch or version". It uses sticky tags to move the uncommitted changes into the new version/branch instead of replacing. Once you have "switched" to this new branch, you can commit them gladly. And, it works! But there is one problem. Suppose there is some conflicting file, i.e., you have modified a file "A" locally and someone else also has made some conflicting changes in "A" in this other branch. In this particular situation, eclipse/cvs screws your code gracefully. i.e., without any warning/error. It looses all local changes you made! So my personal opinion is before "switching" to another branch, do a "compare with" that branch. Find out if there is any conflict. In case you find any conflict, back them up somewhere. After "switching" to the other branch manually check which state these files are. You might need them to fix manually.

Monday, December 01, 2008

Quick HOWTO : Quartz with JBoss

While searching for some job scheduler tool, I came across this Open Source tool, called, Quartz. Most importantly my requirement was to be able to use it from inside an application server like JBoss. After reading some tutorials, I gave it a go. Let me just brief my experience here.

Quick Intro
Fundamental entities with Quartz or with any other job schedulers are tasks and triggers invoking them. Quartz has got two kinds of triggers: SimpleTriggers and CronTriggers which are very much similar to Unix Cron triggers. There are two ways one can store the jobs in Quartz. RAMJobStore is the most simple one but the tasks stored here do not get persisted, i.e., jobs get forgotten once the server restarts. Other type of job stores are JDBCJobStore. As the name suggests with these job stores, jobs are stored in relational databases. Quartz supports most of the standard databases like MySQL, Oracle and etc. There are two kinds of JDBCJobStores available: JobStoreTX and JobStoreCMT. JobStoreTX is supposed to be used stand alone whereas JobStoreCMT is meant to be used from an application server. As my requirement was to use it with JBoss I used only JobStoreCMT. And, used it with MySQL as the back end database.

Quartz as a JBoss service
JBoss 4.2.2.GA already has got quartz bundled with it. But actually you can not do much with this as it supports only RAMJobStore. So to use it effectively we need to do some more. We have to copy quartz-1.6.2.jar and quartz-jboss-1.6.2.jar in the JBOSS_HOME/server/server_mode/lib directory. Then, we need to create a xml file to configure Quartz as a service in JBOSS_HOME/server/server_mode/deploy directory.

Create the data base
We need to create the database where all job and trigger information will get stored eventually. The sql scripts are bundled with Quartz download under docs/dbTables directory.

quartz-service.xml
As already mentioned we need to create the quartz-service file . Let me just enclose a sample file.

<server>

<mbean code="org.quartz.ee.jmx.jboss.QuartzService" name="user:service=QuartzService,name=QuartzService">
<!-- JNDI name for locating Scheduler, "Quartz" is default. -->

<attribute name="JndiName">Quartz</attribute>
<attribute name="Properties">
# Default Properties file for use by StdSchedulerFactory
# to create a Quartz Scheduler Instance, if a different
# properties file is not explicitly specified.
#

# org.quartz.scheduler.classLoadHelper.class =

org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.xaTransacted = false

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 4

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = QUARTZ
org.quartz.jobStore.nonManagedTXDataSource = QUARTZ_NO_TX
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.dataSource.QUARTZ.jndiURL = java:QuartzDS
org.quartz.dataSource.QUARTZ_NO_TX.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.QUARTZ_NO_TX.URL = jdbc:mysql://localhost:3306/Quartz
org.quartz.dataSource.QUARTZ_NO_TX.user = root
#org.quartz.jobStore.maxMisfiresToHandleAtATime=0

</attribute>

</mbean>
</server>
The point to note here is that we'll need two datasource elements for this configuration. One is standard datasource managed by JBoss container (see the line org.quartz.jobStore.dataSource = QUARTZ) another one is not managed by the container, on which quiatz can call commit/rollback by itself. We have to confugure the container managed datasource as a standard jboss *-ds file, whereas we configure the non_managed_datasource inside this quartz-service.xml itself. Here one gotcha is for the container_managed datasource, we'll need to use XA datasource (I am not very sure why regular local datasource does not work. Maybe reason being Quartz works in a clustered environment, just a guess though). Let me just attach a sample mysqlquartz-ds file here:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<xa-datasource>
<jndi-name>QuartzDS</jndi-name>

<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">jdbc:mysql://localhost:3306/Quartz</xa-datasource-property>
<user-name>root</user-name>
<password></password>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<max-pool-size>5</max-pool-size>
<min-pool-size>0</min-pool-size>

<blocking-timeout-millis>2000</blocking-timeout-millis>
<idle-timeout-minutes>2</idle-timeout-minutes>
<track-connection-by-tx>true</track-connection-by-tx>
<no-tx-separate-pools>false</no-tx-separate-pools>


<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name> -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</xa-datasource>

</datasources>
Creating a job
Once you get the configuration right, other things are pretty simple.

InitialContext ctx = new InitialContext();
Scheduler scheduler = (Scheduler) ctx.lookup("Quartz");
Trigger trigger = TriggerUtils.makeDailyTrigger("myTrigger", 0, 0); //a trigger which gets fired on each midnight
trigger.setStartTime(new Date());

JobDetail job = new JobDetail("jobName", "jobGroup", Executor.class);

job.getJobDataMap().put("Name", "Abdul Sahid Khan");
job.getJobDataMap().put("Age", 125);

scheduler.scheduleJob(job, trigger);
So you get a handle to the Scheduler object using jndi lookup. Remember we set the jndi name in quartz-service.xml file. Then we create a trigger. There is various ways to create a trigger. TriggerUtils is a utils class provided by Quartz itself which gives mane factory methods to create simple triggers. Then we need to create a job. There is no Job class (well, there is an interface by that name but let us now pretend that it does not exist), instead we will create a JobDetail object. While creating JobDetail object we need to provide an Executor class which will be used when this particular job gets fired by the Scheduler. We can store job specific information in the datamap provided by JobDetail object. These information can be used in the Executor class.

Execute the job
The job gets executed by the class which was passed while creating the JobDetail object. This Executor class needs to implement earlier_ignored Job interface. And that mandates Executor to have a method called execute().

public class Executor implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
String jobName = context.getJobDetail().getName();
String groupName = context.getJobDetail().getGroup();
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String name = (String) dataMap.get("Name");
Integer age = (Integer) dataMap.get("Age");
logger.info("Job received name: " + jobName + " , Group: " + groupName);
logger.info("Name: " + name + " , Age: " + age);
}
}
Delete the job
To delete a job we need to know the name and group of the job.

InitialContext ctx = new InitialContext();
Scheduler scheduler = (Scheduler) ctx.lookup("Quartz");
scheduler.deleteJob("jobName", "jobGroup");
Here one must remember that you can not delete a job from inside the execute method, that will create a lock which will cause JVM to crash. So delete should be handled as different process like create.

One last thing about Jboss
Sometime, business logic needs you to have your Executor class inside the your EAR/WAR application. Now that will create a dependency problem while starting the jboss server. Each time Quartz service starts, it tries to recover if there is any misfired jobs. But if Quartz starts before EAR/WAR deploys then we have ClassNotFound problem. To solve this we can use the deploy.last hack given by JBoss. You can create deploy.last directory and put the quartz-service.xml file inside that. That will ensure Quartz service will start after all the application gets deployed.

Reference:
Quartz wiki

Sunday, November 30, 2008

United we stand, do we really?

Wednesday I came back late after attending one of my friends marriage party. I switched on the TV for couple of minutes before going to bed perhaps only to discover that there had been another terrorist attack in Mumbai. Since then I feel extremely disturbed and helpless. And, being a Muslim myself, I live in this peculiar mental state of multi-directional feeling of insecurity.

Tonight I was watching this program at NDTV by Burkha Dutt "We the People". And what I saw, pretty much summed up the conflicting, ever_contrasting mood of the whole nation. In one point one of the guest, Simi Garewal, told something like: If you see the flags from all the slums surrounding the Oberoi and other multi-storied building, you'll notice these are neither Indian National Flag, nor they are any party flag like Congress's or BJPs. Perhaps she tried to mean these are flags of our *neighbouring country*. Anyhow, there was this sudden and furious response from one of the young audience: "Pakistan is not the problem, Islam is not the problem, people like Simi are the main problem..." I was absolutely stunned to see this live. I don't know if the person was a muslim himself. The significance of this show is, it shows very clearly how much united we Indians are!

Sunday, September 28, 2008

Trek towards Sandakphu


It has been more than a month I came back from my first ever trekking experience. Last month me and my brother teamed up with 4 of my friends for this trip. Being first ever trek for most of us, we were really excited for this. Perhaps being overenthusiastic, I purchased one 65L rucksack also from UBAC and a pretty good hiking boot from Woodlands. But at the end, I think everything paid off.

We started walking from Manebhanjan on 15th August afternoon. We took a local boy 'Buddha' with us as our guide. The very first thing he told us that he was Buddha, not Buddhadeb the WB CM. Not sure if he was trying to make any political statement! Anyways, we started after covering ourselves with a plastic, as it was raining continuously. But boy! First two kms appeared to be real difficult for novices like us, particularly for me. Perhaps I should have rechecked if I could carry so heavy a backpack. Buddha came to remedy, he carried the backpack for me. We reached Chitrey in the evening and decided to stay the night there. A hotel called Hawk's Nest is available there. We kept some of ours luggage there and started trekking towards Tumbling next day morning around 8 am. We reached Tumbling at 12.30. We stayed the night at Siddartha Lodge. As Singalila National Park was closed due to the monsoon season, we decided not to proceed any further. We also had some time constraint. But next day was like a dream. I got awaken as Soumen jumped from the room, shouting sun has come out. We all came out and saw the majestic Kanchenjunga slowly revealing all its beauty. Clouds disappeared one after another. Sun brought the white icy cover to light, with all its glittering sunlight. Local people say Kanchenjunga family of hills are nothing but Lord Buddha sleeping gracefully. Close look makes the story clear. Kanchenjunga does look like a man sleeping in the eternity. After taking lunch we started trekking again. This was very short. We reached Tonglu in almost 2 hours. It started raining again. We stayed another night at the Trekkers Hut in Tonglu. Buddha went downhill to get some chicken for us. This was another good thing about our trip: we never compromised about our food! Next day, we started in the morning and reached Chitrey around 12'o clock. We took our lunch there and started the return journey. With help of Buddha we contacted a person at Manebhanjan, who is popularly called as "Masterjee". Though we did not meet him, but he arranged a car for us.

The trek was difficult sometime. But we really enjoyed the trip. Whereas it is impossible for me to describe how it was in the hill, but let me just put few of the snaps taken by my friends.

Kanchenjunga

Picture Perfect


Few things which I found important for a novice trekker like me:
  1. Do a reality check, can you really trek? Don't just get carried away by what your friends say.
  2. Make sure you are not carrying anything redundant. Make your backpack as less as possible.
  3. Avoid shorter but difficult routes. Let it take some more time.
  4. Take a guide.
  5. Most importantly, you need a fit and strong health to trek.

Saturday, September 01, 2007

(useless) Stopwatch!

While reading this cheat sheet, I found a new stopwatch tool today. From your shell, you just run `time cat` to start the stopwatch. Once you are done, stop the clock by CTRL-D. Maybe it is not that useful, but I find it cool! It is geeky!

Saturday, August 11, 2007

Head first

This post is about Head First JSP Servlet book. This is not a review, just my experience.

Recently I felt the urge to learn some jsp/servlet. Though I have worked on jsps and servlets for quite a few months, but I never knew why I wrote any particular jsp code. If something didn't work, I'd google and find a work around and copy the code snippet. And, as long as it worked, I felt ok, my boss felt ok since that is what matters for business: whatever mess it is, it should work! But couple of weeks back I thought of reassessing myself. I had to pity myself for all my ignorance :( So that was the reason I felt the need to earn some jsp expertise. (Maybe this itself can make another post)

I was aware of Head First books. Looking at those books, It never appeared to be technically serious to me. But being one of Kathy Sierra fan (too bad that she had to stop blogging), I thought of giving a try. OMG! I finished that within two weeks. I never expected a technical book to be so engaging. It is one of the books, I enjoyed most. It's fun from first to last page. Can you believe you get to read F-word in a jsp book! And that too with an explanation why F-word is not bad always. I really liked the book, and also I believe I learned quite a few things from it. Only thing what I felt, as a reference this book may not be appropriate, but for learning this is the book to go for!

Wednesday, March 28, 2007

Reading Anandabazar on linux

I am using Linux seriously for last four years. One of the things I wanted to do on linux from the very beginning is to read my favourite bengali daily Anandabazar Patrika. I tried a lot, but my all efforts went in vein vain. People told me that you can not read Anandabazar on linux due to some font issues :(. But recently with help from Kolkata-Lug I got a work around by which I can read my favorite daily on linux. In this post, I try to give a how-to kinda description of what you need to do to read Anandabazar on linux.

First thing you need is an unicode enabled browser. And firefox is one such browser. But problem is indic scripts don't get rendered properly with firefox. To view indic scripts in firefox you need to use a different rendering engine, called pango. The default download version available on mozilla site is not built with pango. So with that version, you can't view indic scripts properly.

There are two ways to get firefox built with pango. Binaries available in fedora or ubuntu repositories are built with pango. So if you use these two distros and install firefox using yum or apt-get then chances are you'll get a pango enabled firefox. Other option is to build firefox from source yourself, though I don't have any clue on this. To check if your firefox has pango built in, input 'about:buildconfig' in your firefox address bar. Look for '--enable-pango' in configure arguments. If you see one such phrase, then you can be sure that your firefox has pango built in.

Next, you need an Unicode Bangla Font. Ankur has a good mini and precise how-to for installing Bangla fonts. But, I was not able to install the rpm from that site due to some dependency problem. So I had to opt for the good old tgz packages. The instructions are given there, and they are very straight forward indeed.

With this settings, you will be able to view most bengali sites. But unfortunately there are some *stupid* websites who don't like to follow the font specifications. They use their in-house proprietary set of fonts. Anandabazar is one among them. To get rid of this comes Padma, yet another firefox extension. Padma automatically transforms web pages that use the specified dynamic font schemes (Anandabazar is one among them) to Unicode. And once you have the unicodes, firefox is able to render them.

I was so happy to read 'Golmele Ginni' after so many days ;-)

Note: All these were done on a CentOS release 4.1 (Final) and Firefox 1.5.0.10.

Sunday, March 25, 2007

India goes boom!

Few days back I dreamt of watching men in blue marching victory lap in WC final. But after Lankan riots, I dare to stick to my dream. Like loads of poor Indians, today I was also praying for Bermuda thrashing Bangladesh. But they are limping at 45 for 4 in a rainy ODI. Thing is WC is over for India this time. I curse myself for purchasing a tv only to see this to happen.

In spite of having so many *so called great* players in the side, such a fortune is really disappointing. People are saying we lacked commitment, we lacked passion and blah blah... But I think we are simply not good enough. In spite of having likes of sachin-dravid-saurav-kumble around for so many years, how many times have we performed really like a world class team? It's just occasional spark of genius, that own India some matches. And those very few occasions have been blown out of proportions really badly. So badly, that we started believing in non-existing abilities of our players. I think time has come for an honest investigation.

I think our senior players should take the responsibility and step down now. Report tells me sachin wants to play in the next WC also! wtf! Of course he can improve his personal records, but no way it's going to help indian cricket. We need new -N-fresh blood in the squad. May be likes of rainas, uthappas did not work, but some more efforts can unearth some real champion. Let us be optimistic..

Having said all that, I believe my fellow country men should stop behaving like a fanatic now. I don't understand what-the-hell you get attacking a player's house after his failure? Please stop these non-senses of physical harassment. Unless we mature as a nation, we don't have any hope either in cricket or in any other games.

Wednesday, March 21, 2007

How to embed wikimap in your website..

Are you wondering, how I got the map in my post? If so, the mystery reveals here.

Seagate is good!

For last few days, my hard disk was not in good health. I thought warranty is already over. I didn't know that now Seagate has an extended warranty of 5 years! They have a nice warranty checker in their site. There I saw my warranty exists till July of too far 2010! So happily I took my disk to Seagate Service Centre, Chennai. I was quite amazed with their service. They didn't even ask me a single question! They just took my disk and told it will take 3-4 days for replacement. And today they handed me a brand new hard disk.

The centre is located at Greams Road, Accel Frontline Limited IMS.

Tuesday, March 20, 2007

India goes gaga..

World cup has started finally with all it's excitement. India is fighting hard to get into super8s. Ireland has made the critics swallowing their insults for minnows. Bangladesh is on high in their new found out-of-minnowhood status. Pakistan is already out of the blue, which turned out to be too much for Bob Woolmar, a shocking loss to this once-in-four year extravaganza.

It hasn't started as expected for India. India have lost to a spirited Bangladesh in their first match. But watching yesterdays murderous Bermuda victory, you have to agree men-in-blue are back in business. Though you should (can) not make out too many things over this Bermuda victory, But I believe no one can hold us back from going to super8s. And once you are into next round, altogether a different story begins. I think we have a fare chance of bringing back the glory.

To watch them triumph, we have purchased a ctv few days back. We have gone for the *most cost effective* one. It's a "Sansui cine sargam - 22", costs only 6500 bucks! Though I am yet to press all remote buttons, I am quite happy with the product. Picture is good, Audio is mono, but that's enough for us. Let us see how the marriage goes..? I hope, I can see Rahul holding the cup on our tv!

I was asking my friend if he is watching WC? He told he is not, since him watching matches live, make us defeat! Another Amitabh Bacchan story..? I wish them luck. Please please bring us the cup this time...

Saturday, March 17, 2007

My first wikipedia article

Few months back I thought of adding an article on my school in wikipedia. For some time I was thinking of writing on this experience. This post is not exactly a how-to-write-a-wikipedia-article, rather it's to tell what I learnt writing a wikipedia article.

Initially I digged hard and got an article on www on my school. I read and liked it. I started writing the article based on it. Later that turned out to be a big mistake. Problem is when you start doing something based on some other existing work, most probably your present work is bound to get influenced by the existing one. Editing is a difficult job indeed! After finishing the article, I found it has been flagged for copyright violation due to some right reasons. Though no one knew I had some such thing, but I felt extremely embarrassing. To remedy this, I decided to rewrite it but this time it must be totally from scratch. It really helped. It was much better an article.

Moral of the story I learnt is to write something in wiki, it's best to start from scratch. You need to be very careful about this copyright stuffs. You can not avoid copying always, in those cases be fare. Refer the references from your article.

Another thing I learnt is importance of objectivity. When you relate yourself to something, you often become personal in your point of view. That's what happened to me. School being one of my favourite thing, subconsciously I was trying to glorify it. Which can be true, but wikipedia is not the place to post my opinions. Being so you loose the objectivity, which is the main objective of wikipedia (in broad sense for every encyclopedia).

After all this self taught lessons, I was able to write a fresh article and get rid of copyright violation flag. If you are wondering what is this article, here is the link for you.

Monday, March 12, 2007

about new blogger..

I am blogging after almost few months. I like Blogger's this out-of-beta new interface more than the previuos one. Some of the things which I have noticed:
  • One single signon with other google accounts: I used to forget my Blogger user id. Today I was surprised to see my blogger account getting opened without logging in. Then I found this is because I had already logged in GMail from FF.
  • Option to upload a picture from local computer: Since I don't have any other online presence where I have my photo, I was not able to upload my photo earlier. But today I found that there is a new option, and you can see my face now :-) [Though I never claim that's a good thing!]
  • Customized Templates: Templates can be customized more easily now.
  • More options to customize my account: I think there are much more than previuos one. I am yet to explore all..

Sunday, March 11, 2007

Start again..!

I want to start blogging again. Hope to be more regular this time..

Sunday, December 03, 2006

Interesting ad

Seeing the name Infosys in the headline in my FF live bookmarks, I wanted to read the story. When I visited ET site, the ad (I have marked the same in screenshot) placed just top of the article drew my attention than the article itself. I think If you ignore the real headline, the pictures and DON dvd ad gel really well. Not sure if it was conscious effort or just happened.

Tuesday, October 24, 2006

Eid Mubarak!

It was Eid today! Though I am not really proud of the way I practice my religion, but Eid remains one of my rare favourite occasion. It just makes me feel happy. Mostly because it marks the end of ramzan! And there is this regular yearly excitement on the night before Eid, Moon playing hide-n-seek. Though it has happened many a times for me, but spending this day as a stranger in strangers' place is bit odd. I like being away from home, but days like today are little different. I miss my home or may be my own small community at home. But then it's almost end of the day, and I am sure I'll go back to my normal life. Before that I'll do my Eid resolution and this time it is "I will try to be a better person and a better programmer". I know this is pretty abstract a resolution. But that's how I make my resolution. Abstraction makes easier for me not to resolve it!

Happy Eid!