4 months after ACL reconstruction

Very happy with my recovery. I’m riding again. Hoping to do my first century ride in next couple of weeks. Decided to put my running goals on hold (Sad & frustrating).  But I’m happy and grateful that I’m able to do more than what I thought four months back.

My dailymile log :

Kilometers in weeks
Kilometers in weeks

Pedal in Paradise by TandemTrails

Went for ‘Pedal in Paradise’ organized by Tandem Trails (Jan 9, 10)

Day 1 : I was there for one reason. To test my legs.  I was bit unsure in the beginning and was hopeful that if something happens I would be able to hop into the support car (Why?). I was hoping that I would be able to ride at least the first half.  Rashmin passed me and he said “come on …. !” and I was mumbling “I’m on.. 1.. 1/4 .. legs and ..blah “.  I have no clue what happened next. Felt like my engines finally started and I increased my pace. Joined the pack lead Samsheer. Then a downhill and I couldn’t resist it. Slipped into a higher gear and started to speed away. Few moments later a character showed up in my peripheral vision. Tommy joined me and we sped away. We rode hard. Tommy is a awesome climber. I compensated the lack of strong right leg (reason) with higher cadence during climbs. And I usually caught up with him on the downhills. I was crazy for downhills. At one descent I actually felt my bike flying over potholes. Rashmin later said that we were going 50km+ (probably more) on some downhills.

Day 1 - Briefing
Day 1 - Briefing

Day 2: A leisure ride. Enjoyed talking with the group. I guess Tommy had trouble riding slow 😉 . At times I acted as a the wise-one and gave ‘tips’ to Venky. He was politely listening :).   The climax was simply brilliant. It got over with a very very steep climb. My heart was thumping very very hard (unhealthy rate). It was simply brilliant.

Day 2 - From Right : Me, Tommy, Sameer, Venky, Shamsher?, Srinivas?
Day 2 - From Right: Me, Tommy, Sameer, Venky, Shamsheer, Srinivas

Thanks to TandemTrails team for a wonderful weekend. Would be joining you guys sometime later…

Push Email for GNOME Evolution’s Exchange MAPI provider (exchange 2007)

 

After few days of crazy bug hunting (and creating the same) , we have a nice push event notification framework for Evolution-MAPI. When Evolution is running all the changes happening in user’s mailbox in server would immediately be synced. This avoids those long fetches from server.  A short screen cast (watch in HD) :
Currently I’ve got “new mail” event handled and is limited to mailer. Would be working on other events. This feature has some major issues to be solved before it can land in master.
It is FUN !

 

ACL Reconstruction recovery journal

Tore my ACL while playing badminton. An awesome jump, delivered a smash at a impressive angle. On landing I slipped twisting my ankle and entire weight of my body fell on the right knee. After 15 minutes I was walking out of the club with the idea of a 10k ride (cycle) back home. Probably I was high on adrenaline/endorphins. But as soon as walked 20 meters, I couldn’t take another step.

Friends helped me out. Few days later a MRI confirmed the ACL tear. Sought opinions from 3 surgeons. A day later I was scheduled for ACL Reconstruction.

Day 0 : Wheeled into surgery. Got shots of anaesthesia in my spine. 5 minutes into the procedure I started feeling my knee again. Then some new shots to my neck and i’m out for next 4 hours. Woke up in recovery room. Crying with pain in my thigh and knee.

Day 1 : High fever. Unable to move my leg. Felt like a dead log.

Day 2 : Realised that morphine (a better refined form .. Fentanyl ?) is being pumped in to me 24 hours.

Day 3: Fever continues. Unable to therapy. But was on CPM.

Day 5 : First time moved around 10 meters (felt like 5 km) to physio rehab. Was able to walk holding support ramps. Did some weight excercises. Morale boost.

Day 6 : Fever started fading.

Day 7 : Discharged from hospital. Realized I lost so much muscle mass. Right leg is very lean.

Day 8 : Woke up at brother’s place. Good food. Ate like a hungry pig.

Day 11 : Regained some strength in the thighs. Able to move around confidently with support.

Day 16 : Moved back to my own place.

Day 17 : Afraid to bend my knee. Looks like I’m resisting to bend the knee.

Day 18 : Able to sit with around 90 degree bend in my knee. Noticed some muscle development.

Day 19 : 90 Degrees knee bending 😀

Day 21 : Mental battle is tougher than actually bending the knee.

Day 22 : Walking without support (crutches). Yay!

Able to handle stairs without support.

Day 25 : 95 – 100 Degrees. Moving to Squat exercises.

Started riding on a stationary bike. Able to walk  small distance with little limp.

Day 31 : 115 Degrees. Knee feels stronger.

Day NN : Recovery still continuing. Yet to build muscles. And regain those remaining degrees. But I’m confident now that i would be back to 110% in few months (yeah .. months!).

I should confess that I’m not a very fit athlete. I’m just a ordinary clumsy guy who started playing a bit. So this is my recovery timeline. Rehab is the tough part. Painful and needs a good amount of will power to keep doing it. It is going to take a long time to get back to my running (hopefully a marathon!). Can’t wait to get back on my bike (cycle).

One thing I kept remembering was this “Pain is temporary. Quitting lasts forever” (Lance Armstrong). In this case it is literally true.

Notes :

  • Do research. Learn about the injury and the procedure before you go in. Helps a lot. Realize that you have options on the graft being used.
  • Ice is the best pain management you got. I personally don’t like pain killers.
  • Most of the online materials on this subject give times lines for fit athletes. So don’t get discouraged if you are not. Keep at it.
  • Mail from nice people at Bangalore Bikers Club

Misc :

  • Fun when you are on a stretcher and pushed around. Profound 🙂
  • Scary part was not the surgery, but the catheter in my arm. Got over it after a day.
  • Enjoyed the royal treatment. People always around you. don’t have to do anything. Everything is there as soon as you think about it!
  • I was without a laptop for about 15 days.
  • Long phone calls from stoned friends. 😉
(Would try to add more information and keep this post updated ..)

GDB Scripting : A short article for a internal magazine

I wrote a small article for a internal magazine and few of my friends wanted me to post it to this blog.

This is for people who are new to GDB and still exploring itz features. So if you’ve used GDB for more than few weeks please ignore and skip 🙂

GDB – Scripting

A good majority of novice programmers tend to use printf functions to trace function calls and to printout the debug data. This forces you to change the code and compile again and again. To eliminate these superfluous tasks from your day-to-day work, use GDB. The GDB has facilities for scripting and helps in saving plenty of your time.

Tracing Function Calls

If you want to know whether a function is called or not, create a break point and write a simple script.

<code>

#Set the breakpoint

(gdb) b mapi_sync

Breakpoint 1 at 0x7fffd75f36e2: file camel-mapi-folder.c, line 741

#Tell GDB what to do when the breakpoint is reached

(gdb) commands

Type commands for when breakpoint 1 is hit, one per line.

End with a line saying just “end”.

> continue

> end

(gdb)

</code>

continue – Come out of break and continue

end – terminate command list

Run the program now. The GDB prints the function name when the breakpoint is hit and automatically continues running the program.

Breakpoint 1, mapi_sync (folder=0xc9c1a0, expunge=0, ex=0xf3a0c0) at camel-mapi-folder.c:741

741             CamelMapiStore *mapi_store = CAMEL_MAPI_STORE (folder->parent_store);

Using the GDB Scripts for Analyzing the Data

Suppose that you have a singly-linked list that has strings in it. At some point, you might want to know the contents of the list. To do this, use the GDB scripting instead of adding the debug statements in your code.

<code>

#Example for gslist traversal.

define p_gslist_str

set $list = ($arg0)

while ((GSList *)$list->next != 0)

p (char *)(GSList *)$list->data

set $list = (GSList *)$list->next

end

end

document p_gslist_str

p_gslist_str <list>: Dumps the strings in a GSList

end

</code>

Add the above snippet into a file and load it into the GDB as follows:

<code>

(gdb) source /home/jjohnny/scripts/gdb/gslist.gdb

</code>

Now, anywhere you want to take a look in the GSList, simply break and

<code>

(gdb) p_gslist_str server_uid_list

$17 = 0x7fffd81101b0 “7666BC1E000000015870BD1E00000001”

$18 = 0x7fffd810e330 “7666BC1E000000015970BD1E00000001”

$19 = 0x7fffd810cbe0 “7666BC1E000000015C70BD1E00000001”

</code>

Simple scripts thus can save you a lot of time from adding or removing the debugging statements from your code. Now go ahead and create a suite of scripts to aid the library you are writing.

More cool developer tricks later. Have fun !

— End —

Thanks to Radhika for editing the article.

Btw when is Archer branch  (Python scripting) getting into GDB ? I’ve been using it a bit .

GDB

– Scripting

A good majority of novice programmers tend to use printf functions to trace function calls and to printout the debug data. This forces you to change the code and compile again and again. To eliminate these superfluous tasks from your day-to-day work, use GDB, the GNU Project Debugger. The GDB has facilities for scripting and helps in saving plenty of your time.
Tracing Function Calls
If you want to know whether a function is called or not, create a break point and write a simple script.
<code>
#Set the breakpoint
(gdb) b mapi_sync
Breakpoint 1 at 0x7fffd75f36e2: file camel-mapi-folder.c, line 741
#Tell GDB what to do when the breakpoint is reached
(gdb) commands
Type commands for when breakpoint 1 is hit, one per line.
End with a line saying just “end”.
> continue
> end
(gdb)
</code>
continue – Come out of break and continue
end – terminate command list
Run the program now. The GDB prints the function name when the breakpoint is hit and automatically continues running the program.
Breakpoint 1, mapi_sync (folder=0xc9c1a0, expunge=0, ex=0xf3a0c0) at camel-mapi-folder.c:741
741             CamelMapiStore *mapi_store = CAMEL_MAPI_STORE (folder->parent_store);
Using the GDB Scripts for Analyzing the Data
Suppose that you have a singly-linked list that has strings in it. At some point, you might want to know the contents of the list. To do this, use the GDB scripting instead of adding the debug statements in your code to print out the data.
</code>
#Example for gslist traversal.
define p_gslist_str
set $list = ($arg0)
while ((GSList *)$list->next != 0)
p (char *)(GSList *)$list->data
set $list = (GSList *)$list->next
end
end
document p_gslist_str
p_gslist_str <list>: Dumps the strings in a GSList
end
</code>
Add the above snippet into a file and load it into the GDB as follows:
<code>
(gdb) source /home/jjohnny/scripts/gdb/gslist.gdb
</code>
Now, anywhere you want to take a look in the GSList, simply break
<code>
(gdb) p_gslist_str server_uid_list
$17 = 0x7fffd81101b0 “7666BC1E000000015870BD1E00000001”
$18 = 0x7fffd810e330 “7666BC1E000000015970BD1E00000001”
$19 = 0x7fffd810cbe0 “7666BC1E000000015C70BD1E00000001”
</code>
Simple scripts thus can save you a lot of time from adding or removing the debugging statements from your code.
Now go ahead and create a suite of scripts to aid the library you are writing.
More cool developer tricks later. Have fun !

openSUSE 11.1 on PS3

Woohoo ! After a long delays and issues (in the last few days) I’ve managed to install openSUSE 11.1 in my PS3.  Running a full blown desktop is very sluggish. Reminds me of my first computer (amdk6 500mhz). Some screenies :

6 SPEs

Now onto get the Cell SDK running … Synergetic Processing Elements (SPE) here i come !

3 Years in Novell, Bangalore.

This seems to be considered as a milestone here (Actually i’ve been involved with Novell for about 3.5 years).

It has been a interesting journey for me. Met a lot of *different* (sometimes weird / highly skilled / not so skilled) people. Realised how different I am, the good and the bad. I learned how to do and how not to do certain things. Amazed at people’s survival skills in the corporate jungle.

But above all, Itz been a pleasent journey and i’ve enjoyed it very much. Met some of the best engineers in the world and had oppurtunity to work with a few.

Digging into my blog archives I realise how much I’ve changed. A silent low profile student -> an intern ->  engineer ? (that is a honourable title. But have I earned it ?)

And how ‘work’ changes you.

Looks like the next milestone is 5 years. Have lot of ideas! Lot of things that I want to learn! So many books to read! DIFFERENT things to try out! And i’m excited about it!!!

I feel like i’m just out of school and the best is yet to come!

A fun ride to ‘Jain Farms’

Around 12 bikers started by 6:00 (i guess) at Sarjapur ORR junction. Series of climbs. Fun. I was impressed by my pace it was bit more than my morning rides. So riding in groups make a lot of difference. Reached Jain Farms after 80 minutes.I didnt’t know that we would be crossing into TamilNadu !

Guyz went for a 10k run. Breakfast, Table tennis (I’m awesome at it. Right! ;-)) and swimming.(big no no for me)

Head winds added a extra 30 minutes on the return ride. At some part of Sarjapur road I lost sight of the lead pack. I knew that one rider was behind me. I was so tired I thought I was on a highway to Delhi till I saw some familiar apartments on the horizon .

People were talking about TFN. Me ? I dont know  yet !

Thanks a lot Ravi, Anil and everybody (:) )

Had fun !

Update : Report by Anil

Update : Pictures from Prashant

24.

24 awesome years in planet earth! 24 years !

When are we going to mars ? 🙂

Lessons on a friday evening

Last Friday evening I had to go through 20 minutes of verbal blah blah and haha haha . Yes I was the object of ridicule. I was angry but wore a mask of fake smile. I wanted to punch few faces and also considered using a GoW Lancer . But thank God I did not do that because I was either polite / a coward. Walked away. I hoped that my rage would go off after 10k of biking. It did not. I tried ranting to a few. It did not. Then in a moment a realization : “nobody is perfect that includes me”. Started looking at this in a different point of view. I had lessons to learn from this :

  • If you don’t understand something, take your time and learn about it. Don’t utter STUPID words and advertise that you are a FOOL.
  • Don’t make money as the object of living.
  • If somebody does something and it looks stupid according to your life’s code, share your opinions. And try not to be a IDIOT claiming that what you are doing is the ideal way to go.
  • Every right word that is not said and ever wrong one that is shouted is going to hurt somebody. As you sow so shall you reap.
  • Just because I’m friendly doesn’t mean that I’m your friend. Trust once broken, hard to mend.
  • Understand your relationship and choose your words accordingly.  If you are just a work mate, then you CANNOT speak like my brother / father / friend. KNOW YOUR LIMITS.

Thanks to you : when you buy that dream house or go about buying nonsense expensive gadget or a new motorcycle, I will smile and _try_ to share the joy brought by those stupid things (stupid according to my life’s code) even though I don’t understand it.

Today’s prayer would be : God,  help me to remember and use these lessons. And help me to be a better person.

Note : There were 4 -5 of you standing around and *having fun* . This is not for all. I appreciate a few who actually tried to bail me out of that ‘bully session’. Not expecting this but please don’t come and apologize. It is better the way it is (as of now )

“Do you see someone who thinks himself wise? There is more hope for a fool than for him!”

update : Comments closed.

Dirty bike.Yay ! (STR Apr 11 2009)

This weekend wanted to go for a ride. STR (Staurday Trail Ride) was interesting. Saw some pictures from their previous rides and was wondering whether I would be able to actually match up with their pace. Anyhoo we (me & Kalyan) started @ 0545 and reached the rendezvous point @ 0600. Met the other riders and off we went. Well, i saw the black tar road only for few minutes. The lead pack jumped off the road and it was dirt road (most of the time).

We were tailing and was slowing down the group. Awesome group of riders. Very patient with us 🙂

I simply loved the ride. Some of the stretches had surprises. Then tried some jumps (ahemm 😉 )

And my bike is dirty ! Finally .. felt like i did some justice to trek over this ride .. Hoping to do more.

Paro’s report : http://ride-bike.blogspot.com/2009/04/off-sarjapur-road-11apr09.html

Abhi : Some pics / Vids /Trail route : http://bikeszone.com/forum/viewtopic.php?f=10&t=2677#p23152

Some lessons :

– Carry more water and some chocolates.

– Train more.

– Be with the lead pack ..  🙂

– And try to take some pictures 🙂