summaryrefslogtreecommitdiff
path: root/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.html
blob: 6e78d682280192f08c771ac490df6a7a67da7589 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" >
<head>
	<title>Pointers in Java | ltsBlog</title>
	<link href="/1/lts.css"                             rel="stylesheet" type="text/css" media="screen,projection" />
	<link href="http://lukeshu.ath.cx/1/wordpress/wp-content/themes/lts/style.css" rel="stylesheet" type="text/css" media="all" />
	<link href="http://lukeshu.ath.cx/1/wordpress/wp-content/themes/lts/widgets.css" rel="stylesheet" type="text/css" media="screen,projection" />
	<link rel="pingback" href="http://lukeshu.ath.cx/1/wordpress/xmlrpc.php" />
<link rel="alternate" type="application/rss+xml" title="ltsBlog &raquo; Feed" href="http://lukeshu.ath.cx/1/wordpress/feed/" />
<link rel="alternate" type="application/rss+xml" title="ltsBlog &raquo; Comments Feed" href="http://lukeshu.ath.cx/1/wordpress/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="ltsBlog &raquo; Pointers in Java Comments Feed" href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/feed/" />
<script type='text/javascript' src='http://lukeshu.ath.cx/1/wordpress/wp-includes/js/l10n.js?ver=20101110'></script>
<script type='text/javascript' src='http://lukeshu.ath.cx/1/wordpress/wp-includes/js/comment-reply.js?ver=20090102'></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://lukeshu.ath.cx/1/wordpress/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://lukeshu.ath.cx/1/wordpress/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='ltsBlog' href='http://lukeshu.ath.cx/1/wordpress/' />
<link rel='start' title='Lesson 1: Bourne Shell Scripting' href='http://lukeshu.ath.cx/1/wordpress/2010/09/hello-world/' />
<link rel='prev' title='Java has issues' href='http://lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/' />
<link rel='next' title='Questions about copyright of the deceased' href='http://lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/' />
<meta name="generator" content="WordPress 3.2.1" />
<link rel='canonical' href='http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/' />
<link rel='shortlink' href='http://lukeshu.ath.cx/1/wordpress/?p=53' />
 
</head>

<body>
	<div class="nocss">
		<ul>
			<li><a href="#navigation">Skip to Navigation</a></li>
			<li><a href="#content">Skip to Content</a></li>
			<li><a href="#footer">Skip to Disclaimer</a></li>
		</ul>
	</div>
 
 
	<h1><a href="http://lukeshu.ath.cx/1/wordpress/" title="ltsBlog" rel="home">ltsBlog</a></h1> 
 
	<div class="nav"><a class="nocss" id="navigation"></a>
		<ul>
			<li><a href="/1/">Home</a></li>
			<li><a href="/1/FRC/">Robots</a></li>
			<li><a href="/1/img/">Pictures</a></li>
			<li><a href="/1/wordpress/">Weblog</a></li>
			<li><a href="/1/comicjk/viewer.php">Comic JK</a></li>
		</ul>
	</div>
 
 

	<div class="sidebar widget-area">
		<ul class="xoxo">
<li id="search-2" class="widget-container widget_search">	<form method="get" id="searchform" action="/1/wordpress/" >
		<div>
			<label class="screen-reader-text" for="s">Search ltsBlog:</label>
			<input type="text" value="" name="s" id="s" />
			<input type="submit" id="searchsubmit" value="Search" />
		</div>
	</form>
</li>              <li id="statusnetwidget-4" class="widget-container widget_statusnetwidget">                  <span class="widget-title">Me on identi.ca</span>                  <ul class="statusnet"><li class="statusnet-item">&quot;The darkest places in hell are reserved for those who maintain their neutrality in times of moral crisis.&quot; - Dante Alighieri <span class="statusnet-timestamp"><abbr title="2011/12/13 02:12:01"><a href="http://identi.ca/notice/86765280">2011/12/13</a></abbr></span></li><li class="statusnet-item">Someone egged a bunch of cars in our neighborhood. <span class="statusnet-timestamp"><abbr title="2011/12/03 05:58:48"><a href="http://identi.ca/notice/86136803">2011/12/03</a></abbr></span></li><li class="statusnet-item"><a href="http://identi.ca/group/git">!git</a>. is. such. win. <span class="statusnet-timestamp"><abbr title="2011/11/27 20:32:11"><a href="http://identi.ca/notice/85848970">2011/11/27</a></abbr></span></li><li class="statusnet-item">My favorite sites could get shut down by 1st censorship system for the internet. Must stop it: 11/16  <a href="http://ur1.ca/5qyod">http://ur1.ca/5qyod</a> <span class="statusnet-timestamp"><abbr title="2011/11/16 12:46:11"><a href="http://identi.ca/notice/85359960">2011/11/16</a></abbr></span></li></ul>              </li>        		<li id="recent-posts-2" class="widget-container widget_recent_entries">		<span class="widget-title">Recent Posts</span>		<ul>
				<li><a href="http://lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/" title="Fixing &#8220;Wrong type argument: characterp, return&#8221; in !Emacs">Fixing &#8220;Wrong type argument: characterp, return&#8221; in !Emacs</a></li>
				<li><a href="http://lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/" title="[Emacs] autopair problems when using term-mode">[Emacs] autopair problems when using term-mode</a></li>
				<li><a href="http://lukeshu.ath.cx/1/wordpress/2011/05/why-sed-i-exists/" title="Why `sed -i&#8217; exists">Why `sed -i&#8217; exists</a></li>
				<li><a href="http://lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/" title="Questions about copyright of the deceased">Questions about copyright of the deceased</a></li>
				<li><a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/" title="Pointers in Java">Pointers in Java</a></li>
				</ul>
		</li><li id="recent-comments-2" class="widget-container widget_recent_comments"><span class="widget-title">Recent Comments</span><ul id="recentcomments"><li class="recentcomments"><a href='http://lukeshu.ath.cx/1/wordpress/2011/08/fixing-wrong-type-argument-characterp-return-in-emacs/' rel='external nofollow' class='url'>Fixing &#8220;Wrong type argument: characterp, return&#8221; in !Emacs | ltsBlog</a> on <a href="http://lukeshu.ath.cx/1/wordpress/2011/08/emacs-autopair-problems-when-using-term-mode/#comment-94">[Emacs] autopair problems when using term-mode</a></li><li class="recentcomments"><a href='http://lukeshu.ath.cx' rel='external nofollow' class='url'>lts</a> on <a href="http://lukeshu.ath.cx/1/wordpress/2010/09/hello-world/#comment-58">Lesson 1: Bourne Shell Scripting</a></li><li class="recentcomments"><a href='http://lukeshu.ath.cx' rel='external nofollow' class='url'>lts</a> on <a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/#comment-56">Pointers in Java</a></li><li class="recentcomments">Ari Consul on <a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/#comment-54">Pointers in Java</a></li><li class="recentcomments">Jade Parsons on <a href="http://lukeshu.ath.cx/1/wordpress/2010/09/hello-world/#comment-52">Lesson 1: Bourne Shell Scripting</a></li></ul></li><li id="archives-2" class="widget-container widget_archive"><span class="widget-title">Archives</span>		<ul>
			<li><a href='http://lukeshu.ath.cx/1/wordpress/2011/08/' title='August 2011'>August 2011</a></li>
	<li><a href='http://lukeshu.ath.cx/1/wordpress/2011/05/' title='May 2011'>May 2011</a></li>
	<li><a href='http://lukeshu.ath.cx/1/wordpress/2011/02/' title='February 2011'>February 2011</a></li>
	<li><a href='http://lukeshu.ath.cx/1/wordpress/2011/01/' title='January 2011'>January 2011</a></li>
	<li><a href='http://lukeshu.ath.cx/1/wordpress/2010/11/' title='November 2010'>November 2010</a></li>
	<li><a href='http://lukeshu.ath.cx/1/wordpress/2010/10/' title='October 2010'>October 2010</a></li>
	<li><a href='http://lukeshu.ath.cx/1/wordpress/2010/09/' title='September 2010'>September 2010</a></li>
		</ul>
</li><li id="categories-2" class="widget-container widget_categories"><span class="widget-title">Categories</span>		<ul>
	<li class="cat-item cat-item-8"><a href="http://lukeshu.ath.cx/1/wordpress/category/computers/" title="View all posts filed under Computers">Computers</a>
</li>
	<li class="cat-item cat-item-7"><a href="http://lukeshu.ath.cx/1/wordpress/category/school-2/essays/" title="View all posts filed under Essays">Essays</a>
</li>
	<li class="cat-item cat-item-12"><a href="http://lukeshu.ath.cx/1/wordpress/category/morning-pages/" title="View all posts filed under morning-pages">morning-pages</a>
</li>
	<li class="cat-item cat-item-9"><a href="http://lukeshu.ath.cx/1/wordpress/category/computers/programming-lessons/" title="View all posts filed under Programming Lessons">Programming Lessons</a>
</li>
	<li class="cat-item cat-item-6"><a href="http://lukeshu.ath.cx/1/wordpress/category/school-2/" title="View all posts filed under School">School</a>
</li>
	<li class="cat-item cat-item-1"><a href="http://lukeshu.ath.cx/1/wordpress/category/uncategorized/" title="View all posts filed under Uncategorized">Uncategorized</a>
</li>
		</ul>
</li><li id="meta-2" class="widget-container widget_meta"><span class="widget-title">Meta</span>			<ul>
			<li><a href="http://lukeshu.ath.cx/1/wordpress/wp-login.php?action=register">Register</a></li>			<li><a href="http://lukeshu.ath.cx/1/wordpress/wp-login.php">Log in</a></li>
			<li><a href="http://lukeshu.ath.cx/1/wordpress/feed/" title="Syndicate this site using RSS 2.0">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li>
			<li><a href="http://lukeshu.ath.cx/1/wordpress/comments/feed/" title="The latest comments to all posts in RSS">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li>
			<li><a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li>
						</ul>
</li><li id="ltshomewidget-3" class="widget-container widget_ltshomewidget">	<ul class="lts_sidebar">
		<li><a href="http://www.defectivebydesign.org/intel"><img src="http://static.fsf.org/nosvn/dbd/stop-intel-med.png" alt="stop Intel" /></a></li>
		<li>
<!-- Beginning of Project Wonderful ad code: -->
<!-- Ad box ID: 51613 -->
<script type="text/javascript">
<!--
var pw_d=document;
pw_d.projectwonderful_adbox_id = "51613";
pw_d.projectwonderful_adbox_type = "4";
pw_d.projectwonderful_foreground_color = "";
pw_d.projectwonderful_background_color = "";
//-->
</script>
<script type="text/javascript" src="http://www.projectwonderful.com/ad_display.js"></script>
<!-- End of Project Wonderful ad code. -->
</li>
	</ul>
</li> 
		</ul>
	</div><!-- .sidebar -->

 
 

	<div class="main"><a class="nocss" id="content"></a>
	 
		<div id="nav-above" class="navigation">
			<div class="nav-previous"><a href="http://lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/" rel="prev"><span class="meta-nav">&larr;</span> Java has issues</a></div>
			<div class="nav-next"><a href="http://lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/" rel="next">Questions about copyright of the deceased <span class="meta-nav">&rarr;</span></a></div>
		</div><!-- #nav-above -->
		
		<div id="post-53" class="post-53 post type-post status-publish format-standard hentry category-computers">
			<h2 class="entry-title">Pointers in Java</h2>
			<div class="entry-meta">
				<span class="meta-prep meta-prep-author">Posted on</span> <a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/" title="23:03" rel="bookmark"><span class="entry-date">2011/01/03</span></a> <span class="meta-sep">by</span> <span class="author vcard"><a class="url fn n" href="http://lukeshu.ath.cx/1/wordpress/author/lts/" title="View all posts by lts">lts</a></span> 
			</div><!-- .entry-meta -->
			<div class="entry-content">
<p class="aside">This was originally posted to Facebook by me at 2010-08-02 23:20.</p>
<p class="aside">Note: For purposes of anyone interested in this, pointers in Java are more commonly referred to as <q>references</q>, because everything in Java must have it&#8217;s own name (method vs. function). This makes operating the <del>Google</del> <ins><a href="https://duckduckgo.com/">DuckDuckGo</a></ins> machine easier. I wish I had known that when I wrote this.</p>
<pre>
In Java there are a few `primitive' datatypes, the rest of the datatypes are
implemented as classes.  They are:

byte
short
int
long
float
double
char
&lt;pointer&gt;

Normally, when declaring a primitive, you write the type of the primitive as
the variable type.  However, the reason I wrote pointer in brackets is that you
DON'T write pointer when declaring a variable storing a pointer.

For example, when I write
java.util.Stack stack = new java.util.Stack();
The variable stack does NOT store an object. It stores a /pointer/ to an object.
A pointer stores the memory address where a object is stored.

ALL VARIABLES STORE PRIMITIVES, IT IS IMPOSSIBLE TO STORE AN OBJECT.
For this reason, it is possible for the JVM to manage memory for you; it keeps
track of the pointers, and once there are no more pointers pointing to a
particular object, it can be deleted.

Why does this matter?  Well, consider that `String' is a class
(`java.lang.String'), not a primitive.  Consider the following code:

String str1 = "foo";
String str2 = "foo";
return (str1 == str2);

If String were a primitive, it would return true; but it returns false.
Strings are a little complex because they contain syntactic sugar.  Let's do
the same example with an integer instead:

Integer int1 = new Integer(5);
Integer int2 = new Integer(5);
return (int1 == int2);

The `java.lang.Integer' class is a class wrapper around the `int' primitive.
The `new' operator creates a class, and returns a pointer to it.  The source
code to the java.lang.Integer class contains the:
    private int value;

    public Integer(int val) {
        value = val;
    }

So, the above example generates to objects belonging to the java.lang.Integer
class.  Even though the .value's of the two objects are the same, they are
separate objects.  Therefore, int1 and int2 store two separate memory locations.
These two locations in the memory store the same data, but it is stored at both
locations.

The `==' operator takes two primitives, and compares their direct values.
Since int1 and int2 store two different memory locations, `(int1 == int2)'
evaluates to false.
</pre>
<p class="aside">Note: as pointed out by Ari Consul, everything following is false. The JVM does not copy the objects, it returns the pointer directly (no magic, as I&#8217;d suggested). The JVM will free() the object when there are no more pointers to it, via basic reference-counting</p>
<pre>
About copying objects:  when returning a private pointer, the JVM makes a copy
of the object that the pointer points to, and returns a pointer to the new
object, NOT the original pointer.

For example if I declare the method:

public static Integer getInt() {
    Integer val = new Integer(5);
    return val;
}

It does NOT actually return `val'; it returns a new pointer to a copy of the
object that val pointed to.
</pre>
 
			</div><!-- .entry-content -->
			<div class="entry-links">
				 
			</div>
			 
			<div class="entry-utility">
				This entry was posted in <a href="http://lukeshu.ath.cx/1/wordpress/category/computers/" title="View all posts in Computers" rel="category tag">Computers</a>. Bookmark the <a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/" title="Permalink to Pointers in Java" rel="bookmark">permalink</a>. 
				 
			</div><!-- .entry-utility -->
		</div><!-- #post-## -->
		
		<div id="nav-below" class="navigation">
			<div class="nav-previous"><a href="http://lukeshu.ath.cx/1/wordpress/2011/01/java-has-issues/" rel="prev"><span class="meta-nav">&larr;</span> Java has issues</a></div>
			<div class="nav-next"><a href="http://lukeshu.ath.cx/1/wordpress/2011/02/questions-about-copyright-of-the-deceased/" rel="next">Questions about copyright of the deceased <span class="meta-nav">&rarr;</span></a></div>
		</div><!-- #nav-below -->
		
		 

		<div id="comments">
 
			<h3 id="comments-title">2 Responses to <em>Pointers in Java</em></h3>
 
			<ol class="commentlist">
				 
				<li class="comment even thread-even depth-1" id="li-comment-54">
					<div id="comment-54">
						<div class="comment-author vcard">
							<img alt='' src='http://0.gravatar.com/avatar/8eb448cd415cf4349d0df2f8a597a862?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G' class='avatar avatar-40 photo' height='40' width='40' /> 
							<cite class="fn">Ari Consul</cite> <span class="says">says:</span> 
						</div><!-- .comment-author .vcard -->
					 
						<div class="comment-meta commentmetadata"><a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/#comment-54">
							2011/06/22 at 05:14</a> 
						</div><!-- .comment-meta .commentmetadata -->
						<div class="comment-body">
<p>Nice blog, keep discovering and posting!</p>
<p>The last part is incorrect.  getInt() (a bad name BTW: newIntFive() or intFiveFactory() would be a better description) creates a new Integer object, a reference to the Integer object and assigns the object reference to val.   getInt() then returns a copy of the object reference.  There is no implicit object copying here.   </p>
<p>Some relevant URLs:<br />
<a href="http://oopweb.com/Java/Documents/ThinkingInJava/Volume/TIJ319.htm#Index2146" rel="nofollow">http://oopweb.com/Java/Documents/ThinkingInJava/Volume/TIJ319.htm#Index2146</a><br />
<a href="http://javadude.com/articles/passbyvalue.htm" rel="nofollow">http://javadude.com/articles/passbyvalue.htm</a><br />
<a href="http://java.sun.com/docs/books/jls/third_edition/html/statements.html#6767" rel="nofollow">http://java.sun.com/docs/books/jls/third_edition/html/statements.html#6767</a></p>
						</div>
						<div class="reply">
							<a class='comment-reply-link' href='/1/wordpress/2011/01/pointers-in-java/?replytocom=54#respond' onclick='return addComment.moveForm("comment-54", "54", "respond", "53")'>Reply</a> 
						</div><!-- .reply -->
					</div><!-- #comment-##  -->
				
<ul class='children'>
 
				<li class="comment byuser comment-author-lts bypostauthor odd alt depth-2" id="li-comment-56">
					<div id="comment-56">
						<div class="comment-author vcard">
							<img alt='' src='http://0.gravatar.com/avatar/002a91d6bdfd6cfecde043c0a7f39123?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G' class='avatar avatar-40 photo' height='40' width='40' /> 
							<cite class="fn"><a href='http://lukeshu.ath.cx' rel='external nofollow' class='url'>lts</a></cite> <span class="says">says:</span> 
						</div><!-- .comment-author .vcard -->
					 
						<div class="comment-meta commentmetadata"><a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/#comment-56">
							2011/06/29 at 05:05</a> 
						</div><!-- .comment-meta .commentmetadata -->
						<div class="comment-body">
<p>Thank you!</p>
<p>I know that now, but at the time I&#8217;d written it, I had been using Java for <del datetime="2011-06-29T05:20:26+00:00">less than 6 months</del><ins datetime="2011-06-29T05:20:26+00:00">a very short time</ins>. My previous statement was based on a flawed understanding of how Java did garbage collection.</p>
<p>Of course, the code example wasn&#8217;t meant to do anything, just be an example of allocing an object and returning a pointer.</p>
<p>BTW, if you don&#8217;t mind me asking, what lead you here?</p>
						</div>
						<div class="reply">
							<a class='comment-reply-link' href='/1/wordpress/2011/01/pointers-in-java/?replytocom=56#respond' onclick='return addComment.moveForm("comment-56", "56", "respond", "53")'>Reply</a> 
						</div><!-- .reply -->
					</div><!-- #comment-##  -->
				
</li>
</ul>
</li>
 
			</ol>
								<div id="respond">
				<h3 id="reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/1/wordpress/2011/01/pointers-in-java/#respond" style="display:none;">Cancel reply</a></small></h3>
									<form action="http://lukeshu.ath.cx/1/wordpress/wp-comments-post.php" method="post" id="commentform">
																			<p class="comment-notes">Your email address will not be published. Required fields are marked <span class="required">*</span></p>							<p class="comment-form-author"><label for="author">Name</label> <span class="required">*</span><input id="author" name="author" type="text" value="" size="30" aria-required='true' /></p>
<p class="comment-form-email"><label for="email">Email</label> <span class="required">*</span><input id="email" name="email" type="text" value="" size="30" aria-required='true' /></p>
<p class="comment-form-url"><label for="url">Website</label><input id="url" name="url" type="text" value="" size="30" /></p>
												<p class="comment-form-comment"><label for="comment">Comment</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>						<p class="form-allowed-tags">You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes:  <code>&lt;a href=&quot;&quot; title=&quot;&quot;&gt; &lt;abbr title=&quot;&quot;&gt; &lt;acronym title=&quot;&quot;&gt; &lt;b&gt; &lt;blockquote cite=&quot;&quot;&gt; &lt;cite&gt; &lt;code&gt; &lt;del datetime=&quot;&quot;&gt; &lt;em&gt; &lt;i&gt; &lt;q cite=&quot;&quot;&gt; &lt;strike&gt; &lt;strong&gt; </code></p>						<p class="form-submit">
							<input name="submit" type="submit" id="submit" value="Post Comment" />
							<input type='hidden' name='comment_post_ID' value='53' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
						</p>
											</form>
							</div><!-- #respond -->
						 
		</div><!-- #comments -->
 
	</div>
<div class='footer'><a class='nocss' id='footer'></a>
	<div class="site-generator">
		<a href="http://wordpress.org/" title="Semantic Personal Publishing Platform" rel="generator" class="site-generator">Powered by WordPress.</a>
	</div>
<p class="valid">Valid <a                href="http://validator.w3.org/check?uri=http%3A%2F%2Flukeshu.ath.cx%2F1%2Fwordpress%2Findex.php" id="link_validate_html">XHTML</a>
                 and   <a href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Flukeshu.ath.cx%2F1%2Fwordpress%2Findex.php" id="link_validate_css" >CSS</a>.
                 <br /><a href="/0/wordpress/index.php">Show (server side) source</a>
</p>
  <p class='copyright'>Copyright &copy; 2010, 2011 Luke Shumaker</p>
  <p class='license'>Verbatim copying and distribution of
    this entire article are permitted worldwide, without
    royalty, in any medium, provided this notice, and the
    copyright notice, are preserved.</p>
</div>
 
</body>
</html>