<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-869395977036870275</id><updated>2011-07-07T18:20:11.595-07:00</updated><category term='Start'/><category term='Eat'/><category term='libvorbis'/><category term='Code'/><category term='Chinese'/><category term='Delhi'/><category term='Milepost'/><category term='North-Indian'/><category term='nspr'/><category term='Mozilla'/><category term='Hyderabad'/><title type='text'>Eat.Play.Code.</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-2989191468127126087</id><published>2010-07-17T19:06:00.000-07:00</published><updated>2010-12-04T14:17:36.794-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='North-Indian'/><category scheme='http://www.blogger.com/atom/ns#' term='Eat'/><category scheme='http://www.blogger.com/atom/ns#' term='Hyderabad'/><title type='text'>Zafraan Exotica</title><content type='html'>Hyderabad Ahoy!&lt;br /&gt;&lt;br /&gt;Well as I left Delhi, I had loads of apprehensions on the food scenario in Hyderabad. One of the more weightier thoughts was, "I like biryani, infact I love it, but is it the only thing that I am going to get over there?". With questions like these I started my culinary journey in the Land of Nizams, and I must say I am not one bit disappointed.&lt;br /&gt;&lt;br /&gt;The very first dining experience I had in Hyderabad was at Zafraan Exotica. Now I know this is the first time I am blogging about a North-Indian cuisine serving restaurant but one needs to start some day and so here goes. Zafraan Exotica is as exotic as its name. I cannot recall the last time I had better Frontier cuisine and that should tell all that there is to tell.&lt;br /&gt;&lt;br /&gt;The food is succulent to the last bit. The Non-Veg Platter (Kumbh ka Khazana?) is a must try, with the Chicken Tikka so juicy and succulent that I begin to wonder whether they get the chickens from a different land itself. The Mutton Roganjosh and Murgh Tikka Lababdar are another two palates worth venturing upon, with their curries complementing each other to the very end. Dal Zafraan is also a good option for the lovers of black dal. The Harimirchwala Naan and Ajwaini Naan are good accomplishments in the section of breads. All in all, order anything and I guarantee you would not be disappointed.&lt;br /&gt;&lt;br /&gt;The ambience of the restaurant is quite good with small pools of water with fishes in them and candlelit lighting overall. The rooftop restaurant with its subdued lighting is the perfect place for a good meal in a pleasant ambience with efficient and attentive service. And at around 500/- per person, I doubt you can find a more VFM meal anywhere in Hyderabad. All in all, a must try out for all the food lovers.&lt;br /&gt;&lt;br /&gt;( I am so happy to write that last line after such a long time. )&lt;br /&gt;&lt;br /&gt;Ratings:&lt;br /&gt;Food: 4/5&lt;br /&gt;Service: 3/5&lt;br /&gt;Decor: 4/5&lt;br /&gt;Value for Money: 4/5&lt;br /&gt;Meal for two: 900/- + taxes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-2989191468127126087?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/2989191468127126087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2010/07/zafraan-exotica.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/2989191468127126087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/2989191468127126087'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2010/07/zafraan-exotica.html' title='Zafraan Exotica'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-6402927929027684742</id><published>2010-06-10T06:57:00.000-07:00</published><updated>2010-06-10T07:13:17.714-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delhi'/><category scheme='http://www.blogger.com/atom/ns#' term='Eat'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Review: Joy Luck Moon</title><content type='html'>Voila, I am back! And this time, I remember to get the bill back with me for convenience in writing this review, although it stayed in my wallet for a couple of months. Stories apart, today I review Joy Luck Moon.&lt;br /&gt;&lt;br /&gt;Joy Luck Moon is a sister concern of Ginger Moon in Select Citywalk, Saket, one of the major reasons for my visit. Alas, you cannot compare the two. Although the restaurant tries to bring the same appeal and even the same Singapore-meets-China fusion, it leaves the restaurant trailing behind its counterpart in multiple areas. The restaurant also has an open-air lounge although I did not venture there as it must be pleasant to sit outside only in the winters.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The moment I am seated, I open the menu and try to find the Singaporean Soul which I loved so much at Ginger Moon, but it is nowhere to be found. Disappointed, I turn to other options which I enlist now. Starting with Ginger Garlic Vegetables, it is not at all Chinese. A roadside van will come up with a similar dish, avoid it by all means. However, the stuffed potatoes in Black Sauce are something I can swear by. It was the only saving grace for the restaurant in my opinion. The Vegetable Fried Rice with Pokchoy was passable though nothing exceptional. As I did not have an appetite nor the will nor the funds to continue, I decided to raise the white flag and call for the cheque.&lt;br /&gt;&lt;br /&gt;The restaurant has the same prices as Ginger Moon, but the ambience needs improvement. Why will someone leave the glasses of a mall eatery uncovered, especially for a Chinese restaurant which tends to have subdued lighting, beats me. The service also is not very good with the waiters inattentive to their jobs. All in all go to Joy Luck Moon only if you must, but there are much better options in Saket, one of them being New World Mainland China, which you could try.&lt;br /&gt;&lt;br /&gt;Ratings:&lt;br /&gt;Food: 2.5/5&lt;br /&gt;Service: 3/5&lt;br /&gt;Decor: 2.5/5&lt;br /&gt;Value for Money: 2.5/5&lt;br /&gt;Meal for two: 1000/- + taxes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-6402927929027684742?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/6402927929027684742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2010/06/review-joy-luck-moon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6402927929027684742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6402927929027684742'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2010/06/review-joy-luck-moon.html' title='Review: Joy Luck Moon'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-7908974270045110803</id><published>2010-01-27T06:19:00.000-08:00</published><updated>2010-06-10T07:13:36.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delhi'/><category scheme='http://www.blogger.com/atom/ns#' term='Eat'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Review: Crazy Noodles</title><content type='html'>Crazy Noodles is a small passable joint located in the Great India Place, Noida. And its name describes it completely. The waiters have a crazy way of throwing the glasses. They also come up and squirt some liquid on paper pellets which spring into - ta da - wet tissues. The menu is also crazy, you'll find yourselves battling with it to get to the right page. More interesting than the food here are the numerous small puzzle games that they hand out to you when you take the table, solving which also got me a free pepsi :).&lt;br /&gt;&lt;br /&gt;As for the food its like a khichdi of wannabe Chinese, Thai&amp;nbsp; and Japanese leaving it far from each end. The chinese spicy salad is one of the only things worth of mention, though there was nothing chinese about it. Their Crazy Ramen is much hyped, its a tureen of soup with veggies and boiled noodles, though I don't find it to be anything amazing, except for the quantity in which it comes. The shrimps were the only main course which tasted good. Whatever you do, do not order mocktails, stick to the general fizzy drinks.&lt;br /&gt;&lt;br /&gt;All in all, I'll quote it as a Yo China! brother or maybe even rank it among the Bercos' but nothing more. Go there only if you are short of cash and want to fill your tummy up to the brim. Or maybe if you want a crazy twist.&lt;br /&gt;&lt;br /&gt;Ratings:&lt;br /&gt;Food: 2/5&lt;br /&gt;Service: 3/5&lt;br /&gt;Decor: 2.5/5&lt;br /&gt;Value for Money: 3/5&lt;br /&gt;Meal for two: 500/- + taxes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-7908974270045110803?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/7908974270045110803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/review-crazy-noodles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/7908974270045110803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/7908974270045110803'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/review-crazy-noodles.html' title='Review: Crazy Noodles'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-3996466416688508522</id><published>2010-01-26T08:26:00.000-08:00</published><updated>2010-06-10T07:13:53.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Milepost'/><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='libvorbis'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>libvorbis and Milepost</title><content type='html'>After integrating Milepost into nspr, I found that it was not possible to measure the performance boost there. So Dan suggested that I try the same thing for &lt;a href="http://mxr.mozilla.org/mozilla1.9.1/source/media/libvorbis/"&gt;libvorbis&lt;/a&gt;, the ogg library which is used for html5 video. So I started working on that, and as now I'm used to the mozilla build system it didn't take too long to perform the same steps, with minor variations for libvorbis.&lt;br /&gt;Unfortunately, while using Milepost for libvorbis, I am now facing a compilation error on the file &lt;a href="http://mxr.mozilla.org/mozilla1.9.1/source/media/libvorbis/lib/vorbis_res0.c"&gt;vorbis_res0.c&lt;/a&gt;. It works perfectly fine as long as I am not using Milepost, but the moment I enable Milepost, it gives a &lt;a href="http://pastebin.mozilla.org/699829"&gt;compilation error&lt;/a&gt;.&lt;br /&gt;I have informed the cTuning people about this, and a thread is running &lt;a href="http://groups.google.com/group/ctuning-discussions/browse_thread/thread/bf0d5516f80cda21/ac95a52786094073#ac95a52786094073"&gt;here&lt;/a&gt;. It might just be that its something I am doing wrong, but frankly I can't think of anything. I hope they can give me a solution to the problem soon.&lt;br /&gt;Lastly, I still cannot try checking the perf boost, because the Web Service is still not running properly. I have informed the cTuning people about this too and they are working on it right now. I hope it gets resolved soon, because until it does, I am stuck with nowhere to go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-3996466416688508522?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/3996466416688508522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/libvorbis-and-milepost.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/3996466416688508522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/3996466416688508522'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/libvorbis-and-milepost.html' title='libvorbis and Milepost'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-3070407484014298371</id><published>2010-01-12T10:13:00.000-08:00</published><updated>2010-06-10T07:14:18.361-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Milepost'/><category scheme='http://www.blogger.com/atom/ns#' term='nspr'/><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>nspr and Milepost</title><content type='html'>I haven't posted for some time now, mainly because I did not have anything concrete, but now I am regretting that. There are so many tweaks here and there that I have done in the past 10 days or so to be able to integrate &lt;a href="http://www.milepost.eu/"&gt;Milepost GCC&lt;/a&gt; into the Mozilla build-system that I am finding it difficult to remember all of them. Still, I'll give here a brief sum up of my progress since the last time.&lt;br /&gt;&lt;br /&gt;Well it started with a chat with Dan (dwitte). And he suggested that we start work with SpiderMonkey and try and get Milepost integrated there, because the build system of SpiderMonkey is the same as Mozilla. He also suggested that we try and tweak the code written for &lt;a href="https://developer.mozilla.org/En/Building_with_Profile-Guided_Optimization"&gt;PGO&lt;/a&gt; which also uses two passes on the system. So off I dived into PGO, got tangled up in makefiles and configures and whatnots and then finally had to approach Ted (ted) to make some sense out of all of it :). And then I got to know about config.mk which sets the CFLAGS and then all the fog cleared :). So I basically figured how PGO was working, but Ted told me that it had been disabled on Linux. Anyways, it helped me a lot in how to call multiple makes etc.&lt;br /&gt;&lt;br /&gt;So I started trying to integrate Milepost into SpiderMonkey when I came across this discussion on the &lt;a href="http://groups.google.com/group/ctuning-discussions"&gt;cTuning group&lt;/a&gt; which said that C++ is not currently supported and I saw that most of the files I was compiling were cpp, so I had run into a dead-end. So then off I went to Dave(humph) and Ted and they gave me names of some C-only modules and humph suggested &lt;a href="http://www.mozilla.org/projects/nspr/"&gt;nspr&lt;/a&gt;, a C-only module which provides a platform independent API for system level functions. So then I had to start again with nspr, although it was quite similar to SpiderMonkey and much simpler to understand :).&lt;br /&gt;&lt;br /&gt;After much banging heads against the build-system I managed to understand the flow and I now knew what I had to do. So I created a "milepostbuild" target, similar to a "profiledbuild" target of PGO, which would call submakes, changing the environment variables as required by the ICI plugins of Milepost everytime. It was a huge task in itself to find out how to export the variables to the current shell in the first place but I finally managed. I am currently exporting them initially in configure, and to call configure I am using "source ../configure" in bash instead of a normal "./configure". This sets up my variables in the current shell and now I can make whatever changes I want to these variables while calling make again from the makefile by adding VAR=Val alongside.&lt;br /&gt;&lt;br /&gt;This done, I now had to get the ICI plugins to work with the build, properly. For this I needed to add the filename of the source file being compiled by gcc to the files that the plugins create, which basically contain the executed passes (.txt) and the static features (.ft). I couldn't find a way to do this at first and I found myself wandering here and there in the gcc code with no idea at all, but after some searching I found the "function_filename" feature which would be able to return the filename. I used it and it worked fine on my small programs, but it did not work when I used the same thing in the build. Finally, I realised that it was because of the relative path of the filename being returned instead of the filename itself, and then I mended that and voila, everything works now!&lt;br /&gt;&lt;br /&gt;So, I am now able to extract the gcc executed passes for each nspr file and its respective static features. I have to integrate the web service in now, to predict the flags using the extracted features, but right now there is some problem with the cTuning web services. Also, there is a slight problem regarding the passes for which I need help from the Milepost people. Lastly, although I am currently trying to make this work on a file-to-file basis, what we really need is something that can work on the whole module in one go, as working on each file, especially using a web service, takes a lot of time and as Dwitte mentioned, it won't scale. Already I see that my build time for nspr has changed from seconds to minutes, when I haven't even used the web service yet. I have posted the same concern to the Milepost authors and hope to receive a positive reply...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-3070407484014298371?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/3070407484014298371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/nspr-and-milepost.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/3070407484014298371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/3070407484014298371'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/nspr-and-milepost.html' title='nspr and Milepost'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-6091420315920543217</id><published>2010-01-10T09:00:00.000-08:00</published><updated>2010-06-10T07:14:36.429-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delhi'/><category scheme='http://www.blogger.com/atom/ns#' term='Eat'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Review: Ginger Moon</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_eIki-IRdPm4/S0oJuYDVxzI/AAAAAAAAACE/lBZ53C16tnI/s1600-h/gingermoon.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_eIki-IRdPm4/S0oJuYDVxzI/AAAAAAAAACE/lBZ53C16tnI/s200/gingermoon.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I am ill-equipped to write this review, as I forgot to get the bill back home with me (as usual). But still, why not give it a shot. Also, my opinions here maybe biased (I am not saying which way ;) ) as I was treated here and the cheque did not go through my pocket. Forgive me, if they are.&lt;br /&gt;&lt;br /&gt;Ginger Moon is a Chinese joint in Khan Market with a Singaporean Soul. I don't quite get the connection, except that both the cuisines belong to the land of (quoting Jack Clueso) little yellow people. As far as the food goes, its not exactly state-of-the-art gourmet, but I believe they have something to cater to everyone's needs. If you go looking for the traditional Chinjabi food, you'll find it here. And if you go looking for some nice authentic Chinese with a Singaporean touch, you'll find it here too. The place is done up tastefully, though jam-packed with tables, so don't expect it to be a Veda. Its quite famous in the neighbourhood so might be better to book the table in advance.&lt;br /&gt;&lt;br /&gt;First up, their Jasmine Tea is quite good. If you are fond of it, you'll surely like it here. However, its not complimentary, although pretty cheap. For the starters we had Spicy Hunan Onion Veg which was passable. But their Ginger Garlic fried rice, was very good, flavourful and done to perfection. For the main course we ventured into the Singaporean zone which has a separate section dedicated to it. Although I don't quite remember the name (see why I said I am ill-equipped?) it went something like "Spicy Chilli Bean...". Basically it consisted of a bed of quite different noodles with mixed veg in a slightly sweet sauce. It felt as if the whole thing had also been roasted in a pot for a few minutes. All in all, it was one of the best dishes I have tasted recently.&lt;br /&gt;&lt;br /&gt;Ginger Moon is a mixed bag. Order wisely and you'll end up having a good time. As for the prices I would rate it as not expensive and quite VFM. I would surely recommend this restaurant, mainly because of lack of better options around.&lt;br /&gt;&lt;br /&gt;Ratings:&lt;br /&gt;Food: 3/5&lt;br /&gt;Service:3.5/5&lt;br /&gt;Decor: 3/5&lt;br /&gt;Value for Money: 4/5&lt;br /&gt;Meal for two: 1000/- + taxes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-6091420315920543217?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/6091420315920543217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/review-ginger-moon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6091420315920543217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6091420315920543217'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2010/01/review-ginger-moon.html' title='Review: Ginger Moon'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_eIki-IRdPm4/S0oJuYDVxzI/AAAAAAAAACE/lBZ53C16tnI/s72-c/gingermoon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-3056709629589072386</id><published>2009-12-24T07:16:00.001-08:00</published><updated>2010-06-10T07:14:53.024-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delhi'/><category scheme='http://www.blogger.com/atom/ns#' term='Eat'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>Review: Mainland China</title><content type='html'>Having not much to pass time with in the hols, I thought I would start what I have been wanting to do for a long time now.. Write about food! Whenever I tell people that I am an indulgent foodie, they look me up and down and then comment, doesn't seem so. Well being skinny sure has one advantage, you don't have to think about all the fat going in..&lt;br /&gt;&lt;br /&gt;So first up in my mind is a restaurant that I have visited the most in Delhi: Mainland China. It has branches now in GK, Rajouri Garden, Gurgaon and even a brand new "New World Mainland China" in Saket, though I have only been to the one in GK. On my first visit to Mainland China, I was quite impressed. It was not easy to come by good authentic chinese food at non-exorbitant prices. The food suited the taste buds, and it was not very spicy: the way I like my chinese. Now that I have given it quite a few visits (more so because of the prices than the food) I feel the food is not out of the world but much much better than what we usually get in the name of chinese.&lt;br /&gt;&lt;br /&gt;Coming to the dishes, the staters tend to be Chinjabiish. Frankly I don't expect to see Crispy Chilli Potatoes in an authentic chinese restaurant but there they are, popping straight into my face the moment I open the menu. Avoid them at all costs. I will give full marks to the Dimsums though, be they Siu Mai or Hargaos. One of the dishes that I really love is the Barbecued Chicken with Manthao Buns, it is truly and simply delicious. Crackling Spinach also makes its appearance for the veggies and it is supposedly one of the best in Delhi, though personally I am not very fond of all the oil. Coming to the main-course, I would suggest Broccoli, Corn and Water Chestnuts in Chilli Garlic Sauce and Mixed Vegetables in Chengdu Pickled Chilli Sauce. For the non vegetarians, there are much more options out of which I find Sliced Chicken in Oyster Sauce quite succulent. Oh, I forget that even their lamb is very good. I prefer taking Burnt Onion and Garlic Rice but I have heard their Chinese Olives XO Fried Rice is also very good, though it does not feature on the menu. All in all the meal is a nice experience, leaving you satisfied without burning a hole in your pocket.&lt;br /&gt;&lt;br /&gt;But the best part of the restaurant lies in the lunch buffet. For around 425/- +taxes you can fill your stomach to the brim with quite a variety of dishes. The best part is that they even have sea food in their buffet menu: Crabs, Prawns, Shrimps etc. If you are planning to visit at lunch time, I would recommend that you take the buffet. But do book your table in advance 'cause the VFM buffet attracts a lot of crowd.&lt;br /&gt;&lt;br /&gt;Ratings:&lt;br /&gt;Food: 4/5&lt;br /&gt;Service: 4/5&lt;br /&gt;Decor: 3.5/5&lt;br /&gt;Value for Money: 4/5&lt;br /&gt;Meal for two: 1200/- + taxes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-3056709629589072386?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/3056709629589072386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/review-mainland-china.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/3056709629589072386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/3056709629589072386'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/review-mainland-china.html' title='Review: Mainland China'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-6392162103629321410</id><published>2009-12-22T07:17:00.000-08:00</published><updated>2010-06-10T07:15:23.273-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Milepost'/><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Milepost GCC-Web Services</title><content type='html'>So finally after banging my head for almost two days against the Web Service of cTuning and CCC Framework, I have finally managed to get the combinations correct and am able to receive the Compiler Optimization flags now from the cTuning web services. There are a few glitches here and there, I think it requires that the platform, compiler and environment that one is using should be already present in the database. So I opened up the database and retrieved some records and used the platform, env and compiler ids from there to retrieve the predicted compiler flags and I am quite pleased to say that it is working now. Although, I see that using the flags generated, I am getting a worse runtime than by using normal -o2, -o3 levels :)..&lt;br /&gt;&lt;br /&gt;Also, I read on the cTuning website that currently only compiler optimization flags are being predicted by the ML based compiler and optimization passes are not being predicted but there are plans to incorporate this too. I will try to follow up the authors of Milepost and find whether that part has been done, or is in the process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-6392162103629321410?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/6392162103629321410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/milepst-gcc-web-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6392162103629321410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6392162103629321410'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/milepst-gcc-web-services.html' title='Milepost GCC-Web Services'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-7882395917988816293</id><published>2009-12-20T05:26:00.000-08:00</published><updated>2010-06-10T07:15:46.724-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Milepost'/><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Milepost GCC - Plugins</title><content type='html'>Here are some of the plugins that I have installed and a summary of what they do:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;save_executed_passes.legacy&lt;br /&gt;This plugin saves the executed passes per function in external files&lt;br /&gt;"ici_passes_function&lt;function_name&gt;.txt"&lt;/function_name&gt;&lt;/li&gt;&lt;li&gt;save_executed_passes_with_time.legacy&lt;br /&gt;This plugin times the execution of the passes split-compilation.&lt;/li&gt;&lt;li&gt;substitute-passes.legacy&lt;br /&gt;This plugin substitutes original GCC pass order with the one read from either external files "ici_passes_function&lt;function_name&gt;.txt", 1 global file "ici_passes_all.txt" or environment variable ICI_PASSES_ALL (passes are separated by comma) thus allowing external manipulation with passes (adding, removing or reordering).&lt;/function_name&gt;&lt;/li&gt;&lt;li&gt;extract_program_static_features&lt;br /&gt;This plugin extracts program static features per function as vectors and saves them into "ici_features_function&lt;function_name&gt;&lt;pass_to_extract&gt;.txt"&lt;br /&gt;&lt;/pass_to_extract&gt;&lt;/function_name&gt;&lt;/li&gt;&lt;/ul&gt;The installation of these plugins was not very intuitive but I managed by tweaking the code here and there. The plugins are working fine now with GCC. The only problem I now face with Milepost is how to predict the optimization flags using the static program features which are extracted by the last plugin mentioned above. I believe (I may be wrong here) that we need to access the cDatabase and push our features in there, which then returns a set of optimization flags which can be used to compile with GCC. There are two ways to do this: using Web Services or using the CCC Framework (http://ctuning.org/wiki/index.php/CDatabase:Documentation:API). I have currently tried both but there are issues.&lt;br /&gt;&lt;br /&gt;I cannot find a php script using which I can send a request to the "predict_opt" Web Service. Without this, its not possible to use the Web Service. The script for adding the optimization cases is available though.&lt;br /&gt;With the CCC framework, I am unable to access the Web Service using sockets. This is the part where I am currently working. I have posted a request on the Discussions of the Community for making available the php script. Meanwhile, I'll try to get the CCC framework to work and return the predicted flags.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-7882395917988816293?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/7882395917988816293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/milepost-gcc-plugins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/7882395917988816293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/7882395917988816293'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/milepost-gcc-plugins.html' title='Milepost GCC - Plugins'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-8873379702105047786</id><published>2009-12-20T05:00:00.001-08:00</published><updated>2010-06-10T07:16:14.184-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Milepost'/><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Milepost GCC - Introduction</title><content type='html'>Continuing with the work of the previous week, this week I started reading up about Milepost GCC. Some of the information can be found on this link: http://ctuning.org/wiki/index.php/CTools and the following paper: http://gcc-ici.sourceforge.net/papers/fmtp2008.pdf.&lt;br /&gt;&lt;br /&gt;I am putting up here some of the extracts which I thought were important and which highlight the key concept of the Machine Learning based compiler:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Considerable speed-ups can be already obtained after iterative compilation on all platforms. However, this is a time-consuming process and different speed-ups across different platforms motivate the use of machine learning to automatically build specialized compilers and predict the best optimization flags or sequences of passes for different architectures.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Research has shown a great potential to improve program execution time or reduce code size by carefully selecting global compiler flags or transformation parameters using iterative compilation. The quality of generated code can also be improved by selecting different optimization orders. Milepost GCC's approach combines the selection of optimal optimization orders and tuning parameters of transformations at the same time.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Here is a description of some of the related tools and frameworks:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Continuous Collective Compilation Framework (CCC): A tool that generates the training examples for the Machine Learning tools. It does this by evaluating different compilation optimizations, storing execution time, code size and other metrics in a database.&lt;/li&gt;&lt;li&gt;Interactive Compilation Interface (ICI): The ICI provides opportunities for external control and examination of the compiler. The new version of ICI expands on the capabilities of its predecessor permitting the pass order to be modified. This version of ICI is used in the Milepost GCC to automatically learn good sequences of optimization passes.&lt;/li&gt;&lt;li&gt;PLUGINS: The features of the program (program structure) are extracted from Milepost GCC via a plugin and are also stored in the database. They are driven through shared libraries.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Working of Milepost GCC:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The plugins are invoked by the new -fici GCC flag or by setting ICI_USE environment variable to 1. When GCC detects these options, it loads a plugin (dynamic library) with a name specified by ICI_PLUGIN environment variable.&lt;/li&gt;&lt;li&gt;The machine learnt model predicts the best GCC optimization to apply to an input program based on its program structure or program features.&lt;/li&gt;&lt;li&gt;To extract these static program features an additional GCC pass 'ml-feat' is implemented. This pass can be called using a extract_program_static_features plugin after any arbitrary pass starting from FRE when all the GCC data necessary to produce features is ready.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;There is still a lot of material to be read. I will give some details about the plugins I have installed in the next post. I believe Milepost GCC is an ingenious idea, however, as a user, I would have been happier if the documentation had been better. Currently I have to read the READMEs scattered around in the installation directories, and they are not very clear and specific.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-8873379702105047786?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/8873379702105047786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/milepost-gcc-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/8873379702105047786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/8873379702105047786'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/milepost-gcc-introduction.html' title='Milepost GCC - Introduction'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-6952985336045442256</id><published>2009-12-19T04:29:00.000-08:00</published><updated>2010-06-10T07:16:42.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Mozilla Builds</title><content type='html'>I have started working on a student project in Mozilla which requires using Milepost GCC to speed up Firefox. I started with doing a few builds of Firefox, both by using Mercurial and downloading the source code archive directly. I faced a few problems during the build process. After taking a lot of time for the build, it would crash on me giving errors like "vsnprintf not found", "fprintf not found" etc. After trying all possible options, I googled the errors and even found a related bug already filed:&lt;br /&gt;https://bugzilla.mozilla.org/show_bug.cgi?id=485019&lt;br /&gt;But the bug is marked "Resolved Invalid" (I have no idea what that means). Anyways, once I found that it was the breakpad which was causing problems, I disabled the crashreporter in the mozconfig file and that worked. So I managed to do some optimization and debug builds.&lt;br /&gt;&lt;br /&gt;After that I moved onto Profile Guided Optimization Builds, which I believe Mozilla is currently using for its releases. A PGO build consists of two passes: a first pass to build binaries, then a second pass to re-build optimized binaries using profile information extracted by running the first binaries. I managed to successfully build firefox 3.6 with PGO.&lt;br /&gt;&lt;br /&gt;I have moved on currently to studying Milepost GCC for now, but I'll be back to the builds to examine the makefiles and the code changes between normal and PGO builds, because I'll need to know how the builds actually work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-6952985336045442256?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/6952985336045442256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/mozilla-builds.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6952985336045442256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/6952985336045442256'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/mozilla-builds.html' title='Mozilla Builds'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-869395977036870275.post-4473651919242229823</id><published>2009-12-18T07:49:00.000-08:00</published><updated>2009-12-18T07:53:56.460-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Start'/><title type='text'>Where it all begins</title><content type='html'>So finally the day has come when I start blogging.. Had it been left to me, my hands wouldn't be typing this write now.. But well, duty calls, and thanks to Mozilla, I am now writing these seemingly monotonous words which must be making no sense to you all.. But I hope to improve soon and bring you some interesting tidbits.. So do keep up!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/869395977036870275-4473651919242229823?l=nikhilkapur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nikhilkapur.blogspot.com/feeds/4473651919242229823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/where-it-all-begins.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/4473651919242229823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/869395977036870275/posts/default/4473651919242229823'/><link rel='alternate' type='text/html' href='http://nikhilkapur.blogspot.com/2009/12/where-it-all-begins.html' title='Where it all begins'/><author><name>Nik</name><uri>http://www.blogger.com/profile/09703392195754818443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_eIki-IRdPm4/S9clkaoeJoI/AAAAAAAAACY/PvzLn5fsipw/S220/DSCN9113_2.JPG'/></author><thr:total>1</thr:total></entry></feed>
