A Practical Comparison of Agile Web Frameworks

Total Page:16

File Type:pdf, Size:1020Kb

A Practical Comparison of Agile Web Frameworks A Practical Comparison of Agile Web Frameworks www.blog.websitesframeworks.com David Díaz Clavijo Tutors: Cayetano Guerra Artal Lydia Esther Bolaños Medina Alexis Quesada Arencibia February 16, 2014 Contents 1 Introduction 1 1.1 Solution approach......................................1 2 Document structure3 3 State of the art 5 3.1 A Comparison Model for Agile Web Frameworks.....................5 3.2 Matt Raible Comparison..................................7 3.3 Wahner web frameworks comparison based on types of websites.............8 3.4 Conclusions......................................... 10 4 Objectives 11 5 Methodology 13 5.1 The comparison of web frameworks............................ 13 5.1.1 Selection of the web frameworks.......................... 13 5.1.2 Test design..................................... 13 5.1.3 Test execution................................... 13 5.1.4 The conclusions.................................. 14 5.2 Project diffusion....................................... 14 6 Resources 15 6.1 Hardware resources..................................... 15 6.2 Software resources..................................... 15 6.3 Service resources...................................... 15 7 Planning 17 8 Project dissemination - the Blog 21 8.1 Setting up the blog..................................... 21 8.2 Logo............................................. 22 8.3 Theme............................................ 22 8.4 Social networks....................................... 23 8.5 WordPress SEO....................................... 23 8.6 Avoiding spamming..................................... 23 8.7 Analyzing incoming traffic................................. 23 i 9 Analysis - Which technologies to choose? 25 9.1 Types of web frameworks.................................. 25 9.2 Statistics usage of server-side programming language................... 26 9.3 Statistics usage of Web frameworks............................ 28 9.3.1 Web frameworks usage growth........................... 29 9.4 Web frameworks benchmarks................................ 30 9.4.1 World Wide Wait.................................. 30 9.4.2 The Great Web Framework Shootout....................... 31 9.4.3 Benchmarking Web Applications and Frameworks................ 33 9.4.4 Rails, Wicket, Grails, Play, Tapestry, Lift, JSP and Context............ 33 9.4.5 Conclusions..................................... 35 9.5 Decided technologies.................................... 35 10 Website and language exercises design 39 10.1 Student background..................................... 39 10.2 Chronological development................................. 39 10.3 Steps............................................. 40 10.4 Timing steps......................................... 40 10.5 Documentation....................................... 41 10.6 Programming exercises................................... 41 10.6.1 The Strings, Files and Regular Expressions exercise............... 41 10.6.2 The Numbers Set exercise............................. 42 10.6.3 The Composite Pattern exercise.......................... 43 10.7 Web Application to develop................................. 44 10.7.1 Requisites...................................... 44 10.7.2 Actors........................................ 44 10.7.3 Use cases...................................... 44 10.7.4 Data Model..................................... 46 10.7.5 Mockup....................................... 47 10.8 The order of development.................................. 58 11 Test execution 61 11.1 Ruby and Ruby on Rails.................................. 61 11.1.1 Ruby........................................ 61 11.1.2 Programming exercises with Ruby......................... 64 11.1.3 Ruby on Rails.................................... 65 11.1.4 Website development with Rails.......................... 66 11.2 Groovy and Grails...................................... 70 11.2.1 Groovy....................................... 70 11.2.2 Programming exercises with Groovy........................ 72 11.2.3 Grails........................................ 72 11.2.4 Website development with Grails......................... 74 11.3 Python and Django..................................... 78 11.3.1 Python....................................... 78 11.3.2 Programming exercises with Python........................ 80 11.3.3 Django....................................... 80 11.3.4 Website development with Django......................... 85 11.4 PHP and CodeIgniter.................................... 89 11.4.1 PHP......................................... 89 11.4.2 Programming exercises with PHP......................... 92 ii 11.4.3 CodeIgniter..................................... 92 11.4.4 Website development with CodeIgniter...................... 97 12 Test results 101 12.1 Programmming languages................................. 101 12.1.1 Comparison of developing time.......................... 101 12.1.2 Readability..................................... 102 12.1.3 Performance.................................... 103 12.1.4 Conclusions..................................... 106 12.2 Web framework comparison................................ 107 12.2.1 Documentation................................... 107 12.2.2 Implementing authentication............................ 108 12.2.3 Implementing Blog, Post and Comment...................... 109 12.2.4 Comparing general features............................ 111 12.2.5 Comparing lines of code.............................. 113 12.3 Conclusions......................................... 114 12.3.1 Concerning the documentation........................... 114 12.3.2 Concerning the authentication system....................... 114 12.3.3 Concerning developing common operations: CRUD............... 114 12.3.4 Concerning the developing times.......................... 115 12.3.5 General conclusions................................ 115 13 Conclusions and future works 117 13.1 Conclusions......................................... 117 13.2 Future works........................................ 118 14 Results of Project Diffusion 119 14.1 Key experts in dissemination................................ 119 14.2 Social networks....................................... 119 14.3 Referrals.......................................... 119 14.4 Visits............................................ 120 14.5 Search Engine Optimization................................ 120 Appendices 121 A Source code of programming exercises 123 A.1 Source code of programming exercises in Ruby...................... 123 A.1.1 Source code of The Strings, Files and Regular Expressions exercise in Ruby... 123 A.1.2 Source code of The Numbers Set exercise in Ruby................ 124 A.1.3 Source code of The Composite Pattern exercise in Ruby............. 126 A.2 Source code of programming exercises in Groovy..................... 128 A.3 Source code of programming exercises in Python..................... 132 A.3.1 Source code of The Strings, Files and Regular Expressions exercise in Python.. 132 A.3.2 Source code of The Numbers Set exercise in Python............... 133 A.3.3 Source code of The Composite Pattern exercise in Python............ 135 A.4 Source code of programming exercises in PHP....................... 136 A.4.1 Source code of The Strings, Files and Regular Expressions exercise in PHP... 136 A.4.2 Source code of The Numbers Set exercise in PHP................. 137 A.4.3 Source code of The Composite Pattern exercise in PHP.............. 140 iii B Examples of implementation source code with different web frameworks 143 B.1 Code Generated vs Modified code in Rails and Grails................... 143 B.1.1 Rails generated code and adaptation........................ 143 B.1.2 Grails generated code and adaptation....................... 147 B.2 Source Code of Post in Django: controllers, views and templates............. 156 B.3 Source code of Post in CodeIgniter: models, controllers and views............ 160 B.4 Search posts implementation in different web frameworks................. 170 Bibliography 173 List of figures 174 List of tables 176 List of lists 177 iv Chapter 1 Introduction Web application frameworks are defined as a set of classes that make up a reusable design for an ap- plication or, more commonly, one tier of one application. This specialization in tiers (persistence, web flow, ...) has led to their classification due to their proliferation. Agile web frameworks are defined as full stack web frameworks for developing an application. In contrast with web application frameworks, they are not specialized in one layer, but offer the full stack. Agile web frameworks started with Ruby on Rails, which defined a new approach to web development, based on a single web framework. Ruby on Rails follows the principles of convention over configuration and don’t repeat yourself, providing an agile web development framework that simplifies the develop- ment process and increases productivity for prototyping web applications. When a subject, a programmer or a business, is beginning to develop a web project, it is a hard decision which agile web framework to choose. Learning how to use a full stack web framework is a high time consuming task, it can take two months to get started and one year to have some level of expertise. Therefore, experienced programmers can wonder if it is worthy to migrate from a known framework to a new one and inexperienced programmers or startups do not know which one to choose, neither they have tools to choose the right one. This project tries to analyze the existing
Recommended publications
  • Fear the EAR: Discovering and Mitigating Execution After Redirect Vulnerabilities
    Fear the EAR: Discovering and Mitigating Execution After Redirect Vulnerabilities Adam Doupé, Bryce Boe, Christopher Kruegel, and Giovanni Vigna University of California, Santa Barbara {adoupe, bboe, chris, vigna}@cs.ucsb.edu ABSTRACT 1. INTRODUCTION The complexity of modern web applications makes it diffi- An increasing number of services are being offered on- cult for developers to fully understand the security implica- line. For example, banking, shopping, socializing, reading tions of their code. Attackers exploit the resulting security the news, and enjoying entertainment are all available on the vulnerabilities to gain unauthorized access to the web appli- web. The increasing amount of sensitive data stored by web cation environment. Previous research into web application applications has attracted the attention of cyber-criminals, vulnerabilities has mostly focused on input validation flaws, who break into systems to steal valuable information such such as cross site scripting and SQL injection, while logic as passwords, credit card numbers, social security numbers, flaws have received comparably less attention. and bank account credentials. In this paper, we present a comprehensive study of a rela- Attackers use a variety of vulnerabilities to exploit web tively unknown logic flaw in web applications, which we call applications. In 2008, Albert Gonzalez was accused and Execution After Redirect, or EAR. A web application de- later convicted of stealing 40 million credit and debit cards veloper can introduce an EAR by calling a redirect method from major corporate retailers, by writing SQL injection under the assumption that execution will halt. A vulnera- attacks [20, 30]. Another common vulnerability, cross-site bility occurs when server-side execution continues after the scripting (XSS), is the second highest-ranked entry on the developer’s intended halting point, which can lead to bro- OWASP top ten security risks for web applications, behind ken/insufficient access controls and information leakage.
    [Show full text]
  • TYPO3 Security Guide
    TYPO3 Security Guide Extension Key: doc_guide_security Language: en Version: 1.0.0 Keywords: security forEditors forAdmins forDevelopers forBeginners forIntermediates forAdvanced Copyright 2011, Documentation Team <[email protected]> This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 - a GNU/GPL CMS/Framework available from www.typo3.org Official Documentation This document is included as part of the official TYPO3 documentation. It has been approved by the TYPO3 Documentation Team following a peer-review process. The reader should expect the information in this document to be accurate - please report discrepancies to the Documentation Team ([email protected]). Official documents are kept up-to-date to the best of the Documentation Team's abilities. Guide This document is a Guide. Guides are designed to familiarize a reader with a specific topic in order to provide a working knowledge of that particular process. Readers should peruse the guide from cover to cover in order to gain a practical overview of the process. Once completed, the Guide becomes a practical reference tool that a reader will refer to as needed. Guides offer advice on how best to achieve a given task. TYPO3 Security Guide - doc_guide_security TYPO3 Security Guide Table of Contents TYPO3 Security Guide............................1 Directory indexing........................................................12 Introduction...................................................................3
    [Show full text]
  • A Web-Based Application for the Display of Geolocated Tweets on a Map
    UNIVERSITY OF FRIBOURG Pervasive & Artificial Intelligence Research Group LTMap A web-based application for the display of geolocated Tweets on a map MASTER THESIS Aron Martinez Student number: 06-208-771 Address: Via Ravecchia 11b, CH-6512 Giubiasco Email: [email protected] Head: Prof. Beat Hirsbrunner Supervisor: Apostolos Malatras Giubiasco, March 24, 2013 Swiss Joint Master of Science in Computer Science Acknowledgements Acknowledgements First of all, I would like to thank Apostolos Malatras for his support, guidance and good advice, and also for all the valuable feedback he provided me. I would also like to thank Prof. Beat Hirsbrunner for giving me the chance to be part of the PAI group for the duration of my master thesis. It has been a great pleasure to collaborate with the PAI research group and to meet all its very kind members during the project meetings and presentations. Finally I want to thank my family and friends for their moral support, and last but not least, I want to thank my wife Lucile for having always believed in me, and for her invaluable support and her continuous encouragement during the writing of the thesis. iii Abstract Abstract Today, different services offer geolocated information based on social networks, but in most cases this information is available only for some major cities around the world, for only one social network at a time and without focusing on the actual personal interests of the user. The purpose of this master thesis is to create a web-based application that uses open- source APIs to access localization services and social network information and displays the retrieved information on a map, based on the user’s location.
    [Show full text]
  • Pragmatic Guide to Javascript
    www.allitebooks.com What Readers Are Saying About Pragmatic Guide to J a v a S c r i p t I wish I had o w n e d this book when I first started out doing JavaScript! Prag- matic Guide to J a v a S c r i p t will take you a big step ahead in programming real-world JavaScript by showing you what is going on behind the scenes in popular JavaScript libraries and giving you no-nonsense advice and back- ground information on how to do the right thing. W i t h the condensed years of e x p e r i e n c e of one of the best JavaScript developers around, it’s a must- read with great reference to e v e r y d a y JavaScript tasks. Thomas Fuchs Creator of the script.aculo.us framework An impressive collection of v e r y practical tips and tricks for getting the most out of JavaScript in today’s browsers, with topics ranging from fundamen- tals such as form v a l i d a t i o n and JSON handling to application e x a m p l e s such as mashups and geolocation. I highly recommend this book for anyone wanting to be more productive with JavaScript in their web applications. Dylan Schiemann CEO at SitePen, cofounder of the Dojo T o o l k i t There are a number of JavaScript books on the market today, b u t most of them tend to focus on the new or inexperienced JavaScript programmer.
    [Show full text]
  • Jquery: Novice to Ninja
    SECOND Pantone: EDITION CMYK: JQUERYGrey scale PANTONE Orange 021 C PANTONE 2955 C NOVICE TO NCMYK IO, 53, N100, 0 JCMYKA 100, 45, 0, 37 NEW KICKS ANDBlack 50% TRICKSBlack 100% BY EARLE CASTLEDINE & CRAIG SHARKIE SIMPLE, FAST, POWERFUL — JAVASCRIPT THE WAY IT SHOULD BE Summary of Contents Preface . xvii 1. Falling in Love with jQuery . 1 2. Selecting, Decorating, and Enhancing . 19 3. Animating, Scrolling, and Resizing . 53 4. Images and Slideshows . 93 5. Menus, Tabs, Tooltips, and Panels . 139 6. Construction, Ajax, and Interactivity . 187 7. Forms, Controls, and Dialogs . 239 8. Lists, Trees, and Tables . 305 9. Plugins, Themes, and Advanced Topics . 347 A. Reference Material . 409 B. JavaScript Tidbits . 419 C. Plugin Helpers . 425 Index . 431 JQUERY: NOVICE TO NINJA BY EARLE CASTLEDINE & CRAIG SHARKIE wnload from Wow! eBook <www.wowebook.com> o D iv jQuery: Novice to Ninja by Earle Castledine and Craig Sharkie Copyright © 2012 SitePoint Pty. Ltd. Product Manager: Simon Mackie Assistant Technical Editor: Diana MacDonald Technical Editor: Tom Museth Indexer: Michele Combes Expert Reviewer: Jörn Zaefferer Cover Designer: Alex Walker Editor: Kelly Steele Printing History: Latest Update: February 2012 First Edition: February 2010 Second Edition: February 2012 Notice of Rights All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the prior written permission of the publisher, except in the case of brief quotations included in critical articles or reviews. Notice of Liability The authors and publisher have made every effort to ensure the accuracy of the information herein.
    [Show full text]
  • TYPO3 / Wordpress / Drupal
    civi listen GmbH Schwedenstr. 15a 13357 Berlin jobs@civi listen.de www. civi listen.de Freelance Entwickler*in Frontend / Backend (m/w/d) TYPO3 / Wordpress / Drupal Was wir machen Wir sind die civi listen. Wir digitalisieren die Zivilgesellschaft. Unsere Kunden verbessern die Welt und wir sorgen dafür, dass sie dabei nichts aufhält. Dafür unterstützen wir seit 2018 gemeinnützige Organisationen mit praktischen Hilfestellungen digitaler und damit effizienter zu werden. CiviCRM ist dabei eine Lösung, die wir anbieten, um Beziehungen zwischen NGOs, Stiftungen und Vereinen zu ihren Stakeholdern und Zielgruppen verbessern – vom personalisierten Mailing bis zur Organisation von Events, Kampagnen und Fundraising. Wir entwickeln Auftritte, die gut aussehen und den richtigen Ton treffen. Wir helfen Herausforderungen und Prozesse smart und zuverlässig zu bewältigen. Wen wir suchen Wir wollen unsere Kunden jederzeit flexibel mit der besten Expertise unterstützen und glauben daran, dass Akteure der Zivilgesellschaft die besten Lösungen brauchen. Zur Unterstützung unseres Teams suchen wir zum nächstmöglichen Zeitpunkt eine*n erfahrene*n Entwickler*in TYPO3 / Wordpress / Drupal (m/w/d) civi listen GmbH Sitz der Gesellschaft: Berlin 030 692 090 200 Kopf frei für Hands on. Schwedenstr. 15 a Registergericht: Berlin-Charlottenburg, HRB 218551 B jobs@civi listen.de 13357 Berlin Geschäftsführer: Patrick Förg www. civi listen.de 1/4 Deine Aufgaben Wir erstellen für unsere CiviCRM-Kunden anspruchsvolle Internetauftritte und Spezialfunktionen mit TYPO3, Wordpress,
    [Show full text]
  • Customizing and Extending IBM Content Navigator
    Front cover Customizing and Extending IBM Content Navigator Understand extension points and customization options Create an action, service, feature, and custom step processor Use widgets in apps, mobile development, and more Wei-Dong Zhu Brett Morris Tomas Barina Rainer Mueller-Maechler Yi Duan Ron Rathgeber Nicole Hughes Jana Saalfeld Marcel Kostal Jian Xin Zhang Chad Lou Jie Zhang ibm.com/redbooks International Technical Support Organization Customizing and Extending IBM Content Navigator May 2014 SG24-8055-01 Note: Before using this information and the product it supports, read the information in “Notices” on page xi. Second Edition (May 2014) This edition applies to Version 2, Release 0, Modification 0 of IBM Content Navigator found in IBM FileNet Content Manager (product number 5724-R81), IBM Content Manager (product number 5724-B19), and IBM Content Manager OnDemand (product number 5724-J33). © Copyright International Business Machines Corporation 2012, 2014. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . xi Trademarks . xii Preface . xiii Authors . xiv Now you can become a published author, too! . xvii Comments welcome. xvii Stay connected to IBM Redbooks . xviii Summary of changes . xix May 2014, Second Edition . xix Part 1. Introduction . 1 Chapter 1. Extension points and customization options . 3 1.1 Before you begin . 4 1.1.1 IBM Content Navigator terms . 4 1.2 Development options with IBM Content Navigator . 6 1.2.1 Configuring IBM Content Navigator . 6 1.2.2 Implementing the EDS interface . 7 1.2.3 Implementing a plug-in .
    [Show full text]
  • A Systematic Analysis of XSS Sanitization in Web Application Frameworks
    A Systematic Analysis of XSS Sanitization in Web Application Frameworks Joel Weinberger, Prateek Saxena, Devdatta Akhawe, Matthew Finifter, Richard Shin, and Dawn Song University of California, Berkeley Abstract. While most research on XSS defense has focused on techniques for securing existing applications and re-architecting browser mechanisms, sanitiza- tion remains the industry-standard defense mechanism. By streamlining and au- tomating XSS sanitization, web application frameworks stand in a good position to stop XSS but have received little research attention. In order to drive research on web frameworks, we systematically study the security of the XSS sanitization abstractions frameworks provide. We develop a novel model of the web browser and characterize the challenges of XSS sanitization. Based on the model, we sys- tematically evaluate the XSS abstractions in 14 major commercially-used web frameworks. We find that frameworks often do not address critical parts of the XSS conundrum. We perform an empirical analysis of 8 large web applications to extract the requirements of sanitization primitives from the perspective of real- world applications. Our study shows that there is a wide gap between the abstrac- tions provided by frameworks and the requirements of applications. 1 Introduction Cross-site scripting (XSS) attacks are an unrelenting threat to existing and emerg- ing web applications. Major web services such as Google Analytics, Facebook and Twitter have had XSS issues in recent years despite intense research on the sub- ject [34, 52, 61]. Though XSS mitigation and analysis techniques have enjoyed intense focus [6, 7, 12, 13, 33, 36, 37, 39, 41, 43, 44, 47, 49, 50, 59, 64, 66, 68], research has paid little or no attention to a promising sets of tools for solving the XSS riddle—web appli- cation frameworks—which are gaining wide adoption [18, 21, 22, 28, 35, 42, 48, 55, 58, 69, 71].
    [Show full text]
  • A Bad Case of Stripes
    A Bad Case of Stripes A Bad Case of Stripes Author: David Shannon Publisher: Scholastic Paperbacks (2004) Binding: Paperback, 32 pages Item Call Number: E SHANN Camilla Cream loves lima beans, but she never eats them. Why? Because the other kids in her school don't like them. And Camilla is very, very worried about what other people think of her. In fact, she’s so worried that she's about to break out in a bad case of stripes! Questions to talk about with your child: Why did Camilla break out in stripes (and other patterns?) What did you notice about the patterns that break out on Camilla? Do they have anything to do with what’s happening around her? Look at each of the pictures. Was there anything about Camilla that stayed the same each time she changed? What made Camilla finally turn back into herself? Did Camilla learn anything from having a bad case of stripes? Look at the last page. Was there anything different about the way Camilla looks? Fun things to do together: David Shannon always hides a picture of his white terrier Fergus somewhere in each of his books. Look for the picture of Fergus in this book. Camilla loves lima beans. Have lima beans for lunch or dinner one day. Draw a picture of yourself with stripes, polka dots or some other pattern. Check out a book about patterns, for example, Pattern Bugs by Trudi Harris or Patterns at the Museum by Tracey Steffora. Recognizing and completing simple patterns is an important kindergarten readiness skill.
    [Show full text]
  • The Effect of Ajax on Performance and Usability in Web Environments
    The effect of Ajax on performance and usability in web environments Y.D.C.N. op ’t Roodt, BICT Date of acceptance: August 31st, 2006 One Year Master Course Software Engineering Thesis Supervisor: Dr. Jurgen Vinju Internship Supervisor: Ir. Koen Kam Company or Institute: Hyves (Startphone Limited) Availability: public domain Universiteit van Amsterdam, Hogeschool van Amsterdam, Vrije Universiteit 2 This page intentionally left blank 3 Table of contents 1 Foreword ................................................................................................... 6 2 Motivation ................................................................................................. 7 2.1 Tasks and sources................................................................................ 7 2.2 Research question ............................................................................... 9 3 Research method ..................................................................................... 10 3.1 On implementation........................................................................... 11 4 Background and context of Ajax .............................................................. 12 4.1 Background....................................................................................... 12 4.2 Rich Internet Applications ................................................................ 12 4.3 JavaScript.......................................................................................... 13 4.4 The XMLHttpRequest object..........................................................
    [Show full text]
  • OSS Watch National Software Survey 2008
    OSS Watch National Software Survey 2008 Ramón Casero Cañas Acknowledgements Publication information The survey was prepared and the report written by Ramón This survey report is licensed under the Creative Commons Casero Cañas (OSS Watch), and edited by Ross Gardler and Attribution-ShareAlike 2.0 England & Wales licence. Elena Blanco (OSS Watch), and Pete Cooper. OSS Watch National Software Survey 2008 However, there are many people who helped to make it pos- Ramón Casero Cañas sible. We would like to thank the ICT directors of the FE and HE institutions, who took the time to respond to the survey First edition, published February 2009. and send feedback to us; Dr Ellen Helsper (Oxford Internet Institute) for her advice, academic input and support; Randy Metcalfe, former OSS Watch Service Manager, who set us with this task and was always a source of encouragement and support; Michael Fraser, former OSS Watch Director, for his comments; Gabriel Hanganu, Stuart Yeates and Rowan Wilson (OSS Watch) for their comments, envelope stuffing, corrections and so much more; Laura Marriott and Beverley McNichols for their data collection; Jean Davis and Sally Hard- ing for envelope stuffing; Barry Cornelius, Dominic Hargreaves, Charles Hutchings, Liz Masterman, Denise McDonough, Stuart Lee, Janet McKnight, Howard Noble, Mark Norman, Catrin Radcliffe and Peter Robinson for their comments about the online questionnaire; Judy McAuliffe, Tina Dick, Leslie Ferguson, Fran Jackson, Bruce Shakespeare, Jane Truby and Wendy Simmonds for their help with administration
    [Show full text]
  • A Method for a Small Web Site to Add Some Video Sharing Features
    LiU-ITN-TEK-A--08/013--SE A method for a small web site to add some video sharing features Juan Lucas Madurga Martín-Serrano 2008-01-31 Department of Science and Technology Institutionen för teknik och naturvetenskap Linköping University Linköpings Universitet SE-601 74 Norrköping, Sweden 601 74 Norrköping LiU-ITN-TEK-A--08/013--SE A method for a small web site to add some video sharing features Examensarbete utfört i datavetenskap vid Tekniska Högskolan vid Linköpings unversitet Juan Lucas Madurga Martín-Serrano Examinator Bengt Lennartsson Norrköping 2008-01-31 Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra- ordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances.
    [Show full text]