Tuesday, December 27, 2011

Life of others .... A way to learn

It was a foggy morning that day in north and I was travelling on a train from Dehradun to Delhi. It was good that i unknowingly booked that ac seat for me nearly two months back. Outside temperature, i can't say exactly but may be 5 deg and our compartment was reading 23 degrees inside. I had to take away my jacket as half jersey was enough for me.
Train was already delayed and I was praying it won't get delay anymore as I had to catch a flight from delhi to Hyderabad. Our compartment was filled with school students eagerly waiting to reach their home to spend their vacation, few families quarreling that they weren't getting enough space to put their luggage, people asking to pantry person to get then Tea as they don't want coffee. So, many faces (happy, struggling etc), requirements and aspirations. I was just thinking about myself, how the life has changed for me. I was nothing few years back. Just a Bachelor Degree in Science and I used to think it would be great if I get a job in Call-Center at least to start with. I hails from a place where there is a lack of guidance and also my friend circle was like that too. I am not praising myself but yes I put some good foot forward after my graduation and got myself in a position that I can proud of. Sitting alone I was hoping everything goes smoothly as it is. Around 3hr of journey left when our train stopped in a small station. God, I was getting irritated by such small halts. I could see no one on the station but a poor man with a blanket on him which was enough to save his life from this breath taking cold, I guess. He started moving towards the track and picked up a polythene and dropped something from the newspaper cover he had into it (which I guess was food). That wasn't unusual, after all he was poor and what more you expect though I was feeling pity on him. He jumped back onto the platform and picked a tobacco packet too. Oh! he was picking as if he was expecting something from those thrown packets. He opened the packet and tried to get something out of it. Wasn't to my surprise but there was nothing on it and that guy, he wasn't also surprised too. He calmly put the packet down and moved towards the tap, cleaned his hands and picked handful of rice to eat from his polythene. Such a life, no frustration, no anger. He just expected something and picket that packet to find nothing. This whole act didn't surprise me much as he has no one to yell on except his own destiny but why to curse that too as you are the one who nurture and play with it. But it reminded me the simplicity, calmness, acceptance which we need to have in our life to have a peaceful mind. What if he would have got something from that polythene or that tobacco packet. I think his reaction would have been the same, numb, because he don't expect any surprises. But still his reaction was same for the case too when he got nothing. When we are sailing a smooth life then its so lovely but it may be harsh too. Life inside that AC train was a bit calm and outside it was the practical world, where you have to survive against all the odds. The lesson I could gather from that journey is be ready to face any poor situation, don't expect too much, don't be excited for the surprises in life because surprises are never planned.

Thursday, September 8, 2011

My Facebook Page got Hacked :(

My Facebook page got hacked last week.
My password wasn't changed but the profile was completely. According to that I lives in Karachi, DOB 14 Aug 1947, female .. looking for men :). Also, it added some posts in my wall visible to everyone.
First thing I did was update my password. Then I removed all those posts from my wall, so that no one receives it. Then I updated my profile. But I wasn't able to update my DOB, 'About me' and 'Interested in'. I checked every settings in FB but couldn't update it. Then I found that in 'Account Settings' -> Privacy -> 'Deactivate your account' -> 'My account was hacked' you can reset your password and update your DOB, but 'About Me' and 'Interested In' was still the matter of concern :(.
Then I searched FB for help topics but could hit the answer. Then I searched in Google for this and I found the answer which was already discussed in FB discussions :). Google search still rules.
These two fields can be updated via m.facebook.com. Go to mobile browser and login to your FB account. From there I could easily update my account settings which I wasn't able to do via Desktop Browser.

Sunday, August 28, 2011

Some Windbg commands for stack trace

I received a crash dump on Windows for one of the applications. To reproduce the stack trace I used some useful commands below:
1) "C:\Program Files (x86)\Debugging Tools for Windows (x86)\symchk.exe" /r c:\windows\system32 /s SRV*c:\Windows\Symbols*http://msdl.microsoft.com/download/symbols => symchk checks which Windows .pdb is not present under system32 and copies them to the location c:\Windows\Symbols. This command is not required unless you requires to check stack trace related to Windows.
1) .symopt +0x40 => I wasn't having the exact matching .pdb of the respective DLL's. So, this command forces to use the pdb which I have provided.
2) !analyze -v => I makes the output verbose. Display full message along-with stack trace. For e.g. which pdb isn't found.

Apart from these steps provide the location of .pdb in Windbg. In case of multiple paths use `;`.

Tuesday, May 10, 2011

Unforgettable moments at PTC - II

And here is my last day and my last blog from the desktop of this company :). As compare to yesterday I am pretty relaxed today.
Completing few HR and finance formalities.
Will surely miss my PTC colleagues.
Lets see what new company has got for me.

Monday, May 9, 2011

Unforgettable moments at PTC - I

Its my second last day at PTC. After few hours I will leave for my flat and will come back again tomorrow which will be my last day. My heart beat has increased, I am shivering, feeling heat, thinking a lot and thats just because tomorrow is my last day.

I have enjoyed my last 3years at PTC. I started as a fresher. Its so unlike that I have done a Bsc(PCM) and end up doing a job in a Product base Company and that too in C/C++. I think it was my perseverance which landed me here.

Thanks a lot to my manager Amit Chordia. Such a cool guy. He has been a true mentor to me.

Monday, May 2, 2011

Export/Import a static variable

I faced a scenario in which I required to export/import (from/to a DLL) a structure pointer variable declared as NULL in a .cxx file.

static Notify_struct *ptr_name = NULL;

Now since it a .cxx file I can't use my Export/Import API, because in-case this file is read undet dllimport it will report compilation error as 'definition of dllimport not allowed'.
So, I moved declared this variable to a header file like this:

extern DLLEXPORTIMPORTAPI Notify_struct *ptr_name ;

This made the DLL to export this variable easily.
Few points to make. I cannot write in the header file:

EXPORTIMPORTAPI static Notification_db *notification_db;

as it reports ‘error C2201: must have external linkage’.

Thursday, April 28, 2011

Export/Import template class

I am thankful to this really nice article which helped me to resolve issues to export/import template class instance.
I surfed a lot and couldn't found a way to export/import the whole template class. Instead we need to do explicit template instantiations to achieve this.

For e.g. instead of whole class you do it like this:
template class DLLEXPORTIMPORTAPI Container < int >;

//DLLEXPORTIMPORTAPI is __declspec(dllexport) or __declspec(dllimport)

Wednesday, April 20, 2011

New Findings While DLLization

I faced a problem where the address of a structure (as a void pointer) is passed from one DLL 'A' to 'B'. Idea is that you store these void pointers to DLL 'B' and call them latter on the basis of some assigned keys. This structure contains data variables and some others functions/structure address too.
So, while fetching the address back from DLL 'B' rest of address pointed by the structure gets corrupted.
So, the questions arises are:
1) Shall we do a deep copy and pass structure instead of pointers.
2) Is passing pointers across DLL's is acceptable?

While looking for the solution I came across this interesting article from IBM. http://publib.boulder.ibm.com/infocenter/zvm/v5r3/index.jsp?topic=/com.ibm.zvm.v53.dmsa3/hdcode.htm.
Below are few highlights of this article:
1) A source file that contains a function call through a pointer that may point to either a function or function descriptor must be compiled as non-DLL code.
2) A source file that calls imported functions or imported variables by name must be compiled as DLL code.
3) A source file that contains a comparison of function pointers that may be DLL function pointers must be compiled as DLL code.
4) A source file that may pass a function pointer to DLL code through a parameter or a return value must be compiled as DLL code.

Aisha_Record_Final.wmv