SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Cappuccino	
ou	comment	créer	une	
applica0on	web	en	5’	
Didier	Korthoudt	
Directeur	général	SEGI-ULg	
Geeks	Anonymes	Liège	
1er	février	2017
Sommaire	
1. Contexte	
2. Cappuccino	?	
3. Pros	&	Cons	
4. Démo(s)	
5. Conclusion
Contexte
Moi,	ma	vie,	mon	œuvre…
SEGI	&	Cappuccino	?
• Évolu0on	de	nos	deux	principaux	logiciels	vers	applica0ons	web	
• Sybase	Powerbuilder	en	fin	de	vie	(après	rachat	par	SAP)	
• Mobilité,	mises	à	jour,	compa0bilité	Windows,	MacOS,	Linux	
• «	SPA	»	(Single	Page	Applica0on)	avec	backend	J2EE	
➡ Recherche	d’un	framework	Javascript
Frameworks	évalués
…
Mais…
• Applica0on	web	≠	collec0on	de	tags	
• ULIS	&	myULg	sont	2	applica0ons	mastodontes	
➡ Quid	de	la	maintenabilité	?	
• Quid	de	l’expérience	u0lisateur	(habitués	à	une	
applica0on	«	desktop	»	tradi0onnelle)	?
Puis,	au	hasard	de	Google…
cappuccino-project.org
(	suspense	insoutenable	)
➡ PoC	U3	by	DK
➡ QuesNons
Mais	pourquoi	le	DG…	?
… se	mêle-t-il	de	développer	un	
PoC	?	
Il	ne	sait	plus	programmer	
après	10	ans	d’abs0nence…	
(	et	c’est	notre	boulot…	)	
… se	mêle-t-il	de	choisir	un	
framework	?	
C’est	nous	qui	allons	devoir	
l’u0liser…	
(	et	c’est	notre	boulot…	)
Mais	pourquoi	le	DG…	?
• Tout	simplement	parce	que	cela	a	exactement	donné	
l’effet	escompté	:	
6	(7)	PoC	en	4	mois	au	lieu	de	0	en	2	ans…	
(	Je	suppose	la	volonté	de	faire	mieux	que	le	«	vieil	ex-
développeur	totalement	largué	»…	)
• Choix

(plus	grande	adop0on	par	l’équipe	car	plus	orienté	Java)	
• Poursuite	du	développement	d’un	module	ULIS	
indépendant	(organigrammes)	en	Cappuccino	
• Poursuite	(à	0tre	personnel)	de	la	contribuNon	au	projet	

p.ex.	implémenta0on	des	«	tracking	areas	»	
• SouNen	au	projet	

p.ex.	réponse	aux	ques0ons	posées	sur	forum	/	Giier,	
fixes,	organisa0on	de	CappCon	2016
(temporairement		 😉)
Finalement…
fixé	sur	ZK
Cappuccino	?
Cappuccino	?
Framework	Javascript	
Développement	d’applicaNons	web
2006-2007-2008
• Francisco	Tolmasky	(USC	2006,	Apple	dev	iPhone),	Ross	
Boucher	(USC	2007,	Apple	backend	iTunes),	Tom	Robinson	
(USC	2008)	créent	280North.com	
• Objec0f	:	développer	ensemble	des	applica0ons	web	d’un	
niveau	équivalent	aux	applica0ons	desktop…	
• Constat	implacable	:	<HTML/CSS/JS>	pas	adapté…
2006-2007-2008
Tomalsky	avait	conçu	ObjecNve-J	durant	ses	études	:	
• Superset	de	Javascript	(	//	Objec0ve-C	vs	C	)	
• Implémenta0on	du	«	Message	passing	»

(	Smalltalk	)	
• Exécu0on	dans	le	navigateur	
• Aucun	plug-in	
• Client	side	preprocessor

Objec0ve-J		➜		Javascript
2008
280North	développe	Cappuccino	
• Ré-implémenta0on	de	Cocoa	en	ObjecNve-J	
• Founda0on,	AppKit,	CoreGraphics,	CoreAnima0on	
• AbstracNon	complète	de	la	DOM	!	
• Développer	pour	le	web

		 	 	 =

Développer	en	Cocoa	!
2009	:	280Slides
2010	:	Atlas
2010
• 280North	est	racheté	par	Motorola	
• Cappuccino	&	Objec0ve-J	deviennent	OpenSource	(GNU	LGPL)

mais	Motorola	garde	les	applica0ons	pour	son	usage	propre…	
• CoreDevs	(2017)	:	
• Alexander	Ljunberg	(UK)	
• Antoine	Mercadal	(France-USA)	
• Alexandre	Wilhelm	(France-USA)	
• Mar0n	Carlberg	(Suède)	
• GitHub	:	hips://github.com/cappuccino/cappuccino	
• Web	:	hip://cappuccino-project.org/
ObjecNve-J
Classe
@implementation Personne : CPObject
{
CPString _nom;
CPString _prenom;
}
- (CPString)nom
{
return _nom;
}
- (void)setNom:(CPString)unNom
{
_nom = unNom;
}
@end
Classe
@implementation Personne : CPObject
{
CPString _nom @accessors(property=nom);
CPString _prenom;
}
@end
Classe
@implementation Personne : CPObject
{
CPString _nom @accessors(property=nom);
CPString _prenom @accessors(property=prenom);
}
- (CPString)nomPrenom
{
return [CPString stringWithFormat:@"%@ %@", _nom, 

_prenom];
}
@end
Classe
@implementation Personne : CPObject
{
CPString _nom @accessors(property=nom);
CPString _prenom @accessors(property=prenom);
}
- (CPString)nomPrenom
{
return _nom + " " + _prenom;
}
@end
Classe
@implementation Personne : CPObject
{
CPString _nom @accessors(property=nom);
CPString _prenom @accessors(property=prenom);
}
+ (Personne)personneAvecNom:(CPString)unNom prenom:(CPString)unPrenom
{
return [[Personne alloc] initWithNom:unNom prenom:unPrenom];
}
- (id)initWithNom:(CPString)unNom prenom:(CPString)unPrenom
{
self = [super init];
if (self)
{
_nom = unNom;
_prenom = unPrenom;
}
return self;
}
@end
UNlisaNon
var moi = [Personne personneAvecNom:@"Korthoudt" 

prenom:@"Didier"];
var moi = [[Personne alloc] initWithNom:@"Korthoudt"

prenom:@"Didier"];
var monNom = [moi nom];
var monNomPrenom = [moi nomPrenom];
var prenomNom = [CPString stringWithFormat:@"%@ %@", 

[moi prenom], [moi nom]];
if ([nomPrenom isEqualToString:prenomNom])
{
…
}
Quelques	parNcularités
• nil	représente	null	mais	il	est	possible	de	lui	passer	des	messages	sans	générer	d’erreur	!..	
foo = [nil valueForKey:@"bar"]; ( foo = nil )
• YES & NO au	lieu	de true & false
• KVC	(Key-Value	Coding)	permet	d’accéder	aux	propriétés	d’un	objet	à	l’aide	de	valueForKey	:	
	 var monNom = [moi nom] ⬌ var monNom = [moi valueForKey:@"nom"]



Pra0que	si	la	propriété	est	connue	dynamiquement	(au	run0me)	:	
var laPropriete = @"nom";
var laValeur = [moi valueForKey:laPropriete];	
• KVO	(Key-Value	Observing)	permet	d’être	no0fié	d’un	changement	de	value	d’une	propriété	:	
[moi addObserver:self forKeyPath:@"nom" 

options:CPKeyValueObservingOptionNew context:nil];
Catégories
@import <Foundation/CPString.j>
@implementation CPString (Reversing)
- (CPString)reverse
{
var reversedString = @"",
index = [self length];
while (index--)
reversedString += [self characterAtIndex:index];
return reversedString;
}
@end
var myString = @"hello world",
reversed = [myString reverse];
alert(reversed); //"dlrow olleh"
Cappuccino
Quelques	parNcularités
• Classes	Cocoa	préfixées	par	«	NS	»	(pour	NextStep)	
• Classes	Cappuccino	préfixées	par	«	CP	»	(pour	Cappuccino		;-)



	 	 P.ex.		 NSTextField		 	 	 ➜	CPTextField

	 	 	 	 NSMutableArray		 ➜	CPMutableArray	
• FoundaNon	:		 Classe	de	base	CPObject

	 	 	 	 	 +	CPArray,	CPDic0onary,	CPString,	CPUndoManager,	…	
• AppKit	:		 	 Classe	de	base	CPView

	 	 	 	 	 +	CPControl,	CPMenu,	CPTableView,	CPBuion,	…	
• Support	de	frameworks	0ers	(LightObject,	NUKit,	…)
Le	plus	important	:
Reproduit	l’environnement	de	développement	MacOS	!	
API,	delegates,	data	sources,	UI,	AutoLayout,	bindings,	…
• Xcode	:	éditeur,	UI	design,	versioning,	data	models,	…	
+	XcodeCapp	(liaison	Xcode	-	Cappuccino)	
• Compilateur	
• Tests	unitaires	:	OJTest	
• Tests	foncNonnels	UI	:	Cucapp	(Cucumber	for	
Cappuccino)	
• Debugging,	profiling,	…	:	Safari,	Chrome,	Firefox	
• Pour	tests	:	VMWare
OuNls
• Site	web	pour	ini0a0on,	
documenta0on	spécifique,	…	
• Groupe	Google	pour	

ques0ons	/	réponses	(ac0f	!)	
• GitHub	&	channel	Giler	
• Concepts	Cocoa	&	documenta0on	
détaillée	(en	milliers	de	pages)	dans	
XCode,	chez	Apple	(Mac	Dev	
Center),	livres,	…
Ressources
Pros	&	Cons
• Courbe	d’appren0ssage	élevée	pour	
un	développeur	hors	MacOS	/	iOS	
• Nécessite	de	préférence	un	Mac	
• Communauté	restreinte

• Quid	de	la	pérennité	?



• Environnement	isolé	:	langage	
spécifique,	API	spécifiques	
• Look	très	(trop)	MacOS
" • Courbe	d’appren0ssage	rapide	pour	
un	développeur	MacOS	/	iOS	
• Et	?..	
• Communauté	de	professionnels	
u0lisant	Cappuccino	au	quo0dien	
• Comme	n’importe	quel	autre	
framework	open	source…

(btw,	existe	depuis	2009)	
• Possibilité	d’intégrer	d’autres	
frameworks	JS,	d’accéder	à	la	DOM	
• Système	de	thèmes…
#
Démo(s)
Conclusion
• 100%	orienté	applica0on	!	
• 0%	orienté	<HTML/CSS/Tags>	
• Framework	complet	et	extensible	
• Compa0ble	avec	les	navigateurs	
actuels	(y	compris	IE	8+)	
• Maintenabilité,	lisibilité,	…
Pourquoi	choisir	Cappuccino	?
Développer	une	applica0on	
web,	c’est	d’abord	développer	
une	applica0on,	le	web	n’étant	
qu’un	médium,	pas	un	dictat…
QuesNons	?

Contenu connexe

Tendances

Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projetjollivetc
 
CocoaHeads Toulouse - Getting to the core of Core Data
CocoaHeads Toulouse - Getting to the core of Core DataCocoaHeads Toulouse - Getting to the core of Core Data
CocoaHeads Toulouse - Getting to the core of Core DataCocoaHeads France
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEBAbbes Rharrab
 
Les différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel FurnonLes différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel FurnonNicolas Lourenço
 
Guide javascript
Guide javascriptGuide javascript
Guide javascriptjollivetc
 
JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Javajollivetc
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScriptKristen Le Liboux
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Julien Jakubowski
 
JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Javajollivetc
 
Programmation web asynchrone avec Tornado
Programmation web asynchrone avec TornadoProgrammation web asynchrone avec Tornado
Programmation web asynchrone avec TornadoRonan Amicel
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsRonan Amicel
 
Meetup#1 talk#1
Meetup#1 talk#1Meetup#1 talk#1
Meetup#1 talk#1neopixl
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsThomas Bassetto
 

Tendances (18)

Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projet
 
CocoaHeads Toulouse - Getting to the core of Core Data
CocoaHeads Toulouse - Getting to the core of Core DataCocoaHeads Toulouse - Getting to the core of Core Data
CocoaHeads Toulouse - Getting to the core of Core Data
 
Javascript pour les Développeurs WEB
Javascript pour les Développeurs WEBJavascript pour les Développeurs WEB
Javascript pour les Développeurs WEB
 
Les différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel FurnonLes différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel Furnon
 
Promises Javascript
Promises JavascriptPromises Javascript
Promises Javascript
 
Guide javascript
Guide javascriptGuide javascript
Guide javascript
 
JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Java
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
 
JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Java
 
Programmation web asynchrone avec Tornado
Programmation web asynchrone avec TornadoProgrammation web asynchrone avec Tornado
Programmation web asynchrone avec Tornado
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtools
 
Hyper LogLog
Hyper LogLogHyper LogLog
Hyper LogLog
 
Meetup#1 talk#1
Meetup#1 talk#1Meetup#1 talk#1
Meetup#1 talk#1
 
Rex E2E
Rex E2ERex E2E
Rex E2E
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objets
 
JAVA8, créer votre future
JAVA8, créer votre futureJAVA8, créer votre future
JAVA8, créer votre future
 
mix-it 2011
mix-it 2011mix-it 2011
mix-it 2011
 

En vedette

Introduction to Cappuccino
Introduction to CappuccinoIntroduction to Cappuccino
Introduction to Cappuccinoedthix
 
Preparing Cappuccino in 30 minutes
Preparing Cappuccino in 30 minutesPreparing Cappuccino in 30 minutes
Preparing Cappuccino in 30 minutesLukasHurych
 
Cappuccino @ JSConf 2009
Cappuccino @ JSConf 2009Cappuccino @ JSConf 2009
Cappuccino @ JSConf 2009tolmasky
 
Cappuccino - SDRuby 2009-08-06
Cappuccino - SDRuby 2009-08-06Cappuccino - SDRuby 2009-08-06
Cappuccino - SDRuby 2009-08-06chapados
 
Cappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application FrameworkCappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application FrameworkAndreas Korth
 
Starbucks - Innovación,desarrollo e Investigación
Starbucks - Innovación,desarrollo e InvestigaciónStarbucks - Innovación,desarrollo e Investigación
Starbucks - Innovación,desarrollo e InvestigaciónAlexandra Alva Araujo
 

En vedette (7)

Introduction to Cappuccino
Introduction to CappuccinoIntroduction to Cappuccino
Introduction to Cappuccino
 
Preparing Cappuccino in 30 minutes
Preparing Cappuccino in 30 minutesPreparing Cappuccino in 30 minutes
Preparing Cappuccino in 30 minutes
 
Cappuccino @ JSConf 2009
Cappuccino @ JSConf 2009Cappuccino @ JSConf 2009
Cappuccino @ JSConf 2009
 
Coffee beverages
Coffee beveragesCoffee beverages
Coffee beverages
 
Cappuccino - SDRuby 2009-08-06
Cappuccino - SDRuby 2009-08-06Cappuccino - SDRuby 2009-08-06
Cappuccino - SDRuby 2009-08-06
 
Cappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application FrameworkCappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application Framework
 
Starbucks - Innovación,desarrollo e Investigación
Starbucks - Innovación,desarrollo e InvestigaciónStarbucks - Innovación,desarrollo e Investigación
Starbucks - Innovación,desarrollo e Investigación
 

Similaire à Cappuccino - ou comment créer une application web en 5 minutes

Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanMicrosoft
 
Cocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaHeadsRNS
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)Rui Carvalho
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéJulien Dubois
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent Biret
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesyOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesBenoit Jester
 
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Etienne Bailly
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummiesMicrosoft
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...Horacio Gonzalez
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
Tout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasPierre-Alban DEWITTE
 

Similaire à Cappuccino - ou comment créer une application web en 5 minutes (20)

Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet Spartan
 
Cocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOS
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesyOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
 
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummies
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
HTML5
HTML5HTML5
HTML5
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
Tout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pas
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 

Plus de Geeks Anonymes

Programmer sous Unreal Engine
Programmer sous Unreal EngineProgrammer sous Unreal Engine
Programmer sous Unreal EngineGeeks Anonymes
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesGeeks Anonymes
 
Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)Geeks Anonymes
 
Reprendre le contrôle de ses données
Reprendre le contrôle de ses donnéesReprendre le contrôle de ses données
Reprendre le contrôle de ses donnéesGeeks Anonymes
 
Geeks Anonymes - Le langage Go
Geeks Anonymes - Le langage GoGeeks Anonymes - Le langage Go
Geeks Anonymes - Le langage GoGeeks Anonymes
 
Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingGeeks Anonymes
 
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 Vulnérabilités au cœur des applications Web, menaces et contre-mesures Vulnérabilités au cœur des applications Web, menaces et contre-mesures
Vulnérabilités au cœur des applications Web, menaces et contre-mesuresGeeks Anonymes
 
191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materiellesGeeks Anonymes
 
"Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité "Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité Geeks Anonymes
 
Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...Geeks Anonymes
 
Intelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelleIntelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelleGeeks Anonymes
 
Pour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu videoPour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu videoGeeks Anonymes
 
Become Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open SourceBecome Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open SourceGeeks Anonymes
 
Reconnaissance vocale et création artistique
Reconnaissance vocale et création artistiqueReconnaissance vocale et création artistique
Reconnaissance vocale et création artistiqueGeeks Anonymes
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingGeeks Anonymes
 
Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur Geeks Anonymes
 

Plus de Geeks Anonymes (20)

Programmer sous Unreal Engine
Programmer sous Unreal EngineProgrammer sous Unreal Engine
Programmer sous Unreal Engine
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexes
 
Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)
 
Reprendre le contrôle de ses données
Reprendre le contrôle de ses donnéesReprendre le contrôle de ses données
Reprendre le contrôle de ses données
 
Geeks Anonymes - Le langage Go
Geeks Anonymes - Le langage GoGeeks Anonymes - Le langage Go
Geeks Anonymes - Le langage Go
 
Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testing
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 Vulnérabilités au cœur des applications Web, menaces et contre-mesures Vulnérabilités au cœur des applications Web, menaces et contre-mesures
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 
191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles
 
"Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité "Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité
 
Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...
 
Le langage rust
Le langage rustLe langage rust
Le langage rust
 
Test your code
Test your codeTest your code
Test your code
 
Intelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelleIntelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelle
 
Pour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu videoPour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu video
 
Become Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open SourceBecome Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open Source
 
Reconnaissance vocale et création artistique
Reconnaissance vocale et création artistiqueReconnaissance vocale et création artistique
Reconnaissance vocale et création artistique
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur
 
Modern sql
Modern sqlModern sql
Modern sql
 

Cappuccino - ou comment créer une application web en 5 minutes