• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
FITC '14 Toronto - Technology, a means to an end
 

FITC '14 Toronto - Technology, a means to an end

on

  • 4,392 views

Technology is fascinating, but should this be what drives us? What are the things you can do to differentiate yourself today? With all that noise, what are things you should be looking at? ...

Technology is fascinating, but should this be what drives us? What are the things you can do to differentiate yourself today? With all that noise, what are things you should be looking at?

In this talk, Thibault Imbert will look at the different technologies available today to build amazing experiences and what’s coming tomorrow. He will focus on the importance of learning, crafting and getting out of your comfort zone and most importantly, to never be religious about a technology.

Statistics

Views

Total Views
4,392
Views on SlideShare
4,316
Embed Views
76

Actions

Likes
73
Downloads
69
Comments
1

7 Embeds 76

https://twitter.com 52
http://chemistryband1.blogspot.com 7
https://www.blogger.com 6
http://faithbot.wordpress.com 5
http://cb591.blogspot.com 4
http://www.edu.xunta.es 1
http://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    FITC '14 Toronto - Technology, a means to an end FITC '14 Toronto - Technology, a means to an end Presentation Transcript

    • Technology, a means to an end. Thibault Imbert
    • 1996 - Discovered BASIC on my dad’s T07. 
 1998 - Started playing with Flash in my bedroom ! 2004 - Teaching programming ! 2008 - Joined Adobe (France) ! 2010 - Moved to San Francisco (PM for Flash Player) ! 2014 - Working on next-gen web authoring tools/services projectparfait.adobe.com
    • CSS Shapes
    • Blend modes
    • Masking
    • justinjackson.ca/words.html
    • Technology to serve a goal.
    • Focus on the goal, implementation is a detail.
    • detail.
    • C++, Objective-C, ActionScript, JavaScript, Java, C#…
    • Don’t place a technology. Use the best one to do the best job.
    • DHTML! Flash
    • Ajax! Flash
    • Silverlight! Flash
    • Familiar? Native! HTML/JS!
    • It is about the result, the end goal.
    • Technologies, come and go.
    • So I should not care?
    • Be passionate, stay curious, and always assume you don’t know.
    • "The most dangerous thought you can have as a creative person is to think you know what you're doing.” - Bret Victor
    • JavaScript will win. C++ will win. Obj-C will win. Dart will win. Why should one win? There is no safe bet.
    • By being religious, you barricade yourself.
    • You stop learning and start having preconceived ideas.
    • JavaScript is for “scripting” only.
    • asmjs.org an extraordinarily optimizable, low-level subset of JavaScript
    • JavaScript is not object-oriented.
    • ES6
    • //  entities.js   module  entities  {                    export  class  Person  {   !            private  message  =  "Hi  my  name  is  ";   !            constructor  (public  name,  public  age,  public  town){                      this.name  =  name;                      this.age  -­‐  age;                      this.town  =  town;              }   !            talk(){                      return  this.message  +  this.name;              }   !            get  isAbove18(){                      return  this.age  >=  18;              }   }
    • But what if I want static-typing?
    • www.typescriptlang.org
    • //  entities.js   module  entities  {                    export  class  Person  {   !            private  message  :string  =  "Hi  my  name  is  ";   !            constructor  (public  name:  string,  public  age:  number,  public     town:  string){                      this.name  =  name;                      this.age  =  age;                      this.town  =  town;              }   !            talk(){                      return  this.message  +  this.name;              }   !            get  isAbove18(){                      return  this.age  >=  18;              }   }
    • Which will generate plain ES5 compatible JS
    • var  Person  =  (function  ()  {          function  Person(name,  age,  town)  {                  this.name  =  name;                  this.age  =  age;                  this.town  =  town;                  this.message  =  "Hi  my  name  is  ";                  this.name  =  name;                  this.age  -­‐  age;                  this.town  =  town;          }          Person.prototype.talk  =  function  ()  {                  return  this.message  +  this.name;          };   !        Object.defineProperty(Person.prototype,  "isAbove18",  {                  get:  function  ()  {                          return  this.age  >=  18;                  },                  enumerable:  true,                  configurable:  true          });          return  Person;   })();  
    • Challenge, run the original Space Invaders ROM in JS
    • Ported in an hour to JavaScript
    • Chose the best option (for me) to get the job done.
    • C# is for Windows developers only
    • Xamarin
    • C++ is way too low-level.
    • C++11
    • #include  <iostream>   #include  <stdint.h>   #include  <iostream>   #include  <vector>   #include  <algorithm>   ! int  main(int  argc,  const  char  *  argv[])   {          std::vector<uint32_t>  data  =  {  234,  76767,  43,  343,  4322,  33,  122  };                    std::sort(data.begin(),  data.end(),  []  (uint32_t  a,  uint32_t  b)  {  return  a  <  b;  });                    for  (auto  i  =  data.begin();  i  <  data.end();  i++)  {                  std::cout  <<  *i  <<  std::endl;          }                    class  MyClass  {                  public:                          MyClass(size_t  size)  :  m_size(size)  {  }                          MyClass(const  char  *str)  :  MyClass(strlen(str))  {  }                          size_t  Size()  {  return  m_size;  }                  private:                          size_t  m_size;          };                    MyClass  obj("Hello!");          std::cout  <<  obj.Size()  <<  std::endl;          return  0;   }
    • I am a web guy, doing scripting, cool native stuff is hard.
    • Starry Night by Petros Vrellis
    • openFrameworks
    • Functional programming languages are not for real world usage.
    • Imperative programming is: I want a latte. Heat some milk. Put it into a cup. Brew some coffee with a stovetop Moka pot. Pour the coffee into the heated milk. Thank you.
    • Functional programming is: I want a latte. Thank you.
    • Have a look at F#
    • let numbers = [ 0..2..20 ] ! val numbers : int list = [0; 2; 4; 6; 8; 10; 12; 14; 16; 18; 20]
    • var value = Math.abs ( Math.round ( Math.sqrt ( 3.56 ) ) ); let result = 3.56 |> System.Math.Sqrt |> System.Math.Round |> System.Math.Abs
    • let numbers = [ 0..3..30 ] let square x = x * x ! let sumSquare nums = let mutable buffer = 0 for i in nums do buffer <- buffer + square i buffer ! let result = sumSquare numbers
    • let sumSquare nums = nums |> Seq.map ( fun x -> x * x ) |> Seq.sum
    • Multicore and web apps? No way.
    • &
    • myPA  =  [1,  2,  3];       //  incrementation  is  parallelized  on  the  GPU   myPlusPA  =  myPA.mapPar(val  =>  val  +  1);  
    • myPA  =  [1,  2,  3];       //  incrementation  is  parallelized  on  the  GPU   myPlusPA  =  myPA.mapPar(val  =>  val  +  1);  
    • OpenCL (behind the scene)
    • Multicore and web apps? No way.
    • River Trail bit.ly/qme8BY
    • You may never use these, but they will make you a better developer, so keep learning new stuff.
    • Creativity, but stepping back from technology.
    • Goal Experiment Fail Iterate
    • Not good! Not good Looks good! Looks good!
    • Success is not an event, it is a process. James Clear.
    • @thibault_imbert Thank you!