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. 

Wednesday, June 19, 2013

Different ways of setting up a repo on github

Its often the case that we would have worked on different projects and never really uploaded our work to github. There are 2 different scenarios that I often found myself in. 

  1. .git repo present locally that is not yet added to github 
  2. code that is not yet added to github

Effectively I am going to talk about solving 1 only. I will point out a way in which scenario 2 can be reduced to scenario 1 and therefore the solution applies for both the cases. 

Scenario 1: .git repo present locally

Firstly we need the repo to have a github remote. To list the remote destinations for a git repo,
$> git remote -v
[Remember to type this command from within the git repo directory - as git command looks up .git folder in the current directory for its operations]

Secondly, create and initialize an empty repo in github and get the Clone URL for the repo. Here I will talk only about HTTP clone URL, for simplicity. [Note that it is actually https:// URL]

Thirdly, do the following:
$> git remote add <remote name> HTTP clone URL
$> git push <remote name> master  #for pushing master branch on to the remote

We are all set. We have uploaded our git repo onto github. 

Scenario 2: code (without local git repo) that is not yet added to github

To create a git repo locally, we can do the following:

$> git init
$> git add required files
$> git commit -m"sample message"
Now, we have reduced scenario 2 to scenario 1 and we will be able to upload our code to github.

References:


Thursday, June 6, 2013

Formalism in Network Security and a note on WEP's limitations

Initially I had not chosen Network Security as one of my courses; but I had to pick this course because the other course turned out to be uninteresting, to say the least. There I was in the Network Security class and I had to deal with different perspectives given by people about how difficult the course can be and how difficult it is to follow the instructor's lectures.

I thoroughly enjoyed this course and the lectures turned out to be really interesting; true that it was different from the courses instructed in a conventional way - All lectures involved a lot of discussion and the instructor took great care in explaining the required aspects within the scope of the course, very clearly.

One of the interesting topics I liked to read in this course was the Indistinguishability test introduced in formalizing the definition of security. It draws parallel from the Turing test and talks about distinguishability between truly Random world and the real world. The idea behing Shannon's perfect secrecy (One-Time-Pad), transitivity of Indistinguishability, building an Attacker for a given system (Proof by contra-positive argument), Rabin Miller primality test (Randomized algorithms - Monte-carlo algorithm for Primality test), Fermat's little theorem, Modular arithmetic ... the course when I look back looks very impressive and I will highly recommend this course for anyone, just to listen to the instructors lectures. [To give credit and to avoid confusion for those who would read it at a later point of time - the instructor during Spring 13 was Prof. Rob Johnson]

All the topics that I listed in the previous paragraph was merely the first section of the course; the second section was when the course became even more interesting with Protocols, PKI, DNSSEC, Secure-BGP, SSL, XSS, XSRF, HTML 5 POST message, Same Origin Policy - and the icing on the cake was the final exam. It was a short paper and it required us to apply all that we learnt during the semester, aptly, to devise best-possible solutions in a practical scenario. Not to forget the cool project that we got to work on - building an apache module that would add CSP1.1 script-nonce support as part of apache itself. source

And now I move on to the second part of the post:

WEP : I have come across many house-hold routers making use of WEP, still. There is even a documented demo about how aircrack-ng can be used to break a network using WEP.

For those interested in theory behind how WEP is insecure, I referenced a post written here
- Well written, brief and to the point.

The bottom line is we should never configure WEP in our wireless router setup. And I think by default all the routers are using WPA or WPA2 by default to secure the wireless network. I wanted to throw a word of caution about WEP! - RIP to WEP!

GT




Friday, May 3, 2013

One more about Love!!!



What is Love ? 

One moment you tell me to stay strong
One moment you tell me to yield
One moment you tell me to be weak
What exactly is Love, God!

One moment it feels everything is together
One moment seems everything is torn apart
One moment all the memories come back and haunt you
Where exactly is Love, God!

One moment I decide to move on
One moment I feel all alone
One moment I feel the desire to get back
Why is it so confusing, God!

One moment I believe that I can
One moment I feel that I wouldn't 
One moment I think that I shouldn't 
What do I do, God!

After all the questions, I persist
Only to realize that all the persistence 
Is only making me weaker, by the day
Wishing I have shoulders to lean on! 
Aargh! Not again, God!

So many people have written so many times about Love, but yet it is so important to being Human, that people keep writing about it.

This was written in 10 minutes. It is short and sweet, I think; not a kind of work that will make people ponder over the content, but that which people will love to read at times, for its simplicity.

GT

Sunday, February 3, 2013

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

You may want to take a look at the Part 1 of the article before resuming reading here.

Typically  the ad-blocking browser extensions available so far are working as follows:
1. Filter Addresses
2. Hide stylesheet elements

How do they filter addresses ?
Ref:  Ad Block Plus Internals
It seems that we can configure something called as "Content policies" for the browser engines. It can be done  programmatically (by implementing certain interfaces) as explained in the reference provided above.

So, it comes down to the extension providers maintaining a list of addresses which they deem to be sources for in-video ads. [Let us not worry about how they maintain the list, here - It could be a topic for another blogpost]

This means that it is very important to keep our ad-blocking extensions up to date, as and when an update is available.

Why Hiding Style sheet elements is important ?
Its not going to be enough if we simply block the HTTP requests for loading ads, in periodic intervals. It is sometimes necessary to clean the style sheet elements that may appear to be present in-video. Looks like there are APIs available to unregister style sheets (APIs to interact with the browser engine). By doing so, we can do away with the  loosely hanging style sheets from the webpage.

In the next post - I will try to show a demo (video or screenshots) on how to do this ourselves without relying on a browser extension.

References :
[The links listed below all refer to Adblock plus; they appeared first on my G! result set and hence using them here]
Ad Block Plus Internals
Ad Block Plus in Chrome - How it works ?
Ad Block Plus landing page

To be continued...

Wednesday, January 30, 2013

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

Part 1:

Now a days, one seems to be having a torrid time watching videos on Youtube; ever since Youtube started playing in-video ads, Youtube experience has almost become nightmarish for the impatient users.
Solution :
AdBlock Extension

Search for this popular browser extension and get it installed in your browser to get rid of the in-video youtube ads.


Part 2:
In this part I will try to demonstrate how AdBlock may have been built and the hacks we can employ in blocking in-video ads ourselves, without relying on extensions like AdBlock.

2 reasons why we may not want to rely on AdBlock alone :
1. May not work on all sites
2. Knowing what is under the hood is fun.

If any of the above 2 points brought a smile on your face, check the Part 2 of this series here

Cheers!