SlideShare a Scribd company logo
Everybody	
  loves	
  coffee,	
  right?	
  
Today,	
  Everybody	
  loves	
  JavaScript,	
  
                     right?	
  
•    JavaScript	
  revival	
  
•    Node.js	
  
•    One-­‐Page	
  applica@ons	
  
•    Real@me	
  applica@ons	
  
Some	
  things	
  I	
  like	
  about	
  
      CoffeeScript	
  
1.	
  FUNCTION	
  SYNTAX	
  
function	
  greet(name)	
  {	
  
  	
  return	
  ”Hello	
  ”	
  +	
  name	
  
}	
  



1.	
  FUNCTION	
  SYNTAX	
  
greet	
  =	
  (name)	
  -­‐>	
  
 	
  ”Hello	
  ”	
  +	
  name	
  




1.	
  FUNCTION	
  SYNTAX	
  
$(”a”).click(function(event)	
  {	
  
 	
  $(this).addClass(”busy”);	
  
});	
  



1.	
  FUNCTION	
  SYNTAX	
  
$(”a”).click	
  (event)	
  -­‐>	
  
 	
  $(this).addClass	
  ”busy”	
  




1.	
  FUNCTION	
  SYNTAX	
  
2.	
  SIGNIFICANT	
  WHITESPACE	
  
if(url)	
  {	
  
  	
  $.get(url,	
  function(data)	
  {	
  
  	
   	
  return	
  $(”#result”).html(data);	
  
  	
  });	
  
}	
  else	
  {	
  
  	
  $(”#error“).show();	
  
}	
  


2.	
  SIGNIFICANT	
  WHITESPACE	
  
if	
  url	
  
 	
  $.get	
  url,	
  (data)	
  -­‐>	
  
 	
   	
  $(”#result”).html	
  data	
  
else	
  
 	
  $(”#error“).show()	
  




2.	
  SIGNIFICANT	
  WHITESPACE	
  
if(url)	
  {	
  
  	
  $.get(url,	
  function(data)	
  {	
  
  	
   	
  return	
  $(”#result”).html(data);	
  
  	
  });	
  
}	
  else	
  {	
  
  	
  $(”#error“).show();	
  
}	
  


2.	
  SIGNIFICANT	
  WHITESPACE	
  
var	
  response	
  =	
  function(callback)	
  {	
  
   	
  return	
  $.get("/data.php",	
  function(data,	
  textStatus)	
  {	
  
   	
   	
  if(textStatus	
  ==	
  200)	
  {	
  
   	
   	
   	
  return	
  data.toUpperCase();	
  
   	
   	
  }	
  
   	
   	
  else	
  {	
  
   	
   	
   	
  return	
  callback(data);	
  
   	
   	
  }	
  
   	
  }	
  
};	
  


2.	
  SIGNIFICANT	
  WHITESPACE	
  
response	
  =	
  (callback)	
  -­‐>	
  
  	
  $.get	
  "/data.php",	
  (data,	
  textStatus)	
  -­‐>	
  
  	
   	
  if	
  textStatus	
  ==	
  200	
  
  	
   	
   	
  data.toUpperCase()	
  
  	
   	
  else	
  
  	
   	
   	
  callback(data)	
  




2.	
  SIGNIFICANT	
  WHITESPACE	
  
var	
  student	
  =	
  {	
  
      	
  name:	
  ”Sebastian”,	
  
      	
  age:	
  21,	
  
      	
  hobbies:	
  [”drums”,	
  ”programming”]	
  
}	
  




3.	
  BARE	
  OBJECTS	
  
student	
  =	
  
  	
  name:	
  ”Sebastian”	
  
  	
  age:	
  21	
  
  	
  hobbies:	
  [”drums”,	
  ”programming”]	
  




3.	
  BARE	
  OBJECTS	
  
var	
  squares	
  =	
  []	
  
	
  
for(var	
  i	
  =	
  0;	
  i	
  <	
  100;	
  i++)	
  {	
  
      	
  squares.push(i	
  *	
  i);	
  
}	
  




4.	
  COMPREHENSIONS	
  
squares	
  =	
  []	
  
	
  
for	
  i	
  in	
  [0..100]	
  
     	
  squares.push	
  i	
  *	
  i	
  




4.	
  COMPREHENSIONS	
  
squares	
  =	
  (i	
  *	
  i	
  for	
  i	
  in	
  [0..100])	
  




4.	
  COMPREHENSIONS	
  
squares	
  =	
  (i	
  *	
  i	
  for	
  i	
  in	
  [0..100]	
  when	
  i	
  %	
  2	
  is	
  0)	
  




4.	
  COMPREHENSIONS	
  
var	
  i,	
  squares;	
  
squares	
  =	
  (function()	
  {	
  
	
  	
  var	
  _results;	
  
	
  	
  _results	
  =	
  [];	
  
	
  	
  for	
  (i	
  =	
  0;	
  i	
  <=	
  100;	
  i++)	
  {	
  
	
  	
  	
  	
  if	
  (i	
  %	
  2	
  ===	
  0)	
  {	
  
	
  	
  	
  	
  	
  	
  _results.push(i	
  *	
  i);	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
	
  	
  return	
  _results;	
  
})();	
  


4.	
  COMPREHENSIONS	
  
$(”a”).click(function()	
  {	
  
  	
  $.get(”/data.php”,	
  (function(data,	
  responseText)	
  {	
  
  	
   	
  $(this).html(data);	
  
  	
  }).bind(this));	
  
});	
  




5.	
  FUNCTION	
  BINDING	
  
$(”a”).click	
  -­‐>	
  
  	
  $.get	
  ”/data.php”,	
  (data,	
  responseText)	
  =>	
  
  	
   	
  $(this).html	
  data	
  




5.	
  FUNCTION	
  BINDING	
  
$(”#elements”).append(	
  
   	
  ”<li	
  class=’entry’>”	
  +	
  data.name	
  +	
  ”</li>”	
  
);	
  




6.	
  STRING	
  SYNTAX	
  
$(”#elements”).append	
  ”<li	
  class=’entry’>#{data.name}</li>”	
  




6.	
  STRING	
  SYNTAX	
  
render	
  (student)	
  -­‐>	
  
  	
  ”””	
  
  	
   	
  <div	
  class=”student”>	
  
  	
   	
   	
  <a	
  href=”/student/#{student.id}”>	
  
  	
   	
   	
   	
  <span>#{student.name}</span>	
  
  	
   	
   	
  </a>	
  
  	
   	
  </div>	
  
  	
  ”””	
  

6.	
  STRING	
  SYNTAX	
  
There	
  is	
  lots	
  more:	
  
 Classes,	
  existen@al	
  operator,	
  destructuring	
  assignment,	
  …	
  




               hHp://coffeescript.org	
  



       Sebas@an	
  Hoitz	
  -­‐	
  @sebas@anhoitz	
  –	
  hHp://suplify.me	
  

More Related Content

What's hot

Managing category structures in relational databases
Managing category structures in relational databasesManaging category structures in relational databases
Managing category structures in relational databases
Antoine Osanz
 
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
Takashi Kitano
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
Noritada Shimizu
 
{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析
Takashi Kitano
 
Python Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit TestingPython Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit Testing
Python Ireland
 
PHP for Python Developers
PHP for Python DevelopersPHP for Python Developers
PHP for Python Developers
Carlos Vences
 
Parallel Computing With Dask - PyDays 2017
Parallel Computing With Dask - PyDays 2017Parallel Computing With Dask - PyDays 2017
Parallel Computing With Dask - PyDays 2017
Christian Aichinger
 
{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips
Takashi Kitano
 
WordPressでIoTをはじめよう
WordPressでIoTをはじめようWordPressでIoTをはじめよう
WordPressでIoTをはじめよう
Yuriko IKEDA
 
2013 28-03-dak-why-fp
2013 28-03-dak-why-fp2013 28-03-dak-why-fp
2013 28-03-dak-why-fp
Dmitriy Kiriyenko
 
PHP webboard
PHP webboardPHP webboard
PHP webboard
tumetr1
 
PHP cart
PHP cartPHP cart
PHP cart
tumetr1
 
WordPress 3.1 at DC PHP
WordPress 3.1 at DC PHPWordPress 3.1 at DC PHP
WordPress 3.1 at DC PHP
andrewnacin
 
ゼロから始めるScala文法
ゼロから始めるScala文法ゼロから始めるScala文法
ゼロから始めるScala文法
Ryuichi ITO
 
The Ring programming language version 1.5.2 book - Part 41 of 181
The Ring programming language version 1.5.2 book - Part 41 of 181The Ring programming language version 1.5.2 book - Part 41 of 181
The Ring programming language version 1.5.2 book - Part 41 of 181
Mahmoud Samir Fayed
 
Unit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBeneluxUnit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBenelux
Michelangelo van Dam
 
関数プログラミングことはじめ revival
関数プログラミングことはじめ revival関数プログラミングことはじめ revival
関数プログラミングことはじめ revival
Naoki Kitora
 
R57shell
R57shellR57shell
R57shell
ady36
 
Chris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql PortfolioChris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql Portfolio
clmcglothen
 
Templates don’t need to break the browser by Nikolas Martens
Templates don’t need to break the browser by Nikolas Martens  Templates don’t need to break the browser by Nikolas Martens
Templates don’t need to break the browser by Nikolas Martens
Codemotion
 

What's hot (20)

Managing category structures in relational databases
Managing category structures in relational databasesManaging category structures in relational databases
Managing category structures in relational databases
 
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
 
{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析
 
Python Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit TestingPython Ireland Nov 2010 Talk: Unit Testing
Python Ireland Nov 2010 Talk: Unit Testing
 
PHP for Python Developers
PHP for Python DevelopersPHP for Python Developers
PHP for Python Developers
 
Parallel Computing With Dask - PyDays 2017
Parallel Computing With Dask - PyDays 2017Parallel Computing With Dask - PyDays 2017
Parallel Computing With Dask - PyDays 2017
 
{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips
 
WordPressでIoTをはじめよう
WordPressでIoTをはじめようWordPressでIoTをはじめよう
WordPressでIoTをはじめよう
 
2013 28-03-dak-why-fp
2013 28-03-dak-why-fp2013 28-03-dak-why-fp
2013 28-03-dak-why-fp
 
PHP webboard
PHP webboardPHP webboard
PHP webboard
 
PHP cart
PHP cartPHP cart
PHP cart
 
WordPress 3.1 at DC PHP
WordPress 3.1 at DC PHPWordPress 3.1 at DC PHP
WordPress 3.1 at DC PHP
 
ゼロから始めるScala文法
ゼロから始めるScala文法ゼロから始めるScala文法
ゼロから始めるScala文法
 
The Ring programming language version 1.5.2 book - Part 41 of 181
The Ring programming language version 1.5.2 book - Part 41 of 181The Ring programming language version 1.5.2 book - Part 41 of 181
The Ring programming language version 1.5.2 book - Part 41 of 181
 
Unit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBeneluxUnit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBenelux
 
関数プログラミングことはじめ revival
関数プログラミングことはじめ revival関数プログラミングことはじめ revival
関数プログラミングことはじめ revival
 
R57shell
R57shellR57shell
R57shell
 
Chris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql PortfolioChris Mc Glothen Sql Portfolio
Chris Mc Glothen Sql Portfolio
 
Templates don’t need to break the browser by Nikolas Martens
Templates don’t need to break the browser by Nikolas Martens  Templates don’t need to break the browser by Nikolas Martens
Templates don’t need to break the browser by Nikolas Martens
 

Similar to Webmontag Berlin "coffee script"

Unit testing with zend framework tek11
Unit testing with zend framework tek11Unit testing with zend framework tek11
Unit testing with zend framework tek11
Michelangelo van Dam
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB jhchabran
 
Unit testing zend framework apps
Unit testing zend framework appsUnit testing zend framework apps
Unit testing zend framework apps
Michelangelo van Dam
 
Everything About PowerShell
Everything About PowerShellEverything About PowerShell
Everything About PowerShell
Gaetano Causio
 
Introducing CakeEntity
Introducing CakeEntityIntroducing CakeEntity
Introducing CakeEntity
Basuke Suzuki
 
Building Smart Async Functions For Mobile
Building Smart Async Functions For MobileBuilding Smart Async Functions For Mobile
Building Smart Async Functions For MobileGlan Thomas
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Domenic Denicola
 
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShellPesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
Daniel Bohannon
 
CoffeeScript - A Rubyist's Love Affair
CoffeeScript - A Rubyist's Love AffairCoffeeScript - A Rubyist's Love Affair
CoffeeScript - A Rubyist's Love Affair
Mark
 
Pitfalls to Avoid for Cascade Server Newbies by Lisa Hall
Pitfalls to Avoid for Cascade Server Newbies by Lisa HallPitfalls to Avoid for Cascade Server Newbies by Lisa Hall
Pitfalls to Avoid for Cascade Server Newbies by Lisa Hall
hannonhill
 
ES6 patterns in the wild
ES6 patterns in the wildES6 patterns in the wild
ES6 patterns in the wild
Joe Morgan
 
Building Evented Single Page Applications
Building Evented Single Page ApplicationsBuilding Evented Single Page Applications
Building Evented Single Page Applications
Steve Smith
 
Building evented single page applications
Building evented single page applicationsBuilding evented single page applications
Building evented single page applications
Steve Smith
 
Advanced php testing in action
Advanced php testing in actionAdvanced php testing in action
Advanced php testing in action
Jace Ju
 
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
Fernando Daciuk
 
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenariosWhy is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenarios
Divante
 
Min-Maxing Software Costs
Min-Maxing Software CostsMin-Maxing Software Costs
Min-Maxing Software Costs
Konstantin Kudryashov
 

Similar to Webmontag Berlin "coffee script" (20)

Unit testing with zend framework tek11
Unit testing with zend framework tek11Unit testing with zend framework tek11
Unit testing with zend framework tek11
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB
 
Unit testing zend framework apps
Unit testing zend framework appsUnit testing zend framework apps
Unit testing zend framework apps
 
Drupal7 dbtng
Drupal7  dbtngDrupal7  dbtng
Drupal7 dbtng
 
Separation of concerns - DPC12
Separation of concerns - DPC12Separation of concerns - DPC12
Separation of concerns - DPC12
 
Everything About PowerShell
Everything About PowerShellEverything About PowerShell
Everything About PowerShell
 
Introducing CakeEntity
Introducing CakeEntityIntroducing CakeEntity
Introducing CakeEntity
 
Database api
Database apiDatabase api
Database api
 
Building Smart Async Functions For Mobile
Building Smart Async Functions For MobileBuilding Smart Async Functions For Mobile
Building Smart Async Functions For Mobile
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
 
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShellPesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
 
CoffeeScript - A Rubyist's Love Affair
CoffeeScript - A Rubyist's Love AffairCoffeeScript - A Rubyist's Love Affair
CoffeeScript - A Rubyist's Love Affair
 
Pitfalls to Avoid for Cascade Server Newbies by Lisa Hall
Pitfalls to Avoid for Cascade Server Newbies by Lisa HallPitfalls to Avoid for Cascade Server Newbies by Lisa Hall
Pitfalls to Avoid for Cascade Server Newbies by Lisa Hall
 
ES6 patterns in the wild
ES6 patterns in the wildES6 patterns in the wild
ES6 patterns in the wild
 
Building Evented Single Page Applications
Building Evented Single Page ApplicationsBuilding Evented Single Page Applications
Building Evented Single Page Applications
 
Building evented single page applications
Building evented single page applicationsBuilding evented single page applications
Building evented single page applications
 
Advanced php testing in action
Advanced php testing in actionAdvanced php testing in action
Advanced php testing in action
 
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
 
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenariosWhy is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenarios
 
Min-Maxing Software Costs
Min-Maxing Software CostsMin-Maxing Software Costs
Min-Maxing Software Costs
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

Webmontag Berlin "coffee script"

  • 2. Today,  Everybody  loves  JavaScript,   right?   •  JavaScript  revival   •  Node.js   •  One-­‐Page  applica@ons   •  Real@me  applica@ons  
  • 3. Some  things  I  like  about   CoffeeScript  
  • 5. function  greet(name)  {    return  ”Hello  ”  +  name   }   1.  FUNCTION  SYNTAX  
  • 6. greet  =  (name)  -­‐>    ”Hello  ”  +  name   1.  FUNCTION  SYNTAX  
  • 7. $(”a”).click(function(event)  {    $(this).addClass(”busy”);   });   1.  FUNCTION  SYNTAX  
  • 8. $(”a”).click  (event)  -­‐>    $(this).addClass  ”busy”   1.  FUNCTION  SYNTAX  
  • 10. if(url)  {    $.get(url,  function(data)  {      return  $(”#result”).html(data);    });   }  else  {    $(”#error“).show();   }   2.  SIGNIFICANT  WHITESPACE  
  • 11. if  url    $.get  url,  (data)  -­‐>      $(”#result”).html  data   else    $(”#error“).show()   2.  SIGNIFICANT  WHITESPACE  
  • 12. if(url)  {    $.get(url,  function(data)  {      return  $(”#result”).html(data);    });   }  else  {    $(”#error“).show();   }   2.  SIGNIFICANT  WHITESPACE  
  • 13. var  response  =  function(callback)  {    return  $.get("/data.php",  function(data,  textStatus)  {      if(textStatus  ==  200)  {        return  data.toUpperCase();      }      else  {        return  callback(data);      }    }   };   2.  SIGNIFICANT  WHITESPACE  
  • 14. response  =  (callback)  -­‐>    $.get  "/data.php",  (data,  textStatus)  -­‐>      if  textStatus  ==  200        data.toUpperCase()      else        callback(data)   2.  SIGNIFICANT  WHITESPACE  
  • 15. var  student  =  {    name:  ”Sebastian”,    age:  21,    hobbies:  [”drums”,  ”programming”]   }   3.  BARE  OBJECTS  
  • 16. student  =    name:  ”Sebastian”    age:  21    hobbies:  [”drums”,  ”programming”]   3.  BARE  OBJECTS  
  • 17. var  squares  =  []     for(var  i  =  0;  i  <  100;  i++)  {    squares.push(i  *  i);   }   4.  COMPREHENSIONS  
  • 18. squares  =  []     for  i  in  [0..100]    squares.push  i  *  i   4.  COMPREHENSIONS  
  • 19. squares  =  (i  *  i  for  i  in  [0..100])   4.  COMPREHENSIONS  
  • 20. squares  =  (i  *  i  for  i  in  [0..100]  when  i  %  2  is  0)   4.  COMPREHENSIONS  
  • 21. var  i,  squares;   squares  =  (function()  {      var  _results;      _results  =  [];      for  (i  =  0;  i  <=  100;  i++)  {          if  (i  %  2  ===  0)  {              _results.push(i  *  i);          }      }      return  _results;   })();   4.  COMPREHENSIONS  
  • 22. $(”a”).click(function()  {    $.get(”/data.php”,  (function(data,  responseText)  {      $(this).html(data);    }).bind(this));   });   5.  FUNCTION  BINDING  
  • 23. $(”a”).click  -­‐>    $.get  ”/data.php”,  (data,  responseText)  =>      $(this).html  data   5.  FUNCTION  BINDING  
  • 24. $(”#elements”).append(    ”<li  class=’entry’>”  +  data.name  +  ”</li>”   );   6.  STRING  SYNTAX  
  • 26. render  (student)  -­‐>    ”””      <div  class=”student”>        <a  href=”/student/#{student.id}”>          <span>#{student.name}</span>        </a>      </div>    ”””   6.  STRING  SYNTAX  
  • 27. There  is  lots  more:   Classes,  existen@al  operator,  destructuring  assignment,  …   hHp://coffeescript.org   Sebas@an  Hoitz  -­‐  @sebas@anhoitz  –  hHp://suplify.me