SlideShare una empresa de Scribd logo
1 de 68
Descargar para leer sin conexión
How being lazy makes you
a be2er developer.
Christian Heilmann – Web 2.0 Expo, Prague – October 2009
cleverly
I am a developer evangelist.
h2p://developer‐evangelism.com/web.php
<dfn>cleverly lazy</dfn>
Lazy:
“I don’t want to do that.”
Cleverly lazy:
“I don't want to do that ever
again so I do it right this Eme.”
Lazily build products:
Do the job, but are impossible
to maintain.
Cleverly lazily build products:
Do the job, are easy to
understand, extend and are
built on a solid base.
Our job: evolving the web
To do this, we need to be free
to do new things.
Problem is that as developers,
we stand on our own way.
The biggest developer trap.
h"p://www.flickr.com/photos/snappa2006/3194326965/
Complex
Simple
Feedback
Features
The feature
loop
We don't develop the web ‐ we
fill it up with soluEons to the
same problem all of which are
half done.
This is my soluEon, and it is
be2er than anybody elses,
because...
Short a2enEon span.
Code wrecks are a security
issue!
h"p://www.flickr.com/photos/paleontour/2489523776/
Browsers suck!
Things you need to know as a
web developer:
★ The technologies involved
★ How browsers deal with these technologies and how
they fail to support them
★ Security concerns and a2ack vectors
★ Usability and accessibility of the product
★ InternaEonalisaEon of our products
★ Performance concerns
★ MulEple plaXorm support
★ Flexibility of the interface
Good
developers are
like librarians.
h2p://www.flickr.com/photos/feliciaday/3828388329/
A solid foundaEon.
h"p://www.flickr.com/photos/mangpages/2111892822/
Building with components.
http://www.flickr.com/photos/seven13avenue/2080281038/
A good debugging environment.
h"p://www.flickr.com/photos/anijdam/3587129389/
Planning for extension.
h"p://www.flickr.com/photos/anniemole/103641208/
Write documentaEon.
h"p://www.flickr.com/photos/tnarik/366393127/
h2p://developer.yahoo.com/yui/
h2p://developer.yahoo.com/ypa2erns
http://ui.jquery.com/
http://ui.jquery.com
h2p://developer.yahoo.com/yui/arEcles/skinning/
DocumentaEon.
h2p://developer.yahoo.com/yui/grids/builder/
h2p://developer.yahoo.com/yui/examples/
h2p://developer.yahoo.com/performance/
h2p://developer.yahoo.com/yslow/
Using the web.
CMS
Using APIs.
The Yahoo Query Language, or
short YQL is a unified interface
language to the web.
h2p://developer.yahoo.com/yql/
select {what} from {source} where
{conditions} | {filters}
http://query.yahooapis.com/
v1/public/yql?q={query}
&format={format}
For example:
select * from geo.places where
text='london,uk'
Get only the where on earth ID
select woeid from geo.places
where text='london,uk'
Then mix:
select id from
flickr.photos.search where woe_id
in (select woeid from geo.places
where text='london,uk') and
license=4
Then mix:
select id from
flickr.photos.search where woe_id
in (select woeid from geo.places
where text='london,uk') and
license=4
And get all the info...
select * from flickr.photos.info
where photo_id in (select id from
flickr.photos.search where woe_id
in (select woeid from geo.places
where text='london,uk') and
license=4)
http://isithackday.com/hacks/cantine/
index.php?loc=covent+garden
Display the results in a few lines...
http://isithackday.com/hacks/ajaxexperience/flickrgeophotos.html
http://isithackday.com/hacks/cantine/
index.php?loc=covent+garden
h2p://isithackday.com/hacks/canEne/
Or use already exisEng widgets
h2p://isithackday.com/hacks/frankfurt
Learn YQL by doing
http://developer.yahoo.com/yql/console/
Any data will do...
select * from
atom
csv
feed
html
json
microformats
rss
xml
Any data will do...
http://www.dcs.gla.ac.uk/~joy/fun/jokes/TV.html
http://isithackday.com/hacks/scraping-with-yql/
http://github.com/spullara/yql-tables/tree/master
Christian Heilmann
http://wait-till-i.com
http://developer-evangelism.com
http://twitter.com/codepo8
Thanks!
h2p://www.flickr.com/photos/mringlein/3463288828/

Más contenido relacionado

La actualidad más candente

Final PPP Timothy Faulkenberry
Final PPP Timothy FaulkenberryFinal PPP Timothy Faulkenberry
Final PPP Timothy Faulkenberrytcberry15
 
Future proofing design work with Web components
Future proofing design work with Web componentsFuture proofing design work with Web components
Future proofing design work with Web componentsbtopro
 
Vikki Windsor Day 4 Blogs Mashups Wikis Etc.
Vikki Windsor Day 4 Blogs Mashups Wikis Etc.Vikki Windsor Day 4 Blogs Mashups Wikis Etc.
Vikki Windsor Day 4 Blogs Mashups Wikis Etc.vpriddle
 
Scenic City Summit 2018 - Progressive Web Apps 101
Scenic City Summit 2018 - Progressive Web Apps 101Scenic City Summit 2018 - Progressive Web Apps 101
Scenic City Summit 2018 - Progressive Web Apps 101Frances Coronel
 
The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)
The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)
The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)Dave Olsen
 
Ed tech presentation
Ed tech presentationEd tech presentation
Ed tech presentationZeynep
 
Free Software Presentation Dkg
Free Software Presentation DkgFree Software Presentation Dkg
Free Software Presentation Dkglightybug
 
Behaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisBehaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisHugo Lopes Tavares
 
Manage custom options pages in Wordpress
Manage custom options pages in WordpressManage custom options pages in Wordpress
Manage custom options pages in WordpressSimone D'Amico
 
How to Make WordPress Your Friend
How to Make WordPress Your FriendHow to Make WordPress Your Friend
How to Make WordPress Your Friendkerchmcc
 
SEO Before Yoast: WordCamp Rhode Island
SEO Before Yoast: WordCamp Rhode IslandSEO Before Yoast: WordCamp Rhode Island
SEO Before Yoast: WordCamp Rhode IslandKerch McConlogue
 
JavaScript & Animation
JavaScript & AnimationJavaScript & Animation
JavaScript & AnimationCaesar Chi
 
Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSTJ Stalcup
 
My Learning Style Presentation
My Learning Style PresentationMy Learning Style Presentation
My Learning Style Presentationguest16e403
 
Node.js 台灣,社群經驗分享 201312
Node.js 台灣,社群經驗分享 201312Node.js 台灣,社群經驗分享 201312
Node.js 台灣,社群經驗分享 201312Caesar Chi
 
Tech For Chairs Slides
Tech For Chairs SlidesTech For Chairs Slides
Tech For Chairs SlidesEric Castro
 

La actualidad más candente (20)

Final PPP Timothy Faulkenberry
Final PPP Timothy FaulkenberryFinal PPP Timothy Faulkenberry
Final PPP Timothy Faulkenberry
 
Future proofing design work with Web components
Future proofing design work with Web componentsFuture proofing design work with Web components
Future proofing design work with Web components
 
Vikki Windsor Day 4 Blogs Mashups Wikis Etc.
Vikki Windsor Day 4 Blogs Mashups Wikis Etc.Vikki Windsor Day 4 Blogs Mashups Wikis Etc.
Vikki Windsor Day 4 Blogs Mashups Wikis Etc.
 
HTML Resources
HTML ResourcesHTML Resources
HTML Resources
 
Scenic City Summit 2018 - Progressive Web Apps 101
Scenic City Summit 2018 - Progressive Web Apps 101Scenic City Summit 2018 - Progressive Web Apps 101
Scenic City Summit 2018 - Progressive Web Apps 101
 
The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)
The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)
The Death of Lorem Ipsum and Pixel-Perfect Content (MinneWebCon version)
 
Ed tech presentation
Ed tech presentationEd tech presentation
Ed tech presentation
 
Free Software Presentation Dkg
Free Software Presentation DkgFree Software Presentation Dkg
Free Software Presentation Dkg
 
Behaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisBehaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeis
 
Manage custom options pages in Wordpress
Manage custom options pages in WordpressManage custom options pages in Wordpress
Manage custom options pages in Wordpress
 
WordCamp Baltimore 2016
WordCamp Baltimore 2016WordCamp Baltimore 2016
WordCamp Baltimore 2016
 
How to Make WordPress Your Friend
How to Make WordPress Your FriendHow to Make WordPress Your Friend
How to Make WordPress Your Friend
 
SEO Before Yoast: WordCamp Rhode Island
SEO Before Yoast: WordCamp Rhode IslandSEO Before Yoast: WordCamp Rhode Island
SEO Before Yoast: WordCamp Rhode Island
 
JavaScript & Animation
JavaScript & AnimationJavaScript & Animation
JavaScript & Animation
 
Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSS
 
My Learning Style Presentation
My Learning Style PresentationMy Learning Style Presentation
My Learning Style Presentation
 
Mobile Web Talk
Mobile Web TalkMobile Web Talk
Mobile Web Talk
 
A Period of Transition
A Period of TransitionA Period of Transition
A Period of Transition
 
Node.js 台灣,社群經驗分享 201312
Node.js 台灣,社群經驗分享 201312Node.js 台灣,社群經驗分享 201312
Node.js 台灣,社群經驗分享 201312
 
Tech For Chairs Slides
Tech For Chairs SlidesTech For Chairs Slides
Tech For Chairs Slides
 

Destacado

Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013ZeroTurnaround
 
How being Lazy has made me a successful entrepreneur
How being Lazy has made me a successful entrepreneurHow being Lazy has made me a successful entrepreneur
How being Lazy has made me a successful entrepreneurSoren Beck Jensen
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
Confessions of Joe Developer
Confessions of Joe DeveloperConfessions of Joe Developer
Confessions of Joe DeveloperDaniel Greenfeld
 
Women on Boards, Europe’s progress, Spain Grupo Día Societé Générale case
Women on Boards, Europe’s progress, Spain Grupo Día Societé Générale caseWomen on Boards, Europe’s progress, Spain Grupo Día Societé Générale case
Women on Boards, Europe’s progress, Spain Grupo Día Societé Générale caseana maria llopis
 
Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...
Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...
Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...Nick Westergaard
 
Zend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestZend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestCarlos Buenosvinos
 
The Big Ideas from Social Brand Forum 2014
The Big Ideas from Social Brand Forum 2014The Big Ideas from Social Brand Forum 2014
The Big Ideas from Social Brand Forum 2014Nick Westergaard
 
Social Media at Work
Social Media at WorkSocial Media at Work
Social Media at WorkGohar Khan
 
Ambassadors Assemble! Making Your Community Your Brand's Superhero
Ambassadors Assemble! Making Your Community Your Brand's SuperheroAmbassadors Assemble! Making Your Community Your Brand's Superhero
Ambassadors Assemble! Making Your Community Your Brand's SuperheroNick Westergaard
 
An introduction to property based testing
An introduction to property based testingAn introduction to property based testing
An introduction to property based testingScott Wlaschin
 
Future Social: 10 Key Trends in Social Media
Future Social: 10 Key Trends in Social MediaFuture Social: 10 Key Trends in Social Media
Future Social: 10 Key Trends in Social MediaWe Are Social Singapore
 

Destacado (15)

Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
 
How being Lazy has made me a successful entrepreneur
How being Lazy has made me a successful entrepreneurHow being Lazy has made me a successful entrepreneur
How being Lazy has made me a successful entrepreneur
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
Confessions of Joe Developer
Confessions of Joe DeveloperConfessions of Joe Developer
Confessions of Joe Developer
 
Women on Boards, Europe’s progress, Spain Grupo Día Societé Générale case
Women on Boards, Europe’s progress, Spain Grupo Día Societé Générale caseWomen on Boards, Europe’s progress, Spain Grupo Día Societé Générale case
Women on Boards, Europe’s progress, Spain Grupo Día Societé Générale case
 
LinkedIn Social Spotlight
LinkedIn Social SpotlightLinkedIn Social Spotlight
LinkedIn Social Spotlight
 
Facebook Social Spotlight
Facebook Social SpotlightFacebook Social Spotlight
Facebook Social Spotlight
 
Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...
Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...
Social Media at Work: How Does Social Media Marketing Get Done — Who, Where &...
 
Zend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestZend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification Test
 
The Big Ideas from Social Brand Forum 2014
The Big Ideas from Social Brand Forum 2014The Big Ideas from Social Brand Forum 2014
The Big Ideas from Social Brand Forum 2014
 
Social Media at Work
Social Media at WorkSocial Media at Work
Social Media at Work
 
Ambassadors Assemble! Making Your Community Your Brand's Superhero
Ambassadors Assemble! Making Your Community Your Brand's SuperheroAmbassadors Assemble! Making Your Community Your Brand's Superhero
Ambassadors Assemble! Making Your Community Your Brand's Superhero
 
An introduction to property based testing
An introduction to property based testingAn introduction to property based testing
An introduction to property based testing
 
Future Social: 10 Key Trends in Social Media
Future Social: 10 Key Trends in Social MediaFuture Social: 10 Key Trends in Social Media
Future Social: 10 Key Trends in Social Media
 
Social Media for Business
Social Media for BusinessSocial Media for Business
Social Media for Business
 

Más de Christian Heilmann

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteChristian Heilmann
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteChristian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandChristian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerChristian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?Christian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachChristian Heilmann
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsChristian Heilmann
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansChristian Heilmann
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Christian Heilmann
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlChristian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)Christian Heilmann
 

Más de Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 

Being Cleverly Lazy