Database Music a History, Technology, and Aesthetics of the Database in Music Composition

Total Page:16

File Type:pdf, Size:1020Kb

Database Music a History, Technology, and Aesthetics of the Database in Music Composition Database Music A History, Technology, and Aesthetics of the Database in Music Composition by Federico Nicolás Cámara Halac A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy Department of Music New York University May, 2019 Jaime Oliver La Rosa c Federico Nicolás Cámara Halac All Rights Reserved, 2019 Dedication For my mother and father, who have always taught me to never give up with my research, even during the most difficult times. Also to my advisor, Jaime Oliver La Rosa, without his help and continuous guidance, this would have never been possible. For Elizabeth Hoffman and Judy Klein, who always believed in me, and whose words and music I bring everywhere. Finally to Aye, whose love I cannot even begin to describe. iv Acknowledgements I would like to thank my advisor, Jaime Oliver La Rosa, for his role in inspiring this project, as well as his commitment to research, clarity, and academic rigor. I am also indebted to committee members Martin Daughtry and Elizabeth Hoffman, for their ongoing guidance and support even at the very early stages of this project, and William Brent and Robert Rowe, whose insightful, thought-provoking input made this dissertation come to fruition. I am also everlastingly grateful to Judy Klein, for always being available to listen and share her listening. As well as to Aye, for her endless support and her helping me maintain hope in developing this project. I would also like to thank my parents, Ana and Hector, who inspired and nurtured my interest in music from a young age, and my sister Flor and my brother Joaquin who were always with me, next to every word. Finally, this dissertation could not have been possible without the support and help of my friends, some of which I would like to mention by name because they affected directly certain aspects of this text. I would like to thank Matias Delgadino and Lucia Simonelli, for their continuous layers of abstraction; Matias Borg Oviedo, for those endless conversations; Ioannis Angelakis, for his glass sculptures. v Preface Dataloquy (you don’t need to write this) (The initial title that explains how databases are ev- erywhere) The name of the database. (Now think of the data, and the base, and how these relate) These words must point to two things placed one inside the other. (Is it base in data or is it data in base?) The base (of the data). A basement, a basis, a basic foundation for data. The house where data resides. (Is it the base or the data that is economical? Or both?) The addresses in which they are located. (Clearly, you are talking about pointers) The discretized space that guards data. (Guardians of space? This starts to look like a bad sci-fi thing. ) Data as in the plurality of datum, and database as the plain (planicie in spanish) or the lattice upon which the address space is laid for data. (Data under house arrest) Datum as in bit, as the zero or the one, and nothing in between (Are you sure there is nothing in the middle?) Data as in bytes, and the eight bits that follow it around (like ducklings without mom [pata in spanish]) Data as in data types, the many names of the binary words representing the values of almost all numbers (and this ‘almost’ is still more than enough (Some would disagree)). Data as in data structures and their unions, symbols, lists, tables, arrays, sequences, dictionaries, simultaneously pointing to their interfaces and their implementations and assemblage (The assembly is in order) Data as in files fichiers in french, archivos in spanish, and their kilobytes and megabytes (inside directories and folders, etc.) Data as in data flow and data streams (are there data fountains?) Data you translate from slot to slot, transmit from client to server to client, transduce to and fro with adc and dac , transcode from format to format (transgress from torrent to torrent) Data as in dataset for your algorithms to test, vi to improve, to fit, to make them more efficient, to teach them the right tendencies, to drive your models data-driven (You are driving me crazy) Data as in data banks (also its transactions and cur- rency) Data as in data corpus (Oh, so it has body?) Data as in database (finally), basing gigabytes with models meant for system management and warehouses, repositories, terabytes, their mining, and their subsequent data clouds, clusters, spacing out into the (in)famous big data leap from bit to big. vii Abstract The aim of this dissertation is to outline a framework to discuss the aesthetic agency of the database in music composition. I place my dissertation in relation to existing scholarship, artists, and de- velopers working in the fields of music composition, computer science, affect, and ontology, with emphasis on the ubiquity of databases and on the need to reflect on their practice, particularly in relation to databasing and music composition. There is a database everywhere, anytime, always already affecting our lives; it is an agent in our aesthetic and political lives just as much as we are agents in its composition and performance. Database music lives in between computers and sound. My argument is that in order to conceptualize the agency of the database in music composition, we need to trace the history of the practice, in both its technical and its artistic use, so as to find nodes of action that have an effect on the resulting aesthetics. Therefore, this dissertation is composed of two main sections. In the first part, I trace a history of database practices from three points of view. The first is from new media theory, emphasizing the intersection between the database and the body. The second is from the history of the database in computer science, giving a panoramic view of the tools and concepts behind database systems, models, structures. The third is from their use in sound practices, describing different approaches to databasing from the fields of music information retrieval, sonification, and computer music. In the second part, I discuss the agency of the database under the broader concepts of sound, self, and community. These three axes are addressed in four sections, each with a different viii perspective. First I focus on listening and present the database as a resonant subject in a networked relation and community with the human. Second, I focus on memory, comparing human mem- ory and writing with digital information storing, thus relating databasing and composition with memory, archives, and their spectrality. Third, I analyze the performativity of databasing, under- standing the database as gendered, in its temporality, repetition, and in its contingent appearance as style, skin, and timbre. In the last section, I revise the notion of music work, reflecting on the consequences of the anarchic and the inoperative in the community of database music. As an appendix, I present an open-source library for making and performing a mul- timodal database that combines computer vision and timbre analysis algorithms to generate a database of image and audio descriptors suitable for automated navigation, querying, and live audio-visual performance. ix Contents Dedication iv Acknowledgements v Preface vi Abstract viii List of Figures xv List of Tables xvii Introduction 1 I Database Art 5 1 The Database In New Media Theory 6 1.1 Database As Form . .6 1.2 A Semiotic Trap . .7 1.3 Digital Convergence . 10 1.4 Bodiless Information . 12 x 1.5 Embodying Databasing . 14 1.6 Filtering And Framing . 15 1.7 Interlude: An Embodied Database . 17 1.8 Closing Remarks . 22 2 Databasing And The History Of Databases 24 2.1 Databasing: The Performance Of The Database . 24 2.1.1 Data types and structures . 25 2.1.2 Temporality of Databasing . 26 2.1.3 Databasing and Writing . 27 2.1.4 The Von Neumann Architecture . 30 2.2 A Database Tree . 31 2.3 The Realm Of Data Structures . 34 2.4 A Brief History Of Database Models . 36 2.4.1 Hierarchical . 38 2.4.2 Network . 39 2.4.3 Relational . 40 2.4.4 Non-Relational . 41 2.4.5 Graph . 42 2.4.6 Object . 42 2.4.7 Semi-structured . 43 2.4.8 Pure Data as Database System . 44 3 Databasing Sound: Applications Of Databases In Sound 47 3.1 Music Information Retrieval . 48 3.2 Sonification . 52 3.2.1 Parameter mapping . 54 xi 3.2.2 Model-based sonification . 55 3.2.3 Artistic sonification . 55 3.2.4 Sonification Installations . 57 3.2.5 Sonification Software . 59 3.3 Computer Music . 60 3.3.1 Hierarchical environments . 61 3.3.2 Music Notation Software . 67 3.3.3 Enter Objects . 70 3.4 Intersections . 77 3.4.1 Corpus-based Approaches . 77 3.4.2 Querying Methods . 80 3.4.3 Traversing Methods . 82 3.4.4 Resource Sharing . 85 3.4.5 Closing Remarks . 88 II Database Aesthetics 91 4 Listening Databases 94 4.1 Interlude: I Am Sitting In A Room... 94 4.2 The Resonance Of A Return . 95 4.3 Resonant Network . 99 4.4 The Unworking Network . 103 5 Databases And Memory 111 5.1 The Effraction Of The Trace . 111 5.2 The Archontic Principle . 116 xii 5.3 The Spectral Database . 121 6 Performativity Of Databases 126 6.1 Gendered Database . 126 6.2 Towards The Limits . 130 6.3 Contingencies Of Style . 131 6.4 A Specter Of Authority . 137 7 Rethinking Composition 141 7.1 Interlude: Hyperbolic Reactions . 141 7.2 Working Composition .
Recommended publications
  • RDM Embedded 10-Dataflow-Datasheet
    RDMe DataFlow™ Product Data Sheet Raima Database Manager (RDM) Embedded DataFlow™ extension provides additional reliability to our time tested and dependable RDM database engine. In this DataFlow solution we have added functionality that will enable embedded system developers to develop sophisticated applications capable of moving information collected on the smallest devices up to the largest enterprise systems. Overview: In today’s world the need for the flow of information throughout the many levels of an organization is becoming even more essential to the success of a business. Tradition- ally, embedded applications have been closed systems completely isolated from the enterprise infrastructure. Typically, if data from a device is allowed into the enterprise Key New Features: the movement of the data is done via off line batch processing at periodic time Master-Slave Replication intervals. It often takes hours for these batch processes to complete, rendering the information out of date by the time it reaches key decision makers. RDM Embedded 3rd Party Database DataFlow allows for the safe real-time movement of data captured on the shop floor to Replication flow up to the enterprise providing instant actionable information to decision makers. Key Functionality: Key Benefits: Master-Slave Replication Host 1 Host 2 Host 4 Application Reliability Create applications that replicate Application data between different R R Performance e e p p l l i i c c databases on different systems, a a t t i i Efficiency In Memory o o In-Memory n n R Database E E Database e on the same system, in memory p n n l g g i c i i n n Innovation a e e t i and on disk.
    [Show full text]
  • The Life-Cycle of Data with an Eye on Integration Of
    The Life-Cycle of Data With an eye on integration of embedded devices with the Cloud, Raima CTO Wayne Warren differentiates between live, actionable information and data with ongoing value, and argues that to realise the true power of the Cloud, businesses must utilize the power of the collecting and controlling computers on the edge of the grid. The rise of the Cloud has presented companies of all sizes with new opportunities to store, manage and analyze data – easily, effectively and at low cost. Data management in the Cloud has enabled these companies to reduce their in-house systems costs and complexity, while actually gaining increased visibility on plant and processes. At the same time, third party service organisations have emerged, providing data dashboards that give companies 'live real time control' of their assets, often from remote locations, as well as historical trend analysis. Consider, for example, a company at a central location with a key asset in an entirely different or isolated location. It may be advantageous to monitor key operational data to ensure the equipment itself is not trending towards some catastrophic fault, and some performance data to ensure output is optimal. That might be relatively few sensors over all, and perhaps some diagnostics feedback from onboard control systems. But getting at that data directly might mean setting up embedded web servers or establishing some form of telemetry, and then getting that data into management software and delivering it in a means that enables it to be acted upon. How much easier to simply provide those same outputs to a Cloud-based data management provider, and then log-in to a customized dashboard that provides visualization and control, complete with alarms, actions, reports and more? And all for a nominal monthly fee.
    [Show full text]
  • Raima Database API for Labview
    PRODUCT DATA SHEET Raima Database API for LabVIEW Raima Database API for LabVIEW is an interface package to Raima Database Manager (RDM), which is a high-performance database management system optimized for operating systems commonly used within the embedded market. Both Win- dows and RT VxWorks (on the CompactRIO-9024 and Single-Board RIO) are supported in this package. The database en- gine has been developed to fully utilize multi-core processors and networks of embedded computers. It runs with minimal memory and supports both in-memory and on-disk storage. RDM provides Embedded SQL that is suitable for running on embedded computers with requirements to store live streaming data or sets of configuration parameters. Multi-Core Scalability- Efficiently use threads with transaction processing to take advantage of multicore Key Benefits: systems for optimal speed. Local RT Database Multi-Versioning Concurrency Control (MVCC) - Implement read-only transactions to see a virtual LabVIEW VI Interface snapshot of your embedded database while it is being High Performance concurrently updated. Avoids read locks to improve Interoperation multiuser performance. Multi-Core Scalability Store Databases on RT Device, In-Memory or On-Disk - Configure your database to run completely on-disk, completely in-memory, or a hybrid of both. Local storage allows disconnected and/or synchronized data operation. Windows/cRIO Interoperation - Create a database on Windows, use from both Windows and cRIO concurrent- ly. Share/Use Databases - A cRIO database may be shared, other cRIOs on same network can use it. True Global Queries - Multiple shared databases may be opened together and queried as though they are one uni- fied database.
    [Show full text]
  • Prioritizing Pull Requests
    Prioritizing pull requests Version of June 17, 2015 Erik van der Veen Prioritizing pull requests THESIS submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in COMPUTER SCIENCE by Erik van der Veen born in Voorburg, the Netherlands Software Engineering Research Group Q42 Department of Software Technology Waldorpstraat 17F Faculty EEMCS, Delft University of Technology 2521 CA Delft, the Netherlands The Hague, the Netherlands www.ewi.tudelft.nl www.q42.com c 2014 Erik van der Veen. Cover picture: Finding the pull request that needs the most attention. Prioritizing pull requests Author: Erik van der Veen Student id: 1509381 Email: [email protected] Abstract Previous work showed that in the pull-based development model integrators face challenges with regard to prioritizing work in the face of multiple concurrent pull requests. We identified the manual prioritization heuristics applied by integrators and ex- tracted features from these heuristics. The features are used to train a machine learning model, which is capable of predicting a pull request’s importance. The importance is then used to create a prioritized order of the pull requests. Our main contribution is the design and initial implementation of a prototype service, called PRioritizer, which automatically prioritizes pull requests. The service works like a priority inbox for pull requests, recommending the top pull requests the project owner should focus on. It keeps the pull request list up-to-date when pull requests are merged or closed. In addition, the service provides functionality that GitHub is currently lacking. We implemented pairwise pull request conflict detection and several new filter and sorting options e.g.
    [Show full text]
  • Raima Database Manager 12.0
    PRODUCT DATA SHEET Raima Database Manager 12.0 Raima Database Manager (RDM) is a high-performance database management system that is optimized for workgroup, real-time and embedded, and mobile operating systems. It is ideal for programming interoperating systems of networked and distributed applications and data such as those found in financial, telecom, industrial automation or medical systems. Multiple APIs and configurations provide developers a wide variety of powerful programming options and functionality. The database engine utilizes multi-core processors, runs within limited memory, and supports - - Key Features: both in memory and on disk storage. Security is provided through encryption. The database becomes an embedded part of your applications when implemented as a linkable library. Multi-Core Scalability RDM Embedded SQL has been designed for embedded systems applications, and as such it is suitable for running on a wide variety of computers and embedded operating systems many Distributed Architecture of which have limited capacities. Portability/Multi-Platform Standard Package—Performance Features Enhanced SQL Optimization Multi-Core Support—Efficiently distribute Pure and Hybrid In-Memory Database Support processing to take advantage of multi-core Operation—Configure your database to parallelism. run completely on-disk, completely in- Shared Memory Protocol memory, or a hybrid of both; combining the Multi-Versioning Concurrency Control speed of an in-memory database and the New Data Types (MVCC)—Implement read-only stability of on-disk in a single system. transactions you can read a virtual Fast! snapshot of your embedded database while Multiple Indexing Methods—Use B-Trees it is being concurrently updated. Avoid read or Hash Indexes on tables.
    [Show full text]
  • JOSH MILLER [email protected]
    CREATING VISUALS IN PROCESSING JOSH MILLER [email protected] www.josh-miller.com WHAT IS PROCESSING? • Free software: processing.org • Old... 2001 old, but constantly updated • Started at MIT • Created to teach Comp Sci, embraced by artist nerds WHAT IS PROCESSING? • Free software: processing.org • Old... 2001 old, but constantly updated • Started at MIT • Created to teach Comp Sci, embraced by artist nerds WHAT IS IT? • A java-like programming language that makes Java apps... JAVA??!? • Isn’t that just for malware and exploits? PROCESSING 2.0 • Android • “Javascript” HTML5 canvas tag • processingjs.org WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO Text feltron report WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO WHAT DOES IT DO http://tweetping.net/ WHAT DOES IT DO joshuadavis.com GENERATIVE ART • Art created by a set of rules. • Algorithmic art? CONNECTIONS • libraries • sound, video, animation, visualization, 3d, interface • http://processing.org/reference/libraries/ • hardware • kinect, arduino, sensors, cameras, serial devices, network, tablets, many screens, COMPETITORS • openFrameworks - www.openframeworks.cc • cinder - http://libcinder.org/ • max/msp - http://cycling74.com/ • vvvv - http://vvvv.org/ LEARNING PROCESSING • http://processing.org/learning/ • http://processing.org/reference/ • Books: • Learning Processing & The Nature of Code, Dan Shiffman • Processing: A Programming Handbook for Visual Designers and Artists, Reas & Fry INTRO void setup() { // runs once } void draw() { // runs 30fps... unless you tell it not to } DEMOS! • get excited. WHAT ELSE? • Anything you can do in Java you can do in Processing • libraries • syntax (oop, inheritance, etc) LEARN MORE • THE EXAMPLES MENU! • processing.org • creativeapplications.net PLUG • Teaching a processing course (“Creative Coding”) @ Kutztown this summer • M-T 1-5pm for all of June.
    [Show full text]
  • Linux-Database-Bible.Pdf
    Table of Contents Linux Database Bible..........................................................................................................................................1 Preface..................................................................................................................................................................4 The Importance of This Book.................................................................................................................4 Getting Started........................................................................................................................................4 Icons in This Book..................................................................................................................................5 How This Book Is Organized.................................................................................................................5 Part ILinux and Databases................................................................................................................5 Part IIInstallation and Configuration................................................................................................5 Part IIIInteraction and Usage...........................................................................................................5 Part IVProgramming Applications...................................................................................................6 Part VAdministrivia.........................................................................................................................6
    [Show full text]
  • CS 413 Ray Tracing and Vector Graphics
    Welcome to CS 413 Ray Tracing and Vector Graphics Instructor: Joel Castellanos e-mail: [email protected] Web: http://cs.unm.edu/~joel/ Farris Engineering Center: 2110 2/5/2019 1 Course Resources Textbook: Ray Tracing from the Ground Up by Kevin Suffern Blackboard Learn: https://learn.unm.edu/ ◼ Assignement Drop-box ◼ Discussions ◼ Grades Class website: http://cs.unm.edu/~joel/cs413/ ◼ Syllabus ◼ Projects ◼ Lecture Notes ◼ Readings Assignments 2 ◼ Source Code 2 1 Structure of the Course ◼ Studio: Each of you will, by the end of the semester, build a single, well featured ray tracer / procedural texture renderer. ◼ Stages this project total to 70% of course grade. ◼ No exams ◼ Class time (30% of course grade) : ◼ Lecture ◼ Discussion of Reading ◼ Quizzes ◼ Show & Tell ◼ 3 Code reviews 3 Language and Platform ◼ The textbook examples are all in C++: ◼ STL (Standard Template Library – this is multiplatform). ◼ wxWidgets application framework (Windows and Linux). ◼ Class examples replace wxWidgets with OpenFrameworks. ◼ Decide on an IDE. If you are using Windows, I recommend MS Visual Studio as it is an industry standard and many employers will expect you to be comfortable with it. For Linux, there are a number of good options including:, Eclipse C++, Netbeans for C/C++ Development, Code::Blocks, Sublime Text editor and others. ◼ Your project must be in an on-going repo in GitHub. This can be public or private. Building a good GitHub repo to show prospective employers is essential to a young computer 4 scientist in the current job market. 4 2 Assignment 1 ◼ For Monday, Jan 29: ▪ Read Chapters 1, 2 (skim and reference later) and 3.
    [Show full text]
  • FERREYRA BEATRIZ Profesional
    B: No, no nunca fue profesional, nunca llegó a FERREYRA BEATRIZ profesional. Pero tenía un amigo que era CORDOBA 1937 profesional, que era Hernán Pinto que él tocaba en esa época. Una familia de música pero de Pianista de formación Beatriz Ferreyra músicos tradicionales. Yo me fui y lo que yo estudió armonía y análisis con Nadia Boulanger quería hacer era dibujo y pintura. Era más bien y luego música concreta y electrónica en el dibujante. senod el GRM y la RAI, además de composición M: ¿Pero te fuiste a dónde? con Earl Brown, György Ligeti en Darmstadt. B: La primera vez me fui a Estados Unidos pero Como integrante del GRM, Ferreyra colaboró me hicieron volver porque era menor. Me quise en la elaboración del Traité des objets musicaux quedar allá y no me dejaron. Mi madre no me (1966) y los discos de Solfège de l’objet sonore dejó. Y entonces cuando fui mayor de edad dije (1967), de Pierre Schaeffer. Ha sido jurado de me voy a Francia. Yo a Francia me voy, me voy numerosos concursos de música a Europa con amigos. electroacústica. M: Un viaje exploratorio más bien Realiza investigaciones instrumentales B: Si un viaje para irme y en vez de de con Bernard Baschet y se convierte en miembro quedarme un mes me quedé 50 años. del Colegio de Compositores de la GMEB. Sus obras, esencialmente acusmáticas, nacen de M: ¿Por qué? sensaciones, percepciones, sentimientos y una B: Porque hay una presión quizás de la familia. visión personal que ella traduce en sonido. Porque en esa época me sentía que allá no iba a poder hacer nada.
    [Show full text]
  • Release Notes
    Juniper Networks Steel-Belted Radius Release Notes Release 6.0.1 November 2008 Juniper Networks, Inc. 1194 North Mathilda Avenue Sunnyvale, CA 94089 USA 408-745-2000 www.juniper.net Part Number: SBR-TD-RN601 Revision 01 Copyright © 1999–2007 Juniper Networks, Inc. All rights reserved. Printed in USA. Steel-Belted Radius, Juniper Networks, the Juniper Networks logo are registered trademark of Juniper Networks, Inc. in the United States and other countries. Raima, Raima Database Manager and Raima Object Manager are trademarks of Birdstep Technology. All other trademarks, service marks, registered trademarks, or registered service marks are the property of their respective owners. All specifications are subject to change without notice. Juniper Networks assumes no responsibility for any inaccuracies in this document. Juniper Networks reserves the right to change, modify, transfer, or otherwise revise this publication without notice. Revision History Date Description 10 June 2007 First release of Steel-Belted Radius Release 6.0.1 release notes. 1 December 2008 Updated discussion of 32-bit support for Linux and Windows operating systems. M08121 Table of Contents System Requirements ......................................................................................1 SBR Administrator.....................................................................................1 Solaris........................................................................................................1 Linux .........................................................................................................3
    [Show full text]
  • Raima Company Whitepaper Enabling Edge Applications to Move Data to the Cloud
    Raima Company Whitepaper Enabling edge applications to move data to the cloud Raima is a leading provider of OLTP high-performance, real-time • Provider of High Performance In database management systems for both in-memory and persistent Memory Database Technology storage for Edge and IOT devices. • Small footprint, cross platform Raima´s focus is high speed database solutions which are cross- database with both In-Memory platform, small footprint designed for distributed architecture in and persistent storage device resource-constrained environments. functionality • Optimized for flash & SSD by Raima Database Manager (RDM) is made to Collect, Store, Manage minimal writes to the medium and Move data securily from the devices on the edge to the Cloud. for longer lifespan Our Raima Database Manager (RDM) product is optimized to allow • Well field tested. flash and SSD devices to live longer through less writes to the medium. RDM offers a tested and well proven reliable ACID compliant database technology and employs a number of advanced solutions to meet today’s complex edge data management challenges such as storing and moving data in a timely fashion from a small low-powered IoT/IIoT embedded device up into larger cloud-based enterprise systems . CONTENTS: 1. RAIMA IN BRIEF ......................................................................................................................................................... 3 2. POTENTIAL USE CASES FOR RAIMA TO THE CLOUD .................................................................................................
    [Show full text]
  • Programming Interactivity.Pdf
    Download at Boykma.Com Programming Interactivity A Designer’s Guide to Processing, Arduino, and openFrameworks Joshua Noble Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Download at Boykma.Com Programming Interactivity by Joshua Noble Copyright © 2009 Joshua Noble. 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: Steve Weiss Indexer: Ellen Troutman Zaig Production Editor: Sumita Mukherji Cover Designer: Karen Montgomery Copyeditor: Kim Wimpsett Interior Designer: David Futato Proofreader: Sumita Mukherji Illustrator: Robert Romano Production Services: Newgen Printing History: July 2009: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Programming Interactivity, the image of guinea fowl, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. TM This book uses RepKover™, a durable and flexible lay-flat binding.
    [Show full text]