<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Indiscripts</title>
	
	<link>http://scripts.indisguise.org</link>
	<description>Angela's scripts archive</description>
	<pubDate>Tue, 25 Aug 2009 17:28:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Indiscripts" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>End of an Era</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/FlrWDrs73-w/</link>
		<comments>http://scripts.indisguise.org/2009/08/26/end-of-an-era/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 17:28:02 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Website]]></category>

		<category><![CDATA[changes]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=296</guid>
		<description><![CDATA[If anyone has been following this blog, it&#8217;s been rather obvious for a while now that there has been no updates, and script development seems to have stopped. And that&#8217;s true: I&#8217;ve not touched Enthusiast 4.x, or any other of my scripts, for a few months now. There are a lot of reasons for this, [...]]]></description>
			<content:encoded><![CDATA[<p>If anyone has been following this blog, it&#8217;s been rather obvious for a while now that there has been no updates, and script development seems to have stopped. And that&#8217;s true: I&#8217;ve not touched Enthusiast 4.x, or any other of my scripts, for a few months now. There are a lot of reasons for this, but now isn&#8217;t really the time to get into that.</p>
<p>I am moving over to a new host, a new main domain; and I&#8217;m consolidating my blogs. This change does affect my scripts, but hopefully not to an alarming degree: scripts.indisguise.org was merely a scripts archive way back when&#8211;and it&#8217;s going back to its roots now. I will be keeping the site up for some time yet, while I prepare the new archive and whatever documentation I can still keep around; but comments are now disabled on all pages.</p>
<p>It&#8217;s been a long night porting everything over to the new blog, so I will have to get into details at a later date; but <strong>please feel free to drop by <a href="http://whimsical.nu">Whimsical.Nu</a> and ask if you have any questions.</strong> I&#8217;d love to see you there. :)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=FlrWDrs73-w:crWzJIvpD4w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=FlrWDrs73-w:crWzJIvpD4w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=FlrWDrs73-w:crWzJIvpD4w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=FlrWDrs73-w:crWzJIvpD4w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=FlrWDrs73-w:crWzJIvpD4w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=FlrWDrs73-w:crWzJIvpD4w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=FlrWDrs73-w:crWzJIvpD4w:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=FlrWDrs73-w:crWzJIvpD4w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=FlrWDrs73-w:crWzJIvpD4w:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/FlrWDrs73-w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2009/08/26/end-of-an-era/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2009/08/26/end-of-an-era/</feedburner:origLink></item>
		<item>
		<title>Enthusiast 3.1.5 - Urgent Security Upgrade</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/uDlwVlEKjdE/</link>
		<comments>http://scripts.indisguise.org/2008/11/13/enthusiast-315-urgent-security-upgrade/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 14:23:39 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Enthusiast]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=288</guid>
		<description><![CDATA[A security vulnerability for Enthusiast 3 has been detected a few days back, and I&#8217;ve been notified just tonight about it. I do have a security fix up, and with that said &#8212; Enthusiast 3.1.5 is an important security upgrade, most especially if your server has register_globals on.
Please download the upgrade zip or the full [...]]]></description>
			<content:encoded><![CDATA[<p>A security vulnerability for Enthusiast 3 has been detected a few days back, and I&#8217;ve been notified just tonight about it. I do have a security fix up, and with that said &#8212; Enthusiast 3.1.5 is an important security upgrade, most especially if your server has <code>register_globals</code> on.</p>
<p>Please <a href="http://scripts.indisguise.org/download.php?download=270">download the upgrade zip</a> or <a href="http://scripts.indisguise.org/download.php?download=269">the full zip</a> if you prefer. The upgrade will be slightly more painful than the previous upgrades.</p>
<p>Before I get on with the upgrade instructions after the cut, I would like to take this time to say I apologize for the lack of updates and the sudden hiatus of Frontend Friday &#8212; I&#8217;ve moved houses and things have been rather crazy the past couple weeks. I haven&#8217;t forgotten this blog, I swear ;)</p>
<p>And now for the upgrade instructions. This is all in the upgrade zip, not to worry. :)</p>
<p><b>Important notice:</b> the upgrade is not as simple as the previous upgrades, hence the additional instructions. <em>Do not blindly overwrite your <code>config.php</code> file!</em></p>
<p><span id="more-288"></span>
<ol>
<li> Overwrite the following files on your Enthusiast 3 main installation using the files found in the upgrade zip:
<ul>
<li> <code>enth3/show_enthversion.php</code> </li>
<li> <code>enth3/show_join.php</code> </li>
<li> <code>enth3/show_joined.php</code> </li>
<li> <code>enth3/show_lostpass.php</code> </li>
<li> <code>enth3/show_owned.php</code> </li>
<li> <code>enth3/show_update.php</code> </li>
</ul>
</li>
<li> Open the <code>config.php</code> file found in this zip and fill in your database information. For each listing you own, you must overwrite your <code>config.php</code> file for that listing with this new configuration file. Please don&#8217;t forget to change the listing ID variable to the correct listing ID! </li>
<li> The following may be optional, depending on your setup, but highly recommended for forward compatibility and ensured security &#8212; you will need to update your code snippets to use the <acronym title="Hypertext PreProcessing">PHP</acronym> constant <code>ENTH_PATH</code> instead of the <acronym title="Hypertext PreProcessing">PHP</acronym> variable <code>$path</code>, like so:
<pre><code>&lt;?php include 'config.php';
$show_list = false;
include ENTH_PATH . 'show_joined.php'; ?&gt;</code></pre>
<p>The <code>install.txt</code> file included in the upgrade zip will contain all the new code snippets if you need to take a look. </li>
</ol>
<p>Please upgrade your Enthusiast installations as soon as possible. If you encounter issues with this upgrade, please feel free to post comments regarding the issues.</p>
<p><strong>Remember:</strong> You must also overwrite the <acronym title="configuration file for the script">config file</acronym> found in your collective. Basically, all configuration files except for the one inside your Enth3 administration panel will need to be updated.</p>
<p><strong>Remember #2:</strong> By &#8220;code snippets&#8221;, I mean all code snippets, including the collective code snippets, and the fanlisting code snippets. In that regards, it means that the <acronym title="configuration file for the script">config file</acronym> for your collective <em>and</em> each of your fanlistings will need to be updated. The process is similar to when you first set up your websites &#8212; take the <acronym title="configuration file for the script">config file</acronym> with the commented listing ID line and put it in the collective web root, and then take the same <acronym title="configuration file for the script">config file</acronym>, uncomment the listing ID line and plug in the correct ID, and put it in the listing web root. Rinse and repeat. :)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=uDlwVlEKjdE:7tb_R1R9zII:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=uDlwVlEKjdE:7tb_R1R9zII:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=uDlwVlEKjdE:7tb_R1R9zII:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=uDlwVlEKjdE:7tb_R1R9zII:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=uDlwVlEKjdE:7tb_R1R9zII:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=uDlwVlEKjdE:7tb_R1R9zII:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=uDlwVlEKjdE:7tb_R1R9zII:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=uDlwVlEKjdE:7tb_R1R9zII:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=uDlwVlEKjdE:7tb_R1R9zII:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/uDlwVlEKjdE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/11/13/enthusiast-315-urgent-security-upgrade/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/11/13/enthusiast-315-urgent-security-upgrade/</feedburner:origLink></item>
		<item>
		<title>FF: CSS Optimization Tips</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/nJEuZTk_-Ws/</link>
		<comments>http://scripts.indisguise.org/2008/09/12/ff-css-optimization-tips/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 05:00:10 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Frontend Friday]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[alphaimageloader filter]]></category>

		<category><![CDATA[cascading stylesheets]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[website optimization]]></category>

		<category><![CDATA[website performance]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=281</guid>
		<description><![CDATA[A lot can be gained in terms of website performance by the wise use of cascading stylesheets and styles on the website, and these are relatively easy things to accomplish. They revolve around styles and stylesheet placement.
Stylesheets at the top
One important rule is placing stylesheets at the top, within the HEAD tags. While most browsers [...]]]></description>
			<content:encoded><![CDATA[<p><em>A lot can be gained in terms of website performance by the wise use of cascading stylesheets and styles on the website</em>, and these are relatively easy things to accomplish. They revolve around styles and stylesheet placement.</p>
<h4>Stylesheets at the top</h4>
<p>One important rule is placing stylesheets at the top, within the <code>HEAD</code> tags. While most browsers will load all styles eventually regardless of placement on the page, <em>putting styles in the <code>HEAD</code> helps the page load progressively, giving users visual feedback</em> that hey, something is loading. One of the worst things that could happen if your styles aren&#8217;t in the <code>&lt;head&gt;</code> tag is that the page does load&#8211;but there are <a href="http://www.bluerobot.com/web/css/fouc.asp/">no styles attached to your <acronym title="HyperText Markup Language">HTML</acronym> elements</a>, and then the page flickers to include the styles. It&#8217;s like going out without your clothes on, and then going back in to put them on.</p>
<h4>Externalizing stylesheets</h4>
<p>Styles can be included in the page source code itself in two ways: either within <code>&lt;style&gt;...&lt;/style&gt;</code> tags, or within the <code>style</code> attribute of an <acronym title="HyperText Markup Language">HTML</acronym> element. These are the &#8220;easiest&#8221; to do, however, <em>it&#8217;s better if you put style rules in an external <code>.css</code> file</em>, for a number of reasons:</p>
<ol>
<li><em><acronym title="Cascading Style Sheets">CSS</acronym> files can be cached for users, and subsequent returns to your page serves the <acronym title="Cascading Style Sheets">CSS</acronym> from the user&#8217;s cache instead of asking your server for a copy for download.</em> Your page file size is smaller since it doesn&#8217;t have style rules associated with it, and the external stylesheet itself isn&#8217;t downloaded on subsequent visits if it&#8217;s stored in the visitor&#8217;s cache.</li>
<li><em>Other pages on your website can reuse this same external stylesheet.</em> The optimization gains to this obviously means that all your pages will have a smaller size since there aren&#8217;t any styles on the source code itself. The <em>development</em> gains, however, are even better: one change in one file can update all your styles for your pages.</li>
</ol>
<p>If your website uses a lot of inline styles, it may be quite a challenge to move them out to external stylesheets. It will usually mean a lot of editing and updating of files, the complexity of which depends on how fragmented your styles are.</p>
<h4>Linking stylesheets instead of importing</h4>
<p>There are two ways of including external stylesheets: via the use of the <code>&lt;link&gt;</code> tag, or <code>@import</code>. The former links your stylesheet to your page, and the latter imports one stylesheet into another. The two ways look like below:</p>
<pre><code>&lt;link href="styles.css" type="text/css"&gt;
&lt;style type="text/css"&gt;@import <acronym title="Uniform Resource Locator">URL</acronym>("styles.css");&lt;/style&gt;</code></pre>
<p><code>@import</code> can be used to hide styles from earlier browsers, but <em>in Internet Explorer, it behaves the same as using <code>&lt;link&gt;</code> at the bottom of the page</em>&#8211;which pretty much negates the above best practices I&#8217;ve talked about.</p>
<h4><acronym title="Cascading Style Sheets">CSS</acronym> expressions are evil</h4>
<p>Okay, so Internet Explorer is quirky. Sometimes <acronym title="Cascading Style Sheets">CSS</acronym> expressions seem to be the only way to fix it&#8211;I&#8217;ve seen a couple of <acronym title="Internet Explorer">IE</acronym> fixes/hacks that require <acronym title="Cascading Style Sheets">CSS</acronym> expressions. They look similar to:</p>
<pre><code>width:expression(document.body.clientWidth &gt; 799? "800px": "auto" );</code></pre>
<p><em>Unfortunately, they&#8217;re run pretty much every time the user interacts with the page: they&#8217;re run on page render, on browser resize, on page scroll, or even if the mouse moves over the page.</em> If one needs to dynamically set styles, use JavaScript. If you really, really need to use an expression, use one that, in the end, overrides the style declaration so that it&#8217;s only run once.</p>
<h4><acronym title="Internet Explorer">IE</acronym> filters are also evil</h4>
<p>The most frequent use nowadays of <a href="http://www.ssi-developer.net/css/visual-filters.shtml"><acronym title="Internet Explorer">IE</acronym> <acronym title="Cascading Style Sheets">CSS</acronym> filters</a> are to fix <acronym title="Portable Network Graphics">PNG</acronym> images in Internet Explorer 6 via the <a href="http://msdn.microsoft.com/en-us/library/ms532969.aspx">AlphaImageLoader filter</a>:</p>
<pre><code>&lt;div style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='pngimage.png',sizingMethod='scale');"&gt;&lt;/div&gt;</code></pre>
<p><em>However, this filter stops rendering and freezes the browser while the image is being downloaded</em>, and since it&#8217;s done per element and not per image, each time this element shows up in the browser, you&#8217;ll get a bit of a freeze. It&#8217;s better to gracefully degrade to using PNG8 which works fine in IE6. If there&#8217;s no way out of using the AlphaImageLoader filter, user the underscore hack (<code>_filter</code>) or other IE6-only hacks to keep the style rule limited to IE6 users.</p>
<p>Good luck with optimizing your stylesheets! You can take a look at the other posts in this optimization series below:</p>
<ol>
<li><a href="http://scripts.indisguise.org/2008/08/29/ff-website-optimization/">Website Optimization</a></li>
<li><a href="http://scripts.indisguise.org/2008/09/05/ff-minimizing-http-requests/">Minimizing <acronym title="HyperText Transfer Protocol">HTTP</acronym> Requests</a></li>
</ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=nJEuZTk_-Ws:eDhHWWIyKiY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=nJEuZTk_-Ws:eDhHWWIyKiY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=nJEuZTk_-Ws:eDhHWWIyKiY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=nJEuZTk_-Ws:eDhHWWIyKiY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=nJEuZTk_-Ws:eDhHWWIyKiY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=nJEuZTk_-Ws:eDhHWWIyKiY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=nJEuZTk_-Ws:eDhHWWIyKiY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=nJEuZTk_-Ws:eDhHWWIyKiY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=nJEuZTk_-Ws:eDhHWWIyKiY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/nJEuZTk_-Ws" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/09/12/ff-css-optimization-tips/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/09/12/ff-css-optimization-tips/</feedburner:origLink></item>
		<item>
		<title>FF: Minimizing HTTP Requests</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/e3_sjrWiFdA/</link>
		<comments>http://scripts.indisguise.org/2008/09/05/ff-minimizing-http-requests/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 04:00:10 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Frontend Friday]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[css sprites]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[http requests]]></category>

		<category><![CDATA[images]]></category>

		<category><![CDATA[optimization]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[website optimization]]></category>

		<category><![CDATA[website performance]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=273</guid>
		<description><![CDATA[As I mentioned last week, I&#8217;ll be talking about a few of my favorite techniques for making websites load faster&#8211;the rules and practices that I find interesting and intriguing as a web developer obsessed with a dash of challenge. ;)
One of the best ways to speed up website performance is by reducing the number of [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://scripts.indisguise.org/2008/08/29/ff-website-optimization/">I mentioned last week</a>, I&#8217;ll be talking about a few of my favorite techniques for making websites load faster&#8211;the rules and practices that I find interesting and intriguing as a web developer obsessed with a dash of challenge. ;)</p>
<p><strong>One of the best ways to speed up website performance is by reducing the number of <acronym title="HyperText Transfer Protocol">HTTP</acronym> requests the website makes</strong> &#8212; it&#8217;s the first rule in <a href="http://developer.yahoo.com/performance/rules.html">YDN&#8217;s Best Practices for Speeding up your Web Site</a> and <a href="http://developer.yahoo.com/yslow/">YSlow</a>, which is arranged according to what technique would have the most impact on your page&#8217;s performance. This rule can be quite tedious to do when optimizing a current website/layout, so the best case, really, is to start a project with this in mind.</p>
<p>The article explains it well, so I&#8217;ll just quote them (italics mine):</p>
<blockquote><p>80% of the end-user response time is spent on the front-end. <em>Most of this time is tied up in downloading all the components in the page</em>: images, stylesheets, scripts, Flash, etc. Reducing the number of components in turn reduces the number of <acronym title="HyperText Transfer Protocol">HTTP</acronym> requests required to render the page. This is the key to faster pages.</p></blockquote>
<p>The use of <a href="http://alistapart.com/articles/sprites"><acronym title="Cascading Style Sheets">CSS</acronym> sprites</a> has been around for quite a while now, and is the best way to reduce the number of <acronym title="HyperText Transfer Protocol">HTTP</acronym> requests to your server. A <acronym title="Cascading Style Sheets">CSS</acronym> sprite is basically multiple images combined into one single, larger image, which is then positioned into your <acronym title="HyperText Markup Language">HTML</acronym> elements via <acronym title="Cascading Style Sheets">CSS</acronym>.</p>
<p>Can you imagine the conversation between the browser and the server for either case?</p>
<blockquote><p><em>Browser:</em> Give me the background for the Index menu item.<br />
<em>Server:</em> Here you go, it will take around 1 second.<br />
<em>Browser:</em> While I&#8217;m getting that, can you also get me the background for the Blog menu item?<br />
<em>Server:</em> Here it is, another second for that.<br />
<em>Browser:</em> And let&#8217;s not forget the background for the About menu item, too.<br />
<em>Server:</em> Of course, here you go, you&#8217;ll get it in a second.<br />
&#8230;</p></blockquote>
<p>As opposed to when you use a <acronym title="Cascading Style Sheets">CSS</acronym> sprite for your menu items:</p>
<blockquote><p><em>Browser:</em> Give me the background image for the navigation menu items.<br />
<em>Server:</em> Here you go, it will take a bit less than 2 seconds.</p></blockquote>
<p>Short and sweet.</p>
<p>Note, however, that <em>if your visitors are predominantly dialup users, this might not be a good rule for you to follow</em> &#8212; mostly because you really can&#8217;t stuff any more data into that pipe than that pipe can handle. It <em>will</em> take longer for them to download the image, which will affect their perception of the website, as opposed to an image that gets downloaded faster and shows up on their browser faster. Remember those old-school rules about slicing header images? That&#8217;s basically rooted in that scenario: dialup can only download so much, so give them a couple <em>parts</em> of the header to download and see immediately. What’s best for your website depends on your target visitors.</p>
<p>There are a couple of <acronym title="Cascading Style Sheets">CSS</acronym> sprite tutorials and generators around:</p>
<ul>
<li><a href="http://www.csssprites.com/"><acronym title="Cascading Style Sheets">CSS</acronym> Sprites Generator</a> - a simple generator, giving the sprites in <acronym title="Portable Network Graphics">PNG</acronym> and GIF and giving background positions for each image</li>
<li><a href="http://spritegen.website-performance.org/">Website Performance&#8217;s <acronym title="Cascading Style Sheets">CSS</acronym> Sprite Generator</a> - contains a lot more extra configuration options for sprite generation if you want finer control, allows you to choose what image format to generate</li>
<li><a href="http://www.alistapart.com/articles/sprites">A List Apart&#8217;s <em><acronym title="Cascading Style Sheets">CSS</acronym> Sprites: Image Slicing&#8217;s Kiss of Death</em> article</a></li>
<li><a href="http://css-tricks.com/css-sprites-what-they-are-why-theyre-cool-and-how-to-use-them/"><acronym title="Cascading Style Sheets">CSS</acronym> Sprites: What They Are, Why They&#8217;re Cool, and How To Use Them</a></li>
<li><a href="http://stylemeltdown.com/2007/10/22/image-sprite-navigation-with-css/">Image Sprite Navigation With <acronym title="Cascading Style Sheets">CSS</acronym></a></li>
</ul>
<p>&#8230;to name a few. If you&#8217;re just getting started with spriting, I&#8217;d suggest you create your sprite manually in your preferred image editing application before trying one of the generators and work on something simple like navigation or lists with icons for the first few times. This should give you a better grasp of what happens with a sprite.</p>
<p>Something to keep in mind: <em>sprites will add complexity to maintaining your design.</em> Adding another image to an existing sprite, updating your <acronym title="Cascading Style Sheets">CSS</acronym> code to reflect that (and possibly impacting current <acronym title="Cascading Style Sheets">CSS</acronym> rules on other images using that same sprite) is slightly more time-consuming than just uploading a new image and a new <acronym title="Cascading Style Sheets">CSS</acronym> rule to use that single image. And of course, the more images on a single sprite, the more difficult it is to keep that image and the accompanying <acronym title="Cascading Style Sheets">CSS</acronym> rules maintainable. One of the ways to combat this is to organize sprites according to use. As opposed to one &uuml;ber-sprite containing everything and the dust on the coffee table, a sprite for navigation and a sprite for list items separately is easier to maintain and organize.</p>
<p>Good luck with minimizing your <acronym title="HyperText Transfer Protocol">HTTP</acronym> requests!</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=e3_sjrWiFdA:6BEZXzDStYE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=e3_sjrWiFdA:6BEZXzDStYE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=e3_sjrWiFdA:6BEZXzDStYE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=e3_sjrWiFdA:6BEZXzDStYE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=e3_sjrWiFdA:6BEZXzDStYE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=e3_sjrWiFdA:6BEZXzDStYE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=e3_sjrWiFdA:6BEZXzDStYE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=e3_sjrWiFdA:6BEZXzDStYE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=e3_sjrWiFdA:6BEZXzDStYE:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/e3_sjrWiFdA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/09/05/ff-minimizing-http-requests/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/09/05/ff-minimizing-http-requests/</feedburner:origLink></item>
		<item>
		<title>FF: Website optimization</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/WZJQarcYhtc/</link>
		<comments>http://scripts.indisguise.org/2008/08/29/ff-website-optimization/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 04:00:15 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Frontend Friday]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[firebug]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[website optimization]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=226</guid>
		<description><![CDATA[One of the things I&#8217;ve realized when I started working for Yahoo! is the importance and &#8220;interesting-ness&#8221; of website performance optimization. In an industry where things can get repetitive (how many &#60;p&#62; tags can you code in one day?), the challenges brought about by ensuring a website is properly optimized in terms of performance and [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things I&#8217;ve realized when I started working for Yahoo! is the importance and &#8220;interesting-ness&#8221; of website performance optimization. In an industry where things can get repetitive (how many <code>&lt;p&gt;</code> tags can you code in one day?), the challenges brought about by ensuring a website is properly optimized in terms of performance and page load is welcome and quite engrossing.</p>
<p><em>With high-speed Internet, a lot of times we tend to forget about the size of the files we put up on the Internet on our websites, much less worry about how long someone takes to load our website.</em> It&#8217;s easy to forget, but when you&#8217;re on a crappy dialup or using your mobile phone as a model (er, like me while transitioning houses!), or you&#8217;re, say, a trouble-checker for one of the <a href="http://thefanlistings.org/">fanlisting</a> <a href="http://animefanlistings.org/">networks</a> out there, the wait for websites to load can take its toll, and feel painful on the pocket.</p>
<p>Two reasons why optimizing websites &#8212; even if you&#8217;re not Yahoo! &#8212; are:</p>
<ol>
<li> <em>You keep visitors longer</em>, because the wait time is less, and people like things faster than you can chug them out. It&#8217;s all about instant gratification these days. </li>
<li> <em>You save on bandwidth!</em> Something smaller by even 10kb can mean megs or gigs of bandwidth savings in the long run. If you pay for hosting and you have a fairly popular website, this is a big deal. </li>
</ol>
<p>A lot of this work is done on the frontend side of things. <em>After all, once the server has cobbled together the page, the bulk of serving the page code and objects rely on the user&#8217;s connection.</em> The <acronym title="HyperText Markup Language">HTML</acronym> code is just one part of what&#8217;s served out to people, but images, stylesheets and other media are downloaded all after the source is available. And these are the things that users see and perceive. The image below shows around a third of Firebug&#8217;s Network tab on one of my websites:</p>
<p><a href="http://scripts.indisguise.org/wp-content/uploads/2008/08/firebug_network.png"><img src="http://scripts.indisguise.org/wp-content/uploads/2008/08/firebug_network.png" alt="" title="Seasonal Plume under Firebug\&#039;s Network panel" width="500" height="295" class="alignnone size-full wp-image-268" /></a></p>
<p><em>Building and serving out the page takes up only 715ms. But the rest of the objects on the page are then loaded, and I end up with a 4.08-second load time.</em> That isn&#8217;t so bad, but all the rest of the objects on that page form the bulk of the load time that users have to endure. If we save a few milliseconds from each object, overall we can get a snappier load time for the whole page.</p>
<p>In <a href="http://www.websiteoptimization.com/speed/tweak/psychology-web-performance/">The Psychology of Web Performance</a>, Andrew King highlight a few interesting results of bloated load times, in case you&#8217;re still not convinced:</p>
<ul>
<li>
<blockquote>Google found that moving from a 10-result page loading in 0.4 seconds to a 30-result page loading in 0.9 seconds decreased traffic and ad revenues by 20% (Linden 2006).</p></blockquote>
</li>
<li>
<blockquote>Tests at Amazon revealed similar results: every 100 <acronym title="Microsoft">MS</acronym> increase in load time of Amazon.com decreased sales by 1% (Kohavi and Longbotham 2007).</p></blockquote>
</ul>
<p>Over the next Frontend Fridays, I&#8217;ll talk a little more about some ways to optimize frontend performance. I&#8217;ll mostly be going through <a href="http://developer.yahoo.com/performance/">the rules Yahoo! has published</a>, but I will probably cherry-pick and talk about the ones I like most, the ones I like doing. Stay tuned :)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WZJQarcYhtc:dgR86jX7hLg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WZJQarcYhtc:dgR86jX7hLg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WZJQarcYhtc:dgR86jX7hLg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WZJQarcYhtc:dgR86jX7hLg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WZJQarcYhtc:dgR86jX7hLg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WZJQarcYhtc:dgR86jX7hLg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WZJQarcYhtc:dgR86jX7hLg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WZJQarcYhtc:dgR86jX7hLg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WZJQarcYhtc:dgR86jX7hLg:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/WZJQarcYhtc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/08/29/ff-website-optimization/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/08/29/ff-website-optimization/</feedburner:origLink></item>
		<item>
		<title>FF: Another look at skinning websites</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/DXWZw-lF3fA/</link>
		<comments>http://scripts.indisguise.org/2008/08/22/ff-another-look-at-skinning-websites/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 04:00:31 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Frontend Friday]]></category>

		<category><![CDATA[Web Design]]></category>

		<category><![CDATA[branding]]></category>

		<category><![CDATA[themes]]></category>

		<category><![CDATA[website themes]]></category>

		<category><![CDATA[website-skinning]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=258</guid>
		<description><![CDATA[I&#8217;ve always liked themes and website skins, the type where visitors can change the look of a website using a switcher. I even made a script for it. I think they&#8217;re a fabulous tool for making a website interactive, and giving users the power of choosing how they want to experience the website in question. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always liked themes and website skins, the type where visitors can change the look of a website using a switcher. <a href="http://scripts.indisguise.org/siteskin/">I even made a script for it.</a> I think they&#8217;re a fabulous tool for making a website interactive, and giving users the power of choosing how they want to experience the website in question. This is most useful and prevalent in forums and boards, where users are many and varied: some prefer reading in dark environments, and some prefer lighter ones.</p>
<p><strong>But of late I&#8217;ve been thinking that theming and skinning websites isn&#8217;t all that great,</strong> especially viewed in certain conditions. To clarify: I&#8217;m talking about a theme or skin being <em>more</em> than a color-only difference between themes/skins.</p>
<p><em>I realized that one of the drawbacks for me is the false sense of &#8220;interactivity&#8221; in the website.</em> Understand, the websites I&#8217;ve skinned are all smallish fansites and fanlistings, containing minimal updates. Skinning has become one of the most popular &#8220;interactive&#8221; features of a fanlisting. Unfortunately, it&#8217;s lulled me into feeling that it&#8217;s &#8220;enough&#8221;. Which is a bad place to be for anyone who owns a website. More content and other forms of interactivity should be the focus; there are plenty of other ways to do that.</p>
<p><em>It&#8217;s lulled me into keeping old layouts around.</em> I&#8217;m ashamed to say a couple of them are half-assed layouts that are there because the more skins there are, the nicer the website is! And, why skin a website when you only have two skins? So keep them all and give the users choice. Uhm, wrong tactic there. Skin retirement should be done semi-regularly, to keep layouts fresh and up-to-date.</p>
<p><em>I also can&#8217;t help but feel that there <strong>has</strong> to be some brand dilution there somewhere,</em> unless skinning is carefully managed, of course. You have a subset of users using one skin, another subset using another, and unless these skins are quite similar (like the really nifty Day/Night skins I&#8217;ve seen crop up recently) the users of skin 1 will tend to approach the website differently from users of skin 2. Websites who&#8217;ll have these problems will probably be few and far between, but I can&#8217;t help but feel that this is a valid concern.</p>
<p>I certainly feel that skinning is one aspect of website interactivity that one should take a look at when planning a website, but shouldn&#8217;t be taken lightly. It adds a bit more complexity to managing the website and the users of the website, but when done well, it&#8217;s a fun feature for visitors. I still can&#8217;t get over the Day/Night skins some websites use; if it would work for one of my websites, I&#8217;m soooo there! ;)</p>
<p>But for now, I&#8217;m steering clear of skinning until I&#8217;ve real reason to use it.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=DXWZw-lF3fA:ZHwabdl6cQs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=DXWZw-lF3fA:ZHwabdl6cQs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=DXWZw-lF3fA:ZHwabdl6cQs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=DXWZw-lF3fA:ZHwabdl6cQs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=DXWZw-lF3fA:ZHwabdl6cQs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=DXWZw-lF3fA:ZHwabdl6cQs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=DXWZw-lF3fA:ZHwabdl6cQs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=DXWZw-lF3fA:ZHwabdl6cQs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=DXWZw-lF3fA:ZHwabdl6cQs:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/DXWZw-lF3fA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/08/22/ff-another-look-at-skinning-websites/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/08/22/ff-another-look-at-skinning-websites/</feedburner:origLink></item>
		<item>
		<title>Yahoo! PH Developers’ Evening</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/VMoJz4NPBBE/</link>
		<comments>http://scripts.indisguise.org/2008/08/19/yahoo-ph-developers-evening/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 06:02:17 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Yahoo!]]></category>

		<category><![CDATA[networking]]></category>

		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=253</guid>
		<description><![CDATA[I flew home to the Philippines on Thursday for the Developers&#8217; Evening with Yahoo! Philippines (which I blogged about here), and met quite a number of Philippine web developers and chatted up a couple of friends in the web industry.

The event is basically a networking session with Philippine developers, with a bit of overview on [...]]]></description>
			<content:encoded><![CDATA[<p>I flew home to the Philippines on Thursday for the Developers&#8217; Evening with Yahoo! Philippines (which I blogged about <a href="http://www.techblog.ph/2008/08/08/a-developers-evening-with-yahoo-philippines/">here</a>), and met quite a number of Philippine web developers and chatted up a couple of friends in the web industry.</p>
<p><a href="http://flickr.com/photos/jemseow/2764969922/"><img src="http://farm4.static.flickr.com/3227/2764969922_1ce6504188_m.jpg" width="240" height="180" alt="Sharing the the Yahoo! Developer Network with RP developers - photo by Jem Seow" class="alignleft size-full" align="left"></a></p>
<p>The event is basically a networking session with Philippine developers, with a bit of overview on what <a href="http://developer.yahoo.com/">YDN</a> is: a free resource for web developers that contains not just information, documentation, and tutorials on the various APIs Yahoo! has, but also a couple of tools and articles to help developers (like <a href="http://developer.yahoo.com/yui/">YUI</a> &lt;3).</p>
<p>There were lots of shop talk, which was definitely fun and a lot more of the same would be fabulous. :D I&#8217;ve never really attended networking sessions before, as I&#8217;m generally a bit of an introvert when it comes to approaching people and introducing myself, but the night went quite well and I had a great time. I hope everyone else who was part of it felt the same. :)</p>
<p>As I had a pretty busy week last week due to the event preparations and travel, I hadn&#8217;t been able to work on last week&#8217;s <a href="http://scripts.indisguise.org/category/frontend-friday/">Frontend Friday</a>! Sorry about that, but I promise I&#8217;ll have something this week, and will also prep for next week&#8217;s FF (I will be Internet-less next week (save for when I&#8217;m at the office) due to moving out!).</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=VMoJz4NPBBE:u-kpR4GrfRI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=VMoJz4NPBBE:u-kpR4GrfRI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=VMoJz4NPBBE:u-kpR4GrfRI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=VMoJz4NPBBE:u-kpR4GrfRI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=VMoJz4NPBBE:u-kpR4GrfRI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=VMoJz4NPBBE:u-kpR4GrfRI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=VMoJz4NPBBE:u-kpR4GrfRI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=VMoJz4NPBBE:u-kpR4GrfRI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=VMoJz4NPBBE:u-kpR4GrfRI:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/VMoJz4NPBBE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/08/19/yahoo-ph-developers-evening/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/08/19/yahoo-ph-developers-evening/</feedburner:origLink></item>
		<item>
		<title>Frontend Friday: Too much AJAX</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/WNg9dQ3wLPI/</link>
		<comments>http://scripts.indisguise.org/2008/08/08/frontend-friday-too-much-ajax/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 06:00:00 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Frontend Friday]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[graceful degradation]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=247</guid>
		<description><![CDATA[Alex asked in last week&#8217;s Frontend Friday:
I just wanted to know how you decide how much AJAX is too much AJAX? You don’t seem to use much (if any) on this website.
It&#8217;s a good question, but the answer isn&#8217;t too straightforward: it will always depend on a large number of factors. For me, an indication [...]]]></description>
			<content:encoded><![CDATA[<p>Alex <a href="http://scripts.indisguise.org/2008/08/01/frontend-friday-got-questions/#comment-52346">asked in last week&#8217;s Frontend Friday</a>:</p>
<blockquote><p>I just wanted to know how you decide how much <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> is too much <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>? You don’t seem to use much (if any) on this website.</p></blockquote>
<p>It&#8217;s a good question, but the answer isn&#8217;t too straightforward: it will always depend on a large number of factors. For me, <em>an indication of a developer/team getting too <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>-happy would be when the site becomes unusable when JavaScript is turned off or isn&#8217;t working.</em> For example, </p>
<ol>
<li>a website that loads all (or most) of its content via <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>, therefore rendering the page content-less without JavaScript; or </li>
<li>a website whose navigation is inaccessible without JavaScript.</li>
</ol>
<p>JavaScript should enhance websites and applications, no doubt about that. Most, if not all, of the well-loved web apps of today are due to the snazzy-ness of <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>. But we can&#8217;t always rely on JavaScript being present: even if users have it turned on, spotty connections and unexpected data returns can result in JavaScript being pretty much nonexistent. Progressive enhancement and/or graceful degradation should be important when working with JavaScript&#8211;whether or not you&#8217;re doing asynchronous calls or not.</p>
<p><em>However, like I said, the answer isn&#8217;t straightforward. Some applications really do rely on the existence of JavaScript, and for good reasons.</em> Graceful degradation can be prohibitively difficult when you&#8217;re dealing with some specialized web applications, like mail: <a href="http://mail.yahoo.com">Yahoo! Mail</a> and <a href="http://mail.google.com">GMail</a> come to mind. User interactions with both of these are so fine-tuned and uses a lot of convoluted interlocking parts, and degrading gracefully would be a pain. That&#8217;s why both apps have a no-JavaScript version as well (Mail Classic and Basic <acronym title="HyperText Markup Language">HTML</acronym> view, respectively).</p>
<p>As for the second part of the question&#8211;no, Indiscripts doesn&#8217;t use any <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> :) Mostly because I don&#8217;t see a need for it, or the &#8220;need&#8221; to use <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> is lower than the time I have budgeted for designing and coding up my tech blog ;)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WNg9dQ3wLPI:VaBL1H2vHFE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WNg9dQ3wLPI:VaBL1H2vHFE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WNg9dQ3wLPI:VaBL1H2vHFE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WNg9dQ3wLPI:VaBL1H2vHFE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WNg9dQ3wLPI:VaBL1H2vHFE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WNg9dQ3wLPI:VaBL1H2vHFE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WNg9dQ3wLPI:VaBL1H2vHFE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=WNg9dQ3wLPI:VaBL1H2vHFE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=WNg9dQ3wLPI:VaBL1H2vHFE:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/WNg9dQ3wLPI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/08/08/frontend-friday-too-much-ajax/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/08/08/frontend-friday-too-much-ajax/</feedburner:origLink></item>
		<item>
		<title>Frontend Friday: Got questions?</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/wz9cD7kCNK8/</link>
		<comments>http://scripts.indisguise.org/2008/08/01/frontend-friday-got-questions/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 07:03:13 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Frontend Friday]]></category>

		<category><![CDATA[free for all]]></category>

		<category><![CDATA[questions]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=242</guid>
		<description><![CDATA[For this week, I&#8217;m doing a free-for-all: if you have something you&#8217;re curious about in terms of HTML, CSS and JavaScript, post your question in the comments and I&#8217;ll cover your question in future Frontend Fridays. Nothing is &#8220;too simple&#8221;, so feel free to post questions (please try to keep clear of Enthusiast-only questions though! [...]]]></description>
			<content:encoded><![CDATA[<p>For this week, I&#8217;m doing a free-for-all: <em>if you have something you&#8217;re curious about in terms of <acronym title="HyperText Markup Language">HTML</acronym>, <acronym title="Cascading Style Sheets">CSS</acronym> and JavaScript, post your question in the comments and I&#8217;ll cover your question in future Frontend Fridays.</em> Nothing is &#8220;too simple&#8221;, so feel free to post questions (please try to keep clear of Enthusiast-only questions though! ;) ).</p>
<p>The reason for this (rather abrupt) post is that due to my rather freaky schedule this week (I&#8217;m moving by end of the month, and we&#8217;re hopefully signing a tenancy agreement this coming Monday, <em>finally</em>), I wasn&#8217;t able to prepare for this week&#8217;s Frontend Friday. I had a draft in the works but unfortunately, it needs more research than I have time for this week.</p>
<p>Let me know in the comments! :)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=wz9cD7kCNK8:CzVdZ3jJevA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=wz9cD7kCNK8:CzVdZ3jJevA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=wz9cD7kCNK8:CzVdZ3jJevA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=wz9cD7kCNK8:CzVdZ3jJevA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=wz9cD7kCNK8:CzVdZ3jJevA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=wz9cD7kCNK8:CzVdZ3jJevA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=wz9cD7kCNK8:CzVdZ3jJevA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=wz9cD7kCNK8:CzVdZ3jJevA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=wz9cD7kCNK8:CzVdZ3jJevA:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/wz9cD7kCNK8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/08/01/frontend-friday-got-questions/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/08/01/frontend-friday-got-questions/</feedburner:origLink></item>
		<item>
		<title>The Survey for People Who Make Websites</title>
		<link>http://feedproxy.google.com/~r/Indiscripts/~3/IcmlOQGa71M/</link>
		<comments>http://scripts.indisguise.org/2008/07/30/the-survey-for-people-who-make-websites/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 02:32:46 +0000</pubDate>
		<dc:creator>Angela</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Web Design]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[a list apart]]></category>

		<category><![CDATA[surveys]]></category>

		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://scripts.indisguise.org/?p=237</guid>
		<description><![CDATA[A List Apart has another survey for people in the web industry, specifically for people who make websites. Last year, they launched a similar survey, focusing on finding out common job titles, salaries, and work situations in the field; and this year&#8217;s survey aims to correct mistakes in the one made last year:
This year’s survey [...]]]></description>
			<content:encoded><![CDATA[<p><strong>A List Apart <a href="http://alistapart.com/articles/survey2008">has another survey</a> for people in the web industry, specifically for people who make websites.</strong> Last year, they launched a similar survey, focusing on finding out common job titles, salaries, and work situations in the field; and this year&#8217;s survey aims to correct mistakes in the one made last year:</p>
<blockquote><p>This year’s survey corrects many of last year’s mistakes, with more detailed and numerous questions for freelance contractors and owners of (or partners in) small web businesses. There are also better international categories, and many other improvements recommended by those who took the survey last year.</p></blockquote>
<p>I took it. Have you taken it already?</p>
<p><a href="http://alistapart.com/articles/survey2008"><img src="http://img294.imageshack.us/img294/971/itookthe2008surveyhb7.gif" width="180" height="46"></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Indiscripts?a=IcmlOQGa71M:wa5h47RbORs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Indiscripts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=IcmlOQGa71M:wa5h47RbORs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=IcmlOQGa71M:wa5h47RbORs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=IcmlOQGa71M:wa5h47RbORs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=IcmlOQGa71M:wa5h47RbORs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=IcmlOQGa71M:wa5h47RbORs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=IcmlOQGa71M:wa5h47RbORs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Indiscripts?a=IcmlOQGa71M:wa5h47RbORs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Indiscripts?i=IcmlOQGa71M:wa5h47RbORs:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Indiscripts/~4/IcmlOQGa71M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://scripts.indisguise.org/2008/07/30/the-survey-for-people-who-make-websites/feed/</wfw:commentRss>
		<feedburner:origLink>http://scripts.indisguise.org/2008/07/30/the-survey-for-people-who-make-websites/</feedburner:origLink></item>
	</channel>
</rss>
