Thursday, 29 November 2012

Profiling with VisualVM

Visual VM is quite a useful profiling tool that comes with the jdk (6.0 and above). You just fire it up from the command line (type 'jvisualvm', assuming you have included jdk in your classpath) and deploy your server or application. Double click your server process from the Application window and click the profiler tab. Enable settings to configure which java package to profile.

Thereafter, head over to the CPU tab. Now you are free to interact with your server or application and Visual VM will collect all the relevant data as a visual graph (e.g., identifying bottlenecks, method execution times, etc). This is clearly preferable to using System.nanoTime() calls to monitor method execution times.

Wednesday, 28 November 2012

Toronto Data Science Group Meetup 2

Today's presentation topic was on Applied Machine learning, touted as a technical lecture. I was really hoping to see a rough algorithm of some sort, but no such luck. I have compiled a short list of takeaways that I gleaned from the meetup:

  • On classification : words have prior polarity, depending on the context. e.g., the word "like" has a positive polarity when used as a verb and no priority when used as an adverb (c.f., "I like fish" vs "It looks like fish").
  • On SVM's : (Case study 1) Predict how loyal a customer would be based on open ended survey results. Filter out noise and chunk words. Identify features. (Case study 2), where patients take an adaptive survey, and SVM's are used to predict best course of treatment. Also, this data is used in the prediction of insurance premium rates.
  • Other examples : prediction of box office performance, viral tweet prediction, web traffic prediction.
  • Conclusion : Data quality is key. There is no "magic" in machine learning, just hard work. SVM's are good for classification if the identified features are simple and independent. Linear SVM's work well for text classification. Deep neural networks would work better on complex and dependent features. Always start with an optimization objective in mind. On any given machine, you should only be trying to maximize a single optimization objective.

Wednesday, 7 November 2012

RISC OS on Raspberry Pi

The raspberrypi foundation has now made the RISC OS, developed in 1987, available for use with the Raspberry Pi. I think I'll give it at try, just for kicks. Here's the announcement, here's a short intro, and here's a forum.

Monday, 5 November 2012

Techcrunch Meetup in Toronto

I headed off to the Steam Whistle Brewery today evening to attend the Techcrunch Meetup in Toronto. There was a meandering queue outside the entrance and I spent a good half an hour in the cold before I was ushered in. It wasn't that bad though- I made a couple of acquaintances who were in the vicinity. Weirdly enough, the tickets were being checked manually instead of being scanned (each ticket was associated with a QR code).

The venue itself seemed overcrowded. Each attendee got 2 free tickets which could be redeemed for beer, which is always a good thing (the hors d'oeuvres were horrible though). There were quite a few startups who had set up booths showcasing their products. I actually liked this one called Picatic- they provide a platform for organizing crowdfunded events. Others included Uber, for online taxi bookings, and SoftLayer, a cloud hosting platform.

All in all it was a reasonably interesting meetup. I actually recognized a few familiar faces whom I had seen in previous tech events. The best part, for me, was actually listening to the startup founders describe their products. Networking in such events seems like a rather perfunctory affair to be honest (or maybe it's just me).

Friday, 2 November 2012

Bingle Update

I just released an update to the paid version of my Android app, Bingle- it features a new scrabble dictionary, CSW12! This was after I received an email from a customer requesting that I add this dictionary to my app. So come on people! Download Bingle! Request for new features, and I shall try my very best to implement them. This applies to the free version as well.

Additionally, I have decided not to invest more time in developing apps for the Amazon app store for the following reasons :

  • The demand is magnitudes lesser in comparison to the Google Play Store. 
  • Amazon takes about a week (at least) to review every apk before it goes on live. 
  • You cannot redirect any links to the Google Play store from an Amazon app.
  • The Amazon developer console is completely ill designed in terms of navigation and frequently infuriates.
  • Deleting your app from the Amazon appstore is a painful affair.