Sunday, June 28, 2015

JBL Flip 2 and Yosemite


I recently purchased http://www.amazon.com/gp/product/B00GAJ2OK4 and I must say that I am more than pleased. The product is sturdy (I did drop it once on a carpeted floor and nothing happend :)) and can be easily carried around. Past few weekends I was renting zip-cars for weekends and FLIP 2 was all I needed to have a better sound system than the default ones the car had. The reviews at amazon.com summarize everything you need to know about this product, after all that is how I decided to buy this.

This post is about pairing Flip 2 and Mac Yosemite. I was using Mavericks earlier and pairing up Flip was as easy as toggling a button on the Mac-Menu bar. I upgraded to Yosemite and whoosh the icon disappeared. But a quick spotlight search for "Bluetooth" shows Bluetooth File Exchange app.

How to Connect:

  1. Bluetooth File Exchange -> Pick a random file and hit send
  2. It will ask for device to send
  3. Turn on FLIP 2 and make it discoverable via bluetooth (toggle the bluetooth button on FLIP 2)
  4. Choose JBL Flip 2 in the list of devices
  5. Now the Flip 2 is paired with yosemite. You can cancel the file send now, as all you needed was to pair up your FLIP 2 and Yosemite
  6. Now open Audio MIDI setup client. 
  7. JBL Flip 2 will show up with 2 output channels. Select that.
  8. Right click and select "Use this device for sound output"

Now you are all set. Enjoy the mobility offered by FLIP 2 by streaming music from your Yosemite mac.

Range of FLIP 2 is also good for an apartment. I have used it from 10 metres across even in my apartment and it seems to work uninterrupted.

PS: This is my first post for 2015. Hope to keep myself busy writing at least one post every week from now on. Fingers crossed! :)

Sunday, November 2, 2014

A note on Prepositional phrases

For one of my research projects, I was looking at different components in constituency parser output namely Verbal phrases (henceforth called VP), Noun phrases (henceforth NP) and Prepositional phrases (henceforth PP). It is interesting to note that in both VPs and NPs, the head of the phrases is not so surprisingly Verb and a Noun respectively. However when it comes to prepositional phrases, we have 2 different categories.
  1. PPs that function as adjectives (in other words answer questions such as what/which/how many etc..,)
  2. PPs that function as adverbs (in other words answers questions such as how/when/where/why etc..,)
One other way to look at PPs as adjectives is to realize that they talk about a Noun (like an adjective does). Similarly PPs as adverbs talk about a verb. 

Based on this distinction I started looking at openNLP chunker's output. By looking at the points 1 and 2, I devised a simple heuristic as follows:


Problem: Find whether a PP is adverbial or adjective

Solution: 
Heuristic 1: If the PP is first chunk in a sentence or is immediately preceded by VP, then it is more likely to be an adverbial.

Heuristic 2: If the PP is immediately preceded by a NP, it is more likely to be adjective PP. 

I dont have any metric to report for these 2 heuristics, however. 

References: 


Monday, September 8, 2014

Blocking in-video Ads - Youtube and Live streaming Part 3

You may want to glance through  Part1Part2 of this series, before proceeding here.

This post was long overdue and I am glad that I have found time and the desire to update my blog. The post is going to be about Editing /etc/hosts file in linux and Mac

Let us raise a question to set the tone for this post -
          Wonder how the ads are getting rendered on your page ?

Like you guessed, it is again a http call to a server.  Now what will happen if we block the calls to that server ?

This idea of blocking the calls to the ad-server is the idea behind common ad-block plugins. They tend to keep a black-list of URLs and which is why updating the plugin once in a while seems to be a good idea; with each plugin update, it is quite likely that the black-list for ad-servers is updated.

Eg: We can use the chrome devtools to identify the element through which the ads are getting displayed. (Please refer [2] on DevTools usage)

Using chrome developer tools, it is easy to find the hostname that is serving the ads.

Like I already pointed out in Part1Part2 of this series, the Adblock and Adblock plus Chrome extensions will help you in this regards.

Once we identify the ad-server, we can block all http calls to this server through our /etc/hosts file (refer [1]). This is a crude/hacky way of blocking ads, but effective. The ad-blocking plugins typically work within the browser sandbox and block these http calls, without touching the /etc/hosts file.

However, I don't understand completely how these plugins manage to block Youtube's in-video ads still.

Note: It is worth noting that Firefox, Safari and IE also provide such capabilities through their corresponding browser tool namely "Inspector" in Firefox and Safari, and "Developer Tools" in IE. 

Reference:


Monday, April 7, 2014

World Cup T20 14 Final Post Mortem

I am also one of the millions of ardent fans of Indian Men's cricket. And yes it was very disappointing to see India lose the finals. It's not like the team crumbed under pressure (remember WC 2003 Final); but the team was out-witted by some perfect execution of skills by the hungry Sri Lankan side. It doesnt mean that we should question the hunger of the Indian side, I didnt mean that.

Since last 24 hours I have seen a lot of posts, jokes, memes targeting a single player Yuvraj for the team's loss. I understand that the fans get emotional about cricket in our country but I wanted to shed some light on the actual statistics.

Last 4 overs analysis.
Kohli 7 in 8b (S/r 87.50)
Yuvraj 4 in 9b (S/r 44.44)
Dhoni 4 in 7b (S/r 57.14)
Ext 4

True it was disappointing and frustrating to see the Indian team getting strangled; but we should not target Yuvraj. Sri Lankans executed their plans perfectly. Give credit to them.

Also, one other observation is - Sri Lankans added one more left hander to their squad, strengthening their batting and also to mitigate the impact of mishra and jadeja in the game. [both turn the ball into the left-handers making it easy to slog]. I think we missed a trick in our bowling combination. But all credit should go to the Sri Lankan think-tank, again. Stop taking out the frustration on Indian players. 

This team can only spiral upwards. In the form of Kohli we seem to have a strong candidate for heir-apparent of Dhoni. At the same time Rohit sharma also seems to be gaining the confidence to perform consistently at the international level under the shadow of Kohli's performances. These are encouraging signs for Indian cricket. I get a feeling that this defeat will make the Indian team and Yuvraj singh hungrier and give them one more reason to prove the critics wrong at the WC 2015. Fingers crossed!, as always an optimistic Indian cricket fan.




Friday, April 4, 2014

Finding head word in a Noun Phrase

Recently I came across this problem of finding head words in phrases. This problem assumes significance in a coreference resolution setup. (More on coreference resolution in another post). I was trying to do a simple string match on two phrases after stripping each of the phrases off closed-class words (or stopwords) and punctuation marks. Upon analyzing the results I realized that a simple string match may not solve the problem.

For example: matching "a glass bowl" and "glass of milk"

If we follow the heuristic of matching them after stripping them off stopwords and punctuation marks, we would end up saying that both the phrases are a match. (as there is a string match of "glass").

That is when I realized the need for identifying the entity being talked about in a phrase. The head words for the 2 phrases listed above are "bowl" and "milk" respectively.

It turns out that in NLP literature, it is called as the head word. Prof. Michael Collins, around 19992, seems to have come up with some heuristics (rules based on syntax tree path etc..,) to identify these head words. Upon further research, it seems to me that this is the state of the art and the heuristics are implemented in the stanford CoreNLP suite1

Here is a sample code below based on Stanford CoreNLP to identify head words for NounPhrases3:

1:  public static void dfs(Tree node, Tree parent, HeadFinder headFinder) {  
2:    if (node == null || node.isLeaf()) {  
3:     return;  
4:    }  
5:    if(node.value().equals("NP") ) {  
6:     System.out.println(" Noun Phrase is ");  
7:     List<Tree> leaves = node.getLeaves();  
8:     for(Tree leaf : leaves) {  
9:      System.out.print(leaf.toString()+" ");  
10:    }  
11:    System.out.println();  
12:    System.out.println(" Head string is ");  
13:    System.out.println(node.headTerminal(headFinder, parent));  
14:   }  
15:   for(Tree child : node.children()) {  
16:    dfs(child, node, headFinder);  
17:   }  
18: }  

References:
[1] http://nlp.stanford.edu/software/corenlp.shtml
[2] Prof Michael Collins' thesis has description about head finding rules here http://www.cs.columbia.edu/~mcollins/publications.html
[3] More details on StanfordCoreNLP HeadFinders here - http://stackoverflow.com/a/22841952/1019673

Tuesday, March 18, 2014

Passers-by classification

Often times we end up thinking, why is this guy wasting my time; when will this conversation get over; how can I escape his gaze, while passing by; and so on. I am pretty sure that we all have had these questions flash across in our minds at some point for one reason or the other. After taking my evening tea, this thought crossed my mind and I sat down to classify different people that one deals with on a day to day basis. 

1. Obnoxious, self-centered, gloating Prick:
I am sure everyone can quickly recall such a person in our environment. For no reason that person will talk to you about how others think how smart the person is, how successful the person has been and so on; and talk to you when you were not even considering talking to him. The person would be least interested in listening to what you have to say or want to say. Easy thing I do to deal with those persons is think of a joke, a PHD comic that I read for the morning, or a nice song and pose a smiling face while that person is yapping away :). I am not talking about the person who is excited about sharing good news with you; this is someone who has kept his/her trust in you; I am talking about someone who always does this, no matter when/where/how you meet the person.

2. I am superior to you:
This group of people have an air about themselves and when you cross their path, they simply turn their gaze away, in a dis-respectful way. I am not even talking about people who turn their gaze away out of shyness, busyness or anything; those people you can easily separate from this group. I am talking about the group who do it purposefully every single time, as if we don't belong to their so called superior world. I wonder what goes through their minds! sigh.

3. Recluse:
Not a lot to say about this lot. This is just the way they are.

4. Random Gibberish:
This lot is sometimes good to talk to; sometimes they can be a real pain in the neck. This is the kind of lot that has no agenda but talk; and so they talk gibberish. Give them any topic, they will be able to yap about that for any length of time. Even it means repeating themselves, they wont stop, until somebody stops them. This lot can be annoying almost always. But once in a while, one would always want to be involved in such a gibberish, I guess. I think this mostly happens with close-friends with mutual participation and involvement from either side. But when somebody else out of your close-friend circle is trying to engage you in such a conversation, then you are in for pain until it lasts. 

5.  Calmer group:
This group just wave and sport a nice smile and show respect to you. People in this group are a confident lot, respect other people and are the best of all the classes given here, according to me. 

Seems like the tea has lost its effect now. I got reminded of the pending research work on my desk. That is all for now. 

Finally I would like to leave you with a few thoughts of George Carlin on people.



If you would like to extend this list. Please add it in the comments.  

Friday, July 26, 2013

On Startup Engineering Courses

Of late I have seen a lot of online courses about Startup Engineering that have the agenda of helping the class-takers bootstrap their business. Also, there are a lot of philosophies about Lean-Startup, tips to run a successful startup and so on. I seem to see a pattern in all pieces of advice given in these courses and articles.

Aside all the common instructions like Start early, Fail early and so on, people tend to be dramatic about this whole idea of start-up and that they don't offer practical realistic advice.

I am starting to wonder if taking all these courses is worth taking them at all ? - Somehow I feel that we are missing the point by giving importance to these courses.

I don't know why, but these days I am beginning to say no to classes and lectures; may be the reason behind this post.