<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>The Fast Country</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/" />
<modified>2007-08-26T22:08:10Z</modified>
<tagline>John Corrigan&apos;s Weblog</tagline>
<id>tag:www.corriganjc.net,2007:/weblog/1</id>
<generator url="http://www.movabletype.org/" version="3.15">Movable Type</generator>
<copyright>Copyright (c) 2007, JohnC</copyright>
<entry>
<title>Hungarian Wine</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/08/hungarian_wine.html" />
<modified>2007-08-26T22:08:10Z</modified>
<issued>2007-08-26T22:08:08Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.50</id>
<created>2007-08-26T22:08:08Z</created>
<summary type="text/plain"><![CDATA[ Vinum Regum, Rex VinorumLouis XIV A few years ago I had the good fortune to spend a 10 days in Budapest. While there I developed a taste for Hungarian wine, especially Egri Bik&aacute;ver, and Tokaji, the wine that Louis...]]></summary>
<author>
<name>JohnC</name>


</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[        <blockquote cite="Louis XIV"><p><span>Vinum Regum, Rex Vinorum</span></p><p><cite>Louis XIV</cite></p></blockquote>
        <p>A few years ago I had the good fortune to spend a 10 days in Budapest. While there I developed a taste for Hungarian wine, especially <a href="http://en.wikipedia.org/wiki/Egri_Bikav%C3%A9r">Egri Bik&aacute;ver</a>, and <a href="http://en.wikipedia.org/wiki/Tokaji">Tokaji</a>, the wine that Louis XIV loved so much. These wines used to be very difficult to come by in Ireland. Fortunately, this is no longer the case, as a wine shop specializing in Hungarian wines has opened in Dublin. The shop is called <a href="http://www.hungarianwine.ie/">Essence of Wine</a> and is located in the Moore Street Mall. The staff there are passionate about wine, very knowledgeable and helpful. I was there a few weekends ago I spent about half an hour chatting about wine and Budapest with Laszlo, one of the guys that runs the place. Over the course of the conversation he recommended 2 wines from the Gal Tibor winery, which I bought, and which were shared with friends last night. They were superb. So if you happen to be shopping in Dublin for a good bottle of wine, I'd recommend there.</p>
<p><span class="technoratiTitle">Technorati Tags:</span>
<a class="technoratiTag" href="http://technorati.com/tag/wine" rel="tag">wine</a>
<a class="technoratiTag" href="http://technorati.com/tag/Hungary" rel="tag">Hungary</a>
</p>]]>

</content>
</entry>
<entry>
<title>Martin Fowler test-drives Parser Generators</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/07/martin_fowler_t.html" />
<modified>2007-07-08T20:19:19Z</modified>
<issued>2007-07-08T20:14:02Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.49</id>
<created>2007-07-08T20:14:02Z</created>
<summary type="text/plain">I have been catching up on my blog reading this weekend. One of the blogs I have caught up on is Martin Fowler&apos;s. Recently, i.e., since February, he has being trying out parser generator tools and he has written a...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[<p>I have been catching up on my blog reading this weekend. One of the blogs I have caught up on is <a href="http://martinfowler.com/bliki/">Martin Fowler's</a>. Recently, i.e., since February, he has being trying out parser generator tools and he has written a series of posts on his experiences.</p>
        <ul>
            <li><a href="http://martinfowler.com/bliki/HelloSablecc">HelloSablecc</a></li>
            <li><a href="http://martinfowler.com/bliki/HelloAntlr">HelloAntlr</a></li>
            <li><a href="http://martinfowler.com/bliki/FlexibleAntlrGeneration.html">FlexibleAntlrGeneration</a></li>
            <li><a href="http://martinfowler.com/bliki/HelloCup">HelloCup</a></li>
            <li><a href="http://martinfowler.com/bliki/HelloRacc">HelloRacc</a></li>
        </ul>
<p><span class="technoratiTitle">Technorati Tags:</span>
<a class="technoratiTag" href="http://technorati.com/tag/programming" rel="tag">programming</a>
<a class="technoratiTag" href="http://technorati.com/tag/antlr" rel="tag">antlr</a>
<a class="technoratiTag" href="http://technorati.com/tag/sablecc" rel="tag">sablecc</a>
<a class="technoratiTag" href="http://technorati.com/tag/parsers" rel="tag">parsers</a>
<a class="technoratiTag" href="http://technorati.com/tag/racc" rel="tag">racc</a>
<a class="technoratiTag" href="http://technorati.com/tag/cup" rel="tag">cup</a>
</p>]]>

</content>
</entry>
<entry>
<title>The ANTLR Trinity</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/06/the_antlr_trini.html" />
<modified>2007-06-12T22:23:14Z</modified>
<issued>2007-06-12T22:15:45Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.48</id>
<created>2007-06-12T22:15:45Z</created>
<summary type="text/plain"> There are 3 components to a really useful software development technology: innovative features, clear and comprehensive documentation, and solid tools. The recent release of ANTLR v3.0 is a perfect example of this. This parser generator tool has all 3...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[        <p>There are 3 components to a really useful software development technology: innovative features, clear and comprehensive documentation, and solid tools. The recent release of ANTLR v3.0 is a perfect example of this. This parser generator tool has all 3 components and each component is done superbly.</p>
        <p><a href="http://www.antlr.org">ANTLR</a> is a parser generator tool that is capable of targeting multiple output languages. Out of the box, it will generate Java, Python, C, C#, or Ruby code. Other target languages are possible if the code generators are written. Amongst its cool features are:</p>
        <ul>
        <li><p>LL(*) parsing: This is an extension to the normal, top down with lookahead, LL(k) parsing technique. It allows for more powerful parsers than those possible with LL(k). Not something I have needed yet, but I can see it being useful in the future.</p></li>
        <li><p>Semantic and syntactic predicates: These are tests that can be embedded in grammar rules to turn certain choices in rules on and off based on a boolean test. These allow parsers to be built that simulate recognizers for context dependent grammars and this makes the automated parser generation applicable to a lot more problems. Again, this is something I haven't used yet, but will be in the future.</p></li>
            <li><p>Memoized backtracking: This is a performance improving feature for grammars that use a lot of lookahead. If a parser fails at a choice near the end of the rule it has to go back to the start of the rule and start matching again. The memoization of intermediate matches for a rule speeds this up.</p></li>
            <li><p>Unicode support: parsers built with ANTLR recognize Unicode input. ANTLR grammar files themselves do not recognize Unicode characters yet, but Unicode characters can be specified as escape sequences.</p></li>
            <li><p>Hierarchical lexers: Most parser generator tools define tokens by means of a regular expression like language. For these tools lexer rules are independent of each other and cannot refer to each other. ANTLR is different: it allows lexer rules to reference other lexer sub-rules. It also allows recursive lexer rules. Now, this is a very useful feature and, for me, tidies up lexer rules a lot.</p></li>
            <li><p>Abstract Syntax Tree (AST) generation features: ANTLR has a powerful AST generation feature. When generating parsers I prefer to generate a parse tree or AST and pass that onto a second stage, rather than embedding actions/code in the grammar. This allows the a parser to be used as a module in numerous tools. ANTLR's AST building support is superb and really facilitates that type of design.</p></li>
            <li><p>Tree grammars: This is a feature of ANTLR that allows for a parser to match tree structures such as ASTs and trigger an action based on this. I used to use JavaCC and what I normally did was use it to generate a parse tree and then use the visitor pattern to process that parse tree. If the action at a particular node depended on the structure of the tree, it was up to me to track that in the Java code in the visitor class. ANTLR's tree grammars really simplify situations like that and I am really looking forward to trying that out.</p></li>
        </ul>           
        <p><a href="http://www.pragmaticprogrammer.com/titles/tpantlr/index.html">The Definitive ANTLR Guide</a>, available from the <a href="http://www.pragmaticprogrammer.com/">Pragmatic Programmer website</a>, is the main documentation for ANTLR v3.0. The book is well named. It clearly and concisely describes the features of ANTLR v3.0 and how to use them. The book is divided into 3 sections: an introduction to ANTLR and language translation, a reference section for the ANTLR syntax, and a section on how to write predicated LL(*) grammars. I have read through the first section and skimmed parts of the reference and this has enabled me to put together a basic parser/recognizer for Scheme. It really is that straight forward.</p>
        <p>In addition to The Definitive ANTLR Guide there is a really good Wiki with tutorials and FAQs at <a href="http://www.antlr.org/wiki/display/ANTLR3/ANTLR+3+Wiki+Home">http://www.antlr.org/wiki/display/ANTLR3/ANTLR+3+Wiki+Home</a>. Lastly, the distribution comes with great sample grammars. There is a Java grammar and a Python grammar in there and these put ANTLR through its paces and are worth referring to.</p>
        <p><a href="http://www.antlr.org/works/index.html">ANTLRWorks</a> is the IDE for building ANTLR grammars. It is a standalone editor, written in Java Swing, that provides the standard features that you would expect from an IDE, such as syntax highlighting and error detection. In addition it has a few handy features that you would not expect. Firstly, there is a syntax diagram pane in the GUI. Selecting a grammar rule in editor pane causes a syntax diagram for the rule to be displayed in the syntax diagram pane. The graphic below is an example.</p>
        <div class="pict"><img alt="Syntax Diagram" src="http://www.corriganjc.net/weblog/images/s-exp-rule.png" width="516" height="107" /></div>
        <p>This is very useful for documenting grammars as the diagrams can be saved as graphics (JPEG, PNG, EPS, etc.). There is also a debugger and an interpreter. The interpreter will interpret the grammar and draw a graphical representation of the parse tree for an input string based on the grammar. If the parse fails it still draws the diagram for what was recognized and puts a node in the tree, at the point were the parse failed, to represent the type of error detected. The parse tree graphics can also be saved and are a real help with visualizing how the rules fit together and what choices the parser is taking.</p>
        <p><span class="technoratiTitle">Technorati Tags:</span>
            <a class="technoratiTag" href="http://technorati.com/tag/programming" rel="tag">programming</a>
            <a class="technoratiTag" href="http://technorati.com/tag/antlr" rel="tag">antlr</a>
        </p>]]>

</content>
</entry>
<entry>
<title>Peter Seibel has started blogging...</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/05/peter_seibel_ha.html" />
<modified>2007-05-02T22:05:07Z</modified>
<issued>2007-05-02T22:04:58Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.47</id>
<created>2007-05-02T22:04:58Z</created>
<summary type="text/plain"> Peter Seibel, author of Practical Common Lisp, has started blogging [atom feed]. The first post was on April 10th, but already there a few thought provoking posts up there. In particular, Software estimation considered harmful?, really made me think....</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[ <p>Peter Seibel, author of <a href="http://www.gigamonkeys.com/book/">Practical Common Lisp</a>, has <a href="http://www.gigamonkeys.com/blog/">started blogging</a> [<a href="http://www.gigamonkeys.com/blog/feed.atom">atom feed</a>]. The first post was on April 10th, but already there a few thought provoking posts up there. In particular, <a href="http://www.gigamonkeys.com/blog/2007/04/26/estimation-considered-harmful.html">Software estimation considered harmful?</a>, really made me think. In summary, the article states that software development estimates are a mechanism for communicating with others about a project to enable them to co-ordinate with the development team. Using estimates for this form of communication is not optimal in many cases and the article explains why. It is well worth reading.</p>]]>

</content>
</entry>
<entry>
<title>James Clark is blogging</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/04/james_clark_is.html" />
<modified>2007-05-01T08:13:20Z</modified>
<issued>2007-04-23T10:33:26Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.46</id>
<created>2007-04-23T10:33:26Z</created>
<summary type="text/plain">XML guru, James Clark, has started a blog....</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[<p>XML guru, <a href="http://www.google.com/search?q=%22james%20clark%22%20xml">James Clark</a>, has <a href="http://blog.jclark.com/">started a blog</a>.</p>]]>

</content>
</entry>
<entry>
<title>The Viking Laws</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/04/the_viking_laws.html" />
<modified>2007-04-23T10:33:12Z</modified>
<issued>2007-04-23T10:33:10Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.45</id>
<created>2007-04-23T10:33:10Z</created>
<summary type="text/plain"> Last year, I had a week long vacation in Iceland. While there, I picked up a t-shirt with the viking laws printed on the front. These laws were guidelines for conducting a viking expedition. The laws themselves are: Be...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[        <p>Last year, I had a week long vacation in Iceland. While there, I picked up a t-shirt with the viking laws printed on the front. These laws were guidelines for conducting a viking expedition. The laws themselves are:</p>
        <ol>
            <li>
                <p><a href="http://headrush.typepad.com/creating_passionate_users/2006/01/death_by_riskav.html" title="Creating Passionate Users - Death by Risk Aversion">Be brave and aggressive.</a></p>
                <ul>
                    <li><a href="http://www.gapingvoid.com/Moveable_Type/archives/003388.html" title="Gaping Void">Be direct.</a></li>
                    <li>Grab all opportunities.</li>
                    <li>Using varying methods of attack.</li>
                    <li>Be <a href="http://www.xprogramming.com/" title="xprogramming.com">versatile</a> and <a href="http://www.agilealliance.org/" title="Agile Alliance">agile</a>.</li>
                    <li><a href="http://blog.jackvinson.com/archives/2007/03/12/the_pernicious_thinking_behind_multitasking.html" title="blog.jackvinson.com&mdash;the_pernicious_thinking_behind_multitasking.html ">Attack one target at a time.</a></li>
                    <li><a href="http://c2.com/xp/YouArentGonnaNeedIt.html" title="YAGNI">Don't plan everything in detail.</a></li>
                    <li><a href="http://www.paulgraham.com/avg.html" title="Paul Graham - Beating the Averages">Use top quality weapons.</a></li>
                </ul>
            </li>
            <li>
                <p>Be prepared.</p>
                <ul>
                    <li>Keep weapons in good condition.</li>
                    <li><a href="http://www.pragmaticprogrammer.com/titles/mjwti/index.html" title="My Job Went to India">Keep in shape.</a></li>
                    <li><a href="http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html" title="Joel Spolsky - Guerrilla Interviewing">Find good battle comrades.</a></li>
                    <li><a href="http://www.ietf.org" title="The IETF, a standards body whose motto is 'rough concensus and running code'">Agree on important points.</a></li>
                    <li>Choose <b>one</b> chief.</li>
                </ul>
            </li>
            <li>
                <p>Be a good merchant.</p>
                <ul>
                    <li><a href="http://headrush.typepad.com/creating_passionate_users/2006/07/avoiding_the_fe.html" title="Creating Passionate Users - Ignore the competition">Find out what the market needs.</a></li>
                    <li><a href="http://blog.guykawasaki.com/2007/03/science_daily_w_1.html" title="A link to research on the harmful effects of hype">Don't make promises that you can't keep.</a></li>
                    <li>Don't demand overpayment.</li>
                    <li>Arrange things so that you can return.</li>
                </ul>
            </li>
            <li>
                <p>Keep the camp in order.</p>
                <ul>
                    <li>Keep things <a href="http://www.refactoring.com/" title="Refactoring">tidy</a> and organized.</li>
                    <li>Arrange enjoyable activities which strengthen the group.</li>
                    <li>Make sure everyone does useful work.</li>
                    <li><a href="http://www.pragmaticprogrammer.com/titles/dlret/index.html" title="Agile Retrospectives">Consult all members of the group for advice.</a></li>
                </ul>
            </li>
        </ol>
        <p>These laws are pretty relevant to software development and the software business in general. In my experience, problems during software development projects stem from one of these guidelines not being followed. It is particularly dangerous to ignore <i>Choose one chief</i>, <i>Find good battle comrades</i>, or <i>Don't make promises that you can't keep</i>. <a href="http://www.corriganjc.net/weblog/archives/2006/02/know_the_ways_o.html">Yet again</a>, advice on software development has come from an apparently unrelated source.</p>]]>

</content>
</entry>
<entry>
<title>Quick bits of programming language news...</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/01/quick_bits_of_p.html" />
<modified>2007-01-24T23:14:40Z</modified>
<issued>2007-01-24T23:14:37Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.44</id>
<created>2007-01-24T23:14:37Z</created>
<summary type="text/plain"> Dtrace for Javascript: There are details of how to set up Dtrace to trace Javascript code at Brendan Gregg&apos;s blog on blogs.sun.com. The bare bones is that he is providing a modified version of the Spider Monkey Javascript engine...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[        <p><a href="http://blogs.sun.com/brendan/entry/dtrace_meets_javascript">Dtrace for Javascript</a>: There are details of how to set up Dtrace to trace Javascript code at Brendan Gregg's blog on <i>blogs.sun.com</i>. The bare bones is that he is providing a modified version of the Spider Monkey Javascript engine with Dtrace probes coded in. Installing the shared library into the appropriate location on a machine running Solaris will give Dtrace visibility into Javascript code running in Firefox. AJAX bugs have nowhere to hide now.</p>
        <p><a href="http://www.r6rs.org/">A new draft of the R6RS for Scheme</a>: Revision 5.92 Recommended Specification for Scheme is up on site, www.r6rs.org. It has been split into two PDFs, one for the core language and one for the libraries. The total page count for the two files is about 150 pages.</p>]]>

</content>
</entry>
<entry>
<title>Fortress</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/01/fortress.html" />
<modified>2007-01-24T21:27:07Z</modified>
<issued>2007-01-24T00:54:11Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.43</id>
<created>2007-01-24T00:54:11Z</created>
<summary type="text/plain"> The researchers at SUN Labs have recently released a beta version of their new programming language, Fortress. It is available here under a BSD license. It is designed to tackle problems in the high performance computing arena and looks...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[        <p>The researchers at SUN Labs have recently released a beta version of their new
            programming language, Fortress. It is available <a href="http://fortress.sunsource.net/">here</a>
            under a BSD license. It is designed to tackle problems in the high performance computing
            arena and looks rather interesting.</p>
        <p>The positives are:</p>
        <ul>
            <li><p>The language is terse. There is very little boiler plate code needed to get up and running in Fortress. Hello world is:</p> 
<pre>export Executable
run(args:String...) = print "Hello, World!\n"</pre></li>
            <li>
                <p>Fortress is designed to have a syntax that resembles mathematical notation. For example, the absolute value function appears like this in Fortress: <code>|someVar|</code>. This makes the code really brief and also partly familiar to mathematically inclined readers. Fortress is a good way along to achieving Fortran's original goal of <b>for</b>mula <b>tran</b>slation.</p>
            </li>
            <li><p>Operators are functions and can be defined for classes, overloaded, etc. In addition to normal operators, it is possible to define bracket operators, e.g., the absolute value operator shown above.</p></li>
            <li><p>Multi-paradigm programming is supported, particularly for OO and functional styles.</p></li>
            <li><p>There is strong support for parallel/multi-processor computing. I have not played with this, but the demos include a parallel matrix multiplication example that demonstrates this.</p></li>
            <li><p>Fortress has support for comprehensions, similar to those in Python.</p></li>
        </ul>
        <p>The negatives are:</p>
        <ul>
            <li><p>The language is not fully implemented yet, so some features are not working, e.g., atomic modification of multiple variables is not fully implemented yet.</p></li>
            <li><p>Libraries are extremely sparse at the moment. There isn't even a maths library yet.</p></li>
        </ul>
        <p>Other interesting things:</p>
        <ul>
            <li><p>Fortress targets the JVM initially. This means that there is a possibility of calling Fortress programs from Java programs via the <a href="">interfaces defined by JSR 223</a>.</p></li>
            <li><p>Fortress makes extensive use of Unicode and this use isn't superficial: many of the mathematical operators and functions can be specified by the Unicode characters used to display them in mathematical papers. For example, the floor function on a variable x can be written as <code>&#9123;x&#9126;</code> . In fact the Fortress compiler and interpreter deal exclusively with Unicode. While Fortress programs can be written completely in ASCII there is a conversion stage that translates ASCII longhand into equivalent Unicode characters before the lexer and parser get at the code.</p></li>
        </ul>
]]>

</content>
</entry>
<entry>
<title>Standard Deviation</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2007/01/standard_deviat.html" />
<modified>2007-01-14T21:21:13Z</modified>
<issued>2007-01-14T21:21:09Z</issued>
<id>tag:www.corriganjc.net,2007:/weblog/1.42</id>
<created>2007-01-14T21:21:09Z</created>
<summary type="text/plain">If you find yourself needing to migrate an application from one of the major RDBMS packages to another, as I have recently, then this webpage is invaluable. It compares how MySQL, MS SQL, DB2, Oracle, and PostgreSQL compare to the...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[<p>If you find yourself needing to migrate an application from one of the major RDBMS packages to another, as I have recently, then <a href="http://troels.arvin.dk/db/rdbms/">this webpage</a> is invaluable. It compares how MySQL, MS SQL, DB2, Oracle, and PostgreSQL compare to the SQL92 standard. The page links to relevant documentation for each RDBMS, for each feature compared, which is really handy.</p>]]>

</content>
</entry>
<entry>
<title>I have a new job at Propylon</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2006/12/i_have_a_new_jo.html" />
<modified>2006-12-17T00:59:33Z</modified>
<issued>2006-12-17T00:56:51Z</issued>
<id>tag:www.corriganjc.net,2006:/weblog/1.41</id>
<created>2006-12-17T00:56:51Z</created>
<summary type="text/plain"> I have a new job. For the past 4 weeks I have been working for Propylon, a small Irish software company. Propylon develops publishing systems for governments: systems designed to help with the legislative drafting process or for publishing...</summary>
<author>
<name>JohnC</name>


</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[        <p>I have a new job. For the past 4 weeks I have been working for <a href="http://www.propylon.com/">Propylon</a>, a small Irish software company. Propylon develops publishing systems for governments: systems designed to help with the legislative drafting process or for publishing citizen information websites, for example. The company is small, young (I am one of the oldest developers there), and very busy. However, it is a lot of fun. They have me working on a Java EE based project and mucking about with databases. I have also been doing a little python programming. </p>
        <p>The staff there are pretty cool and know their stuff, so I am learning lots. A few of them have blogs, notably (in alphabetical order), <a href="http://www.dehora.net/journal/">Bill de h&Oacute;ra</a>, <a href="http://kaykays.com/personal/">Vicky Lee</a>, and <a href="http://seanmcgrath.blogspot.com/">Sean McGrath</a>. Anyhow, so far so good. I need to check with people here what is considered proprietary information, but hopefully I will be able to blog about some of the things I have learned over the past few week.</p>]]>

</content>
</entry>
<entry>
<title>Photographs of Iceland</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2006/11/photographs_of.html" />
<modified>2006-11-14T16:56:31Z</modified>
<issued>2006-11-14T16:56:28Z</issued>
<id>tag:www.corriganjc.net,2006:/weblog/1.40</id>
<created>2006-11-14T16:56:28Z</created>
<summary type="text/plain">I have just started to write up the visit to Iceland I made in October. Some of the photographs I took are up on Flickr now. There are some brief comments attached to some of them to put them in...</summary>
<author>
<name>JohnC</name>


</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[<p>I have just started to write up the visit to Iceland I made in October. Some of the photographs I took are <a href="http://www.flickr.com/photos/corriganjcc/sets/72157594376184320/">up on Flickr</a> now. There are some brief comments attached to some of them to put them in context. Enjoy!</p>]]>

</content>
</entry>
<entry>
<title>Object Oriented Design Principles</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2006/11/object_oriented.html" />
<modified>2006-11-14T13:31:43Z</modified>
<issued>2006-11-14T13:31:18Z</issued>
<id>tag:www.corriganjc.net,2006:/weblog/1.39</id>
<created>2006-11-14T13:31:18Z</created>
<summary type="text/plain">I came across a good set of design principles for object oriented software. The details are in PDF files linked off the page and each of these are well worth the read. I found the package cohesion paper, opened by...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[<p>I came across a good set of <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">design principles</a> for object oriented software. The details are in PDF files linked off the page and each of these are well worth the read. I found the package cohesion paper, opened by the second bunch of links, especially informative.</p>
]]>

</content>
</entry>
<entry>
<title>Humour - xkcd</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2006/11/humour_xkcd.html" />
<modified>2006-11-13T12:59:11Z</modified>
<issued>2006-11-13T12:59:07Z</issued>
<id>tag:www.corriganjc.net,2006:/weblog/1.38</id>
<created>2006-11-13T12:59:07Z</created>
<summary type="text/plain">Douglas Hofstadter would enjoy this comic....</summary>
<author>
<name>JohnC</name>


</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[<p>Douglas Hofstadter would enjoy this <a href="http://xkcd.com/c45.html">comic</a>.</p>]]>

</content>
</entry>
<entry>
<title>Python Ireland meeting</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2006/11/python_ireland.html" />
<modified>2006-11-12T23:24:39Z</modified>
<issued>2006-11-12T23:24:35Z</issued>
<id>tag:www.corriganjc.net,2006:/weblog/1.37</id>
<created>2006-11-12T23:24:35Z</created>
<summary type="text/plain"> I have been meaning to attend a Python Ireland meeting for quite a while. Last Wednesday I finally got around to it and I was treated to two excellent talks. The first was by Sean McGrath on Jython. This...</summary>
<author>
<name>JohnC</name>


</author>
<dc:subject>Programming</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[        <div class="pict"><img width="149" height="148" src="http://www.python.ie/images/python-logo.png" alt="Python logo"/></div>
        <p>I have been meaning to attend a Python Ireland <a href="http://wiki.python.ie/moin.cgi/PythonMeetup" title="Meetup wiki URL">meeting</a> for quite a while. Last Wednesday I finally got around to it and I was treated to two excellent talks. The first was by <a href="http://seanmcgrath.blogspot.com/" title="Sean McGrath's blog URL">Sean McGrath</a> on Jython. This gave an introduction to Jython, with some examples of where it could be useful in a Java environment. The SWT GUI example was particularly good in showing how Jython could compact GUI code for Java applications. Sean also filled in a lot of background around Python on the JVM and Microsoft's CLR and this lead to a lively discussion.</p>
        <p><a href="http://blogs.translucentcode.org/mick/" title="MickTwomey's blog URL">Mick Twomey</a> gave the second talk, briefly, as the Jython discussions took up most of the session, and described the Web Server Gateway Interface (WSGI). This is a rather clever API, developed to modularize Python web frameworks. It essentially applies the decorator pattern to code running in the web framework. For example, if you have a web application that you want to have protected with a password, you could use an authentication module with the WSGI to add that to your application. In a sense, the authentication module is applied as a decorator for the application code. Mick also gave an example of <code>gzip</code> compression. WSGI sounds pretty useful.</p>
        <p>After the talks the attendees took a short walk to The Pembroke for a beer and more conversation. This could become a regular occurrence for me.</p>]]>

</content>
</entry>
<entry>
<title>Mea culpa</title>
<link rel="alternate" type="text/html" href="http://www.corriganjc.net/weblog/archives/2006/10/mea_culpa.html" />
<modified>2006-10-21T14:29:59Z</modified>
<issued>2006-10-21T14:29:56Z</issued>
<id>tag:www.corriganjc.net,2006:/weblog/1.36</id>
<created>2006-10-21T14:29:56Z</created>
<summary type="text/plain">My blog has been sadly neglected and I have nobody to blame but myself. It has been almost 4 months since my last entry. However, in my defense, those 4 months have been eventful and not always in a pleasant...</summary>
<author>
<name>JohnC</name>


</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.corriganjc.net/weblog/">
<![CDATA[<p>My blog has been sadly neglected and I have nobody to blame but myself. It has been almost 4 months since my last entry. However, in my defense, those 4 months have been eventful and not always in a pleasant way.</p>
<p>Firstly, a cousin of mine, who was a year younger than me, died of cancer. That was a shock and really brought home the preciousness of time. I have spent a lot of time reflecting on life since.</p>
<p>Secondly, to use the HR terminology, I was <i>impacted in a reduction of force</i> in SUN, i.e., I was laid off at the start of October. I have spent most of the time since then getting my CV in order and searching for jobs. I have some interviews coming up and the market looks reasonably buoyant, so I am not too worried. I am still looking, however, and any pointers to interesting jobs in Ireland, the UK, or mainland Europe would be appreciated.</p>
<p>Lastly, on a pleasant note, I am just back from a holiday in Iceland. I really enjoyed that and it will be the topic of a later blog posting.</p>
<p>Anyhow, this is about as close to a meta-blogging post as I want to get. I will end it with an apology for the hiatus and a promise to post more regularly.</p>]]>

</content>
</entry>

</feed>