<?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:ymaps="http://api.maps.yahoo.com/Maps/V2/AnnotatedMaps.xsd">

<channel>
	<title>Square Galaxy &#187; programming</title>
	<atom:link href="http://squaregalaxy.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://squaregalaxy.com</link>
	<description>A blog by Jacob</description>
	<lastBuildDate>Tue, 16 Mar 2010 19:11:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>hAPI hAPI joy joy</title>
		<link>http://squaregalaxy.com/tech/hapi-hapi-joy-joy/</link>
		<comments>http://squaregalaxy.com/tech/hapi-hapi-joy-joy/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 08:19:25 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Dear Google]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://jacob.peargrove.com/columns/?p=47</guid>
		<description><![CDATA[Dear Google,
Let me tell you why you are a winner in my book.  Three letters, A-P-I.  I think opening up your services through developer APIs is what gives Google an edge over your competitors.  It is what makes Google more than just a web site.  It makes Google a web service. [...]


Related posts:<ol><li><a href='http://squaregalaxy.com/tech/a-few-suggestions-for-google-knol/' rel='bookmark' title='Permanent Link: A few suggestions for Google Knol'>A few suggestions for Google Knol</a> <small>Dear Google Knol, After your recent announcement about opening Knol,...</small></li>
<li><a href='http://squaregalaxy.com/tech/pdf-support-in-gdata-api/' rel='bookmark' title='Permanent Link: PDF support in Gdata API'>PDF support in Gdata API</a> <small>Dear Google Docs, Recently you added PDF support to Google...</small></li>
<li><a href='http://squaregalaxy.com/tech/web-site-accessibility-and-usability/' rel='bookmark' title='Permanent Link: Web Site Accessibility and Usability'>Web Site Accessibility and Usability</a> <small>Well, I&#8217;ve been learning a lot about creating usable web...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Dear Google,</p>
<p>Let me tell you why you are a winner in my book.  Three letters, <a href="http://en.wikipedia.org/wiki/API">A-P-I</a>.  I think opening up your services through developer APIs is what gives Google an edge over your competitors.  It is what makes Google more than just a web <em>site</em>.  It makes Google a web <em>service</em>.  Your latest efforts to <a href="http://googledataapis.blogspot.com/2008/06/google-data-apis-now-easier-to-use-for.html">make Google data more mashable</a> is a good example of your continued efforts to support nice APIs.</p>
<p>Thank you for your efforts and keep up the good work.</p>

<p>Related posts:<ol><li><a href='http://squaregalaxy.com/tech/a-few-suggestions-for-google-knol/' rel='bookmark' title='Permanent Link: A few suggestions for Google Knol'>A few suggestions for Google Knol</a> <small>Dear Google Knol, After your recent announcement about opening Knol,...</small></li>
<li><a href='http://squaregalaxy.com/tech/pdf-support-in-gdata-api/' rel='bookmark' title='Permanent Link: PDF support in Gdata API'>PDF support in Gdata API</a> <small>Dear Google Docs, Recently you added PDF support to Google...</small></li>
<li><a href='http://squaregalaxy.com/tech/web-site-accessibility-and-usability/' rel='bookmark' title='Permanent Link: Web Site Accessibility and Usability'>Web Site Accessibility and Usability</a> <small>Well, I&#8217;ve been learning a lot about creating usable web...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://squaregalaxy.com/tech/hapi-hapi-joy-joy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>atoi(getenv(&#8220;MYVAR&#8221;))</title>
		<link>http://squaregalaxy.com/tech/atoi-getenv-myvar-linux-init/</link>
		<comments>http://squaregalaxy.com/tech/atoi-getenv-myvar-linux-init/#comments</comments>
		<pubDate>Wed, 28 May 2008 22:34:05 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://jacob.peargrove.com/tech/?p=88</guid>
		<description><![CDATA[These are mostly personal notes.  I&#8217;m not sure if they will make sense to others.
I had a problem with a line of code like this:
int x = atoi(getenv("MYVAR"));
If this line was in daemon-ized code started at init level 2, it would segfault.  (I&#8217;m not sure if these conditions are necessary, but those were [...]


Related posts:<ol><li><a href='http://squaregalaxy.com/tech/cross-post-code/' rel='bookmark' title='Permanent Link: Cross post code'>Cross post code</a> <small>I&#8217;ve implemented a method which will automatically take posts I...</small></li>
<li><a href='http://squaregalaxy.com/tech/what-bothers-you-most-about-this-code/' rel='bookmark' title='Permanent Link: What bothers you most about this code?'>What bothers you most about this code?</a> <small>I came across this line of code today, and while...</small></li>
<li><a href='http://squaregalaxy.com/tech/gdocsuploader/' rel='bookmark' title='Permanent Link: Gdocsuploader'>Gdocsuploader</a> <small>A while ago, I found myself needing to upload many...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>These are mostly personal notes.  I&#8217;m not sure if they will make sense to others.</p>
<p>I had a problem with a line of code like this:<br />
<code>int x = atoi(getenv("MYVAR"));</code></p>
<p>If this line was in daemon-ized code started at init level 2, it would segfault.  (I&#8217;m not sure if these conditions are necessary, but those were my conditions).</p>
<p><code>getenv("UNKNOWN_VAR") == NULL</code><br />
<code>atoi(NULL)</code> <strong>should </strong><code>== 0</code></p>
<p>But for some reason, things were segfaulting.  I corrected the problem with:<br />
<code>if (getenv("MYVAR") == NULL) int x = 0;<br />
else int x = atoi(getenv("MYVAR"));</code></p>

<p>Related posts:<ol><li><a href='http://squaregalaxy.com/tech/cross-post-code/' rel='bookmark' title='Permanent Link: Cross post code'>Cross post code</a> <small>I&#8217;ve implemented a method which will automatically take posts I...</small></li>
<li><a href='http://squaregalaxy.com/tech/what-bothers-you-most-about-this-code/' rel='bookmark' title='Permanent Link: What bothers you most about this code?'>What bothers you most about this code?</a> <small>I came across this line of code today, and while...</small></li>
<li><a href='http://squaregalaxy.com/tech/gdocsuploader/' rel='bookmark' title='Permanent Link: Gdocsuploader'>Gdocsuploader</a> <small>A while ago, I found myself needing to upload many...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://squaregalaxy.com/tech/atoi-getenv-myvar-linux-init/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What bothers you most about this code?</title>
		<link>http://squaregalaxy.com/tech/what-bothers-you-most-about-this-code/</link>
		<comments>http://squaregalaxy.com/tech/what-bothers-you-most-about-this-code/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 19:59:56 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://jacob.peargrove.com/tech/?p=75</guid>
		<description><![CDATA[I came across this line of code today, and while I don&#8217;t normally hate other people&#8217;s coding style, this one has something in it that really bothers me:
i = ((unsigned int)(crcAccum &#62;&#62; 24) ^ *dataBlkPtr++ ) &#38; 0xff;

Related posts:Cross post code I&#8217;ve implemented a method which will automatically take posts I...
Harvest the code I thought [...]


Related posts:<ol><li><a href='http://squaregalaxy.com/tech/cross-post-code/' rel='bookmark' title='Permanent Link: Cross post code'>Cross post code</a> <small>I&#8217;ve implemented a method which will automatically take posts I...</small></li>
<li><a href='http://squaregalaxy.com/tech/harvest-the-code/' rel='bookmark' title='Permanent Link: Harvest the code'>Harvest the code</a> <small>I thought I would throw a few marbles around about...</small></li>
<li><a href='http://squaregalaxy.com/tech/atoi-getenv-myvar-linux-init/' rel='bookmark' title='Permanent Link: atoi(getenv(&#8220;MYVAR&#8221;))'>atoi(getenv(&#8220;MYVAR&#8221;))</a> <small>These are mostly personal notes. I&#8217;m not sure if they...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I came across this line of code today, and while I don&#8217;t normally hate other people&#8217;s coding style, this one has something in it that really bothers me:</p>
<pre>i = ((unsigned int)(crcAccum &gt;&gt; 24) ^ *dataBlkPtr++ ) &amp; 0xff;</pre>

<p>Related posts:<ol><li><a href='http://squaregalaxy.com/tech/cross-post-code/' rel='bookmark' title='Permanent Link: Cross post code'>Cross post code</a> <small>I&#8217;ve implemented a method which will automatically take posts I...</small></li>
<li><a href='http://squaregalaxy.com/tech/harvest-the-code/' rel='bookmark' title='Permanent Link: Harvest the code'>Harvest the code</a> <small>I thought I would throw a few marbles around about...</small></li>
<li><a href='http://squaregalaxy.com/tech/atoi-getenv-myvar-linux-init/' rel='bookmark' title='Permanent Link: atoi(getenv(&#8220;MYVAR&#8221;))'>atoi(getenv(&#8220;MYVAR&#8221;))</a> <small>These are mostly personal notes. I&#8217;m not sure if they...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://squaregalaxy.com/tech/what-bothers-you-most-about-this-code/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Cross post code</title>
		<link>http://squaregalaxy.com/tech/cross-post-code/</link>
		<comments>http://squaregalaxy.com/tech/cross-post-code/#comments</comments>
		<pubDate>Wed, 01 Mar 2006 08:34:56 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://jacob.peargrove.com/blog/2006/technical/internet/cross-post-code/</guid>
		<description><![CDATA[I&#8217;ve implemented a method which will automatically take posts I make on blogger.com and publish them on this blog as well.  I thought I would share the code I used to do this.  If you were to use use this script, you would need to replace text in all caps with actual values.
My [...]


Related posts:<ol><li><a href='http://squaregalaxy.com/tech/what-bothers-you-most-about-this-code/' rel='bookmark' title='Permanent Link: What bothers you most about this code?'>What bothers you most about this code?</a> <small>I came across this line of code today, and while...</small></li>
<li><a href='http://squaregalaxy.com/tech/atoi-getenv-myvar-linux-init/' rel='bookmark' title='Permanent Link: atoi(getenv(&#8220;MYVAR&#8221;))'>atoi(getenv(&#8220;MYVAR&#8221;))</a> <small>These are mostly personal notes. I&#8217;m not sure if they...</small></li>
<li><a href='http://squaregalaxy.com/blogging/msn-blog-censorship/' rel='bookmark' title='Permanent Link: MSN Blog Censorship'>MSN Blog Censorship</a> <small>I found this article about how MSN is censoring the...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve implemented <a href="http://jacob.peargrove.com/blog/2006/general/first-cross-post/">a method</a> which will automatically take posts I make on blogger.com and publish them on this blog as well.  I thought I would share the code I used to do this.  If you were to use use this script, you would need to replace text in all caps with actual values.</p>
<p>My code makes use of the <a href="http://www.dentedreality.com.au/bloggerapi/class/">Blogger Class from Dented Reality</a>.  Use at your own risk and don&#8217;t blame me if it doesn&#8217;t work or screws up your blogs.<br />
<span id="more-243"></span></p>
<pre>&lt; ?php

require_once("class.bloggerclient.php");

$blogid = BLOGGER_BLOG_ID_NUMBER;
$wp_name = 'WORDPRESS_USERNAME';
$wp_pass = 'WORDPRESS_PASSWORD';
$wp_host = 'WORDPRESS_HOSTNAME'; //ie. myblog.wordpress.com
$wp_rpc = 'WORDPRESS_PATH_TO_XMLRPC'; //ie. /blog/xmlrpc.php
$b_name = 'BLOGGER_USERNAME';
$b_pass = 'BLOGGER_PASSWORD';

$wordpress = new bloggerclient($wp_name, $wp_pass, $wp_host, $wp_rpc);
$blogger = new bloggerclient($b_name, $b_pass, 'plant.blogger.com', '/api/RPC2');

$newposts = array_reverse($blogger-&gt;getRecentPosts($blogid, 3));

//print_r($newposts);

mysql_pconnect('MYSQL_DATABASE_HOSTNAME',
                       'DATABASE_USERNAME',
                       'DATABASE_PASSWORD');
mysql_select_db('DATABASE_NAME');

/**Database Structure:
CREATE TABLE imported (
  id int(11) NOT NULL auto_increment,
  blogid int(11) unsigned default NULL,
  postid bigint(20) unsigned default NULL,
  PRIMARY KEY  (id)
);
*/

foreach ($newposts as $post) {
    $sql = "SELECT * FROM imported ";
    $sql .= "WHERE blogid = $blogid and postid = {$post['postid']};";
    $result = mysql_query($sql);
    $n = mysql_num_rows($result);
    if ($n == 0) {
        $matches = array();
        $atom_api_url = "https://$b_name:$b_pass@www.blogger.com";
        $atom_api_url .= "/atom/$blogid/{$post['postid']}"
        $string = file_get_contents($atom_api_url);
        $regex = "||U";
        preg_match($regex, $string, $matches);
        $title = trim($matches[1]);
        if (!isset($title) || $title == '') {
            $title = "Blog entry for ". date('F jS');
        }
        $insert = "INSERT INTO imported (blogid, postid) ";
        $insert .= "VALUES ($blogid, {$post['postid']});";
        $content = "". $post['content'];
        $wordpress-&gt;newPost(1, $content, true);
        mysql_query($insert);
    }
}
?&gt;</pre>
<p>I also had to make a small change to the bloggerclient class in the class.blogger.php file.  I changed the class constructor to allow a specified remote server.  This was so I can use the same class with wordpress.  My changes look like this:</p>
<pre>    function bloggerclient($username, $password,$server=null, $path=null)
    {
        if (isset($server)) $this-&gt;bServer = $server;
        if (isset($path)) $this-&gt;bPath = $path;</pre>

<p>Related posts:<ol><li><a href='http://squaregalaxy.com/tech/what-bothers-you-most-about-this-code/' rel='bookmark' title='Permanent Link: What bothers you most about this code?'>What bothers you most about this code?</a> <small>I came across this line of code today, and while...</small></li>
<li><a href='http://squaregalaxy.com/tech/atoi-getenv-myvar-linux-init/' rel='bookmark' title='Permanent Link: atoi(getenv(&#8220;MYVAR&#8221;))'>atoi(getenv(&#8220;MYVAR&#8221;))</a> <small>These are mostly personal notes. I&#8217;m not sure if they...</small></li>
<li><a href='http://squaregalaxy.com/blogging/msn-blog-censorship/' rel='bookmark' title='Permanent Link: MSN Blog Censorship'>MSN Blog Censorship</a> <small>I found this article about how MSN is censoring the...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://squaregalaxy.com/tech/cross-post-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dining Philosphers Problem</title>
		<link>http://squaregalaxy.com/tech/dining-philosphers-problem/</link>
		<comments>http://squaregalaxy.com/tech/dining-philosphers-problem/#comments</comments>
		<pubDate>Tue, 04 Oct 2005 00:40:31 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://jacob.peargrove.com/blog/?p=146</guid>
		<description><![CDATA[http://en.wikipedia.org/wiki/Dining_philosophers_problem
This should help with my CS 345 program.

Related posts:Introducing ScriptureCast.net Sometimes, some of us need a little help remembering to...
hAPI hAPI joy joy Dear Google, Let me tell you why you are a...
Better way to timstamp for computer science project pass-offs Timestamps are bad, use MD5 Sums!...



Related posts:<ol><li><a href='http://squaregalaxy.com/religion/introducing-scripturecastnet/' rel='bookmark' title='Permanent Link: Introducing ScriptureCast.net'>Introducing ScriptureCast.net</a> <small>Sometimes, some of us need a little help remembering to...</small></li>
<li><a href='http://squaregalaxy.com/tech/hapi-hapi-joy-joy/' rel='bookmark' title='Permanent Link: hAPI hAPI joy joy'>hAPI hAPI joy joy</a> <small>Dear Google, Let me tell you why you are a...</small></li>
<li><a href='http://squaregalaxy.com/education/suggestion-for-computer-science-classes/' rel='bookmark' title='Permanent Link: Better way to timstamp for computer science project pass-offs'>Better way to timstamp for computer science project pass-offs</a> <small>Timestamps are bad, use MD5 Sums!...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Dining_philosophers_problem">http://en.wikipedia.org/wiki/Dining_philosophers_problem</a></p>
<p>This should help with my CS 345 program.</p>

<p>Related posts:<ol><li><a href='http://squaregalaxy.com/religion/introducing-scripturecastnet/' rel='bookmark' title='Permanent Link: Introducing ScriptureCast.net'>Introducing ScriptureCast.net</a> <small>Sometimes, some of us need a little help remembering to...</small></li>
<li><a href='http://squaregalaxy.com/tech/hapi-hapi-joy-joy/' rel='bookmark' title='Permanent Link: hAPI hAPI joy joy'>hAPI hAPI joy joy</a> <small>Dear Google, Let me tell you why you are a...</small></li>
<li><a href='http://squaregalaxy.com/education/suggestion-for-computer-science-classes/' rel='bookmark' title='Permanent Link: Better way to timstamp for computer science project pass-offs'>Better way to timstamp for computer science project pass-offs</a> <small>Timestamps are bad, use MD5 Sums!...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://squaregalaxy.com/tech/dining-philosphers-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Site Accessibility and Usability</title>
		<link>http://squaregalaxy.com/tech/web-site-accessibility-and-usability/</link>
		<comments>http://squaregalaxy.com/tech/web-site-accessibility-and-usability/#comments</comments>
		<pubDate>Thu, 14 Jul 2005 07:28:03 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[BYU]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://jacob.peargrove.com/blog/?p=126</guid>
		<description><![CDATA[Well, I&#8217;ve been learning a lot about creating usable web sites.  There is so much to consider.  Persons with color deficient vision, or persons needing high-contrast text, blind persons, persons with mobility problems who can&#8217;t use a mouse well, and on and on.  I&#8217;m convinced that our new Chemistry department web site [...]


Related posts:<ol><li><a href='http://squaregalaxy.com/tech/web-site-congruences/' rel='bookmark' title='Permanent Link: Web Site Congruences'>Web Site Congruences</a> <small>I found this web site which talks about university website...</small></li>
<li><a href='http://squaregalaxy.com/tech/byus-new-website-theme-fosters-identity-theft/' rel='bookmark' title='Permanent Link: BYU&#8217;s new website theme fosters identity theft'>BYU&#8217;s new website theme fosters identity theft</a> <small>On February 15th, BYU will launch a new look and...</small></li>
<li><a href='http://squaregalaxy.com/tech/hapi-hapi-joy-joy/' rel='bookmark' title='Permanent Link: hAPI hAPI joy joy'>hAPI hAPI joy joy</a> <small>Dear Google, Let me tell you why you are a...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve been learning a lot about creating usable web sites.  There is so much to consider.  Persons with color deficient vision, or persons needing high-contrast text, blind persons, persons with mobility problems who can&#8217;t use a mouse well, and on and on.  I&#8217;m convinced that our new Chemistry department web site will finally allow all these people to effectively use our web site.</p>
<p>Information Architecture is a much bigger deal than I thought it would be.  When organizing information, there is a <em>organizational scheme</em>, and <em>organizational structure</em>.  The scheme refers to how items are grouped together, while the structure refers to how these groups relate to each other.  I&#8217;m mostly concerned with scheme right now, because the new Chemistry web site content management framework was developed around a hierarchical structure.</p>
<p>There are a couple standard sheme types.  Some schemes are exact, like ordering things alphabetically &#8212; its very obvious what category (letter) a piece of information would go.  Others are more ambiguous, because there might be some information which could fit into more than one group.  Ambiguous scheme types are of more interest to me because it is a more natural way of thinking.  Some of these ambiguous scheme types are:</p>
<ul>
<li><strong>Topical.</strong> The phone book is the best example of this.  Do you have a tooth ache?  You open the yellow pages up to a topic having do to with teeth: &#8220;Dentist or Dentistry.&#8221;</li>
<li><strong>Task-oriented.</strong> <a href="http://ebay.com">eBay</a> is a good example.  Do you want to buy, sell, or look at your user account?  Information is served up based on what you want to do.</li>
<li><strong>Audience-specific. </strong><a href="http://www.hp.com"><acronym title="Hewlett-Packard">HP</acronym></a> has an example of this on their web site.  Are you a small business or a governement entity? Information is served up based on who you are.</li>
<li><strong>Metaphor-driven</strong>.  Which folder did you save that word document?  Here information is organized based on a file and folder metaphor.</li>
</ul>
<p>This is just only the beginning of what I&#8217;ve learned.  I&#8217;ve also learned why link sorting is important, how to choose good labels for links and pages, what navigation menus should be displayed where, and how to conduct research.</p>
<p>That&#8217;s been the biggest thing that I&#8217;ve read and learned: research.  Each book I&#8217;ve read has talked about theory and concepts, but they say in order to get a true idea of what to do, you have to do research with real users.</p>
<p>Most of the ideas posted here were from a book I&#8217;ve read <em>Information Architecture for the World Wide Web</em>.  I highly suggest reading it if you have interest in organizational schemes.  Please use the Amazon link if you wish to buy this book, so I can get a small commission for referring you.</p>

<p>Related posts:<ol><li><a href='http://squaregalaxy.com/tech/web-site-congruences/' rel='bookmark' title='Permanent Link: Web Site Congruences'>Web Site Congruences</a> <small>I found this web site which talks about university website...</small></li>
<li><a href='http://squaregalaxy.com/tech/byus-new-website-theme-fosters-identity-theft/' rel='bookmark' title='Permanent Link: BYU&#8217;s new website theme fosters identity theft'>BYU&#8217;s new website theme fosters identity theft</a> <small>On February 15th, BYU will launch a new look and...</small></li>
<li><a href='http://squaregalaxy.com/tech/hapi-hapi-joy-joy/' rel='bookmark' title='Permanent Link: hAPI hAPI joy joy'>hAPI hAPI joy joy</a> <small>Dear Google, Let me tell you why you are a...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://squaregalaxy.com/tech/web-site-accessibility-and-usability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better way to timstamp for computer science project pass-offs</title>
		<link>http://squaregalaxy.com/education/suggestion-for-computer-science-classes/</link>
		<comments>http://squaregalaxy.com/education/suggestion-for-computer-science-classes/#comments</comments>
		<pubDate>Wed, 22 Jun 2005 20:37:51 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[BYU]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://jacob.peargrove.com/blog/?p=119</guid>
		<description><![CDATA[Timestamps are bad, use MD5 Sums!


Related posts:<ol><li><a href='http://squaregalaxy.com/tech/how-much-is-this-old-computer-worth/' rel='bookmark' title='Permanent Link: How much is this old computer worth?'>How much is this old computer worth?</a> <small>I have a friend who is trying to sell her...</small></li>
<li><a href='http://squaregalaxy.com/tech/how-much-is-an-old-computer-worth/' rel='bookmark' title='Permanent Link: How much is an old computer worth?'>How much is an old computer worth?</a> <small>Occasionally I get asked how much a particular used computer...</small></li>
<li><a href='http://squaregalaxy.com/tech/cross-post-code/' rel='bookmark' title='Permanent Link: Cross post code'>Cross post code</a> <small>I&#8217;ve implemented a method which will automatically take posts I...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>For some programming classes, they allow you to turn in a project late if you had it done on time.  What they usually do is look at the &#8220;timestamp&#8221; of the file, which is the time the file was last modified.<span id="more-120"></span></p>
<p>The problem with this is that these timestamps are easy to spoof.  You can set the clock back on your computer, save the file, then set the clock back on your computer, and the file retains the false timestamp.</p>
<p>There is an algorithm called MD5, which allows you to get a 32 character hex string based on an partucular input.  If my input is &#8220;You can&#8217;t fake this&#8221; then the output is &#8220;3132336fe3576c5cee7c7244685a07cd.&#8221;  If however we change the input slightly by using all lowercase letters in the input string, the output string then becomes, &#8220;e2227401e9ee8d2f79d4ed861dad701f,&#8221; which is extremely different.  To find this string on any particular <em>file</em>, you simply type <strong>md5sum filename.txt</strong>.</p>
<p>MD5 allows an easy way to tell if a file has been changed.  If the strings are the same, then the files are extremely likely to be the same.</p>
<p>So then what the Computer Science department needs is a page that allows students to upload their name and an the output to this md5sum program.  The page that accepts these uploads also records the timestamp.  Here the server applies timestamps.</p>
<p>Then, if the student completely the project on the due date, but isn&#8217;t able to pass it of because the TA is busy, the student can run the md5sum program on their source code and upload it to the web server.  At the later point, when the student finally meets with the TA, the student can pass off the program, and then show the md5sum of the program as it was passed off and compare it to the one posted on the web page.  The TA now knows there were no modifications to the file since the timestamp shown on the web page.</p>

<p>Related posts:<ol><li><a href='http://squaregalaxy.com/tech/how-much-is-this-old-computer-worth/' rel='bookmark' title='Permanent Link: How much is this old computer worth?'>How much is this old computer worth?</a> <small>I have a friend who is trying to sell her...</small></li>
<li><a href='http://squaregalaxy.com/tech/how-much-is-an-old-computer-worth/' rel='bookmark' title='Permanent Link: How much is an old computer worth?'>How much is an old computer worth?</a> <small>Occasionally I get asked how much a particular used computer...</small></li>
<li><a href='http://squaregalaxy.com/tech/cross-post-code/' rel='bookmark' title='Permanent Link: Cross post code'>Cross post code</a> <small>I&#8217;ve implemented a method which will automatically take posts I...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://squaregalaxy.com/education/suggestion-for-computer-science-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
