<?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>Chris Norton &#187; java</title>
	<atom:link href="http://www.chnorton.com.au/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chnorton.com.au</link>
	<description>A blog about software engineering, web development, education and my otaku interests.</description>
	<lastBuildDate>Tue, 07 Dec 2010 11:45:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Madman.com.au is Temporarily Unavailable</title>
		<link>http://www.chnorton.com.au/2007/12/11/madmancomau-is-temporarily-unavailable/</link>
		<comments>http://www.chnorton.com.au/2007/12/11/madmancomau-is-temporarily-unavailable/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 16:13:16 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[anime]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[madman]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/2007/12/11/madmancomau-is-temporarily-unavailable/</guid>
		<description><![CDATA[OK, so I&#8217;ve made some comments about the Madman site in the past but lately I have been getting more and more upset by outages in the service. Right now that has really reached boiling point as I&#8217;ve been trying to get to the site for the last 7 hours. Read on for more ranting [...]]]></description>
			<content:encoded><![CDATA[<p>OK, so <a href="http://www.chnorton.com.au/2007/08/29/improvements-for-madmans-website/">I&#8217;ve made some comments about the Madman site in the past</a> but lately I have been getting more and more upset by outages in the service. Right now that has really reached boiling point as I&#8217;ve been trying to get to the site for the last 7 hours. Read on for more ranting on the subject, along with some (hopefully) constructive criticism.</p>
<p><span id="more-190"></span>For the last month I&#8217;ve been seeing the following on an increasingly frequent basis:</p>
<p><img src='http://www.chnorton.com.au/wp-content/uploads/2007/12/503.jpg' alt='Madman 503 error page' /></p>
<p>For the lead up to Christmas, and to coincide with Madman&#8217;s various sales and promotions, this error page is seen more often than not. At least by me. When I see this I tend to get visions of a lone server sitting in a drab room in a Collingwood office building, quietly struggling to keep up with the number of connections and serve out hundreds of pages, images, scripts and, now, high-quality streaming video.</p>
<p>I think one thing has been made painfully obvious at this point, and it&#8217;s something that should have been learned during the 10th Anniversary Sale: Madman need to upgrade their web service! I mean, really, there are ways to deal with higher than normal loads and they don&#8217;t need to be terribly expensive.</p>
<h3>Optimise the web application.</h3>
<p>This should be the first port of call. I&#8217;m thinking that the number of database queries should be minimised, output size should be reduced, Java code optimisations should be researched, caching should be implemented and generally have the whole thing given a thorough going over.</p>
<h3>Break up the processing responsibilities.</h3>
<p>Since the site runs on Java I&#8217;m going to assume they&#8217;re running a <a href="http://tomcat.apache.org/">Tomcat server</a>. I hope this same server is not used for serving static content like images &#8211; the <a href="http://httpd.apache.org/">Apache HTTP Server</a> is a much better fit for that. At the same time, it&#8217;s probably best to use a few servers to perform load balancing and to allow the database server(s) to run on different hardware to the web server(s). This should ensure that no one place is placed under too much load.</p>
<h3>Use a Content Delivery Network</h3>
<p>This would probably result in the most drastic improvement for the least amount of work. Using a <abbr title="Content Delivery Network">CDN</abbr> like <a href="http://aws.amazon.com/s3">Amazon S3</a> or <a href="http://www.akamai.com/">Akamai</a> would allow all the static content (and there&#8217;s a lot of it) to be served from servers that are designed to handle almost any load and bandwidth requirements. I&#8217;m thinking the streaming trailers would benefit the most from being moved to a CDN, if they&#8217;re not on one already. On top of the benefit of reducing bandwidth needs and the number of active connections required to the Madman server, Akamai and possibly others provide services to increase the availability of web applications (&#8220;Web Application Acceleration&#8221;) &#8211; particularly Java-based ones. I can&#8217;t say how well these would work here and whether they&#8217;d be necessary once other optimisations are performed but it&#8217;s definitely something to look into.</p>
<p>Well, I think that about sums it up. A few things that could be done, the last being quite simple, to improve the availability of the Madman site and ensure potential customers get turned into actual customers and the raving fans are placated with their anime crack.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2007/12/11/madmancomau-is-temporarily-unavailable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rediscovering Eclipse</title>
		<link>http://www.chnorton.com.au/2007/12/06/rediscovering-eclipse/</link>
		<comments>http://www.chnorton.com.au/2007/12/06/rediscovering-eclipse/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 14:01:07 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/2007/12/06/rediscovering-eclipse/</guid>
		<description><![CDATA[Recently I&#8217;ve been doing some work on a desktop Java application and I decided to use Eclipse and my IDE. I hadn&#8217;t used it for a while (since I did my 4th year engineering project &#8211; almost 3 years ago now) and I&#8217;m loving all the features and how easy it makes some things. The [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been doing some work on a desktop Java application and I decided to use <a href="http://www.eclipse.org/">Eclipse</a> and my <abbr title="Integrated Development Environment">IDE</abbr>. I hadn&#8217;t used it for a while (since I did my 4th year engineering project &#8211; almost 3 years ago now) and I&#8217;m loving all the features and how easy it makes some things. </p>
<p><span id="more-187"></span>The stuff in the &#8220;Source&#8221; and &#8220;Refactoring&#8221; menus especially are a real time saver: being able to automatically create getters and setters, constructors, extract methods, rename methods and variables and a bunch of similar operations are made trivial rather than tedious. The ease with which you can create and run unit tests has also meant that I&#8217;m actually keen to create unit tests for all my code &#8211; Eclipse will create all the relevant classes and test methods for a given class for you.</p>
<p>Some of the available plugins are really good too. I&#8217;m using <a href="http://www.eclemma.org/">EclEmma</a> to perform code coverage analysis and direct my test writing. I haven&#8217;t set up any source control for my project yet but I hope to use <a href="http://subclipse.tigris.org/">Subclipse</a> to connect to a local Subversion repository automatically. I also installed the C/C++ Development Tools (CDT) package but haven&#8217;t attempted any C++ development.</p>
<p>While in the past I thought the layout of the IDE &#8220;workbench&#8221; was far too cluttered, I have since changed my mind. On a 22&#8243; monitor there&#8217;s plenty of room for everything and being able to access everything easily saves quite a bit of time. At the same time I can have information views for the package explorer (displaying all the classes in the project), coverage reports, an outline of the current class and a test report. I&#8217;m also amazed at how customisable the whole thing is: views can be moved around basically at will.</p>
<p>I&#8217;ve only been using the IDE for a week or so but I find it really helpful for Java development. I would also like to try out NetBeans to see how good it is &#8211; version 6.0 was just released.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2007/12/06/rediscovering-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android SDK</title>
		<link>http://www.chnorton.com.au/2007/11/16/android-sdk/</link>
		<comments>http://www.chnorton.com.au/2007/11/16/android-sdk/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 11:24:42 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/2007/11/16/android-sdk/</guid>
		<description><![CDATA[In case you&#8217;ve been living under a rock &#8211; or simply don&#8217;t care about mobile development &#8211; Google recently released a public preview of Android, a new platform for mobile devices built on top of a Linux kernel. You may have heard of it before as it turns out that Android is the thing everyone [...]]]></description>
			<content:encoded><![CDATA[<p>In case you&#8217;ve been living under a rock &#8211; or simply don&#8217;t care about mobile development &#8211; Google recently released a public preview of <a href="http://code.google.com/android/" rel="external nofollow">Android</a>, a new platform for mobile devices built on top of a Linux kernel. You may have heard of it before as it turns out that Android is the thing everyone assumed to be the Google &#8220;gPhone&#8221;. Well, they&#8217;re not releasing a phone but with a ton of device makers on board to use Android (sounds like everyone <em>except</em> Apple, surprise, surprise) I don&#8217;t think anyone is going to mind.</p>
<p><span id="more-178"></span>One of the more interesting things is that applications are developed in Java with the Android <abbr title="Software Development Kit">SDK</abbr> and use Android <abbr title="Application Programming Interface">API</abbr> calls to access device functions such as Bluetooth, cameras, touch screen, etc. Apparently you can use C as well but it&#8217;s far more complicated to get everything going so it&#8217;s probably not worth your time. I do wonder if other programming languages could be supported via the JVM used. For example, would Jython work?</p>
<p>The documentation for the SDK &#8220;preview&#8221; is rather extensive for a product that hasn&#8217;t been released yet. It takes you through the basics of creating an application, testing apps and explains what the various parts of the SDK are for. From my brief look through everything it appears as though writing applications for Android is pretty damn simple (assuming you know how to program Java).</p>
<p>It&#8217;ll be interesting to see where this goes. Despite having been out only a short time, the platform is generating a lot of buzz and with so much major backing here&#8217;s hoping it can start a revolution in the mobile world so that mobile application development can be made a whole lot easier.</p>
<p><b>Update:</b> you might also like to check out <a href="http://www.linuxdevices.com/articles/AT9900056470.html" rel="external nofollow">this article on Linux Devices</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2007/11/16/android-sdk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>YUI Compressor Version 2.2.1</title>
		<link>http://www.chnorton.com.au/2007/09/26/yui-compressor-version-221/</link>
		<comments>http://www.chnorton.com.au/2007/09/26/yui-compressor-version-221/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 10:44:30 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[minify]]></category>
		<category><![CDATA[yui compressor]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/2007/09/26/yui-compressor-version-221/</guid>
		<description><![CDATA[YUI Compressor version 2.2.1 has been released. Go forth and minify!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.julienlecomte.net/blog/2007/09/25/yui-compressor-version-221-now-available/" rel="external">YUI Compressor version 2.2.1 has been released</a>. Go forth and minify!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2007/09/26/yui-compressor-version-221/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

