Monday, December 20, 2010

encounter with GitHub's A.I. which is "purely artificial and poorly intelligent"

UPDATE: GitHub has pretty nice language statistics now trying to analyze and graph all programming languages used in Project.

+++++++++++++++++++++++++++++

Recently, I had an interesting encounter with GitHub's A.I. which was purely artificial and poorly intelligent.
I have a repo at 'https://github.com/abhishekkr/sitehoster'; it's an experimental web-server developed in 'Java' but it has been marked as 'Javascript'.

Now I'm a bit hard at things which don't work to their potential... but I don't think their is anything wrong in it.

So yeah there is an 'Artificially Poorly Inferenced Logic' implemented in so advanced GitHub
which could have been 'Smartly Easily Granted Control' to not so artificially intelligent Users

Now what this AI of GitHub does?
any GitHub user don't need it when they do all the following tasks manually:
creates an account; provides their ssh-public-key; creates a repository; setup a git repo on their machines; add/rem data to it; commits their code to that repository
And then they are clueless...
Then, this AI of GitHub comes to Rescue of poor, non-AI enabled users and saves their 'incapable minds' from deciding the technology category (language tag to be associated with the github-repositories) for their repository.

As, even though that sane GitHub User are the creator of that repository... they don't have the brain-cells to burn thinking what was the technology in which they actually just developed everything. 

So GitHub comes to your rescue, looks what is the initial code-file extensions committed to your repo... what is the extension of code-files acquiring maximum of disk space. Then it matches the extension with decreasing order of usability of a  'technology'. And you will be blessed with the 'language tag' decided with all this intelligence.

That's not all. This intelligence is so supreme that it's not allowed for anyone to manually edit the tag.
I don't know how tough job is it, a BiG single record change just same as change of repo-name... that too this will be in additional data model of repository, which should be even more easily separated to update.

Now, they don't manually change it... cool if they do, they will have loads of those requests from non-directly-paying customers or say public repo users.

Fine, how much EXXXXTRAAAA Work does it take, to add a new 'text field' ti 'repo-editing-section' and bind its value to 'language tag' section.

Hell yeah... I didn't think it through... I forgot that I never had the AI to identify that my 'Core-Java' developed Web-Server is actually a 'JavaScript' Project cuz of few demo web-apps added to show its security implementations.

I had a mail-conversation with GitHub staff, well they were real helpful in explaining their current state of AI but no proper reason WHY?


There are several more cases similar to mine... as below
=========================
=========================
Reference: http://support.github.com/discussions/repos/4282-language-tag-in-repo-should-be-matlab-not-objective-c
[Chat-Story]@25-Sep-2010
-----
Nick 'github-user' : got a repo at 'http://github.com/insilico/matsnprank' which is written in 'Matlab' but language tag attached to it is 'Objective C' instead.
-----
Tekkub 'responder' : change your file exensions from '.m' to '.matlab', it's your fault naming them particular way
-----
Nick 'github-user' : '.m' is a pretty famous extension used for 'matlab' too. Just changing a language shouldn't be a big deal.
-----
Tekkub 'responder' : there is not, sorry.
=========================
=========================
Reference: http://support.github.com/discussions/repos/5052-how-to-change-the-major-programming-language-for-a-project
[Chat-Story]@11-Dec-2010
-----
Mouhong Lin 'github-user' : I have project 'https://github.com/mouhong/sigma' in 'C#' containing some 'javascript' code. It's shown as 'javascript' code. How can I change major programming language tag?
-----
Petros Amiridis 'responder' : Its done automatically based on total size of all files. I'm afraid there is 'no way to change it manually'.
=========================
=========================
References: http://support.github.com/discussions/repos/3412-override-language-detection-within-source

another conversation on same lines.....
and there are lots more