theendofunlimitedbandwidth 101130124830-phpapp01 (1)
DESCRIPTION
TRANSCRIPT
http://www.flickr.com/photos/beggs/34117133
unlimited bandwidth towards a more network efficient user experience in an age of network austerity
the so-called end of
I am NOT a network guru...DISCLAIMER
http://www.flickr.com/photos/andreasivarsson/4893862500
I might be completely wrong!
http://www.flickr.com/photos/32615508@N02/3047982712
not simply design for smaller screens... designing for mobile devices is
http://www.flickr.com/photos/wwworks/2943810776
efficiency is not optional... designing for network
why?
http://www.flickr.com/photos/msimdottv/3326696626
an unexpected txt recently... you may have received
Your unlimited data promotion ends onthe date of your next bill. Which is when yournew 500MB a month data allowance starts...
SMS received from my operator, you may have received something similar...http://shop.o2.co.uk/new-iphone/tariffs.html
“
iPhone 4 - What you get for 500MBhttp://shop.o2.co.uk/new-iphone/DataAllow500.html
Your 500MB data allowance will enable you to (approximately):
send 500,000 emails, without attachments
or send 1,000 emails, with photos attached
or visit 5,000 sites, like Twitter or favourite blogs
or visit 1,500 rich content sites like bbc.co.uk...
or download 50 (low-quality) music tracks
or watch 60 YouTube videos, about 4.5 minutes long
according to
Expect monthly average monthly data usage to be around 325MB by end of 2010...
US Mobile Data Market Update Q3 2010http://www.chetansharma.com/blog/2010/11/07/us-mobile-data-market-update-q3-2010/
“
http://www.flickr.com/photos/wonderferret/215802064
that’s lovely and all, but...
...iPhone reports I’ve exceeded my monthly bandwidth cap by 4GB. Bugger. (how do I figure out what drained that bandwidth?)
@iamdanw via Twitterhttp://twitter.com/iamdanw/status/3232692573310976
“
http://www.flickr.com/photos/maxwellgs/4267311036
let’s try a little experiment...
Step 1Select ‘Wi-Fi’ in ‘Settings’...
Step 2Switch ‘Wi-Fi’ to ‘OFF’ position.
turn your Wi-Fi off temporarily
Remember to turn on Wi-Fi back on once you’re done!And be sure to always use Wi-Fi networks for data intensive activities.
Remember to turn on Wi-Fi back on once you’re done!And be sure to always use Wi-Fi networks for data intensive activities.
Step 3Tap ‘General’ in ‘Settings’...
reset your usage statistics
Step 4Tap ‘Usage’ in ‘General’...
Step 5Tap ‘Reset Statistics’ in ‘Usage’.
0 bytes
How To Change The User Agent In Safarihttp://www.youtube.com/watch?v=ZSJ_KLEsX4M
Charles HTTP ProxySafari Web Browser iPhone Simulator
|| +
change user-agent to ‘Mobile Safari’ via Developer tools
or for the geeks among us...very cautious
||
WireShark
http://www.flickr.com/photos/carbonnyc/5140154965
now use your iPhone...briefly
repeat as desired
reset data use data use datarecord results +
reset datarecord results +
reset data
7.1MB 42.3MB0MB0MB
reset, record, repeat...
keep in mind that tablets such as the iPad may consume significantly more data...
0MBStart of the monthly 500MB data allowance...
a new month...0KB
here’s my data usage...
51MBListen to 3 songs on Spotify, view links, check Twitter and Facebook twice, watch a 5 minute video on YouTube and check Google Maps...
comedy sketch40.6 MB over 05:28
“Pearl Jam”23MB over 00:20
refresh + tweet973KB over 00:20
101MBCheck Google Maps for meeting location, watch new Samsung video, browse, tweet, Facebook, funny animal video and listen to new Muse track.
find meeting...2.1MB over 00:05
read TechCrunch2.7MB over 00:15
refresh + update status803KB over 00:10
a funny video3.2 MB over 02:13
315MBListen to a few more tracks on Spotify, another couple of videos on YouTube, chat via Twitter, Facebook, a few emails + photos, maps and surf...
read email...6.7MB over 00:45
find lunch...1.8MB over 00:05
conference talks113 MB over 00:20
new Muse album78MB over 01:30
upload photos...3.4MB over 00:12
updates... 1.6MB over 00:10
refresh + tweet3.1MB over 00:10
http://www.flickr.com/photos/adactio/274644831
and that’s before lunch...
Step 6Select ‘Wi-Fi’ in ‘Settings’...
Step 7Switch ‘Wi-Fi’ to ‘ON’ position.
please turn your Wi-Fi back on
Remember to turn on Wi-Fi back on once you’re done!And be sure to always use Wi-Fi networks for data intensive activities.
networks will vary...
Generalisation of Parkinson’s Lawhttp://en.wikipedia.org/wiki/Parkinson's_Law
the demand upon a resource tends to expand to match the supply of the resource
http://www.flickr.com/photos/mikebaird/3898808431
...significant shift in 2010 as (globally) off-deck revenues surpass on-deck revenues for the first time...
Paraphrased from US Mobile Data Market Update Q3 2010http://www.chetansharma.com/blog/2010/11/07/us-mobile-data-market-update-q3-2010/
“the Internet!
operator portals
so the demand is obviously there, but let’s look at the supply...
http://www.flickr.com/photos/johanl/4397800453
Comparison of wireless data standardshttp://www.itu.int/ITU-D/ict/material/FactsFigures2010.pdf
0
1.25
2.5
3.75
5
GRPS EvDO EDGE UMTS HSPA+ LTE WiMAX WiFi LTE-Advanced
net
wo
rk s
pee
d in
Mb
ps
network technology
AverageTheoretical
2G 3G 4G
90% estimated worldwide2G penetration in 2010...
5 MBps
Morgan Stanley Internet Trends, April 12, 2010http://www.morganstanley.com/institutional/techresearch/pdfs/Internet_Trends_041210.pdf
0
37.5
75
112.5
150
GRPS EvDO EDGE UMTS HSPA+ LTE WiMAX WiFi LTE-Advanced
net
wo
rk s
pee
d in
Mb
ps
network technology
AverageTheoretical
2G 3G 4G
21% projected worldwide3G penetration in 2010...
150 MBps
0
250
500
750
1000
GRPS EvDO EDGE UMTS HSPA+ LTE WiMAX WiFi LTE-Advanced
net
wo
rk s
pee
d in
Mb
ps
network technology
AverageTheoretical
Comparison of wireless data standardshttp://en.wikipedia.org/wiki/Comparison_of_wireless_data_standards
2G 3G 4G
0% actual worldwide4G penetration in 2010...1,000 MBps
0
250
500
750
1000
GRPS EvDO EDGE UMTS HSPA+ LTE WiMAX WiFi LTE-Advanced
net
wo
rk s
pee
d in
Mb
ps
network technology
AverageTheoretical
2G 3G 4G
T-Mobile 4G Service Now Available in More Markets and on New Devices - 02/11/2010http://press.t-mobile.com/articles/americas-largest-4g-network
Consumers do not understand the technical alphabet soupof technologies involved in 4G, but for our purposes we define WiMAX, LTE and HSPA+ as 4G technologies...
“4G
marketing redacted
http://www.flickr.com/photos/flissphil/6341843/
...fact is that there are no IMT-Advanced–or 4G– systems available or deployed at this stage.
The Dirty Secret of Today’s 4G: It’s not 4Ghttp://gizmodo.com/5680755/the-dirty-secret-of-todays-4g-its-not-4g
“
don’t panic
http://www.flickr.com/photos/alexnormand/2916476207
...the idea of buying service from wholesalers and thereby offloading data traffic as an excellent method for handling [the problem of mobile operators struggling to manage surging network traffic]...
Reality Check: Wholesale ... more exciting than you thinkhttp://www.rcrwireless.com/article/20101102/REALITY_CHECK/101109990
“
http://www.flickr.com/photos/pinkmoose/2461093066
bandwidth as a commodity...
oddly familiar...
not so long ago...
Enron Open Bandwidth Commodity Trading Servicehttp://www.internetnews.com/xSP/article.php/253861/Enron-Opens-Bandwidth-Commodity-Trading-Service.htm
yes, that
anyway...
http://www.mobypicture.com/user/andrewgrill/view/7998275/sizes/full
“unlimited 500 MB internet” - how do they get away with saying this?
the mobile industry oxymoron
@andrewgrill via Twitterhttp://twitter.com/#!/AndrewGrill/status/3462590709633024
http://www.flickr.com/photos/chadmagiera/3035522407
I want my unlimited data smartphone users:
http://news.cnet.com/8301-30686_3-20023471-266.html
...a large number of light users, people consuming less than 200MB of data per month, prefer unlimited plans... even if their usage patterns suggest that they would save money by getting a plan that's capped.
Smartphone users: I want my unlimited datahttp://news.cnet.com/8301-30686_3-20023471-266.html
“
http://www.flickr.com/photos/schillergarcia/2836059154
but not as fast as many would like... greater bandwidth is coming,
to generate revenue from data...
http://www.flickr.com/photos/kiwanja/3169449999
operators are cutting prices with the idea
Africa is on the cusp on an Internet boomhttp://www.csmonitor.com/World/Africa/Africa-Monitor/2010/1105/
Africa-is-on-the-cusp-of-an-Internet-boom
http://www.flickr.com/photos/flickr_faris/361848995
based on data consumption... ...via free content, with operating cost
in the meantime...
designing for mobile devices isn’t simplya matter of taking screen size into account...
...design for network efficiency*
*you also need to design for context, but that’s another discussion...
http://www.flickr.com/photos/edo-finelight/4514878784
design strategies... a few network efficient
filter
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam pharetra dignissim consectetur. Donec ut nisl nisi, et pretium sem. Proin libero libero, mollis in vestibulum sed, interdum at nibh. Curabitur vel lectus sit amet leo blandit tincidunt quis sed nulla. Etiam scelerisque metus eget augue placerat vel elementum sem mattis. Pellentesque sapien mauris, laoreet sed malesuada ac, rhoncus in ipsum. Fusce ultrices consectetur odio ac tincidunt. Donec pharetra auctor lacus sit amet pulvinar. Nullam a urna turpis, sit amet vulputate mi. Donec eu suscipit purus. Mauris tincidunt scelerisque tellus, vel semper sapien hendrerit sed.
Ut magna augue, gravida ac luctus vel, posuere in neque. Nullam vel lacus mi. Nulla et ante massa. In hac habitasse platea dictumst. Nam gravida tempor metus, ut viverra arcu feugiat vitae. Duis placerat, urna vel blandit cursus, metus purus condimentum velit, eu faucibus nisi nunc ac turpis. Nulla id enim elit. Pellentesque nec arcu et quam venenatis viverra. Sed magna neque, blandit eget lacinia vel, sollicitudin at lacus. Quisque eleifend dui eget tortor ornare quis fermentum sem auctor. Etiam vitae rhoncus velit. Aenean nulla nulla, suscipit non ullamcorper vel, eleifend ut dui. Morbi eu tortor in massa consectetur porttitor laoreet fringilla nisl. Vestibulum laoreet lobortis lacus non scelerisque. Ut bibendum rhoncus felis ut auctor. Integer porttitor viverra elementum. Vivamus sit amet ipsum ac velit feugiat tristique. Praesent nec velit ipsum. Maecenas in orci nulla, eu interdum mauris.
Integer porta lacinia tempor. Curabitur sit amet nibh a sapien scelerisque accumsan. Curabitur feugiat suscipit imperdiet. Fusce orci ipsum, malesuada non cursus sit amet, laoreet ut purus. Praesent eget ligula urna. Donec mattis est eu tortor pulvinar mollis dictum elit malesuada. Aliquam varius nisl euismod massa accumsan quis accumsan erat viverra. Nunc ac velit velit. Sed lobortis, eros vel blandit luctus, nunc velit malesuada lacus, eget tincidunt neque nisl et neque. Aenean sagittis tellus purus, a aliquet augue. In hac habitasse platea dictumst. Vestibulum sed ipsum a ipsum fringilla congue eget at eros.
Etiam feugiat, mi vel elementum tempor, massa dolor varius augue, id tempus tortor elit sed justo. In pulvinar, sapien in feugiat elementum, velit diam vehicula ligula, a semper felis lorem id justo. Aliquam erat volutpat. Sed varius tempor nibh et fringilla. Donec id suscipit leo. Nullam quis nisl lacus, vitae placerat massa. Aenean at massa dui, eu scelerisque sapien. Mauris vel neque et mi porttitor dapibus. Fusce quis libero eget justo facilisis scelerisque. Mauris eu dolor at purus volutpat suscipit. Cras libero nisi, placerat eget rhoncus et, auctor et magna. Vivamus quis vehicula ante. Nulla laoreet egestas gravida. Vestibulum tortor massa, feugiat ut sodales id, mattis id risus. Nulla egestas rutrum lacus at pretium. Nunc blandit dapibus libero, a facilisis tellus convallis vel. Integer auctor eros dapibus massa dapibus quis tempus quam pretium. Mauris ultricies leo eget odio convallis eget consectetur purus pharetra. Nulla facilisi.
Duis nec velit ut ante suscipit auctor. Etiam leo tellus, eleifend a fermentum vel, luctus et libero. Proin urna felis, venenatis porttitor sollicitudin id, pellentesque vel lorem. In blandit mattis fringilla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla ligula dolor, viverra vitae tincidunt at, congue eget arcu. Pellentesque id interdum lacus. Suspendisse in lectus et nibh consectetur luctus vitae non magna. Ut interdum, est aliquam ultrices tempor, elit lorem mollis turpis, sed faucibus nisl enim sit amet sem. Vestibulum dapibus quam a lectus accumsan vitae posuere urna volutpat. Donec commodo fermentum arcu quis pulvinar. Nam eget eros ac turpis lobortis fermentum. Sed ultrices tristique nibh a aliquet. Cras tristique auctor elementum. Sed placerat, libero ac suscipit tincidunt, enim elit pharetra ligula, sit amet ultrices risus est ac diam.
Nullam erat ligula, sagittis nec auctor imperdiet, scelerisque nec dolor. Mauris tincidunt risus at turpis facilisis congue. Curabitur purus ante, mollis ut bibendum sed, tincidunt quis nulla. Nam non ligula at eros dapibus porta. Fusce sapien justo, tempor ut viverra quis, consequat sit amet nisi. Integer iaculis, metus quis venenatis rhoncus, dolor erat venenatis lacus, et posuere odio diam eu orci. In hac habitasse platea dictumst. Morbi vulputate scelerisque diam. In gravida porttitor hendrerit. Curabitur nec augue ac dolor mattis dictum. Suspendisse accumsan facilisis tortor tincidunt feugiat. Etiam ante urna, auctor id fermentum a, varius vitae enim. Curabitur a bibendum tellus. Curabitur pellentesque, felis ut molestie iaculis, sapien lectus cursus orci, sit amet accumsan dolor augue ac dui. Nulla cursus ipsum eget nisl aliquam ut mollis nibh dictum.
Donec ut mauris sem. Suspendisse potenti. Nullam scelerisque ultrices mattis. Mauris ultrices magna orci, vitae adipiscing enim. Aliquam aliquam, nibh in mattis ornare, nisl risus sodales orci, nec molestie sem metus sed leo. Sed placerat diam eu lectus laoreet eu dictum nisi bibendum. In ullamcorper varius vestibulum. Sed congue varius orci vitae semper. Aenean risus justo, egestas eu pellentesque at, accumsan ac mi. Sed semper velit lacinia diam commodo ullamcorper. In quis tortor felis, non eleifend odio. Mauris quis sem mi, in placerat lacus. Phasellus at nisl quis magna adipiscing convallis. Aenean ut massa mauris, sit amet imperdiet dui. Aliquam dictum gravida egestas. Etiam interdum, risus sit amet dignissim cursus, sem dui porta sapien, tempus egestas quam velit vitae tellus. Vivamus a purus nec felis porttitor vehicula. Donec nec diam sem. In eget justo et mauris porta placerat vitae id purus.
Sed nisi quam, scelerisque non pretium sit amet, malesuada elementum augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam fermentum venenatis ornare. Etiam id erat nisl, tincidunt scelerisque sapien. Praesent ut faucibus lectus. Sed sit amet diam metus. Etiam pellentesque bibendum dui, eu volutpat tortor scelerisque et. Aliquam ut eros leo, sed ultricies lacus. Proin posuere sagittis magna, ac tristique sapien ultrices id. In gravida bibendum justo, eget rutrum risus commodo eu. Donec turpis arcu, laoreet pharetra egestas nec, tincidunt in leo. Vestibulum pulvinar nibh eget magna fringilla dictum. Cras et velit et lectus porttitor lobortis. Sed consectetur, eros sit amet tempor placerat, dui mi porttitor diam, in suscipit eros nisl quis lacus. Cras sed urna mi. Vestibulum at felis vitae.
edit ruthlessly...
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam pharetra dignissim consectetur. Donec ut nisl nisi, et pretium sem. Proin libero libero, mollis in vestibulum sed, interdum at nibh. Curabitur vel lectus sit amet leo blandit tincidunt quis sed nulla. Etiam scelerisque metus eget augue placerat vel elementum sem mattis. Pellentesque sapien mauris, laoreet sed malesuada ac, rhoncus in ipsum. Fusce ultrices consectetur odio ac tincidunt. Donec pharetra auctor lacus sit amet pulvinar. Nullam a urna turpis, sit amet vulputate mi. Donec eu suscipit purus. Mauris tincidunt scelerisque tellus, vel semper sapien hendrerit sed.
Ut magna augue, gravida ac luctus vel, posuere in neque. Nullam vel lacus mi. Nulla et ante massa. In hac habitasse platea dictumst. Nam gravida tempor metus, ut viverra arcu feugiat vitae. Duis placerat, urna vel blandit cursus, metus purus condimentum velit, eu faucibus nisi nunc ac turpis. Nulla id enim elit. Pellentesque nec arcu et quam venenatis viverra. Sed magna neque, blandit eget lacinia vel, sollicitudin at lacus. Quisque eleifend dui eget tortor ornare quis fermentum sem auctor. Etiam vitae rhoncus velit. Aenean nulla nulla, suscipit non ullamcorper vel, eleifend ut dui. Morbi eu tortor in massa consectetur porttitor laoreet fringilla nisl. Vestibulum laoreet lobortis lacus non scelerisque. Ut bibendum rhoncus felis ut auctor. Integer porttitor viverra elementum. Vivamus sit amet ipsum ac velit feugiat tristique. Praesent nec velit ipsum. Maecenas in orci nulla, eu interdum mauris.
Integer porta lacinia tempor. Curabitur sit amet nibh a sapien scelerisque accumsan. Curabitur feugiat suscipit imperdiet. Fusce orci ipsum, malesuada non cursus sit amet, laoreet ut purus. Praesent eget ligula urna. Donec mattis est eu tortor pulvinar mollis dictum elit malesuada. Aliquam varius nisl euismod massa accumsan quis accumsan erat viverra. Nunc ac velit velit. Sed lobortis, eros vel blandit luctus, nunc velit malesuada lacus, eget tincidunt neque nisl et neque. Aenean sagittis tellus purus, a aliquet augue. In hac habitasse platea dictumst. Vestibulum sed ipsum a ipsum fringilla congue eget at eros.
Etiam feugiat, mi vel elementum tempor, massa dolor varius augue, id tempus tortor elit sed justo. In pulvinar, sapien in feugiat elementum, velit diam vehicula ligula, a semper felis lorem id justo. Aliquam erat volutpat. Sed varius tempor nibh et fringilla. Donec id suscipit leo. Nullam quis nisl lacus, vitae placerat massa. Aenean at massa dui, eu scelerisque sapien. Mauris vel neque et mi porttitor dapibus. Fusce quis libero eget justo facilisis scelerisque. Mauris eu dolor at purus volutpat suscipit. Cras libero nisi, placerat eget rhoncus et, auctor et magna. Vivamus quis vehicula ante. Nulla laoreet egestas gravida. Vestibulum tortor massa, feugiat ut sodales id, mattis id risus. Nulla egestas rutrum lacus at pretium. Nunc blandit dapibus libero, a facilisis tellus convallis vel. Integer auctor eros dapibus massa dapibus quis tempus quam pretium. Mauris ultricies leo eget odio convallis eget consectetur purus pharetra. Nulla facilisi.
Duis nec velit ut ante suscipit auctor. Etiam leo tellus, eleifend a fermentum vel, luctus et libero. Proin urna felis, venenatis porttitor sollicitudin id, pellentesque vel lorem. In blandit mattis fringilla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla ligula dolor, viverra vitae tincidunt at, congue eget arcu. Pellentesque id interdum lacus. Suspendisse in lectus et nibh consectetur luctus vitae non magna. Ut interdum, est aliquam ultrices tempor, elit lorem mollis turpis, sed faucibus nisl enim sit amet sem. Vestibulum dapibus quam a lectus accumsan vitae posuere urna volutpat. Donec commodo fermentum arcu quis pulvinar. Nam eget eros ac turpis lobortis fermentum. Sed ultrices tristique nibh a aliquet. Cras tristique auctor elementum. Sed placerat, libero ac suscipit tincidunt, enim elit pharetra ligula, sit amet ultrices risus est ac diam.
Nullam erat ligula, sagittis nec auctor imperdiet, scelerisque nec dolor. Mauris tincidunt risus at turpis facilisis congue. Curabitur purus ante, mollis ut bibendum sed, tincidunt quis nulla. Nam non ligula at eros dapibus porta. Fusce sapien justo, tempor ut viverra quis, consequat sit amet nisi. Integer iaculis, metus quis venenatis rhoncus, dolor erat venenatis lacus, et posuere odio diam eu orci. In hac habitasse platea dictumst. Morbi vulputate scelerisque diam. In gravida porttitor hendrerit. Curabitur nec augue ac dolor mattis dictum. Suspendisse accumsan facilisis tortor tincidunt feugiat. Etiam ante urna, auctor id fermentum a, varius vitae enim. Curabitur a bibendum tellus. Curabitur pellentesque, felis ut molestie iaculis, sapien lectus cursus orci, sit amet accumsan dolor augue ac dui. Nulla cursus ipsum eget nisl aliquam ut mollis nibh dictum.
Donec ut mauris sem. Suspendisse potenti. Nullam scelerisque ultrices mattis. Mauris ultrices magna orci, vitae adipiscing enim. Aliquam aliquam, nibh in mattis ornare, nisl risus sodales orci, nec molestie sem metus sed leo. Sed placerat diam eu lectus laoreet eu dictum nisi bibendum. In ullamcorper varius vestibulum. Sed congue varius orci vitae semper. Aenean risus justo, egestas eu pellentesque at, accumsan ac mi. Sed semper velit lacinia diam commodo ullamcorper. In quis tortor felis, non eleifend odio. Mauris quis sem mi, in placerat lacus. Phasellus at nisl quis magna adipiscing convallis. Aenean ut massa mauris, sit amet imperdiet dui. Aliquam dictum gravida egestas. Etiam interdum, risus sit amet dignissim cursus, sem dui porta sapien, tempus egestas quam velit vitae tellus. Vivamus a purus nec felis porttitor vehicula. Donec nec diam sem. In eget justo et mauris porta placerat vitae id purus.
Sed nisi quam, scelerisque non pretium sit amet, malesuada elementum augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam fermentum venenatis ornare. Etiam id erat nisl, tincidunt scelerisque sapien. Praesent ut faucibus lectus. Sed sit amet diam metus. Etiam pellentesque bibendum dui, eu volutpat tortor scelerisque et. Aliquam ut eros leo, sed ultricies lacus. Proin posuere sagittis magna, ac tristique sapien ultrices id. In gravida bibendum justo, eget rutrum risus commodo eu. Donec turpis arcu, laoreet pharetra egestas nec, tincidunt in leo. Vestibulum pulvinar nibh eget magna fringilla dictum. Cras et velit et lectus porttitor lobortis. Sed consectetur, eros sit amet tempor placerat, dui mi porttitor diam, in suscipit eros nisl quis lacus. Cras sed urna mi. Vestibulum at felis vitae.
then edit a few more times....
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam pharetra dignissim consectetur. Donec ut nisl nisi, et pretium sem. Proin libero libero, mollis in vestibulum sed, interdum at nibh. Curabitur vel lectus sit amet leo blandit tincidunt quis sed nulla. Etiam scelerisque metus eget augue placerat vel elementum sem mattis. Pellentesque sapien mauris, laoreet sed malesuada ac, rhoncus in ipsum. Fusce ultrices consectetur odio ac tincidunt. Donec pharetra auctor lacus sit amet pulvinar. Nullam a urna turpis, sit amet vulputate mi. Donec eu suscipit purus. Mauris tincidunt scelerisque tellus, vel semper sapien hendrerit sed.
Curabitur feugiat suscipit imperdiet. Fusce orci ipsum, malesuada non cursus sit amet, laoreet ut purus. Praesent eget ligula urna. Donec mattis est eu tortor pulvinar mollis dictum elit malesuada. Aliquam varius nisl euismod massa accumsan quis accumsan erat viverra. Nunc ac velit velit. Sed lobortis, eros vel blandit luctus, nunc velit malesuada lacus, eget tincidunt neque nisl et neque.
Donec id suscipit leo.
Nulla laoreet egestas gravida. Vestibulum tortor massa, feugiat ut sodales id, mattis id risus. Nulla egestas rutrum lacus at pretium. Nunc blandit dapibus libero, a facilisis tellus convallis vel. Integer auctor eros dapibus massa dapibus quis tempus quam pretium.
Mauris tincidunt risus at turpis facilisis congue. Curabitur purus ante, mollis ut bibendum sed, tincidunt quis nulla. Nam non ligula at eros dapibus porta. Fusce sapien justo, tempor ut viverra quis, consequat sit amet nisi. Integer iaculis, metus quis venenatis rhoncus, dolor erat venenatis lacus, et posuere odio diam eu orci.
Sed semper velit lacinia diam commodo ullamcorper. Phasellus at nisl quis magna adipiscing convallis. Aenean ut massa mauris, sit amet imperdiet dui.
Sed nisi quam, scelerisque non pretium sit amet, malesuada elementum augue. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam fermentum venenatis ornare. Etiam id erat nisl, tincidunt scelerisque sapien.
think small...
<div class="body"> <div class="header"> <div class= "h1"> <span>Hello World!</span> </div> </div> <div class="body">HTML <span class="emphasis">can actually be</span>meaningful. </div> </div>
<div> soup...
soup is best served in a bowl...
this includes markup...
we see this much more than you’d think...
unnecessary markup will increase the amount of data you transfer, and may impact performance
recreating existing <tags> is not cool
<h1>Hello World!</h1><p>HTML<em>can actually be</em>meaningful.</p>
keep markup short, semantic and meaningful – less data transfer and better performance
contains
71%less filler
well structured & meaningful
basic comparison of The New York Times and The Guardian websites on the iPhone...
“full web” “mobile web”vs.
requires pinch + zoom
each page requiresan almost full refresh
more clicks to find relevant content
no pinch + zoom
fewer clicks
much less bandwidth required
996.3 KB 81.2 KB
mobile optimised sites are far more network efficient
filter compress
http://www.flickr.com/photos/ulybug/152518872
large.jpg35.73 KB
media for each device appropriately resize and compress
http://www.flickr.com/photos/ulybug/152518872
media for each device appropriately resize and compress
medium.jpg10.69 KB
http://www.flickr.com/photos/ulybug/152518872
media for each device appropriately resize and compress
small.jpg4.57 KB
http://www.flickr.com/photos/ulybug/152518872
large.jpg35.73 KB
medium.jpg10.69 KB
small.jpg4.57 KB
media for each device appropriately resize and compress
/*! * jQuery JavaScript Library v1.4.4 * http://jquery.com/ * * Copyright 2010, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Thu Nov 11 19:04:53 2010 -0500 */(function( window, undefined ) {
// Use the correct document accordingly with window argument (sandbox)var document = window.document;var jQuery = (function() {
// Define a local copy of jQueryvar jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context ); },
// Map over jQuery in case of overwrite _jQuery = window.jQuery,
// Map over the $ in case of overwrite _$ = window.$,
// A central reference to the root jQuery(document) rootjQuery,
// A simple way to check for HTML strings or ID strings // (both of which we optimize for) quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
// Is it a simple selector isSimple = /^.[^:#\[\.,]*$/,
// Check if a string has a non-whitespace character in it rnotwhite = /\S/, rwhite = /\s/,
// Used for trimming whitespace trimLeft = /^\s+/, trimRight = /\s+$/,
about formatting & style... devices don’t care
(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false" false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.dat(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj; A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||""); b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject= this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b. fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false); E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",b.ready);var j=false;
and JSON/XML data... minify all styles, scripts
data formats do matter...
XML JSON
94 KB 76 KB
same data, 20% lighter...
XML
18.5 KB 14 KB
JSON
make a huge difference... and compression can
80% smallerwhen compressed
http://www.flickr.com/photos/spine/436111793
but unpacking requires time...
XMLCSS JSHTML JSON
?not always a good
idea for everything...
can impact browser performance uncompressing data
use strategically
...thanks to @ for the reminder!
...seriously?
7.1MB of audio data compressed to 1.2MB using PNG formathttp://audioscene.org/scene-files/yury/pngencoding/sample.html
creative + efficient ways... reuse existing data formats in
bbc.co.ukproxy server
free + unlimited bandwidth
rendered + optimised on proxy server...
OBML* HTML
*OBML (Opera Binary Markup Language) is highly optimised for mobile networks + devices.
off-load to the server...proxy browser
limited + costlybandwidth
sparklineshttp://insideanalytics.blogspot.com/2006/09/busy-but-good-dashboard.html
can significantly reduce data transfer ...a little information design
1 year of data <1KB
filter compress cache
http://www.flickr.com/photos/fabricio/1576392520
eventually gets expensive... moving the same bits around
http://www.flickr.com/photos/seattlemunicipalarchives/3762792170
they can be reused in the future... conveniently store bits so
CSS
HTML
jQuery
JSON
local cache network data
0 KBJS
via headers, manifests, etc. new data requests
7.5 KB
every HTTP request adds up
cache as much as possible...
0 KB
0 KB
0 KB
0 KB
18 KB
14 KB
these are only downloaded once...
must be requested from the network
filter compress cache communicate
Settings > BandwidthSettings to enable/disable (non-roaming) data access, as well as provide a means of limiting data use.
Settings > Bandwidth > Usage ProfileSetting to determine how applications accessing the Internet via operator networks should use data services.
global seings could be used by other applications to determine how they use the network...
doesn’t currently exist – just an idea...
On more teeny button...Add an extra button that launches a ‘Usage Profile’...
Usage ProfilesApplications could provide users with ‘usage profiles’ where their data consumption within each application is easily and instantly communicated.
doesn’t currently exist – just an idea...
Loading...Mobile browsers currently provide a means of displaying download progress.
Loading revisited...It wouldn’t be a huge stretch to add a simple status bar that displays the total KB (or MB’s!) being downloaded.
communicate
doesn’t currently exist – just an idea...
...equivalent efficiency ratings for data?
point of differentiation
doesn’t currently exist – just an idea...
filter compress cache communicate
oh, and don’t forget...
filter compress cache communicateoff-load
http://www.flickr.com/photos/yodelanecdotal/4092671973
activities and services to Wi-Fi... off-load high bandwidth
No Wi-Fi Network AvailableApplication simply chews up 3G data allowance without warning.
Option to defer activity due to lack of Wi-FiApplication alerts the user to the lack of Wi-Fi connectivity and prompts them to continue.
doesn’t currently exist – just an idea...
filter compress cache communicateoff-load
http://www.flickr.com/photos/lingaraj/2415084235
efficiency is essential... design for network
luxury it currently is...
http://www.flickr.com/photos/campuspartymexico/4102296282
mobile data shouldn’t be the
– @timberners_lee
thank you
http://www.slideshare.net/bryanrieger/the-end-of-unlimited-bandwidth