HTML 5 stockage local

Size: px
Start display at page:

Download "HTML 5 stockage local"

Transcription

1 HTML 5 stockage local & synchronisation Raphaël

2 Une mutation est en cours Pages HTML Serveur Client JSON Single-Page Application

3 Form validation Drag n' Drop API Geolocation Web Notifications WebGL Video Canvas Audio File API Web Workers Web Sockets

4 Stockage local

5 1er bénéfice : le offline?

6 1er bénéfice : économiser le serveur! Source : HTML5 Web Sockets: A Quantum Leap in Scalability for the Web

7 4 étapes

8 Etape 1 Rendre les ressources disponibles hors connexion

9 Application Cache <html <html manifest"cache.manifest"> manifest"cache.manifest"> CACHE MANIFEST CACHE: index.html css/style.css img/logo.png js/main.js text/cache manifest

10 ! Avoir un manifeste change complètement les règles d'accès aux ressources

11 CACHE MANIFEST # v.1.2 build1234 CACHE: index.html css/style.css img/logo.png js/main.js

12 CACHE CACHE MANIFEST MANIFEST # v.1.2 build1234 CACHE: CACHE: index.html css/style.css img/logo.png js/main.js NETWORK NETWORK /sync /sync /api/* /api/*

13 CACHE CACHE MANIFEST MANIFEST # v.1.2 build1234 v.1.2 build1234 CACHE: CACHE: index.html index.html css/style.css css/style.css img/logo.png img/logo.png js/main.js js/main.js NETWORK NETWORK /sync /sync /api/* /api/* FALLBACK FALLBACK images/large/ images/large/ images/offline.jpg images/offline.jpg *.html *.html /offline.html /offline.html

14 window.applicationcache status UNCACHED IDLE CHECKING DOWNLOADING UPDATEREADY OBSOLETE

15 appcache appcache window.applicationcache; window.applicationcache; appcache.addeventlistener('updateready', appcache.addeventlistener('updateready', function(e) function(e) if if (appcache.status (appcache.status appcache.updateready) appcache.updateready) appcache.swapcache(); appcache.swapcache(); if if (confirm('une (confirm('une nouvelle nouvelle version version est est dispo')) dispo')) window.location.reload(); window.location.reload(); } } } } }, }, false); false);

16 > 10? > 3.5 > 4.0 > 4.0 > 10.6 > 3.2 > 2.1 > 11.0

17 Etape 2 Découpler l'application du réseau

18 Todo Backbone.Model.extend( Todo Backbone.Model.extend( toggle: function() toggle: function() this.save(done:!this.get("done")}); this.save(done:!this.get("done")}); }, }, clear: function() clear: function() this.destroy(); this.destroy(); } } }); }); TodoList Backbone.Collection.extend( TodoList Backbone.Collection.extend( model: Todo, model: Todo, done: function() done: function() return this.filter(function(todo) return todo.get('done'); }); return this.filter(function(todo) return todo.get('done'); }); }, }, remaining: function() remaining: function() return this.without.apply(this, this.done()); return this.without.apply(this, this.done()); } } }); });

19 Backbone.Sync create() read() update() POST GET PUT /collection /collection[/id] /collection/id delete() DELETE /collection/id

20 Etape 3 Stocker localement les données

21 3 options

22 FileSystem API! seulement

23 window.requestfilesystem window.requestfilesystem window.requestfilesystem window.requestfilesystem window.webkitrequestfilesystem; window.webkitrequestfilesystem; window.requestfilesystem(window.temporary, window.requestfilesystem(window.temporary, 5*1024*1024, 5*1024*1024, oninitfs, oninitfs, errorhandler); errorhandler); window.webkitstorageinfo.requestquota(window.persistent, window.webkitstorageinfo.requestquota(window.persistent, 5*1024*1024, 5*1024*1024, initfs, initfs, errorhandler); errorhandler); function function initfs(grantedbytes) initfs(grantedbytes) window.requestfilesystem(persistent, window.requestfilesystem(persistent, grantedbytes, grantedbytes, oninitfs, oninitfs, errorhandler); errorhandler); } }

24 FileError code QUOTA_EXCEEDED_ERR NOT_FOUND_ERR SECURITY_ERR INVALID_MODIFICATION_ERR INVALID_STATE_ERR

25 function function oninitfs(fs) oninitfs(fs) fs.root.getfile('data.txt', fs.root.getfile('data.txt', create: create: true}, true}, function(entry) function(entry) entry.file(function(file) entry.file(function(file) reader reader new new FileReader(); FileReader(); reader.onloadend reader.onloadend function(e) function(e) repository.init(json.parse(e.target.result)); repository.init(json.parse(e.target.result)); }; }; reader.readastext(file); reader.readastext(file); }, }, errorhandler); errorhandler); }, }, errorhandler); errorhandler); } }

26 FileEntry name fullpath isfile isdirectory file() createwriter() moveto() copyto() remove()...

27 function function persistdata(fs, persistdata(fs, data) data) fs.root.getfile('log.txt', fs.root.getfile('log.txt', create: create: true}, true}, function(entry) function(entry) entry.createwriter(function(writer) entry.createwriter(function(writer) writer.onwriteend writer.onwriteend function(e) function(e) console.log('write console.log('write completed.'); completed.'); }; }; writer.onerror writer.onerror function(e) function(e) console.log('write console.log('write failed: failed: ' ' + + e.tostring()); e.tostring()); }; }; bb bb new new BlobBuilder(); BlobBuilder(); bb.append(json.stringify(data)); bb.append(json.stringify(data)); writer.write(bb.getblob('text/plain')); writer.write(bb.getblob('text/plain')); }, }, errorhandler); errorhandler); }, }, errorhandler); errorhandler); } }

28 Web Storage localstorage et sessionstorage

29 Un simple dépôt clé-valeur localstorage.setitem("foo", localstorage.setitem("foo", "bar"); "bar"); localstorage.setitem("tweets", localstorage.setitem("tweets", JSON.stringify(tweets); JSON.stringify(tweets); tweets tweets JSON.parse(localStorage.getItem("tweets")); JSON.parse(localStorage.getItem("tweets"));

30 ! Quota de 5 Mo Pas de transactions Pas d'indexation

31 localstorage["tweets:1234"] localstorage["tweets:1234"] "Lorem "Lorem ipsum..."; ipsum..."; localstorage["tweets:1235"] localstorage["tweets:1235"] "Nam "Nam mauris mauris lorem..."; lorem..."; localstorage["tags"] localstorage["tags"] JSON.stringify(["Java", JSON.stringify(["Java", "Python", "Python", "Ruby", "Ruby", "PHP"]); "PHP"]); localstorage["tags:java"] localstorage["tags:java"] JSON.stringify([1234, JSON.stringify([1234, 1235]); 1235]);

32 Très bien supporté API simple Mis en avant par de nb compagnies/projets Performances API synchrone Sérialisation Requêtes Complexité "indexation" manuelle Maintien intégrité

33 > 8 > 3.5 > 4.0 > 4.0 > 10.5 > 3.2 > 2.1 > 11.0

34 localstorage adapter Backbone.sync function(method, model, options) Backbone.sync function(method, model, options) resp; resp; store model.localstorage model.collection.localstorage; store model.localstorage model.collection.localstorage; switch (method) switch (method) case "read": resp model.id? store.find(model) : case "read": resp model.id? store.find(model) : store.findall(); store.findall(); break; break; case "create": resp store.create(model); case "create": resp store.create(model); break; break; case "update": resp store.update(model); case "update": resp store.update(model); break; break; case "delete": resp store.destroy(model); case "delete": resp store.destroy(model); break; break; } } if (resp) if (resp) options.success(resp); options.success(resp); } else } else options.error("record not found"); options.error("record not found"); } } }; };

35 Petit intermède Vous connaissez Redis? BankersBox bb new BankersBox(1); bb new BankersBox(1); bb.set("foo", "bar"); bb.set("foo", "bar"); bb.get("foo"); // returns "bar" bb.get("foo"); // returns "bar" bb.set("count", 10); bb.set("count", 10); bb.incr("count"); // sets "count" to 11, returns 11 bb.incr("count"); // sets "count" to 11, returns 11 bb.incr("newcount"); // sets "newcount" to 1, returns 1 bb.incr("newcount"); // sets "newcount" to 1, returns 1 bb.lpush("mylist", "hello"); bb.lpush("mylist", "hello"); bb.lrange("mylist", 0, 1); // returns ["hello"] bb.lrange("mylist", 0, 1); // returns ["hello"] bb.rpush("mylist", "world"); bb.rpush("mylist", "world"); bb.lrange("mylist", 0, 1); // returns ["hello", "world"] bb.lrange("mylist", 0, 1); // returns ["hello", "world"] bb.sadd("myset", "apple"); bb.sadd("myset", "apple"); bb.sadd("myset", "oragne"); bb.sadd("myset", "oragne");

36 IndexedDB

37 Préfixes, préfixes... window.indexeddb window.indexeddb window.indexeddb window.indexeddb window.mozindexeddb window.mozindexeddb window.webkitindexeddb; window.webkitindexeddb; window.idbkeyrange window.idbkeyrange window.idbkeyrange window.idbkeyrange window.webkitidbkeyrange; window.webkitidbkeyrange; window.idbtransaction window.idbtransaction window.idbtransaction window.idbtransaction window.webkitidbtransaction; window.webkitidbtransaction;

38 API asynchrone function function IndexedDBAdapter() IndexedDBAdapter() this.db this.db null; null; request request indexeddb.open("contactapp"); indexeddb.open("contactapp"); request.onsuccess request.onsuccess function(e) function(e) this.db this.db e.target.result; e.target.result; }.bind(this); }.bind(this); request.onfailure request.onfailure function(e) function(e) console.log("could console.log("could not not connect connect to to the the database"); database"); } } }; };

39 Création d'un dépôt IndexedDBAdapter.prototype.create IndexedDBAdapter.prototype.create function(storename) function(storename) v v "1.0"; "1.0"; request request this.db.setversion(v); this.db.setversion(v); request.onsuccess request.onsuccess function(e) function(e) store store this.db.createobjectstore(storename, this.db.createobjectstore(storename, "keypath": "keypath": "id", "id", "autoincrement": "autoincrement": true true }); }); }; }; request.onblocked request.onblocked function(e) function(e) console.log("the console.log("the database database is is open open in in another another tab."); tab."); }; }; }; };

40 Persistence d'un objet IndexedDBAdapter.prototype.save(storeName, IndexedDBAdapter.prototype.save(storeName, object, object, callback) callback) trans trans db.transaction([storename], db.transaction([storename], IDBTransaction.READ_WRITE, IDBTransaction.READ_WRITE, 0); 0); store store trans.objectstore(storename); trans.objectstore(storename); request request store.put(object); store.put(object); request.onsuccess request.onsuccess function(e) function(e) callback(object); callback(object); }; }; }; };

41 Requête simple IndexedDBAdapter.prototype.all(storeName, IndexedDBAdapter.prototype.all(storeName, callback) callback) trans trans db.transaction([storename], db.transaction([storename], IDBTransaction.READ_WRITE, IDBTransaction.READ_WRITE, 0); 0); store store trans.objectstore(storename); trans.objectstore(storename); keyrange keyrange IDBKeyRange.lowerBound(0); IDBKeyRange.lowerBound(0); request request store.opencursor(keyrange); store.opencursor(keyrange); request.onsuccess request.onsuccess function(e) function(e) cursor cursor e.target.result; e.target.result; if if (cursor) (cursor) callback(cursor.value); callback(cursor.value); cursor.continue(); cursor.continue(); } } }; }; }; };

42 Key Ranges IDBKeyRange.upperBound(x); IDBKeyRange.upperBound(x); // // < < x x IDBKeyRange.upperBound(x, IDBKeyRange.upperBound(x, true); true); // // < < x x IDBKeyRange.lowerBound(y); IDBKeyRange.lowerBound(y); // // > > y y IDBKeyRange.lowerBound(y, IDBKeyRange.lowerBound(y, true); true); // // > > y y IDBKeyRange.bound(x, IDBKeyRange.bound(x, y); y); // // > > x x && && < < y y IDBKeyRange.bound(x, IDBKeyRange.bound(x, y, y, true, true, false); false); // // > > x x && && < < y y

43 Index contacts contacts [ [ firstname: firstname: "John", "John", lastname: lastname: "Doe", "Doe", "[email protected]" "[email protected]" }, }, firstname: firstname: "Jane", "Jane", lastname: lastname: "Doe", "Doe", "[email protected]" "[email protected]" }, }, firstname: firstname: "Johnny", "Johnny", lastname: lastname: "Carson", "Carson", "[email protected]" "[email protected]" } } ]; ]; objectstore.createindex("firstname", objectstore.createindex("firstname", "firstname", "firstname", unique: unique: false false }); }); objectstore.createindex("lastname", objectstore.createindex("lastname", "lastname", "lastname", unique: unique: false false }); }); objectstore.createindex(" ", objectstore.createindex(" ", " ", " ", unique: unique: true true }); });

44 Index contacts contacts [ [ firstname: firstname: "John", "John", lastname: lastname: "Doe", "Doe", "[email protected]" "[email protected]" }, }, firstname: firstname: "Jane", "Jane", lastname: lastname: "Doe", "Doe", "[email protected]" "[email protected]" }, }, firstname: firstname: "Johnny", "Johnny", lastname: lastname: "Carson", "Carson", "[email protected]" "[email protected]" } } ]; ]; index index objectstore.index("lastname"); objectstore.index("lastname"); index.opencursor(idbkeyrange.only("doe")).onsuccess index.opencursor(idbkeyrange.only("doe")).onsuccess function(e) function(e) cursor cursor e.target.result; e.target.result; if if (cursor) (cursor) callback(cursor.value); callback(cursor.value); cursor.continue(); cursor.continue(); } } }; }; index index objectstore.index("firstname"); objectstore.index("firstname"); index.opencursor(idbkeyrange.lowerbound("john")).onsuccess index.opencursor(idbkeyrange.lowerbound("john")).onsuccess function(e) function(e) }; };

45 > 10? > 8.0 > 16.0?????

46 Et pourquoi pas Web SQL Database?

47 X X > 4.0 > 3.1 > 10.5 > 3.2 > 2.1 > 11.0

48 Le polyfill ultime? Lawnchair localstorage indexeddb webkit sqlite gears sqlite ie userdata backberry persistent store window name

49 Etape 4 Développer une stratégie de synchronisation

50 L'exemple d'activesync

51 POST /Microsoft Server &Cmd<Commande> CmdFolderSync&SyncKey } folders: [ contacts: id: 1234, created: 0, 0, updated: 2, 2, deleted: 1 }, }, todos: id: 5678, created: 5, 5, updated: 0, 0, deleted: 2 } ]

52 CmdSync&SyncKey &FolderId5678 } synckey: , created: [ id: 4321, label: "Acheter le le pain" }, },... ], ], updated: [... ], ], deleted: [ 5678, 7890 ]

53

54 Autres pistes Mozilla Services SyncML Operational Transformation ShareJS

55 Etape subsidiaire Le "push"

56 Polling Client Serveur n secondes n secondes

57 Long polling (COMET) Client Serveur Événement côté serveur Événement côté serveur

58 WebSockets

59 Handshake GET /resource name/ HTTP/1.1 Upgrade: WebSocket Connection: Upgrade Host: /server/ Origin: /origin/ WebSocket Protocol: /protocol/ HTTP/ Web Socket Protocol Handshake Upgrade: WebSocket Connection: Upgrade WebSocket Origin: /origin/ WebSocket Location: /url/ WebSocket Protocol: /subprotocol/

60 Serveur (avec node.js) io io require('socket.io').listen(80); io.sockets.on('connection', function (socket) socket.emit('news', hello: 'world' }); socket.on('my other event', function (data) console.log(data); }); }); Client socket io.connect(' socket.on('news', function (data) console.log(data); socket.emit('my other event', my: 'data' }); });

61 > 10? > 6.0 > 14.0 > 5.0 > 11.0 > 4.2? > 11.0

62 Avec Socket.IO > 5.5 > 3.0 > 4.0 > 3.0 > > 3.2 > 2.1 > 11.0

63 Server-Sent Events

64 HTTP traditionnel GET /myappstream Content Type: text/event stream

65 if if (window.eventsource) source new EventSource('myAppStream'); } else // // fallback to to something... } source.addeventlistener('message', function(e) console.log(e.data); }, }, false); source.addeventlistener('open', function(e) }, }, false); source.addeventlistener('error', function(e) if if (e.readystate EventSource.CLOSED) } }, }, false);

66 Format des messages data: Hello world\n\n Multi-ligne data: Hello\n data: world\n\n JSON data: \n data: "msg": "Hello world",\n data: "id": 12345\n data: }\n\n

67 Format des messages Utilisation des IDs id: 12345\n data: "user": "goldo", "msg": "Hello!"}\n\n Utilisation des events data: "msg": "Hello!"}\n\n event: login\n data: "user": "goldo"}\n\n event: update\n data: "user": "goldo", "status": "away"}\n\n

68 Avantages Reconnexion automatique Ids Events

69 Questions / réponses

HTML5 Offline Data. INF5750/9750 - Lecture 6 (Part II)

HTML5 Offline Data. INF5750/9750 - Lecture 6 (Part II) HTML5 Offline Data INF5750/9750 - Lecture 6 (Part II) What is offline? The Web and Online are considered to be synonymous, then what is HTML offline? HTML content distributed over CDs/DVDs, always offline

More information

Introduction Les failles les plus courantes Les injections SQL. Failles Web. Maxime Arthaud. net7. Jeudi 03 avril 2014.

Introduction Les failles les plus courantes Les injections SQL. Failles Web. Maxime Arthaud. net7. Jeudi 03 avril 2014. Maxime Arthaud net7 Jeudi 03 avril 2014 Syllabus Introduction Exemple de Requête Transmission de données 1 Introduction Exemple de Requête Transmission de données 2 3 Exemple de Requête Transmission de

More information

Web Browser. Fetches/displays documents from web servers. Mosaic 1993

Web Browser. Fetches/displays documents from web servers. Mosaic 1993 HTML5 and CSS3 Web Browser Fetches/displays documents from web servers Mosaic 1993 Firefox,IE,Chrome,Safari,Opera,Lynx,Mosaic,Konqueror There are standards, but wide variation in features Desktop Browser

More information

Développement Web 2. Node.js Installation de modules

Développement Web 2. Node.js Installation de modules Développement Web 2 Bertrand Estellon Aix-Marseille Université April 1, 2014 Nodejs Nodejs Introduction Introduction Nodejs est une plateforme : permettant d écrire des applications; basée sur le langage

More information

Modern Web Development From Angle Brackets to Web Sockets

Modern Web Development From Angle Brackets to Web Sockets Modern Web Development From Angle Brackets to Web Sockets Pete Snyder Outline (or, what am i going to be going on about ) 1.What is the Web? 2.Why the web matters 3.What s unique about

More information

Mobile Web Applications using HTML5. L. Cotfas 14 Dec. 2011

Mobile Web Applications using HTML5. L. Cotfas 14 Dec. 2011 Mobile Web Applications using HTML5 L. Cotfas 14 Dec. 2011 Reasons for mobile web development Many different platforms: Android, IPhone, Symbian, Windows Phone/ Mobile, MeeGo (only a few of them) Reasons

More information

Internet Explorer 10 Internet Explorer 11. Internet Explorer 10

Internet Explorer 10 Internet Explorer 11. Internet Explorer 10 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 Internet Explorer 8 Internet Explorer 9 Internet Explorer 10 Internet Explorer 11 Internet Explorer 10 Internet Explorer 11 Internet Explorer

More information

Thursday, February 7, 2013. DOM via PHP

Thursday, February 7, 2013. DOM via PHP DOM via PHP Plan PHP DOM PHP : Hypertext Preprocessor Langage de script pour création de pages Web dynamiques Un ficher PHP est un ficher HTML avec du code PHP

More information

Safari Client-Side Storage and Offline Applications Programming Guide

Safari Client-Side Storage and Offline Applications Programming Guide Safari Client-Side Storage and Offline Applications Programming Guide Contents Introduction 5 At a Glance 6 Use the Offline Application Cache to Make Your Website Usable Offline 6 Lighten Your Cookie Load

More information

Sync your schedule and work orders with SME & Microsoft Outlook

Sync your schedule and work orders with SME & Microsoft Outlook Sync your schedule and work orders with SME & Microsoft Outlook High 5 Software is proud to announce a new addition to the SME product family to keep your sales staff and technicians in synch with SME

More information

JavaScript Programming

JavaScript Programming JavaScript Programming Pushing the Limits ADVANCED APPLICATION DEVELOPMENT WITH JAVASCRIPT & HTML5 Jon Raasch WILEY Contents About the Author vi Dedication vii About the Contributor ix Acknowledgments

More information

Group Projects M1 - Cubbyhole

Group Projects M1 - Cubbyhole SUPINFO Academic Dept. Project presentation Group Projects Version 1.0 Last update: 20/11/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International University vous permet

More information

Client-Side Storage in Web Applications

Client-Side Storage in Web Applications Client-Side Storage in Web Applications Markku Laine Department of Media Technology, Aalto University P.O. Box 15500, FI-00076 Aalto, Finland [email protected] Abstract In recent years, a number of

More information

Web Tracking for You. Gregory Fleischer

Web Tracking for You. Gregory Fleischer Web Tracking for You Gregory Fleischer 1 INTRODUCTION 2 Me Gregory Fleischer Senior Security Consultant at FishNet Security 3 Disclaimer Why do you hate? 4 Reasons For Tracking TradiFonal reasons for tracking

More information

Learning HTML5 Game Programming

Learning HTML5 Game Programming Learning HTML5 Game Programming A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL James L. Williams AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York

More information

Brazil + JDBC Juin 2001, [email protected] http://jfod.cnam.fr/tp_cdi/douin/

Brazil + JDBC Juin 2001, douin@cnam.fr http://jfod.cnam.fr/tp_cdi/douin/ Brazil + JDBC Juin 2001, [email protected] http://jfod.cnam.fr/tp_cdi/douin/ version du 26 Mai 2003 : JDBC-SQL et Brazil pré-requis : lecture de Tutorial JDBC de Sun Bibliographie Brazil [Bra00]www.sun.com/research/brazil

More information

Introduction to Tizen SDK 2.0.0 Alpha. Taiho Choi Samsung Electronics

Introduction to Tizen SDK 2.0.0 Alpha. Taiho Choi Samsung Electronics Introduction to Tizen SDK 2.0.0 Alpha Taiho Choi Samsung Electronics Contents Web technologies of Tizen Components of SDK 2.0.0 Alpha Hello world! Debugging apps Summary 1 Web technologies on Tizen Web

More information

Guide 3 - SkyDrive Pro

Guide 3 - SkyDrive Pro Guide 3 - SkyDrive Pro 1. SkyDrive Pro on the web 2. SkyDrive Pro on your PC 3. SkyDrive Pro on your ipad Microsoft Office 365 is the new messaging and storage solution for the City of Edinburgh educational

More information

The Need For Speed. leads to PostgreSQL. Dimitri Fontaine [email protected]. 28 Mars 2013

The Need For Speed. leads to PostgreSQL. Dimitri Fontaine dimitri@2ndquadrant.fr. 28 Mars 2013 The Need For Speed leads to PostgreSQL Dimitri Fontaine [email protected] 28 Mars 2013 Dimitri Fontaine [email protected] The Need For Speed 28 Mars 2013 1 / 23 Dimitri Fontaine 2ndQuadrant France

More information

Setting up a monitoring and remote control tool

Setting up a monitoring and remote control tool Setting up a monitoring and remote control tool Oral examination for internship - Second year of Master in Computer Sciences Kevin TAOCHY Department of Mathematics and Computer Sciences University of Reunion

More information

HTML5 and Device APIs for Automotive: Is it time to power Infotainment and Car Portal Applications with Web Technologies?

HTML5 and Device APIs for Automotive: Is it time to power Infotainment and Car Portal Applications with Web Technologies? HTML5 and Device APIs for Automotive: Is it time to power Infotainment and Car Portal Applications with Web Technologies? Diana Cheng - [email protected] Introduction A key advantage of HTML5 and

More information

Intro to Web Development

Intro to Web Development Intro to Web Development For this assignment you will be using the KompoZer program because it free to use, and we wanted to keep the costs of this course down. You may be familiar with other webpage editing

More information

Créez les interfaces du futur avec les APIs d aujourd hui. Thursday, October 18, 12

Créez les interfaces du futur avec les APIs d aujourd hui. Thursday, October 18, 12 Créez les interfaces du futur avec les APIs d aujourd hui Je suis web opener chez Deux interfaces futuristes utilisant des APIs web + web sockets + device orientation = + du WebGL!! server.js α, β, ɣ α,

More information

Grapevine Mail User Guide

Grapevine Mail User Guide Grapevine Mail User Guide Table of Contents Accessing Grapevine Mail...2 How to access the Mail portal... 2 How to login... 2 Grapevine Mail user guide... 5 Copying your contacts to the new Grapevine Mail

More information

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

WEB DEVELOPMENT COURSE (PHP/ MYSQL) WEB DEVELOPMENT COURSE (PHP/ MYSQL) COURSE COVERS: HTML 5 CSS 3 JAVASCRIPT JQUERY BOOTSTRAP 3 PHP 5.5 MYSQL SYLLABUS HTML5 Introduction to HTML Introduction to Internet HTML Basics HTML Elements HTML Attributes

More information

Step into the Future: HTML5 and its Impact on SSL VPNs

Step into the Future: HTML5 and its Impact on SSL VPNs Step into the Future: HTML5 and its Impact on SSL VPNs Aidan Gogarty HOB, Inc. Session ID: SPO - 302 Session Classification: General Interest What this is all about. All about HTML5 3 useful components

More information

Programming in HTML5 with JavaScript and CSS3

Programming in HTML5 with JavaScript and CSS3 Course 20480B: Programming in HTML5 with JavaScript and CSS3 Course Details Course Outline Module 1: Overview of HTML and CSS This module provides an overview of HTML and CSS, and describes how to use

More information

HTML5 the new. standard for Interactive Web

HTML5 the new. standard for Interactive Web WHITE PAPER HTML the new standard for Interactive Web by Gokul Seenivasan, Aspire Systems HTML is everywhere these days. Whether desktop or mobile, windows or Mac, or just about any other modern form factor

More information

Durée 4 jours. Pré-requis

Durée 4 jours. Pré-requis F5 - BIG-IP Application Security Manager V11.0 Présentation du cours Ce cours traite des attaques applicatives orientées Web et de la façon d utiliser Application Security Manager (ASM) pour s en protéger.

More information

Firefox for Android. Reviewer s Guide. Contact us: [email protected]

Firefox for Android. Reviewer s Guide. Contact us: press@mozilla.com Reviewer s Guide Contact us: [email protected] Table of Contents About Mozilla Firefox 1 Move at the Speed of the Web 2 Get Started 3 Mobile Browsing Upgrade 4 Get Up and Go 6 Customize On the Go 7 Privacy

More information

WebLogic & Coherence. Best backend for Mobile Apps. July 2014 INSERT PRESENTER TITLE AND DATE

WebLogic & Coherence. Best backend for Mobile Apps. July 2014 INSERT PRESENTER TITLE AND DATE WebLogic & Coherence Best backend for Mobile Apps July 2014 INSERT PRESENTER TITLE AND DATE Copyright 2014 Oracle and/or its affiliates. All rights reserved. Oracle Confidential Internal/Restricted/Highly

More information

Tizen Web Runtime Update. Ming Jin Samsung Electronics

Tizen Web Runtime Update. Ming Jin Samsung Electronics Tizen Web Runtime Update Ming Jin Samsung Electronics Table of Contents Quick Overview of This Talk Background, Major Updates, Upcoming Features What Have Been Updated Installation/Update Flow, WebKit2,

More information

Website Report: http://www.servicesaprixfixes.com/ To-Do Tasks: 22 SEO SCORE: 73 / 100. Add the exact keywords to this URL.

Website Report: http://www.servicesaprixfixes.com/ To-Do Tasks: 22 SEO SCORE: 73 / 100. Add the exact keywords to this URL. Page 1 of 8 Website Report: http://www.servicesaprixfixes.com/ Keyword: Marketplace, B2B, services aux entreprises, small business Date: Decemr 12, 2014 SEO SCORE: 73 / 100 To-Do Tasks: 22 Add the exact

More information

Research of Web Real-Time Communication Based on Web Socket

Research of Web Real-Time Communication Based on Web Socket Int. J. Communications, Network and System Sciences, 2012, 5, 797-801 http://dx.doi.org/10.4236/ijcns.2012.512083 Published Online December 2012 (http://www.scirp.org/journal/ijcns) Research of Web Real-Time

More information

Stockage distribué sous Linux

Stockage distribué sous Linux Félix Simon Ludovic Gauthier IUT Nancy-Charlemagne - LP ASRALL Mars 2009 1 / 18 Introduction Répartition sur plusieurs machines Accessibilité depuis plusieurs clients Vu comme un seul et énorme espace

More information

Smartphone Enterprise Application Integration

Smartphone Enterprise Application Integration WHITE PAPER MARCH 2011 Smartphone Enterprise Application Integration Rhomobile - Mobilize Your Enterprise Overview For more information on optimal smartphone development please see the Rhomobile White

More information

Vincent Rullier Technology specialist Microsoft Suisse Romande

Vincent Rullier Technology specialist Microsoft Suisse Romande Vincent Rullier Technology specialist Microsoft Suisse Romande Pourquoi virtualiser Différents types de virtualisation Présentation Applications Postes de travail Serveurs Bénéfices Conclusion Q&A Technology

More information

Administrer les solutions Citrix XenApp et XenDesktop 7.6 CXD-203

Administrer les solutions Citrix XenApp et XenDesktop 7.6 CXD-203 Administrer les solutions Citrix XenApp XenDesktop 7.6 CXD-203 MIEL Centre Agréé : N 11 91 03 54 591 Pour contacter le service formation : 01 60 19 16 27 Pour consulter le planning des formations : www.miel.fr/formation

More information

Tool & Asset Manager 2.0. User's guide 2015

Tool & Asset Manager 2.0. User's guide 2015 Tool & Asset Manager 2.0 User's guide 2015 Table of contents Getting Started...4 Installation...5 "Standalone" Edition...6 "Network" Edition...7 Modify the language...8 Barcode scanning...9 Barcode label

More information

You can choose to install the plugin through Magento Connect or by directly using the archive files.

You can choose to install the plugin through Magento Connect or by directly using the archive files. Magento plugin 1.5.7 installation 1. Plugin installation You can choose to install the plugin through Magento Connect or by directly using the archive files. 1.1 Installation with Magento Connect 1.1.1

More information

Solaris 10 Documentation README

Solaris 10 Documentation README Solaris 10 Documentation README Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 817 0550 10 January 2005 Copyright 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa

More information

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";! SET time_zone = "+00:00";!

SET SQL_MODE = NO_AUTO_VALUE_ON_ZERO;! SET time_zone = +00:00;! -- phpmyadmin SQL Dump -- version 4.1.3 -- http://www.phpmyadmin.net -- -- Client : localhost -- Généré le : Lun 19 Mai 2014 à 15:06 -- Version du serveur : 5.6.15 -- Version de PHP : 5.4.24 SET SQL_MODE

More information

Audit de sécurité avec Backtrack 5

Audit de sécurité avec Backtrack 5 Audit de sécurité avec Backtrack 5 DUMITRESCU Andrei EL RAOUSTI Habib Université de Versailles Saint-Quentin-En-Yvelines 24-05-2012 UVSQ - Audit de sécurité avec Backtrack 5 DUMITRESCU Andrei EL RAOUSTI

More information

BGP dans le ToR. FRnOG 23. Antoine Sibout Datacenter Architect Juniper Networks

BGP dans le ToR. FRnOG 23. Antoine Sibout Datacenter Architect Juniper Networks BGP dans le ToR FRnOG 23 Antoine Sibout Datacenter Architect Juniper Networks Datacenter traditionnel Underlay & Vlans Routing & Filtering between VLANs L3 L3 Routing & Filtering between VLANs FW LB L2/L3

More information

Adding Outlook to a Blackberry, Downloading, Installing and Configuring Blackberry Desktop Manager

Adding Outlook to a Blackberry, Downloading, Installing and Configuring Blackberry Desktop Manager Adding Outlook to a Blackberry, Downloading, Installing and Configuring Blackberry Desktop Manager The following instructions work for the District provided Blackberrys from Sprint, but I think it should

More information

About the To-Do Bar in Outlook 2007

About the To-Do Bar in Outlook 2007 Exchange Outlook 007 How To s / Tasks (Advanced ) of 8 Tasks in the Microsoft Office system are similar to a to-do list. Tasks make it easy to use Microsoft Office Outlook 007 to organize your time and

More information

Les Support Packs IA94 et IA9H

Les Support Packs IA94 et IA9H Guide MQ du 13 Novembre 2007 Journée «Support Packs» Les Support Packs IA94 et IA9H Edouard Orcel [email protected] IBM France Plan Présentation XMS Serveurs compatibles : MQ, WMB, WAS, WPS ou WESB

More information

GET /FB/index.html HTTP/1.1 Host: lmi32.cnam.fr

GET /FB/index.html HTTP/1.1 Host: lmi32.cnam.fr GET /FB/index.html HTTP/1.1 Host: lmi32.cnam.fr HTTP/1.1 200 OK Date: Thu, 20 Oct 2005 14:42:54 GMT Server: Apache/2.0.50 (Linux/SUSE) Last-Modified: Thu, 20 Oct 2005 14:41:56 GMT ETag: "2d7b4-14b-8efd9500"

More information

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean Course Description Getting Started with Android Programming is designed to give students a strong foundation to develop apps

More information

HTML5 Websockets with ruby and rails. Saurabh Bhatia, CEO, Safew Labs

HTML5 Websockets with ruby and rails. Saurabh Bhatia, CEO, Safew Labs HTML5 Websockets with ruby and rails Saurabh Bhatia, CEO, Safew Labs Meet the humble "Websocket" 1. What is it? WebSocket is a technology providing for bi-directional, full-duplex communications channels,

More information

Introduction au BIM. ESEB 38170 Seyssinet-Pariset Economie de la construction email : [email protected]

Introduction au BIM. ESEB 38170 Seyssinet-Pariset Economie de la construction email : contact@eseb.fr Quel est l objectif? 1 La France n est pas le seul pays impliqué 2 Une démarche obligatoire 3 Une organisation plus efficace 4 Le contexte 5 Risque d erreur INTERVENANTS : - Architecte - Économiste - Contrôleur

More information

Neoteris IVE Integration Guide

Neoteris IVE Integration Guide Neoteris IVE Integration Guide NESD-00090-00 CAY051402 The Secure Email Client upgrade option enables Neoteris IVE users to use standardsbased email clients to access corporate email from remote locations.

More information

The Risks of Client-Side Data Storage From cookie to database

The Risks of Client-Side Data Storage From cookie to database The Risks of Client-Side Data Storage From cookie to database GOVCERT.NL Symposium - 15 November 2010 Agenda Client-Side Data Storage (CSDS): What it is Why it s used How it s implemented Demo SecurSearch

More information

Admin Guide Product version: 4.3.5 Product date: November, 2011. Technical Administration Guide. General

Admin Guide Product version: 4.3.5 Product date: November, 2011. Technical Administration Guide. General Corporate Directory View2C Admin Guide Product version: 4.3.5 Product date: November, 2011 Technical Administration Guide General This document highlights Corporate Directory software features and how

More information

Configuring your email client to connect to your Exchange mailbox

Configuring your email client to connect to your Exchange mailbox Configuring your email client to connect to your Exchange mailbox Contents Use Outlook Web Access (OWA) to access your Exchange mailbox... 2 Use Outlook 2003 to connect to your Exchange mailbox... 3 Add

More information

Upgrade to Microsoft Web Applications

Upgrade to Microsoft Web Applications Upgrade to Microsoft Web Applications Description Customers demand beautiful, elegant apps that are alive with activity. Demonstrate your expertise at designing and developing the fast and fluid Store

More information

Tizen Web Runtime. Device API

Tizen Web Runtime. Device API Tizen Web Runtime. Device API 1 Что нового в html5 Элементы разметки: article, nav, header, footer... Поддержка API 2D drawing video, audio Offline web Drag and Drop File API Геолокация Базы данных (key-value)

More information

Web Interface using HTML5 for Interaction between Mobile Device & Cloud- Services

Web Interface using HTML5 for Interaction between Mobile Device & Cloud- Services Web Interface using HTML5 for Interaction between Mobile Device & Cloud- Services Nimit S Modi,Proff.Yask Patel Computer Department,PIET, Baroda. IT Department,PIET,Baroda Abstract Mobile cloud computing

More information

Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask

Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates

More information

Locked Web Browser. User s Manual

Locked Web Browser. User s Manual Locked Web Browser User s Manual Locked Web Browser USER'S MANUAL DATALOGIC S.p.A. Via Candini 2 40012 - Lippo di Calderara di Reno Bologna - Italy Locked Web Browser Ed.: 04/2005 ALL RIGHTS RESERVED

More information

Annexe - OAuth 2.0. 1 Introduction. Xavier de Rochefort [email protected] - labri.fr/~xderoche 15 mai 2014

Annexe - OAuth 2.0. 1 Introduction. Xavier de Rochefort xderoche@labri.fr - labri.fr/~xderoche 15 mai 2014 1 Introduction Annexe - OAuth 2.0. Xavier de Rochefort [email protected] - labri.fr/~xderoche 15 mai 2014 Alternativement à Flickr, notre serveur pourrait proposer aux utilisateurs l utilisation de leur

More information

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable

More information

Feature Integration Across Microsoft Office Server Products SharePoint Server, Exchange Server, Lync Server, and Office Web Apps

Feature Integration Across Microsoft Office Server Products SharePoint Server, Exchange Server, Lync Server, and Office Web Apps Feature Integration Across Microsoft Office Products SharePoint,,, and Office Web Apps Illustrations for cross-server features This multi-tab Visio file (or multi-page PDF file) includes descriptions and

More information

Real Time Data in Web Applications

Real Time Data in Web Applications Martin Schreiber push push push Agenda 1. Real Time Data and HTTP? HTTP AJAX WebSockets 2. Getting Started with ASP.NET SignalR 2.x RPC Connection Transport Behavior Server JavaScript Client.NET Client

More information

Neoteris IVE Integration Guide

Neoteris IVE Integration Guide Neoteris IVE Integration Guide Published Date July 2015 The Secure Email Client upgrade option enables Neoteris IVE users to use standards based email clients to access corporate email from remote locations.

More information

Seagate NAS OS 4 Reviewers Guide: NAS / NAS Pro / Business Storage Rackmounts

Seagate NAS OS 4 Reviewers Guide: NAS / NAS Pro / Business Storage Rackmounts Seagate NAS OS 4 Reviewers Guide: NAS / NAS Pro / Business Storage Rackmounts Seagate NAS OS 4 Reviewers Guide 2 Purpose of this guide Experience the most common use cases for the product, learn about

More information

Brainshark/Salesforce.com Integration Installation Procedures

Brainshark/Salesforce.com Integration Installation Procedures Page1 Brainshark/Salesforce.com Integration Installation Procedures The Brainshark/Salesforce integration allows Salesforce users to send emails containing links to Brainshark presentations from a contact

More information

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you

More information

WebSocket Server. To understand the Wakanda Server side WebSocket support, it is important to identify the different parts and how they interact:

WebSocket Server. To understand the Wakanda Server side WebSocket support, it is important to identify the different parts and how they interact: WebSocket Server Wakanda Server provides a WebSocket Server API, allowing you to handle client WebSocket connections on the server. WebSockets enable Web applications (clients) to use the WebSocket protocol

More information

Wildix WebRTC Kite & MCU Videoconference. Quick Start Guide

Wildix WebRTC Kite & MCU Videoconference. Quick Start Guide Wildix WebRTC Kite & MCU Videoconference Quick Start Guide Version 20.04.2015 Wildix Kite is a professional solution based on WebRTC technology for real-time communication with the customer through the

More information

How To Write A Web Server In Javascript

How To Write A Web Server In Javascript LIBERATED: A fully in-browser client and server web application debug and test environment Derrell Lipman University of Massachusetts Lowell Overview of the Client/Server Environment Server Machine Client

More information

Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7. Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7

Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7. Initial Setup of Microsoft Outlook with Google Apps Sync for Windows 7 Microsoft Outlook with Initial Setup of Concept This document describes the procedures for setting up the Microsoft Outlook email client to download messages from Google Mail using Internet Message Access

More information

Document OwnCloud Collaboration Server (DOCS) User Manual. How to Access Document Storage

Document OwnCloud Collaboration Server (DOCS) User Manual. How to Access Document Storage Document OwnCloud Collaboration Server (DOCS) User Manual How to Access Document Storage You can connect to your Document OwnCloud Collaboration Server (DOCS) using any web browser. Server can be accessed

More information

ISL Online Integration Manual

ISL Online Integration Manual Contents 2 Table of Contents Foreword Part I Overview Part II 0 3 4... 1 Dow nload and prepare 4... 2 Enable the ex ternal ID column on ISL Conference Prox y 4... 3 Deploy w eb content 5... 4 Add items

More information

ios SDK possibilities & limitations

ios SDK possibilities & limitations ios SDK possibilities & limitations Licensing Licensing Registered as an Apple Developer (free) Access to XCode3 and ios SDK ios, Mac and Safari Dev Center Resources No possibility of distribution of developed

More information

Memo bconsole. Memo bconsole

Memo bconsole. Memo bconsole Memo bconsole Page 1 / 24 Version du 10 Avril 2015 Page 2 / 24 Version du 10 Avril 2015 Sommaire 1 Voir les différentes travaux effectués par bacula3 11 Commande list jobs 3 12 Commande sqlquery 3 2 Afficher

More information

Vodafone Email Plus. User Guide for Windows Mobile

Vodafone Email Plus. User Guide for Windows Mobile Vodafone Email Plus User Guide for Windows Mobile 1 Table of Contents 1 INTRODUCTION... 4 2 INSTALLING VODAFONE EMAIL PLUS... 4 2.1 SETUP BY USING THE VODAFONE EMAIL PLUS ICON...5 2.2 SETUP BY DOWNLOADING

More information

Frequently Asked Questions for the USA TODAY e-newspaper

Frequently Asked Questions for the USA TODAY e-newspaper Frequently Asked Questions for the USA TODAY e-newspaper Navigating the USA TODAY e-newspaper A look at the toolbar Toolbar Functions, Buttons, and Descriptions The tab marked Contents will take the e-reader

More information

GCM GOOGLE CLOUD MESSAGING

GCM GOOGLE CLOUD MESSAGING GCM GOOGLE CLOUD MESSAGING By +Dennis Geurts / @dennisgggg ABOUT ME +Dennis Geurts Software Architect at Luminis Co-organizer Dutch Android User Group LUMINIS 120+ skilled colleages software and interaction

More information

Working with your NTU email off campus

Working with your NTU email off campus Working with your NTU email off campus When you are working on a laptop or at home you can access your email via a number of methods. Using Outlook Web Access or NOW, you can access your email via any

More information

Mobile development with Apache OFBiz. Ean Schuessler, co-founder @ Brainfood

Mobile development with Apache OFBiz. Ean Schuessler, co-founder @ Brainfood Mobile development with Apache OFBiz Ean Schuessler, co-founder @ Brainfood Mobile development For the purposes of this talk mobile development means mobile web development The languages and APIs for native

More information

Accessing External Databases from Mobile Applications

Accessing External Databases from Mobile Applications CENTER FOR CONVERGENCE AND EMERGING NETWORK TECHNOLOGIES CCENT Syracuse University TECHNICAL REPORT: T.R. 2014-003 Accessing External Databases from Mobile Applications Version 2.0 Authored by: Anirudh

More information

Hours: The hours for the class are divided between practicum and in-class activities. The dates and hours are as follows:

Hours: The hours for the class are divided between practicum and in-class activities. The dates and hours are as follows: March 2014 Bienvenue à EDUC 1515 Français Langue Seconde Partie 1 The following information will allow you to plan in advance for the upcoming session of FSL Part 1 and make arrangements to complete the

More information

Saruman Documentation

Saruman Documentation Saruman Documentation Release 0.3.0 Tycho Tatitscheff January 05, 2016 Contents 1 Saruman 3 1.1 Most important Urls.................................... 3 1.2 Technologies used.....................................

More information

READ AND FOLLOW ALL SAFETY INSTRUCTIONS 1. DANGER RISK OF SHOCK DISCONNECT POWER BEFORE INSTALLATION

READ AND FOLLOW ALL SAFETY INSTRUCTIONS 1. DANGER RISK OF SHOCK DISCONNECT POWER BEFORE INSTALLATION UR Series LED Upgrade Kit Includes: 48" Linear Option IMPORTANT SAFEGUARDS When using electrical equipment, basic safety precautions should always be followed including the following: READ AND FOLLOW ALL

More information

Assignment # 1 (Cloud Computing Security)

Assignment # 1 (Cloud Computing Security) Assignment # 1 (Cloud Computing Security) Group Members: Abdullah Abid Zeeshan Qaiser M. Umar Hayat Table of Contents Windows Azure Introduction... 4 Windows Azure Services... 4 1. Compute... 4 a) Virtual

More information

Short Form Description / Sommaire: Carrying on a prescribed activity without or contrary to a licence

Short Form Description / Sommaire: Carrying on a prescribed activity without or contrary to a licence NOTICE OF VIOLATION (Corporation) AVIS DE VIOLATION (Société) Date of Notice / Date de l avis: August 29, 214 AMP Number / Numéro de SAP: 214-AMP-6 Violation committed by / Violation commise par : Canadian

More information

Learning Web App Development

Learning Web App Development Learning Web App Development Semmy Purewal Beijing Cambridge Farnham Kbln Sebastopol Tokyo O'REILLY Table of Contents Preface xi 1. The Workflow 1 Text Editors 1 Installing Sublime Text 2 Sublime Text

More information

Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios

Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios 27 au 29 mars 2013 Speaker @cyrilleleclerc CTO Architect Cyrille Le Clerc Fort Traffic Open Source Cloud, DevOps Speaker @hgomez Architecte

More information

Document From MAXIMUM BUSINESS INFORMATION TECHNOLOGY ON A. OwnCloud User Manual. TO I Cafe`

Document From MAXIMUM BUSINESS INFORMATION TECHNOLOGY ON A. OwnCloud User Manual. TO I Cafe` Document From MAXIMUM BUSINESS INFORMATION TECHNOLOGY ON A OwnCloud User Manual TO I Cafe` DATED 20 Sep 2014 User Manual Guid For Owncloud I. Accessing the owncloud Web Interface To access the owncloud

More information