giving technology to the world
DESCRIPTION
A talk in Yahoo how to write sample code and examples that make people want to use your technology. Audio is available at archive.org: http://www.archive.org/details/GivingTechnologyToTheWorldTRANSCRIPT
Givingtechnologytotheworld.
Advoca4ng,ShowcasingandExplaining
Chris4anHeilmann,Yahoointernaltalk,Sunnyvale,California,04/02/2010
Disclaimer:Iwillinthispresenta4oncomplainaboutsomeexamplesthatareliveonwebsites.IdothiscauseIhaveachancetochangethemandtoencourageustodobeKer.Idorealisethatitiseasytojudgedecisionswiththebenefitouthindsight‐butthisisnotanexcusetorepeatmistakesofthepast.Complacencyistheenemyofinnova4onandcommunica4on.
Wri4nggreattechnologyisathinggooddevelopersdo.
Explainingthetechnologytoothers,makingitunderstandableandmaintainableisatotallydifferentthing.
Thereareafewthingsthatmakeadeveloperabadadvocateoftechnology.
1. WeknowthesubjectmaKer.2. Wearenotknownforour
pa4ence.3. Wehavetogothroughalotof
painandseethisasausefullearningexperienceforeverybody.
4. Thisisallsoobvious!Goodcodeexplainsitself!
Ontheotherhand,salesandmarke4ngpeoplearebadtechadvocates.
1. Thebrandandourproductcomesfirst.
2. Thereisagoodandposi4vestoryineverything.
3. Itisaboutthefun,connec4ngwithotherpeopleanddoinglikecooltechstuff‐andlike,otherstuff.
4. Thereisnocompe44on!
Goodtechadvocacyisamashup.
Tosucceedingivingtechtotheworldyouhavetochangeyourapproach.
Usethis!Itrocks!
Here’saproblemandthisisasolu4on.
Themainthingtoanswertoanyenduseranddeveloperoutthereis:
What is in it for me?
Developersarebusypeopleanddon’thave4metoreadlongdocuments.
Detaileddocumenta4onisneeded,butisonlyusedwhenthingsalreadywentwrong.
Inordertogetpeopletocareandgetthemtoplaywithwhatyouoffer,youneedasimplewayin.
Someexamples.
hKp://keywordfinder.org/
hKp://icant.co.uk/geomaker/index.php
hKp://isithackday.com/hacks/placemaker/tweet‐loca4ons.php
hKp://icant.co.uk/goohoobi/index.php?research
hKp://developer.yahoo.com/yui/grids/builder/
hKp://developer.yahoo.com/yui/grids/builder/
hKp://developer.yahoo.com/yui/ar4cles/hos4ng/#configure
YQLhKp://developer.yahoo.com/yql/console/
Bringthedataoutintotheopen‐assoonaspossible.
Keeptheeyeontheendresultandexplainthewaytogetthere.
ThisexpectsmetodownloadtheSDK,getanauthen4ca4oncode,authen4cateandthenIgetsomedata.
select*fromflickr.photos.searchwheretext="panda"limit3select*fromrsswhereurl=”hKp://rss.news.yahoo.com/rss/topstories”and4tlelike"%China%"
Thedata,howeverdoesn’tneedanyauthen4ca4on.
Thisisacommonerror‐packingtoomuchinforma4onintoanexample.
UsingYQLiseasy!(PHP)
UsingYQLiseasy!(JavaScript)
Explainthewaytothedata,don’ttrytogetitalldoneinonestep.
An4cipatestumblingblocks,andwritethestorytothefullresults.
• Here’showtogetpublicdata.• Here’showtogetprivatedata.• Here’showtousethereturnedinforma4on.
hKp://maps.google.com/maps/api/sta4cmap?sensor=false&size=300x300&maptype=roadmap&markers=color:blue|label:I|37.4225,‐122.14246&key={MAPKEY}
Knowyourenvironment.
Knowyourenvironment.
• Writedefensivecode• Checkonlinestatus• Listdependenciesveryearly• Provideabuildandtestscript• Provideademokey
Makeiteasytouseyourcode.• Providealivedemo/showscreencast
• Provideafulldownload(GitHub)• Offerhos4ngifneeded• Documentfulldownloadandlinkbacktoliveexample.
Writeexcellentcopyandpastecode.
• Linkallresources• Providethefullscriptupfront• Validateandsecureyourcode• Usebestprac4ces
Bonustricks:• Showhowyourcodeplayswellwithothers(successfulproducts)
• Giveexampleshowusingyourproductmadeotherssuccessful
• Advocatemaintainableandreusablecodewithyourexamples.
Samplecodeshouldbethecleanestandbestcodeyoueverwriteinyourcareer.
Anythingyoudoinsamplecodewillbeusedandimitated.
Ifyoudoagoodjob,youcanhelpteachgreatdevelopersoftomorrow.
Ifyoudoabadjob,youcausetruisms,badcodingprac4cesandfailatadvoca4ngyourselfandyourcompanyasthoughtleaders.
Themaintricktogreatdocumenta4onandexamplesiscollabora4on.
Workwithsomeonetoaskyoutherightques4onsandchallengeyoutocreatearock‐soliddemo.
Chris4anHeilmannhKp://wait‐4ll‐i.comhKp://developer‐evangelism.comhKp://twiKer.com/codepo8
Thanks!