Universidad Nacional Autónoma De México

Total Page:16

File Type:pdf, Size:1020Kb

Universidad Nacional Autónoma De México Universidad Nacional Aut´onoma de M´exico Instituto de Investigaciones en Matem´aticas Aplicadas y en Sistemas Facultad de Ingenier´ıa Laboratorio de Biorob´otica ocalizaci´on y seguimiento de objetos a trav´es de sus caracter´ısticas principales Ing� Rommel S´anchez Verdejo [email protected] 2008 a UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. Resumen El objetivo de este trabajo es proporcionar al Laboratorio de Biorob´otica del Posgrado de la Facultad de Ingenier´ıa de la Universidad Nacional Aut´onoma de M´exico un sistema de visi´on !ue sea "´acil de modi#car para "uturas generaciones de un conjunto de $erramientas en mantenimiento constante as´ı como per"ectamente documentadas utili%ando implementaciones con su respectivo c´odigo anteriormente propuesto evaluando & mejorando su rendimiento a trav´es de t´ecnicas de optimi%aci´on por $ard'are & una t´ecnica te´orica en este caso( la cuanti%aci´on vectorial) En este trabajo se presenta una comparaci´on entre dos t´ecnicas para la correspondencia de caracter´ısticas locales mencionadas en la bibliogra"´ıa( correspondencia por distancia Euclideana & correspondencia por cuanti%aci´on vectorial utili%ando el algoritmo *U+F ,B-./01 como generador de caracter´ısticas locales llamadas descriptor) b Agradacimientos Pap´as: qui´en me han soportado durante 27 anos sin e!igir nada a cam"io m´as all´ade mi "ienestar constante# Amigos: los que me conocen sa"r´an a qu´eme re$ero: gracias por estar aqu´ı# Universidad: %na de las pocas cosas por las que me puedo sentir orgulloso de ser me!icano: gracias por todos estos anos de preparacion# &racias a todas las personas' maestros y companeros' que hicieron de "uena o mala manera' la persona que soy# (onde quiera que est´e' donde quiera que pueda recordar: Por mi raza hablar´ael esp´ıritu CONACyT : por sostenerme econ´omicamente por )#* anos# Software Libre: +odas las personas que contri"uyen de una u otra ,orma a ´el' ya que de no e!istir' no podr´ıa enca-ar en este mundo# Paul’s Family: .erry / 0ancy : 1ou 2no3' 3ithout your support' I 3ould have never reached this ,ar# A mis sinodales: .es´us Savage 4armona' Francisco &arc´ıa %galde' 5dgar &arduno Angeles'´ Mar´ıa 5lena Mart´ıne6 7´ere6 y 8oris 5scalante 9am´ıre6 quienes pacientemente me-oraron la calidad de estre tra"a-o y con eso mi persona# c ´Indice general Resumen b Agradecimientos c Lista de Tablas f Lista de Figuras g 1� Introducci´on 1 2� Estado del arte 4 2.1. Detectoresdepuntos............................... 5 2.1.1. HarrisyStephens ............................ 6 2.1.1.1. KanadeyTomasi ....................... 7 2.1.2. Detecci´on de m´aximos y m´ınimos en la representaci´on espacio-escala 2.1.2.1. Harris tipo laplaciano . ! 2.1.". #´alculor´apidodelahessiana . 1$ 2.2. Descriptoresdepuntos. ............ .... .... ......... 11 2.2.1. S%&T' Trans(romada de caracter´ısticas in)ariantes a escala . 11 2.2.2. S*+&' #aracter´ısticas ro,ustas y aceleradas . 11 3� Esquema general del sistema de visi´on 13 ".1. -ocali.aci´on.................................... 1" ".1.1. +e/ionesdin´amicas. 10 ".1.2. +e/iones est´aticas . 10 ".2. 1arcado...................................... 16 ".". 2´us3uedadecorrespondencia . 16 ".".1. #orrespondencia4st´andar. 16 ".".2. 5r,olesK-d................................ 17 ".".". #uanti.aci´on )ectorial . 1 d ".0. Se/uimiento.................................... 1! ".0.1. 4l&iltrodeKalman ........................... 1! ".5. Sistemade)isi´on'2lo3ues. 22 4� lataforma t´ecnica 2! 0.1. #apa(´ısica .................................... 26 0.1.1. 43uipodec´omputo ........................... 27 0.1.2. 5d3uisici´ondevideo . .. 2 0.2. #apal´o/ica .................................... 2 0.2.1. Sistema6perati)o ............................ 2 0.2.2. 2i,liotecas ................................ 2! 0.2.2.1. 6pen#7 ............................ 2! 0.2.2.2. %ntel 8er(ormance 8rimiti)es . "$ 0.2.2.". 2i,liotecas internas . "$ "� ruebas # Resultados 31 5.1. 8rue,as+o,ocup2$$ .............................. "1 5.1.1. +eco9eyentre/a ............................. "2 5.1.2. 2uscayencuentra ............................ "2 5.1.". Si/ueme.................................. "2 5.2. %nterpretaci´onderesultados . "" 5.2.1. +esultados num´ericos . "5 !� $onclusiones 42 6.1. Tra,a9o&uturo .................................. 00 A� Instalaci´on del Sistema 4" &losario 4' (ibliograf´ıa 4' e ´Indice de tablas ".1. 5l/oritmoSimplepara7oronoi . 1! ".2. 4cuaciones por actuali.aci´on de tiempo . 21 ".". 4cuaciones de actuali.aci´on para la medici´on . 21 5.1. :´umero de caracter´ısticas por o,9eto . "5 5.2. 1´ınimo n´umero de caracter´ısticas comparadas en cada prue,a . "5 5.". 8rimersecuenciaTama;nonormal. "5 5.0. 8rimersecuenciaTama;noreducido. "6 5.5. Se/undasecuenciaTama;nonormal. "6 5.6. Se/undasecuenciaTama;noreducido. "6 5.7. &alsos positi)os y ne/ati)os para la primer secuencia . "7 5. &alsos positi)os y ne/ati)os para la se/unda secuencia . "7 ( ´Indice de figuras ".1. Di(erencia )isual para la detecci´on de puntos interesantes . 15 ".2. -ocali.aci´on din´amica . 2" ".". 4s3uema /eneral del sistema en la (ase de entrenamiento . 20 ".0. 4s3uema /eneral del sistema en la (ase de reconocimiento . 25 5.1. #omparaci´on en la primer secuencia. Tama;no' 0 $ × "6$........... " 5.2. #omparaci´on en la se/unda secuencia. Tama;no' 0 $ × "6$.......... "! 5.". #omparaci´on en la primer secuencia. Tama;no "2$ × 20$ ........... 0$ 5.0. #omparaci´on en la se/unda secuencia. Tama;no "2$ × 20$ .......... 01 / Cap´ıtulo 1 Introducci´on El campo conocido ahora como visi´on por computadora o visi´on de m´aquina, es una de las ´areas de mayor inter´es en el ´ambito de la ciencia e ingenier´ıa de la computaci´on. Esta rama se consideraba una simple automatizac´on o extensi´on de los temas estudiados por el Procesamiento digital de im´agenes (PDI . !in embargo, el con"ugar estos t´opicos con otros como lo son, la Inteligencia #rti$cial (I# , el %econcimiento de Patrones (%P o la rob´otica, permiten explorar todo un rango de posibilidades, muchas de ellas siendo borde de conocimiento, a´un por explorar, adquierie un sentido de mayor comple"idad y &ormalismo en su estructura y divulgaci´on. El traba"o que se ha desarrollado con mayor intensidad durante los ´ultimos a'nos est´aen&ocado en automatizar de manera e$ciente alguna de las aplicaciones m´as comunes en el campo de la visi´on por computadora( localizaci´on y seguimiento de ob"etos, reconstrucci´on )D de un ob"eto, determinaci´on espacial de la c´amara seg´un su entorno1, reconocimiento de rostros o bien recuperaci´on de la in&omaci´on inscrita en un ob"eto. En un sistema de visi´on por computadora (en adelante s´olo me re&erir´ea ´el como sistema de visi´on la entrada es un con"unto de im´agenes digitales, es decir una representaci´on digital del entorno a trav´es de un transductor, que en este caso es un sensor digital conocido como *oupled *harged Device (**D 2. Estos sensores digitales se encuentran en cualquier c´amara digital+ en todo el proceso de adquisici´on se generan distorsiones, de las que se hablar´acon mayor detalle en los cap´ıtulos subsecuentes. Estas distoriones son generalmente trans&ormaciones de car´acter geom´etrico que pueden ser modeladas de cierta manera permitiendo as´ıgenerar una reconsotrucci´on virtual bastante aproximada a la realidad del ob"eto, ya sea en dos dimensiones o bien en tres dimensiones. 1SLAM, por sus siglas en ingl´es 2sic , El ob"etivo de este traba"o esta en realizar un sistema que permita la localizaci´on autom´atica de ob"etos previamente reconocidos a trav´es de sus as´ıllamadas caracter´ısticas principales, a pesar de las de&ormaciones encontradas en el proceso de adquisici´on. El detalle de c´omo se obtienen estas caracter´ısticas ser´atambi´en materia de este estudio, ya que se implementaron algunas herramientas encontradas en la literatura. *abe mencionar que existe m´as de una manera en la que se puede caracterizar a un con"unto de valores como un vector de caracter´ısticas principales. -´asicamente se otorga este nombre debido a que las caracter´ısticas que se extraen de un punto, pixel, son llamadas invariantes a las de&ormaciones mencionadas+ es decir, a pesar de las trans&ormaciones a$nes o proyectivas as´ıcomo cambios en la iluminaci´on, ´estos valores no tienen un gran intervalo de variaci´on. El algoritmo que ha alcanzado mayor satis&acci´on en la bibliogra&´ıa es( !cale Invariant .eature /rans&orm (!I./ 01o2345 que se revisar´a, de manera general. %ecientemente otro algoritmo usado para la descripci´on de caracter´ısticas locales, que ha captado mayor atenci´on es( !peed67p Robustness .eatures (!7%. 0-/8395, el cual ha sido implementado y utlizado en este traba"o. Estos vectores caracter´ısticos son una respuesta a un con"unto de est´ımulos sobre una regi´on circundante a un pixel en una imagen. #lgunos de estos est´ımulos buscan resaltar ciertas caracter´ısticas, que para los autores de cada algoritmo resultan venta"osas para el estudio de sus propiedades, ya sea la &ormalizaci´on o modelado de una tran&ormada espacio6 escala, o bien la respuesta al con"unto de intensidades acumuladas.
Recommended publications
  • An Improved Parallel Hashed Oct-Tree N-Body Algorithm for Cosmological Simulation 1
    Scientific Programming 22 (2014) 109–124 109 DOI 10.3233/SPR-140385 IOS Press 2HOT: An improved parallel hashed oct-tree N-body algorithm for cosmological simulation 1 Michael S. Warren Theoretical Division, Los Alamos National Laboratory, Los Alamos, NM, USA E-mail: [email protected] Abstract. We report on improvements made over the past two decades to our adaptive treecode N-body method (HOT). A math- ematical and computational approach to the cosmological N-body problem is described, with performance and scalability mea- sured up to 256k (218) processors. We present error analysis and scientific application results from a series of more than ten 69 billion (40963) particle cosmological simulations, accounting for 4×1020 floating point operations. These results include the first simulations using the new constraints on the standard model of cosmology from the Planck satellite. Our simulations set a new standard for accuracy and scientific throughput, while meeting or exceeding the computational efficiency of the latest generation of hybrid TreePM N-body methods. Keywords: Computational cosmology, N-body, fast multipole method 1. Introduction mological parameters, modeling the growth of struc- ture, and then comparing the model to the observations We first reported on our parallel N-body algorithm (Fig. 1). (HOT) 20 years ago [67] (hereafter WS93). Over the Computer simulations are playing an increasingly same timescale, cosmology has been transformed from important role in the modern scientific method, yet a qualitative to a quantitative science. Constrained by a the exponential pace of growth in the size of calcu- diverse suite of observations [39,44,47,49,53], the pa- lations does not necessarily translate into better tests rameters describing the large-scale Universe are now of our scientific models or increased understanding of known to near 1% precision.
    [Show full text]
  • A Self-Referential HOWTO on Release Engineering∗
    A self-referential HOWTO on release engineering∗ Mark Galassi† Space Science and Applications group Los Alamos National Laboratory‡ February 1, 2018 Abstract Release engineering is a fundamental part of the software development cycle: it is the point at which quality control is exercised and bug fixes are integrated. The way in which software is released gives the end user her first experience of a software package, while in scientific computing release engineering can guarantee reproducibility. For these reasons and others the release process is a good indicator of the maturity and organization of a development team. Software teams often do not put in place a release process at the beginning. This is unfortunate because the team does not have early and continuous execution of test suites, and it does not exercise the software in the same conditions as the end users. I describe an approach to release engineering based on the software tools developed and used by the GNU project, together with several specific proposals related to packaging and distribution. I do this in a step-by-step manner, demonstrating how this very paper is written and built using proper release engineering methods. Because many aspects of release engineering are not exercised in the building of the paper, the accompanying software repository also contains examples of software libraries. ∗For use with software version 1.0.0plus †[email protected] ‡LA-UR-14-21151 1 4 Introducing a library, and release 0.5.0 15 4.1 A simple library, built and installed by hand 15 4.2 Building and installing that simple library with automake .
    [Show full text]
  • Reconnaissance Structurelle De Formules Mathématiques : État De L’Art 9
    CORE Metadata, citation and similar papers at core.ac.uk Provided by HAL-UNICE Reconnaissance Structurelle de Formules Math´ematiques Typographi´eeset Manuscrites St´ephaneLavirotte To cite this version: St´ephaneLavirotte. Reconnaissance Structurelle de Formules Math´ematiques Typographi´ees et Manuscrites. Interface homme-machine [cs.HC]. Universit´eNice Sophia Antipolis, 2000. Fran¸cais. <tel-00523373> HAL Id: tel-00523373 https://tel.archives-ouvertes.fr/tel-00523373 Submitted on 5 Oct 2010 HAL is a multi-disciplinary open access L'archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destin´eeau d´ep^otet `ala diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publi´esou non, lished or not. The documents may come from ´emanant des ´etablissements d'enseignement et de teaching and research institutions in France or recherche fran¸caisou ´etrangers,des laboratoires abroad, or from public or private research centers. publics ou priv´es. UNIVERSITEDENICE–SOPHIAANTIPOLIS´ Ecole´ Doctorale des Sciences et Technologies de l’Information et de la Communication Reconnaissance structurelle de formules math´ematiques typographi´ees et manuscrites THESE` de doctorat pour obtenir le titre de Docteur en Sciences Discipline : Informatique par St´ephane LAVIROTTE Soutenue le 14 juin 2000 a` l’ESSI (Sophia-Antipolis) Composition du jury Pr´esident : Jean-Marc FEDOU Professeur `a l’Universit´e de Nice Sophia-Antipolis Rapporteurs : Karl TOMBRE Professeural’ ` Ecole´ des Mines de Nancy Guy LORETTE Professeura ` l’Universit´e de Rennes I Examinateurs : Lo¨ıc POTTIER Charg´e de Recherche `a l’INRIA Sophia-Antipolis Peter SANDER Professeura ` l’Universit´e de Nice Sophia-Antipolis Marc BERTHOD Directeur de Recherchea ` l’INRIA Sophia-Antipolis Universit´e de Nice Sophia-Antipolis / Institut National de Recherche en Informatique et Automatique Mis en page avec la classe thloria.
    [Show full text]
  • Rdieharder: an R Interface to the Dieharder Suite of Random Number Generator Tests
    RDieHarder: An R interface to the DieHarder suite of Random Number Generator Tests Dirk Eddelbuettel Robert G. Brown Debian Physics, Duke University [email protected] [email protected] May 2007 1 Introduction Random number generators are critically important for computational statistics. Simulation methods are becoming ever more common for estimation; Monte Carlo Markov Chain is but one approach. Also, simulation methods such as the Bootstrap have long been used in inference and are becoming a standard part of a rigorous analysis. As random number generators are at the heart of the simulation-based methods used throughout statistical com- puting, `good' random numbers are therefore a crucial aspect of a statistical, or quantitative, computing environment. However, there are very few tools that allow us to separate `good' from `bad' random number generators. Based on work that started with the random package (Eddelbuettel, 2007) (which pro- vides functions that access a non-deterministic random number generator (NDRNG) based on a physical source of randomness), we wanted to compare the particular NDRNG to the RNGs implemented in GNU R (R Development Core Team, 2007) itself, as well as to sev- eral RNGs from the GNU GSL (Galassi et al., 2007), a general-purpose scientific computing library. Such a comparison is possible with the DieHarder test suite by Brown(2007) which extends the DieHard test suite by Marsaglia. From this work, we became interested in mak- ing DieHarder directly accessible from GNU R. The RDieHarder package presented here allows such access. This paper is organized as follows. Section 2 describes the history and design of the DieHarder suite.
    [Show full text]
  • The Journal of AUUG Inc. Volume 22 ¯ Number 3 November 2001
    The Journal of AUUG Inc. Volume 22 ¯ Number 3 November 2001 Features: Doing Damage with DocBook 14 AUUGN CD: Mandrake 8.1 16 Linux as a Replacement for Windows 2000 17 Interview with Ben Collins, DPL 27 Old Kernels Never Die 29 Rune for Linux 30 Testing a Firewall or Router 33 Caldera Open Linux Workstation 3.1 37 Wasabi Systems ships update to NetBSD 44 DVD Players for Linux 44 Using XML and XSLT 53 Logical Volume Managers 57 Psionic Portsentry, the defender of the ports 59 The State of Corporate IT: The case for Linux 62 Installing Debian on a 4MB RAM System 66 wxPython for Newbies 67 Debian Conference, Australia 72 AUUG2001: The Conference Photos 72 Shell Programming 78 News: Public Notices 10 AUUG2002: Call for Papers 6 LUV Installfest 2001 12 AUUG Security Symposium 2001 86 AUUG: Chapter Meetings and Contact Details 9O Regulars: President’s Column 3 /var/spool/mail/auugn 4 My Home Network 10 ISSN 1035-7521 Print post approved by Australia Post - PP2391500002 , AUUG Membership and General Correspondence The AUUG Secretary PO Box 366 Editorial Kensington NSW 2033 Con Zymaris Telephone: 02 8824 9511 [email protected] or 1800 625 655 (Toll-Free) Facsimile: 02 8824 9522 Email: [email protected] I often begin issues of AUUGN with a snippet of recent news which relates to our segment of the IT industry. AUUG Management Committee Now, what do I define as our segment of the IT Email: [email protected] industry? Well, to be blunt, and at the risk of President inflaming opposing opinions, I define it as that area David Purdue bounded by switched-on people doing interesting iPlanet e-commerce solutions The Tea House things with advanced computing platforms.
    [Show full text]
  • Performance and Availability Characterization for Linux Servers
    Performance and Availability Characterization for Linux Servers Vasily Linkov Oleg Koryakovskiy Motorola Software Group Motorola Software Group [email protected] [email protected] Abstract software solutions that were very expensive and in many cases posed a lock-in with specific vendors. In the cur- The performance of Linux servers running in mission- rent business environment, many players have come to critical environments such as telecommunication net- the market with variety of cost-effective telecommuni- works is a critical attribute. Its importance is growing cation technologies including packed data technologies due to incorporated high availability approaches, espe- such as VoIP, creating server-competitive conditions for cially for servers requiring five and six nines availability. traditional providers of wireless types of voice commu- With the growing number of requirements that Linux nications. To be effective in this new business environ- servers must meet in areas of performance, security, re- ment, the vendors and carriers are looking for ways to liability, and serviceability, it is becoming a difficult task decrease development and maintenance costs, and de- to optimize all the architecture layers and parameters to crease time to market for their solutions. meet the user needs. Since 2000, we have witnessed the creation of several industry bodies and forums such as the Service Avail- Other Linux servers, those not operating in a mission- ability Forum, Communications Platforms Trade As- critical environment, also require different approaches sociation, Linux Foundation Carrier Grade Linux Ini- to optimization to meet specific constraints of their op- tiative, PCI Industrial Computer Manufacturers Group, erating environment, such as traffic type and intensity, SCOPE Alliance, and many others.
    [Show full text]
  • Modern Software Engineering and Research a Pandemic-Adapted Professional Development Workshop
    Modern Software Engineering and Research A pandemic-adapted professional development workshop Mark Galassi Space Science and Applications group Los Alamos National Laboratory 2020-05-16, 2021-01-20 Last built 2021-01-27T13:19:44 (You may redistribute these slides with their LATEX source code under the terms of the Creative Commons Attribution-ShareAlike 4.0 public license) Outline Goals Outline Goals Goals and path In the educational industrial complex we are required to state our goals before we start. It might even be a good idea. Goals The meandering path I Have a broad view of University I My path is largely historical because of curriculum, successes and limitations, my personal inclination to use history state of industry. to give perspective. I Awareness of grand challenges I We need perspective so we are not tossed in software engineering. about by the short-term interest of I Awareness of current approaches industry. to address those challenges. Style I Slides are placeholders for me to then tell stories. I hope you will talk and tell stories too. I But also: I join the modern quest to give a seminar made entirely of xkcd slides. Outline Curriculum Programming Languages Stories of programming languages Tour of languages Insights on languages The Computer Science Curriculum From https://teachyourselfcs.com/ Computer programming Computer Architecture Algorithms and Data Structures Discrete Math Operating Systems Networking Computer security Databases Compilers and Languages Artificial Intelligence Graphics The Software Engineering curriculum Most of the computer science department courses. Less math. Process and management classes. ISO’s “Software Engineering Body of Knowledge” Margaret Hamilton, who led the MIT team that wrote the Apollo on-board software in the 1960s, is one of the coiners of the term (SWEBOK).
    [Show full text]
  • Our Form 1023 with the USA
    Application for Recognition of Exemption OMS No. 1545-0056 Form 1023 Note: If exempt status is (Rev. October 2004) Under Section 501{c)(3) of the Internal Revenue Code approved, this Department of the Treasury application will be open Internal Revenue Service for public inspection. Use the instructions to complete this application and for a definition of all bold items. For additional help, call IRS Exempt Organizations Customer Account Services toll-free at 1-877-829-5500. Visit our website at www.irs.gov for forms and publications. If the required information and documents are not submitted with payment of the appropriate user fee, the application may be returned to you. Attach additional sheets to this application if you need more space to answer fully. Put your name and EIN on each sheet and identify each answer by Part and line number. Complete Parts I - XI of Form 1023 and submit only those Schedules (A through H) that apply to you. Identification of Applicant 1 Full name of organization (exactly as it appears in your organizing document) 2 c/o Name (if applicable) Software Freedom ConseNancy, Inc. 3 Mailing address (Number and street) (see instructions) Room/Suite 4 EmployerIdentificationNumber(EIN) 17th 1995 Broadway 41-2203632 Floor City or town, state or country, and ZIP + 4 5 Monththeannualaccountingperiodends(01 -12) New York, NY 10023 12 6 Primary contact (officer, director, trustee, or authorized representative) a Name: Karen M. Sandler b Phone: (212)461-1908 Secretary c Fax: (optional) (212)580-0898 7 Are you represented by an authorized representative, such as an attorney or accountant? If "Yes," 0 Yes [KJ No provide the authorized representative's name, and the name and address of the authorized representative's firm.
    [Show full text]
  • How to Run a Successful Free Software Project
    Producing Open Source Software How to Run a Successful Free Software Project Karl Fogel Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel Copyright © 2005-2021 Karl Fogel, under the CreativeCommons Attribution-ShareAlike (4.0) license. Version: 2.3214 Home site: https://producingoss.com/ Dedication This book is dedicated to two dear friends without whom it would not have been possible: Karen Underhill and Jim Blandy. i Table of Contents Preface ........................................................................................................................................................... vi Why Write This Book? ............................................................................................................................. vi Who Should Read This Book? ................................................................................................................... vi Sources .................................................................................................................................................. vii Acknowledgements ................................................................................................................................. viii For the first edition (2005) .............................................................................................................. viii For the second edition (2021) ............................................................................................................ ix Disclaimer .............................................................................................................................................
    [Show full text]
  • Writing Documentation Using Docbook
    Writing Documentation Using DocBook A Crash Course David Rugge [email protected] Mark Galassi [email protected] Éric Bischoff [email protected] Writing Documentation Using DocBook: A Crash Course by David Rugge, Mark Galassi, and Éric Bischoff Copyright © 1997-2006 David Rugge, Mark Galassi, Éric Bischoff This document is a first tutorial on how to write documentation in DocBook. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Table of Contents 1. Introduction..................................................................................................................................... 1 1.1. About this Booklet ............................................................................................................... 1 1.2. Why DocBook?.................................................................................................................... 2 1.3. Your World View.................................................................................................................. 3 1.4. Markup based on content ..................................................................................................... 4 2. Getting started ...............................................................................................................................
    [Show full text]
  • Persistence for the Masses: RRB-Vectors in a Systems Language
    Persistence for the Masses: RRB-Vectors in a Systems Language JUAN PEDRO BOLÍVAR PUENTE Relaxed Radix Balanced Trees (RRB-Trees) is one of the latest members in a family of persistent tree based data-structures that combine wide branching factors with simple and relatively flat structures. Like the battle- tested immutable sequences of Clojure and Scala, they have effectively constant lookup and updates, good cache utilization, but also logarithmic concatenation and slicing. Our goal is to bring the benefits of func- tional data structures to the discipline of systems programming via generic yet efficient immutable vectors supporting transient batch updates. We describe a C++ implementation that can be integrated in the runtime of higher level languages with a C core (Lisps like Guile or Racket, but also Python or Ruby), thus widening the access to these persistent data structures. In this work we propose (1) an Embedding RRB-Tree (ERRB-Tree) data structure that efficiently stores arbitrary unboxed types, (2) a technique for implementing tree operations independent of optimizations for a more compact representation of the tree, (3) a policy-based design to support multiple memory management and reclamation mechanisms (including automatic garbage collection and reference counting), (4) a model of transience based on move-semantics and reference counting, and (5) a definition of transience for confluent meld operations. Combining these techniques a performance comparable to that of mutable arrays can be achieved in many situations, while using the data structure in a functional way. CCS Concepts: • Software and its engineering → Data types and structures; Functional languages; • General and reference → Performance; Additional Key Words and Phrases: Data Structures, Immutable, Confluently, Persistent, Vectors, Radix-Balanced, Transients, Memory Management, Garbage Collection, Reference Counting, Design Patterns, Policy-Based Design, Move Semantics, C++ ACM Reference Format: Juan Pedro Bolívar Puente.
    [Show full text]
  • Overview [Of the Software Freedom Conservancy]
    (212) 580-0800 tel (212) 580-0898 fax [16 November 2006] Overview The Software Freedom Conservancy is an organization composed of Free and Open Source Software (FOSS) projects. As a fiscal sponsor for FOSS projects, the Conservancy provides member projects with free financial and administrative services, but does not involve itself with technological and artistic decisions. By joining the Conservancy, member FOSS projects can obtain the benefits of a formal legal structure while keeping themselves focused on software development. What are the benefits of joining the Conservancy? One of the principal benefits of joining the Conservancy is that member projects get all the protections of being a corporate entity without actually having to form and maintain one. These benefits include, most notably, protection from personal liability for the developers of the project. Projects can continue to operate in the same way they did before joining the Conservancy without having to select a board of directors or any other layer of corporate management, without having to maintain corporate records and without having to do any of the other things required of incorporated entities. The Conservancy handles all of that burden on behalf of its projects. The Conservancy is in the process of applying for tax-exempt status, which will allow the Conservancy's member projects to receive tax deductible donations. The Conservancy files a single tax return that covers all of its member projects and handles other corporate and tax related issues on behalf of its members, who are, of course, always free to join and leave the Conservancy at any time.
    [Show full text]