<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Content &amp; Technology Crossroads</title>
    <link>http://webdescript.com/blog/intersection/</link>
    <description></description>
    <dc:language>en</dc:language>
    
    <generator>Serendipity 0.9.1 - http://www.s9y.org/</generator>
    <pubDate>Mon, 07 May 2007 05:15:05 GMT</pubDate>

    <image>
        <url>http://webdescript.com/blog/intersection/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Content &amp; Technology Crossroads - </title>
        <link>http://webdescript.com/blog/intersection/</link>
        <width>100</width>
        <height>21</height>
    </image>
<item>
    <title>New Blog</title>
    <link>http://webdescript.com/blog/intersection/archives/80-New-Blog.html</link>
    <comments>http://webdescript.com/blog/intersection/archives/80-New-Blog.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=80</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=80</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
I have a new blog I'm using. Check it out: &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=704&amp;amp;entry_id=80&quot; title=&quot;http://www.nickmudge.info/&quot;  onmouseover=&quot;window.status='http://www.nickmudge.info/';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;www.nickmudge.info&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Mon, 07 May 2007 01:02:48 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/80-guid.html</guid>
    </item>
<item>
    <title>Blogging Makes You Think</title>
    <link>http://webdescript.com/blog/intersection/archives/78-Blogging-Makes-You-Think.html</link>
<category>blogs</category>    <comments>http://webdescript.com/blog/intersection/archives/78-Blogging-Makes-You-Think.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=78</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=78</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Paul Graham has an interesting perspective on a reason why bloggers may like to blog:&lt;blockquote&gt;&lt;i&gt;I think what most bloggers are doing is thinking out loud. It's a little misleading to talk of &quot;putting things into words,&quot; because that implies the ideas come first. In fact, expressing thoughts creates them. And especially expressing thoughts to other people, even people you don't know. So I think the reason many people like blogging is that they like the thinking it causes.&lt;/i&gt;&lt;/blockquote&gt;&lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=624&amp;amp;entry_id=78&quot; title=&quot;http://paulgraham.infogami.com/blog/metablogics&quot;  onmouseover=&quot;window.status='http://paulgraham.infogami.com/blog/metablogics';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;Paul Graham: What Drives Bloggers?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sun, 07 May 2006 23:11:26 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/78-guid.html</guid>
    </item>
<item>
    <title>Lessons for Startups by Paul Graham</title>
    <link>http://webdescript.com/blog/intersection/archives/77-Lessons-for-Startups-by-Paul-Graham.html</link>
    <comments>http://webdescript.com/blog/intersection/archives/77-Lessons-for-Startups-by-Paul-Graham.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=77</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=77</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
I recently read and liked Paul Graham's essay, &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=619&amp;amp;entry_id=77&quot; title=&quot;http://www.paulgraham.com/startuplessons.htm&quot;  onmouseover=&quot;window.status='http://www.paulgraham.com/startuplessons.htm';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;The Hardest Lessons for Startups to Learn&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sun, 07 May 2006 22:59:33 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/77-guid.html</guid>
    </item>
<item>
    <title>Changing State in Memory</title>
    <link>http://webdescript.com/blog/intersection/archives/75-Changing-State-in-Memory.html</link>
<category>programming</category>    <comments>http://webdescript.com/blog/intersection/archives/75-Changing-State-in-Memory.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=75</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=75</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
I enjoyed Damien Katz' &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=620&amp;amp;entry_id=75&quot; title=&quot;http://damienkatz.net/2006/04/error_code_vs_e.html&quot;  onmouseover=&quot;window.status='http://damienkatz.net/2006/04/error_code_vs_e.html';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;awesome post about error handling&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Mon, 01 May 2006 20:32:49 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/75-guid.html</guid>
    </item>
<item>
    <title>On Asking Questions and Getting Help</title>
    <link>http://webdescript.com/blog/intersection/archives/74-On-Asking-Questions-and-Getting-Help.html</link>
    <comments>http://webdescript.com/blog/intersection/archives/74-On-Asking-Questions-and-Getting-Help.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=74</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=74</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Last night and today I read Eric Raymond's &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=615&amp;amp;entry_id=74&quot; title=&quot;http://www.catb.org/~esr/faqs/smart-questions.html&quot;  onmouseover=&quot;window.status='http://www.catb.org/~esr/faqs/smart-questions.html';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;How To Ask Questions The Smart Way&lt;/a&gt;. I really really like it and learned a lot. &lt;br /&gt;
&lt;br /&gt;
There's some great information in there. Here is just a little bit:&lt;blockquote&gt;In the world of hackers, the kind of answers you get to your technical questions depends as much on the way you ask the questions as on the difficulty of developing the answer. &lt;/blockquote&gt;&lt;blockquote&gt;Before asking a technical question by e-mail, or in a newsgroup, or on a website chat board, do the following:&lt;br /&gt;
1. Try to find an answer by searching the Web.&lt;br /&gt;
2. Try to find an answer by reading the manual.&lt;br /&gt;
3. Try to find an answer by reading a FAQ.&lt;br /&gt;
4. Try to find an answer by inspection or experimentation.&lt;br /&gt;
5. Try to find an answer by asking a skilled friend.&lt;br /&gt;
6. If you're a programmer, try to find an answer by reading the source code.&lt;/blockquote&gt;&lt;blockquote&gt;Use tactics like doing a Google search on the text of whatever error message you get (searching Google groups as well as Web pages). This might well take you straight to fix documentation or a mailing list thread answering your question. Even if it doesn't, saying I googled on the following phrase but didn't get anything that looked promising is a good thing to include in e-mail or news postings requesting help.&lt;/blockquote&gt;I love this one:&lt;blockquote&gt;Much of what looks like rudeness in hacker circles is not intended to give offence. Rather, it's the product of the direct, cut-through-the-bullshit communications style that is natural to people who are more concerned about solving problems than making others feel warm and fuzzy.&lt;/blockquote&gt;I love this one too:&lt;blockquote&gt;If you did research to answer the question, demonstrate your skills rather than writing as though you pulled the answer out of your butt. Answering one good question is like feeding a hungry person one meal, but teaching them research skills by example is teaching them to grow food for a lifetime.&lt;/blockquote&gt;    </content:encoded>
                
    <pubDate>Sat, 29 Apr 2006 13:12:46 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/74-guid.html</guid>
    </item>
<item>
    <title>Internet Explorer Caching AJAX Calls</title>
    <link>http://webdescript.com/blog/intersection/archives/73-Internet-Explorer-Caching-AJAX-Calls.html</link>
<category>programming</category><category>web</category><category>ajax</category><category>javascript</category>    <comments>http://webdescript.com/blog/intersection/archives/73-Internet-Explorer-Caching-AJAX-Calls.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=73</wfw:comment>
    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=73</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Yesterday I found out that after executing an AJAX call Internet Explorer will cache the results of future repetitive calls if they are the same -- and serve the cache results, not actually repeate the calls.&lt;br /&gt;
&lt;br /&gt;
Let's say the AJAX call is to this this url: (http://www.somehost.com/people.php?age=3). And people.php echos the text &quot;This has been done.&quot; and the javascript that receives this text uses the alert() function to pop it up on the screen.  &lt;br /&gt;
&lt;br /&gt;
The first time IE runs this javascript the AJAX call will work fine, and a pop up will show saying, &quot;This has been done.&quot; The second and subsequent times IE runs this javascript the call will not be made -- people.php will not be run. Instead you will get the cached result, which is the pop up &quot;This has been done.&quot;&lt;br /&gt;
&lt;br /&gt;
Firefox doesn't work like this. Firefox works as should, will actually repeatedly make the calls and not cache the results.&lt;br /&gt;
&lt;br /&gt;
What if you want to make multiple AJAX calls that are the same and not be fed cache? &lt;br /&gt;
&lt;br /&gt;
I learned a cool hack from Lonnie Lee Best to solve the problem. &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=610&amp;amp;entry_id=73&quot; title=&quot;http://www.howtoadvice.com/StopCaching&quot;  onmouseover=&quot;window.status='http://www.howtoadvice.com/StopCaching';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;She wrote about it here&lt;/a&gt;, which is where I found out how to solve it.&lt;br /&gt;
&lt;br /&gt;
The key is that IE will feed you cache if the url is the same. So you just need to have a different url everytime you make an AJAX call.&lt;br /&gt;
&lt;br /&gt;
This will solve it:&lt;br /&gt;
&lt;br /&gt;
url = &quot;http://www.somehost.com/people.php?age=3&quot; + &quot;&amp;ms=&quot; + new Date().getTime();&lt;br /&gt;
&lt;br /&gt;
Date().getTime(); gives you the number of milliseconds since the first day in 1970. That will ensure that your url is always different. people.php will just ignore ms.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Mon, 24 Apr 2006 20:50:32 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/73-guid.html</guid>
    </item>
<item>
    <title>The Little Bug</title>
    <link>http://webdescript.com/blog/intersection/archives/72-The-Little-Bug.html</link>
<category>programming</category>    <comments>http://webdescript.com/blog/intersection/archives/72-The-Little-Bug.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=72</wfw:comment>
    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=72</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Earlier today I had an application I'm building working beautifully. I was a little surprise that I'd finished it already and that it was working so well. I left it for a few hours to do some other things. Before I left I changed the name of the application and changed the directory of the application to reflect the application's new name.&lt;br /&gt;
&lt;br /&gt;
I come back and it isn't working. I look into my code, see nothing wrong. I think oh no, I must have some fundamental flaw that is throwing it off. I was scared of finding the bug because it would probably take many hours of programming to fix. I can't even find the bug.&lt;br /&gt;
&lt;br /&gt;
I found the bug. I'd changed the directory name the application resides in. A url in the program was mapped to the old directory name. Fixed one line of code and everything works again. Man, those little intimidating bugs -- which are really nothing at all -- are annoying.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sun, 23 Apr 2006 21:07:50 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/72-guid.html</guid>
    </item>
<item>
    <title>Cost of AJAX</title>
    <link>http://webdescript.com/blog/intersection/archives/71-Cost-of-AJAX.html</link>
<category>programming</category>    <comments>http://webdescript.com/blog/intersection/archives/71-Cost-of-AJAX.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=71</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=71</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
I absolutely love Tim Bray's writing. &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=606&amp;amp;entry_id=71&quot; title=&quot;http://www.tbray.org/ongoing/When/200x/2006/04/19/The-Cost-of-AJAX&quot;  onmouseover=&quot;window.status='http://www.tbray.org/ongoing/When/200x/2006/04/19/The-Cost-of-AJAX';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;Here&lt;/a&gt; he writes about whether AJAX is less or more expensive resource-wize.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Thu, 20 Apr 2006 09:47:35 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/71-guid.html</guid>
    </item>
<item>
    <title>Tools Used by a Web Designer</title>
    <link>http://webdescript.com/blog/intersection/archives/70-Tools-Used-by-a-Web-Designer.html</link>
<category>web</category>    <comments>http://webdescript.com/blog/intersection/archives/70-Tools-Used-by-a-Web-Designer.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=70</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=70</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Tim Bednar &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=600&amp;amp;entry_id=70&quot; title=&quot;http://godbit.com/article/tools-i-use&quot;  onmouseover=&quot;window.status='http://godbit.com/article/tools-i-use';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;wrote a post&lt;/a&gt; about the tools he uses in web design.&lt;br /&gt;
&lt;br /&gt;
Here's a part I liked:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;I am self taught. I learn everything by searching Google, using free tutorials or simply hacking code I find. For instance, I plan to learn Ruby on Rails this year through tutorials and resources I find online.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sun, 16 Apr 2006 00:44:17 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/70-guid.html</guid>
    </item>
<item>
    <title>Book Review: The JavaScript Anthology</title>
    <link>http://webdescript.com/blog/intersection/archives/69-Book-Review-The-JavaScript-Anthology.html</link>
<category>programming</category><category>ajax</category><category>javascript</category>    <comments>http://webdescript.com/blog/intersection/archives/69-Book-Review-The-JavaScript-Anthology.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=69</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=69</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Stuart Halloway &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=596&amp;amp;entry_id=69&quot; title=&quot;http://blogs.relevancellc.com/articles/2006/04/05/relevance-reviews-1-the-javascript-anthology&quot;  onmouseover=&quot;window.status='http://blogs.relevancellc.com/articles/2006/04/05/relevance-reviews-1-the-javascript-anthology';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;wrote a book review&lt;/a&gt; of &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=597&amp;amp;entry_id=69&quot; title=&quot;http://www.sitepoint.com/books/jsant1/&quot;  onmouseover=&quot;window.status='http://www.sitepoint.com/books/jsant1/';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;The JavaScript Anthology&lt;/a&gt;. It's about AJAX and Javascript.&lt;br /&gt;
&lt;br /&gt;
Here's a summary:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;To sum up, this is a well-organized, solid book. It will be most useful for people writing and supporting &quot;raw&quot; JavaScript. Most Ajax developers should be using libraries to handle much of this low-level detail. That said, you always need solid knowledge of at least one level of abstraction beneath the one where you are working. Read the JavaScript Anthology to learn that next level down, and stay tuned for future reviews where I'll cover some books that target Ajax more directly.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&quot;...you always need solid knowledge of at least one level of abstraction beneath the one where you are working.&quot; That's something I think about.&lt;br /&gt;
&lt;br /&gt;
Four other AJAX book reviews over there as well.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sat, 15 Apr 2006 22:42:14 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/69-guid.html</guid>
    </item>
<item>
    <title>Programming API Site</title>
    <link>http://webdescript.com/blog/intersection/archives/68-Programming-API-Site.html</link>
    <comments>http://webdescript.com/blog/intersection/archives/68-Programming-API-Site.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=68</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=68</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
This AJAX &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=588&amp;amp;entry_id=68&quot; title=&quot;http://www.gotapi.com/&quot;  onmouseover=&quot;window.status='http://www.gotapi.com/';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;programming API&lt;/a&gt; site is cool.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sat, 15 Apr 2006 22:16:16 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/68-guid.html</guid>
    </item>
<item>
    <title>SQL, Programming Articles</title>
    <link>http://webdescript.com/blog/intersection/archives/67-SQL,-Programming-Articles.html</link>
<category>programming</category>    <comments>http://webdescript.com/blog/intersection/archives/67-SQL,-Programming-Articles.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=67</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=67</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Adam Plocher recently wrote some nice programming articles, such as &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=584&amp;amp;entry_id=67&quot; title=&quot;http://www.digitalpropulsion.org/Programming/SQL_Injections_in_PHP_with_MySQL&quot;  onmouseover=&quot;window.status='http://www.digitalpropulsion.org/Programming/SQL_Injections_in_PHP_with_MySQL';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;SQL Injections in PHP with MySQL&lt;/a&gt;, &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=585&amp;amp;entry_id=67&quot; title=&quot;http://www.digitalpropulsion.org/Programming/Stored_Procedures_in_MySQL_5_0&quot;  onmouseover=&quot;window.status='http://www.digitalpropulsion.org/Programming/Stored_Procedures_in_MySQL_5_0';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;Stored Procedures in MySQL 5.0&lt;/a&gt;, &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=586&amp;amp;entry_id=67&quot; title=&quot;http://www.digitalpropulsion.org/Programming/Triggers_in_MySQL_5_0&quot;  onmouseover=&quot;window.status='http://www.digitalpropulsion.org/Programming/Triggers_in_MySQL_5_0';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;Triggers in MySQL 5.0&lt;/a&gt;, and &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=587&amp;amp;entry_id=67&quot; title=&quot;http://www.digitalpropulsion.org/&quot;  onmouseover=&quot;window.status='http://www.digitalpropulsion.org/';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;more&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sat, 15 Apr 2006 22:02:48 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/67-guid.html</guid>
    </item>
<item>
    <title>Hacker HOW-TO</title>
    <link>http://webdescript.com/blog/intersection/archives/66-Hacker-HOW-TO.html</link>
<category>programming</category>    <comments>http://webdescript.com/blog/intersection/archives/66-Hacker-HOW-TO.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=66</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=66</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
I read &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=573&amp;amp;entry_id=66&quot; title=&quot;http://www.catb.org/~esr/faqs/hacker-howto.html&quot;  onmouseover=&quot;window.status='http://www.catb.org/~esr/faqs/hacker-howto.html';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;How To Become A Hacker&lt;/a&gt;, by Eric Raymond. I really like it.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sat, 15 Apr 2006 21:56:00 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/66-guid.html</guid>
    </item>
<item>
    <title>Graphic</title>
    <link>http://webdescript.com/blog/intersection/archives/65-Graphic.html</link>
    <comments>http://webdescript.com/blog/intersection/archives/65-Graphic.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=65</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=65</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Tim Bray &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=561&amp;amp;entry_id=65&quot; title=&quot;http://www.tbray.org/ongoing/When/200x/2006/04/14/Deathstar&quot;  onmouseover=&quot;window.status='http://www.tbray.org/ongoing/When/200x/2006/04/14/Deathstar';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;links&lt;/a&gt; to this &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=562&amp;amp;entry_id=65&quot; title=&quot;http://www.whysanity.net/monos/clerks5.html&quot;  onmouseover=&quot;window.status='http://www.whysanity.net/monos/clerks5.html';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;interesting dialog&lt;/a&gt; and to David Heinemeier Hanssons &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=563&amp;amp;entry_id=65&quot; title=&quot;http://www.loudthinking.com/arc/000585.html&quot;  onmouseover=&quot;window.status='http://www.loudthinking.com/arc/000585.html';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;graphic&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sat, 15 Apr 2006 21:41:44 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/65-guid.html</guid>
    </item>
<item>
    <title>HTTP Basic Authentication in Python</title>
    <link>http://webdescript.com/blog/intersection/archives/64-HTTP-Basic-Authentication-in-Python.html</link>
<category>programming</category><category>python</category><category>web</category>    <comments>http://webdescript.com/blog/intersection/archives/64-HTTP-Basic-Authentication-in-Python.html#comments</comments>
    <wfw:comment>http://webdescript.com/blog/intersection/wfwcomment.php?cid=64</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://webdescript.com/blog/intersection/rss.php?version=2.0&amp;type=comments&amp;cid=64</wfw:commentRss>
    <author>nospam@example.com (Nick Mudge)</author>
    <content:encoded>
Recently I found out how to write a script in python that accesses a webpage that requires basic http authentication. You know, when you try to go to a webpage with your browser and a username and password screen pops up. Well to download one of these webpages with a script you have to provide the username and password in the http headers of the request. &lt;br /&gt;
&lt;br /&gt;
Here's how I did it in Python:&lt;br /&gt;
&lt;br /&gt;
import urllib2&lt;br /&gt;
auth_handler = urllib2.HTTPBasicAuthHandler()&lt;br /&gt;
auth_handler.add_password(&quot;Realm here&quot;, &quot;host&quot;, &quot;username&quot;, &quot;password&quot;)&lt;br /&gt;
opener = urllib2.build_opener(auth_handler)&lt;br /&gt;
handle = opener.open(&quot;URL you want to download&quot;)&lt;br /&gt;
file =  handle.read()&lt;br /&gt;
&lt;br /&gt;
This is very similar to the authentication example using urllib2 &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=578&amp;amp;entry_id=64&quot; title=&quot;http://docs.python.org/lib/urllib2-examples.html&quot;  onmouseover=&quot;window.status='http://docs.python.org/lib/urllib2-examples.html';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;given in the Python Library Reference&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here's &lt;a href=&quot;http://webdescript.com/blog/intersection/exit.php?url_id=579&amp;amp;entry_id=64&quot; title=&quot;http://us2.php.net/manual/en/features.http-auth.php#62597&quot;  onmouseover=&quot;window.status='http://us2.php.net/manual/en/features.http-auth.php#62597';return true;&quot; onmouseout=&quot;window.status='';return true;&quot;&gt;code in PHP that seems to do this&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Here's a description of how urllib2 works. This is taken out of the urllib2.&lt;u&gt;_doc_&lt;/u&gt; variable:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;urllib2&lt;/b&gt;&lt;br /&gt;
An extensible library for opening URLs using a variety of protocols.&lt;br /&gt;
&lt;br /&gt;
The simplest way to use this module is to call the urlopen function, which accepts a string containing a URL or a Request object (described below).  It opens the URL and returns the results as file-like object; the returned object has some extra methods described below.&lt;br /&gt;
&lt;br /&gt;
The OpenerDirector manages a collection of Handler objects that do all the actual work.  Each Handler implements a particular protocol or option.  The OpenerDirector is a composite object that invokes the Handlers needed to open the requested URL. For example, the HTTPHandler performs HTTP GET and POST requests and deals with non-error returns. The HTTPRedirectHandler automatically deals with HTTP 301, 302, 303 and 307 redirect errors, and the HTTPDigestAuthHandler deals with digest authentication.&lt;br /&gt;
&lt;br /&gt;
urlopen(url, data=None) -- basic usage is that same as original urllib.  pass the url and optionally data to post to an HTTP URL, and get a file-like object back.  One difference is that you can also pass a Request instance instead of URL.  Raises a URLError (subclass of IOError); for HTTP errors, raises an HTTPError, which can also be treated as a valid response.&lt;br /&gt;
&lt;br /&gt;
build_opener -- function that creates a new OpenerDirector instance. will install the default handlers. accepts one or more Handlers as arguments, either instances or Handler classes that it will instantiate.  if one of the argument is a subclass of the default handler, the argument will be installed instead of the default.&lt;br /&gt;
&lt;br /&gt;
install_opener -- installs a new opener as the default opener.&lt;br /&gt;
&lt;br /&gt;
objects of interest:&lt;br /&gt;
OpenerDirector --&lt;br /&gt;
&lt;br /&gt;
Request -- an object that encapsulates the state of a request.  the state can be a simple as the URL.  it can also include extra HTTP headers, e.g. a User-Agent.&lt;br /&gt;
&lt;br /&gt;
BaseHandler --&lt;br /&gt;
&lt;br /&gt;
exceptions:&lt;br /&gt;
URLError-- a subclass of IOError, individual protocols have their own specific subclass&lt;br /&gt;
&lt;br /&gt;
HTTPError-- also a valid HTTP response, so you can treat an HTTP error as an exceptional event or valid response&lt;br /&gt;
&lt;br /&gt;
internals:&lt;br /&gt;
BaseHandler and parent&lt;br /&gt;
_call_chain conventions&lt;br /&gt;
&lt;br /&gt;
Example usage:&lt;br /&gt;
&lt;br /&gt;
import urllib2&lt;br /&gt;
&lt;br /&gt;
# set up authentication info&lt;br /&gt;
authinfo = urllib2.HTTPBasicAuthHandler()&lt;br /&gt;
authinfo.add_password('realm', 'host', 'username', 'password')&lt;br /&gt;
&lt;br /&gt;
proxy_support = urllib2.ProxyHandler({&quot;http&quot; : &quot;http://ahad-haam:3128&quot;})&lt;br /&gt;
&lt;br /&gt;
# build a new opener that adds authentication and caching FTP handlers&lt;br /&gt;
opener = urllib2.build_opener(proxy_support, authinfo, urllib2.CacheFTPHandler)&lt;br /&gt;
&lt;br /&gt;
# install it&lt;br /&gt;
urllib2.install_opener(opener)&lt;br /&gt;
&lt;br /&gt;
f = urllib2.urlopen('http://www.python.org/')&lt;br /&gt;
&lt;br /&gt;
    </content:encoded>
                
    <pubDate>Sat, 15 Apr 2006 21:03:14 -0400</pubDate>
    <guid isPermaLink="false">http://webdescript.com/blog/intersection/archives/64-guid.html</guid>
    </item>
</channel>
</rss>
