{"thread":{"id":"30046","subject":"gsoc idea adding javascript library / framework in gitweb","startedAt":"2012-03-24T06:32:31Z","lastAt":"2012-04-01T09:47:54Z","messageCount":20,"participants":["chaitanyaa nalla","Jakub Narebski","chaitanya nalla"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"187627","messageId":"CACeyogcFJoUyAiTReDJK_nCMGBp+23OjcS407A1X=fqFR+aGag@mail.gmail.com","threadId":"30046","inReplyTo":null,"subject":"gsoc idea adding javascript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-24T06:32:31Z","receivedAt":"2012-03-24T06:32:31Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"Hello everyone ,\n\n\n I am chaitanya nalla, a final year undergraduate student from India and i\nam pretty much interested in doing the project \"Adding javascript library /\nframework in gitweb\" suggested by respected Jakub, I have good experience\nin javascript ,libraries like jquery,Dojo etc. As per the goals of the\nproject i will use the efficient ,concise ,cross browser compatible\nframeworks where ever needed.Also i am planning to create a local library\nversion with support for configuration and a good documentation.\n\nUsing the Dom features of javascript and traversing the whole document\nobject is quite cubersome and error prone .so i want to replace them using\nwell tested libraries that are cross browser compatible.\n\nEmualiting onprogress in XMLHttpRequest :\n\nJquery and Yui provide only statuses success and error .Even Mootools\nprovide progress but are constrained to some browers only.It can be handled\nby using $.ajax Transport utility .\n\nI will also take care progressive enhancement,by carefully implementing the\nbasic functionality of the gitweb so that what ever may be the browser\nversion and type , internet connection the basic functionality will not\ndisrupted .\n\nyours sincerely,\nchaitanya nalla.\nIndia.\n"},{"id":"187635","messageId":"201203241417.10478.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyogcFJoUyAiTReDJK_nCMGBp+23OjcS407A1X=fqFR+aGag@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-24T13:17:09Z","receivedAt":"2012-03-24T13:17:09Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Sat, 24 Mar 2012, Chaitanyaa Nalla wrote:\n\n> Hello everyone,\n> \n>  I am Chaitanya Nalla, a final year undergraduate student from India and I\n> am pretty much interested in doing the project \"Adding javascript library /\n> framework in gitweb\" suggested by respected Jakub.  I have good experience\n> in javascript libraries like jQuery, Dojo etc. As per the goals of the\n> project I will use the efficient, concise, cross browser compatible\n> frameworks where ever needed.\n\nJavaScript library / framework is required not only to cover differences\nbetween web browsers in DOM manipulation, event handling and Ajax with\nXmlHttpRequest, but also add features which are still[1] lacking from\nJavaScript such as handling cookies, formatting strings, date manipulation,\netc.\n\nCurrently gitweb uses hand-crafted micro-library in `gitweb/static/js/lib/`\nUsing existing JavaScript library, be it jQuery (most popular), Dojo,\nMooTools or YUI (probably too much for gitweb) will give us, as you said,\nwell tested code, and new abilities like client-side sorting of tables\nwhich we would be able to use in further work.\n\n[1] http://www.nczonline.net/blog/2011/10/03/when-web-standards-fail-us/\n\n>                                Also I am planning to create a local library \n> version with support for configuration and a good documentation.\n\nI don't quite understand what you mean here.  The JavaScript code specific\nto gitweb would have to be modified to use chosen JavaScript library, but\nI wouldn't say it is \"local library\".  I'd rather we use stock JavaScript\nlibrary, which would allow us to leverage existing CDNs like (for jQuery)\n\n  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\n  http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js\n  http://code.jquery.com/jquery-1.7.2.min.js\n \nWe probably would ultimately need to be able to serve local fallback copy\n(but this might be out of scope of GSoC project).\n\nThis gitweb-specific JavaScript code (files in `gitweb/static/js/`)\nis IMVHO quite well documented using JSDoc.\n\n> Using the DOM features of JavaScript and traversing the whole document\n> object is quite cubersome and error prone, so I want to replace them using\n> well tested libraries that are cross browser compatible.\n\nI think there is missing \"using hand-crafted code\" in this sentence\nto make it sense.\n\n> \n> Emulating onprogress in XMLHttpRequest :\n> \n> jQuery and YUI provide only statuses success and error.\n\nRight.\n\n> Even MooTools provide progress but are constrained to some browers\n> only.\n\nTo be more exact MooTools support 'onprogress' event handler only if\nweb browser supports it.  Not all do (e.g. older browsers), that is why\nthere is need for emulation using timers.\n\n> It can be handled by using $.ajax Transport utility .\n\nYou mean in jQuery here, isn't it?  It would be a bit different, I think,\nin MooTools or YUI.\n\nC.f. http://stackoverflow.com/questions/5652229/javascript-framework-with-or-easily-extendable-with-support-for-xmlhttprequest\n\n> I will also take care progressive enhancement, by carefully implementing the\n> basic functionality of the gitweb so that what ever may be the browser\n> version and type, internet connection the basic functionality will not\n> disrupted.\n\nErrr... \"progressive enhancement\" is about using client-side scripting\nin such way, that even if web browser doesn't support JavaScript\n(e.g. text browsers such as lynx, elinks or w3m), or has JavaScript\nturned off or blocked, we would get a basic functionality.\n\nNote also that \"progressive enhancement\" part applies only to writing\nnew features, and this is strictly 'as time permits' part, I think.\nBut I thin that you would need to lay more complete proposal, i.e.\nwhat features are you planning to add. \n\n-- \nJakub Narebski\nPoland\n"},{"id":"187638","messageId":"CACeyoge7_=aigOnJiXvp=SfVaBVO+4Or_x7Jcnmw-3pj8+VtoA@mail.gmail.com","threadId":"30046","inReplyTo":"201203241417.10478.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-24T16:09:28Z","receivedAt":"2012-03-24T16:09:28Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"Dear Jakub ,\n\n could you please suggest any other ideas or features so that i can\nthink upon them and come up with further good ideas.\n\nOn Sat, Mar 24, 2012 at 6:47 PM, Jakub Narebski <jnareb@gmail.com> wrote:\n> On Sat, 24 Mar 2012, Chaitanyaa Nalla wrote:\n>\n>> Hello everyone,\n>>\n>>  I am Chaitanya Nalla, a final year undergraduate student from India and I\n>> am pretty much interested in doing the project \"Adding javascript library /\n>> framework in gitweb\" suggested by respected Jakub.  I have good experience\n>> in javascript libraries like jQuery, Dojo etc. As per the goals of the\n>> project I will use the efficient, concise, cross browser compatible\n>> frameworks where ever needed.\n>\n> JavaScript library / framework is required not only to cover differences\n> between web browsers in DOM manipulation, event handling and Ajax with\n> XmlHttpRequest, but also add features which are still[1] lacking from\n> JavaScript such as handling cookies, formatting strings, date manipulation,\n> etc.\n>\n> Currently gitweb uses hand-crafted micro-library in `gitweb/static/js/lib/`\n> Using existing JavaScript library, be it jQuery (most popular), Dojo,\n> MooTools or YUI (probably too much for gitweb) will give us, as you said,\n> well tested code, and new abilities like client-side sorting of tables\n> which we would be able to use in further work.\n>\n> [1] http://www.nczonline.net/blog/2011/10/03/when-web-standards-fail-us/\n>\n>>                                Also I am planning to create a local library\n>> version with support for configuration and a good documentation.\n>\n> I don't quite understand what you mean here.  The JavaScript code specific\n> to gitweb would have to be modified to use chosen JavaScript library, but\n> I wouldn't say it is \"local library\".  I'd rather we use stock JavaScript\n> library, which would allow us to leverage existing CDNs like (for jQuery)\n>\n>  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\n>  http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js\n>  http://code.jquery.com/jquery-1.7.2.min.js\n>\n> We probably would ultimately need to be able to serve local fallback copy\n> (but this might be out of scope of GSoC project).\n>\n> This gitweb-specific JavaScript code (files in `gitweb/static/js/`)\n> is IMVHO quite well documented using JSDoc.\n>\n>> Using the DOM features of JavaScript and traversing the whole document\n>> object is quite cubersome and error prone, so I want to replace them using\n>> well tested libraries that are cross browser compatible.\n>\n> I think there is missing \"using hand-crafted code\" in this sentence\n> to make it sense.\n>\n>>\n>> Emulating onprogress in XMLHttpRequest :\n>>\n>> jQuery and YUI provide only statuses success and error.\n>\n> Right.\n>\n>> Even MooTools provide progress but are constrained to some browers\n>> only.\n>\n> To be more exact MooTools support 'onprogress' event handler only if\n> web browser supports it.  Not all do (e.g. older browsers), that is why\n> there is need for emulation using timers.\n>\n>> It can be handled by using $.ajax Transport utility .\n>\n> You mean in jQuery here, isn't it?  It would be a bit different, I think,\n> in MooTools or YUI.\n>\n> C.f. http://stackoverflow.com/questions/5652229/javascript-framework-with-or-easily-extendable-with-support-for-xmlhttprequest\n>\n>> I will also take care progressive enhancement, by carefully implementing the\n>> basic functionality of the gitweb so that what ever may be the browser\n>> version and type, internet connection the basic functionality will not\n>> disrupted.\n>\n> Errr... \"progressive enhancement\" is about using client-side scripting\n> in such way, that even if web browser doesn't support JavaScript\n> (e.g. text browsers such as lynx, elinks or w3m), or has JavaScript\n> turned off or blocked, we would get a basic functionality.\n>\n> Note also that \"progressive enhancement\" part applies only to writing\n> new features, and this is strictly 'as time permits' part, I think.\n> But I thin that you would need to lay more complete proposal, i.e.\n> what features are you planning to add.\n>\n> --\n> Jakub Narebski\n> Poland\n"},{"id":"187641","messageId":"CACeyogdUg4QnHjkYM5sKXJ7Wm9rOGgmhNrhqQxnrv24N530cVg@mail.gmail.com","threadId":"30046","inReplyTo":"CACeyoge7_=aigOnJiXvp=SfVaBVO+4Or_x7Jcnmw-3pj8+VtoA@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-24T16:48:03Z","receivedAt":"2012-03-24T16:48:03Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"ok,  first i will think and come up with good ideas and then ask you\nabout your suggestions :)\n\nOn Sat, Mar 24, 2012 at 9:39 PM, chaitanyaa nalla <nallachaitu@gmail.com> wrote:\n> Dear Jakub ,\n>\n>  could you please suggest any other ideas or features so that i can\n> think upon them and come up with further good ideas.\n>\n> On Sat, Mar 24, 2012 at 6:47 PM, Jakub Narebski <jnareb@gmail.com> wrote:\n>> On Sat, 24 Mar 2012, Chaitanyaa Nalla wrote:\n>>\n>>> Hello everyone,\n>>>\n>>>  I am Chaitanya Nalla, a final year undergraduate student from India and I\n>>> am pretty much interested in doing the project \"Adding javascript library /\n>>> framework in gitweb\" suggested by respected Jakub.  I have good experience\n>>> in javascript libraries like jQuery, Dojo etc. As per the goals of the\n>>> project I will use the efficient, concise, cross browser compatible\n>>> frameworks where ever needed.\n>>\n>> JavaScript library / framework is required not only to cover differences\n>> between web browsers in DOM manipulation, event handling and Ajax with\n>> XmlHttpRequest, but also add features which are still[1] lacking from\n>> JavaScript such as handling cookies, formatting strings, date manipulation,\n>> etc.\n>>\n>> Currently gitweb uses hand-crafted micro-library in `gitweb/static/js/lib/`\n>> Using existing JavaScript library, be it jQuery (most popular), Dojo,\n>> MooTools or YUI (probably too much for gitweb) will give us, as you said,\n>> well tested code, and new abilities like client-side sorting of tables\n>> which we would be able to use in further work.\n>>\n>> [1] http://www.nczonline.net/blog/2011/10/03/when-web-standards-fail-us/\n>>\n>>>                                Also I am planning to create a local library\n>>> version with support for configuration and a good documentation.\n>>\n>> I don't quite understand what you mean here.  The JavaScript code specific\n>> to gitweb would have to be modified to use chosen JavaScript library, but\n>> I wouldn't say it is \"local library\".  I'd rather we use stock JavaScript\n>> library, which would allow us to leverage existing CDNs like (for jQuery)\n>>\n>>  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\n>>  http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js\n>>  http://code.jquery.com/jquery-1.7.2.min.js\n>>\n>> We probably would ultimately need to be able to serve local fallback copy\n>> (but this might be out of scope of GSoC project).\n>>\n>> This gitweb-specific JavaScript code (files in `gitweb/static/js/`)\n>> is IMVHO quite well documented using JSDoc.\n>>\n>>> Using the DOM features of JavaScript and traversing the whole document\n>>> object is quite cubersome and error prone, so I want to replace them using\n>>> well tested libraries that are cross browser compatible.\n>>\n>> I think there is missing \"using hand-crafted code\" in this sentence\n>> to make it sense.\n>>\n>>>\n>>> Emulating onprogress in XMLHttpRequest :\n>>>\n>>> jQuery and YUI provide only statuses success and error.\n>>\n>> Right.\n>>\n>>> Even MooTools provide progress but are constrained to some browers\n>>> only.\n>>\n>> To be more exact MooTools support 'onprogress' event handler only if\n>> web browser supports it.  Not all do (e.g. older browsers), that is why\n>> there is need for emulation using timers.\n>>\n>>> It can be handled by using $.ajax Transport utility .\n>>\n>> You mean in jQuery here, isn't it?  It would be a bit different, I think,\n>> in MooTools or YUI.\n>>\n>> C.f. http://stackoverflow.com/questions/5652229/javascript-framework-with-or-easily-extendable-with-support-for-xmlhttprequest\n>>\n>>> I will also take care progressive enhancement, by carefully implementing the\n>>> basic functionality of the gitweb so that what ever may be the browser\n>>> version and type, internet connection the basic functionality will not\n>>> disrupted.\n>>\n>> Errr... \"progressive enhancement\" is about using client-side scripting\n>> in such way, that even if web browser doesn't support JavaScript\n>> (e.g. text browsers such as lynx, elinks or w3m), or has JavaScript\n>> turned off or blocked, we would get a basic functionality.\n>>\n>> Note also that \"progressive enhancement\" part applies only to writing\n>> new features, and this is strictly 'as time permits' part, I think.\n>> But I thin that you would need to lay more complete proposal, i.e.\n>> what features are you planning to add.\n>>\n>> --\n>> Jakub Narebski\n>> Poland\n"},{"id":"187646","messageId":"201203241949.04956.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyoge7_=aigOnJiXvp=SfVaBVO+4Or_x7Jcnmw-3pj8+VtoA@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-24T18:49:04Z","receivedAt":"2012-03-24T18:49:04Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Sat, 24 Mar 2012, chaitanyaa nalla wrote:\n\n> Dear Jakub ,\n> \n>  could you please suggest any other ideas or features so that i can\n> think upon them and come up with further good ideas.\n\nOne idea for additional feature that I have already mentioned, and which\nI have put on https://github.com/peff/git/wiki/SoC-2012-Ideas is\nclient-side sorting of tables, e.g. of list of all projects, a la\njQuery / MediaWiki (Wikipedia) \"sorttable\".\n\nAnother would be using deferreds or queues for interactive blame, so\nthat repainting (editing DOM) happens asynchronously to avoid locking\nup browser, like in \n  http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/\n\nThere was also some time ago a patch that added ability to mark a commit\nto compare current commit to (using JavaScript and cookies), to have an\nUI to compare arbitrary commits using 'commitdiff' view.  Or something\nsimilar to MediaWiki (Wikipedia) page history view. \n\n\nYet another would be support for graphical representation of history in\n'log', 'shortlog' and 'history' views e.g. using Raphael.js\n\nPerhaps it would be possible to employ some JavaScript syntax highlighter\nto pretty-print contents of 'blob' view.\n\n\nHope That Helps.\n\n\nP.S. You can see gitweb at work here:\n\n  http://git.kernel.org/?p=git/git.git\n  http://repo.or.cz/w/git.git\n-- \nJakub Narebski\nPoland\n"},{"id":"187647","messageId":"CACeyogenMu2HO9iDBGgGmg0QvtdxY5cKcuGEeMAwckJsEi9RbQ@mail.gmail.com","threadId":"30046","inReplyTo":"201203241949.04956.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-24T18:57:08Z","receivedAt":"2012-03-24T18:57:08Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"that's great ,thanks for your time and concern.I will carefully\nconsider each and every suggestion and approach you if i need any\nclarification .\n\nOn Sun, Mar 25, 2012 at 12:19 AM, Jakub Narebski <jnareb@gmail.com> wrote:\n> On Sat, 24 Mar 2012, chaitanyaa nalla wrote:\n>\n>> Dear Jakub ,\n>>\n>>  could you please suggest any other ideas or features so that i can\n>> think upon them and come up with further good ideas.\n>\n> One idea for additional feature that I have already mentioned, and which\n> I have put on https://github.com/peff/git/wiki/SoC-2012-Ideas is\n> client-side sorting of tables, e.g. of list of all projects, a la\n> jQuery / MediaWiki (Wikipedia) \"sorttable\".\n>\n> Another would be using deferreds or queues for interactive blame, so\n> that repainting (editing DOM) happens asynchronously to avoid locking\n> up browser, like in\n>  http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/\n>\n> There was also some time ago a patch that added ability to mark a commit\n> to compare current commit to (using JavaScript and cookies), to have an\n> UI to compare arbitrary commits using 'commitdiff' view.  Or something\n> similar to MediaWiki (Wikipedia) page history view.\n>\n>\n> Yet another would be support for graphical representation of history in\n> 'log', 'shortlog' and 'history' views e.g. using Raphael.js\n>\n> Perhaps it would be possible to employ some JavaScript syntax highlighter\n> to pretty-print contents of 'blob' view.\n>\n>\n> Hope That Helps.\n>\n>\n> P.S. You can see gitweb at work here:\n>\n>  http://git.kernel.org/?p=git/git.git\n>  http://repo.or.cz/w/git.git\n> --\n> Jakub Narebski\n> Poland\n"},{"id":"187670","messageId":"CACeyogdkEdkYa+SQvUq50FU5P7ohq-tLf8tgi1v6o_HMM5bSsg@mail.gmail.com","threadId":"30046","inReplyTo":"201203241949.04956.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-25T08:31:57Z","receivedAt":"2012-03-25T08:31:57Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"Dear Jakub,\n\n    if we handle the sorting of the tables on the client side itself\n,will that be a  load on the browser?\nOther ideas which i have in mind are\n\n1.Highligting matched portions of project name while searching the\nproject name ,even more intuitively\n2.project pagination.\n\nOn Sun, Mar 25, 2012 at 12:19 AM, Jakub Narebski <jnareb@gmail.com> wrote:\n> On Sat, 24 Mar 2012, chaitanyaa nalla wrote:\n>\n>> Dear Jakub ,\n>>\n>>  could you please suggest any other ideas or features so that i can\n>> think upon them and come up with further good ideas.\n>\n> One idea for additional feature that I have already mentioned, and which\n> I have put on https://github.com/peff/git/wiki/SoC-2012-Ideas is\n> client-side sorting of tables, e.g. of list of all projects, a la\n> jQuery / MediaWiki (Wikipedia) \"sorttable\".\n>\n> Another would be using deferreds or queues for interactive blame, so\n> that repainting (editing DOM) happens asynchronously to avoid locking\n> up browser, like in\n>  http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/\n>\n> There was also some time ago a patch that added ability to mark a commit\n> to compare current commit to (using JavaScript and cookies), to have an\n> UI to compare arbitrary commits using 'commitdiff' view.  Or something\n> similar to MediaWiki (Wikipedia) page history view.\n>\n>\n> Yet another would be support for graphical representation of history in\n> 'log', 'shortlog' and 'history' views e.g. using Raphael.js\n>\n> Perhaps it would be possible to employ some JavaScript syntax highlighter\n> to pretty-print contents of 'blob' view.\n>\n>\n> Hope That Helps.\n>\n>\n> P.S. You can see gitweb at work here:\n>\n>  http://git.kernel.org/?p=git/git.git\n>  http://repo.or.cz/w/git.git\n> --\n> Jakub Narebski\n> Poland\n"},{"id":"187688","messageId":"201203251955.21454.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyogdkEdkYa+SQvUq50FU5P7ohq-tLf8tgi1v6o_HMM5bSsg@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-25T17:55:19Z","receivedAt":"2012-03-25T17:55:19Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Sun, 25 Mar 2012, chaitanyaa nalla wrote:\n\n> Dear Jakub,\n> \n> if we handle the sorting of the tables on the client side itself,\n> will that be a  load on the browser?\n\nWell, if it turns out to be too heavy a load, we can use the same trick\nof \"timed array processing\":\n\n  http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/\n\nSee for example this page to see sorttable in action:\n\n  http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities\n\n> Other ideas which I have in mind are\n> \n> 1. Highligting matched portions of project name while searching the\n>    project name, even more intuitively\n\nYou probably couldn't have known that match highlighting in project\nsearch is done on server side by gitweb.cgi since commit 6759f95\n(Merge branch 'jn/gitweb-hilite-regions', 2012-03-04):\n\n  gitweb: Highlight matched part of shortened project description\n  gitweb: Highlight matched part of project description when searching projects\n  gitweb: Highlight matched part of project name when searching projects\n\nIt is not used by either git.kernel.org or repo.or.cz because it is\ntoo fresh (it is to be in yet to be released v1.7.10).\n\n> 2. project pagination.\n\nIs there any sense in pagination on client side?  Unless you turn it into\nlazy loading / loading on demand Ajax-y pagination...\n\n\nYet another idea is to implement creating side-by-side diff from unified\ndiff in JavaScript, so that swicthing between unified and side-by-side\ndiff view could be done entirely client-side, without hitting the server.\n\n\nNote however that I think that it wouldn't be possible in time given to\nimplement all those ideas.  You need to select those of them that you\nwill put in project application.\n\n-- \nJakub Narebski\nPoland\n"},{"id":"187689","messageId":"CACeyogdCsFZEqmm057ZMcCYRuxiZ2-yfcV9+e1AdOOhTjne8vA@mail.gmail.com","threadId":"30046","inReplyTo":"201203251955.21454.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-25T18:08:32Z","receivedAt":"2012-03-25T18:08:32Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"Dear Jakub,\n\nthanks again.\n creating side-by-side diff from unified  diff in JavaScript, so that\nswicthing between unified and side-by-side\n diff view  could be done entirely client-side, without hitting the server\ncould you please elaborate on this , i didn't understand this completley.\n\nOn Sun, Mar 25, 2012 at 11:25 PM, Jakub Narebski <jnareb@gmail.com> wrote:\n> On Sun, 25 Mar 2012, chaitanyaa nalla wrote:\n>\n>> Dear Jakub,\n>>\n>> if we handle the sorting of the tables on the client side itself,\n>> will that be a  load on the browser?\n>\n> Well, if it turns out to be too heavy a load, we can use the same trick\n> of \"timed array processing\":\n>\n>  http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/\n>\n> See for example this page to see sorttable in action:\n>\n>  http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities\n>\n>> Other ideas which I have in mind are\n>>\n>> 1. Highligting matched portions of project name while searching the\n>>    project name, even more intuitively\n>\n> You probably couldn't have known that match highlighting in project\n> search is done on server side by gitweb.cgi since commit 6759f95\n> (Merge branch 'jn/gitweb-hilite-regions', 2012-03-04):\n>\n>  gitweb: Highlight matched part of shortened project description\n>  gitweb: Highlight matched part of project description when searching projects\n>  gitweb: Highlight matched part of project name when searching projects\n>\n> It is not used by either git.kernel.org or repo.or.cz because it is\n> too fresh (it is to be in yet to be released v1.7.10).\n>\n>> 2. project pagination.\n>\n> Is there any sense in pagination on client side?  Unless you turn it into\n> lazy loading / loading on demand Ajax-y pagination...\n>\n>\n> Yet another idea is to implement creating side-by-side diff from unified\n> diff in JavaScript, so that swicthing between unified and side-by-side\n> diff view could be done entirely client-side, without hitting the server.\n>\n>\n> Note however that I think that it wouldn't be possible in time given to\n> implement all those ideas.  You need to select those of them that you\n> will put in project application.\n>\n> --\n> Jakub Narebski\n> Poland\n"},{"id":"187696","messageId":"201203260244.23556.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyogdCsFZEqmm057ZMcCYRuxiZ2-yfcV9+e1AdOOhTjne8vA@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-26T00:44:22Z","receivedAt":"2012-03-26T00:44:22Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Sun, 25 Mar 2012, chaitanyaa nalla wrote:\n\n> \"creating side-by-side diff from unified  diff in JavaScript, so that\n>  switching between unified and side-by-side diff view  could be done\n>  entirely client-side, without hitting the server\"\n>\n>  could you please elaborate on this, I didn't understand this completly. \n\nSide-by-side diff is a new gitweb feature, available in v.7.9 (since\ncommit 6ba1eb5 (gitweb: Add a feature to show side-by-side diff, 2011-10-31))\n\nBoth git.kernel.org and repo.or.cz are based on an older version of\ngitweb.  You need to install gitweb to test this (and perhaps git-instaweb\nfor easier HTML preview).\n\nIn short: unified diff like this:\n\n  @@ -119,8 +119,8 @@ UI, Workflows & Features\n   ctx\n  -foo\n  +bar\n\nis turned into side-by-side diff:\n\n   ctx                    ctx\n  -foo                   +bar\n\nCommit  6ae683c (gitweb: Add navigation to select side-by-side diff,\n2011-10-31) allows switching between unified and side-by-side diff;\nthe goal of this feature would be to make it client-side (hijacking\nthe link).\n\n-- \nJakub Narebski\nPoland\n"},{"id":"187855","messageId":"CACeyogd4NBto3SRU-0uCPzpUiVyEJpA=giEc7zvsZ06b-m9b0Q@mail.gmail.com","threadId":"30046","inReplyTo":"CACeyogdhChrGe-k+VLkAzq1F9U1TFYsCN5Kc_u7jAwRhaz+fJQ@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-27T14:55:04Z","receivedAt":"2012-03-27T14:55:04Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"On Tue, Mar 27, 2012 at 8:23 PM, chaitanyaa nalla <nallachaitu@gmail.com> wrote:\n>>There was also some time ago a patch that added ability to mark a commit\n>>to compare current commit to (using JavaScript and cookies), to have an\n>> UI to compare arbitrary commits using 'commitdiff' view.  Or something\n>> similar to MediaWiki (Wikipedia) page history view.\n>\n> Hey jakub,\n> will that patch be included in future version , if it is the case can\n> i consider implementing with some enhancements??\n>\n>\n>\n> On Sun, Mar 25, 2012 at 11:25 PM, Jakub Narebski <jnareb@gmail.com> wrote:\n>> On Sun, 25 Mar 2012, chaitanyaa nalla wrote:\n>>\n>>> Dear Jakub,\n>>>\n>>> if we handle the sorting of the tables on the client side itself,\n>>> will that be a  load on the browser?\n>>\n>> Well, if it turns out to be too heavy a load, we can use the same trick\n>> of \"timed array processing\":\n>>\n>>  http://www.nczonline.net/blog/2009/08/11/timed-array-processing-in-javascript/\n>>\n>> See for example this page to see sorttable in action:\n>>\n>>  http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities\n>>\n>>> Other ideas which I have in mind are\n>>>\n>>> 1. Highligting matched portions of project name while searching the\n>>>    project name, even more intuitively\n>>\n>> You probably couldn't have known that match highlighting in project\n>> search is done on server side by gitweb.cgi since commit 6759f95\n>> (Merge branch 'jn/gitweb-hilite-regions', 2012-03-04):\n>>\n>>  gitweb: Highlight matched part of shortened project description\n>>  gitweb: Highlight matched part of project description when searching projects\n>>  gitweb: Highlight matched part of project name when searching projects\n>>\n>> It is not used by either git.kernel.org or repo.or.cz because it is\n>> too fresh (it is to be in yet to be released v1.7.10).\n>>\n>>> 2. project pagination.\n>>\n>> Is there any sense in pagination on client side?  Unless you turn it into\n>> lazy loading / loading on demand Ajax-y pagination...\n>>\n>>\n>> Yet another idea is to implement creating side-by-side diff from unified\n>> diff in JavaScript, so that swicthing between unified and side-by-side\n>> diff view could be done entirely client-side, without hitting the server.\n>>\n>>\n>> Note however that I think that it wouldn't be possible in time given to\n>> implement all those ideas.  You need to select those of them that you\n>> will put in project application.\n>>\n>> --\n>> Jakub Narebski\n>> Poland\n"},{"id":"187884","messageId":"201203272114.33122.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyogdhChrGe-k+VLkAzq1F9U1TFYsCN5Kc_u7jAwRhaz+fJQ@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-27T19:14:32Z","receivedAt":"2012-03-27T19:14:32Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Tue, 27 Mar 2012, chaitanyaa nalla wrote:\n> Jakub Narebski wrote:\n\n> > There was also some time ago a patch that added ability to mark a commit\n> > to compare current commit to (using JavaScript and cookies), to have an\n> > UI to compare arbitrary commits using 'commitdiff' view.  Or something\n> > similar to MediaWiki (Wikipedia) page history view.\n> \n> Hey jakub,\n>\n> Will that patch be included in future version, if it is the case can\n> i consider implementing with some enhancements??\n \nThis idea is in my TODO list for gitweb, but I don't have specific plans\non when it would be implemented (if at all).\n\nP.S. Please leave only relevant part of cited (quoted) response.  Thanks\nin advance.\n-- \nJakub Narebski\nPoland\n"},{"id":"187892","messageId":"CACeyoge5iVAEebwj8NHo9VF=OO10M4sG4WegngBqr6qnsYvjQQ@mail.gmail.com","threadId":"30046","inReplyTo":"201203272114.33122.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-27T20:35:18Z","receivedAt":"2012-03-27T20:35:18Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"Dear Jakub,\n\nI prepared a schedule for gsoc ,please take a look and suggest me in\ncase if you feel some tasks couldn't be completed with in indicated\ntime .\n\nWeek 1  understanding how the whole gitweb and related server side\nscripts are implemented , their design philosophy , coding standards ,\ndocumentation standards to maintain the best practise coding\npractices.  Brainstorming sessions regarding which libraries to use on\nspecific scenarios by keeping many criteria’s in mind and creating an\nabstract design on the additional features  that have to be added.\nWeek 2  Improving Javascript browser detection and incremental blame.\nWeek 3 Improving UI of adjusting timezone by deciding which library /\nframework to use on UI.\nWeek 4 & 5 design and implementation of client side sorting of tables\nand client side syntax highlighting of the blob view by handling how\ngit web splits the output into lines and providing line numbers.\nWeek 6  testing the code robustly on as many browsers as possible\n(with their versions) and documenting the code neatly .\nMidTerm Delivarables : Improving javascript browser detection,\nincremental blame,ui of adjusting timezone .Adding client side sorting\nof tables and client side syntax highlighting of blob view .\nWeek 7 & 8 Using deferrands or queues in the interactive blame to\navoid the editing of DOM which happens asynchronously to avoid\nlocking and automatic extending of clickable area for places where the\nlink is constrained to a single cell or of that type.\nWeek 9 & 10 & 11 design and implementation support for graphical\nrepresentation of history in log ,shortlog and history using Raphael\njavascript library, adding UI to compare arbitrary commits in the page\nusing commitdiff view similar to MediaWiki page history view and\ncreating a side by side diff from unified diff in javascript so that\nswitching between unified diff and side by side diff could be handled\non client side.\nWeek 12  documentation , writing a detail report , testing\nexhaustively and checking whether the written code follows the\ncharacteristics .\nNote: considerable amount of time will be spent each week\nconcentrating on design for adding a new feature since its design\ngreatly affects many things.\n\nThanks in advance.\n\nyours sincerely,\nchaitanya nalla.\n\n\nOn Wed, Mar 28, 2012 at 12:44 AM, Jakub Narebski <jnareb@gmail.com> wrote:\n> On Tue, 27 Mar 2012, chaitanyaa nalla wrote:\n>> Jakub Narebski wrote:\n>\n>> > There was also some time ago a patch that added ability to mark a commit\n>> > to compare current commit to (using JavaScript and cookies), to have an\n>> > UI to compare arbitrary commits using 'commitdiff' view.  Or something\n>> > similar to MediaWiki (Wikipedia) page history view.\n>>\n>> Hey jakub,\n>>\n>> Will that patch be included in future version, if it is the case can\n>> i consider implementing with some enhancements??\n>\n> This idea is in my TODO list for gitweb, but I don't have specific plans\n> on when it would be implemented (if at all).\n>\n> P.S. Please leave only relevant part of cited (quoted) response.  Thanks\n> in advance.\n> --\n> Jakub Narebski\n> Poland\n"},{"id":"187924","messageId":"201203281238.49171.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyoge5iVAEebwj8NHo9VF=OO10M4sG4WegngBqr6qnsYvjQQ@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-28T10:38:48Z","receivedAt":"2012-03-28T10:38:48Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Tue, 27 Mar 2012, chaitanyaa nalla wrote:\n\n> Dear Jakub,\n> \n> I prepared a schedule for gsoc ,please take a look and suggest me in\n> case if you feel some tasks couldn't be completed with in indicated\n> time .\n> \n> Week 1  understanding how the whole gitweb and related server side\n> scripts are implemented , their design philosophy , coding standards ,\n> documentation standards to maintain the best practise coding\n> practices.\n\nI think you need to at least skim the JavaScript part of gitweb code\nto be able to create a decent proposal.\n\n> Brainstorming sessions regarding which libraries to use on \n> specific scenarios by keeping many criteria’s in mind and creating an\n> abstract design on the additional features  that have to be added.\n\nI think it would be a good idea to propose JavaScript library / framework\nto use for client-side scripting in gitweb (jQuery, MooTools, Dojo, YUI),\nexplaining shortly why this one and not other (popularity, \"weight\", your\nknowledge, etc.).  Though perhaps not commit to said library.\n\nYou say \"libraries\", but I think gitweb should use single JavaScript\nlibrary, perhaps with exception of specialized libraries or plugins for\nextra stuff like Raphael.js for drawing.\n\nAlso here or later there should be time for short discussion about\nmarrying use of external JavaScript library to gitweb.perl script and\nto our build system (gitweb/Makefile).\n\n> Week 2  Improving Javascript browser detection and incremental blame.\n\nErrr... gitweb does not employ browser detection.  Well, at least not\nin strict sense; it does employ some feature detection e.g. to create\nXmlHttpRequest -- but that is what library is for, it is assumed to do\ncross-browser behavior for us.\n\nAnyway improving existing features, and adding new features should be\nmuch later.  The very first thing is to transform existing code (JavaScript\ndetection, adjusting timezones and incremental blame) from hand written\nJavaScript to using JavaScript library, incrementally if possible, and\nremoving our own mini-library in `gitweb/static/js/lib/`.\n\n[...]\n> Week 3 Improving UI of adjusting timezone by deciding which library /\n> framework to use on UI.\n\nI don't think timezone select UI needs much improvement.  \n\nAnyway I think that we would either use library, or UI addons for library\n(like jQuery UI if you choose jQuery), or plugins for library.\n\n> Week 4 & 5 design and implementation of client side sorting of tables\n\nThat should be fairly easy (though I am not sure if \"1 week\" easy).\nThis is what \"sorttable\" does in jQuery and I guess also other libraries\n(built-in or via plugin); what needs to be adjusted is replacing or \noverriding (perhaps via onclick handler) links to server-side sorting\nby trigger to client-side sorting.  Keeping table zebra-colored might\nbe a problem, but I think JavaScript libraries solved that already.\n\n> and client side syntax highlighting of the blob view by handling how\n> git web splits the output into lines and providing line numbers.\n\nThat can be hard, and here there might be question of choosing separate\nlibrary for JavaScript-based source highlighting.  There is also a \nquestion of integrating it with server-side source highlighting (turning\noff JS-based if server side already does syntax highlighting, and using\nthe same CSS).\n\n> Week 6  testing the code robustly on as many browsers as possible\n> (with their versions) and documenting the code neatly .\n\nThis is a good idea.\n\n> MidTerm Delivarables : Improving javascript browser detection,\n> incremental blame,ui of adjusting timezone .Adding client side sorting\n> of tables and client side syntax highlighting of blob view .\n\nI would be happy if at midterms you would have existing JavaScript\nfeatures ported to JavaScript library, without adding any new features\nor extending existing ones.\n\n> Week 7 & 8 Using deferrands or queues in the interactive blame to\n> avoid the editing of DOM which happens asynchronously to avoid\n> locking\n\nO.K.  You will have to check chosen JavaScript library documentation\nfor its name for such things; different libraries uses different names\nfor asynchronous processing helpers.\n\nThis might be hard part, but if you think you can do it in week\nor two...\n\n> and automatic extending of clickable area for places where the \n> link is constrained to a single cell or of that type.\n\nNice.  This also means that on server side we can remove link within\nlink (which does not work in some overly strict web browsers), but\nthis server-side change doesn't need to be done by you.\n\n> Week 9 & 10 & 11 design and implementation support for graphical\n> representation of history in log ,shortlog and history using Raphael\n> javascript library, adding UI to compare arbitrary commits in the page\n> using commitdiff view similar to MediaWiki page history view and\n> creating a side by side diff from unified diff in javascript so that\n> switching between unified diff and side by side diff could be handled\n> on client side.\n\nO.K., though graphical representation of history might be harder than\nthat (than allowed 1 week or 2).\n\nSide-by-side diff is just porting from Perl to JavaScript.\n\n> Week 12  documentation , writing a detail report , testing\n> exhaustively and checking whether the written code follows the\n> characteristics .\n> Note: considerable amount of time will be spent each week\n> concentrating on design for adding a new feature since its design\n> greatly affects many things.\n\n-- \nJakub Narebski\nPoland\n"},{"id":"187961","messageId":"CACeyogf_ssqS6LdiYiopkh8UYGiBw5Cm06e-sut_y33cimiMJQ@mail.gmail.com","threadId":"30046","inReplyTo":"201203281238.49171.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-28T18:05:09Z","receivedAt":"2012-03-28T18:05:09Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"i forgot to add this feature to employ javascript syntax highlighter\nto pretty-print contents of the blob view.Here are my views regarding\nwhich library to use . i want to stick to one or two libraries as i\ndont want to  mix things  up which is a bad practise.\n\nfor DOM manipulation jquery is better than others.\nfor graphics representation raphael library or Dojo is better.\nif one need robust Object oriented platform , Dojo is better.\nBased on popularity , light weighted library jquery is pretty famous\nbecause of its simplicity and power ,it got added advantage that\nmicrosoft Asp.net and nokia are supporting it.\nYUI is modular .\nmootools lets have us our own way .. http://jqueryvsmootools.com/\nplease take a look at this Link.\nhttp://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks.\n\nBased on the goal of the project , i would prefer jquery as it is well\ntested ,robust , simple to use , widely popular,good support for DOM\nmanipulating , fast(performance) in most cases , even though for\ngraphics i would go for raphael as it have clean and neat api similar\nto jquery , it has good graphics support.\n\nplease enlighten me if i'm going on the wrong track.  I am sure you will :)\n\nOn Wed, Mar 28, 2012 at 4:08 PM, Jakub Narebski <jnareb@gmail.com> wrote:\n> On Tue, 27 Mar 2012, chaitanyaa nalla wrote:\n>\n>> Dear Jakub,\n>>\n>> I prepared a schedule for gsoc ,please take a look and suggest me in\n>> case if you feel some tasks couldn't be completed with in indicated\n>> time .\n>>\n>> Week 1  understanding how the whole gitweb and related server side\n>> scripts are implemented , their design philosophy , coding standards ,\n>> documentation standards to maintain the best practise coding\n>> practices.\n>\n> I think you need to at least skim the JavaScript part of gitweb code\n> to be able to create a decent proposal.\n>\n>> Brainstorming sessions regarding which libraries to use on\n>> specific scenarios by keeping many criteria’s in mind and creating an\n>> abstract design on the additional features  that have to be added.\n>\n> I think it would be a good idea to propose JavaScript library / framework\n> to use for client-side scripting in gitweb (jQuery, MooTools, Dojo, YUI),\n> explaining shortly why this one and not other (popularity, \"weight\", your\n> knowledge, etc.).  Though perhaps not commit to said library.\n>\n> You say \"libraries\", but I think gitweb should use single JavaScript\n> library, perhaps with exception of specialized libraries or plugins for\n> extra stuff like Raphael.js for drawing.\n>\n> Also here or later there should be time for short discussion about\n> marrying use of external JavaScript library to gitweb.perl script and\n> to our build system (gitweb/Makefile).\n>\n>> Week 2  Improving Javascript browser detection and incremental blame.\n>\n> Errr... gitweb does not employ browser detection.  Well, at least not\n> in strict sense; it does employ some feature detection e.g. to create\n> XmlHttpRequest -- but that is what library is for, it is assumed to do\n> cross-browser behavior for us.\n>\n> Anyway improving existing features, and adding new features should be\n> much later.  The very first thing is to transform existing code (JavaScript\n> detection, adjusting timezones and incremental blame) from hand written\n> JavaScript to using JavaScript library, incrementally if possible, and\n> removing our own mini-library in `gitweb/static/js/lib/`.\n>\n> [...]\n>> Week 3 Improving UI of adjusting timezone by deciding which library /\n>> framework to use on UI.\n>\n> I don't think timezone select UI needs much improvement.\n>\n> Anyway I think that we would either use library, or UI addons for library\n> (like jQuery UI if you choose jQuery), or plugins for library.\n>\n>> Week 4 & 5 design and implementation of client side sorting of tables\n>\n> That should be fairly easy (though I am not sure if \"1 week\" easy).\n> This is what \"sorttable\" does in jQuery and I guess also other libraries\n> (built-in or via plugin); what needs to be adjusted is replacing or\n> overriding (perhaps via onclick handler) links to server-side sorting\n> by trigger to client-side sorting.  Keeping table zebra-colored might\n> be a problem, but I think JavaScript libraries solved that already.\n>\n>> and client side syntax highlighting of the blob view by handling how\n>> git web splits the output into lines and providing line numbers.\n>\n> That can be hard, and here there might be question of choosing separate\n> library for JavaScript-based source highlighting.  There is also a\n> question of integrating it with server-side source highlighting (turning\n> off JS-based if server side already does syntax highlighting, and using\n> the same CSS).\n>\n>> Week 6  testing the code robustly on as many browsers as possible\n>> (with their versions) and documenting the code neatly .\n>\n> This is a good idea.\n>\n>> MidTerm Delivarables : Improving javascript browser detection,\n>> incremental blame,ui of adjusting timezone .Adding client side sorting\n>> of tables and client side syntax highlighting of blob view .\n>\n> I would be happy if at midterms you would have existing JavaScript\n> features ported to JavaScript library, without adding any new features\n> or extending existing ones.\n>\n>> Week 7 & 8 Using deferrands or queues in the interactive blame to\n>> avoid the editing of DOM which happens asynchronously to avoid\n>> locking\n>\n> O.K.  You will have to check chosen JavaScript library documentation\n> for its name for such things; different libraries uses different names\n> for asynchronous processing helpers.\n>\n> This might be hard part, but if you think you can do it in week\n> or two...\n>\n>> and automatic extending of clickable area for places where the\n>> link is constrained to a single cell or of that type.\n>\n> Nice.  This also means that on server side we can remove link within\n> link (which does not work in some overly strict web browsers), but\n> this server-side change doesn't need to be done by you.\n>\n>> Week 9 & 10 & 11 design and implementation support for graphical\n>> representation of history in log ,shortlog and history using Raphael\n>> javascript library, adding UI to compare arbitrary commits in the page\n>> using commitdiff view similar to MediaWiki page history view and\n>> creating a side by side diff from unified diff in javascript so that\n>> switching between unified diff and side by side diff could be handled\n>> on client side.\n>\n> O.K., though graphical representation of history might be harder than\n> that (than allowed 1 week or 2).\n>\n> Side-by-side diff is just porting from Perl to JavaScript.\n>\n>> Week 12  documentation , writing a detail report , testing\n>> exhaustively and checking whether the written code follows the\n>> characteristics .\n>> Note: considerable amount of time will be spent each week\n>> concentrating on design for adding a new feature since its design\n>> greatly affects many things.\n>\n> --\n> Jakub Narebski\n> Poland\n"},{"id":"188047","messageId":"201203291114.15284.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyogf_ssqS6LdiYiopkh8UYGiBw5Cm06e-sut_y33cimiMJQ@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-29T09:14:10Z","receivedAt":"2012-03-29T09:14:10Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Please remove those parts of quoted (cited) message that are irrelevant\nto your response.  Try to not top-post, either.\n\nOn Wed, 28 Mar 2012, chaitanyaa nalla wrote:\n\n> I forgot to add this feature to employ JavaScript syntax highlighter\n> to pretty-print contents of the blob view.\n\nO.K.  Anyway, I think adding this feature is optional, as time permits;\nespecially that it is, I think, not easy.\n\n> Here are my views regarding which JavaScript library to use.\n> I want to stick to one or two libraries, as I don't want to\n> mix things up which is a bad practise.\n\nThis is a good idea.\n\n> For DOM manipulation jQuery is better than others.\n> For graphics representation Raphael library or Dojo is better.\n> If one need robust Object Oriented platform, Dojo is better.\n> Based on popularity, light weight jQuery library is pretty famous\n> because of its simplicity and power, it got added advantage that\n> Microsoft's ASP.Net and Nokia are supporting it.\n> YUI is modular.\n> MooTools lets have us our own way .. http://jqueryvsmootools.com/\n> Please take a look at this link:\n>\n>    http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks.\n\nWhat is lacking in above description and comparison of various \nJavaScript frameworks is note about *your familiarity* with said \nlibraries.\n\n> Based on the goal of the project, I would prefer jQuery as it is well\n> tested, robust, simple to use, widely popular, has good support for\n> DOM manipulating, is fast (performance) in most cases.\n\nAdditional advantage is that there are many CDN (Content Delivery\nNetwork) for jQuery that one can use.\n\nI also think that for gitweb, where goal is to enhance its views\n(rather than creating JavaScript app like e.g. GMail or Google Docs),\nlightweight and popular jQuery library might be a best choice.\n\n> Though for graphics I would go for Raphael.js, as it has clean\n> and neat API similar to jQuery, and it has good graphics support.\n\nWell, if there is time for adding client-side graphical history view\nto gitweb, Raphael.js seems like a good choice.  But I am afraid that\nthis feature it as large as separate GSoC project.\n\n\nP.S. Another source of inspiration for JavaScript usage in gitweb might\nbe git-browser project.  Just FYI.\n\n-- \nJakub Narebski\nPoland\n"},{"id":"188089","messageId":"CACeyogcCGhqcQp98JFJVntP9=BvX0TkMWA5JPj7At0bxPwvmfQ@mail.gmail.com","threadId":"30046","inReplyTo":"201203291114.15284.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanyaa nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-03-29T18:37:55Z","receivedAt":"2012-03-29T18:37:55Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":" adding UI to compare arbitrary commits in the page\n using commitdiff view similar to MediaWiki page history view.\n\ncould you please tell me a rough estimate of how much time can it be\ncompleted? I am expecting to complete it with in 1 week.\n"},{"id":"188155","messageId":"201203301456.13965.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyogeh7SSfx5NPFSt=gDdUzrUj0zxQKh84MDA-dW2e7UNGcw@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-30T12:56:13Z","receivedAt":"2012-03-30T12:56:13Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Thu, 29 Mar 2012, chaitanyaa nalla wrote:\n> Jakub Narebski wrote:\n\n> > Another source of inspiration for JavaScript usage in gitweb might\n> > be git-browser project.  Just FYI.\n> \n> Dear Jakub,\n> \n> please tell me more about this idea , it is interesting :)\n\n\ngit-browser is an experimental gitk-like web interface which was developed\nin December 2005 by Artem Khodush <greenkaa@gmail.com> and then largely\nforgotten and abandoned.  User interface is done in JavaScript, and is\nrather heavy on the client side.  Server-side scripting is done in Perl\n(and uses gitweb IIRC).\n\n  https://git.wiki.kernel.org/articles/i/n/t/Interfaces,_frontends,_and_tools.html#git-browser\n  http://repo.or.cz/gitweb.cgi/git-browser.git\n\nI don't think there is existing demo deployment remaining...\n\n-- \nJakub Narebski\nPoland\n"},{"id":"188156","messageId":"201203301529.20942.jnareb@gmail.com","threadId":"30046","inReplyTo":"CACeyogcCGhqcQp98JFJVntP9=BvX0TkMWA5JPj7At0bxPwvmfQ@mail.gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-30T13:29:20Z","receivedAt":"2012-03-30T13:29:20Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Thu, 29 Mar 2012, chaitanyaa nalla wrote:\n> Jakub Narebski wrote:\n\n>>  adding UI to compare arbitrary commits in the page\n>>  using commitdiff view similar to MediaWiki page history view.\n> \n> could you please tell me a rough estimate of how much time can it be\n> completed? I am expecting to complete it with in 1 week.\n\nWell, the goal is to add an UI to the existing gitweb ability of\nshowing (commit)diff between two arbitrary commits.\n\n\nOne solution would be to make use (perhaps only as inspiration) of\nMartin Koegler <mkoegler@auto.tuwien.ac.at> patch from 2007:\n\n  [PATCH 5/7] gitweb: Prototyp for selecting diffs in JavaScript\n  http://thread.gmane.org/gmane.comp.version-control.git/44517/focus=44523\n\n\nAnother would be create in 'log' or 'shortlog' view ability to\ndiff between arbitrary commits, similar to MediaWiki (and other wikis)\npage history view, e.g.:\n\n  http://en.wikipedia.org/w/index.php?title=JQuery&action=history\n\nOr you can take GitHub as source of inspiration.\n\nAnyway any solution extending or creating a new log-like view will\nrequire server-side changes, therefore I think 1 week might be a bit\ntoo optimistic.\n\n-- \nJakub Narebski\nPoland\n"},{"id":"188276","messageId":"CACeyoge0ynCdTJtLWr2DES7r5C8L_QZy=C8EJNnd2HXwft=jtw@mail.gmail.com","threadId":"30046","inReplyTo":"201203301529.20942.jnareb@gmail.com","subject":"Re: GSoC idea: adding JavaScript library / framework in gitweb","fromName":"chaitanya nalla","fromEmail":"nallachaitu@gmail.com","sentAt":"2012-04-01T09:47:54Z","receivedAt":"2012-04-01T09:47:54Z","isPatch":false,"sender":{"key":"nallachaitu@gmail.com","avatar":"https://gravatar.com/avatar/c9a4123cd12065ef283d9e90fe2425fd98b8217acb0ef20ad6c2529b9d692e62?d=mp&s=160"},"body":"Dear jakub,\n\nI have changed schedule based on the good suggetions given by you.\nplease look at it.\n\nBefore May 21st  interacting with the beloved community members and\nget familiarize  with the code base.\nWeek 1  Gaining a proper understanding regarding how various are\nimplemented , their design philosophy , coding standards ,\ndocumentation standards to maintain the best  coding practices\n.Detailed discussions on which  JavaScript library / framework to use\nfor client-side scripting in gitweb (jQuery, MooTools, Dojo, YUI)\nbased on several criteria.(as you mentioned , a short paragraph\ndescribing which framework to use is also added)\nWeek 2   Transform existing code of JavaScript detection, adjusting\ntimezones and from hand written JavaScript to using JavaScript\nlibrary,improving their features wherever possible, incrementally  and\nremoving the  mini-library in `gitweb/static/js/lib/` by  proper\ndesign and analysis.\n\nWeek 3 transform the existing code of incremental blame and improving\nits features wherever possible by proper design and analysis\nWeek 4 & 5 design and implementation of client side sorting of tables\nand client side syntax highlighting of the blob view by handling how\ngit web splits the output into lines and providing line numbers.\nThere is also a question of integrating it with server-side source\nhighlighting (turning off JS-based if server side already does syntax\nhighlighting, and using\nthe same CSS).\nWeek 6  testing the code robustly on as many browsers as possible\n(with their versions) and documenting the code neatly .If possible\nautomated testing will also be done using selenium web driver.\nMidTerm Delivarables : Transform existing code of JavaScript\ndetection, adjusting timezones and from hand written JavaScript to\nusing JavaScript library,improving their features wherever possible,\nincrementally  and removing the  mini-library in\n`gitweb/static/js/lib/` by  proper design and analysis. Adding client\nside sorting of tables and client side syntax highlighting of blob\nview .\nWeek 7 & 8 Using deferrands or queues in the interactive blame to\navoid the editing of DOM which happens asynchronously to avoid\nlocking and automatic extending of clickable area for places where the\nlink is constrained to a single cell or of that type.\nWeek 9 & 10 & 11 adding user interface  to compare arbitrary commits\nin the page using commitdiff view similar to MediaWiki page history\nview . Creating a side by side diff from unified diff in javascript so\nthat switching between unified diff and side by side diff could be\nhandled on client side.\nWeek 12  documentation , writing a detail report , testing\nexhaustively and checking whether the written code follows the best\ncoding practises and good design.\nNote: considerable amount of time will be spent each week\nconcentrating on design for adding a new feature since its design\ngreatly affects many things.\n"}]}