<?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>Jython Journeys &#187; open source</title>
	<atom:link href="http://jython.xhaus.com/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://jython.xhaus.com</link>
	<description>Notes about my work with jython and python</description>
	<lastBuildDate>Sat, 05 Mar 2011 20:40:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Jython and Internationalized Domain Names.</title>
		<link>http://jython.xhaus.com/jython-and-internationalized-domain-names/</link>
		<comments>http://jython.xhaus.com/jython-and-internationalized-domain-names/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 22:59:57 +0000</pubDate>
		<dc:creator>alan.kennedy</dc:creator>
				<category><![CDATA[Information Security]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jython]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[sockets]]></category>
		<category><![CDATA[web technology]]></category>

		<guid isPermaLink="false">http://jython.xhaus.com/?p=208</guid>
		<description><![CDATA[I&#8217;m happy to announce that jython finally supports Internationalized Domain Names.

In May 2010, the Internet Committee for Assigned Names and Numbers (ICANN) permitted the first non-ASCII Internationalized Top-Level Domains to be made available.
An Internationalized Domain Name (IDN) is a domain name that includes characters from outside the ASCII character set. IDNs are specified in RFC [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce that jython finally supports Internationalized Domain Names.</p>
<p><span id="more-208"></span></p>
<p>In May 2010, the <a href="http://www.icann.org/">Internet Committee for Assigned Names and Numbers</a> (ICANN) permitted the <a href="http://blog.icann.org/2010/05/idn-cctlds/">first non-ASCII Internationalized Top-Level Domains to be made available</a>.</p>
<p>An <a href="http://en.wikipedia.org/wiki/Internationalized_domain_name">Internationalized Domain Name</a> (IDN) is a domain name that includes characters from outside the <a href="http://en.wikipedia.org/wiki/ASCII">ASCII character set</a>. IDNs are specified in <a href="http://www.apps.ietf.org/rfc/rfc3490.html">RFC 3490</a>, and may contain any character from the <a href="http://en.wikipedia.org/wiki/Unicode">Unicode</a> character repertoire, meaning that domain names may now contain any writing symbol in use by human-beings anywhere on the planet.</p>
<p><b>Potential Issues</b></p>
<p>There are lots of interesting things and potential issues to note about IDNs.</p>
<p>They open up a whole new frontiers for cybersquatters and phishers, by opening up the possibility of <a href="http://en.wikipedia.org/wiki/IDN_homograph_attack">Homograph Attacks</a>, where the user is intentionally misguided by the visual similarity of character glyphs from different character sets. For example, is this character <b>&#946;</b> a greek lower case beta or a german eszett?</p>
<p>Will companies like <b>Société Générale</b> find themselves held hostage by cybersquatters who have registered the accented version of their brand name before they even realise that it was possible to register it? In the case of the SocGen, the answer is <a href="http://www.xn--socitgnrale-ebbbbb.com">no</a>.</p>
<p><b>Solutions</b></p>
<p>Doubtless, various solutions will be adopted to solve these problems, as national registrars from around the world deal with how these problems relate specifically to the characters in use in their country. For example, the Russian national registrar <a href="http://xn--j1ay.xn--p1ai/">Coordination Centre for RU TLD</a> only permits Cyrillic characters to be used in the new <a href="http://en.wikipedia.org/wiki/.%D1%80%D1%84">.&#1088;&#1092;</a> top-level domain.</p>
<p><b>Jython support</b></p>
<p>Unfortunately, <a href="http://bugs.jython.org/issue1153">jython idna encoding is currently broken</a>, due to shortcomings in the unicodedata module and lack of stringprep support.</p>
<p>But IDNs are now supported when you run jython on a Java 6 JVM, since that version of the JVM has built-in IDN support: I checked in the changes at <a href="https://fisheye3.atlassian.com/changelog/jython/?cs=7198">revision 7198</a>.</p>
<p>There is also a workaround for java 5, where you can use GNU LibIDN to convert domain and host names to punycode before passing them to domain names that expect to receive ASCII parameters. This workaround is documented on the <a href="http://wiki.python.org/jython/NewSocketModule#InternationalizedDomainNamesupport">jython socket wiki</a>.</p>
<p>If you&#8217;re interested in playing with IDNs, you can obviously <a href="http://www.jython.org/download.html">download the latest jython</a>. And there are plenty of <a href="http://www.google.com/#q=idn+converter">Online IDN converters</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jython.xhaus.com/jython-and-internationalized-domain-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jython supports IPV6.</title>
		<link>http://jython.xhaus.com/jython-supports-ipv6/</link>
		<comments>http://jython.xhaus.com/jython-supports-ipv6/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 14:33:49 +0000</pubDate>
		<dc:creator>alan.kennedy</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jython]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[sockets]]></category>
		<category><![CDATA[web technology]]></category>

		<guid isPermaLink="false">http://jython.xhaus.com/?p=199</guid>
		<description><![CDATA[I am delighted to announce that jython is IPV6 ready: the future of internet addressing is fully supported.

IPV4 exhaustion
As you are no doubt aware by now (since it&#8217;s been covered in all mainstream media), the reign of Internet Protocol Version 4 (IPV4) is coming to an end: the IPV4 address space will run out before [...]]]></description>
			<content:encoded><![CDATA[<p>I am delighted to announce that jython is IPV6 ready: the future of internet addressing is fully supported.</p>
<p><span id="more-199"></span></p>
<p><b>IPV4 exhaustion</b></p>
<p>As you are no doubt aware by now (since it&#8217;s been covered in all mainstream media), the reign of <a href="http://en.wikipedia.org/wiki/IPv4">Internet Protocol Version 4 (IPV4)</a> is coming to an end: the <a href="http://en.wikipedia.org/wiki/IPv4_address_exhaustion">IPV4 address space will run out before the end of 2011</a>. </p>
<p>The problem is a simple one: IPV4 addresses are made up of only 32 bits, meaning that they can only represent a maximum of 2<sup><small>32</small></sup> different addresses (nearly 4.3 billion). But the internet is so successful and growing so fast that this address space is now too small: there are over 6 billion people on this planet, over 4 billion mobile phones, and over 1 billion PCs. Multi-device ownership is commonplace and growing in the rich world, and networking device ownership in the developing world is growing rapidly.</p>
<p>The decision to use 32-bit addresses was the right decision to make back in the 1960s. At the birth of the Internet, there were only several dozen machines connected to it. Rather than go into this subject in detail, I recommend reading this article: <a href="http://dltj.org/article/vint-cerf-ip-addressing/">Vint Cerf on the Origins of 32-bit IP Addressing</a>.</p>
<p>But as the Internet expanded and more and more machines connected to it, it became clear in the 1990s that IPV4 addresses would eventually run out, and that something would be needed to replace it: <a href="http://en.wikipedia.org/wiki/IPv6">Internet Protocol Version 6 (IPV6)</a> was born.</p>
<p><b>IPV6</b></p>
<p>IPV6 solves the address space problem permanently, by introducing a mind-bogglingly large address space: 128 bits, or 2<sup><small>128</small></sup> possible addresses. That&#8217;s 340,282,366,920,938,463,463,374,607,431,768,211,456 possible addresses! (Although see below for some caveats).</p>
<p>My favourite way to describe the size of this address space is as follows. If we were to divide the theoretical IPV6 address space between every star in the known universe (estimated to be 10<sup><small>22</small></sup>, or 10,000,000,000,000,000,000,000 stars), every star would have nearly 2<sup><small>55</small></sup> addresses to itself, i.e. an address space that is 8.4 million (2<sup><small>23</small></sup>) times bigger than our existing IPV4 planetary internet (since 2<sup><small>23</small></sup> * 2<sup><small>32</small></sup> == 2<sup><small>55</small></sup>).</p>
<p>That&#8217;s a lot of addresses, and once IPV6 is fully in service across the internet, we won&#8217;t be running out of addresses for a very long time.</p>
<p>(Actually, the number of addresses available under IPV6 will be less than the theoretical maximum, because <a href="http://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xml">various sub-sets of the IPV6 address space have been reserved for special purposes</a>. But the set of addresses available will remain practically unlimited for the foreseeable future).</p>
<p><b>Java vs. python</b></p>
<p>As readers of this blog will be aware, <a href="http://www.jython.org/">jython</a> is an implementation of the <a href="http://www.python.org/">python language</a> that runs on the <a href="http://www.java.com/">java platform</a>.</p>
<p>Both python and java have been moving towards IPV6 for a number of years. Both are <a href="http://en.wikipedia.org/wiki/Cross-platform">multi-platform languages</a>, and attempt to provide APIs that work seamlessly across all operating systems. </p>
<p><a href="http://www.python.org/">Cpython</a>, the most well known version of the python language, that is written in <a href="http://en.wikipedia.org/wiki/C_%28programming_language%29">C</a>, <a href="http://docs.python.org/dev/whatsnew/2.2.html">first provided IPV6 facilities back in version 2.2</a>, released in December 2001. This support, although complete in design, did not initially work on all platforms on which cpython is used, because underlying operating system support was variable and patchy.</p>
<p>Simiarly, <a href="http://download.oracle.com/javase/1.4.2/docs/guide/net/ipv6_guide/">java introduced IPV6 support in version 1.4</a>, released in February 2002. But this support suffered the same problems as with cpython: underlying operating system support was variable, particularly on older OSes such as Windows 2000, XP and 2003.</p>
<p>Fortunately, most operating systems have caught up with the present, and provide excellent IPV6 support, including most open-source operating systems, MacOS and <a href="http://research.microsoft.com/en-us/projects/msripv6/">Windows since Windows Vista</a>.</p>
<p><b>Jython and IPV6</b></p>
<p>As is always true when using jython, there are two different approaches one can take to using IPV6 on jython: 1. Use the Java socket API or 2. Use the python socket API.</p>
<p><b>The java socket API</b></p>
<p>Users of jython have always had access to IPV6 though the java socket API, because of the <a href="http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html">seamless integration between java and jython</a>. However, jython users often avoid using java APIs, particularly the more over-complex ones. And the java socket API is probably one of the worst examples of over-complexity, since it comprises two entirely different APIs, with different designs, to provide the full range of socket functionality: the <a href="http://download.oracle.com/javase/1.4.2/docs/api/java/net/package-summary.html">java.net</a> APIs and the <a href="http://download.oracle.com/javase/1.4.2/docs/api/java/nio/package-summary.html">java.nio</a> APIs.</p>
<p><b>The python socket API</b></p>
<p>Long term users of jython networking libraries, which rely on the socket module, will be aware that the jython socket module has a particularly difficult task implementing the python socket API, since it must implement the cpython API, which has a C language philosophy, on top of the java API facilities, which have a different, more object-oriented philosophy. And as described above, the java socket API is really two completely different APIs, both of which must be used if you want the full range of functionality, e.g. <a href="http://www.nightmare.com/medusa/async_sockets.html">asynchronous networking</a>.</p>
<p>Implementing IPV6 has been problematic, for several reasons, including that operating system support has been patchy, thus making it difficult to reliably test on a cross-platform basis. Also, the <a href="http://mail.python.org/pipermail/python-3000/2007-March/006522.html">cpython socket API is not without problems when it comes to IPV6</a>.</p>
<p>Still, it has always been my stated intent that any python code written which uses the socket module should behave identically on jython and cpython, wherever possible. And now that intent extends to IPV6, final support for which I checked in recently (revisions <a href="https://fisheye3.atlassian.com/changelog/jython/?cs=7191">7191</a> and <a href="https://fisheye3.atlassian.com/changelog/jython/?cs=7193">7193</a>), and which should be included in the next release of jython, due any day now.</p>
<p>I am particularly satisfied with this step forward, since I believe that IPV6 opens up a whole new world of networking possibilities.</p>
<p><b>Reliability</b></p>
<p>I won&#8217;t yet make the claim that the new IPV6 support is 100% defect free, since there are so many different java-version and operating-system combinations on which jython is used. There will always be some combination of operations on some JVM on some operating systems where it just won&#8217;t work, for example <a href="http://bugs.sun.com/view_bug.do?bug_id=6230761">this java IPV6 defect on Windows</a>. But the jython socket module has a <a href="https://fisheye3.atlassian.com/browse/jython/trunk/jython/Lib/test/test_socket.py?hb=true">very large set of unit-tests</a>, currently 133 separate tests, and growing. As and when bugs are uncovered, I will <a href="http://wiki.python.org/jython/NewSocketModule">document them</a>, <a href="http://wiki.python.org/jython/NewSocketModule#IPV6addresssupport">provide work-arounds</a>, and unit-tests for the work-arounds.</p>
<p>Happy IPV6 networking!</p>
]]></content:encoded>
			<wfw:commentRss>http://jython.xhaus.com/jython-supports-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyCon Ireland 2010: A great success!</title>
		<link>http://jython.xhaus.com/pycon-ireland-2010-a-great-success/</link>
		<comments>http://jython.xhaus.com/pycon-ireland-2010-a-great-success/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 19:34:03 +0000</pubDate>
		<dc:creator>alan.kennedy</dc:creator>
				<category><![CDATA[Python Ireland]]></category>
		<category><![CDATA[jython]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Conferences]]></category>

		<guid isPermaLink="false">http://jython.xhaus.com/?p=191</guid>
		<description><![CDATA[I&#8217;m delighted to report that PyCon Ireland 2010, the first ever python language conference in Ireland, was a great success! Over 100 people came, attended two dozen talks and tutorials in three tracks, and participated in sprints and open-spaces.

Our conference venue, the Dublin School of English in Temple Bar, was a great success. Their classroom [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m delighted to report that PyCon Ireland 2010, the first ever python language conference in Ireland, was a great success! Over 100 people came, attended two dozen talks and tutorials in three tracks, and participated in sprints and open-spaces.</p>
<p><span id="more-191"></span></p>
<p>Our conference venue, the <a href="http://www.dse.ie/">Dublin School of English</a> in Temple Bar, was a great success. Their classroom layouts proved ideal for talks and tutorials. The rooms for our three tracks were all accessed from a large foyer, where our sponsors set up their tables (and beanbags!). Open spaces rooms were also close, so the amount of traffic through the foyer gave a sociable and affable atmosphere.</p>
<p>Local restaurateurs <a href="http://www.botticelli.ie/">Botticelli&#8217;s</a> did a great job on the daytime catering, supplying tasty food and drink, and excellent coffee: we had a dedicated coffee machine and barista all day!</p>
<p>Just as I&#8217;ve experienced with other python conferences, there was a significant presence from the third-level education, both researchers and students. There were computer scientists interested in python as a language for teaching (the original purpose for which python was designed). There were research groups who were either already using or learning python in order to apply it to their programming needs, for analysing and visualising data, controlling equipment, etc. Work areas of third-level conference participants included genetics, electronics, and space hardware.</p>
<p>The venue for Saturday evening was the very modern <a href="http://www.radissonblu.ie/royalhotel-dublin">Radisson Blu hotel</a> on Golden Lane. The hotel staff were very professional and helpful: they made our entire experience there seamless and relaxed. What better way to end the evening than to retire to the bar for informal chats, the odd beer and the fine artistry of 3 piece blues band, <a href="http://www.myspace.com/leftrightcentrebluesband">Left, Right and Centre</a>.</p>
<p>For the sprints on Sunday, the most remarkable project was certainly the <a href="http://groups.google.com/group/pythonireland/browse_thread/thread/e2b47ac8d5d13f04?hl=en">project</a> to code a <a href="http://en.wikipedia.org/wiki/Bedlam_cube">solution finder for the fiendish Bedlam cube puzzles</a> that sponsors Google had brought along. The effort even continued after the sprint was over, with the crew retiring to the <a href="http://www.tog.ie/">TOG Hackerspace</a> to work further on it.</p>
<p>One very successful outcome from the conference was that there is now a <a href="http://groups.google.com/group/pythonireland/browse_thread/thread/4a1b112d803a021?hl=en">Python Ireland meetup in Cork city</a>, which will be meeting on the first Thursday of each month. With the Galway Python meetups happening on the first Wednesday of the month, and the Dublin meetups on the second Wednesday, it is clear that Python Ireland is an active and growing community. Watch this space!</p>
<p>Many of the presentations given and media recorded at the conference are now available: See the following links</p>
<ul>
<li><a href="http://groups.google.com/group/pyconireland/web/pycon-ireland-2010---links-to-slides-videos-source-code-and-more">Talks, slides, sourece code, etc</a></li>
<li><a href="http://vimeo.com/groups/pyconireland">Videos of talks</a></li>
<li><a href="http://www.python.ie/pyconireland">General conference information</a></li>
</ul>
<p>An enormous amount of organisation goes into making an event like a python conference work, and all of the committee are delighted that their work has all been worthwhile. One person deserves very special mention, Python Ireland&#8217;s Chairman, Vicky Lee, who was dedicated, untiring and endlessly patient through the whole process and put in more work than the rest of us put together: Massive kudos to <a href="http://twitter.com/whykay">Vicky</a>!</p>
<p>Looking forward to PyCon Ireland 2011!</p>
]]></content:encoded>
			<wfw:commentRss>http://jython.xhaus.com/pycon-ireland-2010-a-great-success/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A list of open source HTTP proxies written in Java.</title>
		<link>http://jython.xhaus.com/a-list-of-open-source-http-proxies-written-in-java/</link>
		<comments>http://jython.xhaus.com/a-list-of-open-source-http-proxies-written-in-java/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 15:48:51 +0000</pubDate>
		<dc:creator>alan.kennedy</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[web technology]]></category>

		<guid isPermaLink="false">http://jython.xhaus.com/?p=153</guid>
		<description><![CDATA[A few years ago, as an aide to python web programers, I compiled a database of open source HTTP proxies written in python, which became surprisingly popular.
So I&#8217;ve decided to expand the database to encompass the other language that I regularly use, java, and publish a database of open source HTTP proxies written in java.

While [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago, as an aide to python web programers, I compiled a <a href="http://proxies.xhaus.com/python/">database of open source HTTP proxies written in python</a>, which became surprisingly popular.</p>
<p>So I&#8217;ve decided to expand the database to encompass the other language that I regularly use, java, and publish a <a href="http://proxies.xhaus.com/java/">database of open source HTTP proxies written in java</a>.</p>
<p><span id="more-153"></span></p>
<p>While carrying out a web development project a few years ago, I needed a HTTP proxy to help with development and debugging. Rather than write my own, I decided to research what open source options were already available.</p>
<p>However, Python is such an easy language to write web servers and proxies in that a lot people had written and puiblished HTTP proxies, so making the decision wasn&#8217;t easy. It required a lot of research, which basically meant a code and architectural review of all of the open source python proxies available.</p>
<p>Since most web programmers use a HTTP proxy at some stage, I thought it would be a useful exercise to compile a complete list of the available options, with a comparison table to enable a feature by feature comparison.</p>
<p>The result of that was this <a href="http://proxies.xhaus.com/python/">comparison table of open source HTTP proxies written in python</a>, which became quite popular, because it saved python programmers going through the same complex comparison and review process I had undertaken.</p>
<p>Since I&#8217;m currently working on another proxy-related project, I needed to review available open source HTTP proxies written in java. And I thought I&#8217;d save someone some research time by publishing a similar <a href="http://proxies.xhaus.com/java/">comparison table of open source HTTP proxies in java</a>.</p>
<p>I hope you find it useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://jython.xhaus.com/a-list-of-open-source-http-proxies-written-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announce: jyson, a pure java JSON codec for jython.</title>
		<link>http://jython.xhaus.com/announce-jyson-a-pure-java-json-codec-for-jython/</link>
		<comments>http://jython.xhaus.com/announce-jyson-a-pure-java-json-codec-for-jython/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 22:19:15 +0000</pubDate>
		<dc:creator>alan.kennedy</dc:creator>
				<category><![CDATA[jython]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[web technology]]></category>

		<guid isPermaLink="false">http://jython.xhaus.com/?p=83</guid>
		<description><![CDATA[I&#8217;m delighted to announce the publication of jyson, a fast codec for JavaScript Object Notation (JSON), a lightweight and easy-to-use data interchange format.

As you may know, JSON is used extensively in modern web development, particularly to communicate data between servers and clients in Rich Internet Applications, or Web 2.0 applications. JSON is commonly the preferred [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m delighted to announce the publication of <a href="http://jyson.xhaus.com">jyson</a>, a fast codec for <a href="http://json.org">JavaScript Object Notation (JSON)</a>, a lightweight and easy-to-use data interchange format.</p>
<p><span id="more-83"></span></p>
<p>As you may know, JSON is used extensively in modern web development, particularly to communicate data between servers and clients in <a href="http://en.wikipedia.org/wiki/Rich_Internet_application">Rich Internet Applications</a>, or <a href="http://en.wikipedia.org/wiki/Web_2.0">Web 2.0</a> applications. JSON is commonly the preferred choice for data interchange between clients and servers which use a <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">Respresentational State Transfer</a> (REST) based architecture.</p>
<p>JSON is often the preferred choice because it is a <a href="http://www.json.org/fatfree.html">fat free alternative to XML</a>. Although we use XML all the time, we fully recognise that it be both complex to work with and inefficient to generate and parse. JSON, on the other hand, is both simple and fast.</p>
<p>Jyson is written in pure java, and should be highly performant. So, if you&#8217;re using jython and JSON, we recommend you check out <a href="http://jyson.xhaus.com">jyson</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jython.xhaus.com/announce-jyson-a-pure-java-json-codec-for-jython/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New xhaus.com open source software portal.</title>
		<link>http://jython.xhaus.com/new-xhauscom-open-source-software-portal/</link>
		<comments>http://jython.xhaus.com/new-xhauscom-open-source-software-portal/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 18:05:50 +0000</pubDate>
		<dc:creator>alan.kennedy</dc:creator>
				<category><![CDATA[jruby]]></category>
		<category><![CDATA[jython]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[redmine]]></category>

		<guid isPermaLink="false">http://jython.xhaus.com/?p=81</guid>
		<description><![CDATA[I&#8217;m delighted to announce the opening of the xhaus.com open source software portal.
On the portal you will find source code, documentation, issue trackers, etc, for open source software that we have published.

To run our open source portal, we use the excellent Redmine, an open source project management system written with Ruby on Rails. One thing [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m delighted to announce the opening of the <a href="http://opensource.xhaus.com">xhaus.com open source software portal</a>.</p>
<p>On the portal you will find source code, documentation, issue trackers, etc, for open source software that we have published.</p>
<p><span id="more-81"></span></p>
<p>To run our open source portal, we use the excellent <a href="http://www.redmine.org">Redmine</a>, an open source project management system written with <A href="http://www.rubyonrails.org">Ruby on Rails</a>. One thing we particularly like is that the <a href="http://www.redmine.org/wiki/redmine/TheyAreUsingRedmine">Ruby community uses Redmine extensively</a>, meaning that they subscribe to the philosophy of <a href="http://en.wikipedia.org/wiki/Eat_one%27s_own_dog_food">eating their own dog food</a>, an admirable trait in the open source world.</p>
<p>We host our instance of Redmine on <a href="http://jruby.codehaus.org">jruby</a>, running on <a href="http://tomcat.apache.org">Apache Tomcat 6.0</a>.</p>
<p>We chose Redmine because it is a highly functional and well architected piece of software. Browsing the <a href="http://www.redmine.org/projects/redmine/repository">source code for redmine</a> shows that it is well designed and highly extensible, with a <a href="http://www.redmine.org/wiki/redmine/Plugins">range of plugins for different tasks</a>. Moreover, it has a rich feature set, including</p>
<ul>
<li>Multiple projects</li>
<li>Hierarchical projects</li>
<li>Forums</li>
<li>Issue trackers</li>
<li>Wiki</li>
<li>File and Document areas</li>
<li>News</li>
<li><a href="http://www.redmine.org/wiki/redmine/Features">lots of other great features</a></li>
</ul>
<p>Many thanks to the Redmine developers for their great software!</p>
<p>Being avid <a href="http://en.wikipedia.org/wiki/Python_(programming_language)">pythonistas</a>, we normally like to use python or jython software when possible. In the case of project management, the obvious choice would be <a href="http://trac.edgewall.org">Trac</a>, which was the first software of it&#8217;s type in the market, and in many ways defined the space that Redmine occupies.</p>
<p>But Trac has many problems, the most restrictive being that it can only support single projects (unless one is willing to do <a href="http://trac.edgewall.org/wiki/TracMultipleProjects">a fair amount of hacking</a>). Furthermore, the Trac code base is getting a little crufty, a problem which is exacerbated by the fact that authors focus on <a href="http://trac.edgewall.org/wiki/TracDev/PortingFromClearSilverToGenshi">changing the technologies on which Trac is built</a>, rather than on adding new functionality that is useful to the end user.</p>
<p>So we invite you to visit the <a href="http://opensource.xhaus.com">xhaus.com open source software portal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jython.xhaus.com/new-xhauscom-open-source-software-portal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

