Programming Version 0.4 Page 1 of 356 Programming Peter Fox

Total Page:16

File Type:pdf, Size:1020Kb

Programming Version 0.4 Page 1 of 356 Programming Peter Fox Programming Version 0.4 Page 1 of 356 Programming Peter Fox A manual for everyone from novice to expert This is a tutorial, starting from the very beginning, on how to be a programmer. • Acquire the skills of writing computer programs • Find out what makes programmers different • Learn how to avoid the mistakes ordinary programmers make • Develop your of creativity and concentration • See the world afresh in the crystal sharp focus of precision analysis Whether you're thinking of trying some simple programming, already do a bit, get paid to program or work with programmers this book will open your eyes and put you on the right track. This is not a tome on Computer Science, and doesn't set out to teach a particular language. The ultimate objective is to show how to become an elite programmer, someone who can 'see through walls', asks the right questions of the right people, produces sleek and robust programs... ... and be well paid, well respected and enjoying a superior lifestyle. Programming Version 0.4 Page 2 of 356 About the author Early days Peter Fox has been a freelance jobbing programmer and business analyst since 1980. He started working on programming word processors from machine code to management awareness courses in the early days of office automation, including a fair stint as editor of the BCS's Word Processing and Office Automation specialist group newsletter. IT revolution During the 80's and 90's he cautiously exploited the developments in technology as PCs went from isolated single purpose tools - to locally networked departmental groups with a specific purpose and shared data - to fully networked, multi purpose systems. Applications included: A lot of critical programming for various financial services companies, stores, scientific inventory management, many odd databases, ad-hoc technical support and a multitude of small programming and consultancy jobs. In general his preferred approach is to establish a long term advisory and support role so that clients can 'pick up the phone' about urgent technical issues or general strategic matters. Business analysis His business insight has brought about significant changes to the quality and efficiency of clients. One instance of this is a thorough investigation of the way in which 'High street' optometry is managed within the National Health Service. Vague dissatisfaction with the procedures and confusion about how to manage professional standards was replaced by professionally designed procedures, an 'its so obvious when you put it like that' quality system, methodically designed formal protocols, and a strategic plan for implementation. The Bad-Good-Best model of competency (for clinical governance in this case) was a result of this work. The web Publishing on the web started out as an interesting hobby in 1995, developing as the technology, capacity and ubiquity of the web developed. Currently concentrating on PHP and mySQL, the object is to combine robust system design with efficient code production to exploit the many new ways organisations can operate in the new Internet age. Trivia BSc. Degree in engineering. Was chairman of and coach at Tiptree Rollerskating Club for 14 years. Qualified cycling instructor. Fool of Maldon Greenjackets Morris. Songwriter. Programming Version 0.4 Page 3 of 356 CHAPTER HEADINGS 0. Take aim 1. Begin! 2. The basic technology of programming 3. Logic 4. Control structures 5. First steps in coding 6. Data structures 7. Data gets intelligent 8. Progress review 9. Let us code 10. Databases 11. User interfaces 12. Good code (Anatomy of melancholy,Threads,Algorithms) 13. Testing and quality 14. Code interlude 15. Serving 16. Security 17. Assisted development 18. Get a life 19. Review Glossary A. Using Javascript B. Binary logic C. CD collection D. TinyDate object E. Compiling and linking. Libraries F. Filing system G. Quality in a nutshell H. Two quick management tools @@@ To be expanded. Needs to be presented as a dynamic progression not a bare catalogue. Programming Version 0.4 Page 4 of 356 Introduction Objective I was asked which was the better of two computer programming languages for a beginner to learn. Neither was brilliant, so I did what hackers do - rolled my own. Then I realised it was the wrong question, and I should have read between the lines: How does a non-programmer become a programmer? It soon became clear that the programming languages, development environments, computer science references and years of experience were secondary to: By thinking like a programmer. That is the objective of this book. You can use this book to go from complete novice to elite programmer, to learn how languages work, to discover how to design a program, how to convert ideas into high quality software and what techniques of logic and automation will give efficient and reliable results. • To begin with, for outright beginners, we'll work with a paper and pencil instruction language to get the feel for 'giving instructions'. • Then there's a look at the basics of computer languages - a bit of hands-on Javascript and HTML. • Followed by an introduction to Object Oriented design and programming with exercises that you can follow in whatever language you've chosen. • Gradually the subjects become more technical and the exercises more detailed giving you the opportunity to learn a little at a time both the knowledge and skill aspects. • As we go a theme is developed emphasising the importance of applying intellectual effort. The brain is a magnificent tool and I show you how to apply it to developing high quality software. • Finally we look at the necessary non-technical aspects of being a programmer such as inter-personal skills and self-discipline. This book is designed for anyone who is not afraid of applied brainwork. • the absolute beginner • the person who is doing 'a bit of programming' • non-computer people who wonder how to make the best use of the best programmers • career programmers who are wondering what is it that makes the best stand out and shine. Becoming a programmer Not only is programming creative, intellectually challenging and fun but people pay you well too! Programming Version 0.4 Page 5 of 356 •A technician is somebody who can understand instructions of a technical nature and if things go wrong can blame somebody else. • Management usually takes the responsibility of actually making workable systems work and even defining what "work" means. To make a workable system fail you have to be management. To insist a hopeless system is delivering results you have to be a suit. •An engineer is someone who has the responsibility for designing and building a workable system. As a Real Programmer1 you will be an engineer. You'll have far more knowledge about the technology than the technicians and a much better grasp of the Right Way to do things than the suits. If, by half-way through this book you've cottoned-on to the concept of 'a real programmer as an engineer' then by the end you'll have the knowledge and outlook (if not yet the experience2) to be able to make an impact. This 'impact' might be in personal achievement of being able to write a program to solve Sudoku puzzles, or to collect the data and draw the graph that gets the sales manager sacked3 for being a useless waste of space - or gives the sales manager the tools so they can achieve their aspirations.4 If all you want to do is learn how to program in language 'X' (where 'X' is your particular choice of language) then this book will help you a bit, but not enough to be an expert in 'X'. Go and get "How to program in 'X' in 27½ minutes". If you have already done a bit of computer programming then *this book is for you* even though you think you know the subject. Hey! Guess what books steam engine buffs read - Yes, that's right: Books on steam engines. This is a specialist subject and there are loads of wrinkles and fundamental concepts that you can miss even if you do the job every day. One of those might change your whole outlook, prevent grief and open the odd oyster or two. You should still browse the early chapters and you might find the exercises are useful refreshment. But most of all, without prejudice to the above, this book is for people who want to program who have never done this sort of thing before. There's a nice slow start and even though later on the concepts might be complex, you'll be surfing the crest of the wave and it will be easy. 1 This term Real Programmer will crop up a lot. The insights and exercises in this book should give you the necessary leg-up to become an elite programmer capable of useful performance far beyond the average code-wallah. (Some people say 5 to 10 times better!) 2 Or the knowledge that you have the knowledge - There's a bit of Zen in all this. 3 Dumping rubbish is unpleasant but necessary. First somebody has to identify clearly, backed with figures, what is rubbish. Real programmers tend to be detached from politics and are often ideally placed to supply wood, nails, and drawings for a cross. More at the end. 4 Don't expect adequate recompense for saving bacon and many thousands of pounds. That's why good programmers should get paid large amounts of money for all that they do even if only 2% of their (often extra curricular) work brings in the Big Wins. All Real Programmers can tell you of, literally, five minutes where they cracked the case - often against opposition from slugs in suits! No wonder they're a feisty bunch.
Recommended publications
  • Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information
    Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information Index A bold page number indicates where a term is deined. abstract syntax tree, 105 C, 35, 45, 189 abstraction, 29, 141 C♯,35 see also model C++, 35, 190 agile, 64, 159, 198 camel case, 89 algorithm, 29, 147, 148, 196 change, 141, 144, 197 Alice, 44 checklist, 127 arguments, 25,28 cloud, 66 functions as, 45 code order of, 108 commented-out, 62 type of, 41, 108 completion, 52,90 assert, 71 dead, 64 assignment, 131 line length, 99 vs. comparison, 126 reputable body of, 46, 63, 94, 99 Atom, 18 spaghetti, 98, 122 autocompletion, 52,90 unreachable, 64 autosave, 57 code sense, 3, 133 coding, 4 backups, 65 coding dojo, 153 bar, see metasyntactic variable coding interview, 148 BASIC, 44, 125 command line, 15, 49 baz, see metasyntactic variable comment, 27, 70, 85–88 BlueJ, 44, 54 commenting-out, 62 breakpoint, 111 comparison bug, 32, 101, 190, 191 of booleans, 126 after removing, 124 of objects, 130 avoiding, 138 vs. assignment, 126 avoiding recurrence of, 77 compiler, 13, 35 in compiler, 109 bug, 109 removing, 122 incremental, 51 the Lauren bug, 78 computational complexity, 148 see also debugging content assist, 52,90 build, 51, 53 contract, 88 202 © in this web service Cambridge University Press www.cambridge.org Cambridge University Press 978-1-108-78987-5 — How to Write Good Programs Perdita Stevens Index More Information Index 203 crash, 118 time, 146 currying, 23 user, 146 Emacs, 18, 49, 58, 90, 95 data science, 192 embedded
    [Show full text]
  • Section “Creating R Packages” in Writing R Extensions
    Writing R Extensions Version 3.1.0 Under development (2013-03-29) R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. Copyright c 1999{2013 R Core Team i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::: 1 1 Creating R packages:::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The `DESCRIPTION' file :::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing:::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3 The `INDEX' file :::::::::::::::::::::::::::::::::::::::::: 10 1.1.4 Package subdirectories:::::::::::::::::::::::::::::::::::: 11 1.1.5 Data in packages ::::::::::::::::::::::::::::::::::::::::: 14 1.1.6 Non-R scripts in packages :::::::::::::::::::::::::::::::: 15 1.2 Configure and cleanup :::::::::::::::::::::::::::::::::::::::: 16 1.2.1 Using `Makevars'::::::::::::::::::::::::::::::::::::::::: 19 1.2.1.1 OpenMP support::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Section “Creating R Packages” in Writing R Extensions
    Writing R Extensions Version 3.0.0 RC (2013-03-28) R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. Copyright c 1999{2013 R Core Team i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::: 1 1 Creating R packages:::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The `DESCRIPTION' file :::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing:::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3 The `INDEX' file :::::::::::::::::::::::::::::::::::::::::: 10 1.1.4 Package subdirectories:::::::::::::::::::::::::::::::::::: 11 1.1.5 Data in packages ::::::::::::::::::::::::::::::::::::::::: 14 1.1.6 Non-R scripts in packages :::::::::::::::::::::::::::::::: 15 1.2 Configure and cleanup :::::::::::::::::::::::::::::::::::::::: 16 1.2.1 Using `Makevars'::::::::::::::::::::::::::::::::::::::::: 19 1.2.1.1 OpenMP support:::::::::::::::::::::::::::::::::::: 22 1.2.1.2
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 4.1.1 Patched (2021-09-22) R Core Team This manual is for R, version 4.1.1 Patched (2021-09-22). Copyright c 1999{2021 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Creating R packages ::::::::::::::::::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The DESCRIPTION file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 1.1.3 Package Dependencies::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3.1 Suggested packages:::::::::::::::::::::::::::::::::::::::::::::::::::::: 12 1.1.4 The INDEX file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 1.1.5 Package subdirectories :::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Year of the Horse. the Months of The
    here are many animals named in the Template of the Hidden Texts which appear anomalous to the context. It turns out they are Chinese years or Celtic symbols (such as salmon) or constellations. Also there are several codes which the word HORSE indicates. The months of the horse,which happen to be the same horses as those of the "apocalypse" (the "unveiling"), the constellations: of the winged horse Scheat of Pegasus, the colt Equulus the foal, the horse's blaze Kurnah in Cepheus, Hippocampus the seahorse, Leucippe the white horse, Alpha Andromeda and then there is the Year of the Horse. The months of the horse have far too many ciphers ~ nag, Dan, ornament, Ma, ears, Be, Elm, shoe, Ara, Bau and all the other words which mean Gemini, Cancer, Virgo, Libra/October, Scorpio and Sagittarius. Something big is slotted for Sagittarius. The White Horse Warning at Uffington is Sagittarius, complete with the large cross of the bow and arrow. Sagittarius is not shown at all on the zodiac column of St John The Divine. This forum is a collection of all the lines with the word horse or fourteen coded within them. Before we get started on the year which is the beginning of the end for our current lifestyle, a pertinent detail will be outlined. The matter of the "shar" of the Nibiru system. The shar is the "year", the orbit this solar system keeps. Many people have many different numbers of our years in one shart. It seems the Anakim (the biblical spelling for a civilization who have as many names as there are tribes on Earth) do have some control over their system.
    [Show full text]
  • A Glossary for IWGS (Auto-Generated)
    A Glossary for IWGS (Auto-Generated) Michael Kohlhase Computer Science, FAU Erlangen-Nürnberg https://kwarc.info/kohlhase July 1, 2021 Preface This document contains an English glossary for the course Informatische Werkzeuge in den Geistes- und Sozialwissenschaften at FAU Erlangen-Nürnberg (IWGS). It is automatically generated from the sources of the IWGS course notes and should be up-to-date with the course progress. The glossary contains definitions for all technical terms used in the course, both theones defined in the course, as well as the ones presupposed. The latter should be relatively few,since IWGS is intended as a beginner’s course. 1 1 Glossary for IWGS Given a description logic D, a D-ontology consists of D-ontology–a terminology (or TBox): concepts and roles and a set of concept axioms that describe them, and – assertions (or ABox): a set of individuals and statements about concept membership and role relationships for them. To make the role of arguments extremely clear, we write functions in λ-notation. For f = f(x; E) j x 2 Xg, where E is an expression, we write λx 2 X:E. n n-dim Cartesianλ-notation space n-dim Cartesian space: A := fha1; : : : ; ani j 1≤i≤n ) ai 2 Ag, call ha1; : : : ; ani a vector n-dimensional Cartesian space An n-dimensional Cartesian product A1 × ::: × An is called a n-dimensional Cartesian space n n over A (and denoted A ) iff Ai = A for some set A for all i. We call ha1; : : : ; ani 2 A a vector. n-fold Cartesian product Let A := fAi j 1≤i≤ng be a collection of sets, then the n-fold Cartesian product A1 × ::: × An is fha1; : : : ; ani j ai 2 Ai for all 1≤i≤ng, we call ha1; : : : ; ani 2 A1 × ::: × An an n-tuple.
    [Show full text]
  • Proceedings Chapter Reference
    Proceedings Chapter Featherweight Swift: A Core Calculus for Swift's Type System RACORDON, Dimitri, BUCHS, Didier Abstract Swift is a modern general-purpose programming language, designed to be a replacement for C-based languages. Although primarily directed at development of applications for Apple’s operating systems, Swift’s adoption has been growing steadily in other domains, ranging from server-side services to machine learning. This success can be partly attributed to a rich type system that enables the design of safe, fast, and expressive programming interfaces. Unfortunately, this richness comes at the cost of complexity, setting a high entry barrier to exploit Swift’s full potential. Furthermore, existing documentation typically only relies on examples, leaving new users with little help to build a deeper under- standing of the underlying rules and mechanisms. This paper aims to tackle this issue by laying out the foundations for a formal framework to reason about Swift’s type system. We introduce Featherweight Swift, a minimal language stripped of all features not essential to describe its typing rules. Featherweight Swift features classes and protocol inheritance, supports retroactive modeling, and emulates Swift’s [...] Reference RACORDON, Dimitri, BUCHS, Didier. Featherweight Swift: A Core Calculus for Swift’s Type System. In: Proceedings of the 13th ACM SIGPLAN International Conference on Software Language En- gineering (SLE ’20). 2020. Available at: http://archive-ouverte.unige.ch/unige:144345 Disclaimer: layout of this document may differ from the published version. 1 / 1 Featherweight Swift: A Core Calculus for Swift’s Type System Dimitri Racordon Didier Buchs University of Geneva University of Geneva Department of Computer Science Department of Computer Science Switzerland Switzerland [email protected] [email protected] Abstract ACM Reference Format: Swift is a modern general-purpose programming language, Dimitri Racordon and Didier Buchs.
    [Show full text]
  • Dina Karadžić & Vedran Gligo /'Fu:Bar/ 2015 /'Fu:Bar
    Dina Karadžić & Vedran Gligo /'fu:bar/ 2015 /'fu:bar/ - sometimes used as a placeholder name, a metasyntactic variable in computer programming or computer-related documentation / “Fucked up beyond all recognition” / a glitch art exhibition in Siva Galerija. /'fu:bar/ 2015 hosted over 80 international artists and /‘fu:bar/ 2016 is happening again this september in festival form, dedicated to the error as a form of artistic expression. http://fubar.space/ net.cube (timecapsule) timeCAPsule is a visionary virtual social space. In it you articulate your visions & wishes in the form of a dialogue with other anonymous users, asking and answering questions on utopian & dystopian alternate future, politics and ethics, idealism and nihilism ideologies, etc. By straining your imagination to foresee distant future and by expressing your mind you are encapsulating your current thoughts on future events in a timeCAPsule, which wraps around a constellation of ideas. After your login, you are invited to answer the first of the questions, by which you are unlocking every respective theme. Whilst you submit your answer, you can ask a question to another user, and keep that thread of thoughts in mind (and in your mailbox). Take care of your #userlink; you should save it till the timeCAPsule opens up, June 2042. Timecapsule is still under construction and was funded through the net.cube project. Net.cube started in January 2015 as part of the Centre for Drama Art programme to establish the conditions for Internet art projects and to encourage local Internet art production, its contextualization and mapping, as well as the communication among the interested parties.
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 3.1.1 (2014-07-10) R Core Team This manual is for R, version 3.1.1 (2014-07-10). Copyright c 1999{2013 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents Acknowledgements :::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Creating R packages::::::::::::::::::::::::::::::::::::::::::: 2 1.1 Package structure ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The DESCRIPTION file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 7 1.1.3 Package Dependencies :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 1.1.4 The INDEX file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 1.1.5 Package subdirectories ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 1.1.6 Data in packages ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Principles and Practice of Big Data Principles and Practice of Big Data Preparing, Sharing, and Analyzing Complex Information Second Edition
    Principles and Practice of Big Data Principles and Practice of Big Data Preparing, Sharing, and Analyzing Complex Information Second Edition Jules J. Berman Academic Press is an imprint of Elsevier 125 London Wall, London EC2Y 5AS, United Kingdom 525 B Street, Suite 1650, San Diego, CA 92101, United States 50 Hampshire Street, 5th Floor, Cambridge, MA 02139, United States The Boulevard, Langford Lane, Kidlington, Oxford OX5 1GB, United Kingdom © 2018 Elsevier Inc. All rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions. This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein). Notices Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods, professional practices, or medical treatment may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information, methods, compounds, or experiments described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility. To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein.
    [Show full text]
  • The Latexinfo Documentation Format Version 1.7
    The LaTEXinfo Documentation Format Version 1.7 Richard M. Stallman and Robert J. Chassell The Free Software Foundation, 675 Massachusetts Ave., Cambridge MA, Michael Clarkson Centre for Earth and Space Science, York University, North York, Ontario, M3J 1P3 February 23, 1995 Copyright c 1988, 1990, 1991 Free Software Foundation, Inc. Copyleft c 1988, 1989, 1990, 1991 Michael E. Clarkson. a This is version 1.7 of the LTEXinfo documentation, and is for Version 18 of GNU Emacs. a This is the second edition of the LTEXinfo documentation, and is also consistent with version 2 of Texinfo documentation ‘texinfo.tex’. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. Contents 1 Overview of LaTeXinfo 3 1.1 Advantages of LaTeXinfo over TeXinfo ....................... 4 1.2 Info files ........................................ 5 1.3 Printed Manuals ................................... 7 1.4 \-commands ...................................... 7 1.5 A Short Sample LaTeXinfo File ........................... 9 1.6 The Structure of this Manual ............................ 12 ILaTeX 13 2 Beginning a LaTeXinfo File 15 2.1 General Syntactic Conventions ........................... 15 2.2 What a LaTeXinfo File Must Have ........................
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 2.1.0 (2005-04-18) R Development Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copy- right notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the condi- tions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Development Core Team. Copyright c 1999–2005 R Development Core Team ISBN 3-900051-11-9 i Table of Contents Acknowledgements ........................................ 1 1 Creating R packages .................................... 2 1.1 Package structure ............................................................. 2 1.1.1 The ‘DESCRIPTION’ file .................................................... 2 1.1.2 The ‘INDEX’ file ........................................................... 4 1.1.3 The ‘install.R’ and ‘R_PROFILE.R’ files ................................... 5 1.1.4 Package subdirectories .................................................... 5 1.1.5 Package bundles .......................................................... 7 1.2 Configure and cleanup ......................................................... 7 1.2.1 Using ‘Makevars’ ........................................................
    [Show full text]