Uwsgi Documentation Release 2.0

Total Page:16

File Type:pdf, Size:1020Kb

Uwsgi Documentation Release 2.0 uWSGI Documentation Release 2.0 uWSGI March 14, 2014 Contents 1 Included components (updated to latest stable release)3 2 Quickstarts 5 2.1 Quickstart for Python/WSGI applications................................5 2.2 Quickstart for perl/PSGI applications.................................. 10 2.3 Quickstart for ruby/Rack applications.................................. 15 2.4 Snippets................................................. 23 3 Table of Contents 25 3.1 Getting uWSGI.............................................. 25 3.2 Installing uWSGI............................................. 25 3.3 The uWSGI build system........................................ 26 3.4 Managing the uWSGI server....................................... 29 3.5 Supported languages and platforms................................... 32 3.6 Supported Platforms/Systems...................................... 32 3.7 Web server integration.......................................... 33 3.8 Frequently Asked Questions (FAQ)................................... 34 3.9 Things to know (best practices and “issues”).............................. 38 3.10 Configuring uWSGI........................................... 39 3.11 Fallback configuration.......................................... 45 3.12 Configuration logic............................................ 47 3.13 Configuration Options.......................................... 50 3.14 Defining new options for your instances................................. 139 3.15 How uWSGI parses config files..................................... 141 3.16 uwsgi protocol magic variables..................................... 143 3.17 The uwsgi Protocol............................................ 145 3.18 Managing external daemons/services.................................. 147 3.19 The Master FIFO............................................. 149 3.20 Socket activation with inetd/xinetd................................... 151 3.21 Running uWSGI via Upstart....................................... 151 3.22 SystemD................................................. 153 3.23 Running uWSGI instances with Circus................................. 155 3.24 Embedding an application in uWSGI.................................. 156 3.25 Logging.................................................. 158 3.26 Formatting uWSGI requests logs.................................... 163 3.27 Log encoders............................................... 165 3.28 Hooks................................................... 168 3.29 Glossary................................................. 172 i 3.30 uWSGI third party plugins........................................ 172 4 Tutorials 175 4.1 The uWSGI Caching Cookbook..................................... 175 4.2 Setting up Django and your web server with uWSGI and nginx.................... 183 4.3 Running uWSGI on Dreamhost shared hosting............................. 191 4.4 Running python webapps on Heroku with uWSGI........................... 195 4.5 Running Ruby/Rack webapps on Heroku with uWSGI......................... 199 4.6 Reliably use FUSE filesystems for uWSGI vassals (with Linux).................... 203 4.7 Build a dynamic proxy using RPC and internal routing......................... 206 4.8 Setting up Graphite on Ubuntu using the Metrics subsystem...................... 207 5 Articles 211 5.1 Serializing accept(), AKA Thundering Herd, AKA the Zeeg Problem................. 211 5.2 The Art of Graceful Reloading...................................... 218 5.3 Fun with Perl, Eyetoy and RaspberryPi................................. 227 6 uWSGI Subsystems 233 6.1 The uWSGI alarm subsystem (from 1.3)................................ 233 6.2 The uWSGI caching framework..................................... 237 6.3 WebCaching framework......................................... 240 6.4 The uWSGI cron-like interface..................................... 242 6.5 The uWSGI FastRouter......................................... 245 6.6 uWSGI internal routing......................................... 248 6.7 The uWSGI Legion subsystem...................................... 261 6.8 Locks................................................... 265 6.9 uWSGI Mules.............................................. 266 6.10 The uWSGI offloading subsystem.................................... 267 6.11 The uWSGI queue framework...................................... 268 6.12 uWSGI RPC Stack............................................ 270 6.13 SharedArea – share memory pages between uWSGI components................... 272 6.14 The uWSGI Signal Framework..................................... 274 6.15 The uWSGI Spooler........................................... 277 6.16 uWSGI Subscription Server....................................... 281 6.17 Serving static files with uWSGI (updated to 1.9)............................ 284 6.18 SNI - Server Name Identification (virtual hosting for SSL nodes)................... 288 6.19 The GeoIP plugin............................................ 290 6.20 uWSGI Transformations......................................... 291 6.21 WebSocket supports........................................... 294 6.22 The Metrics subsystem.......................................... 296 6.23 The Chunked input API......................................... 304 7 Scaling with uWSGI 307 7.1 The uWSGI cheaper subsystem – adaptive process spawning...................... 307 7.2 The uWSGI Emperor – multi-app deployment............................. 311 7.3 Auto-scaling with Broodlord mode................................... 321 7.4 Zerg mode................................................ 321 7.5 Adding applications dynamically.................................... 323 7.6 Scaling SSL connections (uWSGI 1.9)................................. 324 8 Securing uWSGI 329 8.1 Setting POSIX Capabilities....................................... 329 8.2 Running uWSGI in a Linux CGroup................................... 330 8.3 Using Linux KSM in uWSGI...................................... 331 8.4 Jailing your apps using Linux Namespaces............................... 332 ii 8.5 The old way: the –namespace option.................................. 334 8.6 FreeBSD Jails.............................................. 336 8.7 The Forkpty Router........................................... 340 8.8 The TunTap Router............................................ 342 9 Keeping an eye on your apps 345 9.1 Monitoring uWSGI with Nagios..................................... 345 9.2 The embedded SNMP server....................................... 345 9.3 Pushing statistics (from 1.4)....................................... 346 9.4 Integration with Graphite/Carbon.................................... 347 9.5 The uWSGI Stats Server......................................... 348 9.6 The Metrics subsystem.......................................... 352 10 Async and loop engines 361 10.1 uWSGI asynchronous/non-blocking modes (updated to uWSGI 1.9).................. 361 10.2 The Gevent loop engine......................................... 364 10.3 The Tornado loop engine......................................... 366 10.4 uGreen – uWSGI Green Threads.................................... 369 11 Web Server support 371 11.1 Apache support.............................................. 371 11.2 Cherokee support............................................. 372 11.3 Native HTTP support........................................... 373 11.4 HTTPS support (from 1.3)........................................ 376 11.5 The SPDY router (uWSGI 1.9)..................................... 377 11.6 Lighttpd support............................................. 378 11.7 Attaching uWSGI to Mongrel2..................................... 379 11.8 Nginx support.............................................. 381 12 Language support 385 12.1 Python support.............................................. 385 12.2 The PyPy plugin............................................. 404 12.3 Running PHP scripts in uWSGI..................................... 413 12.4 uWSGI Perl support (PSGI)....................................... 417 12.5 Ruby support............................................... 420 12.6 Using Lua/WSAPI with uWSGI..................................... 427 12.7 JVM in the uWSGI server (updated to 1.9)............................... 431 12.8 The Mono ASP.NET plugin....................................... 441 12.9 Running CGI scripts on uWSGI..................................... 443 12.10 The gccgo plugin............................................. 447 12.11 The Symcall plugin............................................ 450 12.12 The XSLT plugin............................................. 453 12.13 SSI (Server Side Includes) plugin.................................... 454 12.14 uWSGI V8 support............................................ 456 12.15 The GridFS plugin............................................ 457 12.16 The GlusterFS plugin.......................................... 461 12.17 The RADOS plugin........................................... 464 13 Other plugins 467 13.1 The Pty plugin.............................................. 467 13.2 SPNEGO authentication......................................... 468 13.3 Configuring uWSGI with LDAP..................................... 468 14 Broken/deprecated features 469 14.1 Integrating uWSGI with Erlang..................................... 469 iii 14.2 Management Flags............................................ 472 14.3 uWSGI Go support (1.4 only)...................................... 473 15 Release Notes 479 15.1 Stable
Recommended publications
  • The Essentials of Stackless Python Tuesday, 10 July 2007 10:00 (30 Minutes)
    EuroPython 2007 Contribution ID: 62 Type: not specified The Essentials of Stackless Python Tuesday, 10 July 2007 10:00 (30 minutes) This is a re-worked, actualized and improved version of my talk at PyCon 2007. Repeating the abstract: As a surprise for people who think they know Stackless, we present the new Stackless implementation For PyPy, which has led to a significant amount of new insight about parallel programming and its possible implementations. We will isolate the known Stackless as a special case of a general concept. This is a Stackless, not a PyPy talk. But the insights presented here would not exist without PyPy’s existance. Summary Stackless has been around for a long time now. After several versions with different goals in mind, the basic concepts of channels and tasklets turned out to be useful abstractions, and since many versions, Stackless is only ported from version to version, without fundamental changes to the principles. As some spin-off, Armin Rigo invented Greenlets at a Stackless sprint. They are some kind of coroutines and a bit of special semantics. The major benefit is that Greenlets can runon unmodified CPython. In parallel to that, the PyPy project is in its fourth year now, and one of its goals was Stackless integration as an option. And of course, Stackless has been integrated into PyPy in a very nice and elegant way, much nicer than expected. During the design of the Stackless extension to PyPy, it turned out, that tasklets, greenlets and coroutines are not that different in principle, and it was possible to base all known parallel paradigms on one simple coroutine layout, which is as minimalistic as possible.
    [Show full text]
  • Method, 224 Vs. Typing Module Types
    Index A migration metadata, 266 running migrations, 268, 269 Abstract base classes, 223 setting up a new project, 264 @abc.abstractmethod decorator, 224 using constants in migrations, 267 __subclasshook__(...) method, 224 __anext__() method, 330 vs. typing module types, 477 apd.aggregation package, 397, 516, 524 virtual subclasses, 223 clean functions (see clean functions) Actions, 560 database, 254 analysis process, 571, 572 get_data_by_deployment(...) config file, 573, 575 function, 413, 416 DataProcessor class, 561 get_data(...) function, 415 extending, 581 plot_sensor(...) function, 458 IFTTT service, 566 plotting data, 429 ingesting data, 567, 571 plotting functions, 421 logs, 567 query functions, 417 trigger, 563, 564 apd.sensors package, 106 Adafruit, 42, 486 APDSensorsError, 500 Adapter pattern, 229 DataCollectionError, 500 __aenter__() method, 331, 365 directory structure, 108 __aexit__(...) method, 331, 365 extending, 149 Aggregation process, 533 IntermittentSensorFailureError, 500 aiohttp library, 336 making releases, 141 __aiter__() method, 330 sensors script, 32, 36, 130, 147, 148, Alembic, 264 153, 155, 156, 535 ambiguous changes, 268 UserFacingCLIError, 502 creating a new revision, 265 apd.sunnyboy_solar package, 148, current version, 269 155, 173 downgrading, 268, 270 API design, 190 irreversible, migrations, 270 authentication, 190 listing migrations, 269 versioning, 240, 241, 243 merging, migrations, 269 589 © Matthew Wilkes 2020 M. Wilkes, Advanced Python Development, https://doi.org/10.1007/978-1-4842-5793-7 INDEX AssertionError,
    [Show full text]
  • Python Concurrency
    Python Concurrency Threading, parallel and GIL adventures Chris McCafferty, SunGard Global Services Overview • The free lunch is over – Herb Sutter • Concurrency – traditionally challenging • Threading • The Global Interpreter Lock (GIL) • Multiprocessing • Parallel Processing • Wrap-up – the Pythonic Way Reminder - The Free Lunch Is Over How do we get our free lunch back? • Herb Sutter’s paper at: • http://www.gotw.ca/publications/concurrency-ddj.htm • Clock speed increase is stalled but number of cores is increasing • Parallel paths of execution will reduce time to perform computationally intensive tasks • But multi-threaded development has typically been difficult and fraught with danger Threading • Use the threading module, not thread • Offers usual helpers for making concurrency a bit less risky: Threads, Locks, Semaphores… • Use logging, not print() • Don’t start a thread in module import (bad) • Careful importing from daemon threads Traditional management view of Threads Baby pile of snakes, Justin Guyer Managing Locks with ‘with’ • With keyword is your friend • (compare with the ‘with file’ idiom) import threading rlock = threading.RLock() with rlock: print "code that can only be executed while we acquire rlock" #lock is released at end of code block, regardless of exceptions Atomic Operations in Python • Some operations can be pre-empted by another thread • This can lead to bad data or deadlocks • Some languages offer constructs to help • CPython has a set of atomic operations due to the operation of something called the GIL and the way the underlying C code is implemented • This is a fortuitous implementation detail – ideally use RLocks to future-proof your code CPython Atomic Operations • reading or replacing a single instance attribute • reading or replacing a single global variable • fetching an item from a list • modifying a list in place (e.g.
    [Show full text]
  • Thread-Level Parallelism II
    Great Ideas in UC Berkeley UC Berkeley Teaching Professor Computer Architecture Professor Dan Garcia (a.k.a. Machine Structures) Bora Nikolić Thread-Level Parallelism II Garcia, Nikolić cs61c.org Languages Supporting Parallel Programming ActorScript Concurrent Pascal JoCaml Orc Ada Concurrent ML Join Oz Afnix Concurrent Haskell Java Pict Alef Curry Joule Reia Alice CUDA Joyce SALSA APL E LabVIEW Scala Axum Eiffel Limbo SISAL Chapel Erlang Linda SR Cilk Fortan 90 MultiLisp Stackless Python Clean Go Modula-3 SuperPascal Clojure Io Occam VHDL Concurrent C Janus occam-π XC Which one to pick? Garcia, Nikolić Thread-Level Parallelism II (3) Why So Many Parallel Programming Languages? § Why “intrinsics”? ú TO Intel: fix your #()&$! compiler, thanks… § It’s happening ... but ú SIMD features are continually added to compilers (Intel, gcc) ú Intense area of research ú Research progress: 20+ years to translate C into good (fast!) assembly How long to translate C into good (fast!) parallel code? • General problem is very hard to solve • Present state: specialized solutions for specific cases • Your opportunity to become famous! Garcia, Nikolić Thread-Level Parallelism II (4) Parallel Programming Languages § Number of choices is indication of ú No universal solution Needs are very problem specific ú E.g., Scientific computing/machine learning (matrix multiply) Webserver: handle many unrelated requests simultaneously Input / output: it’s all happening simultaneously! § Specialized languages for different tasks ú Some are easier to use (for some problems)
    [Show full text]
  • Cámara Eyetoy® USB
    Cámara EyeToy® USB Disponible: Ahora Género: Entretenimiento Accesorios: Nº de referencia: SCUS-97600 Público: Para todo público Cámara EyeToy® USB (para PlayStation®2) UPC: 7-11719-76000-9 Cámara EyeToy® USB Sé la estrella del juego ¿Qué es EyeToy? EyeToy es una tecnología exclusiva de PlayStation®2 que brinda una manera sencilla, intuitiva y divertida de controlar los juegos, interactuar con amigos, etc. La tecnología EyeToy de la cámara EyeToy USB (para PlayStation®2) tiene rastreo de movimientos, sensores de luz y un micrófono incorporado para grabar y detectar audio. Puede usarse como cámara para tomar fotos, grabar video y mostrar a los jugadores en la TV**. Conecta la cámara EyeToy USB (para PlayStation®2) al sistema PlayStation® 2 por medio de uno de los puertos USB y pon un juego compatible con EyeToy para comenzar a divertirte. EyeToy® incluye: Características claves • La exclusiva cámara EyeToy® USB, • La revolucionaria cámara EyeToy® USB te transforma en la estrella del juego que cuenta con rastreo de movimiento y tecnología de • Tecnología de rastreo de movimiento: El movimiento corporal se traduce detección de luz y un micrófono inmediatamente en interacción en la pantalla incorporado • Amplio atractivo: La jugada es tan intuitiva y sencilla que EyeToy® resulta atractivo para todo público ¿Cómo funciona? • Jugada intuitiva: No es necesario usar un control; todos pueden divertirse La cámara EyeToy® USB simplemente con EyeToy®. No es necesario contar con experiencia previa en videojuegos se conecta a uno de los dos puertos • Mensajes de video: Graba hasta 60 segundos de mensajes de video USB en la parte frontal de la consola personalizados en tu tarjeta de memoria (8MB) (para PlayStation®2)* para PlayStation®2.
    [Show full text]
  • Uwsgi Documentation Release 1.9
    uWSGI Documentation Release 1.9 uWSGI February 08, 2016 Contents 1 Included components (updated to latest stable release)3 2 Quickstarts 5 3 Table of Contents 11 4 Tutorials 137 5 Articles 139 6 uWSGI Subsystems 141 7 Scaling with uWSGI 197 8 Securing uWSGI 217 9 Keeping an eye on your apps 223 10 Async and loop engines 231 11 Web Server support 237 12 Language support 251 13 Release Notes 317 14 Contact 359 15 Donate 361 16 Indices and tables 363 Python Module Index 365 i ii uWSGI Documentation, Release 1.9 The uWSGI project aims at developing a full stack for building (and hosting) clustered/distributed network applica- tions. Mainly targeted at the web and its standards, it has been successfully used in a lot of different contexts. Thanks to its pluggable architecture it can be extended without limits to support more platforms and languages. Cur- rently, you can write plugins in C, C++ and Objective-C. The “WSGI” part in the name is a tribute to the namesake Python standard, as it has been the first developed plugin for the project. Versatility, performance, low-resource usage and reliability are the strengths of the project (and the only rules fol- lowed). Contents 1 uWSGI Documentation, Release 1.9 2 Contents CHAPTER 1 Included components (updated to latest stable release) The Core (implements configuration, processes management, sockets creation, monitoring, logging, shared memory areas, ipc, cluster membership and the uWSGI Subscription Server) Request plugins (implement application server interfaces for various languages and platforms: WSGI, PSGI, Rack, Lua WSAPI, CGI, PHP, Go ...) Gateways (implement load balancers, proxies and routers) The Emperor (implements massive instances management and monitoring) Loop engines (implement concurrency, components can be run in preforking, threaded, asynchronous/evented and green thread/coroutine modes.
    [Show full text]
  • Interfacing Apache HTTP Server 2.4 with External Applications
    Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick November 6, 2012 Who am I? Interfacing Apache HTTP Server 2.4 with External Applications Met Unix (in the form of Xenix) in 1985 Jeff Trawick Joined IBM in 1990 to work on network software for mainframes Moved to a different organization in 2000 to work on Apache httpd Later spent about 4 years at Sun/Oracle Got tired of being tired of being an employee of too-huge corporation so formed my own too-small company Currently working part-time, coding on other projects, and taking classes Overview Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Huge problem space, so simplify Perspective: \General purpose" web servers, not minimal application containers which implement HTTP \Applications:" Code that runs dynamically on the server during request processing to process input and generate output Possible web server interactions Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Native code plugin modules (uhh, assuming server is native code) Non-native code + language interpreter inside server (Lua, Perl, etc.) Arbitrary processes on the other side of a standard wire protocol like HTTP (proxy), CGI, FastCGI, etc. (Java and \all of the above") or private protocol Some hybrid such as mod fcgid mod fcgid as example hybrid Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Supports applications which implement a standard wire protocol, no restriction on implementation mechanism Has extensive support for managing the application[+interpreter] processes so that the management of the application processes is well-integrated with the web server Contrast with mod proxy fcgi (pure FastCGI, no process management) or mod php (no processes/threads other than those of web server).
    [Show full text]
  • Python for Bioinformatics, Second Edition
    PYTHON FOR BIOINFORMATICS SECOND EDITION CHAPMAN & HALL/CRC Mathematical and Computational Biology Series Aims and scope: This series aims to capture new developments and summarize what is known over the entire spectrum of mathematical and computational biology and medicine. It seeks to encourage the integration of mathematical, statistical, and computational methods into biology by publishing a broad range of textbooks, reference works, and handbooks. The titles included in the series are meant to appeal to students, researchers, and professionals in the mathematical, statistical and computational sciences, fundamental biology and bioengineering, as well as interdisciplinary researchers involved in the field. The inclusion of concrete examples and applications, and programming techniques and examples, is highly encouraged. Series Editors N. F. Britton Department of Mathematical Sciences University of Bath Xihong Lin Department of Biostatistics Harvard University Nicola Mulder University of Cape Town South Africa Maria Victoria Schneider European Bioinformatics Institute Mona Singh Department of Computer Science Princeton University Anna Tramontano Department of Physics University of Rome La Sapienza Proposals for the series should be submitted to one of the series editors above or directly to: CRC Press, Taylor & Francis Group 3 Park Square, Milton Park Abingdon, Oxfordshire OX14 4RN UK Published Titles An Introduction to Systems Biology: Statistical Methods for QTL Mapping Design Principles of Biological Circuits Zehua Chen Uri Alon
    [Show full text]
  • Goless Documentation Release 0.6.0
    goless Documentation Release 0.6.0 Rob Galanakis July 11, 2014 Contents 1 Intro 3 2 Goroutines 5 3 Channels 7 4 The select function 9 5 Exception Handling 11 6 Examples 13 7 Benchmarks 15 8 Backends 17 9 Compatibility Details 19 9.1 PyPy................................................... 19 9.2 Python 2 (CPython)........................................... 19 9.3 Python 3 (CPython)........................................... 19 9.4 Stackless Python............................................. 20 10 goless and the GIL 21 11 References 23 12 Contributing 25 13 Miscellany 27 14 Indices and tables 29 i ii goless Documentation, Release 0.6.0 • Intro • Goroutines • Channels • The select function • Exception Handling • Examples • Benchmarks • Backends • Compatibility Details • goless and the GIL • References • Contributing • Miscellany • Indices and tables Contents 1 goless Documentation, Release 0.6.0 2 Contents CHAPTER 1 Intro The goless library provides Go programming language semantics built on top of gevent, PyPy, or Stackless Python. For an example of what goless can do, here is the Go program at https://gobyexample.com/select reimplemented with goless: c1= goless.chan() c2= goless.chan() def func1(): time.sleep(1) c1.send(’one’) goless.go(func1) def func2(): time.sleep(2) c2.send(’two’) goless.go(func2) for i in range(2): case, val= goless.select([goless.rcase(c1), goless.rcase(c2)]) print(val) It is surely a testament to Go’s style that it isn’t much less Python code than Go code, but I quite like this. Don’t you? 3 goless Documentation, Release 0.6.0 4 Chapter 1. Intro CHAPTER 2 Goroutines The goless.go() function mimics Go’s goroutines by, unsurprisingly, running the routine in a tasklet/greenlet.
    [Show full text]
  • Continuations and Stackless Python
    Continuations and Stackless Python Or "How to change a Paradigm of an existing Program" Christian Tismer Virtual Photonics GmbH mailto:[email protected] Abstract 2 Continuations In this paper, an implementation of "Stackless Python" (a Python which does not keep state on the C 2.1 What is a Continuation? stack) is presented. Surprisingly, the necessary changes affect just a small number of C modules, and Many attempts to explain continuations can be found a major rewrite of the C library can be avoided. The in the literature[5-10], more or less hard to key idea in this approach is a paradigm change for the understand. The following is due to Jeremy Hylton, Python code interpreter that is not easy to understand and I like it the best. Imagine a very simple series of in the first place. Recursive interpreter calls are statements: turned into tail recursion, which allows deferring evaluation by pushing frames to the frame stack, x = 2; y = x + 1; z = x * 2 without the C stack involved. In this case, the continuation of x=2 is y=x+1; By decoupling the frame stack from the C stack, we z=x*2. You might think of the second and third now have the ability to keep references to frames and assignments as a function (forgetting about variable to do non-local jumps. This turns the frame stack into scope for the moment). That function is the a tree, and every leaf of the tree can now be a jump continuation. In essence, every single line of code has target.
    [Show full text]
  • Du Mutisme Au Dialogue
    École Nationale Supérieure Louis Lumière Promotion Son 2015 Du mutisme au dialogue Les interactions vocales dans le jeu vidéo Partie pratique : v0x Mémoire de fin d'étude Rédacteur : Charles MEYER Directeur interne: Thierry CODUYS Directrice externe : Isabelle BALLET Rapporteur : Claude GAZEAU Année universitaire 2014-2015 Mémoire soutenu le 15 juin 2015 Remerciements : Je tiens à remercier chaleureusement mes deux directeurs de mémoire pour leur implication, leur confiance et leur exigence. Je remercie tout particulièrement Nicolas GIDON, sans qui la réalisation de la partie pratique de ce mémoire aurait été plus chronophage et complexe.. Je remercie et salue Nicolas FOURNIER et Baptiste PALACIN, dont les travaux et la gentillesse ont été une source d'inspiration et de détermination. Je remercie également ma mère, ma tante, Jordy, Julien et Julien (n'en déplaise à Julien), Timothée et mes amis pour leur soutien indéfectible. Merci à madame VALOUR, monsieur COLLET, monsieur FARBRÈGES ainsi qu'à leurs élèves. Enfin, merci à From Software et à NetherRealm Studios pour leur jeux, qui auront été un défouloir bienvenu. Page 2 Résumé Ce mémoire de master a pour objet d'étude les interactions vocales dans le jeu vidéo. Cependant, il ne se limite pas à une étude historique de l'évolution de la vocalité au sein des jeux vidéo mais en propose une formalisation théorique autour de trois concepts essentiels : Mécanique, Narration et Immersion. De ces trois concepts découlent trois types de voix : les voix système, les voix narratives (linéaires et non- linéaires) et les voix d'ambiance. Dans le prolongement de cette étude et en s'appuyant sur les travaux menés dans le cadre des parties expérimentale et pratique de ce mémoire, ayant abouti à la réalisation d'un jeu vidéo basé sur l'analyse spectrale de la voix du joueur, v0x, nous proposons une extension de cette théorie de la vocalité vidéo-ludique afin d'intégrer l'inclusion de la voix du joueur au sein de ce cadre d'étude.
    [Show full text]
  • Mastering Flask Web Development Second Edition
    Mastering Flask Web Development Second Edition Build enterprise-grade, scalable Python web applications Daniel Gaspar Jack Stouffer BIRMINGHAM - MUMBAI Mastering Flask Web Development Second Edition Copyright © 2018 Packt Publishing 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 embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. Commissioning Editor: Amarabha Banerjee Acquisition Editor: Devanshi Doshi Content Development Editor: Onkar Wani Technical Editor: Diksha Wakode Copy Editor: Safis Editing Project Coordinator: Sheejal Shah Proofreader: Safis Editing Indexer: Rekha Nair Graphics: Alishon Mendonsa Production Coordinator: Aparna Bhagat First published: September 2015 Second Edition: October 2018 Production reference: 1301018 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78899-540-5 www.packtpub.com mapt.io Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career.
    [Show full text]