<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2titles.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemtitles.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>crossedstreams.com</title>
	
	<link>http://blog.crossedstreams.com</link>
	<description>Total protonic reversal!</description>
	<lastBuildDate>Fri, 13 Aug 2010 23:34:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/crossedstreams" /><feedburner:info uri="crossedstreams" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcrossedstreams" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcrossedstreams" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcrossedstreams" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/crossedstreams" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcrossedstreams" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fcrossedstreams" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcrossedstreams" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Oracle Sues Google over Android</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/qxY7UGa6Ziw/</link>
		<comments>http://blog.crossedstreams.com/development/oracle-sues-google-over-android/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 22:58:46 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=821</guid>
		<description><![CDATA[News has emerged of legal action being taken by Oracle (which recently acquired Sun Microsystems, the company behind Java) against Google over alleged infringements of patents in the Android operating system which currently enjoys great popularity in the mobile phone market.
As I&#8217;ve been giving software patents a bit of thought recently, I find this development [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://arstechnica.com/tech-policy/news/2010/08/oracle-sues-google-over-use-of-java-in-android-sdk.ars">News has emerged</a> of legal action being taken by Oracle (which recently acquired Sun Microsystems, the company behind Java) against Google over alleged infringements of patents in the Android operating system which currently enjoys great popularity in the mobile phone market.</p>
<p>As I&#8217;ve been giving <a href="http://blog.crossedstreams.com/development/on-software-patents/">software patents</a> a bit of thought recently, I find this development quite interesting. The actual complaint against Google has been posted on <a title="Oracle vs. Google on VentureBeat" href="http://mobile.venturebeat.com/2010/08/12/oracle-sues-google-over-android/">VentureBeat</a> and is worth a read. The language used comes over as direct and aggressive, but I think that&#8217;s just the way these legal claims are phrased generally.</p>
<p>There are a number of patents involved, all issued in the United States &#8211; so what are the alleged infringements? Let&#8217;s take a look &#8211; I&#8217;ll link the patents mentioned to copies of the claims and give a few thoughts based on a quick review of what I think the gist is. I should also say that patent claims are generally pretty dull to read so I don&#8217;t claim to have done a detailed analysis!</p>
<p><a href="http://www.google.com/patents/about?id=dyQGAAAAEBAJ&amp;dq=6125447">US Patent No. 6125447, &#8220;Protection domains to provide security in a computer system&#8221;</a> filed in 1997. Lays out mechanisms to manage what software components can do in a computer system.</p>
<p><a href="http://www.google.com/patents/about?id=G1YGAAAAEBAJ&amp;dq=6,192,476">US Patent No. 6192476, &#8220;Controlling access to a resource&#8221;</a>, filed again in 1997. A method for controlling, for example, the access a thread has to system resources based on what code is running in the thread at the time.</p>
<p><a href="http://www.google.com/patents/about?id=TzsPAAAAEBAJ&amp;dq=5966702">US Patent No. 5966702, &#8220;Method and apparatus for pre-processing and packaging class files&#8221;</a> filed in 1999. A collection of mechanisms used in Java&#8217;s classloading operations.</p>
<p><a href="http://www.patentgenius.com/patent/7426720.html">US Patent No. 7426720, &#8220;System and method for dynamic preloading of classes through memory space cloning of a master runtime system process&#8221;</a>, filed 2003. Er &#8211; what the title says!</p>
<p><a href="http://www.google.com/patents/about?id=8xkPAAAAEBAJ&amp;dq=RE38104">US Patent No. RE38104, &#8220;Method and apparatus for resolving data references in generated code&#8221;</a>, a re-issue of another patent originally filed in 1992 &#8211; three years before Java was released &#8211; by <a href="http://en.wikipedia.org/wiki/James_Gosling"><em>the</em> James Gosling</a>. This patent is all about mechanisms Java uses to achieve the flexibility of an interpreted language with performance more akin to a compiled language. I wonder if this (potential) patent suit was a driver for Gosling&#8217;s departure from Oracle in early 2010?</p>
<p><a href="http://www.google.com/patents/about?id=U-4UAAAAEBAJ&amp;dq=6910205">US Patent No. 6910205, &#8220;Interpreting functions utilizing a hybrid of virtual and native machine&#8221;</a>, filed 2002. More mechanisms Java uses to improve performance.</p>
<p><a href="http://www.google.com/patents/about?id=mEwEAAAAEBAJ&amp;dq=6061520">US Patent No. 6061520, &#8220;Method and system for performing static initialization&#8221;</a>, filed 1998, improving performance of initialising static arrays.</p>
<p>Regardless of your views on software patents in general, I&#8217;d say these patents are quite well written and quite specific to the ways Java works. It&#8217;s likely that many will view this action as evil Oracle sniping at good ol&#8217; Google, but I&#8217;m not sure I share that view.</p>
<p>This isn&#8217;t a corporate giant picking on the little guy &#8211; right now, Oracle is  worth around $115bn, and Google weighs in at around $158bn. Why shouldn&#8217;t Oracle use the intellectual property assets it acquired when it bought Sun?</p>
<p>Will this lawsuit damage Google or kill Android? I don&#8217;t think so &#8211; besides the size and diversity of Google, Oracle and Google don&#8217;t seem to be directly competing in related domains, so it wouldn&#8217;t make much sense for Oracle to actually want to damage Google. I expect that this action is a move to get Oracle a slice of the Android pie and I think it might succeed.</p>
<p>Will Oracle&#8217;s customers turn away because of this action? Oracle&#8217;s big in the corporate world, and big companies aren&#8217;t very likely to take issue with business machinations such as these.</p>
<p>It could turn evil from there. If legal action against Google sticks, is it possible for action to be taken against everyone downstream of Google from the phone companies to we the users? It&#8217;s more difficult to imagine those kinds of moves being played by Oracle &#8211; there would surely then be reputational damage.</p>
<p>Another question I&#8217;m not sure of the answer to &#8211; where is OpenJDK in all this? Does this action present a future risk to these open source efforts or are there differences in licensing between Android and other open source initiatives?</p>
<p>At this stage at least, it seems to me that Oracle is playing the patent game by the rules. If there&#8217;s something wrong, it&#8217;s with the game, not the players.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/oracle-sues-google-over-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/oracle-sues-google-over-android/</feedburner:origLink></item>
		<item>
		<title>Hibernate 3 Tip – Log PreparedStatement bindings</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/27LOZwdaVsQ/</link>
		<comments>http://blog.crossedstreams.com/development/hibernate-3-tip-log-preparedstatement-bindings/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 18:23:24 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=811</guid>
		<description><![CDATA[I was trying to see what values were being bound to placeholders in the JDBC PreparedStatements generated by Hibernate DAO test classes I&#8217;ve created as they go about their persistent business.
Dead easy, right? Hibernate supports a configuration parameter &#8217;show_sql&#8217;. Set that to true and see what&#8217;s going on under the covers. Well&#8230; not so much. [...]]]></description>
			<content:encoded><![CDATA[<p>I was trying to see what values were being bound to placeholders in the JDBC PreparedStatements generated by Hibernate DAO test classes I&#8217;ve created as they go about their persistent business.</p>
<p>Dead easy, right? Hibernate supports a configuration parameter &#8217;show_sql&#8217;. Set that to true and see what&#8217;s going on under the covers. Well&#8230; not so much. For a simple save operation, setting that results in the following logged output:</p>
<blockquote><p>Hibernate: insert into ComponentGroup (name, id) values (?, ?)</p></blockquote>
<p>Not exactly what I was hoping for. I don&#8217;t know what values have been bound to those two question-marks. After a bit of faffing and google-fu, I found <a href="http://sathyasekar.wordpress.com/2008/12/29/enabling-log4j-logging-in-hibernate/">this short-but-sweet post</a> which showed a number of additional logging options to enable (assuming use of log4j). As it turns out, the important one in this case is:</p>
<blockquote><p>log4j.logger.org.hibernate.type=TRACE</p></blockquote>
<p>Which add a little more detail to the output:</p>
<blockquote><p>Hibernate: insert into ComponentGroup (name, id) values (?, ?)<br />
19:23:40,753 TRACE StringType:151 &#8211; binding &#8216;group1&#8242; to parameter: 1<br />
19:23:40,754 TRACE LongType:151 &#8211; binding &#8216;1&#8242; to parameter: 2</p></blockquote>
<p>It has to be the TRACE level, not DEBUG, and I can now see that the effective SQL, substituting for the placeholders is</p>
<blockquote><p>insert into ComponentGroup(name, id) values (&#8217;group1&#8242;, 1)</p></blockquote>
<p>which helps me work out the detail of what&#8217;s going on.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/hibernate-3-tip-log-preparedstatement-bindings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/hibernate-3-tip-log-preparedstatement-bindings/</feedburner:origLink></item>
		<item>
		<title>Quick Review of ‘Spring in Action’</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/cA6wQVfz0bI/</link>
		<comments>http://blog.crossedstreams.com/development/quick-review-of-spring-in-action/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 21:24:40 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=702</guid>
		<description><![CDATA[My better half bought me a copy of Spring in Action (2nd Edition) by Craig Walls last year. I think it&#8217;s been a great help for me as I&#8217;ve been getting started with Spring.
I&#8217;d say the first four chapters are worth reading in sequence to get a feel for what Spring does and how it [...]]]></description>
			<content:encoded><![CDATA[<p>My better half bought me a copy of <a href="http://www.amazon.co.uk/Spring-Action-Craig-Walls/dp/1933988134/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1270933333&amp;sr=8-1">Spring in Action (2nd Edition)</a> by Craig Walls last year. I think it&#8217;s been a great help for me as I&#8217;ve been getting started with Spring.</p>
<p>I&#8217;d say the first four chapters are worth reading in sequence to get a feel for what Spring does and how it does it.</p>
<p>Chapter 1 introduces what Spring does, with some really nice examples of how using the dependency injection capabilities allows components to be mocked up and unit tested much more easily. I think writing good unit tests can be challenging (well, it is for me anyway) so it&#8217;s nice to see this theme taking a prominent role.</p>
<p>Chapters 2 and 3 start onto a description of Spring&#8217;s dependency injection capabilities, from declaring beans and references to craziness like declaratively substituting method implementations in a class.</p>
<p>Chapter 4 moves on to Spring support for aspect-oriented programming, a technique with which behaviours of an application that really don&#8217;t belong in an object&#8217;s code (think security, auditing, etc.) can be defined outside of your business logic. There&#8217;s a nice theme of examples running through these chapters that somehow does make this stuff make intuitive sense.</p>
<p>From here on in things get a bit more esoteric. Other topics I found interesting were database access (covering JDBC, Hibernate, JPA and more), web services, EJB and JMS &#8211; but there are many more. For these later topics, you tend to get a little background and step-by-step introductions with examples. Given the range of topics there&#8217;s a often a surprising depth. The material has also proven to be quite accessible when I&#8217;ve gone back for reference.</p>
<p>There aren&#8217;t really any downsides. Where I&#8217;d like the material to go deeper there are other books I can get that are more specific. The occasional humour can be irritating if I&#8217;m in the wrong mood but hey, it&#8217;s in moderation.</p>
<p>If you&#8217;re looking for a good general introduction to what Spring is and what it can do for you,  can recommend this book.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/quick-review-of-spring-in-action/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/quick-review-of-spring-in-action/</feedburner:origLink></item>
		<item>
		<title>On Software Patents</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/BBsUkcJReAY/</link>
		<comments>http://blog.crossedstreams.com/development/on-software-patents/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 21:25:05 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[patents]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=773</guid>
		<description><![CDATA[As I&#8217;ve been trying to broaden my knowledge of IT and software development, I thought it would be a good idea to read up on the issues around Intellectual Property as it relates to software &#8211; specifically, the idea of software patents and the implications for developers. I think this stuff is important &#8211; infringement [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve been trying to broaden my knowledge of IT and software development, I thought it would be a good idea to read up on the issues around Intellectual Property as it relates to software &#8211; specifically, the idea of software patents and the implications for developers. I think this stuff is important &#8211; infringement of patents can lead to legal action which is expensive and can damage reputations.</p>
<p>There&#8217;s a lot of information out there on the subject, so rather than just repeat stuff that&#8217;s already been said, I thought I would link off a few resources I thought were informative/enjoyable and why.</p>
<p>I found <a href="http://en.wikipedia.org/wiki/Paul_Graham_%28computer_programmer%29">Paul Graham</a>&#8217;s essay, &#8216;<a href="http://www.paulgraham.com/softwarepatents.html">Are Software Patents Evil?</a>&#8216; after reading a few other resources, but I&#8217;d recommend it as a first read as it&#8217;s not too long and it has a prosaic style which I thought was quite accessible. It also seems to be a fairly balanced account of the pros and cons of software patents, whereas the other resources I found tended to be in one camp or the other.</p>
<p>Ciaran O&#8217;Riordan has published a <a href="http://ciaran.compsoc.com/software-patents.html">lengthy overview</a> of the state of play with Software Patents in Europe, also referencing interesting material about the reality of software patents and impact on innovation in the US. There&#8217;s a lot of information here between the content and the links and I found it took a bit of digesting, but worth it to find out the recent history with regards software patent legislation.</p>
<p><a href="http://www.iusmentis.com/computerprograms/opensourcesoftware/patentrisks/">Patent Risks of Open Source Software</a> is a nice short article, focusing on the legal risks inherent in Open Source. There are some good points made in this paper, answering questions like &#8216;can you just swap out an open source component that infringes a patent for a custom component you wrote yourself and be safe?&#8217;. Although the article is focussed on Open Source, it seems (to me) that most of it is actually applicable to software in general &#8211; how much protection do you really get if the closed source software that you&#8217;re using is found to infringe patents?</p>
<p>I couldn&#8217;t decide whether a user of software that infringes on a third party&#8217;s patent could be liable for infringement themselves, so I asked the <a href="http://stackoverflow.com/questions/3160683/is-patent-infringement-transitive">question on stackoverflow.com</a>. The answer seems to be that yes, a user could be liable, and there are a couple of statements and links off to articles that support that conclusion.</p>
<p>It seems to be something of a consensus that the software patent situation is becoming more heated, and that this focus is being driven by <a href="http://www.apple.com/pr/library/2010/03/02patents.html">newer</a> <a href="http://en.wikipedia.org/wiki/1-Click#Barnes_.26_Noble">players</a> in the game taking legal action perhaps inappropriately against other parties infringing their patents. Searching for company names and &#8216;patent&#8217; tends to find sequences of results that patent-related news for that company.</p>
<p>The most surprising thing for me about this whole patent business is that <a href="http://en.wikipedia.org/wiki/Term_of_patent">a patent lasts twenty years</a>. In IT today, the world changes week by week and month by month. <a href="http://www.walthowe.com/navnet/history.html">Twenty years ago, there was no such thing as a website</a>. I guess no-one patented the idea of a website. I wonder how the world would be different if someone had?</p>
<p>Pop quiz &#8211; can you think of an example of a computing technology that succeeded because it wasn&#8217;t patented, or one that succeeded because it was?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/on-software-patents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/on-software-patents/</feedburner:origLink></item>
		<item>
		<title>Nexus and OpenJDK</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/Ctg9MOvBJqA/</link>
		<comments>http://blog.crossedstreams.com/development/nexus-and-openjdk/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 21:27:25 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=767</guid>
		<description><![CDATA[An odd one tonight, using the Nexus Repository Manager with OpenJDK, the open source Java implementation. Nexus mostly works fine, but fails to re-index the public repository group with (according to the wrapper log) a JVM crash.
jvm 1    &#124; 2010-06-21 20:55:11 INFO  [pool-1-thread-1] &#8211; o.s.n.i.DefaultInde~          &#8211; Cascading merge of group indexes for group &#8220;public&#8221;, where [...]]]></description>
			<content:encoded><![CDATA[<p>An odd one tonight, using the <a href="http://nexus.sonatype.org/">Nexus Repository Manager</a> with OpenJDK, the open source Java implementation. Nexus mostly works fine, but fails to re-index the public repository group with (according to the wrapper log) a JVM crash.</p>
<blockquote><p>jvm 1    | 2010-06-21 20:55:11 INFO  [pool-1-thread-1] &#8211; o.s.n.i.DefaultInde~          &#8211; Cascading merge of group indexes for group &#8220;public&#8221;, where repository &#8220;releases&#8221; is member.<br />
wrapper  | JVM exited unexpectedly.<br />
wrapper  | JVM exited in response to signal UNKNOWN (11).</p></blockquote>
<p>The problem manifested in the Eclipse IDE when the repositories view wouldn&#8217;t update, showing an empty folder under the Nexus public repo.</p>
<p>Switching out the OpenJDK implementation for the Sun implementation fixes the problem, and now re-indexing the public repository group works fine. Bug report <a href="https://issues.sonatype.org/browse/NEXUS-3603">NEXUS-3603</a> raised, but if you&#8217;re seeing this issue swapping the Java implementations seems to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/nexus-and-openjdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/nexus-and-openjdk/</feedburner:origLink></item>
		<item>
		<title>End of Patterns for e-Business</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/ZAwAe9mtPM4/</link>
		<comments>http://blog.crossedstreams.com/development/end-of-patterns-for-e-business/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 21:03:43 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=753</guid>
		<description><![CDATA[Well, the P4EB exam was last week, so that wraps up that module &#8211; unless something goes terribly, terribly wrong and I have to resit!
The exam deviated from the previous years&#8217; exams quite a bit. In two parts, the first part being pretty much just bookwork, the second part being a choice of three questions [...]]]></description>
			<content:encoded><![CDATA[<p>Well, the P4EB exam was last week, so that wraps up that module &#8211; unless something goes terribly, terribly wrong and I have to resit!</p>
<p>The exam deviated from the previous years&#8217; exams quite a bit. In two parts, the first part being pretty much just bookwork, the second part being a choice of three questions and more analysis based. In previous years, the second part was a set of three standalone questions, which meant that they were pretty well defined and it was fairly easy to see what knowledge the question wanted you to demonstrate.</p>
<p>This year, the second part consisted of business description and context diagram that was then used as the basis for all three questions. I thought that the questions weren&#8217;t so well defined, and so I&#8217;m not totally sure how much or little I should have answered with. Oh well &#8211; time will tell!</p>
<p>That&#8217;s also half-way through the taught part of the course &#8211; three down, three to go. For the last three I&#8217;ll be heading back to Computer Science modules, probably centred on Logic, Ontologies and Natural Language Processing &#8211; which means that I need to spend some quality time with mathematical logic this summer ready for next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/end-of-patterns-for-e-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/end-of-patterns-for-e-business/</feedburner:origLink></item>
		<item>
		<title>Revising for P4EB Exam</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/civzIumoQ4Y/</link>
		<comments>http://blog.crossedstreams.com/development/revising-for-p4eb-exam/#comments</comments>
		<pubDate>Fri, 21 May 2010 21:48:23 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=739</guid>
		<description><![CDATA[I feel revision for the Patterns for e-Business exam is going pretty well. There are some interesting questions to answer, such as describing the difference between the Strategy and State patterns. That one&#8217;s absorbed a fair bit of thought to get my ideas to some degree of clarity and conciseness.
My revision schedule has settled down [...]]]></description>
			<content:encoded><![CDATA[<p>I feel revision for the Patterns for e-Business exam is going pretty well. There are some interesting questions to answer, such as describing the <a href="http://stackoverflow.com/questions/1658192/what-is-the-difference-between-strategy-design-pattern-and-state-design-pattern">difference between the Strategy and State patterns</a>. That one&#8217;s absorbed a fair bit of thought to get my ideas to some degree of clarity and conciseness.</p>
<p>My revision schedule has settled down into a pattern now, being the public-spirited chap that I am, I&#8217;ll share what works for me with you.</p>
<h4>Step 1 &#8211; Lecture Notes and Background</h4>
<p>Review the lecture notes piece by piece, making sure that every term, statement and nuance is understood. This usually starts as soon as the lectures are done. Often, I&#8217;ll work through the notes noting down each important statement as a question so that I can quiz myself.</p>
<p>I haven&#8217;t yet had an exam immediately following the lecture series (I think in each case so far, the first five weeks have been lectures, followed by a reading week, a subsequent five week series, a reading week, and then the exam period) which would cut that time down to one week, meaning that revision would need to happen during the course of the exams.</p>
<p>This time involves a fair bit of &#8216;reading around&#8217; the subject, chasing down those subtleties that I missed during the course of the lectures. Easily done &#8211; the pace can be kinda intense. This bit probably averages less than an hour a day &#8211; but it&#8217;s a marathon, not a sprint.</p>
<h4>Step 2 &#8211; Past Papers</h4>
<p>Answer every question on every past exam paper I can find to learn how the questions are asked and how to answer them.</p>
<p>I don&#8217;t pay too much attention to past papers until I feel I&#8217;ve got a good coverage of the course material. I hope that this helps me avoid just learning how to answer the exam questions. It&#8217;s more about the learning than the exams, right?</p>
<p>This step is generally no more than a week or two before the exam.</p>
<h4>Step 3 &#8211; Exam Day</h4>
<p>I like afternoon exams. I follow my usual schedule and get into University before 9am, giving me the whole morning to review the past papers and any troublesome spots one last time and generally take it fairly easy. It&#8217;s nice not to have to worry about travelling and delays, too.</p>
<p>This approach has also worked well for me for the Sun Certifications I&#8217;ve taken. As far as I can tell, there&#8217;s no real short cuts to learning stuff &#8211; it takes time and effort (if only I had a USB port for my internal memory!) </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/revising-for-p4eb-exam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/revising-for-p4eb-exam/</feedburner:origLink></item>
		<item>
		<title>First Impressions of Ubuntu 10.04 (Lucid Lynx)</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/8KVCCInB9ac/</link>
		<comments>http://blog.crossedstreams.com/ubuntu/first-impressions-of-ubuntu-10-04-lucid-lynx/#comments</comments>
		<pubDate>Mon, 17 May 2010 19:51:18 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=730</guid>
		<description><![CDATA[I got round to trying an installation of Ubuntu 10.04 today from my trusty USB stick. The install went smoothly and quickly (except for a problem with having two HDDs in this machine, with the OS on the second drive &#8211; remember to customise the boot options to boot from the right hard disk in [...]]]></description>
			<content:encoded><![CDATA[<p>I got round to trying an installation of <a href="http://www.ubuntu.com/getubuntu/download">Ubuntu 10.04</a> today <a href="http://blog.crossedstreams.com/ubuntu/installing-ubuntu-9-10-from-a-usb-stick/">from my trusty USB stick</a>. The install went smoothly and quickly (except for a problem with having two HDDs in this machine, with the OS on the second drive &#8211; remember to customise the boot options to boot from the right hard disk in this case, d&#8217;oh!).</p>
<p>On first boot, the most noticeable thing was the updated loading screens and reduced boot time. It wasn&#8217;t a slouch before, maybe taking 45ish seconds, but now taking 25 seconds between finishing the POST and giving me a login screen (I&#8217;ll time the laptop before and after when I upgrade that and produce a better comparison). It feels nice and fast.</p>
<p>Next, the wireless &#8211; works a treat, as usual. Then the proprietary graphics drivers, and the only essential reboot (having only today had a VPN client upgrade on a Windows system I have the misfortune of using with a total of <strong>five</strong> reboots necessary in the process).</p>
<p>Next, upgrade everything when prompted &#8211; only took a couple or minutes. Then, added in most of the <a href="http://blog.crossedstreams.com/my-ubuntu-installation/">packages I use</a> that I can get out of the standard repo &#8211; that took a while, but it is 180 packages (incl. dependencies).</p>
<p>Finally, the other standout feature is the social network integration. The usual user identity graphic in the menu bar is replaced with a widget that looks identical but connects to my Facebook, Twitter, Flickr, Yahoo Messenger accounts. So far, I&#8217;ve posted up a couple of updates from there, but I&#8217;m not sure what else it can do just yet. The other option under this widget, &#8216;Ubuntu One&#8217;, provides the ability to synchronise some of your user settings to the cloud. Nice idea &#8211; but as an Android user, I wonder whether I can sync my phone info with my desktops?</p>
<p>A bum note though &#8211; the default theme is a little dark, and moves the window maximise/minimise/close buttons to the left hand side of the window, also known as the wrong side! Quick fix &#8211; System > Preferences > Appearance: Choose the New Wave theme to brighten things up slightly and put the controls back where they belong.</p>
<p>Anyway, all done in no time at all &#8211; it&#8217;s hard to see how they could make it any easier!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/ubuntu/first-impressions-of-ubuntu-10-04-lucid-lynx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/ubuntu/first-impressions-of-ubuntu-10-04-lucid-lynx/</feedburner:origLink></item>
		<item>
		<title>HP dm3-1020ea Review</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/4aWVVMPeDV0/</link>
		<comments>http://blog.crossedstreams.com/kit/hp-dm3-1020ea-review/#comments</comments>
		<pubDate>Sun, 16 May 2010 21:30:39 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Kit]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=574</guid>
		<description><![CDATA[I recently bought a new HP Pavilion dm3-1020ea, following the unfortunate demise of my Dell Vostro. I&#8217;ve been using it for a few weeks now and I&#8217;m pretty happy with it, although it&#8217;s not perfect. Here&#8217;s the pros and cons from where I&#8217;m sitting.
The Good Stuff

Dispatch and delivery was quick and trouble-free.
Ubuntu 9.10 works out [...]]]></description>
			<content:encoded><![CDATA[<p>I recently bought a new HP Pavilion dm3-1020ea, following the unfortunate demise of my Dell Vostro. I&#8217;ve been using it for a few weeks now and I&#8217;m pretty happy with it, although it&#8217;s not perfect. Here&#8217;s the pros and cons from where I&#8217;m sitting.</p>
<h3>The Good Stuff</h3>
<ul>
<li>Dispatch and delivery was quick and trouble-free.</li>
<li>Ubuntu 9.10 works out of the box. As this thing&#8217;s got a shiny new AMD Athlon Neo X2 in it, I was a little concerned that it might not yet be supported but it works a treat.</li>
<li>The battery life is respectable rather than great. 3+ hours w/wireless off, less with it on.</li>
<li>The LCD is fantastic. Clear, good contrast and the reason I went for this model, high resolution. The 13.3&#8243; panel supports 1366&#215;768 which is standard fare for a 15.6&#8243; panel. That means I can get more on the screen, the tradeoff of course is that everything is that bit smaller.</li>
<li>The keyboard responsive and feels good under the fingers. I&#8217;ve not really noticed the small size of the chassis, as the keyboard feels quite spacious. The keyboard is more like the kind of thing I&#8217;ve envied on friends&#8217; Apple notebooks in the past.</li>
<li>There were a few toys I wasn&#8217;t expecting &#8211; an external CD Rewriter and Bluetooth.</li>
<li>HDMI out is a nice treat, letting me plug into my TV with no fuss.</li>
<li>I found there was a discount on computer equipment from HP thanks to my employer. Worth checking.</li>
</ul>
<h3>The Bad Stuff</h3>
<ul>
<li>The touchpad feels a little weird, it&#8217;s very shiny and feels a little sticky as soon as there&#8217;s any moisture on your fingertips. A minor irritation sometimes.</li>
<li>The touchpad is also very sensitive and I keep catching it when typing &#8211; the random-caret-location game is less than fun. There&#8217;s a little &#8216;off&#8217; button for the touchpad just above it but seriously &#8211; like I&#8217;m going to hit the touchpad-on-touchpad-off button every time I use it?</li>
<li>You have to hold the fn-key down to access the function keys. Now that&#8217;s much more annoying, I personally use the f-keys much more often than I use the multimedia functions that are the main functions of the f-keys. Hand-yoga galore whenever I want to close a window. You can switch this in the BIOS, but even then it&#8217;s tough to see the little blue Fn labels. I have learnt that white padlock means F5, though.</li>
<li>The LCD panel doesn&#8217;t tilt back very far (goes back to about 120degrees from the keyboard. That&#8217;s annoying, possibly because I&#8217;m quite tall. The screen is also very shiny, which is bad when there&#8217;s light behind me and for smudges.</li>
<li>The chassis gets pretty warm &#8211; not uncomfortably so, but warmer than I expected.</li>
</ul>
<p>Sounds like a lot of bad points, but they&#8217;re mostly minor and occasional annoyances, certainly nothing to make me regret my purchase. If you want a quick, affordable, small, lightweight laptop with a little more screen real-estate than usual, I think you&#8217;d be happy with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/kit/hp-dm3-1020ea-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/kit/hp-dm3-1020ea-review/</feedburner:origLink></item>
		<item>
		<title>Fixing WebContent Problems in Eclipse</title>
		<link>http://feedproxy.google.com/~r/crossedstreams/~3/JeD_ewxRNWE/</link>
		<comments>http://blog.crossedstreams.com/development/fixing-webcontent-problems-in-eclipse/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 17:35:27 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=692</guid>
		<description><![CDATA[By default, a &#8216;Dynamic Web Application&#8217; project in Eclipse will put the non-code resources (pages, WEB-INF, META-INF, etc.) in a folder under the project called WebContent.
Exporting .war files or publishing to a server works just fine, as Eclipse knows what WebContent represents, and what should be done in order to deploy it.
The trouble comes when [...]]]></description>
			<content:encoded><![CDATA[<p>By default, a &#8216;Dynamic Web Application&#8217; project in Eclipse will put the non-code resources (pages, WEB-INF, META-INF, etc.) in a folder under the project called WebContent.</p>
<p>Exporting .war files or publishing to a server works just fine, as Eclipse knows what WebContent represents, and what should be done in order to deploy it.</p>
<p>The trouble comes when you want to create a new WebContent folder (which you might want to do if you&#8217;re going to start using Maven as a build tool on an existing project &#8211; Eclipse no longer knows where the resources are and your exports stop working.</p>
<p>If you end up in this situation, you can fix it if you know where in the Eclipse config the declaration of WebContent is. Problematic if you deleted the old WebContent folder already as the declaration gets tidied up (by my experience anyway).</p>
<p>The fix is very simple. Say you want to declare /src/main/webapp as your new WebContent folder<br />
1. Open the .settings folder under the project (if you can&#8217;t see it in the Project Explorer view, use the Navigator view)</p>
<p>2. Open the file org.eclipse.wst.common.component</p>
<p>3. In the wb-module tag, add a new entry as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wb-resource</span> <span style="color: #000066;">deploy-path</span>=<span style="color: #ff0000;">&quot;/&quot;</span> <span style="color: #000066;">source-path</span>=<span style="color: #ff0000;">&quot;/src/main/webapp&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Here&#8217;s an example of a basic file to put that into context.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;project-modules</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;moduleCoreId&quot;</span> <span style="color: #000066;">project-version</span>=<span style="color: #ff0000;">&quot;1.5.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wb-module</span> <span style="color: #000066;">deploy-name</span>=<span style="color: #ff0000;">&quot;MyProject&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wb-resource</span> <span style="color: #000066;">deploy-path</span>=<span style="color: #ff0000;">&quot;/WEB-INF/classes&quot;</span> <span style="color: #000066;">source-path</span>=<span style="color: #ff0000;">&quot;/src/main/java&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wb-resource</span> <span style="color: #000066;">deploy-path</span>=<span style="color: #ff0000;">&quot;/&quot;</span> <span style="color: #000066;">source-path</span>=<span style="color: #ff0000;">&quot;/src/main/webapp&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;context-root&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;MyProject&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;java-output-path&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;/MyProject/build/classes&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/wb-module<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project-modules<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/fixing-webcontent-problems-in-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.crossedstreams.com/development/fixing-webcontent-problems-in-eclipse/</feedburner:origLink></item>
	</channel>
</rss>
