<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>stevengharms.com &#187; Web</title>
	<atom:link href="http://stevengharms.com/category/web/feed" rel="self" type="application/rss+xml" />
	<link>http://stevengharms.com</link>
	<description>My Blog</description>
	<lastBuildDate>Sat, 21 Apr 2012 19:06:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Use your public library!  Access SF Public Library without login</title>
		<link>http://stevengharms.com/use-your-public-library-access-sf-public-library-without-login</link>
		<comments>http://stevengharms.com/use-your-public-library-access-sf-public-library-without-login#comments</comments>
		<pubDate>Sun, 07 Feb 2010 06:34:06 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Art and Design]]></category>
		<category><![CDATA[San Francisco]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://stevengharms.com/?p=1936</guid>
		<description><![CDATA[As someone who recently liquidated about 9 boxes of books, the majority of which I read only once but lugged around for 10 years, let me recommend that you RENT your books through a service that&#8217;s kinda like Netflix, but for books: the public library! Since I moved, every time I have the urge to [...]]]></description>
			<content:encoded><![CDATA[<p>As someone who recently liquidated about 9 boxes of books, the majority of which I read only once but lugged around for 10 years, let me recommend that you RENT your books through a service that&#8217;s kinda like Netflix, but for books: the public library!</p>

<p><a href="http://stevengharms.com/wp-content/uploads/2010/02/SFLibrary.jpg"><img src="http://stevengharms.com/wp-content/uploads/2010/02/SFLibrary.jpg" alt="Rising spire of the San Francisco public Library" title="SFLibrary" width="453" height="604" class="aligncenter size-full wp-image-1943" /></a></p>

<p>Since I moved, every time I have the urge to buy a book (physical or Kindle) that I think I will read only once, I instead go to <a href="http://sfpl.org">sfpl.org</a> and see if the book can be rented.
It&#8217;s a great way to be slightly more careful with your money and conserve living space.</p>

<p>Granted, there are times you want to have an artifact.  For this I&#8217;m <em>trying</em> to use the Kindle, because I don&#8217;t want to move boxes of books again if I can help it.</p>

<p>The only down side with the sfpl.org site was that it didn&#8217;t preserve my login data.  Regrettably, the site login ID is an un-memorable string of digits and my strong password is equally impossible to remember.  You can access your account directly by making a bookmark with the following format.</p>

<p>https://sflib1.sfpl.org:443/patroninfo?code=<em>patronID</em>&amp;pin=<em>loginPassword</em></p>

<p>Obviously, storing your login ID and password in a bookmark presents some security issues, so <em>caveat lector</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevengharms.com/use-your-public-library-access-sf-public-library-without-login/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Austin Meetup.com Ruby Group Advertising</title>
		<link>http://stevengharms.com/austin-meetupcom-ruby-group-advertising</link>
		<comments>http://stevengharms.com/austin-meetupcom-ruby-group-advertising#comments</comments>
		<pubDate>Mon, 21 May 2007 21:09:37 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology and Computers]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://stevengharms.net/?p=916</guid>
		<description><![CDATA[In March of this year I started the meetup.com group for the Ruby programming language. I wanted to meet some other people who were interested in exploring this elegant and rich system for the expression of thought. Well, here&#8217;s the group! Wisely, one of our members suggested that we work together on a learning project. [...]]]></description>
			<content:encoded><![CDATA[<p>In March of this year I started the <a href="http://www.meetup.com">meetup.com</a> group for the Ruby programming language.  I wanted to meet some other people who were interested in exploring this elegant and rich system for the expression of thought.</p>

<p>Well, <a href="http://ruby.meetup.com/97/">here&#8217;s the group</a>!</p>

<p>Wisely, one of our members suggested that we work together on a learning project.  Our project of choice was resolved last meeting and it is a &#8216;text-based adventure game engine&#8217;.  The generic requirement is that by creating a scenario file ( i.e. the rooms, the contents of the room, etc. ) you can feed that file to the engine and it will give you a text-based adventure story along the lines of <a href="http://en.wikipedia.org/wiki/Zork">Zork</a> or <a href="http://en.wikipedia.org/wiki/Leather_Goddesses_of_Phobos">Leather Goddesses of Phobos</a>.</p>

<p>I was so inspired by the discussion we had around this last week, that I wrote a basic set of classes for the construction and population of the universe.  Our working model is that everyone will attempt the assignment and then at the <strong>next</strong> meeting we will compare approaches, decide on which model works, and then collapse those &#8220;winning&#8221; implementations into our main code branch.</p>

<p>Bit by bit we&#8217;ll all learn new aspects of Ruby and grow our own skills.  Ultimately we may unleash our inner screenwriters and create a fun game or two.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevengharms.com/austin-meetupcom-ruby-group-advertising/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bring me the head of Alfredo Garcia</title>
		<link>http://stevengharms.com/bring-me-the-head-of-alfreda-garcia</link>
		<comments>http://stevengharms.com/bring-me-the-head-of-alfreda-garcia#comments</comments>
		<pubDate>Sun, 20 Aug 2006 16:35:25 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Austin]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://stevengharms.net/?p=709</guid>
		<description><![CDATA[No, not the movie of the same title. On second thought, bring me his attention this a-ways. I have mailed him from my GMail account, my domain based email account, and now I&#8217;m making a banner post at the top of my blog. As I told him in my mail: Alfredo, &#8216;twas last night while [...]]]></description>
			<content:encoded><![CDATA[<p>No, not the <a href="http://www.imdb.com/title/tt0071249/">movie of the same title</a>.</p>

<p>On second thought, bring me his attention this a-ways.</p>

<p>I have mailed him from my GMail account, my domain based email account, and now
I&#8217;m making a banner post at the top of my blog.</p>

<p>As I told him in my mail:</p>

<blockquote>
  <p>Alfredo,
  &#8216;twas last night while i was lounging hollywood style at the hotel san jose
  that the musicologist delivered serge gainsbourg followed by choice cuts off
  of T. Rex&#8217;s slider, surely you shoulda been there.
  Give a fellow a mail when you can.</p>
  
  <p>Steven</p>
</blockquote>

<p>I&#8217;m suspecting that either there is an overactive spam filter involved</p>

<p><strong>OR</strong></p>

<p>the poor guy&#8217;s gotten busy.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevengharms.com/bring-me-the-head-of-alfreda-garcia/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Working up to AJAX by learning something about the DOM and Javascript</title>
		<link>http://stevengharms.com/working-up-to-ajax-by-learning-something-about-the-dom-and-javascript</link>
		<comments>http://stevengharms.com/working-up-to-ajax-by-learning-something-about-the-dom-and-javascript#comments</comments>
		<pubDate>Sun, 20 Aug 2006 10:25:32 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Technology and Computers]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://stevengharms.net/?p=707</guid>
		<description><![CDATA[If you&#8217;re not in the programming field, you likely got hit by a bunch of acronyms there as if you had been hit by a bus. Let me break it down: AJAX : A technique that makes websites look fast and smooth, unlike &#8220;old&#8221; style application. Think about the way Google maps looks, or Netflix. [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re not in the programming field, you likely got hit by a bunch of acronyms
there as if you had been hit by a bus.  Let me break it down:</p>

<ul>
<li>AJAX : A technique that makes websites look fast and smooth, unlike &#8220;old&#8221; style application.  Think about the way Google maps looks, or Netflix.</li>
<li>DOM: HTML (the language that web pages are written in) can be seen as a &#8220;tree-like&#8221; structure.  This structure goes by the name of &#8220;DOM&#8221;, or &#8220;Document Object Model&#8221;</li>
<li>Javascript: A language for telling your browser ( Firefox, IE, etc. ), to do something to the HTML page sent from the server <em>within your browser.  Thus what&#8217;s on the server and sent to everyone else doesn&#8217;t change, just your particular &#8216;view&#8217; in *your</em> browser</li>
</ul>

<p>So, anyway, if you want to write in the AJAX mindset, you need to understand the latter two ideas rather well.  The last time I really looked at Javascript was for one of my senior-year classes (<em>way</em>) back in 2000.  Javascript has come a long way (<em>baby</em>) and with the advent of the AJAX technique, it&#8217;s really the only game in town.</p>

<p>I wrote a very simple script to help me get the hang of the language, so for you, here it is.</p>

<pre><code>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;

&lt;html lang="en"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;title&gt;untitled&lt;/title&gt;
&lt;meta name="generator" content="TextMate http://macromates.com/"&gt;
&lt;meta name="author" content="Steven Harms"&gt;
&lt;!-- Date: 2006-08-19 --&gt;
&lt;script type="text/javascript" charset="utf-8"&gt;
    function configurePage(doTextChange){
        // doTextChange is a variable passed as a YES or NO argument that
        // is used to decide if the default text 'Moopy Hobo' is changed to
        // something else

        //Get the HTML &lt;body&gt; tag reference
        var htmlParent = document.getElementsByTagName('Body')[0];

        //Create a &lt;p&gt; tag element
        var childEl = document.createElement('p');

        // This is something subtle, you need to create a text node and bond
        // that to the &lt;p&gt; element.  In the DOM inspector, this shows
        // up as 'nodeName' = #text
        var tf = document.createTextNode("Moopy hobo");

        // Bond the text to the &lt;p&gt; element
        childEl.appendChild(tf);

        // Handle the argument
        if ( doTextChange == 'YES' ){
            childEl.firstChild.nodeValue="Monsier Hobo"
        }

        // This is for getting familiar with using the DOM to manipulate
        // text elments

        //Changing the style at the line level...
        childEl.style.width="200px";
        childEl.style.fontFamily="garamond; helvetica";

        //Changing the style at the line level, but with CSS
        childEl.className='graybackground';

        //add some other JavaScript events
        childEl.addEventListener('mouseover',changebk,false);
        childEl.addEventListener('mouseout',dazzle,false);

        //Finally, put this loaded up &lt;p&gt; tag onto the page by appending
        //it to the &lt;html&gt;&lt;body&gt; node
        htmlParent.appendChild(childEl);

    }

    // A function for callbacks, the alert() is pretty annoying when
    // testing so I've commented it out, but enabling it makes things
    // a bit more obvious
    function dazzle(){
        //alert('you are dazzled');
        this.className='graybackground'
    }

    //Nifty!
    function changebk(){
        this.className='redbackground'
    }
&lt;/script&gt;

&lt;style type="text/css" media="screen"&gt;
    .graybackground{
        background-color: #BBB;
    }
    .redbackground{
        background-color: red;
    }
&lt;/style&gt;

&lt;/head&gt;
&lt;body onload="configurePage('YES')"&gt;
&lt;!-- Look Ma, no content! --&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://stevengharms.com/working-up-to-ajax-by-learning-something-about-the-dom-and-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

