<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Never Good Enough: Speed (pt 1/3)</title>
	<atom:link href="http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/feed/" rel="self" type="application/rss+xml" />
	<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/</link>
	<description>Where Africa and Technology Collide!</description>
	<lastBuildDate>Thu, 24 May 2012 10:37:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Ben Colmery</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-158973</link>
		<dc:creator>Ben Colmery</dc:creator>
		<pubDate>Wed, 30 Sep 2009 22:54:23 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-158973</guid>
		<description>I&#039;m completely with you on this issue. From the standpoint of trying to get grants from online funding organizations for development in low bandwidth areas of the world, I have gone bonkers over some of this stuff. To the point where it prompted me to write this post as a guide to thinking about the issue, from the perspective of funding organizations. &lt;a href=&quot;http://aimd.wordpress.com/2009/07/27/web-design-for-donor-organizations-for-low-bandwidth&quot; rel=&quot;nofollow&quot;&gt;Web Design for Donor Organizations for Low Bandwidth&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>I&#8217;m completely with you on this issue. From the standpoint of trying to get grants from online funding organizations for development in low bandwidth areas of the world, I have gone bonkers over some of this stuff. To the point where it prompted me to write this post as a guide to thinking about the issue, from the perspective of funding organizations. <a href="http://aimd.wordpress.com/2009/07/27/web-design-for-donor-organizations-for-low-bandwidth" rel="nofollow">Web Design for Donor Organizations for Low Bandwidth</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Louis</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-156273</link>
		<dc:creator>Louis</dc:creator>
		<pubDate>Thu, 17 Sep 2009 06:16:58 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-156273</guid>
		<description>i say we should all just move to HTML5 i know this does not solve the latency issues but gives developers more flexibility in dealing with the bandwidth and latency issues and probably improves the user experience too.</description>
		<content:encoded><![CDATA[<p>i say we should all just move to HTML5 i know this does not solve the latency issues but gives developers more flexibility in dealing with the bandwidth and latency issues and probably improves the user experience too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Rafter</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-156139</link>
		<dc:creator>Jeff Rafter</dc:creator>
		<pubDate>Wed, 16 Sep 2009 14:50:07 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-156139</guid>
		<description>@Alex Low earth orbit satellites and WiMax might have an impact sooner, at least in Malawi. Last year there was a lot of talk about the possibility of tracking satellites to reduce latency... but like you said, equipment purchase is expensive. I thought I should bring up one more point which is the fact that HTTP operates over TCP/IP which is a lossless protocol and therefore requires acknowledgment of  packet receipt. To achieve this TCP/IP requires a packet buffer to be kept to hold onto packets until they are acknowledged (which we know takes a long time). The bad part: the default packet buffer is only 4K. Doing the math this means that you can only achieve ~64Kbps max when using TCP/IP over Sat. Fwiw, Skype generally uses UDP sockets (and you can tell when you get a direct TCP/IP connection because the call jumps). Some of this is solvable but it won&#039;t be solved for a while.

More reading here:
http://www.isoc.org/inet96/proceedings/g1/g1_3.htm

This means that my solution does have serious limits and caching will win in repeat cases, hands down. @Christian&#039;s .htaccess is great for that and also enables HTTP compression which is even better. Just make sure you have mod_deflate enabled so that his .htaccess can take advantage of it (which based on your speedup for initial visits, I am guessing you do).</description>
		<content:encoded><![CDATA[<p>@Alex Low earth orbit satellites and WiMax might have an impact sooner, at least in Malawi. Last year there was a lot of talk about the possibility of tracking satellites to reduce latency&#8230; but like you said, equipment purchase is expensive. I thought I should bring up one more point which is the fact that HTTP operates over TCP/IP which is a lossless protocol and therefore requires acknowledgment of  packet receipt. To achieve this TCP/IP requires a packet buffer to be kept to hold onto packets until they are acknowledged (which we know takes a long time). The bad part: the default packet buffer is only 4K. Doing the math this means that you can only achieve ~64Kbps max when using TCP/IP over Sat. Fwiw, Skype generally uses UDP sockets (and you can tell when you get a direct TCP/IP connection because the call jumps). Some of this is solvable but it won&#8217;t be solved for a while.</p>
<p>More reading here:<br />
<a href="http://www.isoc.org/inet96/proceedings/g1/g1_3.htm" rel="nofollow">http://www.isoc.org/inet96/proceedings/g1/g1_3.htm</a></p>
<p>This means that my solution does have serious limits and caching will win in repeat cases, hands down. @Christian&#8217;s .htaccess is great for that and also enables HTTP compression which is even better. Just make sure you have mod_deflate enabled so that his .htaccess can take advantage of it (which based on your speedup for initial visits, I am guessing you do).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-156092</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Wed, 16 Sep 2009 08:54:47 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-156092</guid>
		<description>@Christian - thank you for the .htaccess (I put it in my httpd.conf to speed things up a bit more). For my extranet services, it cut initial requests down from 37 to 25; requests on repeat visits are down to 5 (the site is mostly static css and js). Page load times here in Tanzania are down to about 6-7 seconds on initial visits, and 2-3 seconds for repeat visits. Thanks!

Due to factors explained by Jeff Rafter, reducing the number of requests has a dramatic effect in Malawi and Tanzania, where we share bandwidth with much of East Africa on a single satellite that hovers over the Atlantic (I&#039;ve seen working satellite dishes pointed almost parallel to the ground here in Tanzania). There&#039;s also (supposedly) some connectivity through another satellite over the Indian Ocean, but the latency issues remain. Sometimes round-trip pings here are up to 2000ms. 

@David K: The SEACOM fiber optic line landed in Tanzania about two months ago, but most users are not seeing a difference yet. Startup costs are difficult for local ISPs to manage, i.e., upgrading and physically moving equipment to the cable landing site, and, it is rumored, the fact that ISPs need to pay up front for a year of access to bandwidth - many just don&#039;t have the cash reserves to afford that. I expect that the EaSSY and TEAMS fiber lines scheduled to arrive next year (2010) will face similar startup issues.

I think it will probably be up to another year or so before many users in Dar es Salaam start seeing any difference (ISPs need to upgrade infrastructure, build up cash reserves, contracts with sat. providers need to expire, new fiber competitors may arrive). With the possible exceptions of Uganda, Rwanda, and portions of Kenya (Nairobi) and SA (Jo&#039;burg), it will likely be years, if not decades, before inland East African users see any impact.  I&#039;m not aware of any new fiber coming to West Africa anytime soon. Sadly, it seems that in terms of lit fiber, Africa will be a &quot;Dark Continent&quot; for the next several years (see also http://bit.ly/17rZCz ).</description>
		<content:encoded><![CDATA[<p>@Christian &#8211; thank you for the .htaccess (I put it in my httpd.conf to speed things up a bit more). For my extranet services, it cut initial requests down from 37 to 25; requests on repeat visits are down to 5 (the site is mostly static css and js). Page load times here in Tanzania are down to about 6-7 seconds on initial visits, and 2-3 seconds for repeat visits. Thanks!</p>
<p>Due to factors explained by Jeff Rafter, reducing the number of requests has a dramatic effect in Malawi and Tanzania, where we share bandwidth with much of East Africa on a single satellite that hovers over the Atlantic (I&#8217;ve seen working satellite dishes pointed almost parallel to the ground here in Tanzania). There&#8217;s also (supposedly) some connectivity through another satellite over the Indian Ocean, but the latency issues remain. Sometimes round-trip pings here are up to 2000ms. </p>
<p>@David K: The SEACOM fiber optic line landed in Tanzania about two months ago, but most users are not seeing a difference yet. Startup costs are difficult for local ISPs to manage, i.e., upgrading and physically moving equipment to the cable landing site, and, it is rumored, the fact that ISPs need to pay up front for a year of access to bandwidth &#8211; many just don&#8217;t have the cash reserves to afford that. I expect that the EaSSY and TEAMS fiber lines scheduled to arrive next year (2010) will face similar startup issues.</p>
<p>I think it will probably be up to another year or so before many users in Dar es Salaam start seeing any difference (ISPs need to upgrade infrastructure, build up cash reserves, contracts with sat. providers need to expire, new fiber competitors may arrive). With the possible exceptions of Uganda, Rwanda, and portions of Kenya (Nairobi) and SA (Jo&#8217;burg), it will likely be years, if not decades, before inland East African users see any impact.  I&#8217;m not aware of any new fiber coming to West Africa anytime soon. Sadly, it seems that in terms of lit fiber, Africa will be a &#8220;Dark Continent&#8221; for the next several years (see also <a href="http://bit.ly/17rZCz" rel="nofollow">http://bit.ly/17rZCz</a> ).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wayan @ Inveneo</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-155948</link>
		<dc:creator>Wayan @ Inveneo</dc:creator>
		<pubDate>Tue, 15 Sep 2009 16:07:29 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-155948</guid>
		<description>Here are my bandwidth observations at various places in Africa: http://www.flickr.com/photos/dcmetroblogger/tags/bandwidth/

My favorite, which probably approaches Liberia, is this 7.47Kbps download speed in Nigeria: http://www.flickr.com/photos/dcmetroblogger/3799347808/

The speedtest I use is http://www.internetfrog.com/mypc/speedtest/</description>
		<content:encoded><![CDATA[<p>Here are my bandwidth observations at various places in Africa: <a href="http://www.flickr.com/photos/dcmetroblogger/tags/bandwidth/" rel="nofollow">http://www.flickr.com/photos/dcmetroblogger/tags/bandwidth/</a></p>
<p>My favorite, which probably approaches Liberia, is this 7.47Kbps download speed in Nigeria: <a href="http://www.flickr.com/photos/dcmetroblogger/3799347808/" rel="nofollow">http://www.flickr.com/photos/dcmetroblogger/3799347808/</a></p>
<p>The speedtest I use is <a href="http://www.internetfrog.com/mypc/speedtest/" rel="nofollow">http://www.internetfrog.com/mypc/speedtest/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miquel</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-155943</link>
		<dc:creator>Miquel</dc:creator>
		<pubDate>Tue, 15 Sep 2009 15:32:02 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-155943</guid>
		<description>Yeah, I&#039;m aware of this just a little bit.  Same situation in &lt;b&gt;all&lt;/b&gt; of DRC (a country of 60 million) which is why we started doing what we&#039;re doing with Maneno.  In fact, dealing with this kind of high latency, narrow bandwidth is one of the cornerstones to the project.</description>
		<content:encoded><![CDATA[<p>Yeah, I&#8217;m aware of this just a little bit.  Same situation in <b>all</b> of DRC (a country of 60 million) which is why we started doing what we&#8217;re doing with Maneno.  In fact, dealing with this kind of high latency, narrow bandwidth is one of the cornerstones to the project.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Qurbajoog</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-155864</link>
		<dc:creator>Qurbajoog</dc:creator>
		<pubDate>Tue, 15 Sep 2009 04:31:18 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-155864</guid>
		<description>@Hash you may want to talk Prof.   Vivek Pai  and his grad students who developed HashCache http://www.technologyreview.com/web/22119/ &amp; http://www.cs.princeton.edu/~vivek/</description>
		<content:encoded><![CDATA[<p>@Hash you may want to talk Prof.   Vivek Pai  and his grad students who developed HashCache <a href="http://www.technologyreview.com/web/22119/" rel="nofollow">http://www.technologyreview.com/web/22119/</a> &amp; <a href="http://www.cs.princeton.edu/~vivek/" rel="nofollow">http://www.cs.princeton.edu/~vivek/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Hooper</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-155832</link>
		<dc:creator>Adam Hooper</dc:creator>
		<pubDate>Mon, 14 Sep 2009 23:04:20 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-155832</guid>
		<description>Many site optimizations are extremely &quot;easy wins&quot;, e.g. (on http://drc.ushahidi.com):

1. Setting &quot;Expires&quot; headers on static assets (1-2 lines of web server config)
2. Using a Content Delivery Network (particularly one which works in Africa, if there is one--if not, there&#039;s a market here!). They&#039;re very easy to set up, though they cost money. As a last resort &quot;poor man&#039;s&quot; CDN, use multiple asset hostnames (e.g., &quot;assets0.ushahidi.com&quot;, &quot;assets1.ushahidi.com&quot;, etc., all pointing to the same web server) so the browser can parallelize downloads. Downloading eight files at a time is much faster than two, especially in high-latency environments (such as Africa).
3. Combine common JS into a single file. For instance, putting OpenLayers.js and jquery.js into the same file, if they&#039;re used on every page, can probably win you half a second off the initial page load in Africa. Ditto for CSS.
4. Serve images, CSS, and JavaScript from a different domain than the website&#039;s domain: if the website uses cookies and serves all files from the same domain, the browser has to send the cookie with each request (which costs the browser &lt;em&gt;upstream&lt;/em&gt; bandwidth, another bottleneck).  If your cookies are tied to &quot;*.ushahidi.com&quot;, then register another domain name, e.g. &quot;ushahidi-assets.com,&quot; for this big win.
5. Skip images or make them into CSS sprites. The navbar on drc.ushahidi.com is a perfect place to use a sprite; the language flags at the top of the page could be made into a sprite, also. These aren&#039;t &lt;em&gt;enormous&lt;/em&gt; wins, but they&#039;re not difficult and the improvements would be easily measurable.

These basic tips aren&#039;t exactly difficult to implement: they can probably all be finished with cursory testing within a day with one developer&#039;s time. The effort would make initial page load several seconds faster. And #1 alone would be subsequent page loads many times faster.

I&#039;m not the cleverest guy: I&#039;m just parroting what Google&#039;s &quot;Page Speed&quot; Firefox add-on says. It&#039;s a fantastic tool: get it at &lt;a href=&quot;http://code.google.com/speed/page-speed/&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/speed/page-speed/&lt;/a&gt;.

After that you can work on the &lt;em&gt;appearance&lt;/em&gt; of speed; there are some tips for that at &lt;a href=&quot;http://developer.yahoo.com/performance/rules.html&quot; rel=&quot;nofollow&quot;&gt;http://developer.yahoo.com/performance/rules.html&lt;/a&gt;.

But every change is meaningless without metrics, right? Test your site&#039;s actual performance at &lt;a href=&quot;http://www.webpagetest.org/&quot; rel=&quot;nofollow&quot;&gt;http://www.webpagetest.org&lt;/a&gt;. It may have a stupid name; it may be near-impossible to find on Google (bookmark it!); but I guarantee it will help you make your website faster.

Don&#039;t worry too much about database calls--at least, not until you get these big fish out of the way. Even if the page takes 3 seconds to render on the server side, that&#039;s nothing compared to the 97 subsequent seconds it takes to load all the assets and run all the scripts.

And as for, &quot;do we need to redesign this from the ground up?&quot; The answer is no. Every site--and every redesign--experiences this kind of growing pains. A software engineering mantra: &quot;features first; optimizations after.&quot;

I would expect the above list (and tools&#039; recommendations) to make ushahidi.com twice as fast or even faster, with moderately low risk and no negative side-effects.

Good luck!</description>
		<content:encoded><![CDATA[<p>Many site optimizations are extremely &#8220;easy wins&#8221;, e.g. (on <a href="http://drc.ushahidi.com" rel="nofollow">http://drc.ushahidi.com</a>):</p>
<p>1. Setting &#8220;Expires&#8221; headers on static assets (1-2 lines of web server config)<br />
2. Using a Content Delivery Network (particularly one which works in Africa, if there is one&#8211;if not, there&#8217;s a market here!). They&#8217;re very easy to set up, though they cost money. As a last resort &#8220;poor man&#8217;s&#8221; CDN, use multiple asset hostnames (e.g., &#8220;assets0.ushahidi.com&#8221;, &#8220;assets1.ushahidi.com&#8221;, etc., all pointing to the same web server) so the browser can parallelize downloads. Downloading eight files at a time is much faster than two, especially in high-latency environments (such as Africa).<br />
3. Combine common JS into a single file. For instance, putting OpenLayers.js and jquery.js into the same file, if they&#8217;re used on every page, can probably win you half a second off the initial page load in Africa. Ditto for CSS.<br />
4. Serve images, CSS, and JavaScript from a different domain than the website&#8217;s domain: if the website uses cookies and serves all files from the same domain, the browser has to send the cookie with each request (which costs the browser <em>upstream</em> bandwidth, another bottleneck).  If your cookies are tied to &#8220;*.ushahidi.com&#8221;, then register another domain name, e.g. &#8220;ushahidi-assets.com,&#8221; for this big win.<br />
5. Skip images or make them into CSS sprites. The navbar on drc.ushahidi.com is a perfect place to use a sprite; the language flags at the top of the page could be made into a sprite, also. These aren&#8217;t <em>enormous</em> wins, but they&#8217;re not difficult and the improvements would be easily measurable.</p>
<p>These basic tips aren&#8217;t exactly difficult to implement: they can probably all be finished with cursory testing within a day with one developer&#8217;s time. The effort would make initial page load several seconds faster. And #1 alone would be subsequent page loads many times faster.</p>
<p>I&#8217;m not the cleverest guy: I&#8217;m just parroting what Google&#8217;s &#8220;Page Speed&#8221; Firefox add-on says. It&#8217;s a fantastic tool: get it at <a href="http://code.google.com/speed/page-speed/" rel="nofollow">http://code.google.com/speed/page-speed/</a>.</p>
<p>After that you can work on the <em>appearance</em> of speed; there are some tips for that at <a href="http://developer.yahoo.com/performance/rules.html" rel="nofollow">http://developer.yahoo.com/performance/rules.html</a>.</p>
<p>But every change is meaningless without metrics, right? Test your site&#8217;s actual performance at <a href="http://www.webpagetest.org/" rel="nofollow">http://www.webpagetest.org</a>. It may have a stupid name; it may be near-impossible to find on Google (bookmark it!); but I guarantee it will help you make your website faster.</p>
<p>Don&#8217;t worry too much about database calls&#8211;at least, not until you get these big fish out of the way. Even if the page takes 3 seconds to render on the server side, that&#8217;s nothing compared to the 97 subsequent seconds it takes to load all the assets and run all the scripts.</p>
<p>And as for, &#8220;do we need to redesign this from the ground up?&#8221; The answer is no. Every site&#8211;and every redesign&#8211;experiences this kind of growing pains. A software engineering mantra: &#8220;features first; optimizations after.&#8221;</p>
<p>I would expect the above list (and tools&#8217; recommendations) to make ushahidi.com twice as fast or even faster, with moderately low risk and no negative side-effects.</p>
<p>Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Siegert</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-155828</link>
		<dc:creator>Christian Siegert</dc:creator>
		<pubDate>Mon, 14 Sep 2009 22:34:22 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-155828</guid>
		<description>Here is my .htaccess http://pastie.org/616785 . I hope it helps someone.

If you want to see what of your website needs optimization, install Google&#039;s Firefox add-on &quot;Page Speed&quot; websites http://code.google.com/speed/page-speed/</description>
		<content:encoded><![CDATA[<p>Here is my .htaccess <a href="http://pastie.org/616785" rel="nofollow">http://pastie.org/616785</a> . I hope it helps someone.</p>
<p>If you want to see what of your website needs optimization, install Google&#8217;s Firefox add-on &#8220;Page Speed&#8221; websites <a href="http://code.google.com/speed/page-speed/" rel="nofollow">http://code.google.com/speed/page-speed/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David K</title>
		<link>http://whiteafrican.com/2009/09/14/never-good-enough-speed-pt-13/comment-page-1/#comment-155825</link>
		<dc:creator>David K</dc:creator>
		<pubDate>Mon, 14 Sep 2009 22:09:53 +0000</pubDate>
		<guid isPermaLink="false">http://whiteafrican.com/?p=2877#comment-155825</guid>
		<description>@christian, I&#039;ve played around with the 304 not-modified status header and caching on the client side - definitely helps. CSS Sprites have also been a major help because then only one call for images is called - since all the images are in a single css sprite (master image) - http://css-tricks.com/css-sprites/.

I think my only issue at this point is that the rest of the world is quickly forgetting about designing for slow speeds as everyone else gets on the broadband bandwagon. Can anyone give an estimate for how much longer African countries have to endure this??

@Ssembonge if hypothetically one spent 5 hours extra on the net every week waiting for something to load, that&#039;s approximately 10 days out of the year that one could have spent doing other productive things. Our continent can&#039;t afford to waste anything at this point, especially time since we&#039;re so far behind.</description>
		<content:encoded><![CDATA[<p>@christian, I&#8217;ve played around with the 304 not-modified status header and caching on the client side &#8211; definitely helps. CSS Sprites have also been a major help because then only one call for images is called &#8211; since all the images are in a single css sprite (master image) &#8211; <a href="http://css-tricks.com/css-sprites/" rel="nofollow">http://css-tricks.com/css-sprites/</a>.</p>
<p>I think my only issue at this point is that the rest of the world is quickly forgetting about designing for slow speeds as everyone else gets on the broadband bandwagon. Can anyone give an estimate for how much longer African countries have to endure this??</p>
<p>@Ssembonge if hypothetically one spent 5 hours extra on the net every week waiting for something to load, that&#8217;s approximately 10 days out of the year that one could have spent doing other productive things. Our continent can&#8217;t afford to waste anything at this point, especially time since we&#8217;re so far behind.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

