Friday, June 29, 2007

Tinderbox ....

You never know when things will work and but if you believe that they will work ,they will. Ha, finally my own quote :P .

The Solaris download which i asked my friend to do failed :-( . Crap . I waited for that for more than 2 days and finally it failed. Now i can't to afford to wait more. I have to proceed with Tinderbox, that too with real pace. With Emily's trip to GUADEC and college reopening soon, i really have to do some magic.

Emily wanted me to update from Solaris Nevada snv_55 to Solaris Nevada snv_64. Even i wanted to see what's new in next version but looks like fate was against me.

As such i had to reinstall my Solaris Nevada snv_55 because while installing i made a stupid mistake of selecting the default options. If you are ever planning to install Solaris, never ever do that. Do choose the custom install . After some two steps it will ask you which hard disk to choose and after that you can edit the partition size. If you fail to do this, Solaris by default allocates only required space to / and rest all to /export/home. For me it ended up having only 400MB free space in / while my /export/home had around 15GB free space :-(. I never wanted to try gparted and other things. A reinstall will fix all the problems and it did.

So finally my partition size fixed and i am ready to start Tinderbox, when the postman gave a parcel for me. It was Solaris Nevada snv_64 from SUN, which i had registered few days back. I didn't know whether to cry or laugh. Felt like banging my head on the monitor. Murphy is GOD . :-)

So made another install of Solaris Nevada snv_64 and finally was ready to start with Tinderbox. Now i had Solaris Nevada snv_64 and all the softwares required. A new and nice thing about this version is a Shutdown button in the start menu. I really missed that in the previous version.


Another small thing about networking in Solaris. If you want your Solaris box to work with dns entries provided, then you should edit the /etc/nsswitch.conf as follows .

A line in /etc/nsswitch.conf will be as follows
hosts: files
Change that line to
hosts: files dns
This will make sure that first /etc/hosts and then dns entires are looked during networking.

The mail from Emily had the following details with this attachment.

Pre-steps
1. Install the latest Solaris Express(s11)
2. Install SunOne Studio compiler
3. Install JDS CBE

1. Set up environment var. (See myenv.sh attached)
2. Check out tinderbox client from community
$ . /path/to/myenv.sh
$ cvs co -d tinderbox mozilla/tools/tinderbox
3. Some modification to be done in the tinderbox source code
1) post-mozilla.pl
$ cd tinderbox; mv post-mozilla.pl post-mozilla.pl.bak
2) tinder-confg.pl (modify the one attached and use it)
$BuildAdministrator = "%YOUR_ALIAS"
$CVS = 'runsocks cvs -q': (only necessary if you use proxy to access Internet)
3) mozconfig (use the one attached)

4, this step is necessary only if you access Internet via proxy
1) build-seamonkey-util.pl(see the patch file build-seamonkey-util.pl.diff)
2) set http_proxy and ftp_proxy in $HOME/.wgetrc since tinderbox client uses wget to send test result to server

5, let's go -- start up your tinderbox client
$ . /path/to/myenv.sh
$ cd /path/to/tinderbox && ./build-firefox.pl --depend -t MozillaTest > ~/build-firefox.log 2>&1 &

So things were really were clear in her mail.
As of now, i was in pre-steps with just Solaris 11 and neither a Solaris studio nor a CBE . So i started with Solaris studio.

The nice thing about Solaris is that the installing a new software is a matter of few clicks. Almost all the installers in Solaris works right out of the box. So with a few seconds i had Solaris studio installed . I had to change my PATH variables like

export PATH=/opt/SUNWspro/bin:$PATH
export MANPATH=/opt/SUNWspro/man:$MANPATH

So after this, you will have to run sunstudio, but i got the following error saying "java 2 SDK not found"
Omg, so now i had to install j2sdk. Downloaded the file "j2sdk-1_4_2_15-solaris-i586.sh" and when i ran that shell script, it created a folder in the current directory with quite a few files.

No i had no clue what to do that. Finally pinging a few of my friends, came to know that i had to set JAVA_HOME and change PATH variable again. I copied the folder that shell script created (j2sdk1.4.2_15) to /opt and had to modify the environment variables as shown below.

export JAVA_HOME=/opt/j2sdk1.4.2_15
export PATH=/opt/j2sdk1.4.2_15/bin:$PATH

Now if you run sunstudio, things work fine :-) . So now 2/3 pre-steps done. The only step remaining is Common Build Environment (CBE).
Now this again wasn't that difficult. The only catch is to give the proper C compiler. As such, i was supposed to use the Solaris compiler that comes along with Sun studio and not gcc. So first time i made a mistake of giving the path to gcc but next time did that fine.

Phew, all pre-steps done. Now to setup tinderbox. All the steps mentioned there worked right out of box. In step 2, it needed the environment variable $CVSROOT. As such $CVS_ROOT was configured in Emily's script. So just changed that to $CVSROOT and things worked fine :-)

Now finally i ran tinderbox and i am not quite sure about the ouput it produced . It surely generates a lot of output . I had no clue what the output meant and what i am supposed to do with that.
The output i got was like

Name "TreeSpecific::clobber_target" used only once: possible typo at ./build-firefox.pl line 33.
Name "TreeSpecific::build_target" used only once: possible typo at ./build-firefox.pl line 31.
Name "TreeSpecific::checkout_clobber_target" used only once: possible typo at ./build-firefox.pl line 13.
Name "TreeSpecific::extrafiles" used only once: possible typo at ./build-firefox.pl line 34.
Possible unintended interpolation of @gmail in string at (eval 318) line 23.
Starting dir is : /root/tinderbox/SunOS_5.11_Depend

tinderbox: tree: MozillaTest
tinderbox: builddate: 1183129260
tinderbox: status: building
tinderbox: build: SunOS/i386 5.11 home Depend trunk
tinderbox: errorparser: unix
tinderbox: buildfamily: unix
tinderbox: version: $Revision: 1.1 $
tinderbox: END

Opening SunOS_5.11_Depend.log
current dir is -- home:/root/tinderbox/SunOS_5.11_Depend
Build Administrator is sp2hari.com
uname -a = SunOS home 5.11 snv_64a i86pc i386 i86pc
AB_CARDCATALOG=/usr/dt/share/answerbooks/C/ab_cardcatalog
ADDON_PATH=/root/tinderbox/SunOS_5.11_Depend/mozilla//dist/bin:
COLORTERM=gnome-terminal
CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
CVS_ROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-zAaS6sa66Z,guid=9c8119a191db027be12633004684e7cc
DESKTOP_STARTUP_ID=
DISPLAY=:0.0
DTAPPSEARCHPATH=/root/.dt/appmanager:/usr/dt/appconfig/appmanager/%L:/usr/dt/appconfig/appmanager/C
DTDATABASESEARCHPATH=/root/.dt/types,/usr/dt/appconfig/types/%L,/usr/dt/appconfig/types/C
DTDEVROOT=
DTHELPSEARCHPATH=/root/.dt/help/root-home-0/%H:/root/.dt/help/root-home-0/%H.sdl:/root/.dt/help/root-home-0/%H.hv:/root/.dt/help/%H:/root/.dt/help/%H.sdl:/root/.dt/help/%H.hv:/usr/dt/appconfig/help/%L/%H:/usr/dt/appconfig/help/%L/%H.sdl:/usr/dt/appconfig/help/%L/%H.hv:/usr/dt/appconfig/help/C/%H:/usr/dt/appconfig/help/C/%H.sdl:/usr/dt/appconfig/help/C/%H.hv
DTSCREENSAVERLIST=StartDtscreenSwarm StartDtscreenQix StartDtscreenFlame StartDtscreenHop StartDtscreenImage StartDtscreenLife StartDtscreenRotor StartDtscreenPyro StartDtscreenWorm StartDtscreenBlank
DTSOURCEPROFILE=true
DTUSERSESSION=root-home-0
DTXSERVERLOCATION=local
EDITOR=/usr/dt/bin/dtpad
GNOME_DESKTOP_SESSION_ID=Default
GNOME_KEYRING_SOCKET=/var/tmp/keyring-a1aGab/socket
GTK_RC_FILES=/etc/gtk/gtkrc:/root/.gtkrc-1.2-gnome2
G_BROKEN_FILENAMES=yes
G_FILENAME_ENCODING=@locale,UTF-8
HELPPATH=/usr/openwin/lib/locale:/usr/openwin/lib/help
HOME=/root
JAVA_HOME=/opt/j2sdk1.4.2_15
LANG=C
LC_ALL=C
LC_CTYPE=C
LD_LIBRARY_PATH=/root/tinderbox/SunOS_5.11_Depend/mozilla/dist/bin:
LIBPATH=/root/tinderbox/SunOS_5.11_Depend/mozilla//dist/bin:
LIBRARY_PATH=/root/tinderbox/SunOS_5.11_Depend/mozilla//dist/bin:/root/tinderbox/SunOS_5.11_Depend/mozilla//dist/bin/components:
LOGNAME=root
MAIL=/var/mail/root
MANPATH=/opt/SUNWspro/man:/usr/dt/man:/usr/man:/usr/openwin/share/man
MOZCONFIG=/root/tinderbox/mozconfig
MOZILLA_FIVE_HOME=/root/tinderbox/SunOS_5.11_Depend/mozilla//dist/bin
MOZ_BYPASS_PROFILE_AT_STARTUP=1
MOZ_CO_DATE=06/29/2007 15:01 +0000
MOZ_PACKAGE_MSI=0
MOZ_SYMBOLS_TRANSFER_TYPE=scp
NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat:/usr/dt/lib/nls/msg/C/%N.cat
NO_EM_RESTART=1
OLDPWD=/root
OPENWINHOME=/usr/openwin
PATH=/opt/csw/bin:/opt/SUNWspro/bin:/opt/SUNWspro/bin:/opt/j2sdk1.4.2_15/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ucb:/root/tinderbox/SunOS_5.11_Depend/mozilla//dist/bin
PWD=/root/tinderbox
SDT_NO_DTDBCACHE=1
SDT_NO_TOOLTALK=1
SESSIONTYPE=altDt
SESSION_MANAGER=local/home:/tmp/.ICE-unix/316,inet6/home:35165,inet/home:60138
SESSION_SVR=home
SHELL=/bin/bash
SHLVL=2
SSH_AGENT_PID=321
SSH_AUTH_SOCK=/tmp/ssh-XXXAaGNa/agent.316
START_SPECKEYSD=no
TERM=xterm
TZ=Asia/Calcutta
USER=root
WINDOWID=41943093
XFILESEARCHPATH=/etc/dt/app-defaults/%L/%N:/etc/dt/app-defaults/C/%N:/usr/dt/app-defaults/%L/%N:/usr/dt/app-defaults/C/%N:/usr/openwin/lib/locale/%L/%T/%N%S:/usr/openwin/lib/%T/%N%S
XMBINDDIR=/usr/dt/lib/bindings
XMICONBMSEARCHPATH=/root/.dt/icons/%B%M.bm:/root/.dt/icons/%B%M.pm:/root/.dt/icons/%B:/usr/dt/appconfig/icons/%L/%B%M.bm:/usr/dt/appconfig/icons/%L/%B%M.pm:/usr/dt/appconfig/icons/%L/%B:/usr/dt/appconfig/icons/C/%B%M.bm:/usr/dt/appconfig/icons/C/%B%M.pm:/usr/dt/appconfig/icons/C/%B
XMICONSEARCHPATH=/root/.dt/icons/%B%M.pm:/root/.dt/icons/%B%M.bm:/root/.dt/icons/%B:/usr/dt/appconfig/icons/%L/%B%M.pm:/usr/dt/appconfig/icons/%L/%B%M.bm:/usr/dt/appconfig/icons/%L/%B:/usr/dt/appconfig/icons/C/%B%M.pm:/usr/dt/appconfig/icons/C/%B%M.bm:/usr/dt/appconfig/icons/C/%B
XPCOM_DEBUG_BREAK=warn
_=./build-firefox.pl
dtstart_sessionlogfile=/dev/null
-->mozconfig<----------------------------------------
# Make flags
mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_CO_MODULE="mozilla/tools/codesighs"

# Configure flags
ac_add_options --enable-application=browser
ac_add_options --enable-optimize
ac_add_options --enable-codesighs
ac_add_options --enable-crypto
ac_add_options --enable-xft
ac_add_options --enable-svg
ac_add_options --enable-canvas
ac_add_options --disable-freetype2
ac_add_options --disable-debug
ac_add_options --disable-tests
-->end mozconfig<----------------------------------------
Didn't find /root/tinderbox/post-mozilla.pl
===============================
Compiler is -- CC
===============================
Begin: Fri Jun 29 20:32:28 2007
cvs -q checkout -P -D "06/29/2007 15:01 +0000" mozilla/client.mk mozilla/browser/config
End: Fri Jun 29 20:32:31 2007
/root/tinderbox/SunOS_5.11_Depend/mozilla//dist/bin/firefox-bin does not exist.
No binary detected; none deleted.
Begin: Fri Jun 29 20:32:31 2007
make -f client.mk checkout
make: Fatal error in reader: client.mk, line 126: Unexpected end of line seen
End: Fri Jun 29 20:32:32 2007
Error: CVS checkout failed.

The last line is scary :-(. Have to ask about that to emily or nags soon. And oh yeah, now that i have setup a Tinderbox in Solaris, i want to setup one in Linux. Just want to see whether it is so easy in Linux. ;). Now i got my confidence back :). I can now really finish lots in integration of Firefox Test cases into Tinderbox before i go back to college. And now i am no more scared of Solaris :-) .

Have to figure out something about the Tinderbox log.
Bye for now.

Thursday, June 21, 2007

Projects ...

"The word "project" originally meant "something that comes before anything else is done". When the word was initially adopted, it referred to a plan of something, not to the act of actually carrying this plan out. Something performed in accordance with a project was called an object. This use of "project" changed in the 1950s when several techniques for project management were introduced" -- Wikipedia

Now that holidays are about to get over, now i realized :P a few strange things about projects. Most of them are from personal experiences.

1. Whatever happens, you will finish the project on time. On time, meaning the last day when you have to submit your project (this includes quite a few a night outs before that day).

2. If you finish the project one/two weeks before time, either the project is very very simple for you or you didn't do your project at all :P

3. The first few weeks of the project will be really frustrating as you will be reading and chatting more than you code. Actually for the first few weeks, if your LOC is around 3-4 it is really great.

4. The last two-three days of your project, the LOC will shoot up to few hundreds :-)

5. Even if you chat 24*7 during the project time, somehow you will complete the project on time. You won't even realize how the code actually came there, but at the end of the day, it will be there.Though even if you work really hard 24*7, you will have the same output.

6. If you are geek and you are doing a project in Bangalore, don't try to go to a pub.

7. You will be really satisfied about completing the project on the last day.

8. You will feel bad that you could have done lots more in the project only on the last day. You will realize you have taken more time to understand the old code :P Only on that day you will start loving your project and you will feel like working more on that.

9. Only if you have project review, you will feel really really sleepy that you might end up not coming for the review.

10 . Your friend's project will always look easier.

11. The last three days, you will be cursing your project like anything. You will hate it to the core. But after that, you will think that your project is not so bad.

12. Only for the first one week, you will report for your project work on time. After that it will be late from 2-4 hours. Though this will be compensated by the night outs you do for your project.

Love story of a topper ...

Well, i am kind of not sure whether i should write this or not. I have never written a blog describing about someone else ,his second girl friend and about their deep love and how she became my girl friend after that. But recently, the tech level of my blog has increased so much that my normal friends don't even bother to read my blog. Looks like it is too techie for them. So this might be something for them. And yes, if i get a chance to shoot a movie, i will do this one.

Ok , the hero (or rather the villain :P ) of the story of is Manas Garg. He is the topper of Computer Science Dept and now is happily working in M$.

First i should tell you that all i am going to tell you is true and only true. I have not modified anything to make the story interesting. It's just plain facts. I have proof for that which i have added to this post. To make the story more interesting first the proof and then the story.

The following is the chat log between me and manas garg. Not even a single word in that chat log is modified. To make things clear, i have removed what i spoke in between.

Manas: that would be soo cool
i was crazy about her
spent nights with her


Manas: took care of her more than myself then

me: lol :-)

Manas: i had to leave her gave her to others coz i had to go
i still love her


Manas: i always will

me: ha ha

Manas: one day we will unite again and the world will salute our love

So that's what he confessed to me today.

Since that girl might feel bad if i tell her name ( actually too many people in our college love her. :P In fact i am one in the list . ) . So let us name her X. Hmmm no why X ?? X is for unknown values. I know her and you know her too. So let us name her S.

Now our hero manas, met this girl in second year and he didn't like her much. She used to give boring work to our villain ( ???? ). So manas never liked her. In fact he hated her so much, that he never wanted seeing her again. But manas, when he first met that girl felt that he could change her and make her better. But this girl was so bad that manas had almost lost hopes :-(
// If you want you add a sad song here where just the hero sings something in sad tone all alone. Like

dil ke raste me aisi thokar maine khayi
tute khawab sare aisi mayusi hai chhayi
har khusi ko gaye,jindagi so gaye
tumko jo pyar kiya maine to saja me paye
tanhayee,tanhayee,tanhayee......
from Dil Chahta Hai

If you don't know Hindi, you can imagine this song

kaN paesum vaarthaigaL purivadhillai
kaathirundhaal peN kanivadhillai
oru mugam maRu mugam theriya
kaNNaadi idhayam illai, kadal kai koodi maRaivadhillai

from 7G Rainbow colony

Then suddenly S and manas met more often. Manas also got some people (including me) to help him. Soon he changed S. It was magic. This stupid girl who is not useful for anything suddenly became the hot topic in college.
// A duet song here will be fine. Don't worry we will make manas dance when i shoot this movie ;) . Songs like the following will be fine

jise dhundata hoon main har kahin
jo nahi mili mujhe thi kahin
mujhe jiske pyar par ho yakin
wo ladki hai kahan
jise sirf mujhse hi pyar ho
jo ye kehne ko bhi taiyaar ho
suno tumhi mere dildaar ho
wo ladki hai kahan
From Dil Chahta Hai

or

Sutrum vizhi sudare
Sutrum vizhi sudare
En lagam unnai sutruthe
Sattai payyil un panam
Thottu thottu urasa
En idhayam patri kolluthey
Un vizhiyil vizhunden
Vinveliyil paranthen
Kanvizhithu soppanam kanden
Unnale kanvizhithu soppanam kanden

From Ghajini


After she changed, manas loved her more and more. He forgot about his studies. He forgot about his room, friends and almost everything. All cared only about her and sometimes was ready to do anything for her.

But a sad thing happened. I was a good friend of both manas (thanks to Spider) and her. I knew manas was in love with her, but even i started liking her. So much that sometimes i was ready to give anything for her. :-). Now i don't know who loved her more since it is not possible to compare. Soon manas came to know that i had a crush over her. I though he will be angry with me :P but he didn't say anything.

Though me and manas were good friends, last semester we were really fighting for her. We gave her so much importance but we forgot about everything else.

And on Spider's Farewell day, just some few minutes before the end of the party, she proposed me :P . It was kind of strange, coz others started clapping and all when she did that. I was actually blushing. I knew that was going to happen but i never that it will happen during the farewell. And actually even manas was there when she proposed me. He was very sad that day. :P Anyway the party mood made him forget about that. :P

Now that manas is gone, she is all mine.Unfortunately, now more and more people are getting really really interested in her, though as of now, i think i am the only person mad about her.

Note ::
If you have found out who she is, just say that so. You need not tell her name. :P
Also there is another interesting story :P by suren . Check it here

I'm interested



Do you know that when you use caps or large font while chatting or in mail, it implies that you are shouting.

I generally get irritated when people shout, but this one is an exception. I was really glad that he shouted. In fact, i was waiting for him to shout. Now that he is with us, nothing can stop us. :-)

Disclaimer :: Sorry. This blog post is only for me. If you don't get anything, just forget about this and move to the next post.
If you are still curious about this post, hack my gmail ;-)

Wednesday, June 20, 2007

Conquered solaris ....

Got up at 4 PM :-). Yes 4 PM. Yesterday after finding out that my Ethernet card had some arbit problem, planned to buy a new one. But felt like checking my Ethernet card for the last time. Went to my friend's place and checked my Ethernet and it worked there :-(. I was both happy and sad. Happy because my Ethernet is working, no need to buy another one and sad because now i don't even know what is the problem with my computer. Anyway i got another Ethernet card from my friend's computer (of course after promising her a treat).

First checked the computer with her Ethernet card. Internet worked both in Solaris and Windows. WOW :) . Now again, i checked again with my Ethernet card and WOW WOW WOW, it connected to Internet from all three OS. Now what is happening here ??? Yesterday i spent more than 7 hours trying to make this card work and now this is working out of box within 5 mins. And as such i did the same thing what i did previous night. Looks like you can never try to reason out few things.

Anyway now i am in Solaris and it is cool. First had to install new softwares. Taggy gave me the this link. And this one was also very useful. So within a matter of 5 mins, i installed most of the softwares i might need.

As such i had three main things to do in Solaris according to the mail Emily Chen sent me. They are

1. Read about tinderbox setup from http://www.mozilla.org/projects/tinderbox/ .

2. Sun Studio 11
http://developers.sun.com/sunstudio/products/previous/11/index.jsp
On Solaris, Sun Studio is used to build Firefox, not gcc, so have to install Sun Studio.

3. Set up CBE (Common Build Environment)
http://opensolaris.org/os/project/jds/contributing/building/

Now my goals were very clear. And internet from Solaris was working cool, just thought of downloading everything then, but Sun Studio was around 300 MB and already my internet bills have reached peak. So had to wait till 11 PM ( 11PM to 9 AM free internet :P) .

Started downloading at 11. 15 . OMG. It started at 7KBs and said it is gonna take 24 hrs :-(. Now i can't do anything to this. Have to sit and wait :P . When i am writing this blog (ie 8 AM), it says only 5 hrs left.

Still network configuration has few glitches. I have to enter the DNS entries every time i reboot the system. And even though i have configured it to activate on boot, the Ethernet card has to manually activated after every time. This is strange since, i have a file called hostname.rtls0 in / (which should activate the Ethernet card on boot )

Yesterday Solaris had me. It made me frust to the core. It made me raise doubts about whether i will be able to finish SOC on time. But today is my day. I conquered :P solaris. In fact now that Solaris phobia is slowly disappearing. Now it is time to say Hello World to Tinderbox :P.

Tuesday, June 19, 2007

networking not working :P...

I have got a new phobia. Solaris phobia :P. lol.
Well how easy solaris can ruin one whole night. Though i shouldn't blame Solaris completely but at least it deserves something for troubling me with DNS thing sometime back .

Anyway here comes the story. After discussing with Casanova about tinderbox i realized that setting up tinderbox is an important issue. So i was all set to start with tinderbox setup. But looks like fate had other plans. Anyway after discussing with Casanova ( at around 10 pm ), soon started working into tinderbox.

But once i booted into Solaris and went to Google.com, it said "Could Not Connect". Since i have seen this error many a times already, i just went to the network manager and found all my previous entries missing there :P. Nothing unusual actually. So entered the values again and restarted networking. Now again the same old error. Since i have already configured DNS once and connected to internet from solaris, i thought the same settings will work this time also.

But noticed something strange. This time it won't even ping to my DNS or Gateway. Well this is certainly strange. I called taggy (solaris club head :P) and explained him the situation. He gave a few solutions and i tried some other things which i found in internet. The bad part about networking not working is that even to Google or download something, you need to reboot :-( "Life is too short for reboots" they used to say.

Anyway now the time was 12 . Shit. Two hours gone and still no progress. Had a idea of going back to Firefox test cases but NO. I have to work with Tinderbox and i will do it tonight. So read manuals from here and there about configuration and tried everything given there :(. No luck. Though internet seems to work from windows and Linux.

Now one unfortunate thing is i have two Ethernet cards ( Realtek and VIA). Solaris detects only Realtek , so i use that for Solaris while i use VIA for Linux and Windows. Just then it realized. Is the Realtek Ethernet card working ??? What if that has the problem ??

So one more reboot. Configured the Realtek card to connect to internet. Widows detected the card, LAN enabled but internet was not working. Same problem as i had in solaris. SHIT SHIT SHIT. So finally my Ethernet card has some problem :-(. The strange thing is, it detects my card and all, but just that it wont send/receive anything through the card. Strange problem, but why to me :-( :-(

After realizing the problem (well time is 3 am now), i thought of finding the driver for the VIA Ethernet card, and managed to download a driver. A reboot back to Solaris, i realized that i don't even have a gcc to compile the driver. Downloaded gcc and finally now it is 5 am :-(

I am NOT going to try installing the driver for VIA Ethernet card. I am getting frustrated , irritated and what not,when i see a reboot. A 60-75 reboots in a span of 7 hours is not something really exciting and motivating :(. So all i am gonna do is to check this Ethernet card in friends place and get a new one.

Finally when i wrote this blog it is 5 AM. From 10 PM to 5 AM, no progress at all. All i found out is my Ethernet card might not be working :( :( . Not even a single line of Code in 7 hrs of real hard working :-(, actually not even a single word of code :P .
A nightout is nothing new for me, but this time i really felt the pain of one whole night completely wasted :(.

Now all i hope is my Ethernet card should have a problem, so that i can get another one soon and start with my work. Only God can save me if it was not an Ethernet problem :P.

Sunday, June 17, 2007

Firefox 3 UI rocks...

Really , the user interface of Firefox 3 rocks. Text boxes and other form fields have a nice smooth corners and select menu item is similar to the one you find in gnome :) .

The old form elements are shown in this image.

Click image for a clear view

New here comes the new interface of the same webpage in Firefox 3 :-)

Click image for a clear view

Wow, looks like any web developer can make web pages which will look really cool in Firefox 3.

Finally 10....

Ok, i am certainly not talking anything about my GPA. After fighting (fighting is an understatement i suppose) with Firefox and LDTP for 3 hours (well this is actually few days), finally managed to get 10 test cases work properly.

At least these 10 test cases will work properly for integration with Tinderbox. Have to send these test cases to emily soon and get them integrated with tinderbox.

The output log is
<ldtp>
<group name="group1">
<script name="verifyaddressfield.py">
<test name="address field and go button">
<pass>1</pass>
</test>
</script>
<script name="verifybackforward.py">
<test name="Back and Forward buttons">
<pass>1</pass>
</test>
</script>
<script name="verifyhome.py">
<test name="verify home button">
<pass>1</pass>
</test>
</script>
<script name="verifynewtab.py">
<test name="Open a new tab ">
<pass>1</pass>
</test>
</script>
<script name="verifyyahoo.py">
<test name="topsite - yahoo">
<pass>1</pass>
</test>
</script>
<script name="verifymsn.py">
<test name="topsite - msn test">
<pass>1</pass>
</test>
</script>
<script name="verifyamazon.py">
<test name="topsite - amazon">
<pass>1</pass>
</test>
</script>
<script name="verifyftp.py">
<test name="navigate ftp">
<pass>1</pass>
</test>
</script>
<script name="verifysearch.py">
<test name="Open search by keyboard shortcuts">
<pass>1</pass>
</test>
</script>
<script name="verifyfindinpage.py">
<test name="Find in Page">
<pass>1</pass>
</test>
</script>
<timeinfo start="03:23:00 AM on 18-Jun-2007" elapsed="0:1:8"></timeinfo>
<groupsstatus total="10" pass="10" fail="0"></groupsstatus>
</group>
</ldtp>

Well looks like i have underestimated how bugs can trouble a poor coder like me :P.

Each test case has its unique problem :P.
The major problem is the Firefox crash :(. Though the test case work individually, Firefox crashes if all the test cases were run under a single runner xml :-(. I have downloaded Firefox firefox-3.0a6pre now ( was using firefox-3.0a5pre all these days). Hopefully Firefox 6 is stable against the test cases :-).

Anyway the 10 is not the final list. I am supposed to test 30 test cases properly for the Functionality subgroup of smoketests testgroup for Firefox 3.0. Not to mention about the lots and lots of test cases from other test groups.

Let me post the issues i am facing with the other test cases, so that it is easier for me to fix them later.

Before that, the 10 test cases which worked in my favour are :)

3954: Address Field and Go button
4032: Back and Forward buttons
4031: Home button
4086: Open a new tab
3955: Top Site - Yahoo
3956: Top Site - MSN
3957: Top Site - Amazon
3959: Navigate FTP
4245: Open search by keyboard shortcuts
3967: Find in Page

The test cases having issues are
1. 4137: Add an RSS feed/Livemark
This is the strangest test case i have ever found :(. This doesn't work for the first time. Next time without any modification, if i run the test case it works like properly. Third time it is not working and fourth time it again works properly . Well, that is more than enough for me, i either end up banging the computer monitor or beating myself that there is no 5 th time :-(. Should check this test case properly.

Looks like this is the only test case which troubles me as of now. Have the rest of the code ready but looks like new problems are starting soon. For the same runner xml, same files , same Firefox, test case 2 shows come error. Have to check that soon. Got firefox-3.0a6pre few mins back. Have to run the test cases with that.

And yes, tried something with the list not getting selected problem. Even nags confirmed this problem some time back and finally able to find out the exact line where the error occurs .

if (AccessibleSelection_selectChild (selection, text_index)) { }
That is line 110 from list.c. The if statement is returning false ending up in "LDTP_ERROR_UNABLE_TO_SELECT_CHILD" . Hoping to fix this soon. Will be really happy if i fix this one as i will be able to add something to the ldtp source code. Been a long time since my name appeared in the Changelog ;-) ;-)

Only thing i am happy about is both Ubuntu Linux and Solaris responds similarly for the test cases. So no separate Firefox issues and Solaris issues as of now. Let us see how this proceeds.

Another small issue.
Whenever i get any error in any of the test cases, i get the following error
<script name="verifyamazon.py">
<test name="topsite - amazon">
<ERROR>Traceback (most recent call last):
File "/usr/local/bin/ldtprunner", line 407, in executescript
execfile (scriptname, scriptglobal)
File "verifyamazon.py", line 52, in <module>
log (msg, 'error')
File "/usr/local/lib/python2.5/site-packages/ldtp.py", line 2500, in log
logger.error (message)
File "logging/__init__.py", line 1015, in error
File "logging/__init__.py", line 1100, in _log
File "/usr/local/lib/python2.5/site-packages/ldtp.py", line 2421, in makeRecord
return LdtpLogRecord (name, level, fn, lno, msg, args, exc_info)
File "/usr/local/lib/python2.5/site-packages/ldtp.py", line 2394, in __init__
msg = '<' + logging.getLevelName (level) +'>' + saxutils.escape (msg) + '</' + logging.getLevelName (level) + '>'
File "/usr/lib/python2.5/site-packages/_xmlplus/sax/saxutils.py", line 31, in escape
data = data.replace("&", "&amp;")
AttributeError: 'LdtpExecutionError' object has no attribute 'replace'
</ERROR>
</script>

I am giving the error message properly in the try block, but not in the except block. When i give the error in the except block then i get the error message in the log file properly. But i am supposed to pass the error message from the try block to the except block. Should learn a bit of python exceptions to know more about this

Anyway the files for the test cases which are working can be obtained from here

Note :: Have added many more test cases to the above file now, but didn't like to change the title.

Tuesday, June 12, 2007

Meet GNU/Linux 07

After 2 successful editions of Meet GNU/Linux, which is conducted by
GLUG-T every year for beginners, the third edition of MGL is starting
on 27th July, at NITT.

A few updates about MGL'07 :

1. Guys are planning to release a beginner handbook, which would be
given out to them. The content is being edited in a wiki :
http://glugt-mgl.pbwiki.com/ Go ahead and edit when you are free.

2. This is GNU/Linux for dummies. So, if you have any of your
friend/relative interested in learning about it(in trichy), you can
ask them to contact suren who is co-ordinating
the event.

3. The co-ords are planning to release podcasts of the events, which
will be helpful.

Ideas, suggestion about how to organise the classes are welcome!

Comments :)

How many comments have you seen for a single blog ?

Well, when i asked taggy (the internet guru of NITT) he replied around 10-20. Suren has seen around 50 for a he-she blog.

But this one is amazing. A single blog (in fact a single line blog) getting around 268 comments (and still counting).

Reminds me that "What you say is more important than how much you say".

Monday, June 11, 2007

Topping google search

I attended the podworks.in last weekend. For those who don't know what podworks is , PodWorks.in is a 2-day workshop styled unconference dedicated to the sharing of knowledge around audio and video podcasting. It's a successor to the extremely successful BlogCamp that was held last year.

Though i have lots and lots to say about the event, one strange and nice thing is that if you google for podworks.in my blog tops the list :-) :-)


Sunday, June 10, 2007

Internet from solaris ...

DNS makes our life real easy. Without that, i don't think people will say check out http://google.com but check out http://64.233.187.99. I realized how important DNS is to us and without DNS how one can go mad.

I installed Solaris (Neveda ) two weeks back and it was good. :-) . Though i was a bit scared in the initial stages, i didn't find much difference between Linux and Solaris as far as LDTP is concerned. Anyway i had Emily Chen from Sun China (my Soc Mentor ) to help me with the issues and many thanks to her, she was always willing to help me in any issue. In fact almost all her mails had something saying
" I am on Gtalk almost every workday, feel free to ping me when you have problems. " or something similar to that :-) :-)

But there was one issue which really troubled me in Solaris and that was DNS wasn't working. Instead of typing http://www.google.com, i had to type http://64.233.187.99/ :(

I had a huge list of servers which i might use and their ip's . (Many thanks to dnsstuff.com). I was getting more and more frust typing IP's instead of url's and browsing only the cached page instead of the actual pages. I tried many a things and even Emily also helped me with few tips and tricks. But things never worked. I was really getting irritated as this was delaying my progress in SOC.

Determined to solve the issue somehow, i started trying all the options in the Network Settings. One strange thing i noted is that, whenever i add a DNS server and close it, next time i open Network Settings, the entries won't be there. Simply disappeared from there :-(.

I noticed an option called Location in the Network Settings. It was empty and i wasn't sure whether i have seen anything like this in Linux.



Not sure of what to do with that Location, i gave "home" there. I wasn't sure whether this will solve my problem, but no harm in trying. But once i restarted network, www.google.com worked.
YES. IT WORKED. IT WORKED .IT WORKED. IT WORKED .IT WORKED. IT WORKED


I am pretty sure anyone who had seen me at that time would have thought that i am mad. Even i wont blame them . I accept, suddenly jumping out of the chair and shouting "IT WORKED" at 3 in the morning is quite odd. :P

Anyways, now that things have started working, will be saying my "Hello World" to tinderbox soon :-)

Running a test case ...

Having written the test scripts for Firefox, this time going to tell how to test Firefox with these scripts. The test scripts can be found here

There is a wiki page in LDTP website which gives quick tips about how to run LDTP test cases.

First quick steps to get LDTP installed . If you have LDTP already installed, then you can skip this.

Installation
Get the source/binary from the downloads section of LDTP web page. Any other dependencies which LDTP might need while installation is libxml2 and libat-spi. (I generally install the debug and dev packages of the above two). After this installation of LDTP shouldn't have any issues :-)

Runner XML
Runner XML files makes testing many test cases one after another in a batch mode easy. A sample runner XML can be found here. A very simple runner XML needed to run a single test case will be like

<ldtp>
<logfileoverwrite>1</logfileoverwrite>
<logfile>log.xml</logfile>
<group>
<script>
<name>verifyaddress-autocomplete.py</name>
<data>firefox.xml</data>
</script>
</group>
</ldtp>

The tags are self explanatory.
You can have any number of script blocks and thereby test any number of test cases one after another. The data tag is not necessary but it is better to have a separate data file.

Test
Well, that's all you have to do. Start Firefox and then

hari@home:~$ ldtprunner run.xml

The above command starts testing the application with the test case provided in the run.xml .

Note :: It is also possible to test simply by giving

hari@home:~$ python verifyaddress-autocomplete.py

But i prefer doing it using runner XML, as that has more features.

There is a complete tutorial for LDTP here. This explains everything needed to write a test script clearly and is worth reading :)

Friday, June 08, 2007

SOC report ...

My SoC is going fine and great. Hoping to finish this well ahead of time:) This is a blog + report :)

So i have started with Automation of Firefox.
For the current status of all the test cases i have mentioned here, check this link

The categories under which i have written test cases till now are
1. Firefox 3.0 :: SmokeTests :: Functionality
Most of the test cases in this category are done. certain test cases which are yet to be done are marked as TODO in the status page.

2. Firefox 2.0 :: Basic Functional Tests :: Help
This is a really small category, with just two cases. Both of them working fine, but have to check the closewindow() function which didn't close the help window.

3. Firefox 2.0 :: Basic Functional Tests :: Options (Preferences)
Have done almost all the test cases. There is again a small issue in this. The objects shown in the preferences window are list-items whose parent is a list. We tried to copy the code for combobox for list but it didn't work. Have to add functions specific for list in list.c

4. Firefox 2.0 :: Basic Functional Tests :: Printing
This had bug in the print preview option. The CPU just hangs and processor takes 100% load . This bug is already reported in bugzilla.mozilla.org .

5. Firefox 2.0 :: Basic Functional Tests :: Location bar
Works perfectly. Had to use LTFX functions activatewin and typekey .

6. Firefox 2.0 :: Basic Functional Tests :: Popup and Annoyance Blocking
Most of the test cases have been automated. Testing Java and Javascript is a small issue in this.

Some of the important categories which i have started tesing and is in near completion are
1. Bookmarks
2. MenuBar
3. RSS
4. Downloading
5. Addons Manager

Finally, the code for the above tests can be found here.
Finally one small and interesting thing ;-). The icon which shows that the loading of a page ( the circular thing which rotates while a page is loading) is a push button :-) . Was really surprised when i noticed it :P. No clue why is it that way ;)

Wednesday, June 06, 2007

I got my copy :-)

This is my first post related to my SoC.
So let me just introduce things.
I am doing Google Summer Of Code under Mozilla Foundation . My mentors are Nagappan from Novell, Bangalore and Emily Chen from Sun, China.

When i started working for my SoC, i got a mail from Google SoC team saying
"Hello everyone,

In keeping with last year's tradition, we will be sending a surprise
to all students. Last year we sent a cool Google notebook (complete
with paper legacy interface), and this year we have something even
cooler in the works.

If you really feel you must, go ahead and start a barrage of "I wonder
what it could be" posts to the list. But please don't. You'll have
the ultra-cool surprise in hand soon.

One final reminder, when you get your surprise, please don't tell the
rest of the world until June 4, 2007. We'd like to keep it a surprise
for as many folks as possible.

After that, by all means blog, post, etc. :)

Cheers,
LH "

The moment someone tells you that you are going to get a surprise, you start thinking only about it and nothing else. :-) . And of course i am no exception. All i knew was it is a book signed by its author. There is long discussion in the Google soc group guessing whether it can be Linus or someone else.

Finally i got the book few days back. It is
Producing Open Source Software: How to Run a Successful Free Software Project by karl fogel.

Wow :) i never thought just a book will make me so happy. This is the first book i have ever got which is signed by its author :) and i felt so happy that i can't describe it here :-)

I really can't wait to get back to college so that i can scan the first page ;-) and put it up here. Man, just a simple signature with a text saying "Happy Hacking" but whenever i see it ,makes me feel happy and proud :-).

And yes, the best part was that the author was kind enough to post a blog about it. So if you don't believe what i am telling you, check out his blog about the book here.

The review about the book in one line. "The more i read it, the more i love it." There are many places where the author has taken care to give appropriate examples, funny incidents, etc.

Finally
Thanks a ton for Google for such a nice idea. :-)

Tuesday, June 05, 2007

Oath for Software Engineers

Never write a line of code that someone else can understand.

Make the simplest line of code appear complex. Use long counter intuitive names. Don't ever code "a=b", rather do something like:

AlphaNodeSemaphore=*(int)(&(unsigned long)(BetaFrameNodeFarm));

Type fast, think slow.

Never use direct references to anything ever. Bury everything in macros. Bury the macros in include files. Reference those include files indirectly from other include files. Use macros to reference those include files.

Never include a comment that will help someone else understand your code. If they understand it, they don't need you.

Never generate new sources. Always ifdef the old ones. Every binary in the world should be generated from the same sources.

Never archive all the sources necessary to build a binary. Always hide on your own disk. If they can build your binary, they don't need you.

Never code a function to return a value. All functions must return a pointer to a structure which contains a pointer to a value.

Never discuss things in concrete terms. Always speak in abstract. If they can understand you, they don't need you.

Never complete a project on time. If you do, they will think it was easy and anyone can do it and they don't need you.

When someone stops by your office to ask a question, talk forever but don't answer the question. If they get their questions answered they don't need you.

Load all sentences either written or spoken with alphabet soup. When someone asks you out to lunch, reply:

"I can't because I've almost got my RISC-based OSI/TCP/IP client connected by BIBUS VMS VAX using SMTP over TCP sending SNMP inquiry results to be encapsulated in UDP packets for transmission to a SUN 4/280 NFS 4.3 BSD with release 3.6 of RPC/XDR supporting our ONC effort working."

Never clean your office. Absolutely never throw away an old listing.

Never say hello to someone in hallway. Absolutely never address someone by name. If you must address someone by name, mumble or use the wrong name. Always maintain the mystique of being spaced out from concentrating on complex logic.

Never wear a shirt that matches your pants. Wear a wrinkled shirt whenever possible. Your shirt must never be tucked in completely. Button the top button without wearing a tie. This will maximize your mystique.

Sunday, June 03, 2007

Hols are bad for health

Well, i never thought i will ever say this but really
"Hols @home sucks".
This is the first time i am actually staying at home after joining college (was lucky enough to keep myself busy with something or other during hols :-) ) and i never realized it will be so boring :(.

Not that i don't like my home but i simply miss college.
Even though i chat with my friends 24*7 , i simply miss people . The best part about being with a group is that you don't have to do everything alone. You're with your friends. Working alone is really not the kind of thing which i would like to do and now i have to work all alone. Wish college reopens soon ( even if reopens tomorrow, it is fine with me :-) :-) )

This quote is so true

Just as a puppy can be more of a challenge than a gift, so too can the holidays.
John Clayton