<?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>KYRIAKOS ANASTASAKIS - ΚΥΡΙΑΚΟΣ ΑΝΑΣΤΑΣΑΚΗΣ &#187; Work</title>
	<atom:link href="http://kyriakos.anastasakis.net/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://kyriakos.anastasakis.net</link>
	<description></description>
	<lastBuildDate>Wed, 14 Oct 2009 20:03:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Must have Eclipse plugins</title>
		<link>http://kyriakos.anastasakis.net/2009/10/14/must-have-eclipse-plugins/</link>
		<comments>http://kyriakos.anastasakis.net/2009/10/14/must-have-eclipse-plugins/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 19:51:07 +0000</pubDate>
		<dc:creator>Kyriakos Anastasakis</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://kyriakos.anastasakis.net/?p=204</guid>
		<description><![CDATA[From time to time I develop something on Eclipse. Apart from the usual Eclipse operations (build and test) that I do with the Eclipse Ant and JUnit plugins (they ship with Eclipse for Java), I also wanted to carry out some dependency analysis on existing code. Of course JDepend is the obvious option, but I [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time I develop something on Eclipse. Apart from the usual Eclipse operations (build and test) that I do with the Eclipse Ant and JUnit plugins (they ship with Eclipse for Java), I also wanted to carry out some dependency analysis on existing code. Of course JDepend is the obvious option, but I found a nice article from IBM that suggests some additional plugins that help the coder carry out day to day tasks such as Complexity monitoring and Coding standard analysis.</p>
<p>The following is a summary of the plugins proposed by the article. Of course all of them are opensource/free.</p>
<table border="1">
<tbody>
<tr>
<td><strong>Tool</strong></td>
<td><strong>Purpose</strong></td>
<td><strong>URL for Eclipse plugin</strong></td>
</tr>
<tr>
<td>CheckStyle</td>
<td>Coding standard analysis</td>
<td>http://eclipse-cs.sourceforge.net/update/</td>
</tr>
<tr>
<td>Coverlipse</td>
<td>Test code coverage</td>
<td>http://coverlipse.sf.net/update</td>
</tr>
<tr>
<td>CPD</td>
<td>Copy/Paste detection</td>
<td>http://pmd.sourceforge.net/eclipse/</td>
</tr>
<tr>
<td>JDepend</td>
<td>Package dependency analysis</td>
<td>http://andrei.gmxhome.de/eclipse/</td>
</tr>
<tr>
<td>Metrics</td>
<td>Complexity monitoring</td>
<td>http://metrics.sourceforge.net/update</td>
</tr>
</tbody>
</table>
<p>The full IBM article can be found here: <a href="http://www.ibm.com/developerworks/java/library/j-ap01117/" target="_blank">http://www.ibm.com/developerworks/java/library/j-ap01117/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kyriakos.anastasakis.net/2009/10/14/must-have-eclipse-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exception using XMLConfiguration</title>
		<link>http://kyriakos.anastasakis.net/2009/02/23/exception-using-xmlconfiguration/</link>
		<comments>http://kyriakos.anastasakis.net/2009/02/23/exception-using-xmlconfiguration/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 14:01:36 +0000</pubDate>
		<dc:creator>Kyriakos Anastasakis</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[UML2Alloy]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://kyriakos.anastasakis.net/?p=157</guid>
		<description><![CDATA[I tried using the Apache XMLConfiguration to save the settings of an application I am developing to XML format. When I used it with Java 1.5 it all worked perfectly; however if I tried using it with Java 1.6 I was getting the following exception.

Exception in thread "main" java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown [...]]]></description>
			<content:encoded><![CDATA[<p>I tried using the <a href="http://commons.apache.org/configuration/" target="_blank">Apache XMLConfiguration</a> to save the settings of an application I am developing to XML format. When I used it with Java 1.5 it all worked perfectly; however if I tried using it with Java 1.6 I was getting the following exception.</p>
<p><span style="font-family: Courier; font-size:small;"><code><br />
Exception in thread "main" java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z<br />
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(Unknown Source)<br />
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)<br />
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)<br />
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)<br />
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)<br />
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)<br />
at org.apache.commons.configuration.XMLConfiguration.save(XMLConfiguration.java:880)<br />
at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration$FileConfigurationDelegate.save(AbstractHierarchicalFileConfiguration.java:454)<br />
at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:546)<br />
at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:513)<br />
at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:491)<br />
at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:403)<br />
at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.save(AbstractHierarchicalFileConfiguration.java:199)<br />
</code></span></p>
<p>After doing some search on google I found that this can be a problem with the xerces XML library (xercesImpl.jar). Checking the 3rd party libraries I am using in my project, I found a library that was using and distributing an earlier version of xercesImpl.jar.</p>
<p>I downloaded the latest version (2.91) of xercesImpl.jar from the Apache xerces project (<a href="http://xerces.apache.org/mirrors.cgi#binary" target="_blank">http://xerces.apache.org/mirrors.cgi#binary</a>) and replaced in the 3rd party library I was using the xercesImpl.jar file with the one I downloaded. Now everything seems to work fine, even in Java 1.6.  <img src='http://kyriakos.anastasakis.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://kyriakos.anastasakis.net/2009/02/23/exception-using-xmlconfiguration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Certification</title>
		<link>http://kyriakos.anastasakis.net/2007/09/03/net-certification/</link>
		<comments>http://kyriakos.anastasakis.net/2007/09/03/net-certification/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 16:14:54 +0000</pubDate>
		<dc:creator>Kyriakos Anastasakis</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[certification]]></category>

		<guid isPermaLink="false">http://kyriakos.anastasakis.net/blog/2007/09/03/net-certification/</guid>
		<description><![CDATA[A few weeks ago (http://kyriakos.anastasakis.net/prof/blog/?p=24) I posted that I was interested in .NET certification. Unfortunately I haven&#8217;t had the time to work on it since then. The main incentive was to get acquainted with the DSL tools provided in .NET 3.0 (even though the available certification exams are only for .NET 2.0).
Today I read  [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago (<a href="http://kyriakos.anastasakis.net/prof/blog/?p=24">http://kyriakos.anastasakis.net/prof/blog/?p=24</a>) I posted that I was interested in .NET certification. Unfortunately I haven&#8217;t had the time to work on it since then. The main incentive was to get acquainted with the DSL tools provided in .NET 3.0 (even though the available certification exams are only for .NET 2.0).</p>
<p>Today I read  an article in ComputerWeekly that there is a shortage of .NET skills (<a href="http://www.computerweekly.com/Articles/2007/09/03/226513/employers-struck-by-shortage-of-.net-skills.htm">http://www.computerweekly.com/Articles/2007/09/03/226513/employers-struck-by-shortage-of-.net-skills.htm)</a></p>
<p>It would be interesting to work on a contact .NET project and see the potential of applying Model Driven techniques in practice&#8230; But I guess I will have to find some time to study for the certification first.</p>
]]></content:encoded>
			<wfw:commentRss>http://kyriakos.anastasakis.net/2007/09/03/net-certification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SiTra and Eclipse 3.3 or Java 1.6</title>
		<link>http://kyriakos.anastasakis.net/2007/08/25/sitra-and-eclipse-33-or-java-16/</link>
		<comments>http://kyriakos.anastasakis.net/2007/08/25/sitra-and-eclipse-33-or-java-16/#comments</comments>
		<pubDate>Sun, 26 Aug 2007 00:30:00 +0000</pubDate>
		<dc:creator>Kyriakos Anastasakis</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://kyriakos.anastasakis.net/blog/2007/08/25/sitra-and-eclipse-33-or-java-16/</guid>
		<description><![CDATA[I recently installed eclipse 3.3 and Java 1.6. Today I tried to use SiTra (Simple Transformations in Java) but when I tried to compile it Java started complaining on the following methods of the SimpleTransformerImpl.java:

public Object transform(Object object) {
return transform(Rule.class, object);
}
public List&#60;? extends Object&#62; transformAll(List&#60;? extends Object&#62; sourceObjects) {
return transformAll(Rule.class, sourceObjects);
}
The error  was something [...]]]></description>
			<content:encoded><![CDATA[<p>I recently installed eclipse 3.3 and Java 1.6. Today I tried to use SiTra (Simple Transformations in Java) but when I tried to compile it Java started complaining on the following methods of the <em>SimpleTransformerImpl.java</em>:<br />
<code><br />
public Object transform(Object object) {<br />
return transform(Rule.class, object);<br />
}<br />
public List&lt;? extends Object&gt; transformAll(List&lt;? extends Object&gt; sourceObjects) {<br />
return transformAll(Rule.class, sourceObjects);<br />
}</code></p>
<p>The error  was something about <em>java inconvertible types</em>. I don&#8217;t know if it is the new version of eclipse or Java 1.6. Looks like for some reason the compiler doesn&#8217;t recognise that <em>Rule.class</em> is of type <em>Class&lt;? extends Rule&lt;S, T&gt;&gt;</em>, so as to call the <em>public &lt;S, T&gt; T transform(Class&lt;? extends Rule&lt;S, T&gt;&gt; ruleType, S source)</em></p>
<p>A simple solution is to ct the Rule.class expression to Class (it sounds weird but it worked).</p>
<p>So the  <em>transform </em>and <em>transformAll</em> methods become:</p>
<p><code><br />
public Object transform(Object object) {<br />
Class r = Rule.class;<br />
return transform(r, object);<br />
}<br />
public List&lt;? extends Object&gt; transformAll(List&lt;? extends Object&gt; sourceObjects){<br />
Class r = Rule.class;<br />
return transformAll(r, sourceObjects);<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://kyriakos.anastasakis.net/2007/08/25/sitra-and-eclipse-33-or-java-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making UML2Alloy compatible with Alloy v4.0</title>
		<link>http://kyriakos.anastasakis.net/2007/08/02/making-uml2alloy-compatible-with-alloy-v40/</link>
		<comments>http://kyriakos.anastasakis.net/2007/08/02/making-uml2alloy-compatible-with-alloy-v40/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 10:56:24 +0000</pubDate>
		<dc:creator>Kyriakos Anastasakis</dc:creator>
				<category><![CDATA[Alloy Analyzer]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://kyriakos.anastasakis.net/blog/2007/08/02/making-uml2alloy-compatible-with-alloy-v40/</guid>
		<description><![CDATA[Alloy Analyzer v4.0 has been out for quite a while. Alloy v4.0 is an extension of the Alloy v 3.0 language (http://alloy.mit.edu/alloy4/quickguide/a4.html). More specifically parts of the concrete syntax of the language has changed (i.e. when invoking a predicate from within another predicate we now have to use brackets &#8220;pred1 [param1,param2,..]&#8221; instead of parentheses &#8220;pred [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://alloy.mit.edu" target="_blank">Alloy Analyzer</a> v4.0 has been out for quite a while. Alloy v4.0 is an extension of the Alloy v 3.0 language (<a href="http://alloy.mit.edu/alloy4/quickguide/a4.html" target="_blank">http://alloy.mit.edu/alloy4/quickguide/a4.html</a>). More specifically parts of the concrete syntax of the language has changed (i.e. when invoking a predicate from within another predicate we now have to use brackets &#8220;<em>pred1 [param1,param2,..]</em>&#8221; instead of parentheses &#8220;<em>pred 1(param1, param2,..)</em>&#8220;. Also some of the properties of the language have changed (in MDA terms constraints on the metamodel, or well-formedness rules have changed). For example in Alloy 4 you are able to overload predicates, functions and fields. These are relatively small changes and it should be easy to accommodate them in UML2Alloy.</p>
<p>However, Alloy v4.0 has been developed from scratch and it is based on the <a href="http://web.mit.edu/~emina/www/kodkod.html" target="_blank">kodkod</a> model finder. The AST <em>implementation</em> has changed substantially and the convenience methods provided on the AST model elements are fine tuned for the Alloy compiler. For example Signature constructors are private and I couldn&#8217;t find a way to update the properties of Signatures (i.e. the Multiplicity of the Signature) after a Signature has been created.</p>
<p>Of course this is perfect if you have an Alloy model and you just want to parse, but not very convenient if you use an MDA approach to instantiate Alloy AST objects. For example in UML2Alloy you can change the Multiplicity of a Signature (i.e. change from <em>set</em> to <em>some</em> to enforce that some Signature instances will exist in the model). If you don&#8217;t have access to the <em>Multiplicity </em>attribute of the Signature class, after the object has been created, complicates the situation.</p>
<p>Moreover the AST class elements have been defined as <em>final</em> so there is no way you can override the Alloy v4.0 AST classes.</p>
<p>So, I spent almost 1 day evaluating the situation and trying to find a solution. One solution would be to create my own implementation of Alloy&#8217;s AST. Another would be to create wrapper classes of Alloy&#8217;s AST that will have pointers to the actual Alloy implementation.</p>
<p>Then I stepped back and thought about the siltation. Well,  I already have a rather stable implementation that uses Alloy v3.0 AST. In Alloy v4.0 the AST has NOT changed. Just the concrete syntax. So the solution is easy.</p>
<p>Currently in UML2Alloy after the Alloy AST objects have been generated by <a href="http://www.cs.bham.ac.uk/~bxb/SiTra.html" target="_blank">SiTra</a>, a visitor is used to create a text file that contains the Alloy model. So, all I have to do is use another visitor and override the methods that create the part of the model for which the concrete syntax has changed.</p>
]]></content:encoded>
			<wfw:commentRss>http://kyriakos.anastasakis.net/2007/08/02/making-uml2alloy-compatible-with-alloy-v40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET 2.0 Certification?</title>
		<link>http://kyriakos.anastasakis.net/2007/07/24/net-20-certification/</link>
		<comments>http://kyriakos.anastasakis.net/2007/07/24/net-20-certification/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 22:42:58 +0000</pubDate>
		<dc:creator>Kyriakos Anastasakis</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://kyriakos.anastasakis.net/blog/2007/07/24/net-20-certification/</guid>
		<description><![CDATA[Lately I have started becoming interested in becoming a .NET certified professional. But is it worth it starting to work towards a .NET 2.0 certification, considering the visual studio 2008 will be out in 6 months time? However it will probably take sometime after the release of VS 2008 for MS to review their certifications.
For [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have started becoming interested in becoming a .NET certified professional. But is it worth it starting to work towards a .NET 2.0 certification, considering the visual studio 2008 will be out in 6 months time? However it will probably take sometime after the release of VS 2008 for MS to review their certifications.</p>
<p>For the time being I am thinking of working in my spare time for  the <em>MCPD: Web Developer </em>certification. The main reason for this is that I need to get my mind off the PhD from time to time. I also have a free copy of VS 2005 Professional, when I attended the launch tour, so practising for the exams shouldn&#8217;t be a problem. My plan is to be ready for the first exam by sometime at the end of August. Let&#8217;s see if I can make it!</p>
]]></content:encoded>
			<wfw:commentRss>http://kyriakos.anastasakis.net/2007/07/24/net-20-certification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UML vs DSL</title>
		<link>http://kyriakos.anastasakis.net/2007/07/20/uml-vs-dsl/</link>
		<comments>http://kyriakos.anastasakis.net/2007/07/20/uml-vs-dsl/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 20:08:28 +0000</pubDate>
		<dc:creator>Kyriakos Anastasakis</dc:creator>
				<category><![CDATA[Modelling]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://kyriakos.anastasakis.net/blog/2007/07/20/uml-vs-dsl/</guid>
		<description><![CDATA[Recently I came across  an audio file from the discussion on UML vs DSL that took place in a panel in the Code Generation 2007 conference. The panel with leading experts from the industry, discusses the latest trends in the modelling languages used.
The file can be found at: http://www.codegeneration.net/audio/cgn-episode1.mp3
]]></description>
			<content:encoded><![CDATA[<p>Recently I came across  an audio file from the discussion on UML vs DSL that took place in a panel in the Code Generation 2007 conference. The panel with leading experts from the industry, discusses the latest trends in the modelling languages used.</p>
<p>The file can be found at: <a href="http://www.codegeneration.net/audio/cgn-episode1.mp3" title="http://www.codegeneration.net/audio/cgn-episode1.mp3" target="_blank">http://www.codegeneration.net/audio/cgn-episode1.mp3</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kyriakos.anastasakis.net/2007/07/20/uml-vs-dsl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.codegeneration.net/audio/cgn-episode1.mp3" length="30801376" type="audio/mpeg" />
		</item>
	</channel>
</rss>
