summaryrefslogtreecommitdiff
path: root/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml
diff options
context:
space:
mode:
Diffstat (limited to 'web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml')
-rw-r--r--web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml328
1 files changed, 328 insertions, 0 deletions
diff --git a/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml b/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml
new file mode 100644
index 0000000..860edd2
--- /dev/null
+++ b/web/lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/index.chtml
@@ -0,0 +1,328 @@
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<base href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/"><div style="background:#fff;border:1px solid #999;margin:-1px -1px 0;padding:0;"><div style="background:#ddd;border:1px solid #999;color:#000;font:13px arial,sans-serif;font-weight:normal;margin:12px;padding:8px;text-align:left">This is Google&#39;s cache of <a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/" style="text-decoration:underline;color:#00c">http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/</a>. It is a snapshot of the page as it appeared on Dec 15, 2011 09:12:44 GMT. The <a href="http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/" style="text-decoration:underline;color:#00c">current page</a> could have changed in the meantime. <a href="http://www.google.com/intl/en/help/features_list.html#cached" style="text-decoration:underline;color:#00c">Learn more</a><br><br><div style="float:right"><a href="http://webcache.googleusercontent.com/search?q=cache:http://lukeshu.ath.cx/1/wordpress/2011/01/pointers-in-java/+lukeshu.ath.cx&amp;hl=en&strip=1" style="text-decoration:underline;color:#00c">Text-only version</a></div>
+<div>&nbsp;</div></div></div><div style="position:relative">
+<?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>
+
+