<div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;white-space:normal;display:block!important;font-size:13px;font-family:Arial,sans-serif;line-height:17px;padding-top:1px;padding-right:10px;padding-bottom:8px;padding-left:1px;overflow-x:hidden;overflow-y:hidden;background-image:url('data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')">
<div id="magicdomid2" class="" style="padding-right:1px"><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;white-space:normal;display:block!important;font-size:13px;font-family:Arial,sans-serif;line-height:17px;padding-top:1px;padding-right:10px;padding-bottom:8px;padding-left:1px;overflow-x:hidden;overflow-y:hidden;background-image:url('data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')">
<div id="magicdomid2192" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">Dear Mailing list,</span></div><div id="magicdomid2193" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2194" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">Here is the third report on improving the online package review</span></div><div id="magicdomid2195" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">interface for <a href="http://mentors.debian.net">mentors.debian.net</a> (debexpo),</span></div><div id="magicdomid2196" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2197" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">_So what's done yet?_</span></div><div id="magicdomid2198" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2199" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">__Code Browser__</span></div><div id="magicdomid2200" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2201" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">___source viewer___</span></div><div id="magicdomid2202" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> The first work and the most interesting work was on creating the</span></div><div id="magicdomid2203" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">code browser for the source browser, I started by looking at what</span></div>
<div id="magicdomid2204" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">exists online, I saw the github code browser... uh. a lot of JS,</span></div><div id="magicdomid2205" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">HTML5 features, sometimes not valid, I found there a lot of Ideas</span></div><div id="magicdomid2206" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">and a lot of errors to avoid.</span></div>
<div id="magicdomid2207" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> The first try was a table with one column for line number</span></div><div id="magicdomid2208" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">and one other for code but.. when you try to select code you select</span></div><div id="magicdomid2209" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">lines number too. Bad Idea.. I try to fix that using magic JS but that wasn't</span></div>
<div id="magicdomid2210" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">working.</span></div><div id="magicdomid2211" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> I looked again at git hub and I use the same trick, a table with</span></div>
<div id="magicdomid2212" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">2 column and only 1 lines and then <pre> will make the work for line</span></div><div id="magicdomid2213" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2214" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">___files viewer___</span></div><div id="magicdomid2215" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> The tree viewer uses the same engine as the source viewer.</span></div><div id="magicdomid2215" class="ace-line" style="padding-right:1px">The backend just generates a special file with links to the contents</div>
<div id="magicdomid2215" class="ace-line" style="padding-right:1px">of the directory to be rendered. Currently, it uses the absolute path</div><div id="magicdomid2215" class="ace-line" style="padding-right:1px">to the file (like /var/www/foo) it may not be the best thing</div>
<div id="magicdomid2215" class="ace-line" style="padding-right:1px">to show but it will be fixed soon.</div><div id="magicdomid2216" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> Comments will work here too, if someone has the strange idea o</span>f</div>
<div id="magicdomid2216" class="ace-line" style="padding-right:1px">commenting the name</div><div id="magicdomid2217" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">of a file.. (this could also be used for general comments about a file)</span></div>
<div id="magicdomid2218" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2219" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">___syntax Highlighting___</span></div>
<div id="magicdomid2220" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> table was done, I needed to find some code and have some syntax</span></div><div id="magicdomid2221" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">Highlighting, I first tried to imagine how I could make it, using a lot</span></div><div id="magicdomid2222" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">of regex and string parsers and also switch-that-doesn't-exist-in-python.</span></div>
<div id="magicdomid2223" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I spent 10 minutes on that and I asked on IRC, they told me to look</span></div><div id="magicdomid2224" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">at python-pygments, which is a nice python syntax highlighting library that</span></div><div id="magicdomid2225" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">produces clear html. You can choose almost all the options you need, it's perfect.</span></div>
<div id="magicdomid2226" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> Pygments works fine, the .html file is ready, so now was time to integrate it</span></div><div id="magicdomid2226" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">with pylons. I make a template from the .html file and I add pylons and mako requirement,</span></div><div id="magicdomid2227" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">I create something to read pygments' work. A lot of troubles began here: </span></div><div id="magicdomid2228" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">pygments creates a string with html tags, I write it into a file, then a controller</span></div>
<div id="magicdomid2229" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">opens this file, sends it to mako that prints a file, and... I got</span></div><div id="magicdomid2230" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">the weirdest rendering possible, pygments has safety checks that protects from</span></div><div id="magicdomid2231" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">malicious code executing, pylons/mako have some too. Moreover</span></div>
<div id="magicdomid2232" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I would like to have utf-8 files. all those stuff mixed give a weird result.</span></div><div id="magicdomid2233" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">I lost here a lot of time to fix it, decoding, encoding utf-8, tell mako</span></div><div id="magicdomid2234" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">that your file is safe, that the file contains html tags etc...</span></div>
<div id="magicdomid2235" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> I finally succeeded and I got my code browser working without color.</span></div><div id="magicdomid2236" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">Because syntax highlighting without color is a little bit stupid, </span></div><div id="magicdomid2237" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I asked pygments to create the css from its "emacs" color style, I changed it to a </span></div>
<div id="magicdomid2238" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">dark version that I found fancy, but it wasn't the global feeling, sadly.</span></div><div id="magicdomid2239" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">I created a white version with colors that fit to the rest of the project.</span></div><div id="magicdomid2240" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> I added a few stuff like anchors on lines, line coloration on hover</span></div>
<div id="magicdomid2241" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">and I started to create the comments panel, it's yet not really the best one but</span></div>
<div id="magicdomid2242" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">with minor css / js adjustments it may be good. it's a panel hidden and that</span></div><div id="magicdomid2243" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">comes when you click on the comments button, I tried to make something that</span></div><div id="magicdomid2244" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">won't hide or break the rest of the source code (as github does it [1]).</span></div>
<div id="magicdomid2245" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">It will allow discussion too. I made minor changes to allow code browsing with</span></div><div id="magicdomid2246" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">a mobile phone (apparently some people uses it from mobile phone...).</span></div><div id="magicdomid2247" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> a preview can be seen here [2]</span></div>
<div id="magicdomid2248" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2249" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">__Git Storage__</span></div>
<div id="magicdomid2250" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2251" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> A huge amount of work has been done to deal with the git storage, first of all there</span></div>
<div id="magicdomid2252" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> is some hard requirement, that it will use python-dulwich[3], a python lib that adds</span></div>
<div id="magicdomid2253" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">the support of git to python but opposite of python-git which uses</span></div><div id="magicdomid2253" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> the high level git commands, it recreates the whole low-level storage model of git in pure python.</span></div><div id="magicdomid2254" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2255" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">In order to follow this last point, we wanted to avoid the use of git shell commands in my work.</span></div>
<div id="magicdomid2256" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">and this was a major difficulty, I spent a lot of time in the dulwich doc, I tried</span></div>
<div id="magicdomid2257" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">to practice on my server, creating a repository, commiting, playing with trees and blobs.</span></div>
<div id="magicdomid2258" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2259" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">Following the basic how to was pretty easy but when you want to go deeper, docs are </span></div>
<div id="magicdomid2260" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">harder to find. I asked a few questions on the dulwich channel on IRC about basic stuff</span></div>
<div id="magicdomid2261" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">in order to start with good knowledge and then I started creating the so-called-plugins</span></div>
<div id="magicdomid2262" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">(plugins in debexpo can't really be unplugged), it more like a lib than a plugin. I created a </span></div>
<div id="magicdomid2263" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">commit function, an init one, and other basic functions without any troubles.</span></div><div id="magicdomid2264" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2265" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> But I wanted the git storage for two main reasons, first of all I wanted to have</span></div>
<div id="magicdomid2266" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">an easy access to the source code from packages, and I wanted to have an history of</span></div>
<div id="magicdomid2267" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">changes. Perfect git shell can handle both natively but not dulwich, there is no</span></div><div id="magicdomid2268" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">simple way to create files that have changed between two commits. And the only tool I found to do it</span></div><div id="magicdomid2269" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">was a write_tree_diff that makes the same thing than a git diff, a patch file with --- and +++.</span></div><div id="magicdomid2270" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">I searched for a magic lib to use that patch without trouble but apparently such a thing doesn't exist.</span></div><div id="magicdomid2271" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">That's why I created a buildTreeDiff function that apply the patch.</span></div><div id="magicdomid2271" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">Yet it's working pretty fine and creates, where you want, the files that have changed between two trees.</span></div>
<div id="magicdomid2272" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> The second part of the work was to have all the sources, not only files that have changed,</span></div>
<div id="magicdomid2273" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I looked for the shutil.copytree function, that can copy files from a place to an other excluding some files</span></div>
<div id="magicdomid2273" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">and can make links instead of files copy. It was too perfect to work fine, as you can copyTree if the dest folder already exist.</span></div>
<div id="magicdomid2274" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I first used a trick that makes a temp folder then moves all the files and clears temp. It is now working fine.</span></div>
<div id="magicdomid2275" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2276" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> But I was not proud at all of my last works, the buildTreeDiff parses the string using</span></div>
<div id="magicdomid2277" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">a dirty function, it's only a for loop and "if foo in" stuff and it was obviously not the </span></div>
<div id="magicdomid2278" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">good way to do it. Moreover the copyTree trick was dirty too, making a temp folder is</span></div>
<div id="magicdomid2279" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">not a good way to do it. But the BuildTreeDiff may be a really useful function</span></div><div id="magicdomid2280" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">(and it may interested some people that use the git shell) so I want to keep it, maybe in a cleaner version.</span></div><div id="magicdomid2281" class="ace-line" style="padding-right:1px">
<br></div><div id="magicdomid2282" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> In the last few days I cleaned that and changed almost everything, now it's building blobs</span></div>
<div id="magicdomid2282" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">from the object store, by walking the tree from the commit parent. It's cleaner than string parsing. </span></div>
<div id="magicdomid2282" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">It allows me to uses the copytree too because instead of writing inside a file, I create a</span></div>
<div id="magicdomid2282" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">list of blob ids and a list of files that didn't change at the same time. Using this trick I can apply</span></div>
<div id="magicdomid2282" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">first the copyTree then the blob builder.</span></div><div id="magicdomid2283" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> I added an other useful function that will help me retreive the history of a file,</span></div><div id="magicdomid2283" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">which gets al</span>l the previous version of a file.</div><div id="magicdomid2284" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2285" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">__msg_service__</span></div><div id="magicdomid2286" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> this stuff is done and working but I have to fix the ajax feature. </span></div>
<div id="magicdomid2287" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I still have trouble to send data from js to python. But it's working</span></div><div id="magicdomid2288" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">in the "classical" pylons work.</span></div><div id="magicdomid2289" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2290" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">_what is missing?_</span></div><div id="magicdomid2291" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2292" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> History on files and folders</span></div><div id="magicdomid2293" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> ajax on msg_service</span></div>
<div id="magicdomid2294" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> comments (on database and the engine)</span></div><div id="magicdomid2295" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> blog post on dulwich (pending)</span></div><div id="magicdomid2296" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2297" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">_what were the main difficulties?_</span></div><div id="magicdomid2298" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2299" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> On work on Dulwich, I lost a lot of time in the doc,</span></div><div id="magicdomid2300" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">as well as in practicing..</span></div>
<div id="magicdomid2301" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> On the last part (git storage) I think I didn't take</span></div><div id="magicdomid2302" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">enough time talking about it. That's why I didn't succeed</span></div><div id="magicdomid2303" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">at making clean code</span></div>
<div id="magicdomid2304" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> Managing time was a bit difficult, because I got</span></div><div id="magicdomid2305" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">suddenly a lot of time and I was always saying that</span></div><div id="magicdomid2306" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I can do it later because of this. Now it's over because</span></div>
<div id="magicdomid2307" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">I'm less lost in my project schedule too (I think I wrote</span></div><div id="magicdomid2308" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">it a little be too fast).</span></div><div id="magicdomid2309" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2310" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">_What is next?</span></div><div id="magicdomid2311" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2312" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> test the gitStorage with real packages</span></div><div id="magicdomid2313" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> Work on history and version tracker</span></div>
<div id="magicdomid2314" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> Work on DataBase for comments</span></div><div id="magicdomid2315" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> end the post on blog (I have almost 3 or 4 drafts waiting...)</span></div><div id="magicdomid2316" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> comments engine will require a lot of work because it will</span></div>
<div id="magicdomid2317" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">upgrade the existing comments engine and implement a lot of the</span></div><div id="magicdomid2318" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">will-come-soon statistic engine</span></div><div id="magicdomid2319" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px"> this statistic engine is the karma and activity tracker that will be</span></div>
<div id="magicdomid2320" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">used for the sort interface, and it will be the next huge piece of cake.</span></div><div id="magicdomid2321" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px"> I'm preparing also a "web saga" on my blog that deals with how I see</span></div><div id="magicdomid2322" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">the web and stuff around since I'm on the internet.</span></div><div id="magicdomid2323" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2324" class="ace-line" style="padding-right:1px">
<span class="" style="padding-top:1px;padding-bottom:1px">Thanks for reading!</span></div><div id="magicdomid2325" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">Again Feel free to query me on Irc for any question, idea, or information!</span></div>
<div id="magicdomid2326" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">Good luck!</span></div><div id="magicdomid2327" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">ko_lo</span></div>
<div id="magicdomid2328" class="ace-line" style="padding-right:1px"><br></div><div id="magicdomid2329" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">[1]</span><span class=" url" style="padding-top:1px;padding-bottom:1px"><a href="https://github.com/rails/rails/commit/0495736339df48a625fd58f4304b7b497b02d859#L0R33" style>https://github.com/rails/rails/commit/0495736339df48a625fd58f4304b7b497b02d859#L0R33</a></span></div>
<div id="magicdomid2330" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">[2] </span><span class=" url" style="padding-top:1px;padding-bottom:1px"><a href="http://kolo.fr/codebrowser.html" style>http://kolo.fr/codebrowser.html</a></span></div>
<div id="magicdomid2331" class="ace-line" style="padding-right:1px"><span class="" style="padding-top:1px;padding-bottom:1px">[3]</span><span class=" url" style="padding-top:1px;padding-bottom:1px"><a href="http://www.samba.org/~jelmer/dulwich/" style>http://www.samba.org/~jelmer/dulwich/</a></span></div>
<div><br></div></div></div></div></div>