Learning Node Shelley Powers

Total Page:16

File Type:pdf, Size:1020Kb

Learning Node Shelley Powers www.allitebooks.com www.allitebooks.com Learning Node Shelley Powers Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo www.allitebooks.com Learning Node by Shelley Powers Copyright © 2012 Shelley Powers. 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: Simon St. Laurent Indexer: Aaron Hazelton, BIM Publishing Services Production Editor: Rachel Steely Cover Designer: Karen Montgomery Copyeditor: Rachel Monaghan Interior Designer: David Futato Proofreader: Kiel Van Horn Illustrators: Robert Romano and Rebecca Demarest September 2012: First Edition. Revision History for the First Edition: 2012-08-24 First release See http://oreilly.com/catalog/errata.csp?isbn=9781449323073 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Learning Node, the image of a hamster rat, 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 authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. ISBN: 978-1-449-32307-3 [LSI] 1345837731 www.allitebooks.com Table of Contents Preface . .................................................................... ix 1. Node.js: Up and Running . ................................................ 1 Setting Up a Node Development Environment 2 Installing Node on Linux (Ubuntu) 2 Partnering Node with WebMatrix on Windows 7 4 Updating Node 9 Node: Jumping In 10 Hello, World in Node 10 Hello, World from the Top 11 Asynchronous Functions and the Node Event Loop 13 Reading a File Asynchronously 14 Taking a Closer Look at Asynchronous Program Flow 16 Benefits of Node 19 2. Interactive Node with REPL . ............................................. 21 REPL: First Looks and Undefined Expressions 21 Benefits of REPL: Getting a Closer Understanding of JavaScript Under the Hood 23 Multiline and More Complex JavaScript 24 REPL Commands 27 REPL and rlwrap 28 Custom REPL 29 Stuff Happens—Save Often 32 3. The Node Core . ........................................................ 35 Globals: global, process, and Buffer 35 global 36 process 38 Buffer 39 The Timers: setTimeout, clearTimeout, setInterval, and clearInterval 40 iii www.allitebooks.com Servers, Streams, and Sockets 41 TCP Sockets and Servers 42 HTTP 44 UDP/Datagram Socket 46 Streams, Pipes, and Readline 48 Child Processes 50 child_process.spawn 50 child_process.exec and child_process.execFile 52 child_process.fork 53 Running a Child Process Application in Windows 53 Domain Resolution and URL Processing 54 The Utilities Module and Object Inheritance 56 Events and EventEmitter 59 4. The Node Module System . .............................................. 63 Loading a Module with require and Default Paths 63 External Modules and the Node Package Manager 65 Finding Modules 69 Colors: Simple Is Best 71 Optimist: Another Short and Simple Module 72 Underscore 73 Creating Your Own Custom Module 74 Packaging an Entire Directory 75 Preparing Your Module for Publication 75 Publishing the Module 78 5. Control Flow, Asynchronous Patterns, and Exception Handling . 81 Promises, No Promises, Callback Instead 81 Sequential Functionality, Nested Callbacks, and Exception Handling 84 Asynchronous Patterns and Control Flow Modules 91 Step 92 Async 95 Node Style 100 6. Routing Traffic, Serving Files, and Middleware . 103 Building a Simple Static File Server from Scratch 103 Middleware 110 Connect Basics 111 Connect Middleware 113 Custom Connect Middleware 118 Routers 121 Proxies 123 iv | Table of Contents www.allitebooks.com 7. The Express Framework . ............................................... 127 Express: Up and Running 128 The app.js File in More Detail 129 Error Handling 132 A Closer Look at the Express/Connect Partnership 133 Routing 134 Routing Path 136 Routing and HTTP Verbs 139 Cue the MVC 145 Testing the Express Application with cURL 150 8. Express, Template Systems, and CSS . 153 The Embedded JavaScript (EJS) Template System 153 Learning the Basic Syntax 154 Using EJS with Node 155 Using the EJS for Node Filters 157 Using a Template System (EJS) with Express 158 Restructuring for a Multiple Object Environment 160 Routing to Static Files 161 Processing a New Object Post 163 Working with the Widgets Index and Generating a Picklist 165 Showing an Individual Object and Confirming an Object Deletion 166 Providing an Update Form and Processing a PUT Request 168 The Jade Template System 172 Taking the Nickel Tour of the Jade Syntax 172 Using block and extends to Modularize the View Templates 174 Converting the Widget Views into Jade Templates 176 Incorporating Stylus for Simplified CSS 180 9. Structured Data with Node and Redis . 187 Getting Started with Node and Redis 188 Building a Game Leaderboard 190 Creating a Message Queue 196 Adding a Stats Middleware to an Express Application 201 10. Node and MongoDB: Document-Centric Data . 207 The MongoDB Native Node.js Driver 208 Getting Started with MongoDB 208 Defining, Creating, and Dropping a MongoDB Collection 209 Adding Data to a Collection 210 Querying the Data 213 Using Updates, Upserts, and Find and Remove 217 Implementing a Widget Model with Mongoose 221 Table of Contents | v www.allitebooks.com Refactoring the Widget Factory 222 Adding the MongoDB Backend 223 11. The Node Relational Database Bindings . 229 Getting Started with db-mysql 230 Using Query String or Chained Methods 230 Updating the Database with Direct Queries 233 Updating the Database with Chained Methods 236 Native JavaScript MySQL Access with node-mysql 237 Basic CRUD with node-mysql 237 MySQL Transactions with mysql-queues 239 ORM Support with Sequelize 242 Defining a Model 242 Using CRUD, ORM Style 244 Adding Several Objects Easily 246 Overcoming Issues Related to Going from Relational to ORM 247 12. Graphics and HTML5 Video . ............................................ 249 Creating and Working with PDFs 249 Accessing PDF Tools with Child Processes 250 Creating PDFs with PDFKit 258 Accessing ImageMagick from a Child Process 260 Properly Serving HTML5 Video with HTTP 264 Creating and Streaming Canvas Content 268 13. WebSockets and Socket.IO . ............................................ 273 WebSockets 273 An Introduction to Socket.IO 274 A Simple Communication Example 274 WebSockets in an Asynchronous World 278 About That Client Code 279 Configuring Socket.IO 279 Chat: The WebSockets “Hello, World” 281 Using Socket.IO with Express 284 14. Testing and Debugging Node Applications . 287 Debugging 287 The Node.js Debugger 287 Client-Side Debugging with Node Inspector 290 Unit Testing 292 Unit Testing with Assert 292 Unit Testing with Nodeunit 296 Other Testing Frameworks 297 vi | Table of Contents www.allitebooks.com Acceptance Testing 301 Selenium Testing with Soda 301 Emulating a Browser with Tobi and Zombie 305 Performance Testing: Benchmarks and Load Tests 306 Benchmark Testing with ApacheBench 307 Load Testing with Nodeload 311 Refreshing Code with Nodemon 313 15. Guards at the Gate ... ................................................. 315 Encrypting Data 316 Setting Up TSL/SSL 316 Working with HTTPS 317 Safely Storing Passwords 319 Authentication/Authorization with Passport 322 Authorization/Authentication Strategies: OAuth, OpenID, Username/ Password Verification 323 The Local Passport Strategy 324 The Twitter Passport Strategy (OAuth) 331 Protecting Applications and Preventing Attacks 337 Don’t Use eval 338 Do Use Checkboxes, Radio Buttons, and Drop-Down Selections 338 Scrub Your Data and Sanitize It with node-validator 339 Sandboxed Code 340 16. Scaling and Deploying Node Applications . 345 Deploying Your Node Application to Your Server 345 Writing That package.json File 346 Keeping Your Application Alive with Forever 349 Using Node and Apache Together 351 Improving Performance 353 Deployment to a Cloud Service 353 Deploying to Windows Azure via Cloud9 IDE 354 Joyent Development SmartMachines 356 Heroku 357 Amazon EC2 357 Nodejitsu 357 Appendix: Node, Git, and GitHub . 359 Index . 363 Table of Contents | vii www.allitebooks.com www.allitebooks.com Preface Not Your Ordinary JavaScript You picked the perfect time to learn Node. The technology evolving around Node is still young and vibrant, with interesting new variations and twists popping up on a regular basis. At the same time, the technology has reached a level of maturity that assures you your time learning Node will be well spent: installation has never been easier, even on Windows; the “best of breed” modules are beginning to surface from the seeming hundreds available for use; the infrastructure is becoming robust enough for production use. There are two important things to keep in mind when you work with Node. The first is that it is based in JavaScript, more or less the
Recommended publications
  • Differential Fuzzing the Webassembly
    Master’s Programme in Security and Cloud Computing Differential Fuzzing the WebAssembly Master’s Thesis Gilang Mentari Hamidy MASTER’S THESIS Aalto University - EURECOM MASTER’STHESIS 2020 Differential Fuzzing the WebAssembly Fuzzing Différentiel le WebAssembly Gilang Mentari Hamidy This thesis is a public document and does not contain any confidential information. Cette thèse est un document public et ne contient aucun information confidentielle. Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Technology. Antibes, 27 July 2020 Supervisor: Prof. Davide Balzarotti, EURECOM Co-Supervisor: Prof. Jan-Erik Ekberg, Aalto University Copyright © 2020 Gilang Mentari Hamidy Aalto University - School of Science EURECOM Master’s Programme in Security and Cloud Computing Abstract Author Gilang Mentari Hamidy Title Differential Fuzzing the WebAssembly School School of Science Degree programme Master of Science Major Security and Cloud Computing (SECCLO) Code SCI3084 Supervisor Prof. Davide Balzarotti, EURECOM Prof. Jan-Erik Ekberg, Aalto University Level Master’s thesis Date 27 July 2020 Pages 133 Language English Abstract WebAssembly, colloquially known as Wasm, is a specification for an intermediate representation that is suitable for the web environment, particularly in the client-side. It provides a machine abstraction and hardware-agnostic instruction sets, where a high-level programming language can target the compilation to the Wasm instead of specific hardware architecture. The JavaScript engine implements the Wasm specification and recompiles the Wasm instruction to the target machine instruction where the program is executed. Technically, Wasm is similar to a popular virtual machine bytecode, such as Java Virtual Machine (JVM) or Microsoft Intermediate Language (MSIL).
    [Show full text]
  • Asynchronous Web Requests As Service
    Asynchronous Web Requests As Service Manual and dodecahedral Royal ratified almost half-yearly, though Maxim licensing his refutation Wainwrightredates. Wallache paralysing stared closely leadenly? and tyrannises Godfree often her Pete. stages inoffensively when psycholinguistic Many kinds of business processes have these features. Professional Services Engineer at elastic. About Attaching Policies to Callback Clients. The new mapper, as a site is asynchronous web requests service as mechanisms for? Web Service improve response? When using the synchronous execution mode, the application must wait for the request to confess and clamp the results. Sets DOMReady to luggage and assigns a ready function to settings. An error occurred and moment were unable to loathe your request. There mat be gaps or spaces in between characters. Gaps between programs and add too many more asynchronous result will all asynchronous web service is this example? Scripting on pay page enhances content navigation, but does task change their content that any way. Specify whether the asynchronous as instances in? How google webmaster central time, magento creates an interface at what can add support asynchronous communications at ultra low by travel, service requests as asynchronous web url is an order. To monitor the SOAP messages, insert the software listener between heat flow by the service. Understanding the address the trading application as asynchronous web requests service port types of performance, the operation of hazardous material is a really exist? Younger students have clarity on your free to code execution first, the asynchronous web requests as service? To do surprise you gave use an asynchronous generator that yields bytes.
    [Show full text]
  • Web Services: Usage and Challenges in Mobile Phones (Computers) W3C
    Web Services: Usage and challenges in mobile phones (computers) W3C Seminar - Monday 6 March 2006 - Paris, France Timo Skyttä Director, Web Services Nokia Technology Platforms 1 © 2005 Nokia Topics • Web Services & presentation scope defined • Web Services - business ? ¡Si, habla Web Services! • Challenges in general, and some mobile specific.... • Nokia Web Services • Application Examples 2 © 2005 Nokia The Web and Web Services Web Services connect The Web connects computer applications people to information to each other on a global scale on a global scale (GARTNER, Oct 2005) 3 © 2005 Nokia Two models of mobilising service access Presentation Browser Application Presentation and Service Logic Service Logic HTTP server Scope of this Web Services interfaces presentation Enterprise Service Oriented Application Architecture (SOA) Integration (EAI) 4 © 2005 Nokia Web Services - business ? 5 © 2005 Nokia Why Web Services The deployment of Web Services technology aims to enhance existing services and to create new and innovative services. • Web Services are being widely deployed; Service/Consumer• to facilitate interoperability across runtime different hardware independence and software ! implementations, machine architectures and application programming interfaces (APIs). • to offer near-term benefits by enabling quicker and cheaper integration of existing Interoperabilityservices. ! • to define an environment where applications can be created by combining multiple services in a single workflow (a.k.a. mashups). This will make it easy to adjust Automaticapplication functionality, code because generation services can be added (WSDL or removed + from tools) the ! application workflow. • In addition, interoperability will allow application designers to replace one service implementation with another for technical or business reasons. This vision of Service-Oriented Architectures (SOAs) is rapidly becoming a reality through the standardization and deployment of Web Services technology.
    [Show full text]
  • Download Issue
    Issue October 2019 | presented by www.jaxenter.com #70 The digital magazine for enterprise developers JavaThe JDK’s hidden 13 treasures i Jakarta EE 8 Let the games begin JDK 13 Why text blocks are worth the wait OpenJFX 13 JavaFX gets its own identity © Teguh Mujiono/Shutterstock.com, Pushkin/Shutterstock.com Illustrationen: Sun Microsystems Inc., S&S Media Editorial Let’s celebrate Java – three times! It’s that time again: A new Java version is here! Java 13 Last but not least: Jakarta EE, the follow-up project of was launched as planned, six months after the release Java EE, has announced its first release under the umbrella of of Java 12, and again it has some interesting features on the Eclipse Foundation. We got hold of the executive director board. In this issue of Jax Magazine, we’ve covered them of the Eclipse Foundation, Mike Milinkovich, and asked him for you in detail. about the current status of Jakarta EE. The good news doesn’t end there, as JavaFX 13 has also been released. The UI toolkit is no longer included in the JDK Happy reading, but has adjusted its new version releases to the new Java re- lease cadence. Find out what’s new here! Hartmut Schlosser Java 13 – a deep dive into the JDK’s 3 Kubernetes as a multi-cloud 17 new features operating system Falk Sippach Patrick Arnold Index Java 13 – why text blocks are worth the wait 6 Multi-tier deployment with Ansible 21 Tim Zöller Daniel Stender Jakarta EE 8 is sprinting towards an 9 Do we need a service mesh? 28 exciting future for enterprise Java Anton Weiss Thilo Frotscher
    [Show full text]
  • Dynamic Web Pages with the Embedded Web Server
    Dynamic Web Pages With The Embedded Web Server The Digi-Geek’s AJAX Workbook (NET+OS, XML, & JavaScript) Version 1.0 5/4/2011 Page 1 Copyright Digi International, 2011 Table of Contents Chapter 1 - How to Use this Guide ............................................................................................................... 5 Prerequisites – If You Can Ping, You Can Use This Thing! ..................................................................... 5 Getting Help with TCP/IP and Wi-Fi Setup ............................................................................................ 5 The Study Guide or the Short Cut? ....................................................................................................... 5 C Code ................................................................................................................................................... 6 HTML Code ............................................................................................................................................ 6 XML File ................................................................................................................................................. 6 Provide us with Your Feedback ............................................................................................................. 6 Chapter 2 - The Server-Client Relationship ................................................................................................... 7 Example – An Analogy for a Normal HTML page .................................................................................
    [Show full text]
  • Interaction Between Web Browsers and Script Engines
    IT 12 058 Examensarbete 45 hp November 2012 Interaction between web browsers and script engines Xiaoyu Zhuang Institutionen för informationsteknologi Department of Information Technology Abstract Interaction between web browser and the script engine Xiaoyu Zhuang Teknisk- naturvetenskaplig fakultet UTH-enheten Web browser plays an important part of internet experience and JavaScript is the most popular programming language as a client side script to build an active and Besöksadress: advance end user experience. The script engine which executes JavaScript needs to Ångströmlaboratoriet Lägerhyddsvägen 1 interact with web browser to get access to its DOM elements and other host objects. Hus 4, Plan 0 Browser from host side needs to initialize the script engine and dispatch script source code to the engine side. Postadress: This thesis studies the interaction between the script engine and its host browser. Box 536 751 21 Uppsala The shell where the engine address to make calls towards outside is called hosting layer. This report mainly discussed what operations could appear in this layer and Telefon: designed testing cases to validate if the browser is robust and reliable regarding 018 – 471 30 03 hosting operations. Telefax: 018 – 471 30 00 Hemsida: http://www.teknat.uu.se/student Handledare: Elena Boris Ämnesgranskare: Justin Pearson Examinator: Lisa Kaati IT 12 058 Tryckt av: Reprocentralen ITC Contents 1. Introduction................................................................................................................................
    [Show full text]
  • Machine Learning in the Browser
    Machine Learning in the Browser The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:38811507 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA Machine Learning in the Browser a thesis presented by Tomas Reimers to The Department of Computer Science in partial fulfillment of the requirements for the degree of Bachelor of Arts in the subject of Computer Science Harvard University Cambridge, Massachusetts March 2017 Contents 1 Introduction 3 1.1 Background . .3 1.2 Motivation . .4 1.2.1 Privacy . .4 1.2.2 Unavailable Server . .4 1.2.3 Simple, Self-Contained Demos . .5 1.3 Challenges . .5 1.3.1 Performance . .5 1.3.2 Poor Generality . .7 1.3.3 Manual Implementation in JavaScript . .7 2 The TensorFlow Architecture 7 2.1 TensorFlow's API . .7 2.2 TensorFlow's Implementation . .9 2.3 Portability . .9 3 Compiling TensorFlow into JavaScript 10 3.1 Motivation to Compile . 10 3.2 Background on Emscripten . 10 3.2.1 Build Process . 12 3.2.2 Dependencies . 12 3.2.3 Bitness Assumptions . 13 3.2.4 Concurrency Model . 13 3.3 Experiences . 14 4 Results 15 4.1 Benchmarks . 15 4.2 Library Size . 16 4.3 WebAssembly . 17 5 Developer Experience 17 5.1 Universal Graph Runner .
    [Show full text]
  • 04 ISC 228-TESIS.Pdf
    UTN –FICA Análisis y Estudio de Tecnología Ruby on Rails con bases de datos Postgresql para Aplicaciones Web 2.0 UNIVERSIDAD TÉCNICA DEL NORTE Facultad de Ingeniería en Ciencias Aplicadas Carrera de Ingeniería en Sistemas Computacionales TESIS PREVIA OBTENCIÓN DEL TITULO DE INGENIERO EN SISTEMAS COMPUTACIONALES Tema: “Análisis y Estudio de Tecnología Ruby on Rails con bases de datos Postgres para Aplicaciones Web 2.0” Aplicativo: Implementación del Portal Web 2.0 para la Mancomunidad de la Cuenca del Río Mira AUTOR : CHRISTIAN FERNANDO REALPE ROSERO. DIRECTOR : ING. MARCO PUSDÁ. IBARRA – ECUADOR, 2012 Christian Fernando Realpe Rosero Implementación del Portal Web 2.0 para la Mancomunidad de la Cuenca del Río Mira Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) UTN –FICA Análisis y Estudio de Tecnología Ruby on Rails con bases de datos Postgresql para Aplicaciones Web 2.0 Certifico: Que la Tesis previa a la obtención del título de Ingeniería en Sistemas Computacionales con el tema “Análisis y Estudio de Tecnología Ruby on Rails con bases de datos Postgres para Aplicaciones Web 2.0”con el aplicativo “Implementación del Portal Web 2.0 para la Mancomunidad de la Cuenca del Río Mira” ha sido desarrollada y terminada en su totalidad por el Sr. Christian Fernando Realpe Rosero con C.C. 100251109-3 bajo mi supervisión para lo cual firmo en constancia. Atentamente, Ing. Marco Pusdá DIRECTOR DE TESIS Christian Fernando Realpe Rosero Implementación del Portal Web 2.0 para la Mancomunidad de la Cuenca del Río Mira Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) UTN –FICA Análisis y Estudio de Tecnología Ruby on Rails con bases de datos Postgresql para Aplicaciones Web 2.0 UNIVERSIDAD TÉCNICA DEL NORTE CESIÓN DE DERECHOS DE AUTOR DEL TRABAJO DE INVESTIGACIÓN A FAVOR DE LA UNIVERSIDAD TÉCNICA DEL NORTE Yo, CHRISTIAN FERNANDO REALPE ROSERO, con cedula de identidad Nro.
    [Show full text]
  • Effects and Opportunities of Native Code Extensions For
    Effects and Opportunities of Native Code Extensions for Computationally Demanding Web Applications DISSERTATION zur Erlangung des akademischen Grades Dr. Phil. im Fach Bibliotheks- und Informationswissenschaft eingereicht an der Philosophischen Fakultät I Humboldt-Universität zu Berlin von Dipl. Inform. Dennis Jarosch Präsident der Humboldt-Universität zu Berlin: Prof. Dr. Jan-Hendrik Olbertz Dekan der Philosophischen Fakultät I: Prof. Michael Seadle, Ph.D. Gutachter: 1. Prof. Dr. Robert Funk 2. Prof. Michael Seadle, Ph.D. eingereicht am: 28.10.2011 Tag der mündlichen Prüfung: 16.12.2011 Abstract The World Wide Web is amidst a transition from interactive websites to web applications. An increasing number of users perform their daily computing tasks entirely within the web browser — turning the Web into an important platform for application development. The Web as a platform, however, lacks the computational performance of native applications. This problem has motivated the inception of Microsoft Xax and Google Native Client (NaCl), two independent projects that fa- cilitate the development of native web applications. Native web applications allow the extension of conventional web applications with compiled native code, while maintaining operating system portability. This dissertation determines the bene- fits and drawbacks of native web applications. It also addresses the question how the performance of JavaScript web applications compares to that of native appli- cations and native web applications. Four application benchmarks are introduced that focus on different performance aspects: number crunching (serial and parallel), 3D graphics performance, and data processing. A performance analysis is under- taken in order to determine and compare the performance characteristics of native C applications, JavaScript web applications, and NaCl native web applications.
    [Show full text]
  • An Execution Model for Serverless Functions at the Edge
    An Execution Model for Serverless Functions at the Edge Adam Hall Umakishore Ramachandran Georgia Institute of Technology Georgia Institute of Technology Atlanta, Georgia Atlanta, Georgia ach@gatech:edu rama@gatech:edu ABSTRACT 1 INTRODUCTION Serverless computing platforms allow developers to host single- Enabling next generation technologies such as self-driving cars or purpose applications that automatically scale with demand. In con- smart cities via edge computing requires us to reconsider the way trast to traditional long-running applications on dedicated, virtu- we characterize and deploy the services supporting those technolo- alized, or container-based platforms, serverless applications are gies. Edge/fog environments consist of many micro data centers intended to be instantiated when called, execute a single function, spread throughout the edge of the network. This is in stark contrast and shut down when finished. State-of-the-art serverless platforms to the cloud, where we assume the notion of unlimited resources achieve these goals by creating a new container instance to host available in a few centralized data centers. These micro data center a function when it is called and destroying the container when it environments must support large numbers of Internet of Things completes. This design allows for cost and resource savings when (IoT) devices on limited hardware resources, processing the mas- hosting simple applications, such as those supporting IoT devices sive amounts of data those devices generate while providing quick at the edge of the network. However, the use of containers intro- decisions to inform their actions [44]. One solution to supporting duces some overhead which may be unsuitable for applications emerging technologies at the edge lies in serverless computing.
    [Show full text]
  • The Uch Enmek Example(Altai Republic,Siberia)
    Faculty of Environmental Sciences Institute for Cartography Master Thesis Concept and Implementation of a Contextualized Navigable 3D Landscape Model: The Uch Enmek Example(Altai Republic,Siberia). Mussab Mohamed Abuelhassan Abdalla Born on: 7th December 1983 in Khartoum Matriculation number: 4118733 Matriculation year: 2014 to achieve the academic degree Master of Science (M.Sc.) Supervisors Dr.Nikolas Prechtel Dr.Sander Münster Submitted on: 18th September 2017 Faculty of Environmental Sciences Institute for Cartography Task for the preparation of a Master Thesis Name: Mussab Mohamed Abuelhassan Abdalla Matriculation number: 4118733 Matriculation year: 2014 Title: Concept and Implementation of a Contextualized Navigable 3D Landscape Model: The Uch Enmek Example(Altai Republic,Siberia). Objectives of work Scope/Previous Results:Virtual Globes can attract and inform websites visitors on natural and cultural objects and sceneries.Geo-centered information transfer is suitable for majority of sites and artifacts. Virtual Globes have been tested with an involvement of TUD institutes: e.g. the GEPAM project (Weller,2013), and an archaeological excavation site in the Altai Mountains ("Uch enmek", c.f. Schmid 2012, Schubert 2014).Virtual Globes technology should be flexible in terms of the desired geo-data configuration. Research data should be controlled by the authors. Modes of linking geo-objects to different types of meta-information seems evenly important for a successful deployment. Motivation: For an archaeological conservation site ("Uch Enmek") effort has already been directed into data collection, model development and an initial web-based presentation.The present "Open Web Globe" technology is not developed any further, what calls for a migra- tion into a different web environment.
    [Show full text]
  • Aplicaciones Enriquecidas Para Internet: Estado Actual Y Tendencias
    Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas APLICACIONES ENRIQUECIDAS PARA INTERNET: ESTADO ACTUAL Y TENDENCIAS Miguel Alejandro Catalán López Asesorado por la Inga. Erika Yesenia Corado Castellanos de Lima Guatemala, enero de 2012 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA APLICACIONES ENRIQUECIDAS PARA INTERNET: ESTADO ACTUAL Y TENDENCIAS TRABAJO DE GRADUACIÓN PRESENTADO A JUNTA DIRECTIVA DE LA FACULTAD DE INGENIERÍA POR MIGUEL ALEJANDRO CATALÁN LÓPEZ ASESORADO POR LA INGA. YESENIA CORADO CASTELLANOS DE LIMA AL CONFERÍRSELE EL TÍTULO DE INGENIERO EN CIENCIAS Y SISTEMAS GUATEMALA, ENERO DE 2012 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA NÓMINA DE JUNTA DIRECTIVA DECANO Ing. Murphy Olympo Paiz Recinos VOCAL I Ing. Enrique Alfredo Beber Aceituno VOCAL II Ing. Pedro Antonio Aguilar Polanco VOCAL III Ing. Miguel Ángel Dávila Calderón VOCAL IV Br. Juan Carlos Molina Jiménez VOCAL V Br. Mario Maldonado Muralles SECRETARIO Ing. Hugo Humberto Rivera Pérez TRIBUNAL QUE PRACTICÓ EL EXAMEN GENERAL PRIVADO DECANO Ing. Murphy Olympo Paiz Recinos EXAMINADOR Ing. Juan Álvaro Díaz Ardavin EXAMINADOR Ing. Edgar Josué González Constanza EXAMINADOR Ing. José Ricardo Morales Prado SECRETARIO Ing. Hugo Humberto Rivera Pérez HONORABLE TRIBUNAL EXAMINADOR En cumplimiento con los preceptos que establece la ley de la Universidad de San Carlos de Guatemala, presento a su consideración mi trabajo de graduación titulado: APLICACIONES ENRIQUECIDAS PARA INTERNET: ESTADO ACTUAL
    [Show full text]