<?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"
	>

<channel>
	<title>Javablog</title>
	<atom:link href="http://javablog.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://javablog.co.uk</link>
	<description>by Java coders, for Java coders</description>
	<pubDate>Fri, 01 Aug 2008 07:35:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Logging with `java.util.logging`</title>
		<link>http://javablog.co.uk/2008/07/12/logging-with-javautillogging/</link>
		<comments>http://javablog.co.uk/2008/07/12/logging-with-javautillogging/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 02:05:15 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Basic]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Logging]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/?p=70</guid>
		<description><![CDATA[Java comes with a built-in logging system java.util.logging which is really quite good. It is very simple to use, highly customisable at runtime and offers incredible extensibility. However, by default it doesn&#8217;t allow you to specify the format of your logging messages and this tends to make people angry (the default setting is to print [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2008/07/12/logging-with-javautillogging/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Over The Air: Mobile Hackday (sort of) in London</title>
		<link>http://javablog.co.uk/2008/03/21/over-the-air-mobile-hackday-sort-of-in-london/</link>
		<comments>http://javablog.co.uk/2008/03/21/over-the-air-mobile-hackday-sort-of-in-london/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 12:19:24 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Android]]></category>

		<category><![CDATA[Event]]></category>

		<category><![CDATA[Hackday]]></category>

		<category><![CDATA[J2ME]]></category>

		<category><![CDATA[Mobile]]></category>

		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2008/03/21/over-the-air-mobile-hackday-sort-of-in-london/</guid>
		<description><![CDATA[Over the Air is going to be 48 of mobile development at Imperial College, London, from 4-5th April 2008. It will bringing together developers, designers, hackers and entrepreneurs to explorer the potential exciting future of wireless and mobile devices/applications.

The line of speakers is very exciting! I&#8217;m going, and I hope to see some of you [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2008/03/21/over-the-air-mobile-hackday-sort-of-in-london/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NetBeans 6.1 Beta</title>
		<link>http://javablog.co.uk/2008/03/18/netbeans-61-beta/</link>
		<comments>http://javablog.co.uk/2008/03/18/netbeans-61-beta/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 08:45:43 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Beta]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[IDE]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2008/03/18/netbeans-61-beta/</guid>
		<description><![CDATA[I recently switched to NetBeans 6.0 (from Eclipse) and it was a very nice experience. Profiling is completely integrated (on all platforms), J2ME and webapp support is awesome and NetBeans uses ant for building projects&#8230; so we got a headless builder for free. However, there were some problems that made me unable to poke the [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2008/03/18/netbeans-61-beta/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Persistence Options in Java, Part 3 &#8212;- JPA</title>
		<link>http://javablog.co.uk/2008/01/23/persistence-options-in-java-part-3-jpa/</link>
		<comments>http://javablog.co.uk/2008/01/23/persistence-options-in-java-part-3-jpa/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 23:02:59 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Annotations]]></category>

		<category><![CDATA[EJB3]]></category>

		<category><![CDATA[Hibernate]]></category>

		<category><![CDATA[J2EE]]></category>

		<category><![CDATA[JPA]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Persistence]]></category>

		<category><![CDATA[PostgreSQL]]></category>

		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2008/01/23/persistence-options-in-java-part-3-jpa/</guid>
		<description><![CDATA[This is the final post of a series where we have looked at persistence options in Java. In part 1 we looked at rolling your own lightweight solution and in part 2 we visited BerkeleyDB as an embeddable non-SQL solution. In this final piece, we look at the Java Persistence API (JPA) which was accepted [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2008/01/23/persistence-options-in-java-part-3-jpa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>J2ME Development on OS X, revisited</title>
		<link>http://javablog.co.uk/2008/01/17/j2me-development-on-os-x-revisited/</link>
		<comments>http://javablog.co.uk/2008/01/17/j2me-development-on-os-x-revisited/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 13:55:52 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Android]]></category>

		<category><![CDATA[Ant]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[EclipseME]]></category>

		<category><![CDATA[J2ME]]></category>

		<category><![CDATA[JSR-82]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[MIDlets]]></category>

		<category><![CDATA[Mobile]]></category>

		<category><![CDATA[NetBeans]]></category>

		<category><![CDATA[OS X]]></category>

		<category><![CDATA[Signing]]></category>

		<category><![CDATA[cross-platform]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2008/01/17/j2me-development-on-os-x-revisited/</guid>
		<description><![CDATA[Some time ago, I posted a tutorial for setting up a J2ME development environment on OS X. Since then, EclipseME has not been addressing any of the bugs that made it a pain to use and I have also moved on to NetBeans 6.0. In this post I will revisit how to set up a [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2008/01/17/j2me-development-on-os-x-revisited/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bluetooth Deployer</title>
		<link>http://javablog.co.uk/2007/12/31/bluetooth-deployer/</link>
		<comments>http://javablog.co.uk/2007/12/31/bluetooth-deployer/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 16:11:12 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Ant]]></category>

		<category><![CDATA[Bluetooth]]></category>

		<category><![CDATA[J2ME]]></category>

		<category><![CDATA[JSR-82]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[MIDlet]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[deployment]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2007/12/31/bluetooth-deployer/</guid>
		<description><![CDATA[The test-develop cycle for writing J2ME applications can be significantly slowed down by the need to deploy the application onto the device. Given that most network operators charge extortionate data rates, the only real option is bluetooth deployment. In this post I present a solution that can be included as an Ant task. Note that [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2007/12/31/bluetooth-deployer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>J2ME Bitmap Encoder</title>
		<link>http://javablog.co.uk/2007/12/26/j2me-bitmap-encoder/</link>
		<comments>http://javablog.co.uk/2007/12/26/j2me-bitmap-encoder/#comments</comments>
		<pubDate>Wed, 26 Dec 2007 18:57:26 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[BMP]]></category>

		<category><![CDATA[J2ME]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[PNG]]></category>

		<category><![CDATA[file formats]]></category>

		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2007/12/26/j2me-bitmap-encoder/</guid>
		<description><![CDATA[J2ME is bare-bones and I recently realised that it doesn&#8217;t have any image encoders. Sure, you can create Image objects&#8230; but there is no way to persist them to disc or to send them over the network in a recognised format.

With the goal of creating a low-memory PNG encoder based on TinyLine GZIPInputStream, I wrote [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2007/12/26/j2me-bitmap-encoder/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Private Implementations in Another Package</title>
		<link>http://javablog.co.uk/2007/12/13/private-implementations-in-another-package/</link>
		<comments>http://javablog.co.uk/2007/12/13/private-implementations-in-another-package/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 22:51:42 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[API]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[constructors]]></category>

		<category><![CDATA[implementations]]></category>

		<category><![CDATA[neat hack]]></category>

		<category><![CDATA[visibility]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2007/12/13/private-implementations-in-another-package/</guid>
		<description><![CDATA[Eric Burke recently gave some really great tips for legacy proofing your public APIs, including a really neat hack for protecting implementations from being publically instantiable, even if they are in a different package. I was so impressed by this completely obvious (in hindsight) hack that I thought I&#8217;d post it here.



Consider the case where [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2007/12/13/private-implementations-in-another-package/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Enumeration and Iterable</title>
		<link>http://javablog.co.uk/2007/11/25/enumeration-and-iterable/</link>
		<comments>http://javablog.co.uk/2007/11/25/enumeration-and-iterable/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 14:54:40 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Enumeration]]></category>

		<category><![CDATA[Iterable]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[for]]></category>

		<category><![CDATA[legacy]]></category>

		<category><![CDATA[loops]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2007/11/25/enumeration-and-iterable/</guid>
		<description><![CDATA[Why does the aged (and ridiculously verbose) Enumeration not have a sub-interface that implements Iterable&#8230; and then make all J2SE classes return the sub-interface so that we could use older classes in the enhanced for loop like this

for (ZipEntry entry : zip.entries()){
  // do stuff
}

It seems like a no-brainer, and wouldn&#8217;t break backwards compatibility. [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2007/11/25/enumeration-and-iterable/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Logical Puzzle</title>
		<link>http://javablog.co.uk/2007/11/20/logical-puzzle/</link>
		<comments>http://javablog.co.uk/2007/11/20/logical-puzzle/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 14:13:12 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Logic]]></category>

		<category><![CDATA[Puzzle]]></category>

		<guid isPermaLink="false">http://javablog.co.uk/2007/11/20/logical-puzzle/</guid>
		<description><![CDATA[What do you think the output of this little Java program would be?

public static void main(String[] args) {
    if (stuff() &#124; stuff())
        System.out.println(&#34;Goodbye&#34;);
}
 
static boolean stuff() {
    System.out.println(&#34;Hello&#34;);
    return true;
}



You may have expected it to print Hello and Goodbye [...]]]></description>
		<wfw:commentRss>http://javablog.co.uk/2007/11/20/logical-puzzle/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
