Go to hell Flash, we don't
  need you anymore!
                                  by
                     Michał Budzynski
                          @michalbe
Go to hell Flash, we don't
  need you anymore!
                                  by
                     Michał Budzynski
                          @michalbe
Who's that guy?




@michalbe
Who's that guy?
JavaScript developer
from Warsaw, Poland




@michalbe
Who's that guy?
        Firefox OS Team at Mozilla




@michalbe
Who's that guy?
Open web game
developer




@michalbe
Who's that guy?
            Author of stupid web demos




@michalbe
Who's that guy?
            Resident Evil fan <3 <3 <3




@michalbe
Who's that guy?
            Resident Evil fan <3 <3 <3




@michalbe
Who's that guy?
                 Resident Evil fan <3 <3 <3




                                                                     Other stuff
                                                                     Resident Evil
                                                                     My life




0%   10%   20%      30%   40%   50%   60%   70%   80%   90%   100%


@michalbe
Who's that guy?
                 Resident Evil fan <3 <3 <3




                                                                     Other stuff
                                                                     Resident Evil
                                                                     My life




0%   10%   20%      30%   40%   50%   60%   70%   80%   90%   100%


@michalbe
Why I don't like Flash?




@michalbe
Why I don't like Flash?
            As a user.




@michalbe
Why I don't like Flash?
            As a user.




@michalbe
Why I don't like Flash?
            As a developer.




@michalbe
Why I don't like Flash?
            As a developer.




@michalbe
Why I don't like Flash?
            As a developer.


            But that's not the worst thing.




@michalbe
Why I don't like Flash?
            As a developer.




@michalbe
HTML5 vs Flash




@michalbe
HTML5 vs Flash




@michalbe
HTML5 vs Flash




@michalbe
HTML5 vs Flash




@michalbe
HTML5 vs Flash
               2001 DHTML


               FLASHKILLA!!1!!




@michalbe
HTML5 vs Flash
               2001 DHTML




@michalbe
HTML5 vs Flash
               2005 AJAX


               FLASH KILLER!!!




@michalbe
HTML5 vs Flash
               2010 HTML5


               Flash is dead.




@michalbe
HTML5 vs Flash




@michalbe
            FEATURES
HTML5 vs Flash -
               features




@michalbe
HTML5 vs Flash -
               features




@michalbe
HTML5 vs Flash -
            Demo! features




@michalbe
HTML5 vs Flash -
                   features




        P2P connection in the browser

@michalbe
HTML5 vs Flash -
                   features



        EasyWebSocket by @jeromeetienne
        http://easywebsocket.org
@michalbe
HTML5 vs Flash -
                   features




        Web RTC http://www.webrtc.org/

@michalbe
HTML5 vs Flash


      SERVICES

@michalbe
HTML5 vs Flash -
                   services



        Mochimedia & Kongregate

@michalbe
HTML5 vs Flash -
                      services




          BlueVia by Telefonica
@michalbe
HTML5 vs Flash -
                    services




            FlexPi by @FlyWithMonkey

@michalbe
HTML5 vs Flash -
                   services




            FlashGameLicense.com

@michalbe
HTML5 vs Flash -
                   services




            MarketJS.com

@michalbe
HTML5 vs Flash




                  TOOLS
@michalbe
HTML5 vs Flash - tools




@michalbe
HTML5 vs Flash - tools




            Cloud9IDE

@michalbe
HTML5 vs Flash - tools




            Just a code editor

@michalbe
HTML5 vs Flash - tools




            BLYSK @blyskapp http://bly.sk

@michalbe
BLYSK




@michalbe
BLYSK




@michalbe   THE MANSION
BLYSK – the Mansion
            Build system inspired by Python syntax




@michalbe
BLYSK – the Mansion
            Creating new module:


            java -jar js.jar mansion.js foo




@michalbe
#export foo

            #import bar
            #import fooBar as fbar

            (function foo(@modules) {
                //variables
                var lorem = 'impsum';

               //logic of public functions in here
               var hwdp = function foo_hwdp(){
                    bar.drink(fbar.everything);
                    alert('ACAB!');
                }

               //and references here:
                return {
                    hwdp: hwdp
                }
            })(@modules);
@michalbe
BLYSK – the Mansion
            Building:
            java -jar js.jar mansion.js build




@michalbe
/* BLYSK - HTML5 Animation Tool
            * http://bly.sk
            */

            (function(){

            /*FILE: core/bar/bar.js*/
            //#export bar

            var barModule = (function bar() {
            ...
            }();

            /*FILE: core/foo/foo.js*/
            //#export foo

            //#import bar
            //#import fooBar as fbar

            var fooModule = (function foo(bar, fbar) {
                ...
@michalbe   })(barModule, fooBarModule);
BLYSK – the Mansion
            Demo!




@michalbe
BLYSK – the Mansion
            Pros of The Mansion:
            1. Performance




@michalbe
BLYSK – the Mansion
            Pros of The Mansion:
            1. Performance
            2. Great minification of the file




@michalbe
BLYSK – the Mansion
            Pros of The Mansion:
            1. Performance
            2. Great minification of the file




@michalbe
BLYSK – the Mansion
            Pros of The Mansion:
            1. Performance
            2. Great minification of the file
            3. Easy to manage modules




@michalbe
BLYSK – the Mansion
            Pros of The Mansion:
            1. Performance
            2. Great minification of the file
            3. Easy to manage modules
            4. Commandline helpers




@michalbe
BLYSK – the Mansion
            Cons of The Mansion:
            1. Still too hacky & not native for JavaScript




@michalbe
BLYSK – the Mansion
            Open Source!




              https://github.com/Blysk/The-MANSION
@michalbe
BLYSK – modules




@michalbe
BLYSK – modules




@michalbe   Jill
BLYSK – modules
            jill.on(eventName, function);
            jill.fire(eventName, data);
            jill.out(eventName, function);




@michalbe
BLYSK – modules




@michalbe
BLYSK – modules


               Barry

@michalbe
BLYSK – modules

barry.$ = function $(id){
    var firstSign = id.charAt(0);
    return firstSign === '.' ? document.getElementsByClassName(id.replace(/./, ''))
            firstSign === '#' ? document.getElementById(id.replace(/#/, '')) :
            firstSign === '<' ? document.createElement(id.replace(/<|/|>/g, '')) :
            false;
}




@michalbe
BLYSK – modules

  barry.$('#domID');
  barry.$('.domClass');
  barry.$('<domElement>');

  barry.MOUSE; //MOUSE = {x: XX, y: XX};




@michalbe
BLYSK – modules




@michalbe
BLYSK – modules




    Leon & Claire
Rebecca
 @michalbe    Chris
BLYSK – problems &
                              solutions
            1. Canvas is just a bitmap




@michalbe
BLYSK – problems &
                             solutions
            Converting rasters to vectors – storage of the actions

            rebecca.put();




@michalbe
BLYSK – problems &
                             solutions
            Converting rasters to vectors – storage of the actions

            rebecca.put(chris.activeTool);




@michalbe
BLYSK – problems &
                             solutions
            Converting rasters to vectors – storage of the actions

            rebecca.put(chris.activeTool, barry.MOUSE);




@michalbe
BLYSK – problems &
                              solutions
            1. Canvas is just a bitmap
            2. Canvas is just a bitmap




@michalbe
BLYSK – problems &
            Click!   solutions




@michalbe
BLYSK – problems &
                             solutions
            Actions with elements - selecting

            rebecca.getAll();




@michalbe
BLYSK – problems &
                             solutions
            Actions with elements - selecting

    jill.fire(EventRedrawElement + toolId, {context: bufferCtx,
    element: element});




@michalbe
BLYSK – problems &
                             solutions
            Actions with elements - selecting

   bufferData = bufferCtx.getImageData(barry.MOUSE.x barry.MOUSE.y,
   1, 1);

   if (bufferData.data[3] > 0) {
      //all the actions
      ...
      return;
   } else {
      //clicked nowhere
      ...
   }


@michalbe
BLYSK – problems &
                              solutions
            1. Canvas is just a bitmap
            2. Canvas is just a bitmap
            3. Saving movies in different formats




@michalbe
BLYSK – problems &
                 solutions




@michalbe
BLYSK – problems &
                  solutions




Nemezis
 @michalbe
BLYSK – problems &
                            solutions
            Converting Canvas to other formats




@michalbe
BLYSK – the future




@michalbe
BLYSK – the future
            1. End of basic development this year




@michalbe
BLYSK – the future
            1. End of basic development this year
            2. Mobile versions (mostly for tablets)




@michalbe
BLYSK – the future
            1. End of basic development this year
            2. Mobile versions (mostly for tablets)
            3. Free to use




@michalbe
BLYSK – the future
            1. End of basic development this year
            2. Mobile versions (mostly for tablets)
            3. Free to use
            4. Open source




@michalbe
BLYSK – MOAAR!!1!ONE
                     http://bly.sk
                     @blyskapp
                http://github.com/blysk




@michalbe
@michalbe
Warsaw, Poland
            19th-21st of September 2012
                http://onGameStart.com
@michalbe               @onGameStart
@michalbe
Conference at the end of
                   the world




@michalbe
Conference at the end of
                   the world




@michalbe
Conference at the end of
                   the world



                        'Arctowski' Polish Antarctic Station
                                       Summer 2012/2013
                                     http://AntarcticJs.com
@michalbe                                    @AntarcticJS
Conference at the end of
                   the world




@michalbe
Conference at the end of
                   the world




@michalbe
Conference at the end of
                   the world




@michalbe
Conference at the end of
                   the world
QUESTIONS?
 @michalbe
@michalbe
Conference at the end of
                   the world

              Thanks.
@michalbe

Go to hell Flash, we don't need you anymore! GothamJs