9 May, 2010
Using Javascript to read a users browser history
Posted by Bhavin Turakhia | (9) Comments
While doing some research I came across this article by Mike Nolet on figuring out the gender of a user based on the websites the user has visited. The article has a javascript that does this – so yea I am adding “Allows you to check your testosterone levels” as a feature of Javascript.
But on a more serious note – I was impressed (and puzzled) mostly by the fact that his javascript managed to figure out which websites exist in my browser history. Now that makes me curious. So a few clicks and a google search later I figure that your browser history is NOT private. There is a nifty javascript hack that can allow any website to figure out which other websites you have visited in the past, from a potential list of websites.
I just had to blog about this. The hack uses the property of the browser which results in changing the color of an already visited link. Basically through javascript one can find out the color of any item in the DOM. So in order to find out whether you have visited a particular website, all I need to do is insert that website in the DOM as a link (albiet in an invisible manner) and check its color property. If its color matches that of a “visited link” then you have visited that website. Seemingly dell already uses this on their website to determine if a user has visited any of its competitors. Think of the potential uses -
- You can check if a user coming to your website has already visited any of your competitors, and if so target specific offers to them
- If you rank at the 5th position in Google for a keyword you can check if the user has visited any of the previous 4 links
- Lets say you have an offer coupon that you only want an anonymous user to see once. You may use cookies, but a user could delete their cookies if they are on to you. You can now check whether the user has been to that URL before through this hack if the user has not deleted their history
Espionage courtesy Javascript!!
More details available here
25 Nov, 2008
A quick review of Jaxer
Posted by Bhavin Turakhia | (0) Comments
I finally caught up with checking out the Jaxer video and reading up on Jaxer. I like what I see – it essentially allows the use of javascript on the server and the client.
Things I like -
- Javascript makes it very easy to manipulate the DOM. Now this power would be available on the server too, eliminating the need of building complex HTML on the server using languages that are not built ground up to manipulate HTML
- Ability to reuse code on the server and client (eg validation code)
- Jaxer provides a “runat” attribute for a function – which can be specified as “client”, “server”, “both” OR “server-proxy”. This determines whether the javascript function is executed on the server, the client, both or from the client in the form of an Ajax call to the server. If one specifies “server-proxy” Jaxer automatically creates stub code within the HTML page sent to the client which will make the relevant Ajax calls to the server without having to write any of the ajax code.
- With the new Aptana AIR plugin, one can now run Jaxer code from within AIR applications too
Things I am contemplating -
- While their Benchmark tab states that Jaxer provides performance equivalent to PHP / Ruby (the graphs actually show Jaxer outperforming Ruby) I am still a little sceptical until I try it out myself
- Jaxer is not a replacement for PHP / Ruby / Java. Javascript lacks the extensive library support that most mature languages have. In comparison with some of the more mature languages (eg Java / .NET) one would find many features lacking (eg multi-threading, support for low level networking, drivers for every db under the sun etc etc)
- …
This is a very preliminary review. I am definitely intrigued by the possibilities that Jaxer creates. Infact it would be interesting to use in combination with existing web application servers, by leveraging its extremely powerful DOM parsing and modification capabilities.
11 Sep, 2008
Availability of Developers by City (Mumbai, Bangalore, Delhi etc) and Technology (Java, C++, C#, AIR, WPF etc)
Posted by Bhavin Turakhia | (16) Comments
An alltime favorite question amongst journalists who interview me as a “young entrepreneur” has been – “Tell us about some of the challenges you faced while growing Directi?” and my patent answer has always been that the only challenge we have faced and continue to face is finding good talent. In our bid for finding talent we are now expanding into other cities over the next few months.
In order to determine tech labor availability across the common metro cities in India I compiled a statistical comparison of the count of resumes available on common jobsites for common software development skillsets in the various cities in India, and the findings are very interesting. This blog post compiles these findings. If you are a tech company in India – these findings can help you make technology decisions concerning city selection and platform selection.
The findings
Below are findings from the comparison of the count of resumes of software developers with 0-4 yrs of experience from various cities in India as compiled from a jobsite -
1. Findings by City
- Bangalore has 2.5 times the number of Java resumes of Mumbai
- In terms of total resumes from each city the ranking is in the following order – Bangalore, Hyderabad, NCR, Chennai, Delhi, Pune, and lastly Mumbai
- As an example, here is the citywise count of Resumes that contained the keyword Java
- Bangalore – 123,205
- Hyderabad- 114,561
- NCR – 85,347
- Chennai – 82459
- Pune – 54,086
- Delhi – 53,256
- Mumbai – 43,672
- Every city in India has more available developers than Mumbai with the South taking the lead
- NCR has almost twice the number of developers as Delhi
2. Findings by Technology
- The total count of Resumes of developers with 0-4 yrs experience that contain the below keywords across all 7 cities was -
- C++ – 635,575
- Java – 556,586
- C# – 190,872
- Javascript – 162,343
- Ajax – 41,219
- Flex – 8,668
- Python – 3,429
- Ruby – 2,099
- WPF – 779
- Silverlight – 255
- As you can see Java and C++ are the predominant keywords in Software Developer Resumes
- Flex beats Python and Ruby
- Ajax and Javascript beat Flex/WPF/Silverlight by several magnitudes as keywords appearing in resumes
The results above remain similar in terms of ratio, for Resumes with 4+ yrs of experience.
Click here to download the raw excel sheets for all cities and technologies >>
The methodology
I had my team conduct independent searches for each permutation and combination of the following -
- Keywords – Java, C#, C++, Javascript, Flex, Silverlight, WPF, Ajax, Actionscript, Ruby, Python
- Cities – Mumbai, Pune, Bangalore, Delhi, NCR (Noida/Gurgaon), Chennai, Hyderabad
- Experience – 0 to 4 yrs , 4+ yrs
- Function – Software Development (or equivalent)
- Jobsites – Naukri, Timejobs, Monster
- Date – 3rd June 2008
The above totals upto a whopping 462 searches
. I then tabulated the count of Resumes for each search and put it in multiple excel spreadsheets. You can download the spreadsheets to crunch the numbers yourself.
Based on the above data, Directi and .pw clearly need a presence in the south. The data also demonstrates the lack of penetration of RIA, especially Flex/Silverlight/AIR/WPF, amongst Indian developers.
Hopefully this data can help others make similar decisions. Meanwhile lookout Bangalore/NCR – we are in the process of making an appearance shortly
PS: Interested in joining Directi? – check our openings at http://careers.directi.com









