Progressing and enhancing

Christian Heilmann
Christian HeilmannSenior Program Manager Developer Experience and Evangelism at Microsoft
Progressing
and enhancing.



                          Chris&an Heilmann
         SWDC, Stockholm, Sweden, June 2010
Our job as web
developers is to
create working
solutions.
End users should
not have to care
what technology we
used.
All they should get
is an interface that
works and helps
them reach their
goal.
They need and want
to fulfil a task - not
marvel at our
craftsmanship.
Progressing and enhancing
The main problem is
that we love
marvelling at our
craftsmanship.
We tend to get
terribly excited
about things in our
little world.
And play with them
to push the
envelope.
Progressing and enhancing
We measure our
successes by how
much we achieve in
our own world...
...rather than how
many end users we
made happy.
This also leads to an
amazing amount of
truisms floating
around.
“Ev
        ery
  Java       bod
       Scr       yh
frea        ipt        as
     ks t       - on
          urn         ly
               it of
                     f.”
d
                         n !”
                      g a s
                    ra day
                   d e
                  t es
                ec h
              p
            ex es t
         le ac
       op rf
  P  e
“
        in te
d r op
ns  t he
               m ea           e
        i Pa d           a sw
 “ T he        de si gn
        fw eb
en d  o
               ow  i t.”
           kn
“Th
easi  is c
          an b
    ly w       e do
         ith        ne
             jQu
                 ery”
And also totally
wrong statements.
“My
   favou
 HTM     rite p
                art of
      L5 is
  locati     geo
        on!”
erfu lp art
        ost  pow
“T he m              sitions
       S3   is t ran
 of CS             tion s.”
    and  an  ima
To console
ourselves to see
that we are right,
we have statistics.
But three out of five
people know that
76.3% of statistics
are made up on the
spot.
Let me tell you what
happens when you
give out truisms like
that.
Every time you say
things like that...




  This dog will disapprove...   ...and these will not get fed.
The biggest fallacy
in our ways is to
pick a pet
technology...
...and then do
frigging everything
in it!
Ligh
    tbox
           in pu
                re CS
                     S!
look  like
   hin gs that
T               ows   95
    ba dW   ind
                   Can    vas
       nsa vers in
s cree           scr ipt!
      and   Java
Now with fr
           ee 100% me
                     mory use!
Even if we don’t use
the technology - we
call it a CSS3 or
HTML5 solution.
We arrived at:

 DHTML5
                 With thanks to Scott Schiller
It is ironic that we
don’t plan for non-
JS environments
but for IE6
fallbacks!
With the fallback
being expression()
and IE filters.
Which did almost
everything WebKit
extensions do now.
But without style
and on much slower
hardware.
expression() and
filters are evil and
have to die!
The main problem is
our approach.
We have to
emancipate
ourselves from the
idea of the interface
as the starting
point.
If we build the
simplest solution
first we can enhance
it to whatever we
want.
Including mobile!
A lot of “using
newest technology”
is a lame excuse for
not architecting our
solutions.
There are real issues
HTML5 and CSS3
need to solve:
★   Security
★   Hardware Access (Camera, Location, 3D
    accelleration)
★   Native rich controls
★   Layout
★   Internationalisation
★   Accessibility
★   Rich Media (video, audio)
For now, your only
chance to build
good web apps is
progressive
enhancement.
Demo time!




http://isithackday.com/demos/warwickshire/
http://github.com/codepo8/warwickshire
http://www.youtube.com/watch?v=_uAOyzw50PY
Progressing and enhancing
Demo time!




http://www.youtube.com/watch?v=i_1sVnNkN2M
http://isithackday.com/hacks/flickrcollector/
http://github.com/codepo8/flickrcollector
http://isithackday.com/hacks/flickrcollector/
http://github.com/codepo8/flickrcollector
Both these solutions
started the same
way.
Progressing and enhancing
Progressing and enhancing
Getting data from a
web service on the
server and
rendering out HTML
for CSS and JS to
access.
If you want to build
things for the web
you will need to use
all these
technologies.
Otherwise you are
reliant on software
vendors - and that
is a bad idea.
We did this for IE6
and that is why
there are so many
bad web
applications out
there.
It seems to be
impossible to get
rid of IE6 because
of that - but I have a
solution!
The Amelie approach
to the IE6 problem.
Despite of what I
said earlier, there is
one filter we can
use to solve one of
our problems.
One of the most
pointless IE filters
ever created is
blur().
  http://msdn.microsoft.com/en-us/library/
         ms532979%28VS.85%29.aspx
No filter



Slight filter
Applied randomly
every few seconds
with a slight blur
this can be
effective.
If we build the
simplest solution
first we can enhance
it to whatever we
want.
http://www.youtube.com/watch?v=pLVuRX-iZbQ
We leave this in our
code for a few
months.
Maybe persuade
Google to add it to
AdSense!
When people
complain, we say
that our code is bug
free - it is a mystery.
Then we get some
“experts” to tell the
press that it might
be software fatigue.
=
That way we turn
IE6 from a technical
problem to a health
and safety issue!
And corporate HR
carries more clout
than corporate IT!
If we all
work
together,
we can
win this!
http://icant.co.uk/ie6-amelie/
Christian Heilmann
http://wait-till-i.com        Thanks!
http://developer-evangelism.com
http://twitter.com/codepo8
1 of 70

Recommended

Stego.ppt by
Stego.pptStego.ppt
Stego.pptMihir Shah
197 views30 slides
Wikis Cluster Presentation by
Wikis Cluster PresentationWikis Cluster Presentation
Wikis Cluster Presentationdigikids
280 views20 slides
Faster! Faster! Accelerate your business with blazing prototypes by
Faster! Faster! Accelerate your business with blazing prototypesFaster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesOSCON Byrum
4.5K views56 slides
The Invisible Traceback by
The Invisible TracebackThe Invisible Traceback
The Invisible TracebackMel Chua
698 views47 slides
Stop Worrying & Get On With It: Progressive Enhancement & Intentional Degrada... by
Stop Worrying & Get On With It: Progressive Enhancement & Intentional Degrada...Stop Worrying & Get On With It: Progressive Enhancement & Intentional Degrada...
Stop Worrying & Get On With It: Progressive Enhancement & Intentional Degrada...elliotjaystocks
1.9K views230 slides
Fowa2010 progressive-enhancement by
Fowa2010 progressive-enhancementFowa2010 progressive-enhancement
Fowa2010 progressive-enhancementChristian Heilmann
3.7K views54 slides

More Related Content

Similar to Progressing and enhancing

Reasons to be cheerful - Fronteers 2010 by
Reasons to be cheerful - Fronteers 2010Reasons to be cheerful - Fronteers 2010
Reasons to be cheerful - Fronteers 2010Christian Heilmann
2.6K views134 slides
Digital Destinies by
Digital DestiniesDigital Destinies
Digital DestiniesUniversity of Hertfordshire
958 views57 slides
The prestige of being a web developer by
The prestige of being a web developerThe prestige of being a web developer
The prestige of being a web developerChristian Heilmann
2.8K views86 slides
Short URLs, Big Fun by
Short URLs, Big FunShort URLs, Big Fun
Short URLs, Big FunHilary Mason
9.6K views83 slides
Monomobile by
MonomobileMonomobile
MonomobileJérémie Laval
822 views29 slides
Future Designers Workshop by
Future Designers WorkshopFuture Designers Workshop
Future Designers WorkshopAndrzej Szymczak
289 views37 slides

Similar to Progressing and enhancing(20)

Short URLs, Big Fun by Hilary Mason
Short URLs, Big FunShort URLs, Big Fun
Short URLs, Big Fun
Hilary Mason9.6K views
Intuition & Use-Cases of Embeddings in NLP & beyond by C4Media
Intuition & Use-Cases of Embeddings in NLP & beyondIntuition & Use-Cases of Embeddings in NLP & beyond
Intuition & Use-Cases of Embeddings in NLP & beyond
C4Media402 views
What Developers Need To Know About Visual Design by Ben Hall
What Developers Need To Know About Visual DesignWhat Developers Need To Know About Visual Design
What Developers Need To Know About Visual Design
Ben Hall4.1K views
What Designs Need To Know About Visual Design by Ben Hall
What Designs Need To Know About Visual DesignWhat Designs Need To Know About Visual Design
What Designs Need To Know About Visual Design
Ben Hall809 views
How to stop sucking and be awesome instead by codinghorror
How to stop sucking and be awesome insteadHow to stop sucking and be awesome instead
How to stop sucking and be awesome instead
codinghorror56.9K views
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01 by Hugo Pinto
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Hugo Pinto251 views
Howtostopsucking by Hugo Pinto
HowtostopsuckingHowtostopsucking
Howtostopsucking
Hugo Pinto231 views
Presentation microsoft by LauraGrenade
Presentation microsoftPresentation microsoft
Presentation microsoft
LauraGrenade101 views
'10 Great but now Overlooked Tools' by Graham Thomas by TEST Huddle
'10 Great but now Overlooked Tools' by Graham Thomas'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas
TEST Huddle720 views
SpringOne Tour: The Influential Software Engineer by VMware Tanzu
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
VMware Tanzu40 views
Just the basics_strata_2013 by Ken Mwai
Just the basics_strata_2013Just the basics_strata_2013
Just the basics_strata_2013
Ken Mwai402 views
Computation as a Co-Conspirator in Resisting its own Hegemony by zacharykaiser
Computation as a Co-Conspirator in Resisting its own HegemonyComputation as a Co-Conspirator in Resisting its own Hegemony
Computation as a Co-Conspirator in Resisting its own Hegemony
zacharykaiser505 views

More from Christian Heilmann

Develop, Debug, Learn? - Dotjs2019 by
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Christian Heilmann
1.1K views55 slides
Hinting at a better web by
Hinting at a better webHinting at a better web
Hinting at a better webChristian Heilmann
2.8K views33 slides
Taking the "vile" out of privilege by
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
1K views64 slides
Seven ways to be a happier JavaScript developer - NDC Oslo by
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
1.5K views52 slides
Artificial intelligence for humans… #AIDC2018 keynote by
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteChristian Heilmann
1.2K views56 slides
Killing the golden calf of coding - We are Developers keynote by
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
3.1K views35 slides

More from Christian Heilmann(20)

Seven ways to be a happier JavaScript developer - NDC Oslo by Christian Heilmann
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
Christian Heilmann1.5K views
Artificial intelligence for humans… #AIDC2018 keynote by Christian Heilmann
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
Christian Heilmann1.2K views
Killing the golden calf of coding - We are Developers keynote by Christian Heilmann
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
Christian Heilmann3.1K views
Five ways to be a happier JavaScript developer by Christian Heilmann
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
Christian Heilmann859 views
Progressive Web Apps - Covering the best of both worlds - DevReach by Christian Heilmann
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
Christian Heilmann956 views
Progressive Web Apps - Covering the best of both worlds by Christian Heilmann
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
Christian Heilmann799 views
Non-trivial pursuits: Learning machines and forgetful humans by Christian Heilmann
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
Christian Heilmann531 views
Progressive Web Apps - Bringing the web front and center by Christian 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
Christian Heilmann1.2K views
The Soul in The Machine - Developing for Humans (FrankenJS edition) by Christian 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)
Christian Heilmann917 views

Recently uploaded

Class 9 lesson plans by
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plansTARIQ KHAN
53 views34 slides
MercerJesse2.1Doc.pdf by
MercerJesse2.1Doc.pdfMercerJesse2.1Doc.pdf
MercerJesse2.1Doc.pdfjessemercerail
280 views5 slides
The Value and Role of Media and Information Literacy in the Information Age a... by
The Value and Role of Media and Information Literacy in the Information Age a...The Value and Role of Media and Information Literacy in the Information Age a...
The Value and Role of Media and Information Literacy in the Information Age a...Naseej Academy أكاديمية نسيج
61 views42 slides
Classification of crude drugs.pptx by
Classification of crude drugs.pptxClassification of crude drugs.pptx
Classification of crude drugs.pptxGayatriPatra14
104 views13 slides
Meet the Bible by
Meet the BibleMeet the Bible
Meet the BibleSteve Thomason
69 views80 slides
Collective Bargaining and Understanding a Teacher Contract(16793704.1).pptx by
Collective Bargaining and Understanding a Teacher Contract(16793704.1).pptxCollective Bargaining and Understanding a Teacher Contract(16793704.1).pptx
Collective Bargaining and Understanding a Teacher Contract(16793704.1).pptxCenter for Integrated Training & Education
96 views57 slides

Recently uploaded(20)

Class 9 lesson plans by TARIQ KHAN
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plans
TARIQ KHAN53 views
Classification of crude drugs.pptx by GayatriPatra14
Classification of crude drugs.pptxClassification of crude drugs.pptx
Classification of crude drugs.pptx
GayatriPatra14104 views
EIT-Digital_Spohrer_AI_Intro 20231128 v1.pptx by ISSIP
EIT-Digital_Spohrer_AI_Intro 20231128 v1.pptxEIT-Digital_Spohrer_AI_Intro 20231128 v1.pptx
EIT-Digital_Spohrer_AI_Intro 20231128 v1.pptx
ISSIP407 views
Monthly Information Session for MV Asterix (November) by Esquimalt MFRC
Monthly Information Session for MV Asterix (November)Monthly Information Session for MV Asterix (November)
Monthly Information Session for MV Asterix (November)
Esquimalt MFRC91 views
CUNY IT Picciano.pptx by apicciano
CUNY IT Picciano.pptxCUNY IT Picciano.pptx
CUNY IT Picciano.pptx
apicciano56 views
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant... by Ms. Pooja Bhandare
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...
Ms. Pooja Bhandare166 views
The basics - information, data, technology and systems.pdf by JonathanCovena1
The basics - information, data, technology and systems.pdfThe basics - information, data, technology and systems.pdf
The basics - information, data, technology and systems.pdf
JonathanCovena1156 views
ISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks Effectively by PECB
ISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks EffectivelyISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks Effectively
ISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks Effectively
PECB 651 views

Progressing and enhancing