tag:blogger.com,1999:blog-65133562024-03-08T14:52:29.460+05:30Kalyan's BlogRandom notes on life, work and other stuff.Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.comBlogger128125tag:blogger.com,1999:blog-6513356.post-52680453369027060832012-07-04T11:25:00.004+05:302012-07-04T11:25:40.852+05:30Recursive make<div dir="ltr" style="text-align: left;" trbidi="on">
Read this awesome paper recently: <a href="http://miller.emu.id.au/pmiller/books/rmch/"> Recursive Make Considered Harmful</a>. it is suprising how often we carry broken things deeply into our lives in the name of "folk knowledge". <br />
<br />
If first principles were more often reflected upon, we will create a more functional world. Things like vaastu and assorted indian rituals come to mind :)....<br />
<br />
</div>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com1tag:blogger.com,1999:blog-6513356.post-80227515790404920022012-06-27T11:28:00.000+05:302012-06-27T11:28:20.636+05:30End to end arguments<div dir="ltr" style="text-align: left;" trbidi="on">
Came across this design paper recently and it is a great read <a href="http://dl.acm.org/citation.cfm?id=357402">http://dl.acm.org/citation.cfm?id=357402</a><br />
<br /></div>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com1tag:blogger.com,1999:blog-6513356.post-67616460253983379002012-06-21T10:16:00.001+05:302012-06-21T10:16:16.041+05:30Art of unix programming<div dir="ltr" style="text-align: left;" trbidi="on">
Came across this book recently and it is totally worth a read! Unix would have made much more sense to me had I read this in college :)<br />
<br />
<a href="http://catb.org/~esr/writings/taoup/"><em>http://catb.org/~esr/writings/taoup/</em></a><br />
<br />
<em>The Art of Unix Programming attempts to capture the engineering wisdom and philosophy of the Unix community as it's applied today — not merely as it has been written down in the past, but as a living "special transmission, outside the scriptures" passed from guru to guru. Accordingly, the book doesn't focus so much on "what" as on "why", showing the connection between Unix philosophy and practice through case studies in widely available open-source software.</em></div>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com2tag:blogger.com,1999:blog-6513356.post-48002917081770205572012-01-03T19:00:00.000+05:302012-01-03T19:01:49.872+05:30The long tailA very good read: <a href="http://changethis.com/manifesto/show/10.LongTail">The long tail</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-90552099881961486582010-07-27T09:56:00.005+05:302010-12-29T19:24:21.186+05:30Site Build ItI was looking for making a website for my wife's clinic and stumbled upon something very interesting: SBI. These guys seem make it really easy to setup a good website and take away all the technical pain of running a small business website (hosting, dns registration, stats, search engine submissions, easy design and editing etc. etc...).<br /><br />But what impressed me was that they have tools and information on what needs to happen *before* u choose your niche.<br /><br />If you are thinking of puttin up a website, you should check it out: <a href="http://www.sitesell.com/explore0.html">Site Build It</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.comtag:blogger.com,1999:blog-6513356.post-14609048325504047442010-04-15T16:39:00.002+05:302010-04-15T16:52:15.095+05:30Investing...Vipul is one of those few rare souls in my friend circle who actually have a plan, understand what they are doing and actually do it in the area of investing.<br />And he is blogging now. For some fun stuff : <a href="http://jebau.blogspot.com/">http://jebau.blogspot.com/</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com1tag:blogger.com,1999:blog-6513356.post-37062278858226870612010-03-01T19:29:00.003+05:302010-03-01T19:33:29.774+05:30River side schoolWe need more schools like this: <a href="http://www.schoolriverside.com/">http://www.schoolriverside.com/</a><br /><br /><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"><param name="allowFullScreen" value="true"><param name="wmode" value="transparent"><param name="bgColor" value="#ffffff"><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/KiranBirSethi_2009I-medium.flv&su=http://images.ted.com/images/ted/tedindex/embed-posters/KiranBirSethi-2009I.embed_thumbnail.jpg&vw=432&vh=240&ap=0&ti=735&introDuration=16500&adDuration=4000&postAdDuration=2000&adKeys=talk=kiran_bir_sethi_teaches_kids_to_take_charge;year=2009;theme=the_creative_spark;theme=how_we_learn;theme=a_taste_of_tedindia;theme=rethinking_poverty;theme=new_on_ted_com;event=TEDIndia+2009;&preAdTag=tconf.ted/embed;tile=1;sz=512x288;"><br /> <embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="446" height="326" allowfullscreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/KiranBirSethi_2009I-medium.flv&su=http://images.ted.com/images/ted/tedindex/embed-posters/KiranBirSethi-2009I.embed_thumbnail.jpg&vw=432&vh=240&ap=0&ti=735&introDuration=16500&adDuration=4000&postAdDuration=2000&adKeys=talk=kiran_bir_sethi_teaches_kids_to_take_charge;year=2009;theme=the_creative_spark;theme=how_we_learn;theme=a_taste_of_tedindia;theme=rethinking_poverty;theme=new_on_ted_com;event=TEDIndia+2009;"></embed></object>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-44534046909219151352010-02-26T10:04:00.002+05:302010-02-26T10:09:00.795+05:30Can software 'compose' music?Sample music included in the article:<br /><a href="http://www.miller-mccune.com/culture-society/triumph-of-the-cyborg-composer-850">http://www.miller-mccune.com/culture-society/triumph-of-the-cyborg-composer-850</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-29112342046245007202010-02-25T20:21:00.002+05:302010-02-25T20:28:11.315+05:30InnovationIt is a very common thing in everyday conversation to attribute success or failure of tech companies to "ability to innovate". Scott Berkun takes a direct shot at this "easy reasoning" with a good article : '<a href="http://www.businessweek.com/innovate/content/feb2010/id20100222_506858.htm">Good' Beats 'Innovative' Nearly Every Time</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com2tag:blogger.com,1999:blog-6513356.post-84569992711424755102010-02-23T19:41:00.002+05:302010-02-23T19:53:33.649+05:30E-ToysWas directed to Alan Kay's work from some blog/book and that eventually led me to squeak and E-Toys. It is a great piece of software - both from the vision and implementation angles. You owe it to yourself to try it out for your kids/for the kid in yourself :)<br /><br />It may take a little while at first, but once you have figured out a basic example, rest all flows with very little additional effort - an important sign of a of a well designed product/framework.<br /><br />Main site: <a href="http://www.squeakland.org/">Squeak Land</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-32609899318133992762009-12-28T15:22:00.002+05:302009-12-28T15:26:34.177+05:30Good article on api design.My bro. forwarded this and it was a great read: <a href="http://cacm.acm.org/magazines/2009/5/24646-api-design-matters/fulltext">API Design Matters</a> .Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-4846430577799146112009-12-15T13:36:00.002+05:302009-12-15T13:41:07.291+05:30From within, without trailer...Dr Luc and Co are coming up with a movie on autism and homeopathy. Though I know of no one in my circle who has an autistic child, this made quite an impression on me. <br /><br />Watch the trailer <a href="http://www.youtube.com/watch?v=f47h0Zi3ZK0">here</a>.Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-32900916085732944352009-07-14T10:01:00.002+05:302009-07-14T10:08:00.109+05:30Climate changePavlina has a great analysis on <a href="http://www.stevepavlina.com/blog/2009/06/climate-change/">Climate Change</a> that is worth reading.<br /><br />....<br /><em>A 2006 United Nations report found that the meat industry produces more greenhouse gases than all the SUVs, cars, trucks, planes, and ships in the world combined. If we’re going to combat global warming, doesn’t it make sense to work on the #1 source of greenhouse gas emissions? Shouldn’t we strike at the root of the problem instead of just hacking at the branches?</em><br />...Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-30435165303524080742009-06-26T10:15:00.003+05:302009-06-26T10:20:10.575+05:30What's your name?One thing I have observed as my daughter grows up is the number of times kids are subjected to the same questions like <br />"what is your name?", "what color is this?" "what is your father's name?" <br /><br />I always thought that kids are a patient lot till my daughter flipped the bozo bit and started answering such questions with meaningless words like kumme, gumme (accompanied by laughter :) )!!<br /><br />Another side effect is that she repeats whatever question she has tens of times thinking that its the way things work :)!Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-25957018242428320442009-05-13T13:50:00.002+05:302009-05-13T14:20:09.783+05:30UnschoolingGot this through a forward, found it interesting (a little ra ra):<br /><br /><a href="http://blogs.salon.com/0002007/2009/04/25.html">http://blogs.salon.com/0002007/2009/04/25.html</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-29197859663222933052009-01-30T12:03:00.002+05:302009-01-30T12:11:15.766+05:30A good paper on designIt is not unusual for us to keep relearning the same thing over and over again in our industry. A friend pointed me to this "old paper" which documents design learnings across many projects. I found it to be a great (but slow) read.<br /><br /><a href="http://research.microsoft.com/en-us/um/people/blampson/33-Hints/Abstract.html">Hints for Computer System Design</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-81314862406696501662009-01-12T09:46:00.002+05:302009-01-12T10:02:19.225+05:30Story of stuffAn interesting video that got forwarded to me. Definitely worth 20 minutes of your time:<br /><br /><a href="http://www.storyofstuff.com/">http://www.storyofstuff.com</a><br /><br /><em>Shortly after the World War 2, these guys were figuring out how to ramp up the [U.S.] economy. Retailing analyst Victor Lebow articulated the solution that has become the norm for the whole system. He said: “Our enormously productive economy . . . demands that we make consumption our way of life, that we convert the buying and use of goods into rituals, that we seek our spiritual satisfaction, our ego satisfaction, in consumption . . . we need things consumed, burned up, replaced and discarded at an ever-accelerating rate.”<br />And President Eisenhower’s Council of Economic Advisors Chairman said that “The American e</em><em>conomy’s ultimate purpose is to produce more consumer goods.”</em><br /><em><br />MORE CONSUMER GOODS??? Our [economy’s] ultimate purpose? </em><em>Not provide health care, or education, or safe transportation, or sustainability or justice? Consumer goods?<br /></em><em>...</em>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-36911339689644800822008-12-10T11:45:00.004+05:302008-12-10T11:51:09.720+05:30Keyboard stuff..Was trying to play a song from notes (piyu bole) and since it seemed too fast for such a slow song, I looked up on the web to see how people actually play that song. Found an amazing<br />version: <a href="http://www.youtube.com/watch?v=atAzfF0M44s">http://www.youtube.com/watch?v=atAzfF0M44s</a><br /><br />Not beginner's stuff :).Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-73256215446913812852008-09-15T10:38:00.003+05:302008-09-15T11:12:05.174+05:30Learning something new.Looking at my wife churn out pleasant music on a keyboard with barely 2 weeks of classes, I wonder why I never invested any time in any of the creative fields (painting, sketching, music, photography...).<br /><br />I think the basic issues for me are around<br /><ol><li>Getting out of the comfort zone. The existing mental pathways are easier to go along with.</li><li>Trying to look for "productive output".</li><li>A belief that any new field requires a huge amount of practice and dedication. </li></ol><p> Due to this I always ended up spending my free time on the next "scripting language" or "programming model" :). So taking a different view point and approach, I am going to:</p><ol><li>Focus on the joy of learning/exploring something new.</li><li>Commit a fixed time (say 30hours) to a given field and see where it goes. </li></ol><p>At the end of it if I can enjoy/appreciate music or photography more, it would be more than worth it. RK's tip is a very <a href="http://arkaysblog.blogspot.com/2008/03/unusual-photography-tip.html">practical fallback</a> :)</p>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-62423877286409650532008-09-12T10:47:00.002+05:302008-09-12T10:58:42.463+05:30Windows workflowLooking at the samples and having some vague discussions at work about workflows got me a little irritated and frustrated about whats going on. <br /><br />Luckily someone pointed me to this book: <a href="http://www.amazon.com/Essential-Workflow-Foundation-Microsoft-Development/dp/0321399838">"Essential Workflow"</a> and I must say that it is one well written book. It explains the "concepts" behind it instead of dealing with some vague design surface or cooked up examples. Basically WWF is a 'programming model' for long running resumable programs. <br /><br />With fundas in mind it is much easier to make a call on whether WF is a fit for a given context.<br /><br />You can find a sample chapter here: <a href="http://dharmashukla.com/essential-wf-page/">Sample Chapter</a>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-83075204687960886262008-08-27T11:04:00.016+05:302008-09-10T11:20:58.213+05:30Uri quirks..Got bitten by this as this i was using the Uri class to combine some parent child resources. <a href="http://msdn.microsoft.com/en-us/library/aa332624(VS.71).aspx">Msdn</a> states that Uri(uri, string) combines the base and relative uri's w/o giving details of what that means. The following examples show that combining two uri's is not obvious :).<br /><pre>(http://www.xyz.com/p1/p2, c1) => http://www.xyz.com/p1/c1<br />(http://www.xyz.com/p1/p2/, c1) => http://www.xyz.com/p1/p2/c1<br />(http://www.xyz.com/p1/p2, /c1) => http://www.xyz.com/c1<br />(http://www.xyz.com/p1/p2/, /c1) => http://www.xyz.com/c1<br />(http://www.xyz.com/p1/p2, ./c1) => http://www.xyz.com/p1/c1<br />(http://www.xyz.com/p1/p2/, ./c1) => http://www.xyz.com/p1/p2/c1 <br /></pre><br /> <br />The gory details of the combination algorithm can be found at <a href="http://www.apps.ietf.org/rfc/rfc3986.html#sec-5.2">http://www.apps.ietf.org/rfc/rfc3986.html#sec-5.2</a>.Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-54206944191615125942008-07-31T10:05:00.003+05:302008-07-31T10:39:56.127+05:30Understanding legacy code.Most of the time in a software job is about understanding legacy code (any code which survived a few months is legacy :) ). Since this comes up everytime you move to a new team, I sat down to take notes. Surprising how often I forget to do few of the things that worked in the past. Hope you find these useful as well:<br /><ol><li>Talk to the someone who already knows the codebase and walk through the main components on the board</li><li>Play with the final product to get an idea of its features (becomes easy to correlate when you go through the code)</li><li>Figure out how logging works in that product. Enable verbose logging (if available :)) and keep watching the tail of log as you play with the product</li><li>Attach a debugger and step through the code while you use the product</li><li>Run the unit tests under a debugger</li><li>Go through the tests for a feature</li><li>Go through the bug database by feature. This quickly gives a sense of what you are going to run into :) and a lot more.</li><li><<more>></li></ol>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com1tag:blogger.com,1999:blog-6513356.post-78131026428352228742008-06-09T11:22:00.003+05:302008-06-09T11:40:35.081+05:30Concurrency and coordination runtimeAnyone who has done any amount of async programming knows that it gets out of hand pretty easily. We are good at reasoning about sequential things and async code with its callbacks within callbacks approach breaks this view and makes it hard to reason about things like correctness and boundary cases. <br /><br />MSR has come up with a different programming model intended to make async i/o based programming dramatically simpler (almost feels like sequential code). It is a library on top of .net and ships as part of robotic studio. For any serious async work, this is worth investigation<a href="http://msdn.microsoft.com/en-us/magazine/cc163556.aspx">:</a><br /><ol><li><a href="http://msdn.microsoft.com/en-us/magazine/cc163556.aspx">MSDN article</a></li><li><a href="http://msdn.microsoft.com/en-us/robotics/bb383569.aspx">Videos</a></li></ol>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-6252920056348196912008-06-05T13:00:00.005+05:302008-06-05T21:26:38.668+05:30Thread local storage leak in Compact CLRIts pretty easy to use thread local storage on the CLR using the LocalDataStoreSlot and the Thread.Get/SetData methods. The unfortunate part is that the LocalDataStore is not freed after the thread dies .(LocalDataStore is essentially the per-thread data store which is created the first time something is set in the thread storage).<br /><br />This is a big issue as memory is short on devices and apps which use threadpool to process their work items (using TLS) will end up leaking a lot as thread pool keeps spawning/exiting threads based on load.<br /><br /><em>Update: this is an issue only with netcf 2.0, it has been fixed in netcf 3.5</em>Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com0tag:blogger.com,1999:blog-6513356.post-49626741171969405882008-06-02T10:56:00.003+05:302008-06-02T10:57:45.131+05:30Generators in pythonOnce in a while I used generators as a simpler way of writing an iterator. I did not realize how cool and powerful generators and generator expressions they were till I read this : <a href="http://www.dabeaz.com/generators/Generators.pdf">http://www.dabeaz.com/generators/Generators.pdf</a> - do read it, it will be worth your time.Kalyanhttp://www.blogger.com/profile/15211243197125293826noreply@blogger.com2