<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog.Project13.pl &#187; github</title>
	<atom:link href="http://www.blog.project13.pl/index.php/tag/github/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blog.project13.pl</link>
	<description>The Blog of a Coder</description>
	<lastBuildDate>Sun, 05 Feb 2012 02:28:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>[alpha][release] ProtoDoc v1.0 (not production ready)</title>
		<link>http://www.blog.project13.pl/index.php/project13/1321/initial-release-protodoc-v1-0-not-production-ready/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/1321/initial-release-protodoc-v1-0-not-production-ready/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 12:00:45 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[protocol buffers]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1321</guid>
		<description><![CDATA[I&#8217;ve finished a one could say major stepstone in my student project yesterday. I&#8217;ll be implementing this tool to be production ready over the next few months so keep your fingers crossed. But what is it actually? ProtoDoc, is for Google Protocol Buffers what JavaDoc is for Java. As simple as that. In order to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished a one could say major stepstone in my student project yesterday. I&#8217;ll be implementing this tool to be production ready over the next few months so keep your fingers crossed. But what is it actually? <em>ProtoDoc, is for Google Protocol Buffers what JavaDoc is for Java.</em> As simple as that. In order to achieve this I needed to parse Protocol Buffer IDL files and then on top of that do some simple html generation. The tools I used for this are:</p>
<ul>
<li>Scala &#8211; the code is 100% scala</li>
<li>Scala <a href="http://www.google.pl/search?aq=f&#038;sourceid=chrome&#038;ie=UTF-8&#038;q=scala+parser+combinators+documentation" onclick="urchinTracker('/outgoing/www.google.pl/search?aq=f_038_sourceid=chrome_038_ie=UTF-8_038_q=scala+parser+combinators+documentation&amp;referer=');">Parser Combinators</a> &#8211; the &#8220;parser generation DSL&#8221; one might say, begind this parser. It&#8217;s very very amazing and pushing Scala to it&#8217;s best with some crazy implicit conversions flying around all the time :-)</li>
<li>Scarg &#8211; a simple tool for handling command line parameters, <a href="https://github.com/xfire/scarg" onclick="urchinTracker('/outgoing/github.com/xfire/scarg?referer=');">it&#8217;s on github</a></li>
<li>sbt &#8211; Simple Build Tool, let&#8217;s call it &#8220;what maven is for java&#8221; but with a Gradle-ish feel to it. A very nice build tool, actually my fav I&#8217;d say.</li>
<li><a href="http://scalate.fusesource.org/" onclick="urchinTracker('/outgoing/scalate.fusesource.org/?referer=');">Scalate &#8211; a template engine</a>, which implements <a href="http://mustache.github.com/" onclick="urchinTracker('/outgoing/mustache.github.com/?referer=');">Mustache</a> (which I used, as it&#8217;s a very clean lang, NO LOGIC in the view :-)) as one of it&#8217;s template languages</li>
<li>and of course <a href="www.scalatest.org">ScalaTest</a> &#8211; as &#8216;<em>thou shalt test thy code</em>&#8216; :-)</li>
</ul>
<p>It was a very pleasant expirience and I&#8217;m looking forward to implementing a 100% compatible Protocol Buffers parser in Scala&#8230; :-)</p>
<p>There is also a pdf I&#8217;ve written about this project but it&#8217;s not well written and in Polish (university requirements, bleh), but if you want to know more about Scala Parser Combinators, you can take a look at it here: <a href="https://github.com/ktoso/protodoc-scala/blob/master/doc/konrad_malawski_protodoc.pdf?raw=true" onclick="urchinTracker('/outgoing/github.com/ktoso/protodoc-scala/blob/master/doc/konrad_malawski_protodoc.pdf?raw=true&amp;referer=');">doc @ github.com</a>.</p>
<p>The project itself is of course Free Software and Open Source, licensed under the Apache 2 license, so feel free to <a href="https://github.com/ktoso/protodoc-scala" onclick="urchinTracker('/outgoing/github.com/ktoso/protodoc-scala?referer=');">fork protodoc-scala on github</a>!</p>
<p>I&#8217;ll just quote the README from the github page for the rest of the description:</p>
<hr />
Have you ever worked with a BIG Protocol Buffers based application? It would be awesome if it had some kind<br />
of tool like JavaDoc, to always know what each field exactly means, even without having the proto file at hand right now.</p>
<p><em>Oh, wait. That&#8217;s excatly what ProtoDoc is!</em> ProtoDoc is a tool very much like JavaDoc, which scans your proto files and generates<br />
an easily searchable and most informative website with all information about yout ProtoMessages.</p>
<p><strong>It&#8217;s currently not production ready, and allows only for basic Messages to be parsed.</strong> But it should most probably be finished and fully working quite soon.</p>
<p><strong>Live Demo</strong><br />
There is a <a href="http://www.up.project13.pl/protodoc/index.html" onclick="urchinTracker('/outgoing/www.up.project13.pl/protodoc/index.html?referer=');">live demo available here</a>.</p>
<p><strong>Coding notes</strong></p>
<ul>
<li>ProtoDoc is build by <strong>sbt</strong> so if you want to help out hacking, first download <strong>Scala 2.8.1</strong> and sbt :-)</li>
</ul>
<p><strong>Output screenshots</strong><br />
ProtoDoc takes this:</p>
<pre><code>
package pl.project13;

/**
 * This is a simple Message which has some Inner Message defined.
 * Also, note that it has a default value on the name property.
 */
message MessageWithInner {
    /**
     * A number is just a simple property
     */
    required int32 number = 1;

    /**
     * This can be a name of your likeing, the default value is "lorem ipsum" etc
     */
    required string name = 2 [default = "loremipsum"];

    /**
     * Whoa, this is a comment on an inner message!
     * ProtoDoc is so cool!
     */
    message InnerMessage {

        /**
         * This is a comment on an inner messages field, cool~
         * You may use it like this in your generated Java code:
         * setName("StringMyName");
         */
        optional string name = 3;
    }
}</code></pre>
<p>and generates this:</p>
<p><img src="https://raw.github.com/ktoso/protodoc-scala/master/doc/protodoc_main.png" alt="protodoc sample" style="width:420px"/></p>
<p>
Hooray!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/1321/initial-release-protodoc-v1-0-not-production-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GitHub Diff in Gmail</title>
		<link>http://www.blog.project13.pl/index.php/fun/724/github-diff-in-gmail/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/724/github-diff-in-gmail/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 14:32:14 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webdeveloper]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=724</guid>
		<description><![CDATA[Hi there, below is the (horribly trashy and chaotic &#8211; as it was hacked up in about 2/3 hours) source for my Google Gmail Contextual Gadget. It extends Gmail by parsing all links passed in an email, and if an github commit link is found it displays the diff for this commit. With coloring etc [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://github.com/ktoso/GitHubDiff/raw/master/screenshot.png" onclick="urchinTracker('/outgoing/github.com/ktoso/GitHubDiff/raw/master/screenshot.png?referer=');"><img class="aligncenter" title="github diff in gmail" src="http://github.com/ktoso/GitHubDiff/raw/master/screenshot.png" alt="" width="500" /></a></p>
<p style="text-align: left;">Hi there, below is the (horribly trashy and chaotic &#8211; as it was hacked up<strong> in about 2/3 hours</strong>) source for my <em>Google Gmail Contextual Gadget</em>.</p>
<p>It<strong> extends Gmail </strong>by <em>parsing all links passed in an email, and if an github commit link is found it displays the diff for this commit.</em> <strong>With coloring</strong> etc &#8211; just as github would. It&#8217;s really fairly easy to get this kind of things going, and if your working with Google Apps (using gmail in your domain etc) you can use this, and many more gadgets (though I didn&#8217;t find much of them really useful &#8211; that&#8217;s why I&#8217;ve written this one).</p>
<p>The source can be downloaded, and fixed (which I hopefuly will have time to do! As it&#8217;s a mess, let&#8217;s say, &#8220;proof of concept&#8221;): <a href="http://github.com/ktoso/GitHubDiff" onclick="urchinTracker('/outgoing/github.com/ktoso/GitHubDiff?referer=');">http://github.com/ktoso/GitHubDiff</a> (It&#8217;s on the <strong>MIT license</strong>).</p>
<p><span class="youtube">
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/bJIhKxNDNKg&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0?rel=1" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/bJIhKxNDNKg&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0?rel=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=bJIhKxNDNKg" onclick="urchinTracker('/outgoing/www.youtube.com/watch?v=bJIhKxNDNKg&amp;referer=');"><img src="http://img.youtube.com/vi/bJIhKxNDNKg/default.jpg" width="130" height="97" border=0></a></p></p>
<p>Read the full story to see instalation instructions as well as documentation links&#8230;<br />
<span id="more-724"></span></p>
<p><strong>HOW TO INSTALL:</strong><br />
It can be installed by your own into gmail, if you&#8217;re running on Google Apps -just by creating an new Application on the Market and then adding it to your Account. If you&#8217;d like me to polish and publish this to the Google Enterprise Market &#8211; you&#8217;d have to fund me the publish fee, 100$&#8230; ;-)</p>
<p><strong>DOCUMENTATION:</strong><br />
Contextual Gadgets: <a href="http://code.google.com/apis/gmail/gadgets/contextual/" onclick="urchinTracker('/outgoing/code.google.com/apis/gmail/gadgets/contextual/?referer=');">http://code.google.com/apis/gmail/gadgets/contextual/</a></p>
<p>jQuery &#8211; getJSON: <a href="http://api.jquery.com/jQuery.getJSON/" onclick="urchinTracker('/outgoing/api.jquery.com/jQuery.getJSON/?referer=');">http://api.jquery.com/jQuery.getJSON/</a><br />
GitHub API &#8211; <a href="http://develop.github.com/p/commits.html" onclick="urchinTracker('/outgoing/develop.github.com/p/commits.html?referer=');">http://develop.github.com/p/commits.html</a></p>
<p><strong>LICENSE:</strong><br />
The source is MIT licensed, feel free to use it as a base for your own projects etc. It&#8217;s nothing particularly well written etc ;-)</p>
<p>Enjoy<strong> github</strong> in your <strong>gmail</strong> &#8211; two amazing webapps in one&#8230; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/724/github-diff-in-gmail/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Current small project: GWT-Crossword</title>
		<link>http://www.blog.project13.pl/index.php/fun/383/current-small-project-gwt-crossword/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/383/current-small-project-gwt-crossword/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 00:27:55 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[webdeveloper]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=383</guid>
		<description><![CDATA[I am currently working on a simple but still quite fun/interesting (as is any project with a new framework :-)) webapp using Google Web Toolkit (it&#8217;s basically Google&#8217;s JEE framework for creating RIA). The webapp is an online crossword generator. The goal is to provide crosswords online and allow users solving them online with a [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently working on a simple but still quite fun/interesting (as is any project with a new framework :-)) webapp using <a href="http://code.google.com/intl/pl/webtoolkit/" onclick="urchinTracker('/outgoing/code.google.com/intl/pl/webtoolkit/?referer=');"><strong>Google Web Toolkit</strong></a> (it&#8217;s basically Google&#8217;s JEE framework for creating <a href="http://en.wikipedia.org/wiki/Rich_Internet_application" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Rich_Internet_application?referer=');">RIA</a>). The webapp is an online crossword generator. The goal is to provide crosswords online and allow users solving them online with a nice and intuitive GUI etc&#8230; It would be cool if I&#8217;d manage to create this as an &#8220;embed on any website&#8221; script, but I can&#8217;t guarantee this functionality.</p>
<p>I&#8217;m coding this project to get used to some of the basic <strong><acronym title="Java Enterprise Edition">JEE</acronym></strong> stuff, such as <a href="https://www.hibernate.org/" onclick="urchinTracker('/outgoing/www.hibernate.org/?referer=');"><strong>Hibernate</strong></a> for example (it is quite amazing and very <em>elegant</em> &#8211; especially HQL), and to have a good time while coding in Java&#8230;</p>
<p>The source is avaiable under the AGPLv3 on github: <a href="http://github.com/ktoso/gwt-crossword" onclick="urchinTracker('/outgoing/github.com/ktoso/gwt-crossword?referer=');">http://github.com/ktoso/gwt-crossword</a><br />
At some places it is still a mess so please keep in mind that it&#8217;s still under initial development (and I&#8217;m having a tough time at the uni and can&#8217;t code gwt-crossword everyday :\), that aside, feel free to take a look on the source!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/383/current-small-project-gwt-crossword/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

