<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-7948313</id><updated>2008-04-09T12:44:11.972-06:00</updated><title type='text'>iWindow - Information with a technical slant</title><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml'/><author><name>Shadow Writer</name></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7948313.post-6461801701521462620</id><published>2008-04-09T12:44:00.001-06:00</published><updated>2008-04-09T12:44:12.100-06:00</updated><title type='text'>Testing Network Security</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;Download &lt;a href="http://www.nessus.org/nessus/" target="_blank"&gt;Nessus&lt;/a&gt; and make sure your setup is really secure. &amp;nbsp;Many compliance consultants use Nessus to perform the audits and re-label the reports. &amp;nbsp;The software is free and the very best on the internet today.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2008/04/testing-network-security.html' title='Testing Network Security'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=6461801701521462620&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/6461801701521462620'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/6461801701521462620'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-3496689957673208200</id><published>2008-03-27T10:50:00.001-06:00</published><updated>2008-03-27T10:50:47.168-06:00</updated><title type='text'>Wordpress Improvements</title><content type='html'>&lt;div class=Section1&gt;  &lt;p&gt;&lt;a href="http://coalhillmedia.com/tutorials/makewordpressgooglefriendly.php"&gt;http://coalhillmedia.com/tutorials/makewordpressgooglefriendly.php&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;Wordpress, without any modification, is not exactly Google-friendly - especially if you're talking about duplicate content issues. To get the best search engine rankings, you'll need to make a few modifications. But don't worry, these only take about 10 minutes to put in place.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;Dealing With Duplicate Pages&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;  &lt;p&gt;Did you notice how Wordpress organizes your content? It is complete with pages of recent posts, monthly archive pages, and category pages. These pages are full of the exact same content! (And Google hates duplicate content!)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;So we want to avoid letting any search engines index those extra pages. To do that, we just have to paste a bit of code into the header.php file. Note that it has to go between the head tags. I've provided the code below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;code&gt;&lt;span style='font-size:10.0pt'&gt;&amp;lt;?php if((is_home() &amp;amp;&amp;amp; ($paged &amp;lt; 2 )) || is_single() || is_page()){ echo '&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;index,follow&amp;quot; /&amp;gt;'; } else { echo '&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;noindex,follow&amp;quot; /&amp;gt;';} ?&amp;gt;&lt;/span&gt;&lt;/code&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;To edit your template through the Wordpress admin panel, just click &amp;quot;Presentation&amp;quot; then &amp;quot;Theme Editor.&amp;quot; Make sure your current theme is selected and click &amp;quot;Header.php&amp;quot; to edit that file. Now just copy and paste the code and click &amp;quot;Update File.&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;This code means that only your home page, Wordpress pages, and individual posts get indexed. Your archives and category pages, which are just duplicates, will not be indexed. However, all links will still be followed (a good thing.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;The Title Tag&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;  &lt;p&gt;You don't want the same title tag for each page. The ideal title tag will use the blog post title as the page title, and include the blog name if you wish. To accomplish this, replace your current Title tag with this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;code&gt;&lt;span style='font-size:10.0pt'&gt;&amp;lt;title&amp;gt;&amp;lt;?php wp_title(' '); ?&amp;gt;&amp;lt;?php if(wp_title(' ', false)) { echo ' - '; } ?&amp;gt;&amp;lt;?php bloginfo('name'); ?&amp;gt;&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;/code&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;The Meta Description Tag&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;  &lt;p&gt;Less important than the Title tag but still worthwhile is the Meta Description tag. It would be best for each page to have a unique description. And the easiest way to do that is by using the &lt;a href="http://guff.szub.net/2005/09/01/head-meta-description/"&gt;Head Meta Description Plugin&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;301 Redirects via .htaccess&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;  &lt;p&gt;This is something you should be using on any website, but since Wordpress has tons of pages under various categories, it is very important. The code below needs to be placed in your .htaccess file. You don't need to understand it, you just need to paste it in there.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;code&gt;&lt;span style='font-size:10.0pt'&gt;RewriteEngine On&lt;/span&gt;&lt;/code&gt;&lt;span style='font-size:10.0pt;font-family:"Courier New"'&gt;&lt;br&gt; &lt;code&gt;RewriteCond %{HTTP_HOST} !^www\.yourwebsite\.com$ [NC]&lt;/code&gt;&lt;br&gt; &lt;code&gt;RewriteRule ^(.*)$ http://www.yourwebsite.com/$1 [R,L]&lt;/code&gt;&lt;br&gt; &lt;code&gt;RewriteBase /&lt;/code&gt;&lt;br&gt; &lt;code&gt;RewriteCond %{REQUEST_FILENAME} !-f&lt;/code&gt;&lt;br&gt; &lt;code&gt;RewriteCond %{REQUEST_FILENAME} !-d&lt;/code&gt;&lt;br&gt; &lt;code&gt;RewriteRule . /index.php [L]&lt;/code&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;The code will redirect any non-www pages to pages with the www, and it will add trailing slashes to all directories. (Trust me, it will help your search engine rankings.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;Disallow Useless Pages via Robots.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;  &lt;p&gt;You'll want to keep the spiders from visiting all your useless pages, like the archives and your feed. This will help with duplicate content issues, and hopefully keep your site out of Google's supplemental results (you don't want to be stuck in there.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;code&gt;&lt;span style='font-size:10.0pt'&gt;User-agent: *&lt;/span&gt;&lt;/code&gt;&lt;span style='font-size:10.0pt;font-family:"Courier New"'&gt;&lt;br&gt; &lt;code&gt;Disallow: /cgi-bin/&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /wp-&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /search&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /feed&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /comments/feed&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/feed/rss/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/trackback/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/*/feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/*/feed/rss/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/*/trackback/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/*/*/feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/*/*/feed/rss/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /*/*/*/trackback/$&lt;/code&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;Note: That code works if your blog is installed in the root directory. If your blog is at yoursite.com/blog/ you'll need a robots.txt file like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;code&gt;&lt;span style='font-size:10.0pt'&gt;User-agent: *&lt;/span&gt;&lt;/code&gt;&lt;span style='font-size:10.0pt;font-family:"Courier New"'&gt;&lt;br&gt; &lt;code&gt;Disallow: /cgi-bin/&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/wp-&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/search&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/feed&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/comments/feed&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/feed/rss/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/trackback/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/*/feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/*/feed/rss/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/*/trackback/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/*/*/feed/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/*/*/feed/rss/$&lt;/code&gt;&lt;br&gt; &lt;code&gt;Disallow: /blog/*/*/*/trackback/$&lt;/code&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;Again, don't worry what it means, just put it in your robots.txt file. It's good for you! (Check &lt;a href="http://en.wikipedia.org/wiki/Robots.txt"&gt;this&lt;/a&gt; out to learn more about robots.txt)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;Use a Sitemap&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;  &lt;p&gt;While we're at it, let's talk sitemaps. Having one will help your blog get indexed fully, so it's worth doing. I'd recommend this cool &lt;a href="http://www.dagondesign.com/articles/sitemap-generator-plugin-for-wordpress/"&gt;Sitemap Generator plugin&lt;/a&gt; to help out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;That's it! Enjoy your improved Google rankings!&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2008/03/wordpress-improvements.html' title='Wordpress Improvements'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=3496689957673208200&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/3496689957673208200'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/3496689957673208200'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-4668448311573441337</id><published>2008-01-14T10:10:00.001-07:00</published><updated>2008-01-14T10:10:41.828-07:00</updated><title type='text'>Website Archiving</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;Bookmarks and favorites are great, but I don&amp;#8217;t want to rely on someone maintaining information for me.&amp;nbsp; The main reason I bookmark a site is because it has information that I have found useful and want to reference in the future.&amp;nbsp; Many sites will change their layout or CMS and that will leave me high and dry when trying to revisit information.&amp;nbsp; This lead me to a brainstorm that there needs to be a product that archives a website as opposed to just bookmarking it.&amp;nbsp;&amp;nbsp; Before I write one myself, there are two products worth trying that are free:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;a href="http://www.archive.org"&gt;www.archive.org&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;a href="http://www.zotero.org"&gt;www.zotero.org&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;I will see if they are the answer to my problems.&amp;nbsp; I would like to have a product that saves information to my personal web server as opposed to a community server since you never know when a company will be bought or will go belly up &amp;#8211; leaving me with the same problem I had before with bookmarks that no longer work.&amp;nbsp; I haven&amp;#8217;t tried these products yet but I assume they will only be a partial solution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2008/01/website-archiving.html' title='Website Archiving'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=4668448311573441337&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/4668448311573441337'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/4668448311573441337'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-6415390087389378139</id><published>2007-10-29T13:26:00.000-06:00</published><updated>2007-10-29T13:27:02.820-06:00</updated><title type='text'>Install OS X 10.5 (Leopard) on an older Apple Macintosh</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;a href="http://www.macfixit.com/article.php?story=20071029000757347"&gt;http://www.macfixit.com/article.php?story=20071029000757347&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;h1&gt;&lt;span class=articletitle1&gt;&lt;span style='font-size:14.5pt'&gt;Run Leopard (Mac OS X 10.5) on pre-867MHz systems&lt;/span&gt;&lt;/span&gt;&lt;span style='font-family:"Arial","sans-serif"'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;  &lt;p&gt;Mac OS X 10.5 (Leopard) requires Mac with an Intel, PowerPC G5, or PowerPC G4 processor running at 867MHz or faster, and will refuse to install on any systems running at a lower clock speed (even dual 800 MHz systems are excluded). However, there's an easy way to trick your lower-than-867 MHz Mac into running Leopard: install the operating system on an external FireWire hard drive using a computer that &lt;i&gt;does&lt;/i&gt; meet the minimum clock speed requirements. You can then use that drive to &lt;i&gt;boot a Mac running at less than 867 MHz&lt;/i&gt; (see the screenshot below for proof). &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;Better yet, you can hook a pre-867 MHz Mac up to a Mac that does meet official Leopard requirements and boot it in &lt;a href="http://docs.info.apple.com/article.html?artnum=58583"&gt;Target Disk Mode&lt;/a&gt;, then install Leopard directly. This &lt;i&gt;should&lt;/i&gt; (we haven't yet tested this method) allow you to boot Leopard from the system's internal hard drive. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;For more information on installing Leopard on a FireWire drive, see &lt;a href="http://www.macfixit.com/article.php?story=20071025100548752"&gt;this article&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;Obviously, performance for some features will be somewhat sluggish on older processors, but we've already received reports indicating normal operation. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;MacFixIt reader Jim writes: &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&amp;quot;(I) hooked a Leopard drive to a 533 Mhz G4. It boots and runs fine. I don't know why Apple limited it to 867 or above. Maybe something will show up down the road but so far I don't see any slowdown in speed or any anomalies. QT movies and trailers play, Flip4Mac plays fine. It has only been a short while on it, but so far I don't get why they cut it off where they did.&amp;quot; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal align=center style='text-align:center'&gt;&lt;img border=0 width=321 height=393 id="Picture_x0020_1" src="cid:image001.jpg@01C81A2F.320BAC30" alt="http://images.macfixit.com/images/533Leopard.jpg"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/10/install-os-x-105-leopard-on-older-apple.html' title='Install OS X 10.5 (Leopard) on an older Apple Macintosh'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=6415390087389378139&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/6415390087389378139'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/6415390087389378139'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-7269980786534731535</id><published>2007-10-16T14:56:00.000-06:00</published><updated>2007-10-16T14:57:39.660-06:00</updated><title type='text'>Change the Internet Explorer Title Bar</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;The other day I was asked how to remove the &amp;quot;by Dell&amp;quot; text from the title bar in Internet Explorer.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='margin-bottom:3.75pt'&gt;&lt;b&gt;&lt;span style='font-size:12.0pt; color:black'&gt;To Remove a Custom Internet Explorer Window Title&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt;color:black'&gt;Using Registry Editor, delete the following value in the registry: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;b&gt;&lt;span style='font-size:12.0pt;color:black'&gt;HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt;color:black'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt;color:black'&gt;When you delete this value, &amp;quot;Microsoft Internet Explorer&amp;quot; becomes the default window title.&lt;/span&gt;&lt;span style='font-size:12.0pt'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;The official instructions from Microsoft are here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;&lt;a href="http://support.microsoft.com/kb/176497"&gt;http://support.microsoft.com/kb/176497&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;Another untested solution is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt'&gt;Go to Start, choose Run, and type or paste &amp;quot;rundll32 iedkcs32.dll,Clear&amp;quot; without the quotes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/10/change-internet-explorer-title-bar.html' title='Change the Internet Explorer Title Bar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=7269980786534731535&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/7269980786534731535'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/7269980786534731535'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-2611936864797337879</id><published>2007-09-28T14:22:00.001-06:00</published><updated>2007-09-28T14:22:19.086-06:00</updated><title type='text'>Helpful Python Information</title><content type='html'>&lt;div class=Section1&gt;  &lt;h1&gt;&lt;a name=rest-to-s5-convertor&gt;&lt;b&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN style='font-size:10.0pt;font-family:Arial;font-weight:normal'&gt;http://homepage.hispeed.ch/py430/python/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt; font-family:Arial'&gt;reST to S5 convertor&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt;font-family:"Courier New"'&gt;rst2s5&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt; is a &lt;a href="http://docutils.sourceforge.net/"&gt;Docutils&lt;/a&gt; writer for &lt;a href="http://meyerweb.com/eric/tools/s5/"&gt;S5&lt;/a&gt;, a Simple Standards-based Slide Show System. This means simple text files with reStructuredText (reST) markup can be converted to nice looking slideshows that can easily be viewed with the webbrowser. See &lt;/span&gt;&lt;/font&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt;font-family:"Courier New"'&gt;presentation.txt&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt; in the archive below for an example and instructions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;It's now part of the official &lt;a href="http://docutils.sourceforge.net/"&gt;Docutils&lt;/a&gt; distribution (starting from version 0.4) please use that version. (Download old version: &lt;a href="http://homepage.hispeed.ch/py430/python/rst2s5.zip"&gt;rst2s5.zip&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=single-file-executables id=single-file-executables&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Single File Executables&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;There are several solutions out there, here's the next one...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Based on &lt;a href="http://www.pythonapocrypha.com/projects/pyco/"&gt;Pyco&lt;/a&gt; (broken link) and &lt;a href="http://starship.python.net/crew/theller/py2exe/"&gt;py2exe&lt;/a&gt;. It is possible to make command line tools or GUI tools. It is realy only one file and it can be run without any installation. It unpacks the files to a temporary directory which is cleaned up afterwards.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Download: &lt;a href="http://homepage.hispeed.ch/py430/python/py2exe-pyco.zip"&gt;py2exe-pyco.zip&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=arbitrary-file-size-hex-editor id=arbitrary-file-size-hex-editor&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Arbitrary file size Hex Editor&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;YaHEbwinPy - Yet An Other Hex Editor, But Written In Python&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Tested with file sizes up to 1267650600228229401496703205376 Bytes (2**100B). Runs on Linux and Windows. Features Undo/Redo, find, replace, copy&amp;amp;paste, save selection, edit devices on WinNT/2k/XP and Linux, decode selected text as Unicode or in a codepage and more. It has a plugin system where Python modules can register additional functions. It nerver loads the entire file, just a few megabytes, which means its capable of opening large files on network drives and such.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Sources: &lt;a href="http://homepage.hispeed.ch/py430/python/hexedit.zip"&gt;hexedit.zip&lt;/a&gt; (130kB, requires: Python 2.3 and wxPython 2.4) Win32 Installer, standalone version: &lt;a href="http://homepage.hispeed.ch/py430/python/install-YaHEbwinPy-0.7.exe"&gt;install-YaHEbwinPy-0.7.exe&lt;/a&gt; (2.1MB)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=win32-screensaver id=win32-screensaver&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Win32 Screensaver&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;This is a complete rewrite of my old screensaver module. This one is pure Python with the help of ctypes and py2exe. It is intended to make it easy to write windows screensavers in pure Python. Screensavers using the pyscr module can be implemented with ctypes (a little wrapper class around a DC already exits) or win32all. The pyscr_pygame module also gives the opportunity to write the screensaver with pygame.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;The Win32 parts are implemented using ctypes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Requires Python 2.3, ctypes, py2exe. Download archive with the library and examples: &lt;a href="http://homepage.hispeed.ch/py430/python/win32screensaver-0.3.2.zip"&gt;win32screensaver-0.3.2.zip&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=vnc-viewer id=vnc-viewer&gt;&lt;b&gt;&lt;font size=5 color=black face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial;color:black'&gt;VNC Viewer&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 color=black face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family: Arial;color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;This is a simple VNC viewer implemented in Python, using Twisted and PyGame. Please read the readme.txt in the archive for usage and limitations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;&lt;a href="http://homepage.hispeed.ch/py430/python/pyvncviewer.zip"&gt;pyvncviewer.zip&lt;/a&gt; (18kB)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=samba-tunnel-over-ssh id=samba-tunnel-over-ssh&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Samba tunnel over SSH&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;em&gt;&lt;i&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt; font-family:Arial'&gt;Note&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/em&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt;: Newer Putty clients should be able to bind forwarded ports to non-localhost addresses, which makes the tool below obsolete.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;It happens that people want to forward Samba (SMB/Windows shared drives) connections though an encrypted SSH connection. The problem is just that one can't tell to Windows on which target port such a connection should be made (it only work on port 139). On the other hand, you can't tell SSH on which interface it should bind it's local ports (only 127.0.0.1 which happens to be used by the local server). &lt;a href="http://homepage.hispeed.ch/py430/python/SMB_reroute.py"&gt;SMB_reroute.py&lt;/a&gt; solves these two problems. Start with &amp;quot;python SMB_reroute.py username host&amp;quot;, enter the SSH password when prompted.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;ul type=disc&gt;  &lt;li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;      mso-list:l0 level1 lfo1'&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN      style='font-size:12.0pt;font-family:Arial'&gt;it connects 127.0.0.2:139      (listening) to 127.0.0.1:1390 by forwarding all data between these ports,      only local connections are accepted &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;  &lt;li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;      mso-list:l0 level1 lfo1'&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN      style='font-size:12.0pt;font-family:Arial'&gt;it starts ssh so that it      forwards local connections from 127.0.0.1:1390 to the target host:139 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;It currently uses &amp;quot;ssh&amp;quot; which can be found in the cygwin distribution, but it should also work with putty. Note that for some reason tunneled SMB connections are slow... maybe because only a TCP conenction is tunneled and o UDP packets that are used for discovery - don't know... There are better ways to securely exchange files between two machines, e.g. with scp the secure copy of ssh.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;One can now access the secure remote share with the path &amp;quot;\127.0.0.2&amp;quot;. This script is intended to be used by Windows users. On Linux is this hack not needed as the port can be specified as option to the Samba programs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=nsis-python-plugin id=nsis-python-plugin&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;NSIS Python Plugin&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;You use the &lt;a href="http://nsis.sf.net/"&gt;Nullsoft NSIS&lt;/a&gt; installer and want some advanced scripting or you're deploying a Python application and want to execute some Python code during setup? Here is a solution. With this NSIS Plugin you can do all this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Supported commands are eval, exec and execFile. A special module &amp;quot;nsis&amp;quot; is exposed to Python which supports writing to the log, display a message box and get/set the NSIS variables. The win32 parent handle of the installer can also be read so it's open for extensions that use win32all or ctypes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Download it here: &lt;a href="http://homepage.hispeed.ch/py430/python/NSIS-Python22.zip"&gt;NSIS-Python22.zip&lt;/a&gt; (for Python 2.2) &lt;a href="http://homepage.hispeed.ch/py430/python/NSIS-Python23.zip"&gt;NSIS-Python23.zip&lt;/a&gt; (for Python 2.3)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Python License.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=mysql-table-viewer id=mysql-table-viewer&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;MySQL table viewer&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;This is a simple wxPython application. It has a TextField that lets you enter SQL commands that it executes and a ListCtrl to display the results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Get it here: &lt;a href="http://homepage.hispeed.ch/py430/python/question.pyw"&gt;question.pyw&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=find-the-mines id=find-the-mines&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Find the Mines&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Yup, yet an other minesweeper clone. Here's a pygame version. You may want to delete the highscores file ;-) &lt;a href="http://homepage.hispeed.ch/py430/python/mines_pyg.zip"&gt;mines_pyg.zip&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=unittest-gui id=unittest-gui&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Unittest GUI&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;A simple, not finished but usable, frontend to run unittests. Using wxPython. &lt;a href="http://homepage.hispeed.ch/py430/python/unittestgui.py"&gt;unittestgui.py&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=functional-games id=functional-games&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Functional games&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Some simple functions written in functional style. &lt;a href="http://homepage.hispeed.ch/py430/python/functional.py"&gt;functional.py&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=befunge-interpreter id=befunge-interpreter&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Befunge Interpreter&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;You don't know Befunge? Well you missed something :-) It's an esotheric programming language that runs in a two dimensional space. This is an Interpreter written in Python and a unfinished viewer/debugger with pygame. &lt;a href="http://homepage.hispeed.ch/py430/python/befunge.zip"&gt;befunge.zip&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Here is the home of Befunge: &lt;a href="http://www.catseye.mb.ca/esoteric/befunge/"&gt;http://www.catseye.mb.ca/esoteric/befunge/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=unix-daemon id=unix-daemon&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Unix Daemon&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;You need to run a Python script as a daemon? So why don't you take this script, change the logfile location and call your &lt;/span&gt;&lt;/font&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt; font-family:"Courier New"'&gt;main()&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt;. It takes care of the console detachement (double fork) and writes a PID file so that it can be killed. &lt;a href="http://homepage.hispeed.ch/py430/python/daemon.py"&gt;daemon.py&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;And here is a sample init.d script: &lt;a href="http://homepage.hispeed.ch/py430/python/daemon"&gt;daemon&lt;/a&gt;. It goes in &lt;/span&gt;&lt;/font&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt; font-family:"Courier New"'&gt;/etc/init.d&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt; with an appropriate name, an then create links in the rc directories, like: &lt;/span&gt;&lt;/font&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt;font-family:"Courier New"'&gt;ln&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;tt&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt'&gt; &lt;/span&gt;&lt;/font&gt;&lt;/tt&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt; font-family:"Courier New"'&gt;-s&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;tt&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt'&gt; &lt;/span&gt;&lt;/font&gt;&lt;/tt&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt; font-family:"Courier New"'&gt;/etc/init.d/daemon&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;tt&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt'&gt; &lt;/span&gt;&lt;/font&gt;&lt;/tt&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt; font-family:"Courier New"'&gt;/etc/rc.2/S30daemon&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt; the location of the directories may vary between Linux distributions. Usualy &lt;/span&gt;&lt;/font&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt; font-family:"Courier New"'&gt;Sxxname&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt; are starter, &lt;/span&gt;&lt;/font&gt;&lt;span class=pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span lang=EN style='font-size:10.0pt;font-family: "Courier New"'&gt;Kxxname&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face=Arial&gt;&lt;span lang=EN style='font-family:Arial'&gt; stopper scripts. This one is from Debian.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;a name=observer-pattern id=observer-pattern&gt;&lt;b&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;Observer Pattern&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;font size=5 face=Arial&gt;&lt;span lang=EN style='font-size:18.0pt;font-family:Arial'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;font size=3 face=Arial&gt;&lt;span lang=EN style='font-size:12.0pt;font-family: Arial'&gt;Allways handy. Especialy for GUI programming but not exclusively. &lt;a href="http://homepage.hispeed.ch/py430/python/observerpattern.py"&gt;observerpattern.py&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/09/helpful-python-information.html' title='Helpful Python Information'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=2611936864797337879&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/2611936864797337879'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/2611936864797337879'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-4888002011154601576</id><published>2007-09-28T12:08:00.001-06:00</published><updated>2007-09-28T12:08:35.843-06:00</updated><title type='text'>wget - comand line http tool</title><content type='html'>&lt;div class=Section1&gt;  &lt;h2 style='line-height:20.4pt'&gt;&lt;font size=5 color="#252525" face=Georgia&gt;&lt;span style='font-size:18.0pt;color:#252525'&gt;&lt;a href="http://lifehacker.com/software/downloads/geek-to-live--mastering-wget-161202.php"&gt;&lt;font size=4 color="#786e29"&gt;&lt;span style='font-size:14.5pt;color:#786E29;text-decoration: none'&gt;Mastering Wget&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;&lt;img border=0 width=332 height=69 id="_x0000_i1025" src="cid:image001.jpg@01C801C8.4A46F3B0" alt=Wget.jpg class="postimg center"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;em&gt;&lt;i&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;by Gina Trapani (http://lifehacker.com/software/top/geek-to-live--mastering-wget-161202.php)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Your browser does a good job of fetching web documents and displaying them, but there are times when you need an extra strength &lt;a href="http://lifehacker.com/software/download-manager/" title="Posts tagged as download manager"&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;download manager&lt;/span&gt;&lt;/font&gt;&lt;/a&gt; to get those tougher HTTP jobs done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;A versatile, old school Unix program called Wget is a highly hackable, handy little tool that can take care of all your downloading needs. Whether you want to mirror an entire web site, automatically download music or movies from a set of favorite weblogs, or transfer huge files painlessly on a slow or intermittent network connection, Wget's for you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Wget, the &amp;quot;non-interactive network retriever,&amp;quot; is called at the command line. The format of a Wget command is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=2 color="#252525" face=Courier&gt;&lt;span style='font-size:10.0pt;font-family:Courier;color:#252525'&gt;wget [option]... [URL]...&lt;/span&gt;&lt;/font&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;The URL is the address of the file(s) you want Wget to download. The magic in this little tool is the long menu of options available that make some really neat downloading tasks possible. Here are some examples of what you can do with Wget and a few dashes and letters in the [option] part of the command.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4 style='line-height:20.4pt'&gt;&lt;b&gt;&lt;font size=2 color="#252525" face=Helvetica&gt;&lt;span style='font-size:10.0pt;color:#252525'&gt;Mirror an entire web site&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Say you want to backup your blog or create a local copy of an entire directory of a web site for archiving or reading later. The command:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=2 color="#252525" face=Courier&gt;&lt;span style='font-size:10.0pt;font-family:Courier;color:#252525'&gt;wget -m http://ginatrapani.googlepages.com&lt;/span&gt;&lt;/font&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Will save the two pages that exist on the ginatrapani.googlepages.com site in a folder named just that on your computer. The -m in the command stands for &amp;quot;mirror this site.&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Say you want to retrieve all the pages in a site PLUS the pages that site links to. You'd go with:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=2 color="#252525" face=Courier&gt;&lt;span style='font-size:10.0pt;font-family:Courier;color:#252525'&gt;wget -H -r --level=1 -k -p http://ginatrapani.googlepages.com&lt;/span&gt;&lt;/font&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family: Tahoma;color:#252525'&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;This command says, &amp;quot;Download all the pages (-r, recursive) on http://ginatrapani.googlepages.com plus one level (--level=1) into any other sites it links to (-H, span hosts), and convert the links in the downloaded version to point to the other sites' downloaded version (-k). Oh yeah, and get all the components like images that make up each page (-p).&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Warning: Beware, those with small hard drives! This type of command will download a LOT of data from sites that link out a lot (like blogs)! Don't try to backup the Internet, because you'll run out of disk space!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4 style='line-height:20.4pt'&gt;&lt;b&gt;&lt;font size=2 color="#252525" face=Helvetica&gt;&lt;span style='font-size:10.0pt;color:#252525'&gt;Resume large file &lt;a href="http://lifehacker.com/software/downloads/" title="Posts tagged as downloads"&gt;&lt;font color=black&gt;&lt;span style='color:black; font-weight:normal'&gt;downloads&lt;/span&gt;&lt;/font&gt;&lt;/a&gt; on a flaky connection&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Say you're piggybacking the neighbor's wifi and every time someone microwaves popcorn you lose the connection, and your video download (naughty you!) keeps crapping out halfway through. Direct Wget to resume partial downloads for big files on intermittent connections.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;To set Wget to resume an interrupted download of this 16MB &amp;quot;&lt;a href="http://video.google.com/videoplay?docid=6059494448346363884&amp;amp;q=type%3Agpick"&gt;Mavericks Surf Highlights 2006: Wipeouts&lt;/a&gt;&amp;quot; short from Google Video, use:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=2 color="#252525" face=Courier&gt;&lt;span style='font-size:10.0pt;font-family:Courier;color:#252525'&gt;wget -c --output-document=mavericks.avi &amp;quot;http://vp.video.google.com/videodownload?version=0&amp;amp;secureurl=qgAAAJCWpcRd5eI2k3sm3LWJZMjLyLFiTxk_KqUrRYbrzLTEw8hwMV30m3MRz6rYMTxGqWIfWMQjNJsP0fNXUMc34jzoPcy6z-qHde5UVD29Po6_9b_-d3J5AQpVROUPRqzkJriangEl2IMkKBJd08Q7TTJIAC_r6XID-fNYPLKHm1KRvx0smOslivNLGmyZsCsZmVNVN0jaw5-dloWtzPlI86zIubh1XvJsTg2u_YaHcaAB&amp;amp;sigh=-BbV2h_bIFVuVg4D-h6MUTxuErM&amp;amp;begin=0&amp;amp;len=139433&amp;amp;docid=6059494448346363884&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family: Tahoma;color:#252525'&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;(Apologies for the humungous, non-wrapping URL.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;The -c (&amp;quot;continue&amp;quot;) option sets Wget to resume a partial download if the transfer is interrupted. You'll also notice the URL is in quotes, necessary for any address with &amp;amp;'s in it. Also, since that URL is so long, you can specify the name of the output file explicitly - in this case, mavericks.avi.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4 style='line-height:20.4pt'&gt;&lt;b&gt;&lt;font size=2 color="#252525" face=Helvetica&gt;&lt;span style='font-size:10.0pt;color:#252525'&gt;Schedule hourly downloads of a file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;The nice thing about any command line script is that it's very easy to automate. For instance, if there was a constantly-changing file that you wanted to download every hour, say, you could use cron or Windows Task Scheduler and Wget to do just that, or if there was a very large file you wanted your computer to fetch in the middle of the night while you slept instead of right this moment when you need all your bandwidth to get other work done. You could easily schedule the Wget command to run at a later time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;As proof of concept, yesterday I scheduled an hourly download of Lifehacker's daily traffic chart to run automatically. The command looked like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=2 color="#252525" face=Courier&gt;&lt;span style='font-size:10.0pt;font-family:Courier;color:#252525'&gt;wget --output-document=traffic_$(date +\%Y\%m\%d\%H).gif &amp;quot;http://sm3.sitemeter.com/rpc/v6/server.asp?a=GetChart&amp;amp;n=9&amp;amp;p1=sm3lifehacker&amp;amp;p2=&amp;amp;p3=3&amp;amp;p4=0&amp;amp;p5=64\%2E249\%2E116\%2E138&amp;amp;p6=HTML&amp;amp;p7=1&amp;amp;p8=\%2E\%3Fa\%3Dstatistics&amp;amp;p9=&amp;amp;rnd=7209&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family: Tahoma;color:#252525'&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Notice the use of %Y and %m datetime parameters which result in unique filenames, so each hour the command wouldn't overwrite the file with the same name generated the hour before. Note also that the %'s have to be escaped with a backslash.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Just for fun I threw together a little animated gif of the hourly chart image, that displays the movement of traffic yesterday from 2PM to midnight:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;&lt;img border=0 width=340 height=319 id="_x0000_i1026" src="cid:image002.gif@01C801C8.4A46F3B0" alt=animated-traffic-chart.gif class="postimg center"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4 style='line-height:20.4pt'&gt;&lt;b&gt;&lt;font size=2 color="#252525" face=Helvetica&gt;&lt;span style='font-size:10.0pt;color:#252525'&gt;Automatically download music&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;This last technique, suggested by &lt;a href="http://www.veen.com/jeff/archives/000573.html"&gt;Jeff Veen&lt;/a&gt;, is by far my favorite use of Wget. These days there are tons of directories, aggregators, filters and weblogs that point off to interesting types of media. Using Wget, you can create a text file list of your favorite sites that say, link to &lt;a href="http://lifehacker.com/software/mp3/" title="Posts tagged as mp3"&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;MP3&lt;/span&gt;&lt;/font&gt;&lt;/a&gt; files, and schedule it to automatically download any newly-added MP3's from those sites each day or week.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;First, create a text file called mp3_sites.txt, and list URLs of your favorite sources of music online one per line (like &lt;a href="http://del.icio.us/tag/system:filetype:mp3"&gt;http://del.icio.us/tag/system:filetype:mp3&lt;/a&gt; or &lt;a href="http://stereogum.com"&gt;stereogum.com&lt;/a&gt;). Be sure to check out my previous &lt;a href="http://lifehacker.com/software/feature/" title="Posts tagged as feature"&gt;&lt;font color=black&gt;&lt;span style='color:black'&gt;feature&lt;/span&gt;&lt;/font&gt;&lt;/a&gt; on &lt;a href="http://www.lifehacker.com/software/geek-to-live/geek-to-live-find-free-music-on-the-web-136578.php"&gt;how to find free music on the web&lt;/a&gt; for more ideas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Then use the following Wget command to go out and fetch those MP3's:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='line-height:20.4pt'&gt;&lt;font size=2 color="#252525" face=Courier&gt;&lt;span style='font-size:10.0pt;font-family:Courier;color:#252525'&gt;wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off -i mp3_sites.txt&lt;/span&gt;&lt;/font&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family: Tahoma;color:#252525'&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;That Wget recipe recursively downloads only MP3 files linked from the sites listed in mp3_sites.txt that are newer than any you've already downloaded. There are a few other specifications in there - like to not create a new directory for every music file, to ignore robots.txt and to not crawl up to the parent directory of a link. Jeff breaks it all down in his &lt;a href="http://www.veen.com/jeff/archives/000573.html"&gt;original post&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;The great thing about this technique is that once this command is scheduled, you get an ever-rotating jukebox of new music Wget fetches for you while you sleep. With a good set of trusted sources, you'll never have to go looking for new music again - Wget will do all the work for you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4 style='line-height:20.4pt'&gt;&lt;b&gt;&lt;font size=2 color="#252525" face=Helvetica&gt;&lt;span style='font-size:10.0pt;color:#252525'&gt;Install Wget&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;Wanna give all this a try? Windows users, you can &lt;a href="http://xoomer.virgilio.it/hherold/"&gt;download Wget here&lt;/a&gt;; Mac users, &lt;a href="http://www.statusq.org/archives/2005/02/22/610/"&gt;go here&lt;/a&gt;. An alternative for Windows users interested in more Linuxy goodness is to download and install the Unix emulator &lt;a href="http://cygwin.com/"&gt;Cygwin&lt;/a&gt; which includes Wget and a whole slew of other 'nixy utilities, too.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style='line-height:20.4pt'&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt;For the full take on all of Wget's secret options sauce, type &lt;/span&gt;&lt;/font&gt;&lt;font size=2 color="#252525" face=Courier&gt;&lt;span style='font-size:10.0pt;font-family:Courier; color:#252525'&gt;wget --help&lt;/span&gt;&lt;/font&gt;&lt;font size=1 color="#252525" face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma;color:#252525'&gt; or check out the full-on &lt;a href="http://www.gnu.org/software/Wget/manual/Wget.html"&gt;Wget manual online&lt;/a&gt;. No matter what your downloading task may be, some combination of Wget's extensive options will get the job done just right.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/09/wget-comand-line-http-tool.html' title='wget - comand line http tool'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=4888002011154601576&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/4888002011154601576'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/4888002011154601576'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-4750572111520238897</id><published>2007-09-27T16:45:00.001-06:00</published><updated>2007-09-27T22:41:00.282-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Use Apache to Add Code to HTML pages</title><content type='html'>&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;div align="left"&gt;&lt;h1&gt;&lt;span style="font-size:130%;"&gt;&lt;span class="944404222-27092007"&gt;Insert &lt;/span&gt;Google Analytics&lt;/span&gt;&lt;/h1&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://cadlab.cs.ucla.edu/%7Ekirill/analytics.html"&gt;http://cadlab.cs.ucla.edu/~kirill/analytics.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;Here I will present 3 ways how to get Apache to automatically insert the Google Analytics script into everypage on the fly using Apache. This will cause every webpage to get sent to this perl script. This way you don't need to edit any HTML, just add the perl script and every requested HTML page will include the correct code block for tacking users. If there are any performace issues you should use &lt;a href="http://www.modperl.com/"&gt;mod_perl&lt;/a&gt;&lt;br /&gt;Here is a list of things you'll need before starting: &lt;/div&gt;&lt;ul&gt;&lt;li&gt;Linux Server (should work under Windows). &lt;/li&gt;&lt;li&gt;Apache. &lt;/li&gt;&lt;li&gt;Perl installed on said machine. &lt;/li&gt;&lt;li&gt;Some knowledge of Apache so you won't take down your own site. &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Method 1&lt;/b&gt;&lt;/span&gt; (Not compatible if you want your html code to also be parsed by PHP or something similar.) &lt;/div&gt;&lt;p&gt;How that we have the setup needed here is how to make it work: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add the following perl (footer.pl) file to your cgi-bin and correct (to represent your google analytics account) the following line: &lt;pre&gt;_uacct = "UA-000000-0";&lt;/pre&gt;You can download footer.pl here: &lt;strong&gt;&lt;a href="http://cadlab.cs.ucla.edu/%7Ekirill/footer1.zip"&gt;Download&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;The Perl script does the following things: &lt;ol&gt;&lt;li&gt;Reads the HTML file requested by the user through Apache. &lt;/li&gt;&lt;li&gt;Finds the best spot to insert the footer and inserts it. &lt;/li&gt;&lt;li&gt;Prints the headers and html. &lt;/li&gt;&lt;/ol&gt;Make sure to 'chmod +rx footer.pl' so apache can execute it.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add the following lines to your apache.conf file: &lt;pre&gt;Action add-footer /cgi-bin/footer.pl  AddHandler add-footer .htm .html&lt;/pre&gt;You &lt;strong&gt;must&lt;/strong&gt; include a trailing space after the Action command or the path won't get sent correctly to the script.&lt;br /&gt;More help on handlers can be found on &lt;a href="http://httpd.apache.org/docs/2.2/handler.html#examples"&gt;Apache's website.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Method 2&lt;/b&gt;&lt;/span&gt; (This method won't interfere with anything else and you can add things to the Perl script at a later time.) &lt;/div&gt;&lt;ol&gt;&lt;li&gt;Add the following perl (footer.pl) file to your cgi-bin and correct (to represent your google analytics account) the following line: &lt;pre&gt;_uacct = "UA-000000-0";&lt;/pre&gt;You can download footer.pl here: &lt;strong&gt;&lt;a href="http://cadlab.cs.ucla.edu/%7Ekirill/footer2.zip"&gt;Download&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;The Perl script does the following things: &lt;ol&gt;&lt;li&gt;Reads the file from STDIN that was passed through Apache. &lt;/li&gt;&lt;li&gt;Finds the best spot to insert the footer and inserts it. &lt;/li&gt;&lt;li&gt;Prints the html back to Apache. &lt;/li&gt;&lt;/ol&gt;Make sure to 'chmod +rx footer.pl' so apache can execute it.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add the following lines to your apache.conf file: &lt;pre&gt;LoadModule ext_filter_module modules/mod_ext_filter.so&lt;br /&gt;ExtFilterDefine insert-footer cmd="/usr/bin/perl /cgi-bin/footer.pl"&lt;br /&gt;AddOutputFilter insert-footer htm html &lt;/pre&gt;&lt;/li&gt;&lt;li&gt;You might need to correct the paths to make it work for you. More help on filters can be found on &lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_ext_filter.html"&gt;Apache's website.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Method 3&lt;/b&gt;&lt;/span&gt; (The fastest and simplest but adds a lot of text to your Apache configuration) &lt;/div&gt;&lt;ol&gt;&lt;li&gt;Add the following lines to your apache.conf file: &lt;pre&gt;LoadModule ext_filter_module modules/mod_ext_filter.so&lt;br /&gt;ExtFilterDefine insert-footer cmd="/bin/sed s/&amp;lt;\/html&amp;gt;/the_footer&amp;lt;\/html&amp;gt;/ig"&lt;br /&gt;AddOutputFilter insert-footer htm html &lt;/pre&gt;You might need to correct the paths to make it work for you. You also have to replace $footer by the footer code google provides you. More help on filters can be found on &lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_ext_filter.html"&gt;Apache's website.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; _uacct = "UA-131297-3"; urchinTracker(); &lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/09/use-apache-to-add-code-to-html-pages.html' title='Use Apache to Add Code to HTML pages'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=4750572111520238897&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/4750572111520238897'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/4750572111520238897'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-1883526710634175506</id><published>2007-09-27T15:56:00.001-06:00</published><updated>2007-09-27T15:56:53.757-06:00</updated><title type='text'>Conditional comments in HTML</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt; &lt;H2 id=top&gt;&lt;FONT size=3&gt;Explorer 5+ Windows only.&lt;/FONT&gt;&lt;/H2&gt; &lt;DIV class=floater&gt; &lt;P&gt;If you have multiple Explorers installed the conditional comments will view  each install as the highest installed version (usually IE 6).&lt;/P&gt;&lt;/DIV&gt; &lt;P class=intro&gt;Conditional comments only work in Explorer on Windows, and are  thus excellently suited to give special instructions meant only for Explorer on  Windows. They are supported from Explorer 5 onwards, and it is even possible to  distinguish between 5.0, 5.5 and 6.0.&lt;/P&gt; &lt;P&gt;Conditional comments work as follows:&lt;/P&gt;&lt;PRE style="MARGIN-RIGHT: -327px"&gt;&amp;lt;!--[if IE 6]&amp;gt; Special instructions for IE 6 here &amp;lt;![endif]--&amp;gt; &lt;/PRE&gt; &lt;OL class=spacing&gt;   &lt;LI class=""&gt;Their basic structure is the same as an HTML comment    (&lt;CODE&gt;&amp;lt;!-- --&amp;gt;&lt;/CODE&gt;). Therefore all other browsers will see them as    normal comments and will ignore them entirely.    &lt;LI class=odd&gt;Explorer Windows, though, has been programmed to recognize the    special &lt;CODE&gt;&amp;lt;!--[if IE]&amp;gt;&lt;/CODE&gt; syntax, resolves the &lt;CODE&gt;if&lt;/CODE&gt;    and parses the content of the conditional comment as if it were normal page    content.    &lt;LI class=""&gt;Since conditional comments use the &lt;B&gt;HTML&lt;/B&gt; comment structure,    they can only be included in HTML files, and not in CSS files. I'd have    preferred to put the special styles in the CSS file, but that's impossible.    You can also put an entire new &lt;CODE&gt;&amp;lt;link&amp;gt;&lt;/CODE&gt; tag in the    conditional comment referring to an extra style sheet. &lt;/LI&gt;&lt;/OL&gt; &lt;H3 id=link1&gt;Example&lt;/H3&gt; &lt;P&gt;Below I added a lot of conditional comments that print out messages according  to your Internet Explorer version.&lt;/P&gt; &lt;P&gt;&lt;B&gt;Note&lt;/B&gt; however, that if you use &lt;A  href="http://www.quirksmode.org/browsers/multipleie.html"&gt;multiple Explorers&lt;/A&gt;  on one computer, the conditional comments will render as if all these Explorer  versions are the highest Explorer version available on your machine (usually  Explorer 6.0).&lt;/P&gt; &lt;H4 id=link2&gt;Test&lt;/H4&gt; &lt;P&gt;Below are a few conditional comments that reveal the Internet Explorer  version you're using. If you don't see any, you're not using Internet  Explorer.&lt;/P&gt; &lt;P&gt;According to the conditional comment this is Internet Explorer&lt;BR&gt;According  to the conditional comment this is Internet Explorer 7&lt;BR&gt;According to the  conditional comment this is Internet Explorer 5 and up&lt;BR&gt;According to the  conditional comment this is Internet Explorer greater than 6&lt;BR&gt;&lt;/P&gt; &lt;H4 id=link3&gt;Code&lt;/H4&gt; &lt;P&gt;The syntax I use is:&lt;/P&gt;&lt;PRE style="MARGIN-RIGHT: -327px"&gt;&amp;lt;p&amp;gt;&amp;lt;!--[if IE]&amp;gt; According to the conditional comment this is Internet Explorer&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if IE 5]&amp;gt; According to the conditional comment this is Internet Explorer 5&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if IE 5.0]&amp;gt; According to the conditional comment this is Internet Explorer 5.0&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if IE 5.5]&amp;gt; According to the conditional comment this is Internet Explorer 5.5&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if IE 6]&amp;gt; According to the conditional comment this is Internet Explorer 6&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if IE 7]&amp;gt; According to the conditional comment this is Internet Explorer 7&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if gte IE 5]&amp;gt; According to the conditional comment this is Internet Explorer 5 and up&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if lt IE 6]&amp;gt; According to the conditional comment this is Internet Explorer lower than 6&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if lte IE 5.5]&amp;gt; According to the conditional comment this is Internet Explorer lower or equal to 5.5&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;!--[if gt IE 6]&amp;gt; According to the conditional comment this is Internet Explorer greater than 6&amp;lt;br /&amp;gt; &amp;lt;![endif]--&amp;gt; &amp;lt;/p&amp;gt; &lt;/PRE&gt; &lt;P&gt;Note the special syntax:&lt;/P&gt; &lt;UL&gt;   &lt;LI class=""&gt;&lt;CODE&gt;gt&lt;/CODE&gt;: greater than    &lt;LI class=odd&gt;&lt;CODE&gt;lte&lt;/CODE&gt;: less than or equal to &lt;/LI&gt;&lt;/UL&gt; &lt;H3 id=link4&gt;CSS hack?&lt;/H3&gt; &lt;P&gt;Are conditional comments &lt;A  href="http://www.quirksmode.org/css/csshacks.html"&gt;CSS hacks&lt;/A&gt;? Strictly  speaking, yes, since they can serve to give special style instructions to some  browsers. However, they do not rely on one browser bug to solve another one, as  all true CSS hacks do. Besides, they can be used for more than CSS hacks only  (though that rarely happens).&lt;/P&gt; &lt;P&gt;Since conditional comments are not based on a browser hack but on a  deliberate feature I believe they are safe to use. Sure, other browsers could  implement conditional comments, too (though as yet none have done so), but  they're unlikely to react to the specific query &lt;CODE&gt;&amp;lt;!--[if  IE]&amp;gt;&lt;/CODE&gt;.&lt;/P&gt; &lt;P&gt;I use conditional comments, though sparingly. First I see if I can find a  real CSS solution to an Explorer Windows problem. If I can't, though, I don't  hesitate to use them.&lt;/P&gt; &lt;H3 id=link5&gt;Comment tag&lt;/H3&gt; &lt;P&gt;A reader told me Explorer (Windows and Mac) supports the (non-standard)  &lt;CODE&gt;&amp;lt;comment&amp;gt;&lt;/CODE&gt; tag.&lt;/P&gt;&lt;PRE style="MARGIN-RIGHT: -327px"&gt;&amp;lt;p&amp;gt;This is &amp;lt;comment&amp;gt;not&amp;lt;/comment&amp;gt; Internet Explorer.&amp;lt;/p&amp;gt; &lt;/PRE&gt; &lt;P&gt;This is &lt;COMMENT&gt;not&lt;/COMMENT&gt;Internet Explorer.&lt;/P&gt; &lt;P&gt;This tag might come in handily if you want to use tags or styles for all  non-Explorer browsers. Unfortunately these situations are rather scarce,  especially since both Explorer Windows and Mac support this tag and you usually  want to serve special content or style to only one of  them.&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/09/conditional-comments-in-html.html' title='Conditional comments in HTML'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=1883526710634175506&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/1883526710634175506'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/1883526710634175506'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-6385053718625945414</id><published>2007-09-10T22:06:00.000-06:00</published><updated>2007-09-10T22:07:02.101-06:00</updated><title type='text'>HowTo: including html in Java Server Faces (JSF) pages</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Arial color=#000000 size=2&gt;&amp;nbsp;&lt;A href="http://www.crazysquirrel.com/computing/java/jsf/include-html.jspx" target=_blank&gt;http://www.crazysquirrel.com/computing/java/jsf/include-html.jspx&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt; &lt;DIV class=box-title&gt; &lt;H1 class=box-title&gt;Including HTML&lt;/H1&gt;&lt;/DIV&gt; &lt;P&gt;You would have thought that including one page in another was a simple thing to do. You would be greatly mistaken if you held this notion for JSF (Java Server Faces). A number of querks with the way JSF is integrated with JSP make includes surprisingly difficult. Actually that's not strictly true. Includes are quite easy as long as you only want to include verbatim HTML with no JSF tags which I think is fairly unlikely.&lt;/P&gt; &lt;P&gt;The problem is a life-cycle one. If you want to mix HTML / JSP and JSF in the included page all the HTML has to be inside f:verbatim tags or it will appear below the results of the JSF tags. Basically, what is happening is the JSF tags are getting processed and output before any of the JSP tags (which includes passing though the HTML).&lt;/P&gt; &lt;P&gt;The solution is to wrap any HTML in f:verbatim tags but this doesn't work very well, if at all, if you are using XML JSP (files with a .jspx extension) because the page has to be valid XML and generally just wrapping f:verbatim round the (X)HTML will break that constraint.&lt;/P&gt; &lt;H2&gt;Solution One&lt;/H2&gt; &lt;P&gt;One solution is to try and translate the HTML into JSF tags which is a painful job at best because h:panelGrid and h:panelGroup don't support most of the useful shortcuts you can use when developing HTML (for instance align="center" on a td - see another article for a solution to this one).&lt;/P&gt; &lt;H2&gt;Solution Two&lt;/H2&gt; &lt;P&gt;The other solution is a complete hack but it works. Place your HTML in a CDATA section which is itself inside a f:verbatim tags thus: &amp;lt;![CDATA[&amp;lt;p&amp;gt;Some HTML&amp;lt;/p&amp;gt;]]&amp;gt;. Not pretty but it may be a quicker way to develop a site.&lt;/P&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/09/howto-including-html-in-java-server.html' title='HowTo: including html in Java Server Faces (JSF) pages'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=6385053718625945414&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/6385053718625945414'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/6385053718625945414'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-7956873726888337222</id><published>2007-07-30T08:57:00.000-06:00</published><updated>2007-09-27T22:03:05.678-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='csh'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><category scheme='http://www.blogger.com/atom/ns#' term='tcsh'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Redirect tcsh output for - stdout stderr</title><content type='html'>My team seems to always be using diffent unix shells for this and that.  The other day a collegue of mine wanted to redirect output from her csh shell ( actually tcsh ) so I thought I would put it here as a keepsake.  I don't care what shell you use as long as you are productive.  I have samples of .login and .cshrc if you need a template to get started with.  My personal favorite ksh and bash so I have those as well.  Put a comment here and I give pass them along to you.&lt;br /&gt;&lt;br /&gt;&lt;div class=Section1&gt;&lt;pre&gt;&lt;font size=2 face="Courier New"&gt;&lt;span style='font-size:10.0pt'&gt;(cmd &amp;gt; /dev/tty) &amp;gt;&amp;amp; /dev/null&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/"&gt;http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/07/redirect-tcsh-stdout-stderr.html' title='Redirect tcsh output for - stdout stderr'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=7956873726888337222&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/7956873726888337222'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/7956873726888337222'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-116836932557226195</id><published>2007-01-09T12:02:00.000-07:00</published><updated>2007-09-27T22:08:41.172-06:00</updated><title type='text'>Dynamically load Python Modules</title><content type='html'>Memory is a terrible thing to waste.  Dynamically load your Python modules with this trick.  It is usefull when you don't know how your script is going to be used.  Use it to initiate special functionality.  Post a comment if you would like some sample code.&lt;br /&gt;&lt;br /&gt;&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/436873"&gt;http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/436873&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/01/dynamically-load-python-modules.html' title='Dynamically load Python Modules'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=116836932557226195&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116836932557226195'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116836932557226195'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-116777699129072107</id><published>2007-01-02T15:29:00.000-07:00</published><updated>2007-09-27T22:22:26.396-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='codecs'/><category scheme='http://www.blogger.com/atom/ns#' term='video editing'/><title type='text'>Video Codecs and Other Video Apps</title><content type='html'>I got a call the other day from someone looking to manipulate some videos in Windows XP and Vista in different formats.  Some how we got started on WMV and various wrappers that have been seen.  Here are the results from that search.  We were talking about audio and video splitting.  &lt;br /&gt;&lt;br /&gt;&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;So you installed Vodia and then wondered why you needed it for such a primative wrapper.  Remove Vodei here: &lt;a href="http://www.vladd44.com/video/vodei.php"&gt;http://www.vladd44.com/video/vodei.php&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;br /&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;br /&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;GraphEdit: &lt;a href="http://www.digital-digest.com/dvd/downloads/showsoftware_graphedit_141.html#downloads"&gt;http://www.digital-digest.com/dvd/downloads/showsoftware_graphedit_141.html#downloads&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;br /&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;GraphEdit Audio Filters: &lt;a href="http://nickyguides.digital-digest.com/audio-extract.htm"&gt;http://nickyguides.digital-digest.com/audio-extract.htm&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;br /&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;GSpot: &lt;a href="http://www.headbands.com/gspot/"&gt;http://www.headbands.com/gspot/&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;br /&gt;&lt;br /&gt;&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;Virtualdub: &lt;a href="http://virtualdub.sourceforge.net/"&gt;http://virtualdub.sourceforge.net/&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2007/01/video-codecs-and-other-video-apps.html' title='Video Codecs and Other Video Apps'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=116777699129072107&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116777699129072107'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116777699129072107'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-116171391118040242</id><published>2006-10-24T12:18:00.000-06:00</published><updated>2007-09-27T21:56:10.017-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='charts'/><title type='text'>Plot kit for Javascript charts</title><content type='html'>I have been looking around for a good way to plot charts with Javascript.  This seems to be a good chioce.  If you would like to see my sample code leave a comment here and I'll give you a link. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://www.liquidx.net/plotkit/"&gt;http://www.liquidx.net/plotkit/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/10/plot-kit-for-javascript-charts.html' title='Plot kit for Javascript charts'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=116171391118040242&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116171391118040242'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116171391118040242'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-116171341054245141</id><published>2006-10-24T12:10:00.000-06:00</published><updated>2006-10-24T12:10:10.580-06:00</updated><title type='text'>Charts and Graphs</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://blog.codahale.com/2006/04/29/google-analytics-the-goggles-they-do-nothing/"&gt;http://blog.codahale.com/2006/04/29/google-analytics-the-goggles-they-do-nothing/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/10/charts-and-graphs.html' title='Charts and Graphs'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=116171341054245141&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116171341054245141'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116171341054245141'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-116102642118251835</id><published>2006-10-16T13:20:00.000-06:00</published><updated>2006-10-16T13:20:21.210-06:00</updated><title type='text'>Google Security Issue</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;Google indexes all directories.&amp;nbsp; Queries such as this could be dangerous:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;-inurl:(htm|html|php) intitle:&amp;quot;index of&amp;quot; +&amp;quot;last modified&amp;quot; +&amp;quot;parent directory&amp;quot; +description +size +(wma|mp3) &amp;quot;Timberlake&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/10/google-security-issue.html' title='Google Security Issue'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=116102642118251835&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116102642118251835'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/116102642118251835'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115988913206596914</id><published>2006-10-03T09:25:00.000-06:00</published><updated>2006-10-03T09:25:32.100-06:00</updated><title type='text'>Buildbot - Automated build monitoring</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://buildbot.sourceforge.net/manual-0.7.4.html#Introduction"&gt;http://buildbot.sourceforge.net/manual-0.7.4.html#Introduction&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/10/buildbot-automated-build-monitoring.html' title='Buildbot - Automated build monitoring'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115988913206596914&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115988913206596914'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115988913206596914'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115747968032902291</id><published>2006-09-05T12:08:00.000-06:00</published><updated>2006-09-05T12:08:00.403-06:00</updated><title type='text'>Another AJAX implementation</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://cows-ajax.sourceforge.net/index.php"&gt;http://cows-ajax.sourceforge.net/index.php&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/09/another-ajax-implementation.html' title='Another AJAX implementation'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115747968032902291&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115747968032902291'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115747968032902291'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115713145960575159</id><published>2006-09-01T11:24:00.000-06:00</published><updated>2006-09-01T11:24:19.640-06:00</updated><title type='text'>Oracle Dashboard Example</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://www.oracle.com/technology/obe/obe_bi/discoverer/discoverer_1012/plusportal/Portal.htm"&gt;http://www.oracle.com/technology/obe/obe_bi/discoverer/discoverer_1012/plusportal/Portal.htm&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/09/oracle-dashboard-example.html' title='Oracle Dashboard Example'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115713145960575159&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115713145960575159'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115713145960575159'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115705456877103003</id><published>2006-08-31T14:02:00.000-06:00</published><updated>2006-08-31T14:02:48.930-06:00</updated><title type='text'>webDAV on OS X</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;Article describing how to setup webDAV with netinfo as the authentication mechanism.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://www.upenn.edu/computing/eval/2002/webdav/server/macosx/"&gt;http://www.upenn.edu/computing/eval/2002/webdav/server/macosx/&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/08/webdav-on-os-x.html' title='webDAV on OS X'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115705456877103003&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115705456877103003'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115705456877103003'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115679742536555791</id><published>2006-08-28T14:37:00.000-06:00</published><updated>2006-08-28T14:37:05.386-06:00</updated><title type='text'>Leadership</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;Effective Management: &lt;a href="http://www.projectmanagementsource.com/2006/08/lessons_from_pr.html"&gt;http://www.projectmanagementsource.com/2006/08/lessons_from_pr.html&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/08/leadership.html' title='Leadership'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115679742536555791&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115679742536555791'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115679742536555791'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115678838301082519</id><published>2006-08-28T12:06:00.000-06:00</published><updated>2006-08-28T12:06:23.060-06:00</updated><title type='text'>Data Recovery</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;Slick data recover applications: &lt;a href="http://www.cgsecurity.org/"&gt;http://www.cgsecurity.org/&lt;/a&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/08/data-recovery.html' title='Data Recovery'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115678838301082519&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115678838301082519'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115678838301082519'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115627892176663163</id><published>2006-08-22T14:35:00.000-06:00</published><updated>2006-08-22T14:35:21.823-06:00</updated><title type='text'>Integrating Java and C++</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://www.javaworld.com/javaworld/javatips/jw-javatip17.html"&gt;http://www.javaworld.com/javaworld/javatips/jw-javatip17.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/08/integrating-java-and-c.html' title='Integrating Java and C++'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115627892176663163&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115627892176663163'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115627892176663163'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115627360622989345</id><published>2006-08-22T13:06:00.000-06:00</published><updated>2006-08-22T13:06:46.266-06:00</updated><title type='text'>Creating appealing graphs</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://www.bartelme.at/journal_detail.php?detail=281"&gt;http://www.bartelme.at/journal_detail.php?detail=281&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/08/creating-appealing-graphs.html' title='Creating appealing graphs'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115627360622989345&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115627360622989345'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115627360622989345'/><author><name>Shadow Writer</name></author></entry><entry><id>tag:blogger.com,1999:blog-7948313.post-115626023757089016</id><published>2006-08-22T09:23:00.000-06:00</published><updated>2006-08-22T09:23:57.600-06:00</updated><title type='text'>Bulletin Board</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;a href="http://www.punbb.org/"&gt;http://www.punbb.org/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyright iWindow&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://www.iwindow.org/blogger/2006/08/bulletin-board.html' title='Bulletin Board'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7948313&amp;postID=115626023757089016&amp;isPopup=true' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.iwindow.org/blogger/site_feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115626023757089016'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7948313/posts/default/115626023757089016'/><author><name>Shadow Writer</name></author></entry></feed>