Design and Development of a Debug-Oriented I.D.E

Total Page:16

File Type:pdf, Size:1020Kb

Design and Development of a Debug-Oriented I.D.E Introduction - Background The Problem Our Approach Results - Future Work High-Level Debuggers: facilities and interfaces Design and Development of a debug-oriented I.D.E. by Nikos Papoylias Committee: Assistant Professor Michail G. Lagoudakis (Supervisor) Assistant Professor Katerina Mania Assistant Professor Vasilis Samoladas Departement of Electronic and Computer Engineering Technical University of Crete, 2009 Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Our Approach Results - Future Work What is this all about ? From the broad spectrum of computer science we concern ourselves with the fields of: Programming Languages and Tools Human-Computer Interaction More specifically we deal with: Debugging Systems Integrated Development Environments (I.D.Es) By proposing both theoritically and technologically ways to improve these systems. Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Our Approach Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work The Development cycle and debugging Debuggers are the cardiographs of software While the term ’debugger’ is attributed to Grace Hopper creator of Cobol. debugging as a process is in fact a general characteristic of all human labor. Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Project workflow and I.D.Es The succession of programming processes, like coding and debugging, determine the ’project’s workflow’ Debugging and testing cover roughly 50% of this workflow in time An I.D.E. automates and organizes the different parts of the workflow Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Project workflow and I.D.Es Emacs was one of the first such integration environment system: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Project workflow and I.D.Es that set an example for modern I.D.Es (Anjuta) Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Debugging inner-workings System layers and facilities of debugging: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Debugging information flow A typical debugging information flow: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Symbolic debugging facilities A symbolic debugger – like gdb: Allows you to monitor what is going on ’inside’ your program Start your program, specifing anyting that might affect it’s behaviour Make your program stop on specified conditions Examine what has happened when your program stopped or crashed Change things in your program and continue execution Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Symbolic debugging facilities Line by line navigation step in, step out, step over. Stack Examination backtrace, up, down. Breakpoints, Watchpoints, Catchpoints break main.c:37, watch <expr>. Data evaluation/editing print <expr>. Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Front-Ends and I.D.Es Most I.D.Es today, supply a simple front-end to a symbolic debugger: Nikos Papoylias High-Level Debuggers Introduction - Background The Problem Motivation: Automation, Debugging and I.D.Es Our Approach Symbolic-Debuggers, front-ends and systems Results - Future Work Debugging Systems While few, function as debugging systems providing some additional facilities, like DDD, Gnat or JBixle do: Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work The current situation Stagnation. Today’s advancement in IDEs although constantly offering new features and facilites has left debugging system nearly where there were 20 or more years ago. Adoption of academically proposed features ranges from slow to none. Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work High-Level debugging Our Proposition: "High-level debugging systems" that can intergrate legacy technologies, not by just providing ’graphical access’ but by offering more sophisticated methods of monitoring a software system and new ways for a programmer to form his development cycle. Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level debugging Related Work 3 Our Approach Rethinking the Debugging Information Flow The 5 pillars of our HLD systems Implementation 4 Results - Future Work Live Demo Future Work Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Related Work Published Related Work Domain-specific debugging languages (Duel,opium, others) Replay, reverse debugging and tracing Language-aware tools, Harmonia Project – Berkeley A lot of work on parallel execution Nikos Papoylias High-Level Debuggers Introduction - Background The current situation The Problem High-Level debugging Our Approach Related Work Results - Future Work Related Work Related Technological Advancements Gdb 7.0 debugging-scripting, reverse execution JBixle call-graph and data-visualizations (much like ddd) ODB, Cisco debugger and others reverse execution Visual Studio’s visualisers Mathematica Arbitary computation and math visualisations Nikos Papoylias High-Level Debuggers Introduction - Background Rethinking the Debugging Information Flow The Problem The 5 pillars of our HLD systems Our Approach Implementation Results - Future Work Outline 1 Introduction - Background Motivation: Automation, Debugging and I.D.Es Symbolic-Debuggers, front-ends and systems 2 The Problem The current situation High-Level
Recommended publications
  • The Glib/GTK+ Development Platform
    The GLib/GTK+ Development Platform A Getting Started Guide Version 0.8 Sébastien Wilmet March 29, 2019 Contents 1 Introduction 3 1.1 License . 3 1.2 Financial Support . 3 1.3 Todo List for this Book and a Quick 2019 Update . 4 1.4 What is GLib and GTK+? . 4 1.5 The GNOME Desktop . 5 1.6 Prerequisites . 6 1.7 Why and When Using the C Language? . 7 1.7.1 Separate the Backend from the Frontend . 7 1.7.2 Other Aspects to Keep in Mind . 8 1.8 Learning Path . 9 1.9 The Development Environment . 10 1.10 Acknowledgments . 10 I GLib, the Core Library 11 2 GLib, the Core Library 12 2.1 Basics . 13 2.1.1 Type Definitions . 13 2.1.2 Frequently Used Macros . 13 2.1.3 Debugging Macros . 14 2.1.4 Memory . 16 2.1.5 String Handling . 18 2.2 Data Structures . 20 2.2.1 Lists . 20 2.2.2 Trees . 24 2.2.3 Hash Tables . 29 2.3 The Main Event Loop . 31 2.4 Other Features . 33 II Object-Oriented Programming in C 35 3 Semi-Object-Oriented Programming in C 37 3.1 Header Example . 37 3.1.1 Project Namespace . 37 3.1.2 Class Namespace . 39 3.1.3 Lowercase, Uppercase or CamelCase? . 39 3.1.4 Include Guard . 39 3.1.5 C++ Support . 39 1 3.1.6 #include . 39 3.1.7 Type Definition . 40 3.1.8 Object Constructor . 40 3.1.9 Object Destructor .
    [Show full text]
  • Anjuta 1.2.0
    Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial SOFTWARE Hasil Tes dan Ulasan Software Anjuta 1.2.0 ALAT BANTU PEMROGRAMAN Sifat: Free software Lisensi: GPL Pengembang: Naba Kumar Situs web: http://anjuta.org nda termasuk developer yang senang menggunakan program- A program sederhana dalam menulis kode program? Kalau ya, barangkali Anda puas dengan editor Vim. Dengan syntax highlighting dan fasilitas pemrograman Anjuta IDE lainnya, Vim termasuk alat bantu pemrograman yang menyenangkan. Hal tersebut belum lagi ditambah dengan program terlihat rapi. Begitu tubuh fungsi pengamatan nilai register, signal kernel, fasilitas pencarian dan penggantian teks disembunyikan, maka yang terlihat breakpoint, memory dump, dan lain yang dapat diketikkan dengan mudah lewat hanyalah nama fungsinya. Menarik, bukan? sebagainya? Tenang saja. Anjuta dapat keyboard. Masih bicara tampilan, kita perlu memuji menampilkannya untuk Anda. Tinggal pilih Tapi, Vim memiliki sejumlah besar pewarnaan yang digunakan oleh Anjuta. menunya dan dalam sekejap, apa yang keterbatasan. Vim sendiri sejatinya adalah Anjuta akan memberikan warna-warna Anda inginkan sudah terpampang. Lebih teks editor biasa. Apabila Anda ingin khusus untuk sesuatu yang termasuk cepat dari sulap! mendapatkan sejumlah besar kemampuan istimewa, misalnya keyword bahasa Secara umum, fasilitas debugging pada Vim dan sekaligus memiliki yang lebih, pemrograman, komentar, sampai isi dari Anjuta pun perlu diberikan acungan jempol. maka Anjutalah pilihannya. suatu konstanta ataupun variabel tipe Fasilitas debugging dibangun di atas gdb, Anjuta adalah IDE untuk C/C++, tertentu. Dan pewarnaan yang dilakukan yang merupakan debugger populer. Anda walaupun dengan mudah dapat digunakan pun cukup menarik. Anjuta akan dapat mengeksekusi interaktif, pengamatan oleh bahasa pemrograman lain. Sebagai memberikan warna kabur terlebih dahulu nilai-nilai tertentu, manipulasi stack, dan contoh, penulis bersenang hati pada saat pengetikan.
    [Show full text]
  • Multiplatformní GUI Toolkity GTK+ a Qt
    Multiplatformní GUI toolkity GTK+ a Qt Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI GUI toolkit (widget toolkit) (1) = programová knihovna (nebo kolekce knihoven) implementující prvky GUI = widgety (tlačítka, seznamy, menu, posuvník, bary, dialog, okno atd.) a umožňující tvorbu GUI (grafického uživatelského rozhraní) aplikace vlastní jednotný nebo nativní (pro platformu/systém) vzhled widgetů, možnost stylování nízkoúrovňové (Xt a Xlib v X Windows System a libwayland ve Waylandu na unixových systémech, GDI Windows API, Quartz a Carbon v Apple Mac OS) a vysokoúrovňové (MFC, WTL, WPF a Windows Forms v MS Windows, Cocoa v Apple Mac OS X, Motif/Lesstif, Xaw a XForms na unixových systémech) multiplatformní = pro více platforem (MS Windows, GNU/Linux, Apple Mac OS X, mobilní) nebo platformově nezávislé (Java) – aplikace může být také (většinou) událostmi řízené programování (event-driven programming) – toolkit v hlavní smyčce zachytává události (uživatelské od myši nebo klávesnice, od časovače, systému, aplikace samotné atd.) a umožňuje implementaci vlastních obsluh (even handler, callback function), objektově orientované programování (objekty = widgety aj.) – nevyžaduje OO programovací jazyk! Jan Outrata (Univerzita Palackého v Olomouci) Multiplatformní GUI toolkity duben 2015 1 / 10 GUI toolkit (widget toolkit) (2) language binding = API (aplikační programové rozhraní) toolkitu v jiném prog. jazyce než původní API a toolkit samotný GUI designer/builder = WYSIWYG nástroj pro tvorbu GUI s využitím toolkitu, hierarchicky skládáním prvků, z uloženého XML pak generuje kód nebo GUI vytvoří za běhu aplikace nekomerční (GNU (L)GPL, MIT, open source) i komerční licence např. GTK+ (C), Qt (C++), wxWidgets (C++), FLTK (C++), CEGUI (C++), Swing/JFC (Java), SWT (Java), JavaFX (Java), Tcl/Tk (Tcl), XUL (XML) aj.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • GNOME 3 Application Development Beginner's Guide
    GNOME 3 Application Development Beginner's Guide Step-by-step practical guide to get to grips with GNOME application development Mohammad Anwari BIRMINGHAM - MUMBAI GNOME 3 Application Development Beginner's Guide Copyright © 2013 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: February 2013 Production Reference: 1080213 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-84951-942-7 www.packtpub.com Cover Image by Duraid Fatouhi ([email protected]) Credits Author Project Coordinator Mohammad Anwari Abhishek Kori Reviewers Proofreader Dhi Aurrahman Mario Cecere Joaquim Rocha Indexer Acquisition Editor Tejal Soni Mary Jasmine Graphics Lead Technical Editor Aditi Gajjar Ankita Shashi Production Coordinator Technical Editors Aparna Bhagat Charmaine Pereira Cover Work Dominic Pereira Aparna Bhagat Copy Editors Laxmi Subramanian Aditya Nair Alfida Paiva Ruta Waghmare Insiya Morbiwala About the Author Mohammad Anwari is a software hacker from Indonesia with more than 13 years of experience in software development.
    [Show full text]
  • Pdfswqokdvt2o.Pdf
    GNOME 3 Application Development Beginner's Guide Step-by-step practical guide to get to grips with GNOME application development Mohammad Anwari BIRMINGHAM - MUMBAI GNOME 3 Application Development Beginner's Guide Copyright © 2013 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: February 2013 Production Reference: 1080213 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-84951-942-7 www.packtpub.com Cover Image by Duraid Fatouhi ([email protected]) Credits Author Project Coordinator Mohammad Anwari Abhishek Kori Reviewers Proofreader Dhi Aurrahman Mario Cecere Joaquim Rocha Indexer Acquisition Editor Tejal Soni Mary Jasmine Graphics Lead Technical Editor Aditi Gajjar Ankita Shashi Production Coordinator Technical Editors Aparna Bhagat Charmaine Pereira Cover Work Dominic Pereira Aparna Bhagat Copy Editors Laxmi Subramanian Aditya Nair Alfida Paiva Ruta Waghmare Insiya Morbiwala About the Author Mohammad Anwari is a software hacker from Indonesia with more than 13 years of experience in software development.
    [Show full text]
  • El Compilador De C
    Apéndice A El compilador de C En este apéndice se verá el funcionamiento del compilador de C en ambientes Windows y fundamentalmente GNU-Linux, que es el que se recomienda. Introducción Existe una secuencia de trabajo para producir una aplicación ejecutable desde un código fuente en ANSI C (o cualquier otro lenguaje no interpretado). El código en lenguaje de alto nivel debe ser traducido a código máquina que pueda ser ejecutado por el computador. Aquí es donde interviene el compilador, que es ayudado por varias herramientas para su cometido: el ensamblador, el enlazador y el depurador. Las fases para producir la aplicación las podríamos resumir en los siguientes puntos: 1. Con la ayuda de un editor escribiremos un programa en alto nivel. Este editor puede ser muy sencillo y de propósito general o especializado en la realización de código fuente, con lo cual será sensible a las palabras propias del lenguaje de alto nivel utilizado, avisarnos de la falta de algún elemento como llaves o puntos y coma e incluso nos permitirá embellecer ese código. En cualquier caso el resultado será un código en texto plano. 2. Este código pasa un por una fase de pre procesamiento del texto (ver capítulo 6), que incluirá la sustitución de determinadas constantes o la inclusión de otros ficheros, por citar los dos cometidos más usuales. En cualquier caso se produce otro fichero de texto plano (modificando el anterior) con formato de código de alto nivel. 3. Este nuevo código ahora es compilado (internamente se pasa por varias fases que puedes ver en el apéndice B).
    [Show full text]
  • Free Software for Engineers
    Indian Linux Users© Group, Chennai (ILUGC) in association with Thiagarajar College of Engineering, Madurai presents Free Software for Engineers by Shakthi Kannan MS Thiagarajar College of Engineering, Madurai GNU/Linux Programming ● C ● C++ ● Assembly ● Java ● Bash scripting ● Perl ● Python ● GUI Programming (GTK / Qt) ● Tcl/Tk GNU/Linux IDE/Text Editors ● Eclipse ● Anjuta ● KDevelop ● DrPython ● vi/vim ● GNU Emacs ● Pico / Nano ● Kate ● Kwrite ● gedit Eclipse IDE Source: http://ometer.com/eclipse-shots/eclipse-metacity.png What Software Tools? GNU/Linux Software Tools ● GNU C Compiler (gcc) ● GNU Assembler (gas) ● GNU C++ compiler (g++) ● GNU Debugger (gdb) ● Data Display Debugger (ddd) ● Java SDK ● Python ● Tcl Source: http://www.gnu.org/software/ddd/registers.jpg Java with Eclipse Source: http://www.depeupleur.com/blog/TT_blog/archives/000011.html GNU/Linux Math Tools ● Scilab ● r-project ● pspp ● IT++ ● GSL ● GNU Octave ● gnuplot ● LabPlot ● LaTeX Source: http://gnuplot.sourceforge.net/screenshots/figs/term-mouse-X11.png r-project Source: http://www.r-project.org/screenshots/desktop.jpg GNU/Linux EDA Tools ● Alliance ● gEDA ● PCB Tool ● EE Tool ● TkGate ● XCircuit ● gerbv ● gputils ● vlsi Source: http://www.tkgate.org/fig/scopewin.gif gEDA Source: http://www.geda.seul.org/screenshots/screenshot-qschem1.png PCB Source: http://bach.ece.jhu.edu/~haceaton/pcb/pcb_screen.gif TkGate Source: http://www.tkgate.org/fig/2.0/main.gif Gerber Viewer Source: http://gerbv.sourceforge.net/screenshot2.png What about Hardware? GNU/Linux Simulators/Emulators
    [Show full text]
  • Andrea Cimitan +44 (0)7594 504138 Software Engineer / Rapid UI Prototyping [email protected]
    Andrea Cimitan +44 (0)7594 504138 Software Engineer / Rapid UI Prototyping [email protected] SUMMARY Creative and motivated engineer with breadth and depth of knowledge that spans from interaction design to low-level graphics, networks, cloud microservices deployments and Linux programming. As I really appreciate quality, I pursue precision in everything I do. I’m driven by a passion for improving the interaction and usability of digital interfaces, this has proven essential in building a career that covers over a decade of shaping great user experiences on software now embraced by millions of people. I enjoy the challenge of learning new programming languages and tools to strive for the best possible outcome. I’m used to work in close collaboration with interaction and visual designers, so that my deep technical knowledge, with the necessary critical thinking, can be of great value throughout the entire design process. SELECTED WORKS NodeJS, C#, Research & Development for Sony http://rdwest.playstation.com Amazon Alexa, I’m in charge of the research, architecture and implementation of few innovation projects. Google Assistant, DialogFlow, Due to their confidentiality, I cannot go much into detail. AWS Cloud, I can say that each project requires me to experiment with modern hardware or to research new one, and WebSockets, the technology stack varies differently between them. Unity 3D, PS VR, OpenCV Work has been done with VR headsets, Unity 3D game engine, digital assistants like Amazon Alexa and Google Assistant, computer vision libraries like OpenCV, 3D modeling in Blender and 3D printing. Among them, I developed and deployed multiple microservices to AWS cloud for a production application, engineering both RESTful APIs as well a secure encrypted WebSockets communication protocol, handling thousands of concurrent clients through a load balancer over SSL, connecting the scalable instances.
    [Show full text]
  • IDE, a Software Environment You Can Use to Develop Your C/C++ Programs
    The University of CMSC 15200 ± Introduction to Computer Science 2 Chicago Summer Quarter 2005 Department of Lab #2 (08/01/2005) Computer Science Name: Student ID: Lab Instructor: Borja Sotomayor Do not write in this area 1 2 3 TOTAL Maximum possible points: 30 One of the goals of this lab is to introduce the Eclipse IDE, a software environment you can use to develop your C/C++ programs. We provide some basic instructions on how to write a program with Eclipse, and how to use Eclipse's debugging features. More complete documentation can be found in Eclipse's official website: http://www.eclipse.org/ http://www.eclipse.org/documentation/ http://help.eclipse.org/ IDE: Integrated Development Environment An IDE, or Integrated Development Environment, provides an environment that integrates all the tools necessary to develop a piece of software. IDEs typically include a text editor, a compiler, a debugger, and other tools to improve the productivity of the programmer. For example, many IDEs include tools that allow us to easily create graphical interfaces for our own applications (“UI designers”) The user can interact with all these tools (editor, compiler, etc.) using an interface which generally (but not always) will be an easy-to-use graphical interface. In fact, the main advantage of using an IDE is that the programmer can do all his work from a single interface, instead of having to constantly switch between different tools. The following are some popular IDEs: ➢ Free / Open source (UNIX/Linux) ● Eclipse (Multi-platform, Java, C/C++, other
    [Show full text]
  • Programming Environment August 14, 2007
    Linux 程序开 发¯境 b脁 Linux 程序开发¯境 Parallel Programming Environment Computing Windows IDE开发¯境 与Visual b脁 Studio C++ {<的o件 Department of Science and Engineering Computing 与windows 不 同的开发¯境 School of Mathematics School Peking University 程序的编译和 ÐL 程序的调试 August 14, 2007 o件开发 Parallel Computing Linux 程序开 发¯境 1 Windows IDE开发¯境 b脁 Parallel 2 与Visual Studio C++ {<的o件 Computing Windows 3 IDE开发¯境 与windows 不同的开发¯境 与Visual UNIX 下最通(的编辑h: vi Studio C++ {<的o件 4 程序的编译和ÐL 与windows 不 同的开发¯境 程序的编译和 5 程序的调试 ÐL 程序的调试 6 o件开发 o件开发 文件ÄÇ 使(工wmake 文c的开发与维¤ H,¡理和O同工\ F¶ Linux 程序开 发¯境 1 Windows IDE开发¯境 b脁 Parallel 2 与Visual Studio C++ {<的o件 Computing Windows 3 IDE开发¯境 与windows 不同的开发¯境 与Visual UNIX 下最通(的编辑h: vi Studio C++ {<的o件 4 程序的编译和ÐL 与windows 不 同的开发¯境 程序的编译和 5 程序的调试 ÐL 程序的调试 6 o件开发 o件开发 文件ÄÇ 使(工wmake 文c的开发与维¤ H,¡理和O同工\ 输e,编译,调试,ÐL都有按®或者ëw. linux 怎7办? 如U向vL:¤上Ð交一个程序? Windows IDE开发¯境 Linux 程序开 发¯境 b脁 Parallel Computing Windows IDE 开发¯境 Turbo C 2.0, Borland C++, Visual Studio 与Visual Studio C++ {<的o件 与windows 不 同的开发¯境 程序的编译和 ÐL 程序的调试 o件开发 linux 怎7办? 如U向vL:¤上Ð交一个程序? Windows IDE开发¯境 Linux 程序开 发¯境 b脁 Parallel Computing Windows IDE 开发¯境 Turbo C 2.0, Borland C++, Visual Studio 与Visual Studio C++ {<的o件 输e,编译,调试,ÐL都有按®或者ëw. 与windows 不 同的开发¯境 程序的编译和 ÐL 程序的调试 o件开发 如U向vL:¤上Ð交一个程序? Windows IDE开发¯境 Linux 程序开 发¯境 b脁 Parallel Computing Windows IDE 开发¯境 Turbo C 2.0, Borland C++, Visual Studio 与Visual Studio C++ {<的o件 输e,编译,调试,ÐL都有按®或者ëw.
    [Show full text]
  • Using Qt Creator for Opencl - 05-25-2010 by Vincent - Streamcomputing
    Using Qt Creator for OpenCL - 05-25-2010 by vincent - StreamComputing - http://streamcomputing.eu Using Qt Creator for OpenCL by vincent – Tuesday, May 25, 2010 http://streamcomputing.eu/blog/2010-05-25/using-qt-creator-for-opencl/ More and more ways are getting available to bring easy OpenCL to you. Most of the convenience libraries are wrappers for other languages, so it seems that C and C++ programmers have the hardest time. Since a while my favourite way to go is Qt: it is multi-platform, has a good IDE, is very extensive, has good multi-core and OpenGL-support and… has an extension for OpenCL: http://labs.trolltech.com/blogs/2010/04/07/using-opencl-with-qt http://blog.qt.digia.com/blog/2010/04/07/using-opencl-with-qt/ Other multi-platform choices are Anjuta, CodeLite, Netbeans and Eclipse. I will discuss them later, but wanted to give Qt an advantage because it also simplifies your OpenCL-development. While it is great for learning OpenCL-concepts, please know that the the commercial version of Qt Creator costs at least €2995,- a year. I must also warn the plugin is still in beta. StreamComputing.eu is not affiliated with Qt. Getting it all Qt Creator is available in most Linux-repositories: install packages ‘qtcreator’ and ‘qt4-qmake’. For Windows, MAC and the other Linux-distributions there are installers available: http://qt.nokia.com/downloads. People who are not familiar with Qt, really should take a look around on http://qt.nokia.com/. You can get the source for the plugin QtOpenCL, by using GIT: git clone http://git.gitorious.org/qt-labs/opencl.git QtOpenCL See http://qt.gitorious.org/qt-labs/opencl for more information about the status of the project.
    [Show full text]