Learning ctools and GammaLib development in an hour
|
|
- Octavia Cole
- 5 years ago
- Views:
Transcription
1 Learning ctools and GammaLib development in an hour Introduction to 6 th ctools coding sprint Jürgen Knödlseder (IRAP)
2 What I expect you know How to write C++ and/or Python code How to use Git Our GitLab development workflow! (see The content of our reference paper! (see 2
3 What I will cover in this presentation GammaLib and ctools overview Developing sustainable software Adding a new class to GammaLib Adding a new tool to ctools Adding a new script to ctools Adding tests 3
4 What is GammaLib? Using GammaLib! as C++ library 4
5 What is GammaLib? Using GammaLib! as Python module 5
6 What is in GammaLib? 6
7 What do I need as developer? ANSI C++ compiler (e.g. g++, clang) Git make, automake, autoconf, libtools cfitsio (survives without it, but not very useful) readline & ncurses (nice to have for tab completion) Python (including Python.h header file) SWIG Example installation on Mac OS X (after Xcode install): 7
8 What are ctools? Using ctools as! executables! from the! command line 8
9 What are ctools? Using ctools as! Python module 9
10 What is in ctools? 10
11 How do both relate? A ctool is a C++ executable that uses GammaLib as a! C++ library 11
12 How do both relate? A cscript is a Python script that uses GammaLib as a! Python module Example: cscaldb 12
13 Why should software be sustainable? Sustainability: meeting the needs of the present without compromising the ability of future generations to satisfy their own needs Short-term interest Long-term benefits Have a quick solution at the expense of software aging technical debt high lifecycle costs Have a long-lasting solution providing reliability adaptability maintainability 13
14 Why should software be sustainable? Sustainability: meeting the needs of the present without compromising the ability of future generations to satisfy their own needs Short-term interest Long-term benefits Have a quick solution at the expense of software aging technical debt high lifecycle costs Not sustainable Have a long-lasting solution providing reliability adaptability maintainability Sustainable 14
15 How to achieve sustainability? From Clear licensing Clear documentation Commonly adopted and modern programming language Modular design Clear revision management and change control Risk management Clearly established software testing regime and validated results Open and common standards Clear separation between data and code Clear understanding of dependencies 15
16 How we achieve sustainability? From Clear licensing GNU GPL3, Open Source Clear documentation Code documentation (Doxygen), User documentation (Sphinx) Commonly adopted and modern programming language C++ & Python Modular design implemented for GammaLib & ctools Clear revision management and change control Git workflow Risk management avoidance of OS, version, compiler and library dependencies (continuously tested) Clearly established software testing regime and validated results test suites are part of code (incl. Science Verification), Continuous Integration & Testing Open and common standards Strict application of coding standards Clear separation between data and code No data in code Clear understanding of dependencies Allowed dependencies established 16
17 What you should do Make sure you read and follow the coding conventions C++98 ISO (many servers still don t support C++11) Python (may evolve since few systems nowadays with Python 2.5-, but some with Python 2.6, and Python 2.7 supported at least until 2020) Indent with 4 spaces, no tabs Do not exceed 80 characters in one line Use coherent class and method names (always same method for same function, e.g. clear(), size(), is_empty(), append(), insert() ) Only use Python standard library modules Document your code (code documentation with Doxygen) Document the usage of your code (user documentation with Sphinx) Write unit tests (you may do this even before writing your code) If in doubt, ask for code review (can be nicely done using GitLab by everyone not just me :-) 17
18 Tutorial: adding a class to GammaLib Let s create a new spectral model (say an EBL model). Here are the steps: 1. Make sure that a Redmine issue exists for the new model 2. Find a good name for the class (e.g. GModelSpectralEBL) 3. Create a new feature branch (e.g add-ebl-model) 4. Start by copying an existing class 5. Adapt code 6. Add new files to build system 7. Update ChangeLog and NEWS file 8. Commit the code 9. Push the code into your GitLab fork 10. Ask for code review or code integration 18
19 .hpp code adaption (1) mass replacement your name and current year your name and purpose of file Adapt to class name (multiple! include protection) Things for which you need the interface definition Things that need to be known to exist 19
20 .hpp code adaption (2) use explicit to avoid automatic type conversion Implement all pure virtual methods from the base class add any other methods as needed Standard methods for initialisation, copying and freeing members Add members as needed (use mutable for pre-computed and cashed values) 20
21 .hpp code adaption (3) add one-liners as inline methods Every method has a single-line brief description Provide detailed description of method, including formulae, references, etc. (everything a user of this method may need) Document return value and units Document input parameters and units 21
22 Doxygen code documentation 22
23 .cpp code adaption (1) Make sure that package configuration is available (conditional compiling) Things that are used within the file Register the model (will handle detection in XML files) In case a method throws an exception 23
24 .cpp code adaption (2) Invoke base class constructor Initialise all class members Invoke base class constructor Initialise all class members Copy all class members Free all class members 24
25 .cpp code adaption (3) Don t copy identity Assign base class members Free all class members Initialise all class members Copy all class members Free all members, including all base classes (base classes last) Initialise all members, including all base classes (base classes first) 25
26 .cpp code adaption (4) The type of your model in the XML file One block for each parameter True if parameter has an analytical gradient, false otherwise Push all parameters into the parameter stack (allows iterating over parameters) 26
27 .cpp code adaption (5) The only function you really needed to adapt to the model (and possibly optimise) Formula in LaTeX Here the real magic happens And here even more magic happens. Hopefully you can work out the analytical parameter gradients (with respect to the parameter value, i.e. parameter gradients times parameter scaling) Compile option to catch NaNs / Infs 27
28 .i code adaption (1).i files are interface files processed by SWIG to create the gammalib Python module. SWIG generates a xxx_wrap.cpp and a xxx.py file for each module xxx. The GModelSpactralEBL.i file is part of the model module. Special SWIG directive 28
29 .i code adaption (2) Almost identical to the public class definition in the.hpp file No = operator No print() method Extensions can make the class more Pythonic (also extension written in Python possible) 29
30 Add new files to build system Update the following files and type automake &./configure include/gammalib.hpp include/makefile.am pyext/gammalib/model.i src/model/makefile.am 30
31 Tutorial: adding a new ctool Let s create a new tool to simulate pointings. Here are the steps: 1. Make sure that a Redmine issue exists for the new tool (#1632) 2. Find a good name for the tool (e.g. ctpntsim) 3. Create a new feature branch (e.g add-ctpntsim) 4. Start by copying an existing tool! $ cp -r src/ctobssim src/ctpntsim $ cp pyext/ctobssim.i pyext/ctpntsim.i $ cp doc/source/users/reference_manual/ctobssim.rst doc/source/ users/reference_manual/ctpntsim.rst 5. Rename files! $ mv src/ctpntsim/ctobssim.cpp src/ctpntsim/ctpntsim.cpp $ mv src/ctpntsim/ctobssim.hpp src/ctpntsim/ctpntsim.hpp $ mv src/ctpntsim/ctobssim.par src/ctpntsim/ctpntsim.par 6. Adapt code 7. Add new files to build system 8. Update ChangeLog and NEWS file 9. Commit the code 10. Push the code into your GitLab fork 11. Ask for code review or code integration 31
32 main.cpp code adaption The executable for a ctool allocates an instance of the tool, executes it and deletes the instance Each ctool is a C++ class Allocation Execution Deletion 32
33 ctpntsim.hpp code adaption Set tool name and version Choose appropriate base class 33
34 ctool base classes Tools dealing with observation containers Tools doing max. likelihood fitting 34
35 ctpntsim.cpp code adaption (1) Use tool name and version Allows passing an observation container upon construction Allows specification of command line parameters 35
36 ctpntsim.cpp code adaption (2) Every tool has a run() method Standard switch-on of debug mode Every tool first reads the user parameters Any saving is not done in the run() method but a dedicated save() method (allows in-memory handling) 36
37 ctpntsim.par file adaption Define parameters as needed. Use identical names than in other tools for identical meanings. Standard parameters 37
38 ctpntsim.rst file adaption Try to write text in block that fits in 80 characters (also used for text shown with help option). Describe meaning of each parameter Verbosity definition (try to follow this logic in your code): 0 : SILENT 1 : TERSE 2 : NORMAL 3 : VERBOSE 4 : EXPLICIT 38
39 ctpntsim.i code adaption Similar to the SWIG file for a GammaLib class 39
40 Add new files to build system Update the following files and type automake &./configure src/makefile.am src/ctpntsim/makefile.am pyext/ctools/tools.i configure.ac 40
41 Tutorial: adding a new cscript Let s create a new script to simulate pointings. Here are the steps: 1. Make sure that a Redmine issue exists for the new script (#1632) 2. Find a good name for the script (e.g. cspntsim) 3. Create a new feature branch (e.g add-cspntsim) 4. Start by copying an existing script! $ cp cscripts/csspec.py cscripts/cspntsim.py $ cp cscripts/csspec.par cscripts/cspntsim.par $ cp doc/source/users/reference_manual/csspec.rst doc/ source/users/reference_manual/cspntsim.rst 5. Adapt code 6. Add new files to build system 7. Update ChangeLog and NEWS file 8. Commit the code 9. Push the code into your GitLab fork 10. Ask for code review or code integration 41
42 cspntsim.py code adaption (1) Make Python script executable Derive class from ctools.cscript base class Use astropy-style docstrings (see coding conventions) Set name and version strings Call base class constructor 42
43 cspntsim.py code adaption (2) Code looks very similar to C++ example Execute method calls run() and save() 43
44 Add new files to build system Update the following files and type automake &./configure cscripts/ init.py.in cscripts/makefile.am 44
45 Fundamentals of software testing (from Unit testing: Validate that each unit (typically method of C++ or Python class) performs as designed. Integration testing: Combine individual units and test as a group. Expose faults in the interaction between the units. System testing: Test complete integrated software. Evaluate system s compliance with specified requirements (e.g. Can we generate a sky map? Can we fit a spectrum?) Acceptance testing: Test system for acceptability. Evaluate system s compliance for business requirements and assess whether acceptable for delivery (e.g. Can a Scientists perform a data analysis?) 45
46 Testing in GammaLib and ctools GammaLib includes classes for implementing tests GTestCase: implements one test GTestSuite: implements a collection of tests (for example all tests of a given module) GTestSuites: implements a container of test suites (for example all tests for a given module, all ctools tests, etc.) 46
47 Setting up a test suite in C++ Set all test methods One test method (for example one per class) Test assertions, values and exceptions Allocate and append test suite to container (TestGSupport class derives from GTestSuite base class) Run tests Write test report into XML file (JUnit format) 47
48 Setting up a test suite in Python Python test class derives from GPythonTestSuite Set all test methods Test method Test case 48
49 49
FPLLL. Contributing. Martin R. Albrecht 2017/07/06
FPLLL Contributing Martin R. Albrecht 2017/07/06 Outline Communication Setup Reporting Bugs Topic Branches and Pull Requests How to Get your Pull Request Accepted Documentation Overview All contributions
More informationCSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation Spring 2019 Section 2 Development Tools UW CSE 331 Spring 2019 1 Administrivia HW1 done! HW2 due next Tuesday. HW3 out today, deadline upcoming. Everyone should
More informationCSE 15L Winter Midterm :) Review
CSE 15L Winter 2015 Midterm :) Review Makefiles Makefiles - The Overview Questions you should be able to answer What is the point of a Makefile Why don t we just compile it again? Why don t we just use
More informationIBM Case Manager Mobile Version SDK for ios Developers' Guide IBM SC
IBM Case Manager Mobile Version 1.0.0.5 SDK for ios Developers' Guide IBM SC27-4582-04 This edition applies to version 1.0.0.5 of IBM Case Manager Mobile (product number 5725-W63) and to all subsequent
More informationUsing Doxygen to Create Xcode Documentation Sets
Using Doxygen to Create Xcode Documentation Sets Documentation sets (doc sets) provide a convenient way for an Xcode developer to search API and conceptual documentation (including guides, tutorials, TechNotes,
More informationtrisycl Open Source C++17 & OpenMP-based OpenCL SYCL prototype Ronan Keryell 05/12/2015 IWOCL 2015 SYCL Tutorial Khronos OpenCL SYCL committee
trisycl Open Source C++17 & OpenMP-based OpenCL SYCL prototype Ronan Keryell Khronos OpenCL SYCL committee 05/12/2015 IWOCL 2015 SYCL Tutorial OpenCL SYCL committee work... Weekly telephone meeting Define
More information11 Using JUnit with jgrasp
11 Using JUnit with jgrasp jgrasp includes an easy to use plug-in for the JUnit testing framework. JUnit provides automated support for unit testing of Java source code, and its utility has made it a de
More informationTechnology Background Development environment, Skeleton and Libraries
Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,
More informationSection 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3
CS162 January 19, 2017 Contents 1 Make 2 1.1 More details about Make.................................... 2 2 Git 3 2.1 Commands to know....................................... 3 3 GDB: The GNU Debugger
More informationSoftware Engineering Practices. PHY 688: Numerical Methods for (Astro)Physics
Software Engineering Practices Class Business Does everyone have access to a Linux or Unix machine to work from? What programming languages do each of you typically use? Software Engineering Practices
More informationExperiences from the Fortran Modernisation Workshop
Experiences from the Fortran Modernisation Workshop Wadud Miah (Numerical Algorithms Group) Filippo Spiga and Kyle Fernandes (Cambridge University) Fatima Chami (Durham University) http://www.nag.co.uk/content/fortran-modernization-workshop
More informationBitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)
Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm) Continuous Integration / Continuous Testing Seminary IIC Requirements Java SE Runtime
More informationContinuous integration & continuous delivery. COSC345 Software Engineering
Continuous integration & continuous delivery COSC345 Software Engineering Outline Integrating different teams work, e.g., using git Defining continuous integration / continuous delivery We use continuous
More informationReview sheet for Final Exam (List of objectives for this course)
Review sheet for Final Exam (List of objectives for this course) Please be sure to see other review sheets for this semester Please be sure to review tests from this semester Week 1 Introduction Chapter
More informationHuman-Computer Interaction Design
Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 1 - Version control and HTML (2018-10-03) by Michael Bernstein, Scott Klemmer, Philip Guo, and Sean Kross [Announce
More informationCIS* Programming
CIS*1300 - Programming CALENDAR DESCRIPTION This course examines the applied and conceptual aspects of programming. Topics may include data and control structures, program design, problem solving and algorithm
More informationIntro to Linux & Command Line
Intro to Linux & Command Line Based on slides from CSE 391 Edited by Andrew Hu slides created by Marty Stepp, modified by Jessica Miller & Ruth Anderson http://www.cs.washington.edu/391/ 1 Lecture summary
More informationTools for the programming mid-semester projects
Contents GIT Quickstart 2 Teamwork 14 StyleCop Quickstart 14 Usage in VS2015 15 Usage in older VS versions 15 DoxyGen Quickstart 17 XML documentations 18 Doxygen 18 Please keep in mind that the remaining
More informationHow to set up SQL Source Control The short guide for evaluators
GUIDE How to set up SQL Source Control The short guide for evaluators 1 Contents Introduction Team Foundation Server & Subversion setup Git setup Setup without a source control system Making your first
More informationCS354R: Game Technology
CS354R: Game Technology DevOps and Quality Assurance Fall 2018 What is DevOps? Development Operations Backend facilitation of development Handles local and remote hardware Maintains build infrastructure
More informationThis version is generated on October 5, 2008.
This version is generated on October 5, 2008. CAYUGA USER MANUAL MINGSHENG HONG 1. OVERVIEW This document describes how to use Cayuga as an end user. We assume familiarity with concepts in Cayuga. A general
More informationMRCP. Installation Manual. Developer Guide. Powered by Universal Speech Solutions LLC
Powered by Universal Speech Solutions LLC MRCP Installation Manual Developer Guide Revision: 39 Last updated: August 28, 2017 Created by: Arsen Chaloyan Universal Speech Solutions LLC Overview 1 Table
More informationVersion Control in SAS Enterprise Guide 7.1
Version Control in SAS Enterprise Guide 7.1 Shahriar Khosravi Senior Analyst, Risk Management Risk Capital and Model Development Business Initiatives Winter 2018 Introduction Main Objectives Provide a
More informationLibSerial Documentation
LibSerial Documentation Release 1.0.0rc1 CrayzeeWulf Apr 05, 2018 Contents: 1 Feature Summary 3 2 Description 5 3 Download 7 4 Install 9 5 Tutorial 11 5.1 Opening a Serial Port I/O Stream....................................
More informationSFO17-315: OpenDataPlane Testing in Travis. Dmitry Eremin-Solenikov, Cavium Maxim Uvarov, Linaro
SFO17-315: OpenDataPlane Testing in Travis Dmitry Eremin-Solenikov, Cavium Maxim Uvarov, Linaro What is ODP (OpenDataPlane) The ODP project is an open-source, cross-platform set of APIs for the networking
More informationHaving Fun with Social Coding. Sean Handley. February 25, 2010
Having Fun with Social Coding February 25, 2010 What is Github? GitHub is to collaborative coding, what Facebook is to social networking 1 It serves as a web front-end to open source projects by allowing
More informationCptS 360 (System Programming) Unit 3: Development Tools
CptS 360 (System Programming) Unit 3: Development Tools Bob Lewis School of Engineering and Applied Sciences Washington State University Spring, 2018 Motivation Using UNIX-style development tools lets
More informationData Management, Spring 2015: Project #1
Advice The assignment description is long, and it is important that you follow the instructions carefully. Be sure to read the entire description before you start implementing. Note that we will be testing
More informationUnit title: Client Side Scripting for Web Applications (SCQF level 7)
Higher National Unit specification General information Unit code: HF4X 34 Superclass: CE Publication date: July 2016 Source: Scottish Qualifications Authority Version: 01 Unit purpose This Unit is designed
More informationBelle II - Git migration
Belle II - Git migration Why git? Stash GIT service managed by DESY Powerful branching and merging capabilities Resolution of (JIRA) issues directly be map to branches and commits Feature freeze in pre-release
More informationHuman-Computer Interaction Design
Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo, Lab TA: Sean Kross Lab 1 - Version control and HTML (2017-10-06) by Michael Bernstein, Scott Klemmer, Philip Guo, and
More informationSoftware Development & Education Center. Java Platform, Standard Edition 7 (JSE 7)
Software Development & Education Center Java Platform, Standard Edition 7 (JSE 7) Detailed Curriculum Getting Started What Is the Java Technology? Primary Goals of the Java Technology The Java Virtual
More informationFROM SCRIPT TO PACKAGES. good practices for hassle-free code reuse
FROM SCRIPT TO PACKAGES good practices for hassle-free code reuse WHAT S THIS TUTORIAL IS ABOUT How to make your code usable by someone else WHO AM I? Contributor to numpy/scipy since 2007 Windows, Mac
More informationECE 3574: Applied Software Design: Unit Testing using Catch. Chris Wyatt
ECE 3574: Applied Software Design: Unit Testing using Catch Chris Wyatt The goal of today s meeting it to learn about a very important part of programming, testing. Unit tests Integration tests Testing
More information6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5.
Page 1 of 5 6.170 Laboratory in Software Engineering Java Style Guide Contents: Overview Descriptive names Consistent indentation and spacing Informative comments Commenting code TODO comments 6.170 Javadocs
More informationJ A D E Te s t S u i t e
J A D E Te s t S u i t e USER GUIDE Last update: 12-January-2005 JADE3.4 Authors: Elisabetta Cortese (TILAB) Giovanni Caire (TILAB) Rosalba Bochicchio (TILAB) JADE - Java Agent DEvelopment Framework is
More informationTNM093 Practical Data Visualization and Virtual Reality Laboratory Platform
November 8, 2016 1 Introduction The laboratory exercises in this course are to be conducted in an environment that might not be familiar to many of you. It is based on open source software. We use an open
More informationLAT-TD-xxxxx-xx May 21, 2002
Document # Date LAT-TD-xxxxx-xx May 21, 2002 Author(s) Supersedes Page 1 of 12 LAT TECHNICAL NOTE System or Sponsoring Office Science Analysis Software Document Title SAS Recommendations for Code Documentation
More informationCS 261 Recitation 1 Compiling C on UNIX
Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Compiling C on UNIX Winter 2017 Outline Secure Shell Basic UNIX commands Editing text The GNU Compiler
More informationxmljson Documentation
xmljson Documentation Release 0.1.9 S Anand Aug 01, 2017 Contents 1 About 3 2 Convert data to XML 5 3 Convert XML to data 7 4 Conventions 9 5 Options 11 6 Installation 13 7 Roadmap 15 8 More information
More informationWhy Use the Autotools?...xviii Acknowledgments... xx I Wish You the Very Best... xx
CONTENTS IN DETAIL FOREWORD by Ralf Wildenhues xv PREFACE xvii Why Use the?...xviii Acknowledgments... xx I Wish You the Very Best... xx INTRODUCTION xxi Who Should Read This Book... xxii How This Book
More informationGeant4 Documentation
Geant4 Documentation 1.Current status and types of documentation 2.Process for committing documentation 3.Release schedule should it be more dynamic? 4.Future plans, publicity and outreach Alex Howard,
More informationDalton/LSDalton Installation Guide
Dalton/LSDalton Installation Guide Release 2016.0 Dalton/LSDalton developers October 13, 2016 Contents 1 Supported platforms and compilers 1 2 Basic installation 3 2.1 General..................................................
More informationLinux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017
Linux System Management with Puppet, Gitlab, and R10k Scott Nolin, SSEC Technical Computing 22 June 2017 Introduction I am here to talk about how we do Linux configuration management at the Space Science
More informationcontribution-guide.org Release
contribution-guide.org Release August 06, 2018 Contents 1 About 1 1.1 Sources.................................................. 1 2 Submitting bugs 3 2.1 Due diligence...............................................
More informationPython INTRODUCTION: Understanding the Open source Installation of python in Linux/windows. Understanding Interpreters * ipython.
INTRODUCTION: Understanding the Open source Installation of python in Linux/windows. Understanding Interpreters * ipython * bpython Getting started with. Setting up the IDE and various IDEs. Setting up
More informationcwmon-mysql Release 0.5.0
cwmon-mysql Release 0.5.0 October 18, 2016 Contents 1 Overview 1 1.1 Installation................................................ 1 1.2 Documentation.............................................. 1 1.3
More informationOpen CASCADE Technology. Building OCCT with WOK CONTENTS
Open CASCADE Technology Building OCCT with WOK CONTENTS 1. INTRODUCTION 2 2. PRE-REQUISITES 2 3. INSTALL BINARY WOK PACKAGE 2 3.1. Windows 2 3.2. Linux 4 3.3. Mac OS X 5 4. INITIALIZE A WORKBENCH 6 5.
More informationswiftenv Documentation
swiftenv Documentation Release 1.3.0 Kyle Fuller Sep 27, 2017 Contents 1 The User Guide 3 1.1 Installation................................................ 3 1.2 Getting Started..............................................
More informationNetCDF Build and Test System. Ed Hartnett, 1/25/8
NetCDF Build and Test System Ed Hartnett, 1/25/8 Outline NetCDF Repository Building NetCDF Testing NetCDF NetCDF Code Repository We use cvs for netcdf code repository. The cvs repository module is called
More informationCOMPUTER SCIENCE LARGE PRACTICAL.
COMPUTER SCIENCE LARGE PRACTICAL Page 45 of 100 SURVEY RESULTS Approx. 1/5 of class responded; statistically significant? The majority of you have substantial experience in Java, and all have at least
More informationBrief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as
Brief overview of the topic and myself the 7 VCS used so far (different one each time), still many unused Acts as a time-machine, and almost as contentious as the text editor This talk tries to address
More informationyaml4rst Documentation
yaml4rst Documentation Release 0.1.5 Robin Schneider Mar 16, 2017 Contents 1 yaml4rst introduction 3 1.1 Usage................................................... 3 1.2 Features..................................................
More informationFedora Astronomy. The benefits for astronomical software from integration into Linux distributions. Christian Dersch.
Fedora Astronomy The benefits for astronomical software from integration into Linux distributions Christian Dersch AG Astronomie, Philipps-Universität Marburg June 27, 2018 History of Fedora Astronomy
More informationSunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.
Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS 1 Introduction MOBILE, SOCIAL & CLOUD ARE RAISING CUSTOMER EXPECTATIONS We need a way to deliver software so fast that our
More informationGit. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015
Git CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015 1 Lecture Goals Present a brief introduction to git You will need to know git to work on your presentations this semester 2 Git
More informationGearthonic Documentation
Gearthonic Documentation Release 0.2.0 Timo Steidle August 11, 2016 Contents 1 Quickstart 3 2 Contents: 5 2.1 Usage................................................... 5 2.2 API....................................................
More informationIntroduction to Programming Microsoft.NET Applications with Visual Studio 2008 (C#)
Introduction to Programming Microsoft.NET Applications with Visual Studio 2008 (C#) Course Number: 6367A Course Length: 3 Days Course Overview This three-day course will enable students to start designing
More informationUSING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY
USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY AGENDA Version control overview Introduction and basics of Git Advanced Git features Collaboration Automation
More informationMultimedia-Programmierung Übung 3
Multimedia-Programmierung Übung 3 Ludwig-Maximilians-Universität München Sommersemester 2016 Ludwig-Maximilians-Universität München Multimedia-Programmierung 1-1 Today Ludwig-Maximilians-Universität München
More informationGRACES Data Reduction Cookbook
GRACES Data Reduction Cookbook Prepared by Eder Martioli GRACES Pipeline Team: Eder Martioli, Vinicius Placco, Andre-Nicolas Chene, Lison Malo, Kanoa Withington, Nadine Manset, Claire Moutou. Scientific
More informationConfiguration. Monday, November 30, :28 AM. Configuration
Configuration 11:28 AM Configuration refers to the overall set of elements that comprise a software product ("configuration items") software components modules internal logical files test stubs and scaffoldings
More informationPoetaster. Release 0.1.1
Poetaster Release 0.1.1 September 21, 2016 Contents 1 Overview 1 1.1 Installation................................................ 1 1.2 Documentation.............................................. 1 1.3
More informationFaculty of Computer Science Institute for System Architecture, Operating Systems Group. Complex Lab Operating Systems 2016 Winter Term.
Faculty of Computer Science Institute for System Architecture, Operating Systems Group Complex Lab Operating Systems 2016 Winter Term Introduction Requirements Basic Operating Systems Know-How Virtual
More informationArchan. Release 2.0.1
Archan Release 2.0.1 Jul 30, 2018 Contents 1 Archan 1 1.1 Features.................................................. 1 1.2 Installation................................................ 1 1.3 Documentation..............................................
More informationINF 212 ANALYSIS OF PROG. LANGS FUNCTION COMPOSITION. Instructors: Crista Lopes Copyright Instructors.
INF 212 ANALYSIS OF PROG. LANGS FUNCTION COMPOSITION Instructors: Crista Lopes Copyright Instructors. Topics Recursion Higher-order functions Continuation-Passing Style Monads (take 1) Identity Monad Maybe
More informationScripting Languages Course 1. Diana Trandabăț
Scripting Languages Course 1 Diana Trandabăț Master in Computational Linguistics - 1 st year 2017-2018 Today s lecture Introduction to scripting languages What is a script? What is a scripting language
More informationGithub/Git Primer. Tyler Hague
Github/Git Primer Tyler Hague Why Use Github? Github keeps all of our code up to date in one place Github tracks changes so we can see what is being worked on Github has issue tracking for keeping up with
More informationThese steps may include:
Build Tools 1 Build Tools Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include: 1. Compiling source code to binaries
More informationThe MPI API s baseline requirements
LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T990086-00- E 09/14/1999 The MPI API s baseline
More informationThere Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer
There Should be One Obvious Way to Bring Python into Production Sebastian Neubauer sebastian.neubauer@blue-yonder.com 1 Agenda What are we talking about and why? Delivery pipeline Dependencies Packaging
More informationSoftware Engineering 2 A practical course in software engineering. Ekkart Kindler
Software Engineering 2 A practical course in software engineering Quality Management Main Message Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase 3 1. Overview
More informationGit with It and Version Control!
Paper CT10 Git with It and Version Control! Carrie Dundas-Lucca, Zencos Consulting, LLC., Cary, NC, United States Ivan Gomez, Zencos Consulting, LLC., Cary, NC, United States ABSTRACT It is a long-standing
More informationWhat run-time services could help scientific programming?
1 What run-time services could help scientific programming? Stephen Kell stephen.kell@cl.cam.ac.uk Computer Laboratory University of Cambridge Contrariwise... 2 Some difficulties of software performance!
More informationShift Left Testing: are you ready? Live Webinar, Sept 19
Shift Left Testing: are you ready? Live Webinar, Sept 19 Guy Arieli CTO, Experitest 01 What exactly is Shift Left? Agenda 02 03 How Shift Left affects application development & testing organizational structures
More informationSoftware Systems Design. Version control systems and documentation
Software Systems Design Version control systems and documentation Who are we? Krzysztof Kąkol Software Developer Jarosław Świniarski Software Developer Presentation based on materials prepared by Andrzej
More information2.5. PA QA Software. NISP, NI-SCS Test Readiness Review IPNL, October
2.5. PA QA Software NISP, NI-SCS Test Readiness Review IPNL, October 2016 1 1) PA QA SW approach IPNL DASEIT Acquisition Data DASEIN Quality- Checking HDF5 PA PA PA QA NISP, NI-SCS Test Readiness Review
More informationVersion control system (VCS)
Version control system (VCS) Remember that you are required to keep a process-log-book of the whole development solutions with just one commit or with incomplete process-log-book (where it is not possible
More informationIndex. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309
A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48
More informationcollective.table Documentation Release 1.0.1
collective.table Documentation Release 1.0.1 August 29, 2011 CONTENTS i ii collective.table Documentation, Release 1.0.1 Project title collective.table Latest version 0.3 Project page http://pypi.python.org/pypi/collective.table
More informationSSH Deploy Key Documentation
SSH Deploy Key Documentation Release 0.1.1 Travis Bear February 03, 2014 Contents 1 Overview 1 2 Source Code 3 3 Contents 5 3.1 Alternatives................................................ 5 3.2 Compatibility...............................................
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationDarshan Institute of Engineering & Technology for Diploma Studies
CODING Good software development organizations normally require their programmers to follow some welldefined and standard style of coding called coding standards. Most software development organizations
More informationSoftware Engineering Practices. PHY 604: Computational Methods in Physics and Astrophysics II
Software Engineering Practices Class Business Our class website has all the lectures and examples: http://bender.astro.sunysb.edu/classes/numerical_methods/ We will use git / github to turn in our homework
More information7/2/2013 R packaging with Rstudio Topics:
7/2/2013 R packaging with Rstudio Topics: How to make an R package using RStudio Sharing packages using github or url Tip for speeding up code Using Sweave and RStudio to do 'reproducible research/programming'.
More informationEigen Tutorial. CS2240 Interactive Computer Graphics
CS2240 Interactive Computer Graphics CS2240 Interactive Computer Graphics Introduction Eigen is an open-source linear algebra library implemented in C++. It s fast and well-suited for a wide range of tasks,
More informationintroduction to modern c++
introduction to modern c++ Lecture 9 Rémi Géraud April 7, 2016 École Normale Supérieure de Paris Lecture 9 Handling large projects. 2 this lecture You now how to create simple C++ projects Create source
More informationCSE 333 Lecture 1 - Systems programming
CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting
More informationPython Project Documentation
Python Project Documentation Release 1.0 Tim Diels Jan 10, 2018 Contents 1 Simple project structure 3 1.1 Code repository usage.......................................... 3 1.2 Versioning................................................
More informationYumaPro yangdiff-pro Manual
YANG-Based Unified Modular Automation Tools YANG Module Compare Tool Version 18.10-6 Table Of Contents 1 Preface...3 1.1 Legal Statements...3 1.2 Additional Resources...3 1.2.1 WEB Sites...3 1.2.2 Mailing
More informationL4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia
L4/Darwin: Evolving UNIX Charles Gray Research Engineer, National ICT Australia charles.gray@nicta.com.au Outline 1. Project Overview 2. BSD on the Mach microkernel 3. Porting Darwin to the L4 microkernel
More informationAldryn Installer Documentation
Aldryn Installer Documentation Release 0.2.0 Iacopo Spalletti February 06, 2014 Contents 1 django CMS Installer 3 1.1 Features.................................................. 3 1.2 Installation................................................
More informationOperating System Design
Operating System Design Processes Operations Inter Process Communication (IPC) Neda Nasiriani Fall 2018 1 Process 2 Process Lifecycle 3 What information is needed? If you want to design a scheduler to
More informationPractical Programming with R
Practical Programming with R Stuart Borrett biol534 Why to write code Bruno Olveira http://nicercode.github.io/blog/2013-04-05-why-nice-code/ Review Lab 1 What were the most challenging Exercises? Why?
More informationDARPA introduction. Joost Westra
DARPA introduction Joost Westra Introduction Darpa & Tekkotsu Project work Previous work Practical RoboLab Why Darpa? Dutch ARchitecture Project for Aibos Problems with the old (German) code Creating your
More informationAbsolute C++ Walter Savitch
Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents
More informationCloud platforms T Mobile Systems Programming
Cloud platforms T-110.5130 Mobile Systems Programming Agenda 1. Motivation 2. Different types of cloud platforms 3. Popular cloud services 4. Open-source cloud 5. Cloud on this course 6. Some useful tools
More informationConfiguration Management
Configuration Management VIMIMA11 Design and integration of embedded systems Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017 Configuration
More informationPython for Earth Scientists
Python for Earth Scientists Andrew Walker andrew.walker@bris.ac.uk Python is: A dynamic, interpreted programming language. Python is: A dynamic, interpreted programming language. Data Source code Object
More informationVersion Control Systems
Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File
More information