Grierson, Mick and Fiebrink, Rebecca. 2018. User-Centred Design Actions for Lightweight Evaluation of an Interactive Machine Learning Toolkit

Total Page:16

File Type:pdf, Size:1020Kb

Grierson, Mick and Fiebrink, Rebecca. 2018. User-Centred Design Actions for Lightweight Evaluation of an Interactive Machine Learning Toolkit Bernardo, Francisco; Grierson, Mick and Fiebrink, Rebecca. 2018. User-Centred Design Actions for Lightweight Evaluation of an Interactive Machine Learning Toolkit. Journal of Science and Technology of the Arts (CITARJ), 10(2), ISSN 1646-9798 [Article] (In Press) http://research.gold.ac.uk/23667/ The version presented here may differ from the published, performed or presented work. Please go to the persistent GRO record above for more information. If you believe that any material held in the repository infringes copyright law, please contact the Repository Team at Goldsmiths, University of London via the following email address: [email protected]. The item will be removed from the repository while any claim is being investigated. For more information, please contact the GRO team: [email protected] Journal of Science and Technology of the Arts, Volume 10, No. 2 – Special Issue eNTERFACE’17 User-Centred Design Actions for Lightweight Evaluation of an Interactive Machine Learning Toolkit Francisco Bernardo Mick Grierson Rebecca Fiebrink Department of Computing Department of Computing Department of Computing Goldsmiths, University of London Goldsmiths, University of London Goldsmiths, University of London London SE14 6NW London SE14 6NW London SE14 6NW ----- ----- ----- [email protected] [email protected] [email protected] ----- ----- ----- ABSTRACT KEYWORDS Machine learning offers great potential to developers User-centred Design; Action Research; Interactive and end users in the creative industries. For Machine Learning; Application Programming example, it can support new sensor-based Interfaces; Toolkits; Creative Technology. interactions, procedural content generation and end- user product customisation. However, designing ARTICLE INFO machine learning toolkits for adoption by creative Received: 03 April 2018 developers is still a nascent effort. This work focuses Accepted: 09 May 2018 on the application of user-centred design with Published: 11 July 2018 creative end-user developers for informing the https://dx.doi.org/10.7559/citarj.v10i2.509 design of an interactive machine learning toolkit. We introduce a framework for user-centred design 1 | INTRODUCTION actions that we developed within the context of an Recent developments in artificial intelligence are European Union innovation project, RAPID-MIX. We generating a surge of interest around making illustrate the application of the framework with two machine learning (ML) more accessible to new actions for lightweight formative evaluation of our groups of people—particularly people who are not toolkit—the JUCE Machine Learning Hackathon and ML experts—for problem-solving and practical the RAPID-MIX API workshop at eNTERFACE’17. applications in various domains. However, using ML We describe how we used these actions to uncover is still often difficult for those who are not ML experts conceptual and technical limitations. We also or data scientists. Nonetheless, as with other discuss how these actions provided us with a better computer technologies that have seen mass understanding of users, helped us to refine the adoption (e.g., email interfaces, word processing scope of the design space, and informed software, web technologies, etc.), broader adoption improvements to the toolkit. We conclude with a of ML can be facilitated by improving the usability of reflection about the knowledge we obtained from tools for employing ML. applying user-centred design to creative technology, in the context of an innovation project in the creative Many software developers within the creative industries. industries, as well as many non-professional CITARJ 2-25 developers working with creative technology, can framework we devised to employ user-centred benefit from ML techniques. For instance, ML can design techniques systematically. We describe two facilitate the analysis of audio, visual, and sensor user interventions that involved different user data. ML can support the creation of new systems groups, methods and data collection strategies. for embodied interaction and expression, as well as Finally, we discuss the emerging knowledge about provide new creative workflows for rapid prototyping the application of user-centred design in the context and product customisation (Hartmann et al., 2007; of innovation projects and creative technology. Fiebrink, Cook, & Trueman, 2011; Katan, Grierson, & Fiebrink, 2015). 2 | BACKGROUND WORK This paper describes the development of new ML 2.1 USER-CENTRED DESIGN tools within the context of a European Commission- User-centred design (UCD), a term coined by funded “Innovation Action”—a joint effort between Norman and Draper (1986), is a design approach academic institutions and companies aimed at based on understanding users, their tasks and technology transfer and the production of new or environments. UCD has been characterised as improved products or services. This project, called “philosophy and methods, which focus on designing RAPID-MIX (“Realtime Adaptive Prototyping for for and involving users in the design of computerised Industrial Design of Multimodal Interactive systems” (Abras, Maloney-Krichmar, & Preece, eXpressive technology”), has involved a consortium 2004). of three European research labs and five small and medium-sized enterprises (SMEs) collaborating in When adopting UCD, we look for ways to better the development of creative technology tools for understand users, their characteristics, skills and rapid prototyping and product development. Central behaviour in specific tasks. Users are at the centre to RAPID-MIX’s goals is the creation of new of this process; they are involved at an early stage machine learning tools targeting developers in the and throughout the design process. This approach creative industries. enables the design team to communicate and negotiate a better and shared understanding of the A user-centred approach to design has been critical right problem, and to reason about and inform to ensure that these new tools are usable and useful design decisions for the right solution (Monk, 2007). for creative developers. The needs of creative However, Norman notes that in UCD, “even though developers using ML are not well-understood. ML the ideal can seldom be met in practice, it is always presents unique challenges to developers (Patel et good to aim for the ideal, but to be realistic about the al., 2010), and the needs of people employing time and budgetary challenges” (2013, p. 239). technology used in design and other creative practices are often distinct from people engaging in According to Ritter, Baxter and Churchill (2014), activities with more well-defined outcomes (Cherry & UCD has a broader focus, greater emphasis on the Latulipe, 2014). Further, the design of software user, and lesser use of formal methods for application programming interfaces (APIs) presents requirements gathering and specification than other distinct challenges from other design processes in approaches, such as human factors and which user-centred methodologies are often used ergonomics, or socio-technical systems design. (e.g., the design of end-user-facing graphical They claim that adopting a user-centred approach interfaces) (Myers & Stylos, 2016). In RAPID-MIX, can help to address essential design problems and we have thus needed to carefully craft user-centred lead to systems that are more useful, usable and methodologies appropriate to the design of our new satisfying. It can help designers overcome errors or ML tools, within the additional constraints of a issues that arise from relying on their personal complex project with multiple academic and industry assumptions, experience or intuition. Ritter, Baxter partners. and Churchill argue that, on the one hand, UCD leads to financial savings, as iteratively refining The paper is structured as follows. In the following designs can lead to fewer problems in the final section, we review prior work in user-centred design product. On the other hand, though, UCD entails its and interactive machine learning. We then present own costs, and UCD does not guarantee the our main adopted research methodology and the success of a product: while “the lack of usability can CITARJ 2-26 Journal of Science and Technology of the Arts, Volume 10, No. 2 – Special Issue eNTERFACE’17 be a sufficient reason for failure”, “usability is neither model (e.g., showing that certain actions performed a necessary nor sufficient condition for success” (p. with a sensor should result in certain sounds or 14). The value of UCD may be assessed by game commands). Users can iteratively steer the estimating its return on investment (ROI)—the extent behaviour of the trained model by modifying these to which the time and effort spent doing user training examples. research provide worthwhile benefits; ROI is highly valued but also often difficult to measure and to Previous research on IML has mostly focused on manage (Ritter et al., 2014). Holtzblatt, Wendell and designing graphical user interfaces for end-user Wood (2004) also refer to the ROI as an important interaction with learning systems. This includes criterion for the adoption of UCD practices in interfaces that enable domain expert users (who organisational contexts. may have little or no machine learning expertise) to steer models by providing new training examples To avoid complicated, time-consuming and (Fails & Olsen, 2003; Fiebrink et al., 2011), adjusting expensive techniques for ensuring usability of a new misclassification costs (Kapoor et al., 2010),
Recommended publications
  • Institut Für Musikinformatik Und Musikwissenschaft
    Institut für Musikinformatik und Musikwissenschaft Leitung: Prof. Dr. Christoph Seibert Veranstaltungsverzeichnis für das Sommersemester 2021 Stand 9.04.2021 Vorbemerkung: Im Sommersemester 2021 werden Lehrveranstaltungen als Präsenzveranstaltungen, online oder in hybrider Form (Präsenzveranstaltung mit der Möglichkeit auch online teilzunehmen) durchgeführt. Die konkrete Durchführung der Lehrveranstaltung hängt ab von der jeweils aktuellen Corona-Verordnung Studienbetrieb. Darüber hinaus ausschlaggebend sind die Anzahl der Teilnehmerinnen und Teilnehmer, die maximal zulässige Personenzahl im zugewiesenen Raum und inhaltliche Erwägungen. Die vorliegenden Angaben hierzu entsprechen dem aktuellen Planungsstand. Für die weitere Planung ist es notwendig, dass alle, die an einer Lehrveranstaltung teilnehmen möchten, sich bis Mittwoch, 07.04. bei der jeweiligen Dozentin / dem jeweiligen Dozenten per E-Mail anmelden. Geben Sie bitte auch an, wenn Sie aufgrund der Pandemie-Situation nicht an Präsenzveranstaltungen teilnehmen können oder möchten, etwa bei Zugehörigkeit zu einer Risikogruppe. Diese Seite wird in regelmäßigen Abständen aktualisiert, um die Angaben den aktuellen Gegebenheiten anzupassen. Änderungen gegenüber früheren Fassungen werden markiert. Musikinformatik Prof. Dr. Marc Bangert ([email protected]) Prof. Dr. Paulo Ferreira-Lopes ([email protected]) Prof. Dr. Eckhard Kahle ([email protected]) Prof. Dr. Christian Langen ([email protected]) Prof. Dr. Damon T. Lee ([email protected]) Prof. Dr. Marlon Schumacher ([email protected]) Prof. Dr. Christoph Seibert ([email protected]) Prof. Dr. Heiko Wandler ([email protected]) Tobias Bachmann ([email protected]) Patrick Borgeat ([email protected]) Anna Czepiel ([email protected]) Dirk Handreke ([email protected]) Daniel Höpfner ([email protected]) Daniel Fütterer ([email protected]) Rainer Lorenz ([email protected]) Nils Lemke ([email protected]) Alexander Lunt ([email protected]) Luís A.
    [Show full text]
  • Graphical Design of Physical Models for Real-Time Sound Synthesis
    peter vasil GRAPHICALDESIGNOFPHYSICALMODELSFOR REAL-TIMESOUNDSYNTHESIS Masterarbeit Audiokommunikation und -technologie GRAPHICALDESIGNOFPHYSICALMODELS FORREAL-TIMESOUNDSYNTHESIS Implementation of a Graphical User Interface for the Synth-A-Modeler compiler vorgelegt von peter vasil Matr.-Nr.: 328493 Technische Universität Berlin Fakultät 1: Fachgebiet Audiokommunikation Abgabe: 25. Juli 2013 Peter Vasil: Graphical Design of Physical Models for Real-Time Sound Synthesis, Implementation of a Graphical User Interface for the Synth- A-Modeler compiler, © July 2013 supervisors: Prof. Dr. Stefan Weinzierl Dr. Edgar Berdahl ABSTRACT The goal of this Master of Science thesis in Audio Communication and Technology at Technical University Berlin, is to develop a Graph- ical User Interface (GUI) for the Synth-A-Modeler compiler, a text-based tool for converting physical model specification files into DSP exter- nal modules. The GUI should enable composers, artists and students to use physical modeling intuitively, without having to employ com- plex mathematical equations normally necessary for physical model- ing. The GUI that will be developed in the course of this thesis allows the creation of physical models with graphical objects for physical masses, links, resonators, waveguides, terminations, and audioout objects. In addition, this tool will be used to create a model for an Arabic oud to demonstrate its functionality. ZUSAMMENFASSUNG Das Ziel dieser Master Arbeit am Fachgebiet Audiokommunikation der TU Berlin, ist die Entwicklung einer graphischen Umgebung für die textbasierte Software, Synth-A-Modeler compiler, welche es erlaubt, ein speziell dafür entwickeltes Datei Format für physikalische Mod- elle, in externe DSP Module umzuwandeln. Die Software macht es Komponisten, Künstlern und Studenten möglich, physikalische Modellierung intuitiv zu anzuwenden, ohne die komplexen mathe- matischen Formeln, welche normalerweise für physikalische Model- lierung nötig sind, anwenden zu müssen.
    [Show full text]
  • Audio Software Developer (F/M/X)
    Impulse Audio Lab is an audio company based in the heart of Munich. We are an interdisciplinary team of experts in interactive sound design and audio software development, working on innovative and pioneering projects focused on sound. We are looking for a Software Developer (f/m/x) for innovative audio projects You are passionate about audio and DSP algorithms and want to work on new products and solutions. The combination of audio processing and e-mobility sounds exciting to you. You want to solve complex problems through state-of-the-art software solutions and apply your knowledge and expertise to all aspects of the software development lifecycle. What are you waiting for? These could be your future responsibilities: • Handling complex audio software projects, from conception and architecture to implementation • Working on both client-oriented projects as well as our own growing product portfolio • Development, implementation and optimization of new algorithms for processing and generating audio • Sharing your experiences and knowledge with your colleagues This should be you: • You are educated to degree level or have equivalent experience in relevant fields such as Electrical Engineering, Media Technology or Computer Science • You have multiple years of experience programming audio software in C/C++, using frameworks such as Qt or JUCE and Audio Plug-in APIs • You are a team player and are also comfortable taking responsibility for your own projects • You are able to work collaboratively, from requirements to acceptance and in the corresponding tool landscape (Git, unit testing, build systems, automation, debugging, etc.) This could be a plus: • You have programming experience on embedded architectures (e.g.
    [Show full text]
  • Cross-Platform 1 Cross-Platform
    Cross-platform 1 Cross-platform In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms.[1] [2] Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms. For example, a cross-platform application may run on Microsoft Windows on the x86 architecture, Linux on the x86 architecture and Mac OS X on either the PowerPC or x86 based Apple Macintosh systems. A cross-platform application may run on as many as all existing platforms, or on as few as two platforms. Platforms A platform is a combination of hardware and software used to run software applications. A platform can be described simply as an operating system or computer architecture, or it could be the combination of both. Probably the most familiar platform is Microsoft Windows running on the x86 architecture. Other well-known desktop computer platforms include Linux/Unix and Mac OS X (both of which are themselves cross-platform). There are, however, many devices such as cellular telephones that are also effectively computer platforms but less commonly thought about in that way. Application software can be written to depend on the features of a particular platform—either the hardware, operating system, or virtual machine it runs on.
    [Show full text]
  • Structural Equation Modeling Analysis of Etiological Factors in Social Anxiety
    Louisiana State University LSU Digital Commons LSU Historical Dissertations and Theses Graduate School 1997 Structural Equation Modeling Analysis of Etiological Factors in Social Anxiety. Michele E. Mccarthy Louisiana State University and Agricultural & Mechanical College Follow this and additional works at: https://digitalcommons.lsu.edu/gradschool_disstheses Recommended Citation Mccarthy, Michele E., "Structural Equation Modeling Analysis of Etiological Factors in Social Anxiety." (1997). LSU Historical Dissertations and Theses. 6505. https://digitalcommons.lsu.edu/gradschool_disstheses/6505 This Dissertation is brought to you for free and open access by the Graduate School at LSU Digital Commons. It has been accepted for inclusion in LSU Historical Dissertations and Theses by an authorized administrator of LSU Digital Commons. For more information, please contact [email protected]. INFORMATION TO USERS This manuscript has been reproduced from the microfilm master. UMI films the text direct^ from the original or copy submitted. Thus, some thesis and dissotation copies are in ^pewriter fiice; while others may be from aty type o f computer printer. The qnalltyr o f this rqirodnction is dependent npon the quality of the copy submitted. Broken or indistinct print, colored or poor quality illustrations and photogrtqihs, print bleedthrough, substandard margins, and improper alignment can adversely aflfect rq>roduction. In the unlikely event that the author did not send UMI a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletioiL Oversize materials (e g., maps, drawings, charts) are reproduced by sectioning the original, b%inning at the upper left-hand comer and continuing from left to right in equal sections with small overiaps.
    [Show full text]
  • A Standard Audio API for C++: Motivation, Scope, and Basic Design
    A Standard Audio API for C++: Motivation, Scope, and Basic Design Guy Somberg ([email protected]) ​ Guy Davidson ([email protected]) ​ Timur Doumler ([email protected]) ​ Document #: P1386R2 Date: 2019-06-17 Project: Programming Language C++ Audience: SG13, LEWG “C++ is there to deal with hardware at a low level, and to abstract away from it with zero overhead.” – Bjarne Stroustrup, Cpp.chat Episode #441 Abstract This paper proposes to add a low-level audio API to the C++ standard library. It allows a C++ program to interact with the machine’s sound card, and provides basic data structures for processing audio data. We argue why such an API is important to have in the standard, why existing solutions are insufficient, and the scope and target audience we envision for it. We provide a brief introduction into the basics of digitally representing and processing audio data, and introduce essential concepts such as audio devices, channels, frames, buffers, and samples. We then describe our proposed design for such an API, as well as examples how to use it. An implementation of the API is available online. Finally, we mention some open questions that will need to be resolved, and discuss additional features that are not yet part of the API as presented but will be added in future papers. 1 See [CppChat]. The relevant quote is at approximately 55:20 in the video. 1 Contents 1 Motivation 3 1.1 Why Does C++ Need Audio? 3 1.2 Audio as a Part of Human Computer Interaction 4 1.3 Why What We Have Today is Insufficient 5 1.4 Why not Boost.Audio?
    [Show full text]
  • Программирование На C++ С JUCE 4.2.X: Создание Кроссплатформенных Мультимедийных Приложений С Использованием Библиотеки JUCE На Простых Примерах
    Программирование на C++ с JUCE 4.2.x: Создание кроссплатформенных мультимедийных приложений с использованием библиотеки JUCE на простых примерах Андрей Николаевич Кузнецов Linmedsoft 2016 2 Информация о книге Кузнецов А. Н. Программирование на C++ с JUCE 4.2.x: Создание кроссплатформенных мультимедийных приложений с использованием библиотеки JUCE на простых примерах. − Алматы: Linmedsoft, 2016. − 384 с.: илл. © А. Н. Кузнецов, 2016 Книга посвящена разработке приложений для Linux, Windows, Mac OS X и iOS на языке C++ с использованием кроссплатформенной библиотеки JUCE версии 4.2.x. Подробно рассмотрены возможности, предоставляемые этой библиотекой, а также практическое применение классов, входящих в её состав, на большом количестве простых, подробно прокомментированных примеров. Книга содержит пошаговую исчерпывающую информацию по созданию приложений JUCE различной степени сложности от простейших до мультимедийных. Все права защищены. Вся книга, а также любая её часть не может быть воспроизведена каким-либо способом без предварительного письменного разрешения автора, за исключением кратких цитат, размещённых в учебных пособиях или журналах. Первая публикация: 2011, издательство «Интуит» Linmedsoft, Алматы E-mail: [email protected] 3 Предисловие Со времени публикации моего онлайн курса «Разработка кроссплатформенных приложений с использованием JUCE», где рассматривались версии 1.5 и 2.0 библиотеки, было внесено значительное число изменений как в код её классов и методов, так и в инструменты, используемые для создания проектов. Автор JUCE, Julian Storer, наконец осуществил своё намерение объединить Introjucer и Jucer в единую среду разработки с возможностью визуального проектирования интерфейса. К сожалению, это привело к тому, что код, написанный для второй версии JUCE, не всегда может компилироваться с третьей версией библиотеки. В этой связи в этой книге были переписаны примеры, использованные в курсе-предшественнике, и добавлено описание работы с обновлённой средой Introjucer / Projucer.
    [Show full text]
  • Laboratoire Sciences Et Technologies De La Musique Et Du Son (STMS) UMR 9912 Le Mot De La Direction
    Laboratoire Sciences et technologies de la musique et du son (STMS) UMR 9912 Le mot de la direction Les activités de recherche accueillies à l’Ircam s’inscrivent dans le cadre de l’unité mixte de recherche (UMR 9912) Sciences et techno- logies de la musique et du son (STMS), associant aux côtés de l’Ircam le CNRS, Sorbonne Université et le ministère de la Culture. Le nouveau contrat quinquennal 2019-2023 vise à répondre à plu- sieurs défis : l’intégration de la recherche artistique dans les struc- tures universitaires et la montée en puissance des thématiques art-science (avec, par exemple, la création des doctorats en arts) ; la restructuration du paysage parisien de la recherche ; la lisibilité et l’accroissement de l’attractivité de l’unité ; l’évolution de l’éco- système d’innovation français et le renouvellement apporté par les nouvelles méthodes de l’intelligence artificielle. L’activité de recherche à STMS est portée par sept équipes et se dis- tribue sur trois axes structurants : l’atelier du son, le corps musicien et les dynamiques créatives. L’UMR s’appuie pour les aspects contractuels et d’innovation sur le département IMR de l’Ircam (Innovation et Moyens de la recherche, sous la responsabilité d’Hugues Vinet) avec en particulier la création par l’Ircam d’un nouvel instrument de valorisation, la filiale Ircam Amplify, qui permettra une diffusion plus large des technologies issues du laboratoire. Enfin, j’ai le plaisir de souligner que depuis le début du contrat quin- quennal, STMS a accueilli 4 nouvelles ERC, ainsi que 4 nouveaux projets ANR, un résultat remarquable qui témoigne de la grande dynamique du laboratoire.
    [Show full text]
  • Ultimate++ Forum
    Subject: JUCE (widgets and library) GNU Public Licence Posted by fudadmin on Sat, 10 Dec 2005 16:41:11 GMT View Forum Message <> Reply to Message http://www.rawmaterialsoftware.com/juce/ Subject: Re: JUCE (widgets and library) GNU Public Licence Posted by captainc on Tue, 26 Dec 2006 15:54:02 GMT View Forum Message <> Reply to Message Has anyone had the change to use JUCE? How is it? Any advantages/disadvantages from U++? Subject: Re: JUCE (widgets and library) GNU Public Licence Posted by forlano on Tue, 26 Dec 2006 18:30:02 GMT View Forum Message <> Reply to Message captainc wrote on Tue, 26 December 2006 16:54Has anyone had the change to use JUCE? How is it? Any advantages/disadvantages from U++? Hello, just one disadvantage that I consider very big: if you do not intend to share your source code you need to pay a license. In U++ does not exist such limitation. Luigi Subject: Re: JUCE (widgets and library) GNU Public Licence Posted by gprentice on Tue, 26 Dec 2006 22:40:47 GMT View Forum Message <> Reply to Message Four pages of review here http://www.regdeveloper.com/2006/12/18/juce_cross_platform/ I just tried the demo. Juce doesn't provide native look and feel which I think is a big disadvantage. Juce source code probably has a few more comments in it than U++ though that doesn't seem to bother people here. I bet it doesn't have assist++ though, which is a classy tool. There's probably other important differences like U++ being database oriented and Juce being audio oriented.
    [Show full text]
  • Immediate Mode Graphical User Interfaces in C++
    Immediate Mode Graphical User Interfaces in C++ Stefano Cristiano R&D Director - Recognition Robotics C++ Day 2017 C++ Day 20172 – Dicembre,Un evento dell’Italian Modena C++ Community ImmediateTitle Text Mode? C++ Day 2017 – Un evento dell’Italian C++ Community RetainedTitle Text Mode C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode • Inheritance or Composition Hierarchy • Object Oriented • Stateful • Handle input using callbacks • Redraw only changed C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Hierarchy juce::MouseListener juce::TooltipClient juce::Component juce::SettableToolTipClient juce::ListBox juce::FileListComponent juce::TableListBox C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Hierarchy Object QWidget … QAbstractButton QFrame QProgressBar QAbstractScrollArea QLabel QCheckBox QRadioButton … QPushButton C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Object Orientation View TextBox Instance X : … Y: … // During window opening TextBox* textBox = new TextBox(); window->addControl(textBox); // ... // During window closing delete textBox; C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Statefulness View Model TextBox Instance Model Instance X : … Y: … //... Text: “12345” Text: “12345” textBox->setName(“Text”); textBox->setText(model->text); //... C++ Day 2017 – Un evento dell’Italian C++ Community Retained Mode Toolkits Prefer Inheritance: Prefer Composition: • Qt Widgets • HTML5 DOM • JUCE • Qt Quick (QML) • Windows Forms • WPF • iOS /
    [Show full text]
  • Juce Tutorial
    Juce Programming Tutorial by haydxn Juce Programming Tutorial Table of Contents Introduction...................................................................................................................................... 3 Chapter 1 - The Starting Point................................................................................ 5 Chapter 2 –Component Basics................................................................................ 7 What is a Component?.......................................................................................................... 7 How can I actually ‘do stuff’ with a Component?.....................................7 How do I add a Component?......................................................................................... 8 Chapter 3 – Listening for Messages............................................................ 14 What are these message classes?.........................................................................14 Where does the Listener go?...................................................................................... 15 What about the other message types?............................................................ 20 Chapter 4 – Painting and Decorating........................................................ 23 Where do I paint my Component?........................................................................23 What is a ‘Graphics’?............................................................................................................24 How big is my Component?..........................................................................................24
    [Show full text]
  • Dynamically Registering C++ Exception Handlers: Centralized Handling of C++ Exceptions in Application Framework Libraries
    Dynamically Registering C++ Exception Handlers: Centralized Handling of C++ Exceptions in Application Framework Libraries by Nathaniel H. Daly A thesis submitted in partial fulfillment of the requirements for the degree of Bachelor of Science (Honors Computer Science) in the University of Michigan 2013 Thesis Committee: Professor David Kieras, Advisor Professor David Paoletti, Second Reader Abstract The C++ exceptions mechanism enables modularized programs to separate the reporting of exceptional conditions from the handling of those exceptional condi- tions into the locations where those actions can best be performed. It is often the case in such modular applications that the module capable of detecting an excep- tional situation cannot know how it should be handled, and so C++ exceptions allow the module that invoked the operation to react to the condition. Libraries developed separately from the applications using them are a perfect example of modularized code, and thus a perfect candidate for using C++ exceptions, how- ever many of the application framework library paradigms that have become commonplace do not provide adequate exception support to allow for good pro- gramming style with regard to catching and handling exceptions. In these librar- ies, there often exist multiple callback-style entry points that invoke application- specific operations, all of which require exactly identical exception handling, yet there is no way to collect this code together. Instead, the exception handling code must be duplicated across each entry point. In this paper, I will explore the best solutions to this problem currently provided by such frameworks; I will propose an additional solution to this problem: a method for allowing a program to regis- ter exception-handler operations templated by exception type; and finally, I will identify any impacts that the newly released C++11 standard and the currently evolving C++14 standard have on the problem.
    [Show full text]