theendofunlimitedbandwidth 101130124830-phpapp01 (1)

Post on 18-Nov-2014

573 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

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,

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

top related