SlideShare ist ein Scribd-Unternehmen logo
1 von 78
no-pain web development
Part I make your web app 
90's
easy but static
cgi-scripts....
netscape index.html
90's
easy but static
cgi-scripts....
netscape index.html
mozilla http://localhost/my-app
PHP
apache server required
easy deployment
+ database
2000's
The rise of web frameworks
… and databases
extra configuration
the deployment requires daemonization
and more configuration
2010's
Single-page applications
real app in the browser
framework required: Backone, Angular, Ember...…
JS files require organization and assembling
HTML templates?…
Coffeescript? Livescript?… …
css pre-processors
your CSS files need a build
before coding any feature I need to...
chose two frameworks
before coding any feature I need to...
chose two frameworks
chose a database
before coding any feature I need to...
chose two frameworks
chose a database
configure my app
before coding any feature I need to...
chose two frameworks
chose a database
configure my app
handle deployment
before coding any feature I need to...
chose two frameworks
chose a database
configure my app
handle deployment
assemble my front-end files
before coding any feature I need to...
chose two frameworks
chose a database
configure my app
handle deployment
assemble my front-end files
build my stylesheets
NEED HELP?…
Part II Templates
chose your frameworks and your
database
sorry there is no golden rule for this
how to organize my files and my
configuration ? 
people already use your framework and know
the good practices
they provide application templates
your templates are like your dotfiles
clone a template, modify it then keep it for your next apps( )
rails new blog -m http://example.com/template.rb
or
# Clone repository
git pull https://github.com/gaarf/express-boilerplate
mv express-boilerplate your-app
cd your-app
# Link to your repository
git remote rm origin
git remote add origin git@github.com:you/your-app.git
git add .
git push -u origin master
Part III Deployment
isolate with containers
One for each module
Easier to manage
More secured
that's true for dev environment too
Vagrant, a simple hypervisor
for developers, can help
(cleaner that it looks like)
http://vagrantup.com
useful for
keeping your local machine clean
simulating the production environment
init vagrant
gem install vagrant
# add a box to your base box list
vagrant box add ubuntu http://files.vagrantup.com/precise64.box
create and start your vm
vagrant init ubuntu # init config
vagrant up # start the vm
vagrant ssh # connect through ssh...
... # and install your stuff!
port forwarding to access to your module like if they were
running on localhost
# modify Vagrantfile
config.vm.forward_port 9101, 9101
act as a devop
automate your deployment
straighforward
but hard to maintain
remote shell scripting with
python
still require some work
recipes
Idempotent
great but
a little bit
overkill
?
Fabtools
Fabtools
=
Fabric + helpers + idempotence
http://fabtools.readthedocs.org/
Fabric
from fabric.api import env, run
def prod():
env.hosts = ['www.yourapp.com']
env.user = 'root'
def install_db():
run('apt-get install postgres')
run('psql -c "CREATE USER you')
run('sudo -u postgres createdb ydb --owner you')
$ fab prod install_db
Fabtools
from fabtools import require
def prod():
env.hosts = ['www.yourapp.com']
env.user = 'root'
def require_db():
require.postgres.server()
require.postgres.user('you', 's3cr3')
require.postgres.database('yourdb', 'you')
$ fab prod require_db
Part IV Front-end assembler
makefile for frontend
quickstart
compile
assemble
minify
http://brunch.io
install brunch as a global package
npm install brunch -g
create project
cd yourproject
brunch new client # create a client template
cd client
npm install # dependencies required by brunch
brunch build
Automatic build when changes occur
brunch watch
Directory structure
|-app
|---assets
|-----images
|---controllers
|---lib
|---models
|---views
|-----styles
|-----templates
|-vendor
|---scripts
|---styles
paths:
public: 'public'
files:
javascripts:
defaultExtension: 'coffee'
joinTo:
'javascripts/app.js': /^app/
'javascripts/vendor.js': /^vendor/
stylesheets:
defaultExtension: 'styl'
joinTo:
'stylesheets/app.css': /^app/
'stylesheets/vendor.css': /^vendor/
templates:
defaultExtension: 'jade'
joinTo: 'javascripts/app.js'
framework: 'backbone'
paths:
public: 'public'
files:
javascripts:
defaultExtension: 'coffee'
joinTo:
'javascripts/app.js': /^app/
'javascripts/vendor.js': /^vendor/
stylesheets:
defaultExtension: 'styl'
joinTo:
'stylesheets/app.css': /^app/
'stylesheets/vendor.css': /^vendor/
templates:
defaultExtension: 'jade'
joinTo: 'javascripts/app.js'
framework: 'backbone'
paths:
public: 'public'
files:
javascripts:
defaultExtension: 'coffee'
joinTo:
'javascripts/app.js': /^app/
'javascripts/vendor.js': /^vendor/
stylesheets:
defaultExtension: 'styl'
joinTo:
'stylesheets/app.css': /^app/
'stylesheets/vendor.css': /^vendor/
templates:
defaultExtension: 'jade'
joinTo: 'javascripts/app.js'
framework: 'backbone'
paths:
public: 'public'
files:
javascripts:
defaultExtension: 'coffee'
joinTo:
'javascripts/app.js': /^app/
'javascripts/vendor.js': /^vendor/
stylesheets:
defaultExtension: 'styl'
joinTo:
'stylesheets/app.css': /^app/
'stylesheets/vendor.css': /^vendor/
templates:
defaultExtension: 'jade'
joinTo: 'javascripts/app.js'
framework: 'backbone'
alternative
Yeoman (Grunt)
Live reload
Codekit
Part V Features
hello world
yeah I got my hello world with my new devops
stuff!
basic features
What about authentication?…
registration?…
Taking advantage of user data?…
NEED
HELP?…
http://cozy.io
an open personal cloud with
auth and registration included
apps that share their data
real-time notifications for all data changes
https://demo.cozycloud.cc/
+
a choice for two frameworks
a choice for a database
a node.js template
easy deployment
an already configured assembler
a packaged vm for your dev environment
default stack
front-end:…
backbone
assembler:…
brunch
back-end:…
compound (node.js)
data:
storage:…
couchdb
events:
redis
indexes:…
whoosh
am I stuck with cozy ? 
change database adapter
=> then you have a classic web app.
cozy is a good way to...
quickstart
learn node.js and spa
prototype
make personal tools
Appendix Code
the bookmark tutorial
let's write an app that allows you to store
your favorite links
Get prepared
npm install compound brunch cozy scaffolt -g
Setup the dev environment (based on Vagrant)
cozy dev:init
cozy dev:start
Create your project
$ cozy new yourproject --github your-account
Github password:
Your cozy url: https://yourcozy.cozycloud.cc/
Project created!
we are coding
a full client in the browser
that takes its data from a REST API
Generate front end code
cd client/
scaffolt module bookmark
info: create app/models/bookmark.coffee
info: create app/collections/bookmarks.coffee
info: create app/views/bookmarks.coffee
info: create app/views/bookmark.coffee
info: create app/views/templates/bookmark.jade
info: create app/views/styles/_bookmark.styl
brunch w # build on changes
Then code what is missing!
Templates
# views/templates/bookmark.jade
.title #{model.title}
.url
a(href="#{model.url}") #{model.url}
button.delete-button delete
# views/templates/home.jade
h1 My bookmarks
#create-bookmark-form
input#title-field(placeholder="title")
input#url-field(placeholder="url")
button.btn#create-button create
#bookmarks
Home View
# views/home.coffee
View = require '../lib/view'
BookmarksView = require './bookmarks'
Bookmark = require '../models/bookmark'
module.exports = class AppView extends View
el: 'body'
events:
'click #create-button': 'onCreateClicked'
template: -> require './templates/home'
afterRender: ->
@bookmarksView = new BookmarksView()
@bookmarksView.collection.fetch()
onCreateClicked: =>
title = @$('#title-field').val()
url = @$('#url-field').val()
bookmark = new Bookmark title: title, url: url
@bookmarksView.collection.create bookmark,
success: => alert 'bookmark added'
error: => alert 'Server error occured'
Bookmark view
# views/bookmark.jade
View = require '../lib/view'
module.exports = class BookmarkView extends View
template: require './templates/bookmark'
className: 'bookmark'
events:
'click .delete-button': 'onDeleteClicked'
onDeleteClicked: ->
@model.destroy
success: => @destroy()
error: => alert 'Server error occured'
Styles
# views/styles/application.styl
body
padding: 20px
# views/styles/_bookmark.styl
.bookmark
padding: 10px 0
backend
urls to retrieve, create and delete bookmarks
Generate backend files
compound g model bookmark title url
exists app/
exists app/models/
create app/models/bookmark.coffee
patch db/schema.coffee
Routes
# config/routes.coffee
exports.routes = (map) ->
map.get 'bookmarks', 'bookmarks#all'
map.post 'bookmarks', 'bookmarks#create'
map.del 'bookmarks/:id', 'bookmarks#destroy'
Controllers
# apps/controllers/bookmarks_controller.coffee
action 'all', ->
Bookmark.all (err, bookmarks) ->
if err then send 500
else send bookmarks
action 'create', ->
Bookmark.create req.body, (err, bookmark) =>
if err then send 500
else send bookmark
action 'destroy', ->
Bookmark.find req.params.id, (err, bookmark) =>
if err then send 500
else if not bookmark
send error: 'not found', 404
else
bookmark.destroy (err) ->
if err then send 500
else send success: true, 204
Define requests (couchdb)
# config/initializers/requests.coffee
module.exports = (compound) ->
Bookmark = compound.models.Bookmark
all = (doc) -> emit doc.title, doc
Bookmark.defineRequest 'all', all, (err) ->
console.log 'request all created' unless err
Test
coffee server.coffee
firefox http://localhost:9250
Then deploy!
$ cozy deploy
Bookmarks successfully deployed on
https://yourcozy.cozycloud.cc/ !
And share your repo url with...
Biscuit man
who is now
happy again !!…
contact@cozycloud.cc
https://blog.cozycloud.cc
https://twitter.com/mycozycloud
Crédits photos Flickr: Ben Garney, CG94 photos, twicepix, flickrsven,
Virginia Guard Public Affairs, henskechristine, NASA Goddard Photo
and Video, World of Oddy
License Creative Commons by-3.0
a talk by...

Weitere ähnliche Inhalte

Was ist angesagt?

Refactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsRefactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsStacy London
 
The road to Ember.js 2.0
The road to Ember.js 2.0The road to Ember.js 2.0
The road to Ember.js 2.0Codemotion
 
From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)Joseph Chiang
 
Vue 淺談前端建置工具
Vue 淺談前端建置工具Vue 淺談前端建置工具
Vue 淺談前端建置工具andyyou
 
Webapps without the web
Webapps without the webWebapps without the web
Webapps without the webRemy Sharp
 
Vue.js is boring - and that's a good thing
Vue.js is boring - and that's a good thingVue.js is boring - and that's a good thing
Vue.js is boring - and that's a good thingJoonas Lehtonen
 
Building a js widget
Building a js widgetBuilding a js widget
Building a js widgetTudor Barbu
 
20160905 - BrisJS - nightwatch testing
20160905 - BrisJS - nightwatch testing20160905 - BrisJS - nightwatch testing
20160905 - BrisJS - nightwatch testingVladimir Roudakov
 
The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.jsThe Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.jsHolly Schinsky
 
Really Rapid Admin Application Development
Really Rapid Admin Application DevelopmentReally Rapid Admin Application Development
Really Rapid Admin Application DevelopmentJose Diaz-Gonzalez
 
HTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreHTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreRemy Sharp
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp HamiltonPaul Bearne
 
Modern frontend development with VueJs
Modern frontend development with VueJsModern frontend development with VueJs
Modern frontend development with VueJsTudor Barbu
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the FinishYehuda Katz
 

Was ist angesagt? (20)

Refactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsRefactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.js
 
The road to Ember.js 2.0
The road to Ember.js 2.0The road to Ember.js 2.0
The road to Ember.js 2.0
 
From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)From Hacker to Programmer (w/ Webpack, Babel and React)
From Hacker to Programmer (w/ Webpack, Babel and React)
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
Vue 淺談前端建置工具
Vue 淺談前端建置工具Vue 淺談前端建置工具
Vue 淺談前端建置工具
 
Vue business first
Vue business firstVue business first
Vue business first
 
Webapps without the web
Webapps without the webWebapps without the web
Webapps without the web
 
Vuex
VuexVuex
Vuex
 
Symfony2 and AngularJS
Symfony2 and AngularJSSymfony2 and AngularJS
Symfony2 and AngularJS
 
Vue.js is boring - and that's a good thing
Vue.js is boring - and that's a good thingVue.js is boring - and that's a good thing
Vue.js is boring - and that's a good thing
 
Building a js widget
Building a js widgetBuilding a js widget
Building a js widget
 
Nodejs.meetup
Nodejs.meetupNodejs.meetup
Nodejs.meetup
 
20160905 - BrisJS - nightwatch testing
20160905 - BrisJS - nightwatch testing20160905 - BrisJS - nightwatch testing
20160905 - BrisJS - nightwatch testing
 
The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.jsThe Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
 
Really Rapid Admin Application Development
Really Rapid Admin Application DevelopmentReally Rapid Admin Application Development
Really Rapid Admin Application Development
 
Vue, vue router, vuex
Vue, vue router, vuexVue, vue router, vuex
Vue, vue router, vuex
 
HTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreHTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymore
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp Hamilton
 
Modern frontend development with VueJs
Modern frontend development with VueJsModern frontend development with VueJs
Modern frontend development with VueJs
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 

Andere mochten auch

Synchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDBSynchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDBFrank Rousseau
 
Heart attack12
Heart attack12Heart attack12
Heart attack12BChange
 
[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...
[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...
[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...Plan Politika
 
Leverage social media to drive business final
Leverage social media to drive business finalLeverage social media to drive business final
Leverage social media to drive business finalSimoneVersteeg
 
E mail new codes - on 5 october 2012
E mail new codes - on 5 october 2012E mail new codes - on 5 october 2012
E mail new codes - on 5 october 2012BChange
 
Slideprpensa
SlideprpensaSlideprpensa
SlideprpensaImacp
 
Tidak layak ke syurga mu
Tidak layak ke syurga muTidak layak ke syurga mu
Tidak layak ke syurga musyafiehidayat
 
Monet.vn Brochure giải pháp thẻ thành viên thông minh
Monet.vn Brochure giải pháp thẻ thành viên thông minhMonet.vn Brochure giải pháp thẻ thành viên thông minh
Monet.vn Brochure giải pháp thẻ thành viên thông minhThanh Trinh
 
[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...
[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...
[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...Plan Politika
 
A presentation on economic news for the week.pptx 2
A presentation on economic news for the week.pptx 2A presentation on economic news for the week.pptx 2
A presentation on economic news for the week.pptx 2gaganhanda11 gaganhanda11
 
et news (1 to 5 NOV)
et news (1 to 5 NOV)et news (1 to 5 NOV)
et news (1 to 5 NOV)Nitin Kochhar
 
Idris: Chocolatey Yumm-Tastic
Idris: Chocolatey Yumm-TasticIdris: Chocolatey Yumm-Tastic
Idris: Chocolatey Yumm-TasticWalida Roberts
 
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...Plan Politika
 
Workwise overview summary 2011
Workwise overview summary 2011Workwise overview summary 2011
Workwise overview summary 2011BChange
 
[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...
[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...
[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...Plan Politika
 
Internetmarketing Compleet.Nl Introductie
Internetmarketing Compleet.Nl IntroductieInternetmarketing Compleet.Nl Introductie
Internetmarketing Compleet.Nl IntroductieistruXure
 

Andere mochten auch (20)

Synchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDBSynchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDB
 
Presentation on et fot the week of 13
Presentation on et fot the week of 13Presentation on et fot the week of 13
Presentation on et fot the week of 13
 
8 12 nov
8   12  nov8   12  nov
8 12 nov
 
Heart attack12
Heart attack12Heart attack12
Heart attack12
 
[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...
[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...
[plan politika] Politik dan Pemuda Indonesia : Politik Pencitraan Di Mata Pem...
 
Leverage social media to drive business final
Leverage social media to drive business finalLeverage social media to drive business final
Leverage social media to drive business final
 
E mail new codes - on 5 october 2012
E mail new codes - on 5 october 2012E mail new codes - on 5 october 2012
E mail new codes - on 5 october 2012
 
Weekly news
Weekly newsWeekly news
Weekly news
 
Slideprpensa
SlideprpensaSlideprpensa
Slideprpensa
 
Tidak layak ke syurga mu
Tidak layak ke syurga muTidak layak ke syurga mu
Tidak layak ke syurga mu
 
Monet.vn Brochure giải pháp thẻ thành viên thông minh
Monet.vn Brochure giải pháp thẻ thành viên thông minhMonet.vn Brochure giải pháp thẻ thành viên thông minh
Monet.vn Brochure giải pháp thẻ thành viên thông minh
 
[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...
[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...
[plan politika] Indonesian Youth and Politics : Between Youth, Politics, and ...
 
A presentation on economic news for the week.pptx 2
A presentation on economic news for the week.pptx 2A presentation on economic news for the week.pptx 2
A presentation on economic news for the week.pptx 2
 
et news (1 to 5 NOV)
et news (1 to 5 NOV)et news (1 to 5 NOV)
et news (1 to 5 NOV)
 
Idris: Chocolatey Yumm-Tastic
Idris: Chocolatey Yumm-TasticIdris: Chocolatey Yumm-Tastic
Idris: Chocolatey Yumm-Tastic
 
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
 
Kannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeita
Kannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeitaKannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeita
Kannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeita
 
Workwise overview summary 2011
Workwise overview summary 2011Workwise overview summary 2011
Workwise overview summary 2011
 
[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...
[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...
[plan politika] Indonesian Youth and Politics : What Imad, a President of Stu...
 
Internetmarketing Compleet.Nl Introductie
Internetmarketing Compleet.Nl IntroductieInternetmarketing Compleet.Nl Introductie
Internetmarketing Compleet.Nl Introductie
 

Ähnlich wie 20130528 solution linux_frousseau_nopain_webdev

Dethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.jsDethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.jsJay Harris
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsJim Jeffers
 
cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123Parag Gajbhiye
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular applicationmirrec
 
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupalDay
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
 
Write your first WordPress plugin
Write your first WordPress pluginWrite your first WordPress plugin
Write your first WordPress pluginAnthony Montalbano
 
Deploying configurable frontend web application containers
Deploying configurable frontend web application containersDeploying configurable frontend web application containers
Deploying configurable frontend web application containersJosé Moreira
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackIgnacio Martín
 
OpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudOpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudIsaac Christoffersen
 
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFabio Akita
 
End-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystemEnd-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystemAlex Mikitenko
 
Webpack Encore Symfony Live 2017 San Francisco
Webpack Encore Symfony Live 2017 San FranciscoWebpack Encore Symfony Live 2017 San Francisco
Webpack Encore Symfony Live 2017 San FranciscoRyan Weaver
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
Useful Rails Plugins
Useful Rails PluginsUseful Rails Plugins
Useful Rails Pluginsnavjeet
 
Django + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoDjango + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoJavier Abadía
 
QConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações WebQConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações WebFabio Akita
 

Ähnlich wie 20130528 solution linux_frousseau_nopain_webdev (20)

Dethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.jsDethroning Grunt: Simple and Effective Builds with gulp.js
Dethroning Grunt: Simple and Effective Builds with gulp.js
 
infra-as-code
infra-as-codeinfra-as-code
infra-as-code
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
 
cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
 
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Write your first WordPress plugin
Write your first WordPress pluginWrite your first WordPress plugin
Write your first WordPress plugin
 
Deploying configurable frontend web application containers
Deploying configurable frontend web application containersDeploying configurable frontend web application containers
Deploying configurable frontend web application containers
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
 
OpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudOpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid Cloud
 
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
 
Dancing with websocket
Dancing with websocketDancing with websocket
Dancing with websocket
 
End-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystemEnd-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystem
 
Webpack Encore Symfony Live 2017 San Francisco
Webpack Encore Symfony Live 2017 San FranciscoWebpack Encore Symfony Live 2017 San Francisco
Webpack Encore Symfony Live 2017 San Francisco
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Useful Rails Plugins
Useful Rails PluginsUseful Rails Plugins
Useful Rails Plugins
 
Django + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoDjango + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar Django
 
QConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações WebQConSP 2015 - Dicas de Performance para Aplicações Web
QConSP 2015 - Dicas de Performance para Aplicações Web
 

Mehr von Frank Rousseau

Device Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDBDevice Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDBFrank Rousseau
 
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquetsNode.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquetsFrank Rousseau
 
Newebe, un Réseau Social ou Chacun est Indépendant
Newebe, un Réseau Social ou Chacun est IndépendantNewebe, un Réseau Social ou Chacun est Indépendant
Newebe, un Réseau Social ou Chacun est IndépendantFrank Rousseau
 
Conseils sur le Design pour les Développeurs par un Développeur
Conseils sur le Design pour les Développeurs par un DéveloppeurConseils sur le Design pour les Développeurs par un Développeur
Conseils sur le Design pour les Développeurs par un DéveloppeurFrank Rousseau
 
Développement web sans souffrance avec Cozy
Développement web sans souffrance avec CozyDéveloppement web sans souffrance avec Cozy
Développement web sans souffrance avec CozyFrank Rousseau
 
Newebe, a social network where all users are independent
Newebe, a social network where all users are independentNewebe, a social network where all users are independent
Newebe, a social network where all users are independentFrank Rousseau
 
Cozy Cloud, Pour un meilleur web
Cozy Cloud, Pour un meilleur webCozy Cloud, Pour un meilleur web
Cozy Cloud, Pour un meilleur webFrank Rousseau
 
Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...
Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...
Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...Frank Rousseau
 
A startup with no office, hipster tools and open source products
A startup with no office, hipster tools and open source productsA startup with no office, hipster tools and open source products
A startup with no office, hipster tools and open source productsFrank Rousseau
 
How to make a Personal Single Page Application with Cozy
How to make a Personal Single Page Application with CozyHow to make a Personal Single Page Application with Cozy
How to make a Personal Single Page Application with CozyFrank Rousseau
 
How to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJSHow to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJSFrank Rousseau
 
Haibu: dev deployment is fast and easy again
Haibu: dev deployment is fast and easy againHaibu: dev deployment is fast and easy again
Haibu: dev deployment is fast and easy againFrank Rousseau
 
Cozy Cloud for RMLL 2012
Cozy Cloud for RMLL 2012Cozy Cloud for RMLL 2012
Cozy Cloud for RMLL 2012Frank Rousseau
 

Mehr von Frank Rousseau (17)

Device Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDBDevice Synchronization with Javascript and PouchDB
Device Synchronization with Javascript and PouchDB
 
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquetsNode.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
 
Newebe, un Réseau Social ou Chacun est Indépendant
Newebe, un Réseau Social ou Chacun est IndépendantNewebe, un Réseau Social ou Chacun est Indépendant
Newebe, un Réseau Social ou Chacun est Indépendant
 
Conseils sur le Design pour les Développeurs par un Développeur
Conseils sur le Design pour les Développeurs par un DéveloppeurConseils sur le Design pour les Développeurs par un Développeur
Conseils sur le Design pour les Développeurs par un Développeur
 
Développement web sans souffrance avec Cozy
Développement web sans souffrance avec CozyDéveloppement web sans souffrance avec Cozy
Développement web sans souffrance avec Cozy
 
Cozy, a Personal PaaS
Cozy, a Personal PaaSCozy, a Personal PaaS
Cozy, a Personal PaaS
 
Newebe, a social network where all users are independent
Newebe, a social network where all users are independentNewebe, a social network where all users are independent
Newebe, a social network where all users are independent
 
Cozy Cloud, Pour un meilleur web
Cozy Cloud, Pour un meilleur webCozy Cloud, Pour un meilleur web
Cozy Cloud, Pour un meilleur web
 
Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...
Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...
Comment les grands acteurs du web s'improvisent magiciens et jouent avec nos ...
 
A startup with no office, hipster tools and open source products
A startup with no office, hipster tools and open source productsA startup with no office, hipster tools and open source products
A startup with no office, hipster tools and open source products
 
How to make a Personal Single Page Application with Cozy
How to make a Personal Single Page Application with CozyHow to make a Personal Single Page Application with Cozy
How to make a Personal Single Page Application with Cozy
 
How to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJSHow to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJS
 
Haibu: dev deployment is fast and easy again
Haibu: dev deployment is fast and easy againHaibu: dev deployment is fast and easy again
Haibu: dev deployment is fast and easy again
 
Cozy Cloud, JDLL 2012
Cozy Cloud, JDLL 2012Cozy Cloud, JDLL 2012
Cozy Cloud, JDLL 2012
 
Newebe, JDLL 2012
Newebe, JDLL 2012Newebe, JDLL 2012
Newebe, JDLL 2012
 
Newebe for RMLL 2012
Newebe for RMLL 2012Newebe for RMLL 2012
Newebe for RMLL 2012
 
Cozy Cloud for RMLL 2012
Cozy Cloud for RMLL 2012Cozy Cloud for RMLL 2012
Cozy Cloud for RMLL 2012
 

Kürzlich hochgeladen

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Kürzlich hochgeladen (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

20130528 solution linux_frousseau_nopain_webdev