Quartz Composer Custom Patch Programming Guide Contents

Total Page:16

File Type:pdf, Size:1020Kb

Quartz Composer Custom Patch Programming Guide Contents Quartz Composer Custom Patch Programming Guide Contents Introduction to Quartz Composer Custom Patch Programming Guide 5 Organization of This Document 5 See Also 6 The Basics of Custom Patches 7 A Close Look at the Patch User Interface 7 From Custom Patch Code to Patch User Interface 10 Property and Port Data Types 14 Internal Settings 15 Custom Patch Execution 18 The QCPlugIn Template in Xcode 20 Packaging, Installing, and Testing Custom Patches 22 Writing Processor Patches 24 dotCom: Creating Domain Names 24 MIDI2Color: Mapping MIDI Values to Colors 30 Number2Color: Extending MIDI2Color 38 Packaging Two Custom Patches in a Plug-in 46 Writing Image Processing Patches 48 Getting Images From an Input Port 48 Providing Images for an Output Port 49 Histogram Operation: Modifying Color in an Image 51 Create the Xcode Project 54 Create the Interface 54 Modify the Methods for the PlugIn Class 56 Implement the Methods for the Histogram Object 58 Write the Execution Methods for the Plug-in Class 60 Write Methods for the Output Image Provider 62 Writing Consumer Patches 67 Using OpenGL in a Custom Patch 68 Rotating Square: Rendering a Texture to a Quad 68 2010-03-24 | © 2010 Apple Inc. All Rights Reserved. 2 Contents Glossary 76 Document Revision History 77 2010-03-24 | © 2010 Apple Inc. All Rights Reserved. 3 Figures, Tables, and Listings The Basics of Custom Patches 7 Figure 1-1 A variety of Quartz Composer patches 8 Figure 1-2 The Input Parameters pane for the Teapot patch 9 Figure 1-3 The Settings pane for the Date Formatter patch 10 Figure 1-4 The resulting patch 12 Figure 1-5 The time base setting for the Interpolation patch 13 Figure 1-6 Two sample Settings panes 16 Figure 1-7 The files in a Quartz Composer plug-in project 20 Table 1-1 Data type mappings 14 Listing 1-1 The subclass and properties for a custom string-processing patch 10 Listing 1-2 A routine that returns attributes for property ports 11 Listing 1-3 A routine that returns the custom patch name and description 12 Listing 1-4 Code that declares property instance variables 16 Listing 1-5 An implementation of the plugInKeys method 16 Listing 1-6 Code that implements a view controller 17 Listing 1-7 Code that overrides serialization methods for system configuration data 18 Listing 1-8 Entries in the Info.plist file 22 Writing Processor Patches 24 Figure 2-1 The dotCom custom patch 24 Figure 2-2 The spectrum of RGBA colors produced by the MIDI2Color custom patch 31 Writing Image Processing Patches 48 Figure 3-1 An RGB histogram for an image of a daisy 52 Figure 3-2 A Quartz composition that uses the Histogram Operation custom patch 53 Listing 3-1 Prototype for the vImage histogram function 53 Writing Consumer Patches 67 Figure 4-1 Consumer patches render to a destination 67 Figure 4-2 The Rotating Square custom patch 69 2010-03-24 | © 2010 Apple Inc. All Rights Reserved. 4 Introduction to Quartz Composer Custom Patch Programming Guide A patch is one of the basic elements of the Quartz Composer development tool. Similar to routines in traditional programming languages, patches are base processing units. They execute and produce a result. In Mac OS X v10.4, all patches were built-in to Quartz Composer. Starting in Mac OS X v10.5, you can create custom patches and package them as a Quartz Composer plug-in. After a plug-in is installed in the appropriate directory, the patches contained in it are available to use in the Quartz Composer workspace and by most Quartz Composer clients, and can be used in the same manner that you use built-in patches. This document shows how to create custom patches and package them as Quartz Composer plug-ins. You’ll see how to code a variety of patches from a simple string-processing patch to one that renders using OpenGL. Anyone who uses the Quartz Composer development tool and wants to create a custom patch should read this document. To get the most out of this document, you’ll need to be familiar with Quartz Composer User Guide. You’ll also need to know how to use Xcode to create an Objective-C project. Although Quartz Composer uses OpenGL when it renders, you don’t need to know OpenGL to write a custom patch unless you want to create a custom patch that renders on the GPU. This document shows how to write both non-rendering and rendering custom patches. You can use the properties feature of Objective-C 2.0 when creating a custom patch. If you are unfamiliar with properties, you’ll want to read about them before you start writing custom patches. This feature is a time saver that eliminates the need to write accessor methods. All the examples in this document use properties. See The Objective-C Programming Language. Organization of This Document This document is organized into the following chapters: ● “The Basics of Custom Patches” (page 7) describes how the patches that appear in Quartz Composer relate to the code that generates a custom patch. It provides an overview of the tasks needed to create a custom patch and package it as a plug-in. It also describes the Xcode templates that you can use to write custom patches. ● “Writing Processor Patches” (page 24) shows how to write three patches that process data—one that processes a string, another that converts a numeric value to a color, and another that shows how to configure a parameter that can’t be represented by one of the standard port data types. 2010-03-24 | © 2010 Apple Inc. All Rights Reserved. 5 Introduction to Quartz Composer Custom Patch Programming Guide See Also ● “Writing Image Processing Patches” (page 48) describes how to use input and output image protocols to create a patch that produces an image by operating on two input images. ● “Writing Consumer Patches” (page 67) discusses how to use OpenGL in a custom patch and provides instructions for writing a patch that renders a quad that you can animate. See Also The following resources are valuable to anyone writing a custom patch and packaging it as a Quartz Composer plug-in: ● Several of the sample code projects in /Developer/Examples/Quartz Composer/Plugins are custom patch projects. ● Quartz Composer User Guide describes the development tool and how to use it to create compositions. ● Quartz Composer Programming Guide shows how to perform programming tasks using the Quartz Composer framework. ● Quartz Composer Reference Collection describes all the classes and protocols in the Quartz Composer API. You’ll need to refer to this documentation as you write Quartz Composer custom patches. ● Key-Value Coding Programming Guide contains valuable information for anyone who is unfamiliar this mechanism for getting and setting values. 2010-03-24 | © 2010 Apple Inc. All Rights Reserved. 6 The Basics of Custom Patches A Quartz Composer patch is similar to a routine in a traditional programming language—a patch is a base processing unit that executes and produces a result. A custom patch is one that you write by subclassing the QCPlugIn class. To make a custom patch available in the Quartz Composer patch library, you need to package it as a plug-in—an NSBundle object—and install in the appropriate directory. If you’d like, you can package more than one custom patch in a plug-in. You don’t need to create a user interface for a custom patch. When Quartz Composer loads your plug-in, it creates the user interface automatically for each custom patch in the plug-in so that custom patches have the same look in the workspace as the patches that are built in to Quartz Composer. This chapter provides a discussion of custom patches and gives an overview of the tasks you need to perform to create a custom patch. You’ll see which aspects of your code give rise to the user interface for a custom patch. By the end of the chapter you should have a fairly good idea of how to get started writing your own custom patches. Then you can read “Writing Processor Patches” (page 24) and “Writing Consumer Patches” (page 67) to find out how to write specific kinds of patches. A Close Look at the Patch User Interface Patches in Quartz Composer all have the same basic look and feel, as you can see in Figure 1-1. The patch name is at the top of the patch, in the patch title bar. Input ports are on the left side of the patch and output ports are on the right side. Many provider patches don’t have input ports because they get data from an outside 2010-03-24 | © 2010 Apple Inc. All Rights Reserved. 7 The Basics of Custom Patches A Close Look at the Patch User Interface source, such as a mouse, keyboard, tablet, or MIDI controller. Consumer patches don’t have output ports because they render data to a destination. Processor patches have one or more input ports and one or more output ports. Figure 1-1 A variety of Quartz Composer patches 2010-03-24 | © 2010 Apple Inc. All Rights Reserved. 8 The Basics of Custom Patches A Close Look at the Patch User Interface The inspector provides access to the patch parameters. The Input Parameters pane contains the same parameters represented by the input ports. It provides the option to manually adjust input values instead of supplying values through the input ports. Compare the Teapot patch shown in Figure 1-1 (page 8) with Figure 1-2.
Recommended publications
  • Kinect in Mac: QC and Processing
    Kinect in Mac: Quartz Composer and Processing A brief tutorial by NIRTeam @ TEI Crete Contents ● Using Quartz Composer with Kinect ● Using Processing programming language with kinect ● 3D scanning using Kinect Quartz Composer (QC) ● Node-based visual programming language used mainly for processing and rendering graphics. ● Included in the Xcode developer tools package by Apple ● Quartz Composer uses OpenGL (including GLSL), OpenCL, Core Image, Core Video, JavaScript, and other technologies to build an API and a developer tool Data types inside QC Boolean - a boolean value, 0 or 1 Index - a positive integer between 0 and 2147483647 Number - a double precision floating point number String - a unicode string Color - an RGBA or CMYK quartet, or a Grayscale value Image - a 2D image of arbitrary (possibly infinite) dimensions Structure - a named or ordered collection of objects, including nested structures Virtual - any of the above Mesh - a collection of vertices, and per-vertex normals, texture coordinates, and colors in 3-space. Interaction - a valueless type used to associate user input with user-interactive elements of the composition. QC Programming QC Programming = connecting different nodes (Patches). QC Patches The patches are divided into three categories: 1. “Providers” 2. “Processors” 3. “Consumers” QC resources - http://kineme.net/ - http://quartzcomposer.com/compositions - http://www.quartzcompositions.com/ - http://guides.macrumors.com/Quartz_Composer Kinect & QC Kineme KinectTools plugin http://kineme.net/KinectTools Synapse plugin http://synapsekinect.tumblr.com/ v002 open Kinect example http://kineme.net/forum/Discussion/Programming/v002OpenKinectBeta Quartz-Composer-Open-Kinect-Plugin https://github.com/stoulouse/Quartz-Composer-Open-Kinect-Plugin UIO Kinect with TUIO client QC Plugin https://code.google.com/p/tuiokinect/ http://prdownloads.sourceforge.net/reactivision/TUIO_Quartz-1.4.zip?download Tryplex Toolkit http://code.google.com/p/tryplex/ Kinect & QC: Kineme KinectTools plugin ● Retrieves color and depth image data from the Kinect.
    [Show full text]
  • Chapter 1. Origins of Mac OS X
    1 Chapter 1. Origins of Mac OS X "Most ideas come from previous ideas." Alan Curtis Kay The Mac OS X operating system represents a rather successful coming together of paradigms, ideologies, and technologies that have often resisted each other in the past. A good example is the cordial relationship that exists between the command-line and graphical interfaces in Mac OS X. The system is a result of the trials and tribulations of Apple and NeXT, as well as their user and developer communities. Mac OS X exemplifies how a capable system can result from the direct or indirect efforts of corporations, academic and research communities, the Open Source and Free Software movements, and, of course, individuals. Apple has been around since 1976, and many accounts of its history have been told. If the story of Apple as a company is fascinating, so is the technical history of Apple's operating systems. In this chapter,[1] we will trace the history of Mac OS X, discussing several technologies whose confluence eventually led to the modern-day Apple operating system. [1] This book's accompanying web site (www.osxbook.com) provides a more detailed technical history of all of Apple's operating systems. 1 2 2 1 1.1. Apple's Quest for the[2] Operating System [2] Whereas the word "the" is used here to designate prominence and desirability, it is an interesting coincidence that "THE" was the name of a multiprogramming system described by Edsger W. Dijkstra in a 1968 paper. It was March 1988. The Macintosh had been around for four years.
    [Show full text]
  • Mac OS X Technology Overview
    Mac OS X Technology Overview 2006-06-28 Finder, Safari, Spotlight, Tiger, and Xserve Apple Inc. are trademarks of Apple Inc. © 2004, 2006 Apple Computer, Inc. Adobe, Acrobat, and PostScript are All rights reserved. trademarks or registered trademarks of Adobe Systems Incorporated in the U.S. No part of this publication may be and/or other countries. reproduced, stored in a retrieval system, or transmitted, in any form or by any means, Intel and Intel Core are registered mechanical, electronic, photocopying, trademarks of Intel Corportation or its recording, or otherwise, without prior subsidiaries in the United States and other written permission of Apple Inc., with the countries. following exceptions: Any person is hereby Java and all Java-based trademarks are authorized to store documentation on a trademarks or registered trademarks of Sun single computer for personal use only and Microsystems, Inc. in the U.S. and other to print copies of documentation for countries. personal use provided that the OpenGL is a registered trademark of Silicon documentation contains Apple’s copyright Graphics, Inc. notice. PowerPC and and the PowerPC logo are The Apple logo is a trademark of Apple Inc. trademarks of International Business Use of the “keyboard” Apple logo Machines Corporation, used under license (Option-Shift-K) for commercial purposes therefrom. without the prior written consent of Apple UNIX is a registered trademark of The Open may constitute trademark infringement and Group unfair competition in violation of federal and state laws. Simultaneously published in the United States and Canada. No licenses, express or implied, are granted with respect to any of the technology Even though Apple has reviewed this document, APPLE MAKES NO WARRANTY OR described in this document.
    [Show full text]
  • Creating Mac Widgets with Dashcode Authors of Apress’S Firstpress Series Is Your Source for Understanding Cutting-Edge Technology
    BOOKS FOR PROFESSIONALS BY PROFESSIONALS® Available as a PDF Electronic Book Creating Mac Widgets with Dashcode Mac Creating Authors of Apress’s firstPress series is your source for understanding cutting-edge technology. Short, highly or Print On Demand Assembly Language Magic focused, and written by experts, Apress’s firstPress books save you time and effort. They contain C# Essentials the information you could get based on intensive research yourself or if you were to attend a Debugging C++ conference every other week—if only you had the time. They cover the concepts and techniques that will keep you ahead of the technology curve. Apress’s firstPress books are real books, in your HTML 4.0 User’s Resource choice of electronic or print-on-demand format, with no rough edges even when the technology Data Structures with STL itself is still rough. You can’t afford to be without them. Compact Guide to Visual Basic 4 Visual C++ 6: The Complete Reference Creating plus 30 other titles Creating Mac Widgets with Dashcode Dear Reader, We have taught a lot of programming courses and written a lot of programming books in our careers, but this time we felt that Mac users would benefit the most by know- ing how to develop widgets with Dashcode rather than laboring over programming languages and endless pages of code. Mac Widgets Our first goal in this short book is to introduce you to the major significant compo- nents of the Dashcode product and quickly teach you how to develop some interesting and exciting widgets. The first half of the book concentrates on Dashcode templates and shows you how to use the stock templates, with just a little modification, to create your own unique widgets.
    [Show full text]
  • Core Animation for Mac OS X and the Iphone
    Prepared exclusively for Ki Wan Han What readers are saying about Core Animation for Mac OS X and the iPhone Animation isn’t “eye candy.” It’s about making GUI experiences less arbitrary and more comprehensible. The developers of Apple’s Core Animation get this, and so does Bill Dudney. His book offers a deep, thoughtful guide to the API and the ideas behind it. Chris Adamson Author of QuickTime for Java: A Developer’s Notebook It’s great to see a book for Mac developers that focuses on one topic and does it well. Its pace is excellent and will allow you to have sim- ple animations running in minutes. As the book goes deeper into its subject, it presents you with just the right amount of information to understand what you are doing so you don’t feel like you are just fol- lowing instructions, yet it never turns into a dry reference manual that overloads you with unnecessary detail. Steve (“Scotty”) Scott The Mac Developer Network (http://www.macdevnet.com) Finally! The comprehensive how-to guide we’ve been waiting for on all our Core Animation needs. Eric Wing Developer As an early adopter of Core Animation technology for the creation of Videator, I have but one regret: if only I had had Bill’s book, I would have finished it in half the time! Andrew Stone CEO, stone.com Prepared exclusively for Ki Wan Han Core Animation is an exciting new library for developers on both the iPhone and the Mac. Bill Dudney’s book makes a great companion for Cocoa programmers looking to add it to their bag of developer tricks.
    [Show full text]
  • Aesthetic Programming for Kids of All Ages Dethe Elza
    Aesthetic Programming for kids of all ages Dethe Elza http://livingcode.org/ Everyone can learn enough programming to have fun and make pretty pictures, and by learning they can take better control over the computers in their lives. Javascript is the new Basic Basic was available with every computer, and many kids learned to program because they had this widely available, easy to learn language. Now Javascript is available on every web browser, making it the most broadly available programming language on the planet. Javascript is the new Python Much as I love Python, Javascript is very nearly as easy to learn and use as Python, but has the advantages of running in the browser and having standard UI and drawing tools (HTML and the canvas tag). Example: Algorithmic Ink http://www.azarask.in/projects/algorithm-ink/ Aza Raskin has ported the Context Free language to Javascript, bringing beautiful generative graphics to the browser Example: Processing.js http://livingcode.org/project/processing/#sine_wave John Resig has ported the Processing language to run on top of Javascript, bringing generative and algorithmic graphics to the browser and making graphics programming much easier A lot is missing • Filesystem access • 3rd party libraries • 3D • Sound (MIDI, synthesis) • Lots of stuff, really The browser is in some ways defined by its limits. Those limits are changing fast. At one time it was predicted that image processing was one application that would be forever restricted to desktop applications, but basic image processing can be done in the browser now. The benefits are huge • Everywhere • Accessible to anyone, anywhere • Networking built in • GUI built in • Database built in Something lost and something gained.
    [Show full text]
  • Daniel Mai | Design Portfolio
    DANIEL MAI [email protected] product designer www.danielmaidesign.com Skills UX & UI Design Adobe Illustrator Quartz Composer Concept Development Adobe InDesign HTML, CSS Product Strategy Adobe After Effects JavaScript, JQuery Information Architecture Sketch Processing, Arduino Interactive Prototyping Principle Python, MATLAB User Research & Testing Origami Studio SolidWorks, Pro/E Adobe Photoshop Framer Cinema 4D Experience Apple 02/2017 - Present Product Designer Currently working on the consumer apps team designing Apple’s iWork productivity suite which includes Keynote, Pages, and Numbers. The design work spans across multiple Apple software platforms including iOS, Mac, and iCloud. Apple 05/2016 - 09/2016 UX and Visual Design Intern Produced visuals for iOS 10 Human Interface Guidelines (HIG) and developed CarPlay HIG for auto OEMs which included app UI concept designs and guidance about platform conventions, app architecture, system and physical controls, and visual design. Facebook 01/2016 - 04/2016 Product Design Intern Worked as a product designer on a project for the creative tools team along with a PM and a team of engineers to research, design, test, and ship iterations of a new content posting experience surrounding personal expression. Nest 05/2015 - 08/2015 UX Design Intern and Kleiner Perkins Design Fellow Developed a design proposal to implement a set of key in-app experiences for Nest products, ideated and prototyped in design sprints of future products, and developed specs and facilitated design fixes for the Nest app across multiple platforms. Nissan 08/2014 - 12/2014 UX and Visual Design Intern Helped establish an in-house HMI (human-machine interface) development team for Nissan and conducted design research, ideation, prototyping, and testing to determine future HMI experiences for the Infiniti luxury brand.
    [Show full text]
  • Getting Started with Scripting & Automation
    Introduction Technology Overview Mac OS X supports scripting languages that include AppleScript, JavaScript, Perl, PHP, Ruby, Python, and various shell script dialects. To move beyond the standard features of these languages, Mac OS X provides programming interfaces so that developers can make their applications user scriptable (or OSA compliant). This allows you, for example, to use AppleScript, a native Mac OS X scripting language, to write scripts that combine features from Mac OS X Finder, Apple applications such as Mail, iTunes, and QuickTime Player, and scriptable third-party applications such as web, database, and spreadsheet products. By integrating scripting support with many Apple technologies, Mac OS X can help you automate tasks ranging from system administration, to web content creation, to implementation of complex multiapplication workflows. Scripting environments that are bridged to the Mac OS X Objective-C runtime (including Ruby, through RubyCocoa, Python, through PyObjC, and AppleScript, through AppleScript Studio) can access Objective-C frameworks, including Apple’s Cocoa framework. Through the technology of framework metadata, these bridges can also provide access to functions and data types in most C- language frameworks. Other Apple and open source software bridges make it easier to take advantage of features ofered by scriptable applications. For example, Scripting Bridge—available starting in Mac OS X version 10.5 (Leopard)—allows Cocoa applications or other Objective-C code to efciently access scriptable applications using native Objective-C syntax. Scripting languages such as Ruby and Python can also use Scripting Bridge in Leopard; in addition, they have their own open source bridges (RubyOSA and py-appscript) to scriptable applications running in Leopard or Tiger.
    [Show full text]
  • Learning Core Audio: a Hands-On Guide to Audio Programming For
    ptg7913098 Learning Core Audio ptg7913098 "EEJTPO8FTMFZ -FBSOJOH 4FSJFT 7JTJU LQIRUPLWFRPOHDUQLQJVHULHV GPS B DPNQMFUF MJTU PG BWBJMBCMF QVCMJDBUJPOT ptg7913098 5IF $GGLVRQ:HVOH\ /HDUQLQJ 6HULHV JT B DPMMFDUJPO PG IBOETPO QSPHSBNNJOH HVJEFT UIBU IFMQ ZPV RVJDLMZ MFBSO B OFX UFDIOPMPHZ PS MBOHVBHF TP ZPV DBO BQQMZ XIBU ZPVWF MFBSOFE SJHIU BXBZ &BDI UJUMF DPNFT XJUI TBNQMF DPEF GPS UIF BQQMJDBUJPO PS BQQMJDBUJPOT CVJMU JO UIF UFYU 5IJT DPEF JT GVMMZ BOOPUBUFE BOE DBO CF SFVTFE JO ZPVS PXO QSPKFDUT XJUI OP TUSJOHT BUUBDIFE .BOZ DIBQUFST FOE XJUI B TFSJFT PG FYFSDJTFT UP FODPVSBHF ZPV UP SFFYBNJOF XIBU ZPV IBWF KVTU MFBSOFE BOE UP UXFBL PS BEKVTU UIF DPEF BT B XBZ PG MFBSOJOH 5JUMFT JO UIJT TFSJFT UBLF B TJNQMF BQQSPBDI UIFZ HFU ZPV HPJOH SJHIU BXBZ BOE MFBWF ZPV XJUI UIF BCJMJUZ UP XBML PGG BOE CVJME ZPVS PXO BQQMJDBUJPO BOE BQQMZ UIF MBOHVBHF PS UFDIOPMPHZ UP XIBUFWFS ZPV BSF XPSLJOH PO Learning Core Audio A Hands-On Guide to Audio Programming for Mac and iOS ptg7913098 Chris Adamson Kevin Avila Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Cape Town • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products Editor-in-Chief are claimed as trademarks. Where those designations appear in this book, and the publish- Mark Taub er was aware of a trademark claim, the designations have been printed with initial capital Senior Acquisitions letters or in all capitals. Editor The authors and publisher have taken care in the preparation of this book, but make no Trina MacDonald expressed or implied warranty of any kind and assume no responsibility for errors or omis- Development sions.
    [Show full text]
  • Magnet Download Software Pc Magnet for Mac
    magnet download software pc Magnet for Mac. Magnet is a good, trial version software only available for Mac, belonging to the category Audio & Video with subcategory Plug-ins Libraries & Effects and has been created by Ex-cinder. More about Magnet. The current version of the software is 1.0.3 and its last update was on 2/01/2007. It's available for users with the operating system Mac OS X and former versions, and it is only available in English. Magnet is a program that takes up less storage space than most programs in the category Audio & Video. It's a software mostly downloaded in United States, Germany, and Singapore. Since the software was added to our catalog in 2007, it has managed to reach 10,967 downloads, and last week it gained 12 downloads. Author's review. Magnet is the easiest way to customize your movies and share them with your friends. With advanced motion tracking, video compositions and special effects can be defined over the sequence, that evolves depending on the content of the movie. Using Magnet, you are able attach a picture or animation to a movie (think of tatoo), to define a blur zone that will follow the eyes of a person, or even to emit particles from moving objects. With Magnet, you can add special effects such as replacing your own head with a cat head. More generally, you can attach an image to moving objects in a video, or attach animation, particles, or black (or blur) zones or even custom Quartz Composer animations.
    [Show full text]
  • Xserve Technology Overview January 2008 Technology Overview  Xserve
    Xserve Technology Overview January 2008 Technology Overview Xserve Contents Page 4 Introduction Page 5 Product Overview Key Features Page 7 Performance Overview Java Server Performance Processor Performance Memory Performance Storage Performance File Server Performance Page 1 Quad-Core Intel Xeon Processors Enhanced Intel Core Microarchitecture 12MB On-Die L2 Cache Dual Independent System Buses Reduced Idle Power High-Performance Floating-Point Division Enhanced 128-Bit SSE4 SIMD Engine Page 14 High-Bandwidth Server Architecture Dual Independent 1600MHz Frontside Buses Advanced FB-DIMM Memory Technology High-Performance PCI Express Expansion Industry-Standard Connectivity Page 18 Flexible Storage Options SATA Drive Technology SAS Drive Technology Apple Drive Modules Software and Hardware RAID Options Fibre Channel Page 22 Integrated Lights-Out Remote Management Anywhere, Anytime Monitoring and Control Dedicated Monitoring Hardware Server Monitor Software Innovative Remote Management Apple Remote Desktop Technology Overview Xserve Page 6 Mac OS X Server v10.5 Leopard UNIX Certified Foundation Optimized for Multicore Intel Processors 64-Bit Computing Advanced Networking Architecture Comprehensive Built-in Services Powerful Workgroup Management Services Innovative Collaborative Services Software Development with Xcode 3 Page 1 Service, Support, and Training Options AppleCare Premium Service and Support Plan AppleCare Service Parts Kit Apple Maintenance Program Mac OS X Server Software Support Training and Certification Programs Page 33
    [Show full text]
  • Live Programming for Mobile Application Development
    IT 13 076 Examensarbete 45 hp November 2013 Live Programming for Mobile Application Development Paolo Boschini Institutionen för informationsteknologi Department of Information Technology Abstract Live Programming for Mobile Application Development Paolo Boschini Teknisk- naturvetenskaplig fakultet UTH-enheten Live Programming is a style of programming where the result of editing code can be immediately seen. This approach differs from the traditional edit-compile-run Besöksadress: development model, as it reduces the gap between the meaning of the program Ångströmlaboratoriet Lägerhyddsvägen 1 representation and its behaviour. By giving immediate feedback, live coding can Hus 4, Plan 0 speed-up the development cycle, enable exploratory programming, and give a better understanding of a program. The gap is especially notable in mobile development, Postadress: where the development cycle also includes the deploy to device step. Live Box 536 751 21 Uppsala Programming has the potential to make mobile development both easier and faster. The goal of this project is to investigate if a Live Programming environment can Telefon: speed-up and make mobile development easier, by building and testing a working 018 – 471 30 03 prototype of a Live programming tool. The results of building and testing the working Telefax: system with users show that live editing speed is achievable for basic mobile 018 – 471 30 00 applications and that the interviewed developers found live feedback valuable. Hemsida: http://www.teknat.uu.se/student Handledare: Mikael Kindborg Ämnesgranskare: Arnold Pears Examinator: Ivan Christoff IT 13 076 Sponsor: MoSync Tryckt av: Reprocentralen ITC Acknowledgements First and foremost, I would like to thank my supervisor Mikael Kindborg for his extensive guidance and immeasurable patience.
    [Show full text]