The Environment Restaurant

Martin de Keijzer
Martin de KeijzerWeb developer at Ibuildings
The environment restaurant
Cooking up the best in OS’s

Martin de Keijzer
17-08-2013, Borsele Nederland - PHPBenelux Summer BBQ
Introduction
A.K.A. Who the hell are you?

!2
About me
•Martin de Keijzer
•Dutch web developer

Working for Ibuildings
PHPBenelux Board Member
@Martin1982
http://www.martindekeijzer.nl
!3
No PHP in this talk....

Devs
!4
Dev environments
Ways to develop

!5
Central server

• Everyone has the same
environment	

• Code can be tested
immediately by PM’s	

• Developers don’t need
to install stuff

!6
Central server

• If the server is down,

everyone’s down	

• If the code breaks, a lot
of people can’t continue	

• Everyone needs access
to a critical business
asset (even the interns)

!7
Local server

• Everyone has an

environment to break	

• Deployment tests are
easily done by one
developer	

• Developer freedom of
software

!8
Local server

• Developers can install

unsupported software	

• Every developer needs
time to setup an
environment	

• An environmentdependent change can
still break the code
!9
Vagrant
The homeless love restaurants

!10
Versionable environment

• Save your environment

to a VCS and share	

• Everyone can tinker with
their environment and
rebuild in minutes	

• Developers have the
freedom to update
environments	

• Environments can be
reviewed by team leads
!11
Versionable environment

• Steep learning curve to

make it really functional
We’ll fix this.... today!
!12
Prerequisites

OR
VirtualBox	

(free)

VMWare	

(commercial)
!13
Prerequisites

http://www.vagrantup.com

!14
Getting started

vagrant	
  init
Create a basic vagrant file

!15
Vagrantfile
•#	
  -­‐*-­‐	
  mode:	
  ruby	
  -­‐*-­‐	
  
•#	
  vi:	
  set	
  ft=ruby	
  :	
  
!

•Vagrant.configure("2")	
  do	
  |config|	
  
•	
  	
  config.vm.box	
  =	
  "precise64"	
  
•	
  	
  config.vm.box_url	
  =	
  "http://dl.dropbox.com/u/1537815/precise64.box"	
  
•	
  	
  config.vm.network	
  :private_network,	
  ip:	
  
"192.168.33.10"	
  
•	
  	
  config.vm.synced_folder	
  ".",	
  "/vagrant_data"	
  
•	
  	
  config.vm.provider	
  :virtualbox	
  do	
  |vb|	
  
•	
  	
  	
  	
  vb.customize	
  ["modifyvm",	
  :id,	
  "-­‐-­‐memory",	
  
"1024"]	
  
•	
  	
  end	
  
•end

!16
Getting up and running

vagrant	
  up

!17
More options

vagrant	
  suspend
vagrant	
  resume
vagrant	
  destroy
vagrant	
  ssh
!18
Getting up and running

All done!	

Thank you!

!19
Getting up and running

But how about my software?

Nginx? PHP 5.5.1? Solr?

!20
Provisioning
Taking away the hassle

!21
Provisioning

!22
Bash

!23
Puppet

!24
Chef
Make your restaurant smooth with a Chef

!25
Chef

!26
Cookbooks

!27
Utilizing cookbooks
•config.vm.provision	
  :chef_solo	
  do	
  |chef|	
  
•	
  	
  	
  	
  chef.cookbooks_path	
  =	
  "provision/cookbooks"	
  
•	
  	
  	
  	
  chef.add_recipe	
  "wp-­‐cli"	
  
•	
  	
  	
  	
  chef.add_recipe	
  "wp_site_myproject"	
  
•	
  	
  	
  	
  chef.json	
  =	
  {	
  
•	
  	
  	
  	
  	
  	
  :mysql	
  =>	
  {	
  
•	
  	
  	
  	
  	
  	
  	
  	
  :server_debian_password	
  =>	
  'vagrant',	
  
•	
  	
  	
  	
  	
  	
  	
  	
  :server_root_password	
  =>	
  'vagrant',	
  
•	
  	
  	
  	
  	
  	
  	
  	
  :server_repl_password	
  =>	
  'vagrant'	
  
•	
  	
  	
  	
  	
  	
  }	
  
•	
  	
  	
  	
  }	
  
•	
  	
  end
!28
Vagrant up

!29
Librarian
The Chef’s best friend for cookbooks

!30
Librarian

gem	
  install	
  librarian-­‐chef
!31
Create your librarian

librarian-­‐chef	
  init

!32
Cheffile
#!/usr/bin/env ruby	

#^syntax detection	

site 'http://community.opscode.com/api/v1'	

!

# cookbook 'chef-client'	

# cookbook 'apache2', '>= 1.0.0'	

# cookbook 'rvm',	

# :git => 'https://github.com/fnichol/chef-rvm'	

# cookbook 'postgresql',	

# :git => 'https://github.com/findsyou/cookbooks',	

# :ref => 'postgresql-improvements'
!33
Loading cookbooks

librarian-­‐chef	
  install
librarian-­‐chef	
  update
librarian-­‐chef	
  clean
librarian-­‐chef	
  show
!34
Knife
When your Chef and Librarian can’t handle

!35
Knife

gem	
  install	
  chef
!36
A new cookbook
attributes
definitions
files
libraries
metadata.rb
providers
recipes
resources
templates

Default configurations
exposed functions
resource files
reuseable libraries
Meta information
defines actions
runnable scripts
runs providers
views-like

•knife	
  cookbook	
  create	
  mybook	
  -­‐o	
  ./
mycookbooks

!37
Metadata.rb
name	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  'wp-­‐cli'	
  
maintainer	
  	
  	
  	
  	
  	
  	
  'Martin	
  de	
  Keijzer'	
  
maintainer_email	
  'mdkeijzer@ibuildings.nl'	
  
license	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  'LGPL	
  V3'	
  
description	
  	
  	
  	
  	
  	
  'Installs/Configures	
  wp-­‐cli'	
  
long_description	
  IO.read(File.join(File.dirname(__FILE__),	
  
'README.md'))	
  
version	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  '0.1.0'	
  
!

depends	
  "curl"	
  
depends	
  "git"	
  
depends	
  "php"	
  
depends	
  "mysql"	
  
depends	
  "database"

!38
attributes/default.rb

•default['wp']['wpcli-­‐dir']	
  =	
  '/usr/share/wp-­‐cli'	
  
•default['wp']['wpcli-­‐version']	
  =	
  '@stable'	
  
•default['wp']['wpcli-­‐link']	
  =	
  '/usr/bin/wp'

•Filename must match the recipe name	

•‘default’ is a special name
!39
recipes/default.rb
•#	
  Cookbook	
  Name::	
  wp-­‐cli	
  
•#	
  More	
  comments.....	
  
•include_recipe	
  'git'	
  
•#	
  More	
  prerequisites	
  
!

•#	
  create	
  wpcli	
  dir	
  
•directory	
  node['wp']['wpcli-­‐dir']	
  do	
  
•	
  	
  recursive	
  true	
  
•end	
  
!

•
!40
recipes/default.rb
•#	
  download	
  installer	
  
•remote_file	
  "#{node['wp']['wpcli-­‐dir']}/
installer.sh"	
  do	
  
•	
  	
  source	
  'http://wp-­‐cli.org/installer.sh'	
  
•	
  	
  mode	
  0755	
  
•	
  	
  action	
  :create_if_missing	
  
•end	
  
!

•

!41
recipes/default.rb
•bin_dir	
  =	
  ::File.join(node['wp']['wpcli-­‐dir'],	
  'bin',	
  
'wp')	
  
!

•#	
  run	
  installer	
  
•bash	
  'install	
  wp-­‐cli'	
  do	
  
•	
  	
  code	
  './installer.sh'	
  
•	
  	
  cwd	
  node['wp']['wpcli-­‐dir']	
  
•	
  	
  environment	
  'INSTALL_DIR'	
  =>	
  node['wp']['wpcli-­‐
dir'],	
  
•	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  'VERSION'	
  =>	
  node['wp']['wpcli-­‐version']	
  
•	
  	
  creates	
  bin_dir	
  
•end	
  
•
!42
recipes/default.rb
•#	
  link	
  wp	
  bin	
  
•link	
  node['wp']['wpcli-­‐link']	
  do	
  
•	
  	
  to	
  bin_dir	
  
•end	
  if	
  node['wp']['wpcli-­‐link']

!43
Cookbook done

Congratulations
you’ve taken the
first baby steps
in creating a reusable
cookbook!

!44
Bonus: templates/default
•#	
  redirect	
  met	
  zonder	
  www	
  naar	
  www.<%=	
  @params[:server_name]	
  %>	
  
•<VirtualHost	
  *:80>	
  
•	
  	
  	
  	
  	
  	
  ServerName	
  <%=	
  @params[:server_name]	
  %>	
  
•	
  	
  	
  	
  	
  	
  Redirect	
  /	
  http://www.<%=	
  @params[:server_name]	
  %>/	
  
•</VirtualHost>

!45
Usage from a recipe

•web_app	
  "mysite"	
  do	
  
•	
  	
  template	
  "mytemplate.conf.erb"	
  
•	
  	
  docroot	
  node[:mysite][:dir]	
  
•	
  	
  server_name	
  node[:mysite][:server_name]	
  
•end

!46
Conclusion
What have we learned?

!47
Conclusion
•Developers require:

‣ Virtualbox or VMWare
‣ Vagrant
•Team leads / Devops require:

‣ All of the above
‣ Chef + Knife
‣ Librarian
‣ Enough Server OS experience to cook up the best
environments

!48
QUESTIONS

!49
Thank you for listening
Bon appetit
mdkeijzer@ibuildings.nl
@Martin1982
1 of 50

Recommended

Vagrant and Chef on FOSSASIA 2014 by
Vagrant and Chef on FOSSASIA 2014Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014Michael Lihs
2.3K views41 slides
Cooking with Chef by
Cooking with ChefCooking with Chef
Cooking with ChefKen Robertson
3.5K views51 slides
Chef at WebMD by
Chef at WebMDChef at WebMD
Chef at WebMDadamleff
952 views54 slides
Server Installation and Configuration with Chef by
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with ChefRaimonds Simanovskis
3.4K views27 slides
Chef, Devops, and You by
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and YouBryan Berry
7K views39 slides
Chef: Smart infrastructure automation by
Chef: Smart infrastructure automationChef: Smart infrastructure automation
Chef: Smart infrastructure automationJohannes H. P. Skov Frandsen
1.3K views26 slides

More Related Content

What's hot

Opscode Webinar: Managing Your VMware Infrastructure with Chef by
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefChef Software, Inc.
9.4K views20 slides
Chef introduction by
Chef introductionChef introduction
Chef introductionFENG Zhichao
5K views53 slides
Chef Fundamentals Training Series Module 2: Workstation Setup by
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Software, Inc.
17.5K views55 slides
CLUG 2014-10 - Cookbook CI with Jenkins by
CLUG 2014-10 - Cookbook CI with JenkinsCLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with JenkinsZachary Stevens
2.2K views40 slides
The unintended benefits of Chef by
The unintended benefits of ChefThe unintended benefits of Chef
The unintended benefits of ChefChef Software, Inc.
2.3K views39 slides
Cookbook refactoring & abstracting logic to Ruby(gems) by
Cookbook refactoring & abstracting logic to Ruby(gems)Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)Chef Software, Inc.
4.9K views109 slides

What's hot(20)

Opscode Webinar: Managing Your VMware Infrastructure with Chef by Chef Software, Inc.
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with Chef
Chef Software, Inc.9.4K views
Chef Fundamentals Training Series Module 2: Workstation Setup by Chef Software, Inc.
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Software, Inc.17.5K views
CLUG 2014-10 - Cookbook CI with Jenkins by Zachary Stevens
CLUG 2014-10 - Cookbook CI with JenkinsCLUG 2014-10 - Cookbook CI with Jenkins
CLUG 2014-10 - Cookbook CI with Jenkins
Zachary Stevens2.2K views
Cookbook refactoring & abstracting logic to Ruby(gems) by Chef Software, Inc.
Cookbook refactoring & abstracting logic to Ruby(gems)Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)
Chef Software, Inc.4.9K views
Common configuration with Data Bags - Fundamentals Webinar Series Part 4 by Chef
Common configuration with Data Bags - Fundamentals Webinar Series Part 4Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Common configuration with Data Bags - Fundamentals Webinar Series Part 4
Chef17K views
Environments - Fundamentals Webinar Series Week 5 by Chef
Environments - Fundamentals Webinar Series Week 5Environments - Fundamentals Webinar Series Week 5
Environments - Fundamentals Webinar Series Week 5
Chef12.5K views
Vagrant, Chef and TYPO3 - A Love Affair by Michael Lihs
Vagrant, Chef and TYPO3 - A Love AffairVagrant, Chef and TYPO3 - A Love Affair
Vagrant, Chef and TYPO3 - A Love Affair
Michael Lihs1.8K views
Michelin Starred Cooking with Chef by Jon Cowie
Michelin Starred Cooking with ChefMichelin Starred Cooking with Chef
Michelin Starred Cooking with Chef
Jon Cowie5.4K views
Node object and roles - Fundamentals Webinar Series Part 3 by Chef
Node object and roles - Fundamentals Webinar Series Part 3Node object and roles - Fundamentals Webinar Series Part 3
Node object and roles - Fundamentals Webinar Series Part 3
Chef21.5K views
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2 by Chef
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Node setup, resource, and recipes - Fundamentals Webinar Series Part 2
Chef50.6K views
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012 by Patrick McDonnell
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012
Lessons from Etsy: Avoiding Kitchen Nightmares - #ChefConf 2012
Patrick McDonnell20.2K views
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6 by Chef
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Community Cookbooks & further resources - Fundamentals Webinar Series Part 6
Chef10.9K views
Chef-Zero & Local Mode by Michael Goetz
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local Mode
Michael Goetz16.3K views
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding... by Chef Software, Inc.
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Fundamentals Training Series Module 4: The Chef Client Run and Expanding...
Chef Software, Inc.9.6K views
Introduction to Chef by Knoldus Inc.
Introduction to ChefIntroduction to Chef
Introduction to Chef
Knoldus Inc.10.8K views
Opscode Webinar: Cooking with Chef on Microsoft Windows by Chef Software, Inc.
Opscode Webinar: Cooking with Chef on Microsoft WindowsOpscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft Windows
Chef Software, Inc.11.5K views

Similar to The Environment Restaurant

OSDC 2013 | Introduction into Chef by Andy Hawkins by
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsNETWAYS
28 views70 slides
Introduction to Chef - Techsuperwomen Summit by
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen SummitJennifer Davis
1.6K views236 slides
Testing your-automation-code (vagrant version) v0.2 by
Testing your-automation-code (vagrant version) v0.2Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2Sylvain Tissot
1.7K views409 slides
Overview of Chef - Fundamentals Webinar Series Part 1 by
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1Chef
103.6K views82 slides
Introduction to Infrastructure as Code & Automation / Introduction to Chef by
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefNathen Harvey
911 views193 slides
Chef Fundamentals Training Series Module 1: Overview of Chef by
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Software, Inc.
37.4K views61 slides

Similar to The Environment Restaurant(20)

OSDC 2013 | Introduction into Chef by Andy Hawkins by NETWAYS
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy Hawkins
NETWAYS28 views
Introduction to Chef - Techsuperwomen Summit by Jennifer Davis
Introduction to Chef - Techsuperwomen SummitIntroduction to Chef - Techsuperwomen Summit
Introduction to Chef - Techsuperwomen Summit
Jennifer Davis1.6K views
Testing your-automation-code (vagrant version) v0.2 by Sylvain Tissot
Testing your-automation-code (vagrant version) v0.2Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2
Sylvain Tissot1.7K views
Overview of Chef - Fundamentals Webinar Series Part 1 by Chef
Overview of Chef - Fundamentals Webinar Series Part 1Overview of Chef - Fundamentals Webinar Series Part 1
Overview of Chef - Fundamentals Webinar Series Part 1
Chef103.6K views
Introduction to Infrastructure as Code & Automation / Introduction to Chef by Nathen Harvey
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Nathen Harvey911 views
Chef Fundamentals Training Series Module 1: Overview of Chef by Chef Software, Inc.
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Software, Inc.37.4K views
Introduction to Chef - April 22 2015 by Jennifer Davis
Introduction to Chef - April 22 2015Introduction to Chef - April 22 2015
Introduction to Chef - April 22 2015
Jennifer Davis808 views
EC2 AMI Factory with Chef, Berkshelf, and Packer by George Miranda
EC2 AMI Factory with Chef, Berkshelf, and PackerEC2 AMI Factory with Chef, Berkshelf, and Packer
EC2 AMI Factory with Chef, Berkshelf, and Packer
George Miranda12.8K views
Automate your Development Environment with Vagrant & Chef by Michael Lihs
Automate your Development Environment with Vagrant & ChefAutomate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & Chef
Michael Lihs1.9K views
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut... by Chef Software, Inc.
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Fundamentals Training Series Module 3: Setting up Nodes and Cookbook Aut...
Chef Software, Inc.19.1K views
Introduction to Infrastructure as Code & Automation / Introduction to Chef by All Things Open
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
All Things Open1.6K views
Introduction to Chef by kevsmith
Introduction to ChefIntroduction to Chef
Introduction to Chef
kevsmith7.2K views
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz by PROIDEA
Atmosphere 2014: Really large scale systems configuration - Phil DibowitzAtmosphere 2014: Really large scale systems configuration - Phil Dibowitz
Atmosphere 2014: Really large scale systems configuration - Phil Dibowitz
PROIDEA474 views
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures by François Le Droff
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
François Le Droff6.9K views
Chef, Vagrant and Friends by Ben McRae
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
Ben McRae643 views
Opscode Chef for Dummies by dilippanwar
Opscode Chef for DummiesOpscode Chef for Dummies
Opscode Chef for Dummies
dilippanwar22 views
Chef + AWS + CodeIgniter by ciconf
Chef + AWS + CodeIgniterChef + AWS + CodeIgniter
Chef + AWS + CodeIgniter
ciconf1.4K views

More from Martin de Keijzer

High quality live broadcasting with PHP 27 07-2016 by
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016Martin de Keijzer
739 views55 slides
Productive & easy mobile app dev by
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app devMartin de Keijzer
992 views51 slides
tiCONF Amsterdam 2014 building mobile teams by
tiCONF Amsterdam 2014   building mobile teamstiCONF Amsterdam 2014   building mobile teams
tiCONF Amsterdam 2014 building mobile teamsMartin de Keijzer
2.4K views46 slides
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome by
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeNative Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeMartin de Keijzer
1.3K views51 slides
Introduction to PhoneGap and PhoneGap Build by
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildMartin de Keijzer
2.4K views64 slides
Hybrid Mobile Web Apps with Sencha Touch 2 by
Hybrid Mobile Web Apps with Sencha Touch 2Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Martin de Keijzer
2.8K views70 slides

More from Martin de Keijzer(19)

High quality live broadcasting with PHP 27 07-2016 by Martin de Keijzer
High quality live broadcasting with PHP 27 07-2016High quality live broadcasting with PHP 27 07-2016
High quality live broadcasting with PHP 27 07-2016
Martin de Keijzer739 views
tiCONF Amsterdam 2014 building mobile teams by Martin de Keijzer
tiCONF Amsterdam 2014   building mobile teamstiCONF Amsterdam 2014   building mobile teams
tiCONF Amsterdam 2014 building mobile teams
Martin de Keijzer2.4K views
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome by Martin de Keijzer
Native Javascript apps with PhoneGap 11-04-2014 Codemotion RomeNative Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Native Javascript apps with PhoneGap 11-04-2014 Codemotion Rome
Martin de Keijzer1.3K views
Introduction to PhoneGap and PhoneGap Build by Martin de Keijzer
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap Build
Martin de Keijzer2.4K views
Hybrid Mobile Web Apps with Sencha Touch 2 by Martin de Keijzer
Hybrid Mobile Web Apps with Sencha Touch 2Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2
Martin de Keijzer2.8K views
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS by Martin de Keijzer
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
Martin de Keijzer1.5K views
2012 09-04 smart devcon - sencha touch 2 by Martin de Keijzer
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2
Martin de Keijzer834 views
2012 09-04 smart devcon - boot to the web, boot 2 gecko by Martin de Keijzer
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko
Martin de Keijzer888 views
Let's take over the world with Zend Framework by Martin de Keijzer
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend Framework
Martin de Keijzer1.9K views
Improving code quality with continuous integration (PHPBenelux Conference 2011) by Martin de Keijzer
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Martin de Keijzer4.7K views
Continuous integration why and how? [DPC uncon quick-prep version] by Martin de Keijzer
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]
Martin de Keijzer743 views

The Environment Restaurant