Mobile HTML5: Implementing a Responsive Cross-Platform Application

Total Page:16

File Type:pdf, Size:1020Kb

Mobile HTML5: Implementing a Responsive Cross-Platform Application Aalto University School of Science Degree Programme of Computer Science and Engineering Kimmo Puputti Mobile HTML5: Implementing a Responsive Cross-Platform Application Master's Thesis Kirkkonummi, May 15, 2012 Supervisor: Professor Petri Vuorimaa, Aalto University Instructor: Risto Sarvas D.Sc.(Tech.) Aalto University School of Science ABSTRACT OF Degree Programme of Computer Science and Engineering MASTER'S THESIS Author: Kimmo Puputti Title: Mobile HTML5: Implementing a Responsive Cross-Platform Application Date: May 15, 2012 Pages: ix + 70 Professorship: Media Technology Code: T-111 Supervisor: Professor Petri Vuorimaa Instructor: Risto Sarvas D.Sc.(Tech.) In twenty years, the Web has become an integral part of our everyday lives. The rapid growth of the smartphone market has brought the Web from our home desks to anywhere we are, and enabled us to access this vast source of information at any time. However, the proliferation of mobile devices and platforms has raised new prob- lems for application development. The growing amount of different platforms and their distinct native technologies make it hard to develop applications that can be accessed with all these devices. The only combining factor in all these platforms is the browser, and it is be- coming the universal application platform. We cannot afford anymore to build applications for the silos and walled gardens of single platforms, and building cross-platform applications is essential in the modern mobile market. In this work, I introduce the HTML5 (HyperText Markup Language version 5) specification as well as several related specifications or specification drafts for modern web development. I also present several tools and libraries for mobile web development. I implemented a mobile web application and a network utility library, and assessed the practical performance of the modern tools and APIs (Application Program- ming Interface). In this work, I present the tools and techniques for performance optimization of mobile web applications. Keywords: mobile, HTML5, cross-platform, performance Language: English ii Aalto-yliopisto Perustieteiden korkeakoulu DIPLOMITYON¨ Tietotekniikan tutkinto-ohjelma TIIVISTELMA¨ Tekij¨a: Kimmo Puputti Ty¨on nimi: Mobiili HTML5: Suorituskykyisen ja alustariippumattoman sovelluksen toteutus P¨aiv¨ays: 15 toukokuuta 2012 Sivum¨a¨ar¨a: ix + 70 Professuuri: Mediatekniikka Koodi: T-111 Valvoja: Professori Petri Vuorimaa Ohjaaja: Tohtori Risto Sarvas Kahdenkymmenen vuoden aikana webist¨a on tullut oleellinen osa jokap¨aiv¨aist¨a el¨am¨a¨amme. Mobiilimarkkinoiden huikea kasvu on tuonut webin kotip¨oydilt¨amme mukaamme miss¨a ikin¨a olemmekin ja mahdollistanut t¨am¨an laajan tietovaraston k¨aytt¨amisen milloin tahansa. Mobiililaitteiden k¨ayt¨on r¨aj¨ahdysm¨ainen kasvu on kuitenkin nostanut uusia haasteita ohjelmistokehitykselle. Monien eri alustojen natiiviteknologiat poikkea- vat toisistaan, ja ohjelmistojen kehitt¨aminen kaikille n¨aille alustoille on haastavaa. Ainoa yhteinen tekij¨a n¨aiss¨a alustoissa on WWW-selain (World Wide Web), jos- ta on tulossa universaali ohjelmistoalusta. En¨a¨a ei voida kehitt¨a¨a ohjelmistoja vain tiettyjen suljettujen alustojen k¨aytt¨ajille, ja alusta-riippumattomuudesta on tullut oleellinen osa mobiilimarkkinoita. T¨ass¨a ty¨oss¨a esittelemme HTML5-standardin sek¨a muita siihen liittyvi¨a stan- dardeja sek¨a standardiluonnoksia, jotka tuovat uusia ominaisuuksia ja helpotuk- sia web-kehitykseen. Esittelemme my¨os useita ty¨okaluja ja tekniikoita moderniin web-kehitykseen mobiililaitteille. Toteutimme mobiililaitteissa toimivan web-ohjelmiston sek¨a kirjaston tiedon si- irt¨amiseen mobiiliverkoissa, ja arvioimme modernien ty¨okalujen ja rajapintojen k¨ayt¨ann¨on suorituskyky¨a. T¨ass¨a ty¨oss¨a esit¨amme useita ty¨okaluja ja tekniikoita web-ohjelmistojen suorituskyvyn optimointiin mobiililaitteille. Asiasanat: mobiili, HTML5, alusta-riippumattomuus, suorituskyky Kieli: Englanti iii Acknowledgements I would like to thank my supervisor, Professor Petri Vuorimaa, for the valu- able comments and instructions for this work; my instructor, Doctor Risto Sarvas, for giving me a valuable point of view to see this work in the proper context as a whole; and my colleague, Jarno Rantanen, for making the demo application for the utility library documented in this work. I would also like to thank my employer, Futurice, for giving me time to write this work and to do satisfying projects, such as the practical part of this work, every day with different customers. Mostly, I would like to thank my wife Maija for the valuable support and my firstborn son Leo who was born during the writing of this work. You are the light of my life. Kirkkonummi, May 15, 2012 Kimmo Puputti iv Abbreviations and Acronyms 3G 3rd Generation Mobile Telecommunications API Application Programming Interface Ajax Asynchronous JavaScript and XML AppCache Application Cache Blob Binary Large Object CDN Content Delivery Network CORS Cross-Origin Resource Sharing CPU Central Processing Unit CSS Cascading Style Sheets CSS3 Cascading Style Sheets level 3 DNS Domain Name System DOM Document Object Model ETag Entity Tag GPS Global Positioning System HTML HyperText Markup Language HTML5 HyperText Markup Language version 5 HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol Secure IP Internet Protocol IT Information Technology JSON JavaScript Object Notation MVC Model-View-Controller MathML Mathematical Markup Language OS Operating System OpenGL R ES Open Graphics Library for Embedded Systems REST Representational State Transfer RTMP Real Time Messaging Protocol SDK Software Development Kit SQL Structured Query Language SVG Scalable Vector Graphics v TCP Transmission Control Protocol TTL Time To Live UA User-Agent URL Uniform Resource Locator W3C World Wide Web Consortium WHATWG Web Hypertext Application Technology Working Group WWW World Wide Web WebGL Web Graphics Library WiFi Wireless Local Area Network (WLAN) XHTML eXtensible HyperText Markup Language XML Extensible Markup Language vi Contents Abbreviations and Acronyms iv 1 Introduction 1 1.1 Research Questions . 4 1.2 Structure of This Work . 4 2 HTML5 5 2.1 Semantic Markup . 6 2.2 Extensibility . 7 2.3 Media . 8 2.4 Canvas 2D Context . 8 2.5 Form Enhancements . 8 2.6 Session History Manipulation . 9 2.7 Offline Web Applications . 9 2.7.1 Application Cache . 9 2.7.2 Data Storage . 10 2.7.3 Detecting Network State . 11 2.8 Drag and Drop . 11 2.9 SVG and MathML . 11 3 Other Related Specifications 13 3.1 Cascading Style Sheets . 13 3.2 WebGL and Typed Arrays . 15 3.3 Touch Events . 16 3.4 Files . 16 3.5 Web Real-time Communication . 16 3.6 Web Sockets . 17 3.7 Server-Sent Events . 18 3.8 Web Workers . 18 3.9 Analytics and Timing . 19 3.10 Page Visibility and Timer Control . 19 vii 3.11 Cross-Origin Resource Sharing . 20 3.12 Device APIs . 20 3.12.1 Geolocation . 20 3.12.2 Device Orientation . 21 3.12.3 User Media . 21 3.13 Other . 21 4 Tools and Techniques 23 4.1 Single-Page applications . 24 4.2 JavaScript MVC Libraries . 24 4.3 Responsive Design . 26 4.4 Progressive Enhancement . 26 4.5 User Interface Libraries . 27 4.5.1 jQuery Mobile . 27 4.5.2 jQTouch . 27 4.5.3 Sencha Touch . 29 4.6 Hybrid Applications . 29 4.7 Performance Guidelines . 30 5 Use Case 36 5.1 Conference Application Requirements . 36 5.2 JSONCache Requirements . 37 6 Implementation and Results 38 6.1 Conference Application . 38 6.2 JSONCache JavaScript Library . 40 6.3 Targeting Different Platforms . 42 6.3.1 Device Detection . 43 6.3.2 Feature Detection . 44 6.4 Targeting Different Screens . 46 6.5 Handling Different Orientations . 48 6.6 Handling Mobile Networks . 49 6.6.1 Minimizing Data Transfer . 49 6.6.2 Caching . 49 6.6.3 Preloading . 50 6.6.4 Offline Support . 50 6.6.5 Handling Interruptions . 51 6.7 Animations . 52 6.8 Following JavaScript Best Practices . 52 6.8.1 JSLint . 52 6.8.2 Lazy initialization . 53 viii 6.8.3 Efficient DOM Manipulation . 53 6.8.4 Efficient Event Handling . 53 6.9 Performance Analysis . 54 6.9.1 YSlow . 54 6.9.2 Page Speed . 55 6.10 Summary of Results . 59 7 Conclusions 62 7.1 Further Work . 62 7.2 Discussion . 63 ix Chapter 1 Introduction Twenty years after its birth, the Web has become one of the defining tech- nological innovations that knows no geographical, political, or ideological boundaries. The world wide platform built on top of the physical Internet is deeply integrated into our daily lives. This powerful tool that was built on egalitarian principles is now taken for granted, just like old innovations such as electricity. [4] In parallel with the rapid growth of the Web, mobile phones have evolved from briefcase-sized \portable" telephony devices into modern pocket-sized computers. The mobile revolution has already changed the world as we see it, and more people have access to the Web from a mobile device than from an Internet-connected desktop computer. [15] The Web is not constrained into (desktop and laptop) computers and mobile phones, though. Tablets, TVs, ebook readers, watches, and even household appliances are connecting to the Internet and have web browsers. For the first time in history, we have a truly ubiquitous digital medium. [15] Universal accessibility and openness are the keys to being the ubiquitous information platform of the digital age [4]. Now the Web is closer in accom- plishing its original principles in equality and universality; anyone can access this vast source of open information from anywhere, with any device. All you need is a web browser that supports the open standards of the Web. The goal of the Web is to serve humanity. { Tim Berners-Lee [4] Being the universal digital medium, mobile devices has some unique char- acteristics that other mass media lack. Mobile is personal, always-on, always- carried medium with a built-in payment channel. Mobile is in your pocket at the moment you have your creative impulse.
Recommended publications
  • Learning Javascript Design Patterns
    Learning JavaScript Design Patterns Addy Osmani Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo Learning JavaScript Design Patterns by Addy Osmani Copyright © 2012 Addy Osmani. All rights reserved. Revision History for the : 2012-05-01 Early release revision 1 See http://oreilly.com/catalog/errata.csp?isbn=9781449331818 for release details. ISBN: 978-1-449-33181-8 1335906805 Table of Contents Preface ..................................................................... ix 1. Introduction ........................................................... 1 2. What is a Pattern? ...................................................... 3 We already use patterns everyday 4 3. 'Pattern'-ity Testing, Proto-Patterns & The Rule Of Three ...................... 7 4. The Structure Of A Design Pattern ......................................... 9 5. Writing Design Patterns ................................................. 11 6. Anti-Patterns ......................................................... 13 7. Categories Of Design Pattern ............................................ 15 Creational Design Patterns 15 Structural Design Patterns 16 Behavioral Design Patterns 16 8. Design Pattern Categorization ........................................... 17 A brief note on classes 17 9. JavaScript Design Patterns .............................................. 21 The Creational Pattern 22 The Constructor Pattern 23 Basic Constructors 23 Constructors With Prototypes 24 The Singleton Pattern 24 The Module Pattern 27 iii Modules 27 Object Literals 27 The Module Pattern
    [Show full text]
  • Software Architecture Document
    SOFTWARE ARCHITECTURE DOCUMENT Author: Gerard Mundo Bosch Content Owner: SVT Analytics REVISION HISTORY DOCUMENT NUMBER: RELEASE/REVISION: RELEASE/REVISION DATE: 1 v0.5 Monday, May 6 Page | 1 TABLE OF CONTENTS 1. Introduction .............................................................................................................................................. 3 1.1 Purpose ............................................................................................................................................... 3 1.1.1 Problem definition ....................................................................................................................... 3 1.1.2 Objectives ..................................................................................................................................... 4 1. 2 Scope .................................................................................................................................................. 4 1. 3 Glossary and acronym list .................................................................................................................. 5 1. 4 Stakeholders ....................................................................................................................................... 5 1.5 Non-functional requirements ............................................................................................................. 8 2. Architecture overview ..............................................................................................................................
    [Show full text]
  • Backbone.Js on Rails
    1 Build snappier, more interactive apps with cleaner code and better tests in less time Backbone.js on Rails thoughtbot Jason Morrison Chad Pytel Nick Quaranto Harold Giménez Joshua Clayton Gabe Berke-Williams Chad Mazzola May 24, 2013 Contents 1 Introduction 7 The shift to client-side web applications ................. 7 Goals for this book ............................ 9 Alternatives to Backbone ......................... 9 The example application ......................... 10 Framework and library choice in the example application .... 10 Conventions used in this book ...................... 11 2 Getting up to speed 12 Backbone online resources ....................... 12 JavaScript resources ........................... 13 3 Organization 14 Backbone and MVC ............................ 14 What goes where ............................. 15 Namespacing your application ...................... 17 Mixins ................................... 18 1 CONTENTS 2 4 Rails Integration 20 Organizing your Backbone code in a Rails app ............. 20 Rails 3.0 and prior ............................. 20 Jammit and a JST naming gotcha ................. 22 Rails 3.1 and above ............................ 23 An overview of the stack: connecting Rails and Backbone ....... 25 Setting up models .......................... 26 Setting up Rails controllers ..................... 27 Setting Up Views .......................... 30 Customizing your Rails-generated JSON ................ 32 ActiveRecord::Base.include_root_in_json ............. 34 Converting an existing page/view
    [Show full text]
  • Developing Backbone.Js Applications
    www.it-ebooks.info Developing Backbone.js Applications Addy Osmani Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo www.it-ebooks.info Developing Backbone.js Applications by Addy Osmani Revision History for the : 2012-04-19 Early release revision 1 See http://oreilly.com/catalog/errata.csp?isbn=9781449328252 for release details. ISBN: 978-1-449-32825-2 1335306849 www.it-ebooks.info Table of Contents Prelude .................................................................... vii 1. Introduction ........................................................... 1 Fundamentals 2 MVC, MVP & Backbone.js 2 MVC 2 Smalltalk-80 MVC 2 MVC As We Know It 3 Models 4 Views 5 Controllers 8 Controllers in Spine.js vs Backbone.js 8 What does MVC give us? 10 Delving deeper 10 Summary 11 MVP 11 Models, Views & Presenters 11 MVP or MVC? 12 MVC, MVP and Backbone.js 13 Fast facts 15 Backbone.js 15 2. The Basics ............................................................ 17 What is Backbone? 17 Why should you consider using it? 17 The Basics 17 Models 18 Views 21 Creating new views 21 What is el? 22 Collections 23 iii www.it-ebooks.info Underscore utility functions 25 Routers 25 Backbone.history 27 Namespacing 27 What is namespacing? 28 Additional Tips 31 Automated Backbone Scaffolding 31 Is there a limit to the number of routers I should be using? 32 Is Backbone too small for my application’s needs? 32 3. RESTful Applications .................................................... 33 Building RESTful applications with Backbone 33 Stack 1: Building A Backbone App With Node.js, Express, Mongoose and MongoDB 33 Reviewing the stack 33 Practical 34 Practical Setup 40 Building Backbone.js Apps With Ruby, Sinatra, MongoDB and Haml 42 Introduction 42 What Is Sinatra? 42 Getting Started With Sinatra 43 Templating And HAML 45 MongoDB Ruby Driver 47 Getting started 47 Practical 48 Installing The Prerequisites 48 Tutorial 50 Conclusions 57 4.
    [Show full text]
  • Django Web Framework
    Django Web Framework Zhaojie Zhang CSCI5828 Class Presentaon 03/20/2012 Outline • Web frameworks • Why python? Why Django? • Introduc=on to Django • An example of Django project • Summary of benefits and features of Django • Comparison of Django and Ruby on Rails • Addi=onal tools to facilitate Django Development • Applicaons made with Django • To learn more about Django • References Web Frameworks Languages Web frameworks • Php • Zend, Symfony, Phpdevshell… • Python • Django, web2py, Cherrypy, … • Java • Struts, Spring, Tapestry, GWT, … • Ruby • Ruby on rails,… • Perl • Catalyst, Mason, … • Javasript • JavaScriptMVC, … • … • … Why Python? • High-level language • Concise syntax and easy to learn • Large and growing developer community • Portable on almost all plaorms Why Django? • Python programming language • Open-source project • Large and growing community • Well-documented • Large collec=ons of apps • Good debugging feedbacks History of the Django Project • Django started as an internal project at the Lawrence Journal-world newspaper in 2003 and was created to meet the fast deadlines of journalism websites. • Django was released to the public by the developers in 2005. • The project was named aer the jazz Guitarist Django Reinhardt. • Now an open source web framework for building maintainable and reusable web applicaons. Introduc=on to Django • A high-level python web framework adhering to the DRY principle: Don’t repeat yourself. • MVC design paerns: code modules are divided into logic groups. • Automac Admin Interface. • Elegant URL
    [Show full text]
  • SPA Design and Architecture
    Understanding single-page web applications Emmit A. Scott, Jr. FOREWORD BY Burke Holland MANNING SPA Design and Architecture Licensed to Mark Watson <[email protected]> ii Licensed to Mark Watson <[email protected]> SPA Design and Architecture Understanding single-page web applications EMMIT A. SCOTT, JR. MANNING SHELTER ISLAND Licensed to Mark Watson <[email protected]> iv For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. 20 Baldwin Road PO Box 761 Shelter Island, NY 11964 Email: [email protected] ©2016 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without elemental chlorine. Manning Publications Co.
    [Show full text]
  • Pixaxe: a Declarative, Client-Focused Web Application Framework
    Pixaxe: A Declarative, Client-Focused Web Application Framework Rob King Principal Researcher, TippingPoint DVLabs Abstract than most “server agnostic” frameworks), an extremely easy to use Model-View-Controller (MVC) design, and a This paper provides a brief introduction to and overview very bandwidth-frugal design that transmits a page only of the Pixaxe Web Application Framework (“Pixaxe”). once and then transmits only changes to interesting data. Pixaxe is a framework with several novel features, in- Pixaxe was deisgned to be very useful in developing cluding a transparent template system that runs entirely web interfaces for legacy applications, or in other situ- within the web browser, an emphasis on developing rich ations where the web interface is not the primary inter- internet applications as simple web pages, and pushing as face to a set of data. It was also designed to be very much logic and rendering overhead to the client as possi- efficient in the use of server resources, by limiting re- ble. This paper also introduces several underlying tech- quired bandwidth and performing as much computation nologies of Pixaxe, each of which can be used separately: and rendering on the client as possible. In fact, Pixaxe re- Jenner, a completely client-side template engine; Esel, a quires nothing more of a server than the ability to serve powerful expression and query language; and Kouprey, a static files. parser combinator library for ECMAScript. In feel, Pixaxe is closest to XForms [9] 1, in that it views web pages as declarative interfaces modifying lo- 1 Introduction cal models that can then be synchronized with servers without reloading the page.
    [Show full text]
  • Javascript Web Applications
    www.allitebooks.com www.allitebooks.com JavaScript Web Applications www.allitebooks.com www.allitebooks.com JavaScript Web Applications Alex MacCaw Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo www.allitebooks.com JavaScript Web Applications by Alex MacCaw Copyright © 2011 Alex MacCaw. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Mary Treseler Indexer: Fred Brown Production Editor: Holly Bauer Cover Designer: Karen Montgomery Copyeditor: Marlowe Shaeffer Interior Designer: David Futato Proofreader: Stacie Arellano Illustrator: Robert Romano Printing History: August 2011: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. JavaScript Web Applications, the image of a Long-eared owl, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. ISBN: 978-1-449-30351-8 [LSI] 1313086859 www.allitebooks.com Table of Contents Preface .
    [Show full text]
  • Licensing Information User Manual Release 8.2 Revision 1
    Oracle SD-WAN Edge Licensing Information User Manual Release 8.2 Revision 1 October 2019 Licensing Information User Manual Oracle SD-WAN Edge 8.2 Oracle SD-WAN Edge Licensing Information User Manual, Release 8.2 Copyright Information Copyright © 2019, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.
    [Show full text]
  • A Simple MVC Framework for Widget Development
    A Simple MVC Framework for Widget Development Behnam Taraghi1, Martin Ebner1 1Graz University of Technology, Social Learning, Computer and Information Services, Graz, Austria [email protected] [email protected] Abstract. The great advantage of a Rich Internet Application (RIA) is the improved performance, since a great part of the processing can be done on the client-side rather than the server-side. For many web-based RIAs JavaScript (JS) is the most common programming language as it is popular as a script language for browsers. While server-side programming languages have the advantages of object oriented programming paradigm, JS bases on objects with a specific object literal notation. Using design architectures such as Model View Controller (MVC) in JS reduces the code complexity and allows semi- parallel application development. It causes an easier and much less time- consuming development on further extensions of RIAs. Web-based widgets are actually RIAs. In this paper a very simple design pattern for widget development is introduced that bases on MVC design architecture. The pattern has been applied during the development phase of widgets for the Personal Learning Environment (PLE) at Graz University of Technology (TU Graz) and is mostly appropriate for students and RIA developers who have beginner knowledge/experience in JS programming. Keywords: PLE, Personal Learning Environment, Widget, MVC, Rich Internet Application, RIA 1. Introduction Nowadays there are many Web 2.0 applications and information systems on the World Wide Web. Since the very first beginning of the so called ReadWriteWeb [1] and following the first attempts on e-Learning 2.0 [2], educational organizations in particular universities provide various services to the students online.
    [Show full text]
  • Curriculum Vitae
    Curriculum Vitae personalia voornaam Rudy achternaam Bruning geboortedatum 20 juni 1980 adres Tarweveld 7, 6641SJ te Beuningen mobiel 06-14663759 e-mail [email protected] rijbewijs B werkervaring 13 jaar profiel Met meer dan 13 jaar development ervaring heb ik me ontplooid tot een allround agile software engineer. Ik heb een basis met .NET C# en werk de laatste 4 jaar veel met methodieken, zoals Agile / XP en SCRUM. Ik werk graag op projectbasis in teamverband en draag daarin mijn verantwoordelijkheid. Binnen een automatiseringstraject streef ik er graag naar om duurzame oplossingen te vinden voor zowel de wensen van de klant, als bijvoorbeeld de onderhoudbaarheid/herbruikbaarheid van de software denkend aan de kosten voor later. opleidingen (diploma) 1999 – 2003 Hogere Informatica, bachelor of ICT, HAN te Arnhem 1997 – 1999 Havo, Montessori college te Nijmegen 1993 – 1997 Mavo, Montessori college te Nijmegen kennis en vaardigheden Methoden Agile / XP, SCRUM, Kanban .NET C# C# 3.5/4.0, ASP.NET, .NET web & application development TDD, nServiceBus, (fluent) nHibernate, .NET MVC 4, MS SQL, Oracle, UML, Razor, WCF, Entity Framework. Ant, Hibernate, jUnit Java Diversen JavascriptMVC, jQuery, Jasmine, NodeJS, ExpressJS, CouchDB, node-build, soda, selenium RC, Hudson, HTML5, CSS. Twitter Bootstrap (2 en 3), MongoDB, IoC, Redgate. overige Java, C, C++, Android Development, Continuous Integration, TFS, Continuous Development, SQL-lite, Delphi, Spring, Photoshop, Fireworks, Visual Studio 2005/2008/2010/2012, WebStorm, WatiN, PL-SQL, Resharper. Curriculum Vitae cursussen, conferenties 2014 nServiceBus, InfoSupport 4-daagse training en cursus over het gebruik en configuratie van NServiceBus. 2009 Cursus AYE; Phoenix, USA Cursus op het gebied van communicatie en persoonlijke effectiviteit.
    [Show full text]
  • Glenn Peters Portland, OR [email protected] Technologies
    Glenn Peters Portland, OR [email protected] Technologies • Languages and libraries: HTML/HTML5, CSS2/CSS3 (Responsive Design, Media Queries), SASS, JavaScript (including jQuery, VueJS, KnockoutJS, Greensock, Handlebars, Angular, ReactJS, et al), PHP, SQL • Platforms: Macintosh, Windows, Unix / Linux • Tools and Protocols: Visual Studio, Sublime Text, BBEdit, Dreamweaver, mySQL, SQL Server, SQL Developer, Oracle, Snowflake, IIS, Apache, MAMP, Photoshop, Illustrator, Flash, Microsoft Office, RTC, Visual SourceSafe, CVS, Git, Subversion Work Experience ARM Insight Senior UI Developer | April 2017 - February 2019 • Maintenance and new features for BigDailyWins.com, including adding Google Analytics tracking (JavaScript: KnockoutJS, .Net, SQL Server) • Development of SecurLock Analytix website (JavaScript: VueJS, Vue Material, .Net, SQL Server) • Development of Match Validation website (JavaScript: VueJS,, .Net, SQL Server) DSV (was UTi, purchased Jan. 2016) Senior Software Engineer | August 2015 - December 2016 • Maintenance of 1View freight management application -- bug fixes and new features (HTML, CSS, Javascript, jQuery, JavaScriptMVC, StealJS, Ruby, Eclipse IDE, RTC, Node.js) • Development of new feature: Job Costing reports, insertion into DOM, multiple AJAX calls, asynchronous promises • Researched ReactJS as potential new technology to use for development, developed small test applications Razorfish Senior Presentation Layer Engineer | October 2014 - December 2014, May 2015 - June 2015 • Added chromeless hotspot functionality
    [Show full text]