Page Weight Matters
blog.chriszacharias.com
blog.chriszacharias.com
* comments
* ads and images
* headers
* sidebars
* toolbars
* menus
* social network tools
* meebo bars (really google, really?)
* javascript to load all of the above crap
The amazing thing is how often I can't even begin to read the page for what seems like much of a minute as the page takes so long to render, or various pieces of the page jump, and shift and scroll.I find that tools that localhost various ad servers help, and other tools that load the crap but keep it off the page help like adblock plus, but even more so, adblock plus' filters that let me shitcan all the crap.
One of these days I want to write an extension similar to adblock plus that seeks out and removes jquery crap. A lot of the reasons I can't read pages anymore seems to be jquery slideshows, jquery toolbars, jquery popups and the like.
I am pretty sure that graphing this out and we find the end of the web occurs sometime in 2018 when page designers and their bosses and engineers and marketing pukes have so larded down pages that the net runs out of available bandwidth and any page takes 4:33 to load.
Example: The Verge. Chrome reports theverge.com as making 118 requests with 2.62MB transferred, taking 11.04s (onload: 6.42s, DOMContentLoaded: 3.32s). Kotaku: 234 requests, 1.35MB transferred, 11.93s (onload: 10.91s, DOMContentLoaded: 4.28s).
I tested this on a maxed out 2010 MacBook Air, and that's with AdBlock Plus and ScriptNo.
The Verge is basically unusable while it loads and Chrome struggles to render it after it has loaded while scrolling on my machine. This is all-too-common these days.
I'm probably going to offend a few people here, but creating a website without or with minimal performance optimization is just plain sloppy and uncraftmanshiplike work. Get your act together, or get a different job.
I, too, really enjoy performance optimization but that's an area that is especially hard to break into because many times the client wants something that just works. In my experience as a consultant it's rare that you get a client that cares about performance much unless it's a company like Apple that has a crazy amount of money to spend on making everything perfect (where 'perfect' isn't literal perfection but surely of a much higher caliber than the competition in many regards).
http://diveintoaccessibility.info/day_11_skipping_over_navig...
35 seconds and 6.50MB transferred !
Loads the front page in about 5 seconds on a 24 Kbit/s connection in the UK.
They could include a 'skip to content' link for those using text or audio interfaces, because the entire navigation stricture of the site appears to be included on every page. They also could make comments available in a way that makes them visible to a basic http client. Two minor mods like that would mean fast access to their reading material for cli nerds
It's amazing but many mobile editions same to only be designed to make a screenshot to demonstrate to management that the site team did something mobile. Doesn't anybody ever actually try out these sites?
You don't want to use full site because it has too many features and have, therefore, too big size.
You also don't want to use mobile site because it doesn't have all the bells and whistles.
Chose one :) ... or use Opera Mini and/or ziproxy on your server
I got theverge.com in ~3 seconds from first click Using Chrome on a 40MB FIOS connection i7 2500k @ 3.6ghz w SSD & 16GB RAM on windows 7 without add-block or no script.
My PC is over a year old so it's probably the internet connection and then again the CPU is also 2-3+x as fast.
This might be something that NoScript's Surrogate Script feature could handle - it was originally developed to allow blocking Google Analytics without breaking sites that expected it to be loaded, and now includes surrogates for a lot of other junk.
I believe that out-of-date software and slow connections are highly correlated. New hardware and fast connections are the most expensive part of computing. Old (or very low cost) hardware doesn't run up-to-date software. So there you have the reason for that correlation.
Cannot upvote this comment enough.
The first, and easiest way is to go to Content > Site Speed > Overview. By default this will show you a chart of page load time over time.
First, to get enough data change the time scale to a full year. Underneath the date picker there is an icon with 16 dots in it in a 4x4 arrangement, with some dots filled in. click on that and move the slider all the way to the right. This will ensure higher precision and will capture some of the slower page loads.
At the bottom, in the 'Site Speed' section instead of 'Browser' select 'Country/Territory'. It will change the data from pages to countries. Now click on 'view full report' and you will get a world map with page load times.
It will look something like this:
The site I just did it on doesn't have enough data, but if you have a fairly popular site you should see a nice variation in page load times.
Google have a post about this on their Analytics blog with much better maps and more information:
http://analytics.blogspot.com.au/2012/04/global-site-speed-o...
Their maps look a lot better.
The other way of doing it is to create a custom report. I have one called 'Global Page Load'. Add 'Country/Territory' as a dimension, and 'City' as a sub-dimension. You may also drill in further by adding browser version, mobile, javascript, etc.
As metric groups, I have - in this order: DNS Lookup time, Avg Server Connection Time, Avg Server Response Time, Avg. Page Load Time.
This then gives you a pretty report where you can immediately see which visitors are getting slow responses, and you can further drill in to see what type of connections and which browsers or devices are slow. I was surprised that my light page, with compressed CSS and every static/cached was still taking ~20seconds to fully load from 30% of countries.
That is for pages that load, you need to add another tab to the report with error metrics to see who isn't getting through at all, and you would need to look at server logs to see who isn't even loading the Google Analytics javascript. All very handy, and eye opening in terms of the types of connections and the speed of connections that a lot of web users are on.
To many sites are guilty of having pages that are just far too heavy - like they only test from their 100Mbit city based connections. I am in Australia with a 1st world internet connection at 24Mbit and I avoid theverge.com desktop site because of the page load.
Edit: If anybody can work out a way to share custom reports in Google Analytics, let me know - I would be interested in sharing reports with others, for specific cases such as this.
Haven't tried it myself but it seems like you can share reports and dashboards in Google Analytics:
http://analytics.blogspot.com/2012/03/share-your-custom-repo...
https://support.google.com/analytics/bin/answer.py?hl=en&...
The cap is 10K visits/day.
One of the experiments I did a while back was creating a "satellite Internet connection from halfway around the globe" simulator on a dedicated wireless SSID. Basically, I created a new SSID and used Linux's traffic control/queueing discipline stuff to limit that SSID's outbound throughput to 32 kbps, limit inbound throughput to 64 kbps, add 900 milliseconds of latency on sent and received packets, and randomly drop 4% of packets in/out. Very, very few sites were even remotely usable. It was astonishing.
I think one of the most useful products that could ever be created for web developers is a "world Internet simulator" box that sits between your computer and its Internet connection. (Maybe it plugs into your existing wireless router and creates a new wireless network.) It would have a web interface that shows you a map of the world. You click a country, and the simulator performs rate shaping, latency insertion, and packet loss matching the averages for whatever country you clicked. Then devs can feel the pain of people accessing their websites from other countries.
(Thinking about this for a minute, it could probably be done for about $30 using one of those tiny 802.11n travel routers and a custom OpenWRT build. It would just be a matter of getting the per-country data. Hmmmmm...)
It's just tc or the BSD equivalent under the hood, but it's point and click and easy to turn off.
More details at: http://mattgemmell.com/2011/07/25/network-link-conditioner-i...
I guess the advantage of a dedicated pain box is that any device, regardless of operating system, could use it. Network Link Conditioner (and the two pieces of software mentioned so far by siblings of your comment) are all OS X-specific. (That's another webdev gripe for another day.)
On Windows, there's a few mentioned here: http://stackoverflow.com/questions/1094760/network-tools-tha...
#create firewall bandwidth configuration
sudo ipfw pipe 1 config bw 15KByte/s
#add config to firewall
sudo ipfw add 1 pipe 1 src-port 80
#change. during testing
sudo ipfw pipe 1 config bw 115KByte/s
#delete. after testing
sudo ipfw delete 1I have bash aliases for various levels of ipfw throttling, but I've ended up using other programs because 768k/s with no latency seems to load some kinds of sites disturbingly close to the speed they load if I let the bandwidth back up to its 18mbit/s normal speed, which I think has to do with latency. Lots of the Mac OS standalone programs that do this kind of thing, like Link Conditioner or Speed Limit, add configurable latency to requests as well.
0: http://www.openbsd.org/faq/pf/
1: http://developer.apple.com/library/mac/#documentation/Darwin...
Also, the Facebook app on my iPhone (pre-rewrite) would almost always cause me to lose my edge connection to the cell tower when launched in certain parts of Indonesia.
However once Chris controlled for geography, he was able to find that there was a significant improvement.
Moral of the story: run randomized A/B tests, or be very careful when you are analyzing the results.
== This.
Certain types of stratifications work, as in this case. Pure randomization in an expanding universe? I'm not so sure its foolproof. Though In general I agree with your comment.
(of course, this is unrelated to YouTube, but to the general sentiment of the article)
The strategy I've used is to serve up a light frame with the meat of the content, while keeping all ajax/external site dependent stuff hidden (with equivalently sized placeholders to avoid shifting layout and scroll), then doing a single subtle fadein of the additional content when everything's ready.
You can tweak the timing--like if you have a few bits of ajax content from your server that take 1-2s to load, and a few social buttons that are taking more like 5-6s, you'd probably want to fade those in separately in two steps. The point is to carefully orchestrate how elements appear to the user, not just bombard them with everything at once.
I would be interested to hear if anybody is using AJAX to make very light sites that are accessible in Siberia and the places mentioned in this article. I can't really think of one. I'm sure it's possible though.
FWIW this is why craigslist is universally popular. Because you can use their site from the public library with IE5 from a dialup connection! When you're trying to overcome the chicken and egg problem of community sites, that extra population is probably pretty important.
Perceived speed is extremely important.
http://www.nytimes.com/2012/03/01/technology/impatient-web-u...
This is a hacker in the truest sense of the word. He builds stuff just because he loves building stuff. He is a student at a University here in Jamaica. He isn't building it to be cool, or chasing the latest web 2.0 fad of the week. He didn't know HN until I introduced it to him, and he is young (say 19/20).
He built http://wapcreate.com - a WAP site creator.
That's right, WAP...not iOS or Android optimized HTML5 sites. Good, old fashioned WAP sites.
The most amazing part of the story though is that he is running it on 2 dedicated servers in Germany, it's a hack job (PHP, a bit of Ruby & a bit of Java). But once he picked up traction, he got so much traffic that he hasn't been able to keep the servers online.
In the first image - http://i.imgur.com/yEbyh.png - you will see that he got over 1.5M uniques. The vast majority of the time period covered here (the last year) was either very low traffic - pre-traction - or servers offline due to excessive traffic.
In the 2nd image - http://i.imgur.com/Pu8da.png - you will see that about 1.2M of those visits were in the 3 month period of June 1st - Aug 31st. His servers melted down towards the end of August and he ran out of money to pay his server bills. He eventually got it back up again a few weeks later, and the traffic spiked again and the servers crashed a few weeks later again.
In the 3rd image - http://i.imgur.com/HJ4gy.png - you will see that the vast majority of the visits are from Asia (even though he is 1 guy in the rural areas of Jamaica).
In the 4th image - http://i.imgur.com/JSQ48.png - and perhaps the most striking you will see the diversity of devices that the visitors are coming from. Most of them are from "feature phones". i.e. A multitude of versions of Nokia phones. Notice that this is just 1 - 10 of 508 device types.
He presented at a conference I went to, here in Jamaica, and he and I started speaking. I am helping him figure out how to proceed in a sustainable way. i.e. getting this thing stable, and then generating revenue.
After speaking to him for many weeks, I finally realized how insane his accomplishment is. Apparently, in all of this, he had been creating his site on computers that were not his. He either used his school computers, or borrowed machines from people. His Aunt is buying him a 2nd hand Thinkpad for Christmas - for which he is EXTREMELY stoked.
So while we are all chasing the billions doled out by Apple on the App Store and the newest, sexiest SaaS app idea with fancy $29/mo recurring revenue, with our cutting edge macbook pros and iPads - here is one guy using borrowed hardware, making a creation app for a technology that we have long since forgotten, generating crazy traffic and usage and struggling to even make a dime from his creation.
The world is a funny place, and this internet thing that we live on - is massive. As big as TechCrunch & HN are, there is so much more out there.
If you think you can help out in any way, either donating computing resources or anything else that can help us get this site back online and helping him start to generate revenue from this - then feel free to reach out to me.
P.S. If you want to dig into it some more, check out what some of the fans of the site are saying on it's FB page. I am not trying to trick you into liking the page. It only has ~1500 likes, but you can see passionate users commenting (both complaining about the downtime and praising some of the features).
There's a good reason why "we are all chasing the billions doled out by Apple on the App Store and the newest, sexiest SaaS app idea": money. He's making no money and it will be very hard to monetize. How do you get someone on another contentent, who earns very little money, using old technology, to pay you and pay enough to turn a profit?
It's great that he's helping people but if it has no business model it's not sustainable unless he can turn it into a non-profit with donors.
But there are other guys that are doing it and making money. The first step is to keep it online.
If he can make money from it that's fantastic. If he can't he'll have to move on. No one is saying the only market that exists is rich white people.
If people don't have money, it means this should be a financially backed non-profit, or the underlying issues should be fixed first. It's not sad that you can't make money where there is none.
As someone that lives in a third world country, the biggest companies are those that sell lots of products to the masses - not the boutique shops that sell to "middle & upper classes". i.e. the "bottom of the pyramid". In fact, Carlos Slim (the richest man in the world) has a ton of companies that sell to the bottom of the pyramid, and he is doing fine ;)
The businesses, here, that target the middle-to-upper classes tend to struggle.
So I am fairly certain there is a way to monetize this.
In fact, some users do want to pay to keep their site alive. So we just need to balance the amount that is paid and make sure resources are effectively allocated.
I say that to say that having a monopoly is not a guarantee of maximum success.
@parentcomment. I see that you seem to have a lot of traffic from India. You might want to check out http://vserv.mobi/ IIRC, they do have this payment processor which can pull money from your mobile prepaid balance. I don't think a lot of people here use credit cards.
Will definitely check it out.
Actually, let me re-phrase, what is the biggest problem he's facing?
I see that most of his visitors are from Asia, then why not reach out to Alipay payment processor? I am not overtly familiar with them, but maybe they have a cheap payment-by-sms product or similar (where users could pay a small price using their phone via txt message).
It is a very popular payment method in some areas of the globe for micro-payments.
The biggest problem, right this instant, is keeping the app up. I suspect it needs to be re-architected, because there is a lot of room for optimization so we can at least get the app working properly on the current hardware.
Once the site is online and stable, then it is a matter of monetization.
As for specific steps, yes...developing an ad network along side this app - and also using third party ad networks. The issue is that a lot of the sites that people create have porn.
I believe, when he gave the presentation the site had 19,000 WAP sites active. By active, he means updated in the last 7 days. He does a purge of all non-active sites every 7 days - because server resources are so scarce.
Thanks for posting this along with the data screen shots, very interesting. He has the right kind of aunt (I use recycled Thinkpads)! I take it you will be providing cloud storage/backup discs &c as well?
I will be doing my best to get it up and running - but given that it was initially written in PHP largely, and I am a Ruby guy we are trying to figure out the best way forward (in terms of a sustainability path with hosting resources).
If you are still interested, I would love to drop you a line.
Thanks.
I am sure we can find a way to monetize, it is just that it is a bit more non-traditional than the TC front-page stories with explosive growth.
Thanks for the kind words.
Having spent the last couple of months connecting from various parts of SE Asia, I'm happy to see this getting the attention it deserves. You don't realize how utterly painful or unusable much of the web is until you experience a network that is not only incredibly slow (by US standards) but also incredibly unreliable and prone to 5-20 minute outages many times per hour or day depending on where you are.
Before today, I hadn't clicked on a youtube video in months. The site was unusable.
Most evenings in smaller cities (not villages, that's a different story entirely) the broadband will be OK with downloads averaging around 3-15KB/sec. This allows you to access most sites or check gmail (usually I still opt for HTML mode). However, it's the frequent and intermittent outages that cause the most headaches. In many places I've visited they happen a couple of times per day and in other places, they happen many times per hour. These outages are a larger problem for AJAX heavy sites where clicking a button doesn't give a page saying "This webpage is not available" instead, the site just sits there, waiting for the request to complete, giving the user no indication that the rest of the internet is unreachable.
I have no idea what causes these outages (it's not the local network) but they lead to an awful experience on some sites. Hacker News, Wikipedia and other places do a great job of providing useful info that can be retrieved in a reasonable amount of time, countless others are so fat I've stopped visiting them entirely.
Think about the people and parts of the world you'd like to reach and design your site to have an enjoyable experience in those areas. I'm grateful for features like gmail's HTML only mode. I only wish other heavy sites had an equivalent feature.
The other point that the Internet is slow and high latency in foreign countries: true, but in the SF Bay Area it's slow and high latency on mobile devices and this should be a common experience shared by Hacker News readers.
Be sure to read it a couple times if you run into the same initial impression.
The clear point being made is that in many parts of the world, the original heavy page was taking a long time to load. Videos would only start after 20 minutes. Feather dramatically reduced the initial load time, but because of what was being measured (video start times), it looked as if Feather had increased load time. In reality, videos were being watched 18 minutes sooner.
Why could people in low-bandwith regions suddenly watch YouTube videos? Having the website itself down to 98KB is fine (which still took 2 minutes to load in some areas). But then you only get the first video frame.
So then you'd go and watch a video and that file is still the same size (several megabytes at least), which should take them still hours to load the entire video.
I understand that less requests and a smaller page weight does matter and I try to keep my webpages as light as possible, but YouTube seems to be the least interesting example for that, since the content itself can't be reduced much further without reducing either the image quality or the screen size.
I spend a bit more than a month studying how to build Nuuton in a way that it did not end up being a front-heavy piece of crap. Looked at a lot of differents options. Considered a client side Javascript MVC frameworks. Looked at the CSS side of things. Went as far as thinking about developing our own little app for Nuuton (No browser needed). But at the end, the simplest choice won. I decided to go with flat HTML/CSS. No bootstrap or framework either. Plain old markup and stylesheets. It uses very little Javascript (no Jquery either), just what the simple UI requires (an event listener for the enter key, and an event listener for 4 links). Nothing else. No animations. No fancy scrolling. No caroussels. Nothing like that. Its rendered on the server side (Django), and gets served to you in a very small package. I even went as far as breaking down the stylesheets so that you dont need to download CSS that does not apply to the page you are visiting. And you know what? It works, feels, and looks amazing. Even if the project ends up being a failure, acheiving such little victories are just deliciously fun.
Where did I get the inspiration to go against the current industry trends? HN's simple yet functional html setup. My god, its features a million tables, but the damn thing just works beautifully. By the way, Nuuton also uses tables. :)
Doesn't this just result in five downloads of 1KB CSS files over the course of a five-page visit, when a single download (and cache) of a 1.8KB CSS file would have sufficed? Is that better?
Web search engine I presume? What do you mean by "covers much more meta information"?
However, I don't say this from a usability perspective, but strictly from a "this is neat to code" standpoint. If you do it right, you should always be able to fallback to "include all CSS always" at the flick of a switch; so you have to code this first before you can even test if it helps ;)
Even if maintaining multiple versions of the site would be a pain, it would at least be nice to do something like this during a site redesign. If a user has a fast enough connection, and load times aren't projected to be terrible, serve up the new heavier site. If not, serve up the older site. Then you could get some metrics about what percentage of your users still need the old design around, and how important it would be to cut weight on a redesign if needed.
I'm a technical lightweight so i might have messed up some of the details, but hopefully the idea is still interesting.
...and now someone will figure out that this traffic isn't generating any revenue and you'll be back to catering the folks with high bandwidth and deep pockets.
I often use Opera Mini, because most browsers and sites are just unbearably slow or do not work at all.
you're right. And missing the point.
A large chunk of the world is permanently bandwidth starved, and most of the mobile world lives on transfer caps and long latencies. If those are plausible scenarios for your audience, you need to reduce the quantity of invisible bits you are sending them.
What's an invisible bit? Any bit that does not directly create text or images on the screen is invisible. Anything that runs client-side. Some of it may be necessary, but most of it is probably boiler-plate or general-purpose when what you actually need is more limited. Reduce!
Frankly, I'm stunned that they run this at no cost.
The low bandwidth experiment has been educational. On Firefox/Ubuntu, you get the little status bar at the bottom that shows the requests. Some pages have a lot of those, and take ages to load. Distro-hopping is feasible (I'm trying out different interfaces), a CD-ROM downloads overnight quite easily. Software updates are a killer (go and have dinner, listen to some music...).
I've started using a command line web client (w3m in my case) to get to the text more quickly. You get to see which sites have 'skip to content' links embedded early in the page and with CSS set to not show them on Firefox. You also get to see which sites provide all content via html and which sites 'wrap up' their content in javascript functions &c.
As many here provide Web content and applications, just try a command line Web browser on your site...
Why switch the router off? Just leave it running, it's not like it uses much power...
I'm eccentric. I switch off the electricity, gas and water when leaving the house for longer than an overnight stay.
I'm also dubious: I've had this connection running for 4 years with the same use pattern and this 'profiling' thing has only been happening for the last couple of months. I'm also not clear why if it is software controlled rate limiting, someone can't just go and click a button somewhere!
It is surprising what I can do on 0.24Mbit/s/40mS latency. It makes fat Web pages slow, and YouTube silly. RDP is the killer, my work Windows 7 desktop is just painful to use. I pop down-town to a coffee shop.
I'm glad to Feather worked so well. It always drives me nuts when some major site/portal needs 250+ requests to load. If you like the sound of it (only 3 requests to load a complex app), checkout GWT as you get all of these optimizations (i.e. Closure) and more by just compiling your web app.
Even personally it matters to me :) since I live in a 50 year old house that has slow DSL (YouTube buffers constantly) and I live in the center of Tucson, AZ.
I recall Google doing a study that increasing the speed of browsing increases the use of the internet. Page weight will always matter to someone.
I'd even go further and claim it matters to everyone in some situations. Open youtube in one tab to listen to a long lecture, open more tabs.. slim webpages still load fast, but "regular" (derpy!) ones take ages.
And then it's also a resource. I turn water off when I don't need it, because wasting water sucks, not because I cannot afford wasting some. Why should bandwidth be much different? I'm all for using what you need, or for making experiments, but the quest for shinyness over content, putting all sidebars on all pages, including jquery plugins and whatnot at the drop of a hat etc.. all that leads to crappy sites and a crappy infrastructure. That is, the same infrastructure could allow people to achieve much more, if more sites were spartanic like, say, HN ^^
Because at the end of the day, I don't even care if I notice it. That argumentation is lazy and shortsighted. See, if the site loads in 200 ms instead of 250 ms, and I load the site a thousand times per year, that's 50 seconds per year -- over 10 years that's over 8 minutes. That may not sound like much, but consider that this is not the only site, and that I am not the only human (and that load time reductions of much more than 50 ms would be possible on a lot of big sites). In total, the amount of time wasted by petty BS is probably quite staggering.
At two minutes, there are people out there with 6.6 kilobit links connecting to youtube?
I suspect there might be a bit of hyperbole in this article as well, because, even if there were people connecting on ultra slow links, the average latency of those connections is likely to be be wiped out by the tens of millions of broadband links.
400 round trips * 500ms latency is 3 min 20 seconds. This took 20 minutes to load 1 megabyte.
(Really, did anyone ever get the nominal 56k modem rate back in the day?)
Page "girth", the number of different parts of a page that need loading via separate requests, is often a more significant issue for performance, again particularly on mobile devices but this time because wireless connections tend to be less reliable and even a modest increase in dropped packets can really hit your effective page load time.
Combined with link delays, dropped packets, long round trip times and the like you get a much slower nominal bandwidth.
It's okay though, sometimes a bit of hyperbole does a better job of getting the story across.
And ofcourse, nowadays if i'm on a train my phone will often downgrade to gprs speeds, and it feels like i'm back on dialup having to wait a minute for a page to load.
I spent a month all over Brazil, and, while it was painful trying to work from some areas near Belem - it was either 80kbits+/second on GPRS or no connectivity whatsoever.
For a good couple of years visiting my parents in inland South Africa (just outside the major sprawl of the PWV), I was regularly seeing 1 to 2kbps speeds on dial up modem. South Africa only has one phone company, Telkom.
The price of copper affects the quality of the telephone lines. We live in an area that's quickly growing, but the availability of copper is low. So there's shared telephone lines, which creates noise, which slows down modem connections.
Yeah, they can string out more copper cables to work through the shared lines, but when those copper cables disappear as quickly as they are put up, it is very difficult to make progress. Copper theft in South Africa is big.
And the shared telephone lines are deemed acceptable because Telkom support it only for telephone calls, not modem connections. They are reluctant to fix things that are not broken.
So landlines are effectively useless in fast growing areas, there's not enough copper cable to go around to give people a decent clear line to a dial-up ISP, let alone broadband.
I've moved my parents over to mobile broadband now, with a Mifi device that appeared on the market last year, so those download speeds are hopefully a thing of the past.
Essentially, developing countries need to skip their subpar landlines and invest heavily in mobile broadband abilities. They can't afford the long term cost of replacing copper cables over and over and over.
http://www.forbes.com/sites/timworstall/2011/09/23/british-t...
Just off the top of my head, rural Vermont, New Hampshire, and Maine.
Solutions tried by people I know (all since 2005)
* Satalite radio (helps with downlink but uplink is still via modem) * Pay $700/mo for 1.5mb commercial T1 (1.5MBps). Took the ISP 3 days to do the line engineering from the CO. * Long distance point to point wifi (@2.4GHz ~1mile and 800Mhz 10+ miles) * HAM radio packet networking. Slow but fun * Running 1/2 mile+ of Ethernet cable (with inline repeaters) through the woods and hoping no one messes with them * Combinationa of the above.
Hisghspeed Internet access in rural/hilly areas is a major challange. We pay a few dollars every month on our phone bills as a special state tax to fund the ISPs to provide it. Have for years. still a problem.
Bad network coverage is a problem that can be addressed many ways. Shameless plug: I've been working on offline wikipedia that by its nature is always available and fast, everywhere: http://mpaja.com/mopedi I'm sure there are many unexplored niches where the cpu power in your hand can be put to good use without needing the network.
Some excellent best practices from the Yahoo team here on how to increase front-end site performance (which can account for "80% of the end-user response time"): http://developer.yahoo.com/performance/rules.html
Large swaths of South America have broadband access. I guess South Africa does too. Being a little more specific would be helpful.
Obviously a fancy desktop sized page that relies on java script is just completely out.
I was in Myanmar for a bit and their internet was so slow that I couldn't check even news or email -- no need for a China-style firewall.
This is non controversial and known as Braess's paradox[0]: changing the graph characteristics alters the Nash equilibrium solution for a worse one (i.e the Nash equilibrium is not optimal).
Thanks for link, your url has one too many s characters on the end