Sudeep's Blog

Disorganized Thoughts in Organized Manner

Fri Oct 26 2012
I am currently digging for resources on 'big data with R' Here are few that I have found
Here is an amazing TED talk by Jennifer 8 on rise of Chinese food in USA . The talk is awesome in its own right, but the thing I liked the most was that her comparison of restaurants with software firms. In her opinion, McDonald's == Microsoft , while Chinese Restaurants == Linux, meaning, McDonald's had a proprietary recipe for their products while all Chinese restaurants throughout the country had their own open recipes; and an exchange between them created Chinese food in the form we know today.
Wed Sep 19 2012
Coursera announced few more universities joining it's online learning platform. It is now about 200 courses strong and has more than a million students, myself included. Could this be the proverbial Tipping point in Coursera's users or is it just an effect of exponential growth? For a similar discussion, check out Coursera's course on Model Thinking Here is the Techcrunch blog post on Coursera's new achievements .
Some new exciting courses on Coursera: Udacity also has one exciting class that I am taking: Software Debugging http://www.udacity.com/overview/Course/cs259/CourseRev/1, taught by Andreas Zeller of Delta Debugging fame.
Tue Aug 28 2012
Hello World! I am thrilled to announce that my very first iPhone app - iGlassDoor - is ready for sale on App store. iGlassDoor brings information from glassdoor.com, the premiere online jobs and salaries community, customized to your iPhone - that means bigger texts, more concise results and better browsing. With IGlassDoor, you can:
  • Search for jobs in your area and field of specialization. Also search the jobs by job titles you are interested in.
  • See what employers/ex-employers say about a company
  • Browse salary information anonymously posted by glassdoor.com users
  • Take a look at interview process, first hand interview experiences and some interview questions from different companies.
  • Read latest blog posts and tweets from glassdoor.com
Every link in the app takes you to the original glassdoor.com webpage for more details. The Download link is here The app description page is here
I spent a lot of time finding right way of creating distribution binary on Xcode 4. There were a lot of confusing posts about Provisioning profile, code signing and validation. Thankfully, this step explains the steps required to add your app to the app store. The steps after you press "Archive" are fairly straightforward. Apple creates the binary and gives you an option of validating your app You can submit it after it passes the validation stage. The only other error during submission was the "acon@X2.png" compression error. This Stack-overflow posts discusses the solution to that. All you need to do is turn PNG compression off from TARGET -> Packaging -> Compress PNG file menu in Xcode.
I have been struggling with click event assignment to "a" tag on jQuery mobile on iPhone using Cordova. My exact problem was "href" attribute was returning nothing. There were a variety of solutions posted online, from attaching the callback to vclick or tap or touchStart event to storing that information somewhere else and retrieving it on "click" event. The solution was quite simple. jQuery mobile, for some reason, stores the "href" in the data attribute of the "a". Handling event in "click" callback and using a.data("href") did the trick for me.
I've partly read Liar's Poker, I haven't watched or read Moneyball. Still, the part I read made me a fan of Michael Lewis. Here is a link to Michael Lewis's recent Princeton Commencement Speech. I wonder how every commencement speaker has some dramatic narrative about his own life and how there always is a lesson to learn from it... always. The lesson here the part of luck plays in your success. Old, cliched, but Lewis's speech makes it sound profound. I couldn't help thinking about Nassim Taleb's books - Black Swan and Fooled by Randomness. Same theme!
jQuery's getJSON is an asynchronous callback, meaning the function returns at an unknown point in future, when the remote request completes. What if we want it to return some value to the calling function? What if we want it to update a global variable that is later going to be read by some other method? The answer is quite simple, and I found it by some googling and stack-overflowing ( stoverflowing ; wow, Oxford should totally add that word now). The trick is to call a detailed $.ajax method which accepts a Boolean async argument. Simply setting async: false does the trick. So, here is a sample call to getJSON $.getJSON(url, function(data) { doSomething }); This call, as we noted, is asynchronous. It can be converted into a synchronous callback as: $.ajax({ type: 'GET', url: 'whatever', dataType: 'json', success: function() { doSomething }, data: {}, async: false }); Notice the last async: false argument. Easy peasy!
HTML parsing is always a pain, especially when the document is badly formatted. Solution: BeautifulSoup. BS can traverse a badly formed HTML, find all children tags of a DOM element and also filter them according to ids/class. It took me a lot of time to include BS in Google App Engine. I finally ended up adding single BeautifulSoup.py file from bs3. (The current version is, however, bs4). It's working correctly so far, except a few differences from current version; e.g. bs4 uses find_all(tagName) for searching DOM, whereas bs3 uses findAll(tagName).