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

<channel>
	<title>K-Squared Ramblings &#187; webdev</title>
	<atom:link href="http://www.hyperborea.org/journal/tag/webdev/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hyperborea.org/journal</link>
	<description>Sci-fi, comics, humor, photos...it&#039;s all fair game.</description>
	<lastBuildDate>Sat, 21 Nov 2009 07:49:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='www.hyperborea.org' port='80' path='/journal/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>HTML Validator Trouble</title>
		<link>http://www.hyperborea.org/journal/archives/2008/12/12/validator-trouble/</link>
		<comments>http://www.hyperborea.org/journal/archives/2008/12/12/validator-trouble/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 07:59:59 +0000</pubDate>
		<dc:creator>Kelson</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Tweets]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.hyperborea.org/journal/archives/2008/12/12/line-items-for-2008-12-12/</guid>
		<description><![CDATA[The W3C Validators are in trouble: apparently running the tools is hideously expensive and they&#8217;re low on funds. #
I usually use the WDG Offline Validator as a first line, but the W3C&#8217;s tools are incredibly useful. #
Copyright &#169; 2009 Kelson Vibber and/or Katherine Foreman. This feed is for personal, non-commercial use only.  The use [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.molly.com/2008/12/11/w3c-validators-in-jeopardy/">W3C Validators are in trouble</a>: apparently running the tools is hideously expensive and they&#8217;re low on funds. <a href="http://twitter.com/KelsonV/statuses/1053810148" class="aktt_tweet_time">#</a></p>
<p>I usually use the <a href="http://www.htmlhelp.com/tools/validator/offline/">WDG Offline Validator</a> as a first line, but the W3C&#8217;s tools are incredibly useful. <a href="http://twitter.com/KelsonV/statuses/1053819922" class="aktt_tweet_time">#</a></p>
<hr /><small>Copyright &copy; 2009 Kelson Vibber and/or Katherine Foreman.<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. Permission granted to Planet Antispam and LiveJournal syndication feed ksquaredramblin.  If this content is not in your news reader or one of the sites listed above, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: bc1c453a98ff79bab5c4fca2d890469d (38.107.191.90) )</small> <a href="http://www.hudson-family.co.uk/extremecorticate.php?source=673"></a>]]></content:encoded>
			<wfw:commentRss>http://www.hyperborea.org/journal/archives/2008/12/12/validator-trouble/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What’s Dynamic About It?</title>
		<link>http://www.hyperborea.org/journal/archives/2008/03/14/whats-dynamic/</link>
		<comments>http://www.hyperborea.org/journal/archives/2008/03/14/whats-dynamic/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 03:22:35 +0000</pubDate>
		<dc:creator>Kelson</dc:creator>
				<category><![CDATA[Comics]]></category>
		<category><![CDATA[Site Updates]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.hyperborea.org/journal/archives/2008/03/14/whats-dynamic/</guid>
		<description><![CDATA[In my post on Webslices, I mentioned that the home page of my Flash site uses server-side includes instead of a static HTML file.  But it doesn&#8217;t really update that often: maybe 3 or 4 times a month.  Is it really worth building that file dynamically?  Should I switch from SSI to [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.hyperborea.org/journal/archives/2008/03/13/webslices-and-microsummaries/">post on Webslices</a>, I mentioned that the home page of my <a href="http://www.hyperborea.org/flash/">Flash site</a> uses server-side includes instead of a static HTML file.  But it doesn&#8217;t really update that often: maybe 3 or 4 times a month.  Is it really worth building that file dynamically?  Should I switch from SSI to something more powerful, like PHP, that will let me add headers so that repeat visitors won&#8217;t have to re-download the whole page except when it&#8217;s <em>actually different</em>?  Or should I switch to a static file, with the same benefits but simpler?  <strong>What am I actually building, anyway?</strong></p>
<p>Looking through the code, I find:</p>
<p><strong>Browser upgrade banners.</strong>  People using old versions of Firefox (currently 1.5 or older) or Internet Explorer (currently 5.5 or older) get an &#8220;Upgrade to Firefox&nbsp;2&#8243; banner instead of the thumbnail of the current issue of the comic.  This is just as easily done with JavaScript&#8212;and <em>is</em> done with JS elsewhere on the site.  (I used to make some minor adjustments for other versions of IE, but I converted them all to <a href="http://www.quirksmode.org/css/condcom.html">conditional comments</a> a while back.)</p>
<p><strong>Last-modified date</strong> in the footer, pulled from the actual file.  I&#8217;ve already got a script to update this in the static files, so it&#8217;s just a matter of adding it to my general update script.  A two-minute, one-time change and I&#8217;ll never notice the difference.</p>
<p><strong>Latest posts from this blog.</strong>  Probably better done with an iframe, or maybe using AJAX.  Drawback: either method would mean an extra request from the client.  On the plus side, repeat visitors would be able to re-use the rest of the page, and only download the 5-item list.</p>
<p><strong>Unique-per-day spamtrap addresses</strong>, hidden where harvesters might pick them up.  But only a few of them still accept mail and feed it to filters.  Mostly, they just waste spammers&#8217; resources.  I could easily either get rid of them or change the script to generate a new address with each update instead of each day.</p>
<p>So really, there isn&#8217;t much stopping me from using a static file for the most-viewed page on the site, with all the attendant savings in system resources, bandwidth, etc.</p>
<p>On the other hand, I keep contemplating switching to a database-driven system for the whole thing, which would make any changes now meaningless.  But since I&#8217;ve been thinking about that since around 2000 or so, and haven&#8217;t changed it yet, that&#8217;s not exactly a blocker!</p>
<p><b>Update (March 30):</b> I&#8217;ve made the conversion to a static file.  The blog posts and browser upgrade banners are now done client-side (and run after the rest of the page is loaded), the last-modified date is part of the pre-processing script, and I just removed the daily spamtrap addresses.  Now to see whether it actually improves performance.</p>
<hr /><small>Copyright &copy; 2009 Kelson Vibber and/or Katherine Foreman.<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. Permission granted to Planet Antispam and LiveJournal syndication feed ksquaredramblin.  If this content is not in your news reader or one of the sites listed above, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: bc1c453a98ff79bab5c4fca2d890469d (38.107.191.90) )</small> <a href="http://www.hudson-family.co.uk/extremecorticate.php?source=673"></a>]]></content:encoded>
			<wfw:commentRss>http://www.hyperborea.org/journal/archives/2008/03/14/whats-dynamic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webslices and Revisiting Microsummaries</title>
		<link>http://www.hyperborea.org/journal/archives/2008/03/13/webslices-and-microsummaries/</link>
		<comments>http://www.hyperborea.org/journal/archives/2008/03/13/webslices-and-microsummaries/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 03:59:07 +0000</pubDate>
		<dc:creator>Kelson</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[webslices]]></category>

		<guid isPermaLink="false">http://www.hyperborea.org/journal/archives/2008/03/13/webslices-and-microsummaries/</guid>
		<description><![CDATA[When the first Firefox 2 beta was released, I looked into Microsummaries, a feature that enables bookmarks to automatically update their titles with information.  I concluded they were useful, but not for anything I was doing.  The main application would be my Flash site, but it already had an RSS feed for updates, [...]]]></description>
			<content:encoded><![CDATA[<p>When the first Firefox 2 beta was released, I looked into <a href="https://wiki.mozilla.org/Microsummaries">Microsummaries</a>, a feature that enables bookmarks to automatically update their titles with information.  I <a href="http://www.hyperborea.org/journal/archives/2006/07/12/microsummaries/">concluded</a> they were useful, but not for anything I was doing.  The main application would be my <a href="http://www.hyperborea.org/flash/">Flash site</a>, but it already had an RSS feed for updates, and a microsummary could only really include the most recent item.</p>
<p>Now the first IE8 beta supports <a href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/webslices.mspx">Webslices</a>.  They&#8217;re similar in concept, but can include formatted data (not just plain text) and use microformat-like markup on the web page instead of a &lt;link&gt; element in the head.</p>
<p>I figured with two browsers supporting the concept, I&#8217;d give it a shot.  I adapted the script I use to generate the RSS feed so that it will also take everything on the most recent day and generate a text file, which is used for the Microsummary title.  For the Webslice, to start with I just marked up the &#8220;Latest Updates&#8221; section of the home page.  Since I haven&#8217;t installed IE8b1 at home, I&#8217;m using Daniel Glazman&#8217;s experimental <a href="http://www.glazman.org/weblog/dotclear/index.php?post/2008/03/13/WebSlices-in-Firefox-6">Webchunks</a> extension for Firefox to try it out.  Unfortunately the extension doesn&#8217;t seem to resolve relative links in its current state.</p>
<p>The real question, of course, is whether either technology offers anything better than what feeds can do now.</p>
<p>I think I&#8217;ll end up going the external-feed route for the Webslice as well, since it&#8217;ll use a lot less bandwidth than having a bunch of IE installations pulling the <em>entire home page</em> once a day.  Plus since I&#8217;m using SSI on that page, it doesn&#8217;t take advantage of conditional requests and caching, and a static file will.  But that&#8217;ll have to wait.  <i>Lost</i> is on in 2 minutes, and after getting up earlier than usual this morning, I&#8217;ll probably be going to bed right after the show.</p>
<p><b>Update:</b> I checked in IE8, and the webslice does work as expected.  A few minor differences: Webchunks pulls in external styles, like the background and colors, while IE8b1 only uses styles in the chunk itself.  Interesting bit: I&#8217;m marking up list items as entries, and IE8 is actually displaying them as a bulleted list, while Webchunks is simply showing the content.</p>
<p>So it at least <em>works</em>.  Maybe tonight or Sunday I&#8217;ll see if I can refine it a bit.</p>
<hr /><small>Copyright &copy; 2009 Kelson Vibber and/or Katherine Foreman.<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. Permission granted to Planet Antispam and LiveJournal syndication feed ksquaredramblin.  If this content is not in your news reader or one of the sites listed above, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: bc1c453a98ff79bab5c4fca2d890469d (38.107.191.90) )</small> <a href="http://www.hudson-family.co.uk/extremecorticate.php?source=673"></a>]]></content:encoded>
			<wfw:commentRss>http://www.hyperborea.org/journal/archives/2008/03/13/webslices-and-microsummaries/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Net Links</title>
		<link>http://www.hyperborea.org/journal/archives/2008/01/29/net-links/</link>
		<comments>http://www.hyperborea.org/journal/archives/2008/01/29/net-links/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 07:34:04 +0000</pubDate>
		<dc:creator>Kelson</dc:creator>
				<category><![CDATA[Computers/Internet]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Acid3]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.hyperborea.org/journal/archives/2008/01/29/net-links/</guid>
		<description><![CDATA[ISC on Targeted Attacks
Hixie&#8217;s Natural Log: Come up with the best test for Acid3 Edit: Strike that, Acid3 has been completed.
Spies in the Phishing Underground (via Slashdot)
Copyright &#169; 2009 Kelson Vibber and/or Katherine Foreman. This feed is for personal, non-commercial use only.  The use of this feed on other websites breaches copyright. Permission granted [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://isc.sans.org/diary.html?storyid=3835">ISC on Targeted Attacks</a></p>
<p><s><a href="http://ln.hixie.ch/?start=1200301306&#038;count=1">Hixie&#8217;s Natural Log: Come up with the best test for Acid3</a></s> <b>Edit:</b> Strike that, <a href="http://acid3.acidtests.org/">Acid3</a> has been <a href="http://www.css3.info/acid3-completed/">completed</a>.</p>
<p><a href="http://www.net-security.org/article.php?id=1110">Spies in the Phishing Underground</a> <small>(<a href="http://it.slashdot.org/article.pl?sid=08/01/28/0315242">via Slashdot</a>)</small></p>
<hr /><small>Copyright &copy; 2009 Kelson Vibber and/or Katherine Foreman.<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. Permission granted to Planet Antispam and LiveJournal syndication feed ksquaredramblin.  If this content is not in your news reader or one of the sites listed above, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: bc1c453a98ff79bab5c4fca2d890469d (38.107.191.90) )</small> <a href="http://www.hudson-family.co.uk/extremecorticate.php?source=673"></a>]]></content:encoded>
			<wfw:commentRss>http://www.hyperborea.org/journal/archives/2008/01/29/net-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Right Tool…</title>
		<link>http://www.hyperborea.org/journal/archives/2008/01/16/the-right-tool/</link>
		<comments>http://www.hyperborea.org/journal/archives/2008/01/16/the-right-tool/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 07:09:16 +0000</pubDate>
		<dc:creator>Kelson</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.hyperborea.org/journal/archives/2008/01/16/the-right-tool/</guid>
		<description><![CDATA[I&#8217;ve been reading High Performance Web Sites and started thinking about how to apply the guidelines to my own sites (not to mention stuff for work).  A lot of them are things I already do: minimize external resources, use compression &#038; cache control, etc.  Others are a bit out of reach for a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading <a href="http://www.amazon.com/gp/product/0596529309?ie=UTF8&#038;tag=hyperborea-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596529309"><i>High Performance Web Sites</i></a> and started thinking about how to apply the guidelines to my own sites (not to mention stuff for work).  A lot of them are things I already do: minimize external resources, use compression &#038; cache control, etc.  Others are a bit out of reach for a personal site, like using a <a href="http://en.wikipedia.org/wiki/Content_delivery_network">content delivery network</a>.  It got me looking at the way I use scripts, and reminded me of a change I made about a year and a half ago.</p>
<p>Way back when, I put a simple app on my Flash site: a <a href="http://www.hyperborea.org/flash/teamnames.phtml">team-name generator</a> for teams of speedsters.  It randomly generated a name from two lists, and provided a button to generate another one.  I originally wrote it in PHP.</p>
<p>The funny thing was that it was the most-hit page on the site, because people would sit there and hit the button to generate a new name half a dozen times before moving on.  And because it was a sever-side script, that meant not just another HTTP hit, but re-downloading the entire web page with only 2 words being different.</p>
<p>Eventually I realized it was much better suited to a client-side app.  I rewrote the whole thing in JavaScript, using DOM functions to replace the name on the current page instead of reloading.  I left the hooks to the PHP in place, so that it would still work for clients with JavaScript disabled.</p>
<ul>
<li>It was much faster &#8212; practically instantaneous, in fact.</li>
<li>It used a lot less bandwidth &#8212; 40 KB (5 KB × 8 ) vs. 6 KB (5 KB + 1 KB) for a typical 8-name* scenario.</li>
<li>Traffic stats more accurately reflected the page&#8217;s popularity, as it dropped from #1 to around #30&#8211;50.</li>
</ul>
<p><small>* Based on a drop from 32,000 hits/month in July 2006 to 4,000 hits/month in September, with the rest of the site staying about the same, it seems people were hitting reload 7 times.</small></p>
<hr /><small>Copyright &copy; 2009 Kelson Vibber and/or Katherine Foreman.<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. Permission granted to Planet Antispam and LiveJournal syndication feed ksquaredramblin.  If this content is not in your news reader or one of the sites listed above, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: bc1c453a98ff79bab5c4fca2d890469d (38.107.191.90) )</small> <a href="http://www.hudson-family.co.uk/extremecorticate.php?source=673"></a>]]></content:encoded>
			<wfw:commentRss>http://www.hyperborea.org/journal/archives/2008/01/16/the-right-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking the Web Beyond the Typewriter</title>
		<link>http://www.hyperborea.org/journal/archives/2004/12/18/beyond-the-typewriter/</link>
		<comments>http://www.hyperborea.org/journal/archives/2004/12/18/beyond-the-typewriter/#comments</comments>
		<pubDate>Sat, 18 Dec 2004 18:13:28 +0000</pubDate>
		<dc:creator>Kelson</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[typography]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.hyperborea.org/journal/archives/2004/12/18/beyond-the-typewriter/</guid>
		<description><![CDATA[I recently stumbled across an old copy of the Demoroniser (which my American-trained sense of spelling keeps trying to spell as demoronizer), a script designed to correct some of the, well, moronic HTML generated by Microsoft Office.  Aside from flat-out coding errors, Office would use non-standard characters for things such as curly quotes or [...]]]></description>
			<content:encoded><![CDATA[<p>I recently stumbled across an old copy of the <a href="http://www.fourmilab.ch/webtools/demoroniser/">Demoroniser</a> (which my American-trained sense of spelling keeps trying to spell as <i>demoronizer</i>), a script designed to correct some of the, well, moronic HTML generated by Microsoft Office.  Aside from flat-out coding errors, Office would use non-standard characters for things such as curly quotes or em-dashes that would only show up on Windows computers. If you viewed these sites on a Mac, a Linux box, a Palm, etc., they would seem to be missing punctuation everywhere.  His solution was to convert these to their plain-ASCII equivalents.</p>
<p>Over the last year or so, <a href="http://wordpress.org/">Wordpress</a> and <a href="http://www.alistapart.com/">A List Apart</a> have converted me from &#8220;stick with the lowest common denominator&#8221; to &#8220;let&#8217;s show real typography.&#8221;  Since the days of the Demoroniser, Unicode has become a standard part of HTML, so modern browsers* can either display a full range of characters or convert them to something they can display.  You probably won&#8217;t be able to see Chinese text in Lynx, but a <em>properly</em> encoded curly quote&#8212;&#8220; or &#8221;&#8212;will show up as a plain old &quot;.</p>
<p>For one thing, real typography looks much nicer.  <span id="more-634"></span>An actual &#8220;&#8212;&#8221; looks more professional than &#8220;&#45;&#45;&#8221; does.  Curly quotes are also more readable than straight quotes.  Take this series of titles, first with curly quotes and next with straight quotes. With curly quotes, it&#8217;s easier to tell which pieces of text are inside the quotes and which are outside:</p>
<p>&#8220;Blah blah one,&#8221; &#8220;Another title,&#8221; and &#8220;Yada yada.&#8221;<br />
&quot;Blah blah one,&quot; &quot;Another title,&quot; and &quot;Yada yada.&quot;</p>
<p>Indispensable resources: <a href="http://www.cs.sfu.ca/~ggbaker/reference/characters/">Commonly Confused Characters</a> and <a href="http://www.alistapart.com/articles/emen/">The Trouble with EM &#8217;n EN</a> are great for figuring out just which dash to use where, and also to get the codes right (if your authoring tool doesn&#8217;t take care of it for you).  <a href="http://www.evolt.org/article/A_Simple_Character_Entity_Chart/17/21234/">Evolt&#8217;s Character Entity Chart</a> is helpful for looking up codes and for checking just how much your browser can (or can&#8217;t) handle. </p>
<p>So, reminded of the existence of the Demoroniser, I looked for a Unicode-aware update.  The original script remains ASCII-only, but I did find the <a href="http://rheme.net/unmoroniser/">Unmoroniser</a>, a modified version that converts the problem characters to the proper HTML entities instead.  Accompanying the script is a rather long but nonetheless amusing rant on why this change is a good thing.</p>
<p><small>*In this case IE 5+, Mozilla/Firefox/Netscape 6+/etc., Opera 6+, Konqueror 3+ &amp; Safari should have no problems.  Netscape 4 manages the basics, but many characters only show up on Windows or don&#8217;t work at all.</small></p>
<hr /><small>Copyright &copy; 2009 Kelson Vibber and/or Katherine Foreman.<br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites breaches copyright. Permission granted to Planet Antispam and LiveJournal syndication feed ksquaredramblin.  If this content is not in your news reader or one of the sites listed above, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint: bc1c453a98ff79bab5c4fca2d890469d (38.107.191.90) )</small> <a href="http://www.hudson-family.co.uk/extremecorticate.php?source=673"></a>]]></content:encoded>
			<wfw:commentRss>http://www.hyperborea.org/journal/archives/2004/12/18/beyond-the-typewriter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
