-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
741 lines (519 loc) · 57.4 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[Reflections of a scattered Mind!!]]></title>
<link href="http://saiprasad.me/atom.xml" rel="self"/>
<link href="http://saiprasad.me/"/>
<updated>2014-01-24T11:19:07+05:30</updated>
<id>http://saiprasad.me/</id>
<author>
<name><![CDATA[Sai Prasad]]></name>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[On Hold]]></title>
<link href="http://saiprasad.me/blog/2012/11/on-hold/"/>
<updated>2012-11-24T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2012/11/on-hold</id>
<content type="html"><![CDATA[<p>After much thought, I’ve decided to put this blog on hold for a while… Let me list the excuses I’ve behind this decision:</p>
<ol>
<li><span style="line-height: 18px;">I’m busy, and unable to allocate time to this.</span></li>
<li><span style="line-height: 18px;">I’ve moved away from PHP, and this blog runs on PHP.</span></li>
<li><span style="line-height: 18px;">Writing is not the skill I have.</span></li>
</ol>
<div></div>
<div><span style="line-height: 18px;">But what’s the actual reason?</span></div>
<div>
<ol>
<li><span style="line-height: normal;">Commitment - seems like I lack it w.r.t this blog. You can see this from the inconsistent gaps between the posts.</span></li>
<li><span style="line-height: normal;">A lot of things are pending in my queue for a long time. Its time to trim down some areas, so that I focus on the better things.</span></li>
</ol>
</div>
<div></div>
<div>I hope this is temporary, and would come back to this sonner. Until then, adieu.</div>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[What do I regret the most?]]></title>
<link href="http://saiprasad.me/blog/2012/10/what-do-i-regret-the-most/"/>
<updated>2012-10-07T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2012/10/what-do-i-regret-the-most</id>
<content type="html"><![CDATA[<p>Its life.. Things happen.. Some things you never wanted to happen, somethings you never thought could happen, some bad things, and some surprisingly life-changing things… Out of everything, there is one thing I truly regret, wish it never happened – <strong>Growing up</strong>.</p>
<p>So, what did growing up do to me, you may wonder..</p>
<ul>
<li>It made me a killer. Forced me kill <del>some</del> many of my own dreams.</li>
<li>Showed me its not easy to make a choice, and later made me realize that some choices could turn out to be really bad ones..</li>
<li>Showed me you could end up in a big mess even with no wrong decision taken.</li>
<li>Its not impossible to repeat that one big mistake you’d never ever want to.</li>
<li>Surprisingly and shockingly, you can’t choose people. They come in to your life, maybe turn around our world without your knowledge, but you can’t choose / control if they are going to stay.</li>
<li>It made me experience that there are things you can’t move on from, you just need to live with it forever.</li>
</ul>
<p>Maybe nothing else could express this better than this song.</p>
<iframe src="http://www.youtube.com/embed/3uFww9a3D4E" frameborder="0" width="420" height="315"></iframe>
<p>Now, I miss that little stupid and ignorant boy, who believed that everything could be simple if you don’t complicate, and trying to find answer to his only big question – why does people complicate everything unnecessarily?</p>
<p>Ignorance is truly bliss.</p>
<p>Maybe its time to accept that life isn’t going to be easy just like that, it takes effort, and more importantly belief that “that some day” is right around the corner, maybe.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Recap of my life: The last two weeks ]]></title>
<link href="http://saiprasad.me/blog/2012/09/recap-of-my-life-the-last-two-weeks/"/>
<updated>2012-09-18T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2012/09/recap-of-my-life-the-last-two-weeks</id>
<content type="html"><![CDATA[<p>So, this time I guess there has not been much technical readings… The only readings I have done are <a href="http://pluggd.in">pluggd.in</a> and <a href="http://techcrunch.com">techcrunch</a>… Unread posts in my Google Reader, <a href="http://www.quora.com/Sai-Prasad-Ch">Quora</a> & even on <a href="https://twitter.com/saiprasadch">Twitter</a> has increased a lot… The major factor has been to live without a laptop (since the display doesn’t work anymore).</p>
<p>So, there are a few things that changed in my life: I’m trying early to bed, early to rise for the last two days, and it has turned decent so far…. (I still believe that nocturnal life is best, though).. I think its time to keep Windows away for a while and move into Mac / Linux (I’m typing this post on a MacBook). All my life, I used Windows and always thought on moving into Ubuntu, but couldn’t because of all kinds of games… Oh, though I used Mac earlier, MacBook Pro is pretty good and I’m loving its multi-touch gestures… :)</p>
<p>Apart from doing nothing, played a decent amount of Dota 2 on roommates laptop. One thing that came out of gaming is I kind of started thinking about having a interactive 360° virtual trial room (inspired from hero’s animation from Dota 2 game load screen). But, this for for sometime later, maybe a month or two or even later…</p>
<p>For this week and next, I’m majorly going to spend time learning <a href="http://developer.yahoo.com/cocktails/mojito/">mojito</a>, some basic selenium and maybe a good Unit Testing framework (need to figure that one out).</p>
<p>I couldn’t resist not putting the below comic here (credit: <a href="http://gultrage.tumblr.com/">gultRage</a>)</p>
<p><a href="http://gultrage.tumblr.com/post/30788578420/wifi"><img class="alignnone" title="Not so distant future" src="http://24.media.tumblr.com/tumblr_m9rmcoKrAy1qjuqo1o1_1280.png" alt="" width="651" height="241" /></a></p>
<p>This site contains very good quality comics, particularly for telugu folks..</p>
<p><strong>PS:</strong> Dear KeePass, since you do not support Mac, I’m having hell lot of trouble accessing my passwords. Need to downgrade the database, and move to KeePassX for now… But, for longterm, I’m considering hosting a private web-based KeePass client (which I’m planning to search / develop)</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[This week in my life]]></title>
<link href="http://saiprasad.me/blog/2012/09/this-week-in-my-life/"/>
<updated>2012-09-02T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2012/09/this-week-in-my-life</id>
<content type="html"><![CDATA[<p>This is really getting ridiculous.. My last post on this blog was 4 months ago, and the one before that 9 months ago.. This is not how I meant to do things.. This is also not the way things are supposed to go… Its true that more than sometimes, it is very hard, time-taking and exhaustive to put your thoughts on paper (err, keyboard).. But, if I keep doing it at this pace, this blog shall do more harm to me than any good. Its time this thing changes… So, from this week, I shall put something like a weekly report which shall contain sharing things I found interesting, what I’m thinking hard etc… Hopefully, this shall become a habit, a good habit actually…</p>
<p><strong>Geekiness infiniti (You can never run out of geekiness :P)</strong></p>
<ul>
<li>As much as I hate Internet Explorer, this article <a href="http://www.nczonline.net/blog/2012/08/22/the-innovations-of-internet-explorer/">The Innovations of Internet Explorer</a> reminded (and taught) me how it was a really innovative game changer at that time, without which the browsers wouldn’t have been today where they are are.. Seriously, Internet Explorer seems like it threw away a whole new world of opportunity.</li>
<li>Stumbled upon usage of !function(){}(). Looks cleaner than (function(){})().. From now onwards, I’m using this ! preceding style for all my anonymous functions in Javascript. I can save a byte too… More details at:<a href="http://stackoverflow.com/questions/3755606/what-does-the-exclamation-mark-do-before-the-function"> What does the exclamation mark do before the function?</a></li>
<li>This answer on Quora changed all my perspective on Ph.D. and research-oriented educations. I was always in favor of breadth than depth, but this post convinces me that depth is the way to reach limits and beyond.<span class="quora-content-embed" data-name="Philosophy/How-do-I-remind-myself-that-I-know-nothing/answer/Prasanna-Madhavan/quote/15186">Read <a class="quora-content-link" href="http://www.quora.com/Philosophy/How-do-I-remind-myself-that-I-know-nothing/answer/Prasanna-Madhavan/quote/15186" data-width="575" data-height="4888" data-embed="vQYqyYA" data-type="quote" data-id="15186" data-key="8406a3e7ea9306047c76e9ce0e2e8aca">Quote of Prasanna Madhavan’s answer to Philosophy: How do I remind myself that I know nothing?</a> on <a href="http://www.quora.com">Quora</a><script type="text/javascript" src="http://www.quora.com/widgets/content"></script></span></li>
</ul>
<p><strong>Non-technical musings</strong></p>
<ul>
<li><a href="http://bhorowitz.com/2012/08/18/a-good-place-to-work/">A Good Place to Work</a> - The author (a CEO) explains why having regular 1:1s is a must to make your workplace better. He even went further to forcing his managers to have regular 1:1s (or else get fired). This seems ridiculous to me - Companies claim of open-door policy, and the same companies ask for formal 1:1 discussion. If you have open-door policy, and you discuss everything with your manager in general in day-to-day life, what else can you talk about in the 1:1, except for staring at each other? The right thing seems to be to ensure the right communications (in any way) between employees and managers, but remember that 1:1s doesn’t work for everyone (that includes me).</li>
<li><a href="http://gtoosphere.blogspot.in/2012/08/so-i-was-wishing-flawsophy-for-his.html">So I was wishing @flawsophy for his birthday…</a> - Funny, but with insights into the current state of wishing on birthdays in India. Its true, there is no more bigger insult than <em>not</em> wishing him/her on his/her birthday. And if you two are in relationship, expect a break-up message if you are not the first and last to wish them “Happy birthday”.. Oh, there is also a <strong>non-bailable Birthday Offence</strong>. Seriously, whats wrong with people? As if you are getting a new beginning every year on your birthday?</li>
</ul>
<p><strong>Garbage inside my mind</strong></p>
<p>How do you take a good decision in life? You can never be sure. You can either choose a decision and pray that it will turn out to be good decision (which has 0.5 probability). Else, put all your effort to make sure this decision turns out to be a good one.</p>
<p>Limited time – All I’ve got is limited time. The piled up pending tasks shows how important it is for me to manage my limited time properly. Its time to take Time Management seriously, any tips here would be appreciated..</p>
<p>Ahh… end of the post.. See you next week my dear blog…</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Impressed with myself]]></title>
<link href="http://saiprasad.me/blog/2012/05/impressed-with-myself/"/>
<updated>2012-05-02T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2012/05/impressed-with-myself</id>
<content type="html"><![CDATA[<p><strong>Disclaimer:</strong> Just another personal rant written with sleepy eyes & confused mind (as always). Helps in killing a minute or two of your time (better to kill the time by yourself, rather than allowing it to die by itself, isn’t it?)</p>
<p>If you knew me personally, you’d certainly remember me complaining that I completely wasted my 4-years of time during my under-graduation. No I’m not denying that now.. Its still holds true… However, like Milton said “Every cloud has a silver lining”, I realized just a couple of days ago that my college days weren’t as worse as I always believed (in terms of learning & profession).</p>
<p>Hmm.. lets see.. What could it be that changed my mind? Some things (which I can share in public), that, well not exactly proud of, but feel-good things I did or happened during those interesting (like that Chinese curse – May you live in the interesting times) years.</p>
<ul>
<li>My first semi-serious PHP site, self-learning, and doing all things by myself (design, backend, security, database etc.) came out pretty well than I expected. Site is archived <a href="http://2008.tapsnitw.org/">here</a>. (Well, thanks to CodeIgniter for making a lot of stuff easier :) )</li>
<li>Again PHP, a complete rewrite of the above site using Kohana & a fresh new design.. Actually, I copied basic idea of UI from IITB’s Techfest site (maybe, 2008), changed the color theme, changed & improved few elements, but I still consider it my best UI design yet (apart, from the top banner & menu). And the best part - the <a href="http://www.tapsnitw.org/">site</a> is still in use actively (since 2008).</li>
<li>Breaking into Technozion site (NIT, Warangal’s Technical fest) and worse, I kind of defaced it. Did things like changing the password’s of all accounts once in every few hours, modifying database records of some particular users etc. (Thanks to some simple SQL injections). It was really fun, but I realized lately it wasn’t very moral thing to do. (actually, I passed the vulnerability info their web team, but they fixed it only partially, which kind of drove me crazy to do all that stuff).</li>
<li>Thanks to <a href="https://twitter.com/sumit_bindal">@sumit_bindal</a> for reminding me how much I used to enjoy the puzzles on <a href="https://www.hackthissite.org">hackthissite.org</a>. I used to spend my free-time on this site very much & certainly gave me a new angle of thought while writing code. Maybe, I should start again on those puzzles & see where I stand today…</li>
<li>It certainly feels good when you are only the one who solved the problem (with correct answer) in your lab exam. Doesn’t it? Thankfully, it was open-book exam, or else who would remember what is meant by articulation points, connected components etc. when you always know Google will help you anytime you need it..</li>
<li>B-Tree implementation, which took me some 7 hours, and yet I was really really excited that I could do that… solving the 8-queen problem in my 1st year of C++, without using 8 loops (sadly, I can’t think of any solution even today). Credit certainly goes to K.Ramesh for showing that programming is fun, and nothing else.. :). After all, I ended up being “not the worst programmer ever”..</li>
<li>Getting a job in the first campus placement company itself. I was shocked, so was the complete college (considering how bad my academics were, and the other students who got selected were the class-toppers of the course). Actually, this became a memory I relish, not because of getting a job, but how awesome it was to fool <a href="https://twitter.com/harikine">@harikine</a> for 2 complete days making him believe I didn’t get that job, but everyone else knew the truth… (Trust me, it wasn’t easy, but a lot of people helped in hiding it from him..) Certainly a contender for my best moment of my college life…</li>
</ul>
<p>Ouch… just 7 points… The silver lining seems to be very slim, but nevertheless, it exists.. And I can even say I’m impressed with myself, for the joy of something coming out from what you believe as a black hole…</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Learning Android : Why I moved away from Eclipse]]></title>
<link href="http://saiprasad.me/blog/2011/11/learning-android-why-i-moved-away-from-eclipse/"/>
<updated>2011-11-15T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2011/11/learning-android-why-i-moved-away-from-eclipse</id>
<content type="html"><![CDATA[<p>So, after a very long break, I started back with getting familiar with Android development… Felt happy seeing that Google has made a lot of improvements / features in the ADT. But, everything evaporated when I tried to debug an app on my machine, and got this error: “Android Packaging Problem: resources.ap_ does not exist”. I tried cleaning the project, restarted Eclipse, and re-creating the Eclipse project and this error didn’t go away… Googling it also didn’t help much… Then, I went to sleep….</p>
<p>The next day, to my surprise, there was no error and I was able to debug my app, at last… But, it didn’t last long… After 3 hours, the same error is back…. It looked like this ADT solves everything else (Resource Editors, WYSIWYG Editor etc.) but the basic task it is supposed to do (Basic compiling / packaging / debugging)…</p>
<p>Now that perfect mood is set to go hunting for a new and <em>reliable</em> IDE, I searched in <a href="http://www.stackoverflow.com" target="_blank">stackoverflow.com</a> for answers… Found some thread saying <a href="http://www.jetbrains.com/idea/features/google_android.html" target="_blank">IntelliJ IDEA</a> is good…. So, downloaded it, downloaded its dependencies (JSDK 1.6) and installed them… And there is no turning back… I don’t miss the resource.ap_ error at all…</p>
<p><strong>The Pros of IDEA:</strong></p>
<ol>
<li><strong></strong>Reliable (unlike ADT for Eclipse) at compiling and packaging…</li>
<li>Supports the Android “Library” projects also… (Tried it with <a href="https://github.com/cyrilmottier/GreenDroid" target="_blank">GreenDroid</a>, and worked without a glitch)</li>
<li>Import Eclipse projects directly…</li>
<li>Integrated github support (and a few more Version Controls)</li>
<li>Decent enough features, for Refactoring, Imports optimization, Code completion etc.</li>
</ol>
<p><strong>The Cons:</strong></p>
<p>This could become a big list, but the reliability when compared to Eclipse beats everything in the below list combined..at least for me…</p>
<ol>
<li>Page Scrolling - Cannot use the Mouse Scroll.. Need to click on scrollbar and scroll it down.. :(</li>
<li>Logcat sucks!! The one in Eclipse is hell lot better.. Seriously needs Filter by Application, Colored text based on log level, and saved searches.. A simple textarea doesn’t justify such an important feature..</li>
<li>The keyboard shortcuts are completely different from Eclipse.. Why doesn’t IDEs come with keyboard binding set of other IDEs that user can choose to use? :(</li>
<li>Memory hogger, seems to be more than Eclipse.. Could it be because of Swing & Java?</li>
<li>Basic XML Editor - There are no Android Resource Editors…. I prefer to write XML files by hand, though…</li>
<li>Some code warnings may misguide you.. It keeps telling me that <a href="http://developer.android.com/reference/android/database/Cursor.html" target="_blank">Cursor</a> cannot be NULL, though I have personally seen cases where it will be…</li>
</ol>
<p>In simpler words, IDEA may not be as good as Eclipse in general, but for Android development, it is certainly a better choice… at least for now..</p>
<p>Atleast, you’ll know you are frustrated not because of IDE… (Trust me, frustration because of an IDE, instead of logic/code isn’t even worth trying to know.. )</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Square One]]></title>
<link href="http://saiprasad.me/blog/2011/10/square-one/"/>
<updated>2011-10-16T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2011/10/square-one</id>
<content type="html"><![CDATA[<p>You begin at the Square One, you go forward with hopes and dreams, and most importantly with no idea what the future holds for you. You go non-stop until that day comes when completely unexpected happens, and you’ll be just thrown out back on to Square One.</p>
<p>You get dejected, depressed and lose all your hopes that everything got ruined. You live in darkness of the past, until one day you say to yourself “Enough! You got to get moving”… And, you start moving into that unknown future, with fear still in your mind…. You try to take one step at a time, but you haven’t gotten over your prior experiences. Yet, when you start getting over past and start moving forward with confidence, it happens again! You’ll land in the Square One again, now with no knowledge on how, when and why….</p>
<p>This time, you begin your journey again into those unknown lands, but instead of fear, this time you have that strange confidence – “Not to fear… I can get over even if the worse happens again!”</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Geeks are awesome!]]></title>
<link href="http://saiprasad.me/blog/2011/09/geeks-are-awesome/"/>
<updated>2011-09-09T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2011/09/geeks-are-awesome</id>
<content type="html"><![CDATA[<p>You got to love the geeks! For their unique talent & ability to transform any topic (including philosophy) into a discussion topic of bytes, pointers, stacks, exceptions etc…. They can convert every topic in this world to their area of expertise.. :D</p>
<p><img title="A small GeekTalk" src="http://saiprasad.me/images/geeky-thread.png" alt="" width="680" height="527" /><br>
<em>A small geeky conversation from my wall on Facebook</em>
</p>
<p>Dedicated to the geeks <a title="Shrey Banga on Facebook" href="https://www.facebook.com/banga.shrey" target="_blank">Shrey Banga</a> & <a title="Sharad Banka on Facebook" href="https://www.facebook.com/sharad.banka" target="_blank">Sharad Banka</a> :D :D</p>
<p><strong>Update (11 September, 2011):</strong> Updated the image to include a missing comment (missed earlier since the account was then in deactivated state..)</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Browser Wars: Learning from each other]]></title>
<link href="http://saiprasad.me/blog/2011/06/browser-wars-learning-from-each-other/"/>
<updated>2011-06-18T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2011/06/browser-wars-learning-from-each-other</id>
<content type="html"><![CDATA[<p>The most popular browsers from the country I come from (where Mac is rare) are Google Chrome, Mozilla Firefox & Microsoft Internet Explorer. Like any other browser, these all have the same goal – to make browsing experience richer & better. Yet, there are a lot of differences in their ways and some are better than other in some ways.</p>
<p>If I ever have to make a generic purpose browser, I’d certainly pick good (for inclusion) & bad (for exclusion) things from the current browsers.</p>
<h5>Google Chrome:</h5>
<p>The recent one and certainly a game changer. It has improved the user expectations from a browser by 100x.</p>
<p><strong>The Good</strong>:</p>
<ul>
<li>The crashless browser - protect the user even from the crashes in external plug-ins (Thankfully, Firefox also implemented out-of-box plugins)</li>
<li>Faster startup time - Do things that are only absolutely needed. Nothing more. Defer everything else, to post-startup (in parallel with the user’s browsing).</li>
<li>Sandboxing - Whatever you do on web stays on web. Protect the machine from all the various security issues.</li>
<li>Explicit permissions listed for Extensions - user must know what an extension is capable of (despite of what it claims to do)</li>
<li>Silent updation: Push updates only when it is good for users. Then, who would say “no” to better browsing experience? So, there is no point in showing an annoying dialog “Updates Available” when you already know the user clicks “yes”.</li>
<li>Incognito Mode starts a new session without closing the current session (sadly, Firefox does that)</li>
</ul>
<p><strong>The Bad: </strong></p>
<ul>
<li>Weakest & the most limited extension model - So limited that it may give you a feeling that the word “extension” doesn’t suit it.</li>
<li>Still an immature platform for developers. Extension Model hasn’t moved but the other parts (rendering, UI etc.) are moving forward at a very fast pace. Even, many bugs in the chrome extensions are not getting fixed for many months.</li>
</ul>
<h5>Mozilla Firefox</h5>
<p><strong>The Good:</strong></p>
<ul>
<li>Super cool extension model. There is almost nothing that can’t be done by the addons. And, XPCOM works across all the platforms.</li>
<li>Known to be the developer-friendly browser from long time. One of the early browsers that emphasized on standards and innovation from its early days.</li>
</ul>
<p><strong>The Bad:</strong></p>
<ul>
<li>Known to be memory hog. Not efficient at Memory management. Have issues with Intel’s hyperthreading.</li>
<li>MaxVersion in addons is mandatory and is limited to current version (you can’t just use * for maxversion). The only issue with this is each and every addon is to be updated (you add features or not) with every major version release (which is once in 12 weeks as of now).</li>
<li>Private browsing closes the current session and starts a new one. After closing private session, it restores the earlier session. This means you can’t do both (with default command line options)</li>
<li>Every extension have complete control (including a binary component), because of lack of a permission model. You can never trust an extension because of this!</li>
</ul>
<h5>Internet Explorer</h5>
<p><strong>The Good:</strong></p>
<ul>
<li>Its never late to catch up with the standards, speed & security (with IE 9 & IE 10)</li>
<li>Native 64-bit for 64-bit OS. (I can’t believe Firefox and Chrome do not have them for Windows)</li>
</ul>
<p><strong>The Bad:</strong></p>
<ul>
<li>Still maintains the completely idiotic ‘Quirks Mode’. I don’t see the greater cause of maintaining a version which is full of bugs, extremely slow and follows no standards, and also all developers hate it.</li>
<li>Extension Model - Its a big pain. You need to be comfortable with COM to get started with. Its much comfortable to think addons don’t exist at all for this version.</li>
<li>Supports ActiveX plugins when the whole world uses NPAPI plugins.</li>
</ul>
<p><em>Disclaimer: All the above are my own thoughts, and I’ve to confess I haven’t researched every point. So, not all the above may be true, but is to the best of my knowledge.</em></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[5 Reasons I dislike Flash]]></title>
<link href="http://saiprasad.me/blog/2011/06/5-reasons-i-dislike-flash/"/>
<updated>2011-06-11T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2011/06/5-reasons-i-dislike-flash</id>
<content type="html"><![CDATA[<p>The times have changed to where we spend most of our lives on the web. But, web is far from perfect. It has annoyances lurking around at every corner. Most of the times I get annoyed is because of the bad code (in HTML, CSS, Javascript) by the developers. The next big annoyance is from Flash content, but I can’t blame the content developers for their code. Its the design issue of the Flash runtime itself…</p>
<p>The top 5 things in Flash that annoys me daily:</p>
<ol>
<li>Browser shortcuts (like, Ctrl+W, Ctrl+T) do not work when focused on flash elements, since it consumes all the keyboard events. I’d expect it to at least pass them to browser if it doesn’t handle a key event, but it doesn’t even bother.</li>
<li>Zoom doesn’t work - Ctrl++, Ctrl+- are useless. You have to read the content in SWF in the published size itself. You cannot increase or decrease it size. :(</li>
<li>Middle Click doesn’t work - I can’t open a link in new tabs. Opening links in new tabs from SWF is a small-size challenge.</li>
<li>I can’t find the text I’m looking for with Ctrl + F. You can’t just search in Flash content, unless the SWF itself contains a search box & search implementation.</li>
<li>Its pretty famous & is gonna stay there longer. And the worst part - everyone uses it in their site, though there is absolutely no need for it (making my browsing experience annoying) :(</li>
</ol>
<p>Disclaimer: The above view is completely personal and has absolutely nothing to do with anything (including friends & employer also) else.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Firefox Addons: Little Housekeeping Tips]]></title>
<link href="http://saiprasad.me/blog/2011/03/firefox-addons-little-housekeeping-tips/"/>
<updated>2011-03-26T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2011/03/firefox-addons-little-housekeeping-tips</id>
<content type="html"><![CDATA[<p>I’m working on a Firefox addon in the last few weeks and this is my 1st experience with Firefox addons. During my tiny experience, I came across some of those little things that helps you when you’re in trouble & here I’m writing about those simple tips. Of course, I mixed some changes in Gecko 2.0 also along with these….</p>
<p>I know these are very basic, and almost everyone who worked on the addons might be knowing them, but hey, didn’t I mention you that this is my first encounter with building firefox addon?</p>
<h3>How can I be sure if a Binary XPCOM component is loaded / attempted to load from Firefox?</h3>
<p>Close all Firefox windows and run the following from command line:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>set NSPR_LOG_MODULES=all:5
</span><span class='line'>set NSPR_LOG_FILE=c:\ff.log
</span><span class='line'>C:\Program Files\Mozilla Firefox\firefox.exe </span></code></pre></td></tr></table></div></figure>
<p>What does it do? Line 1 sets the modules to load & the log level. In the above commands, we are asking to log all modules with log level 5 (meaning all logs). Line 2 sets the path to log file. Now, just launch the Firefox from command line (so that the variables are set)</p>
<p>Troubleshooting Tip: Do not use quotes around the log file name, like <code>set NSPR_LOG_FILE="C:\ff.log"</code>. I tried it the 1st time and it doesn’t work.</p>
<p>References: <a title="MDC: Troubleshooting XPCOM components registration" href="https://developer.mozilla.org/en/Troubleshooting_XPCOM_components_registration">Troubleshooting XPCOM components registration</a>, <a title="NSPR Reference: Logging" href="http://www.mozilla.org/projects/nspr/reference/html/prlog.html">NSPR Logging</a></p>
<h3>How can I sure if an XPCOM component is successfully registered?</h3>
<p>This works for both binary & JS components.</p>
<p>Enable Chrome errors in Error Console, if you haven’t done already! To enable, set <code>javascript.options.showInConsole</code> to <code>true</code> in <code>about:config</code> preferences.</p>
<p>Open Error Console (Ctrl+Shift+J)</p>
<p>Evaluate <code>Components.classes["components-contract-id"].name</code>. Use with the components’ contract id.</p>
<p>If it gives no error, the component is successfully registered.</p>
<p>References: <a href="http://kb.mozillazine.org/Javascript.options.showInConsole">javascript.options.showInConsole</a>, <a title="MDC: Troubleshooting XPCOM components registration" href="https://developer.mozilla.org/en/Troubleshooting_XPCOM_components_registration">Troubleshooting XPCOM components registration</a></p>
<h3>How to log errors from the XPCOM components?</h3>
<p>This is simple thing, and I realized a bit late about it. This is currently how I’m debugging my components (need to see if there is a better way). You can report error messages to the Error Console with:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>Components.utils.reportError("This is the description of the error");</span></code></pre></td></tr></table></div></figure>
<p>References: <a title="Error Console - MDC Doc Center" href="https://developer.mozilla.org/en/Error_Console">Error Console</a></p>
<h3>nsIConsoleService</h3>
<p>The inconvenience with the reportError API is that it logs all messages as errors. To log at various levels (debug / warning / info), we can use the <code>nsIConsoleService</code>. The <code>logStringMessage()</code> function of this service looks very handy.</p>
<p>I haven’t used it yet, so I cannot give any more information on this!</p>
<p>References: <a title="nsIConsoleService Documentation on MDC" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIConsoleService">nsIConsoleService Reference</a></p>
<h3>UnPack option</h3>
<p>If you are using binary components in the addon, you MUST set the unpack value to true in <code>install.rdf</code> file.</p>
<p>References: <a href="https://developer.mozilla.org/en/Install_Manifests#unpack">unpack in Install Manifests</a></p>
<h3>Bootstrap Addons</h3>
<p>This feature introduced in Gecko 2.0 answers one of my long-time questions – <em>Why should I restart the browser everytime I add / update / disable / remove an addon?</em></p>
<p>Though this feature is good, it looks complicated to do all the manual work. I’ve skipped trying this feature for now, but I’ll look into this some other time.</p>
<p>References: <a href="https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions">Bootstrapped Extensions</a></p>
<h3>Gecko 2.0 XPCOM Changes</h3>
<p>Though there are many changes, I’m listing the few which I came across.</p>
<ul>
<li>Javascript component must export <code>NSGetFactory()</code> instead of <code>NSGetModule()</code> function. Binary component must export <code>NSModule()</code> instead of <code>NSGetModule()</code> function. I’ve explained this in detail in the next section.</li>
<li>Components in components/ folder are no longer auto-registered & auto-loaded.Components registration will be done through the manifest file.</li>
<li>Category Registrations are done through manifest file. Also, category names are modified.</li>
<li>You’ll have to use the XULRunner SDK 2.0 for Gecko 2.0</li>
</ul>
<p>Troubleshooting Tip: Use the sample CPP file (from the references) to get started for binary components. I got a few compilation errors initially, and then I has to add <code>MOZ_NO_MOZALLOC</code> to preprocessor definitions as read somewhere, and it worked..</p>
<p>References: <a title="XPCOM Changes in Gecko 2.0" href="https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0">XPCOM Changes in Gecko 2.0</a>, <a href="http://mxr.mozilla.org/mozilla-central/source/xpcom/sample/nsSampleModule.cpp">nsSampleModule.cpp source code</a></p>
<h3>Component Registration in Firefox 4.0</h3>
<p>All the components to be registered has to mentioned in the <code>chrome.manifest</code> file.</p>
<ul>
<li>All the interfaces (xpt files) are to be registered using <code>interfaces</code> command.</li>
<li>A JS component must use <code>component</code> command. It needs to mention its class id also. The contract id can be assigned to this JS component by a separate <code>contract</code> command.</li>
<li>A binary component can be registered with <code>binary-component</code> command. A binary component registration need not specify any class-id or contract-id in the manifest file, since they are available through the exported <code>NSModule()</code> function.</li>
</ul>
<p>References: <a href="https://developer.mozilla.org/en/Chrome_Registration">Chrome Registration</a></p>
<p>If you have felt all the content is copied from somewhere, its ok because its true. I’ve learned many things from <a title="Mozilla Developer Center" href="https://developer.mozilla.org">MDC</a> itself, I’m just aggregating those things here!!</p>
<p>If I’ve got something wrong in here, please do mention them in the comments as I have to correct them in the post as well as in my mind…</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Quotes I like:: Vol. III]]></title>
<link href="http://saiprasad.me/blog/2011/03/quotes-i-like-vol-iii/"/>
<updated>2011-03-05T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2011/03/quotes-i-like-vol-iii</id>
<content type="html"><![CDATA[<p>Some random quotes / one-liners, I liked.</p>
<ul>
<li>Great minds are always feared by lesser minds</li>
<li>… there’s a gap between what science knows and what business does (Dan Pink)</li>
<li>All those who wander are not lost.</li>
<li>What we have done for ourselves alone dies with us; What we do for others dies with them. What we do for the world is too insignificant to count.</li>
<li>Even if an analog clock is broken, it shows correct time at least twice a day.</li>
<li>A happy man is not the one who has everything, but who makes most of everything he has.</li>
<li>Keep your face to sunshine and you can’t see the shadows.</li>
<li>Make sure the thing you’re living for is worth dying for.</li>
<li>Speaking without egos, Loving without intentions, Caring without expectations, Praying without selfishness is the sign of True Relation</li>
<li>I decided to send you the cutest n sweetest gift of the world. But the postman shouted at me sayin - Get out of the postbox :-)</li>
<li>If you don’t count any of my failures, I’m quite successful.</li>
<li>To live is the rarest thing in the world. Most people exist, that is all.</li>
<li>The biggest fools are those who seek an interpretation for everything</li>
<li>You’ll never have a quiet world till you knock the patriotism out of the human race</li>
</ul>
<p>You can find my previous favorite one-liners posts at: <a title="Quotes I like :: Vol. II" href="http://saiprasad.me/blog/2008/09/20/quotes-i-like-vol-ii/">Quotes I like:: Vol. II</a> & <a title="Quotes I like :: Vol. I" href="http://saiprasad.me/blog/2008/08/19/quotes-i-like-vol-i/">Quotes I like:: Vol. I</a></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Debug PHP: Setup]]></title>
<link href="http://saiprasad.me/blog/2010/12/debug-php-setup/"/>
<updated>2010-12-01T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2010/12/debug-php-setup</id>
<content type="html"><![CDATA[<p>Okay! I forgot how to set up debug for my PHP, so I had trouble today trying to set it up today and had to spend about an hour to do so… So, I decided I should note it down for future reference and hence I’m here now!</p>
<p>Tools: PHPEclipse, PHP 5.3.3, XDebug</p>
<ol>
<li>Make a PHP file with content as <code><?php echo phpinfo(); ?></code> and browse the page on localhost.</li>
<li>Copy the source of the above page from the browser and paste it in <a href="http://xdebug.org/find-binary.php"><a href="http://xdebug.org/find-binary.php">http://xdebug.org/find-binary.php</a></a> and click “Analyze my phpinfo() output”. This step will give you tailored instructions on how to setup, especially points to the right DLL to use.</li>
<li>Be careful with the editing <code>php.ini</code> file. Prefer to add the zend_extension line at the top of the file (It doesn’t work if its the last line).</li>
<li>And start debugging from the Eclipse IDE !!</li>
</ol>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[C++ Quickies #I : Long live the STL]]></title>
<link href="http://saiprasad.me/blog/2010/09/c-quickies-i-long-live-the-stl/"/>
<updated>2010-09-19T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2010/09/c-quickies-i-long-live-the-stl</id>
<content type="html"><![CDATA[<p>Its been quite some time (16+ months) I’ve been out of college and started using STL. Trust me, I didn’t know much about STL in college, though I used std::string & std::vector everywhere I could. Now, it seems like I couldn’t (wouldn’t ?) write a program without using STL at all. A few snippets that I really found useful (and simple) and I regularly use where ever possible.</p>
<p>To output the elements (all / subset) in a container (lets say vector), separated by a delimiter, say new line:</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>#include <algorithm>
</span><span class='line'>std::copy(v.begin(), v.end(), std::ostream_iterator(std::cout, "\n"));</span></code></pre></td></tr></table></div></figure>
<p>Want to sort an array? No problem … :)</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>#include <algorithm>
</span><span class='line'>std::sort(array, array + lengthOfArray);</span></code></pre></td></tr></table></div></figure>
<p>Read from the standard input into a vector until the end-of-stream?</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>#include <algorithm>
</span><span class='line'>#include <iterator>
</span><span class='line'>#include <vector>
</span><span class='line'>
</span><span class='line'>typedef std::istream_iterator<int> istream_iterator_int;
</span><span class='line'>std::vector<int> v;
</span><span class='line'>istream_iterator_int start (std::cin);
</span><span class='line'>istream_iterator_int end;
</span><span class='line'>std::back_insert_iterator<vector<int> > dest (v);
</span><span class='line'>std::copy (start, end, dest);
</span></code></pre></td></tr></table></div></figure>
<p>Count the no. of instances an object is found?</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>#include <algorithm>
</span><span class='line'>size_t count = std::count(v.begin(), v.end(), 42); // Returns no. of elements in v with value 42.
</span></code></pre></td></tr></table></div></figure>
<p>And let me inform you… This is just a grain of what STL can do…. :)</p>
<p>References:</p>
<p><a href="http://www.cs.brown.edu/~jak/proglang/cpp/stltut/tut.html"><a href="http://www.cs.brown.edu/~jak/proglang/cpp/stltut/tut.html">http://www.cs.brown.edu/~jak/proglang/cpp/stltut/tut.html</a></a></p>
<p><a href="http://www.cplusplus.com/reference/algorithm/"><a href="http://www.cplusplus.com/reference/algorithm/">http://www.cplusplus.com/reference/algorithm/</a></a></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Just Friends! It got something !!]]></title>
<link href="http://saiprasad.me/blog/2010/08/just-friends-it-got-something/"/>
<updated>2010-08-06T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2010/08/just-friends-it-got-something</id>
<content type="html"><![CDATA[<p>If you’re wondering what it is, ‘<a href="http://sumritshahi.weebly.com/index.html" target="_blank">Just Friends</a>’ is a novel by an Indian writer. I think it is his debut novel, but don’t take my word on this. You need to google (or bing, for Bing fans) it to be sure. By ‘It got something’, I don’t mean to say, its an awesome book. I wouldn’t even say its a good book, its just another book (add some 18+ masala content to the recipe) . What impressed me in the book are the quotes (quoted by the author himself, I believe) in it. They are not inspirational or something, but I liked them (not that I like only inspirational, in general). So, I decided to put my favorites here and share with you.</p>
<ul>
<li>Sleep is deadly and love is lethal. The combination is so powerful that it leaves you helpless, forcing you to sleep later.</li>
<li>A sleepless night is a lover’s right</li>
<li>Restless nights, drowsy mornings, confused afternoons, lonely evenings…</li>
<li>Eyes are like prostitutes - they reveal more than they can conceal.</li>
<li>I laughed, she laughed. Problem solved.</li>
<li>I smiled, she smiled. All problems could wait.</li>
<li>You pose a great competition to sugar for its characteristics of deadly sweetness and mixing quickly and easily in unknown waters.</li>
<li>I wasn’t superstitious. It was just… love.</li>
</ul>
<p>In case they don’t make sense to you, you need to read the novel then coz they all are situational, though you can identify the situations from the statements itself for many of them.</p>
<p>Until next post, have a peaceful life (great would be great, though)…</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Learning Android: Part I]]></title>
<link href="http://saiprasad.me/blog/2010/07/learning-android-part-one/"/>
<updated>2010-07-22T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2010/07/learning-android-part-one</id>
<content type="html"><![CDATA[<p>I will use this post to talk about my ‘Getting familiar with Android’ learning. As announced in the last post, I’ve started learning Android, but not even at half-pace as I wanted to.</p>
<p>Anyways, let me tell what I’m doing in learning. I’m using ADT on Eclipse Helios and using the Emulator for testing purposes. Currently focusing on the samples present along with Android SDK. Gone through the Application Fundamentals available along with the SDK.</p>
<p>Interesting Things:</p>
<ul>
<li>Most importantly, its good to see myself learning the things I’m interested in from the start (FYI, I always have that thing for Web & Mobile Development)</li>
<li>Very clear & highly helpful documentation (and, also downloadable). And the docs are developer-focused & also lays emphasis on good practices at every step, like i18n, using resources instead of hard-coded strings etc. etc..</li>
<li>Separation of layout of the app and the application logic (supports XML files for layout). I get the feeling this is inspired from Flex (mxml & as), but I don’t know.</li>
<li>Provides a very good mechanisms for interoperability between various applications. Simply said, I can use the capabilities of other applications installed, and also I can expose my app’s capabilities to other apps. Also, Android search also integrates good with any application’s search.</li>
<li>Application Development is done in Java, which is said to be a very developer-friendly. I can utilize this to brush my skills in java, as I have other plans to work in Java in some not-so-far future.</li>
</ul>
<p>Annoying Things:</p>
<ul>
<li>Tabs are NOT simple to use. I’d prefer a way to declare tabs and its contents in the XML itself.</li>
<li>In TabHost, mandatory referencing of elements to’ tabs’ & ‘tabcontent’ doesn’t look like a good programming feature.</li>
<li>Missing the tabs & tabcontent id referencing in the TabHost would give no error / warning by Compiler, but fails at Runtime, without any proper information (even while debugging)</li>
<li>Emulator takes very long time to start. So, its preferred not to close the emulator after every run. (start along with eclipse and close it before closing eclipse)</li>
<li>Emulator keyboard shortcuts - Not too easy to remember (like, Ctrl + F12 for Toggle Portrait / Landscape modes). I’d have preferred if the emulator itself has a help button, to show the shortcuts.</li>
<li>Nothing to do with Android, but the bug in Helios (Eclipse Web tools plug-in) has become a pain, forcing me not to us any features while editing resources. Bug - https://bugs.eclipse.org/bugs/show-bug.cgi?id=318108</li>
<li>Again, may not be related to ADT (frankly, I don’t know), but the auto-complete context is very slow, taking 30-60 seconds (which is tooooo long, btw). Here again, I’m forced to disable Auto-Activation of context Assist at ‘Window -> Preferences -> Java -> Editor -> Context Assist -> Enable Auto Activation’</li>
<li>I can’t run the application when my focus is on layout files (on resource files, for that matter). I always need to switch to a java file, to run (Ctrl + F11) the application</li>
<li>The layout filenames cannot contain uppercase letters. If it contains, the error shown doesn’t help in identifying it</li>
</ul>
<p>Unclear points for me:</p>
<ul>
<li>In Android XML, for TabHost, @android:id/tabhost works ( i.e; referencing other element with tabhost id ). How can access this element from my Activity class? (since, no reference is created in R.id )</li>
<li>Is XML compiled ? Or interpreted at Runtime? If compiled, how can I see the generated Java (?) files? (something similar to -keep compiler option in Flash Builder)</li>
<li>And many other things (like, working of Intent, i18n, logging), but these are somethings I need to learn as I dive further in android..</li>
</ul>
<p>Tasks for coming days:</p>
<ul>
<li>Finish the Tutorials in the resources, and then go to the samples folder available with the SDK.</li>
<li>Try to make a couple of simple *usable* apps, so that I get enough practice with the SDK APIs</li>
</ul>
<p>Also, attaching the projects <a title="HelloAndroid.zip" href="http://saiprasad.me/assets/HelloAndroid.zip">HelloAndroid.zip</a> and <a title="HelloViews.zip" href="http://saiprasad.me/assets/HelloViews.zip">HelloViews.zip</a> I made during my learning.</p>
<p>Wish me that I gain pace in learning Android over the next few weeks…</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[And, I'm back!]]></title>
<link href="http://saiprasad.me/blog/2010/06/and-im-back/"/>
<updated>2010-06-18T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2010/06/and-im-back</id>
<content type="html"><![CDATA[<p>I’ve decided that I need to celebrate the release of WordPress 3.0. So, I’ve given a thought about the best way to celebrate! And guess what? Using it & spreading the word will the best (both for myself & WordPress too :D). So, I’m back to my blog. And this is not like my previous times !!! I’m going stick around updating my blog for quite some time (a couple of months, for a minimum).</p>
<p>Let me start with what happened during last few months. Actually, many of them I wish they didn’t happen or they happened other way.. :(</p>
<ul>
<li>I tried to get a driving license at Noida, but failed because of lack of local address proof. Seriously, going back to my hometown just for getting a license - doesn’t it sound stupid?</li>
<li>With no license, my dream of a getting a bike got wiped away !</li>
<li>I’m getting bored (read as vexed, irritated and so on…) of Noida ! What a stupid place it is !! Isn’t it?</li>
<li>Laptop is troubling me a lot…. Currently under repair. Wish I get it back soon!</li>
<li>Lost all the contacts from the mobile!</li>
</ul>
<p>And the good part: Google I/O 2010 brought back my interest in Web & Mobile development, due to which, I decided to spend atleast 40 hours in the coming couple of months learning Android. I’ve also decided Learning is going to my major focus area for a couple more years!!</p>
<p>So, wish me luck in putting things into execution !</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[The Benefits of Failure]]></title>
<link href="http://saiprasad.me/blog/2010/02/the-benefits-of-failure/"/>
<updated>2010-02-12T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2010/02/the-benefits-of-failure</id>
<content type="html"><![CDATA[<p>This is video of the speech by the famous J.K. Rowling at the Harvard Commencement, 2008.</p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1711302&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://vimeo.com/moogaloop.swf?clip_id=1711302&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object>
<p>So, whats in the video?</p>
<ul>
<li>It has some humor in it, especially the first 150 secs. I’m sure a few smiles you’d certainly escape from your tender lips.. :P</li>
<li>She talks how ‘being poor’ influences (or atleast attempt to) your life and all in it including career, passion etc. etc.</li>
<li>And the core part – The benefits of failure. I think she had put this part in action in a great way, or else, after watching this video, why did I desperately want to fail in a big way despite my fear of failure??</li>
</ul>
<p>Now that I mentioned I fear failure, let me tell what my mind tells me right now. “You do not fear the failure itself, but your fear its after-effects. Its capable of taking everything fro you !”. But my heart is encouraging me – “When you had done everything from scratch, why do you fear to do it again? It’d easier this time.. !!” :P :P</p>
<p>I know it sounds funny, but really can’t help. Perhaps, this is why people call –</p>
<blockquote><p>An idle brain is the Devil’s workshop</p></blockquote>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[I had a problem]]></title>
<link href="http://saiprasad.me/blog/2009/12/i-had-a-problem/"/>
<updated>2009-12-01T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2009/12/i-had-a-problem</id>
<content type="html"><![CDATA[<h2>Symptoms:</h2>
<ul>
<li>Language: C++</li>
<li>Operating System: Windows</li>
<li>Target Audience: Programmers</li>
<li>Sub Area: Reading ASCII / UTF-8 files from the disk using C++ streams.</li>
<li>Trouble: How to handle files whose file names contains non-ASCII characters?? (coz ifstream takes a ASCII file path :–( )</li>
</ul>
<h2>Solution:</h2>
<ul>
<li>Use <code>_wfopen_s()</code>, the safe version of <code>_wfopen()</code>, which takes a wide-character file name & gives a <code>FILE</code> pointer i.e; <code>FILE*</code>.</li>
<li>Use the obtained <code>FILE*</code> to create a stream, like <code>ifstream in(fp);</code></li>
<li>We used wide-character file name & are reading the file byte-by-byte (actually, its char). DONE !! :–)</li>
</ul>
<p>BTW, I got help from <a href="http://bytes.com/topic/net/answers/264598-iostream-question-how-open-unicode-file-name">here</a>! Hope this saves time for someone out there…</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Ask your computer to help you in household chores]]></title>
<link href="http://saiprasad.me/blog/2009/10/ask-your-computer-to-help-you-in-household-chores/"/>
<updated>2009-10-22T00:00:00+05:30</updated>
<id>http://saiprasad.me/blog/2009/10/ask-your-computer-to-help-you-in-household-chores</id>
<content type="html"><![CDATA[<p>Does this title come as a surprise to you? But, yes ! computer can help you with some additional things too (apart from computing).</p>
<p>With a small program, you can make the cradle (baby rocker) of your baby swing, without your presence. Shocked? Well, do you recognize you PC has a CDROM and also a program can also open & close a CDROM drive? Continuous opening & closing of CDROM can help in your baby rocker’s harmonic motion.</p>
<p>Check this link for similar innovative ideas: <a href="http://blog.makezine.com/archive/2009/08/linux_baby_rocker.html"><a href="http://blog.makezine.com/archive/2009/08/linux_baby_rocker.html">http://blog.makezine.com/archive/2009/08/linux_baby_rocker.html</a></a></p>
]]></content>
</entry>
</feed>