<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Doug's Web Log</title>
	<atom:link href="http://dougsweblog.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dougsweblog.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 27 Jan 2011 19:00:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dougsweblog.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Doug's Web Log</title>
		<link>http://dougsweblog.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dougsweblog.wordpress.com/osd.xml" title="Doug&#039;s Web Log" />
	<atom:link rel='hub' href='http://dougsweblog.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Product database reverse-engineering</title>
		<link>http://dougsweblog.wordpress.com/2009/01/14/product-database-reverse-engineering/</link>
		<comments>http://dougsweblog.wordpress.com/2009/01/14/product-database-reverse-engineering/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 02:56:41 +0000</pubDate>
		<dc:creator>dougsweblog</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://dougsweblog.wordpress.com/?p=31</guid>
		<description><![CDATA[Today I thought I would write about an issue for which I have no solution. Basically, it&#8217;s what happens when a customer reverse-engineers your database. I have a client that sells an enterprise-level solution based around a database. One of my roles with this client is to manage the database logical design (tables and columns) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=31&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I thought I would write about an issue for which I have no solution.  Basically, it&#8217;s what happens when a customer reverse-engineers your database.</p>
<p>I have a client that sells an enterprise-level solution based around a database. One of my roles with this client is to manage the database logical design (tables and columns) and software that manipulates it. The solution is large and critical to the customers&#8217; operation, so it requires a database administrator (DBA) to maintain it.  A DBA can see the logical database design (tables and columns), and can thus start to understand the design and reverse-engineer it.  For example, the solution has a table named USER_ACCOUNTS with columns USERID, NAME, CATEGORY, and, STATUS. It&#8217;s fairly obvious what the table is for and what the columns means.  A customer&#8217;s DBA can easily add, remove, and modify rows in that table, in effect bypassing any &#8220;User management&#8221; application that we provide.</p>
<p>So, one consequence of the customer gaining knowledge of the database is that the customer can manipulate data directly.  This avoids any change auditing, relational integrity checks, security checks, and validity checks that we have in our applications.  Some of our customers have even written their own programs to manipulate the database directly, even though we provide an application programming interface (API) to hide the underlying design.</p>
<p>This, in turn, causes an even worse problem. We are continually enhancing the solution, and occasionally need to change the logical database design. For example, we often add new table columns, drop obsolete tables, or even completely replace a table. Of course, we provide a migration script that upgrades the customer&#8217;s database to the new format, so there are no changes visible to the end user. However, as you can now see, some of customers now have home-grown scripts and applications that no longer work. Needless to say they get upset about the upgrade breaking their programs and having to change their code. In other cases, customers have added or modified data with invalid values, and our new version detects this and reports errors. It&#8217;s difficult to explain to them that it&#8217;s their fault for not using our APIs.</p>
<p>From the solution provider&#8217;s point of view (my client and I), the database design is confidential, as it is an extension of the internal design of the solution, and we need to be able to modify the database design to enhance the product.  But in practice, there is now way of hiding the design, as the table layouts are freely provided with DDL files (to create the tables) and the DBA can see everything.</p>
<p>So what is the solution?  I don&#8217;t know.</p>
<p>We can&#8217;t have our hands tied, so to speak, and be unable to change our own tables for fear that someone has written an &#8220;unofficial&#8221; application against them.</p>
<p>But I don&#8217;t know how to hide the database design, either. I have thought of some possibilities, none of which seem too appealing:</p>
<ol>
<li>Mangle the table names and column names. Instead of USER_ACCOUNTS, for example, the table could be named T29, with colums C1, C2, C3, and C4. But then, that makes problem determination difficult, and over time customers would know that T29 is the user accounts table. Plus, this doesn&#8217;t affect the data. One could deduce the table purpose by seeing, for example, that the table contains rows with &#8220;JOE&#8221;, &#8220;Joe Smith&#8221;, &#8220;ADMIN&#8221;, &#8220;A&#8221; (A may mean &#8220;active&#8221;).</li>
<li>Add a check digit column to each table. This wouldn&#8217;t prevent the customer from reverse-engineering the database, or from writing queries, but at least it would stop them from changing data. But I haven&#8217;t heard of anyone doing this, and this would also make customer support more difficult.</li>
<li>Don&#8217;t use a database. Not practical &#8211; databases are made to hold relational data, and should be used when this need exists.</li>
</ol>
<p>That&#8217;s all I have for today &#8211; and no solution.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dougsweblog.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dougsweblog.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dougsweblog.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dougsweblog.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dougsweblog.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dougsweblog.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dougsweblog.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dougsweblog.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dougsweblog.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dougsweblog.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dougsweblog.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dougsweblog.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dougsweblog.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dougsweblog.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=31&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dougsweblog.wordpress.com/2009/01/14/product-database-reverse-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e8141094439302e0ed02c3fb21ec9e7d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dougsweblog</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating a Java web service with Eclipse</title>
		<link>http://dougsweblog.wordpress.com/2009/01/12/creating-a-java-web-service-with-eclipse/</link>
		<comments>http://dougsweblog.wordpress.com/2009/01/12/creating-a-java-web-service-with-eclipse/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 03:47:52 +0000</pubDate>
		<dc:creator>dougsweblog</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://dougsweblog.wordpress.com/?p=10</guid>
		<description><![CDATA[Today I spent a lot of time trying to create a simple Java web service in Eclipse. It should have been easy, but I could not find any good instructions on the web.  The following ones are close, but are not current (the last one is the closest): Building a Simple Web Service – A [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=10&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I spent a lot of time trying to create a simple Java web service in Eclipse. It should have been easy, but I could not find any good instructions on the web.  The following ones are close, but are not current (the last one is the closest):</p>
<p><a href="http://www.roseindia.net/webservices/buildingsimplewebservice.shtml">Building a Simple Web Service – A Tutorial</a><br />
<a href="http://www.eclipse.org/webtools/initial-contribution/IBM/evalGuides/WebServicesToolsEval.html">Web Services Tools Evaluation Guide</a><br />
<a href="http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html">Eclipse WTP Tutorials &#8211; Creating Bottom Up Web Service via Apache Axis2</a></p>
<p>So, here&#8217;s what I did today. The environment is Eclipse Ganymede (3.4.1) Java EE, Ubuntu Intrepid (8.10), Tomcat 5.5, Axis 2-1.4.1, Java 1.6.  A few setup steps related to Eclipse and Tomcat are missing, as I had already installed them a while back. <strong>IMPORTANT:</strong>In many places it is important to select the correct item in the Project Explorer on the left. Failing to select the correct item will cause steps to fail!</p>
<ol>
<li>Create a new Dynamic Web Project (File -&gt; New -&gt; Other -&gt; Web -&gt; Dynamic Web Project), and name the project &#8220;TestService&#8221;. It should look like this:<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-new-dynamic-web-project.png?w=450&#038;h=434" alt="screenshot-new-dynamic-web-project" title="screenshot-new-dynamic-web-project" width="450" height="434" class="alignnone size-full wp-image-11" />
</li>
<li><strong>IMPORTANT:</strong>Press &#8220;Modify&#8230;&#8221; to modify the &#8220;Default Configuration for Apache Tomcat 5.5&#8243; and add Axis.<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-project-facets.png?w=450&#038;h=191" alt="screenshot-project-facets" title="screenshot-project-facets" width="450" height="191" class="alignnone size-full wp-image-13" /> After you press OK, the configuration will now show &#8220;&#8221;. Then, press Next, accept what&#8217;s there, and then Finish.</li>
<li>The next step is to create the functions we want to expose with our service. For now, this will be the simple &#8220;Hello, world&#8221;. To do this, highlight the &#8220;TestService&#8221; project on the left, right mouse click, then New -&gt;Class. (You can use the File menu, too, but then you will need to enter more information, and you may make a mistake.) Enter the following values and press Finish:<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-new-java-class-1.png?w=450&#038;h=511" alt="screenshot-new-java-class-1" title="screenshot-new-java-class-1" width="450" height="511" class="alignnone size-full wp-image-22" /><br />
<strong>IMPORTANT:</strong>Follow Java guidelines and make the package all lowercase &#8211; I think the Wizard expect this. Here, I named the package &#8220;package&#8221; and the class &#8220;class&#8221; to avoid confusion later.</li>
<li>The Wizard will create a stub Java source file. Add the Hello world function to it, and save the changes:
<pre>package testpackage;

public class TestClass {
	public String helloWorld() {
		return "Hello, world";
	}
}</pre>
</li>
<li>The next step is to create the Web Service (so far all we created was the Dynamic Web Project). To do this, select the TestClass.java source file in the left, right mouse click, and then &#8220;Web Services -&gt; Create Web service&#8221;.<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-1.png?w=450&#038;h=429" alt="screenshot-web-service-1" title="screenshot-web-service-1" width="450" height="429" class="alignnone size-full wp-image-15" /></li>
<li><strong>IMPORTANT:</strong>The defaults here are not all correct. Click on &#8220;Web service runtime: Apache Axis&#8221; and change it to Apache Axis2. The remainder is fine, so press Next, and then Next again on the Java Bean Configuration panel (this will take a few seconds as the Wizard starts the Tomat server). Finally, press Finish, without checking any of the Launch Web Services Explorer check boxes.</li>
<li>We can now start the web service. Select the TestService project on the left, right mouse click, and then Run As -&gt; Run on Server.<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-run-on-server.png?w=450&#038;h=521" alt="screenshot-run-on-server" title="screenshot-run-on-server" width="450" height="521" class="alignnone size-full wp-image-16" /><br />
Then, press Next and make sure TestService is in the right hand list box (Configured projects). Then, press Finish.</li>
<li>You should now see the Axis2 welcome screen. Click on Services and then TestClass. This will display the WSDL. The WSDL is not important now, but we need the URL (probably http://localhost:8180/TestService/services/listServices), so copy it from the browser.</li>
<li>The next step is to create a test program. Highlight TestClass.java in Project Explorer, right mouse click, and then New -&gt; Other&#8230; -&gt; Web Services -&gt; Web Service Client, and then press Next. You should see this:<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-client.png?w=450&#038;h=402" alt="screenshot-web-service-client" title="screenshot-web-service-client" width="450" height="402" class="alignnone size-full wp-image-17" /><br />
Now, three changes are needed: 1) For the Service definition, paste in the WSDL address you copied from before (if you didn&#8217;t you&#8217;ll have to go back and re-do that step). 2) As before, change the Web service runtime to Apache Axis2. 3) Change the Client project to TestServiceClient.<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-client-12.png?w=450&#038;h=402" alt="screenshot-web-service-client-12" title="screenshot-web-service-client-12" width="450" height="402" class="alignnone size-full wp-image-20" /><br />
Then, press Next, which will cause the Wizard to perform some steps for a few seconds, and then display this big screen:<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-client-2.png?w=450&#038;h=594" alt="screenshot-web-service-client-2" title="screenshot-web-service-client-2" width="450" height="594" class="alignnone size-full wp-image-21" /><br />
Notice that the Custom package name is all lower case. If you used mixed case earlier, this is where a mismatch may occur. Don&#8217;t change anything &#8211; just press Finish and wait for the Wizard to complete.</li>
<li>This is where it gets a bit tricky. The Wizard generated a client stub, but not an actual client application. We need to do that now. So, locate the TestServiceClient in the Project Explorer, and then &#8220;testpackage&#8221; under Java Resources: src&#8221;. Then, right mouse click and &#8220;New -&gt; Class&#8221;.  Name it TestServiceMain:<br />
<img src="http://dougsweblog.files.wordpress.com/2009/01/screenshot-new-java-class-1.png?w=450&#038;h=511" alt="screenshot-new-java-class-1" title="screenshot-new-java-class-1" width="450" height="511" class="alignnone size-full wp-image-22" /><br />
Press Finish to create the file.</li>
<li>Next, we need a working Java main. Copy in the following text and save the changes:
<pre>package testpackage;

import java.rmi.RemoteException;

import org.apache.axis2.AxisFault;

import testpackage.TestClassStub;
import testpackage.TestClassStub.HelloWorldResponse;

public class TestServiceMain {

        public static void main(String[] args) {
                try {
                        TestClassStub stub = new TestClassStub();
                        HelloWorldResponse res = stub.helloWorld();
                        System.out.println("Response = " + res.get_return());
                } catch (AxisFault e) {
                        e.printStackTrace();
                } catch (RemoteException e) {
                        e.printStackTrace();
                }

        }
}</pre>
<p>This is basically a template where &#8220;testpackage&#8221; is the package name, &#8220;TestClass&#8221; is the class name, &#8220;TestService&#8221; is the service name, and &#8220;HelloWorld&#8221; is the function name (upper case all the time).</li>
<li>Now, the last step! In the Project Explorer, select TestServiceMain.java, right mouse click, and the &#8220;Run As -&gt; Java Application&#8221;. In the Eclipse &#8220;Console&#8221; output window on the bottom you should see &#8220;Response = Hello, world&#8221;. If so, it all works! Now, you can follow these steps to build a real web service!</li>
</ol>
<p>To be continued&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dougsweblog.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dougsweblog.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dougsweblog.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dougsweblog.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dougsweblog.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dougsweblog.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dougsweblog.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dougsweblog.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dougsweblog.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dougsweblog.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dougsweblog.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dougsweblog.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dougsweblog.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dougsweblog.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=10&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dougsweblog.wordpress.com/2009/01/12/creating-a-java-web-service-with-eclipse/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e8141094439302e0ed02c3fb21ec9e7d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dougsweblog</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-new-dynamic-web-project.png" medium="image">
			<media:title type="html">screenshot-new-dynamic-web-project</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-project-facets.png" medium="image">
			<media:title type="html">screenshot-project-facets</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-new-java-class-1.png" medium="image">
			<media:title type="html">screenshot-new-java-class-1</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-1.png" medium="image">
			<media:title type="html">screenshot-web-service-1</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-run-on-server.png" medium="image">
			<media:title type="html">screenshot-run-on-server</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-client.png" medium="image">
			<media:title type="html">screenshot-web-service-client</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-client-12.png" medium="image">
			<media:title type="html">screenshot-web-service-client-12</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-web-service-client-2.png" medium="image">
			<media:title type="html">screenshot-web-service-client-2</media:title>
		</media:content>

		<media:content url="http://dougsweblog.files.wordpress.com/2009/01/screenshot-new-java-class-1.png" medium="image">
			<media:title type="html">screenshot-new-java-class-1</media:title>
		</media:content>
	</item>
		<item>
		<title>Java const correctness (or lack thereof)</title>
		<link>http://dougsweblog.wordpress.com/2009/01/12/java-const-correctness-or-lack-thereof/</link>
		<comments>http://dougsweblog.wordpress.com/2009/01/12/java-const-correctness-or-lack-thereof/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 02:07:40 +0000</pubDate>
		<dc:creator>dougsweblog</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://dougsweblog.wordpress.com/?p=7</guid>
		<description><![CDATA[So I&#8217;ve been doing some Java programming recently, for the first time in several years, and I encountered one of the known drawbacks of Java as compared to C++: the lack of constant function parameters. From what I&#8217;ve read, this is a known issue but not one that is planned to be solved, given its [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=7&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been doing some Java programming recently, for the first time in several years, and I encountered one of the known drawbacks of Java as compared to C++: the lack of constant function parameters.  From what I&#8217;ve read, this is a known issue but not one that is planned to be solved, given its impact to the language. So for now, I need to deal with it.</p>
<p>As I am currently used to C++ programming, my first solution was to make the parameter &#8220;const&#8221;, but that, of course, is not possible. So for now I just reworked the code a bit &#8211; a patch, not a solution.  However, not having const parameters now seems to me like driving without a seat belt, and has me worried.  So, once my program is functionally complete, I plan to go back and try to refactor it and solve this problem (this may involve redesigning the classes).  When I do get back this, I will probably report what happened, and whether it was successful or not.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dougsweblog.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dougsweblog.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dougsweblog.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dougsweblog.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dougsweblog.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dougsweblog.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dougsweblog.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dougsweblog.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dougsweblog.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dougsweblog.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dougsweblog.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dougsweblog.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dougsweblog.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dougsweblog.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=7&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dougsweblog.wordpress.com/2009/01/12/java-const-correctness-or-lack-thereof/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e8141094439302e0ed02c3fb21ec9e7d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dougsweblog</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://dougsweblog.wordpress.com/2009/01/12/hello-world/</link>
		<comments>http://dougsweblog.wordpress.com/2009/01/12/hello-world/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 01:17:31 +0000</pubDate>
		<dc:creator>dougsweblog</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=1&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to <a href="http://wordpress.com/">WordPress.com</a>. This is your first post. Edit or delete it and start blogging!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dougsweblog.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dougsweblog.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dougsweblog.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dougsweblog.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dougsweblog.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dougsweblog.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dougsweblog.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dougsweblog.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dougsweblog.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dougsweblog.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dougsweblog.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dougsweblog.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dougsweblog.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dougsweblog.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dougsweblog.wordpress.com&amp;blog=6137182&amp;post=1&amp;subd=dougsweblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dougsweblog.wordpress.com/2009/01/12/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e8141094439302e0ed02c3fb21ec9e7d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dougsweblog</media:title>
		</media:content>
	</item>
	</channel>
</rss>
