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.
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.
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
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.
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

Progressing and enhancing