Software Development Tooling Information, Opinion, Guidelines, and Tools

Total Page:16

File Type:pdf, Size:1020Kb

Software Development Tooling Information, Opinion, Guidelines, and Tools Editor: Diomidis Spinellis Athens University of Economics TOOLS OF THE TRADE and Business, [email protected] Software Development Tooling Information, Opinion, Guidelines, and Tools Diomidis Spinellis and Stephanos Androutsellis-Theotokis THIS COLUMN MARKS the end of a 10- tional guidelines, often in a “Best Prac- year period over which the Tools of the tices” section. The titles appearing at Trade department has been appearing in the gure’s center end with the issue and IEEE Software. As of the next issue, its volume number in which the column editor will be writing a department nearer appeared. to the magazine’s front page, so it seemed Figure 2 associates speci c indica- like a good opportunity to summarize tive tools with corresponding elements what this column has presented over the (such as “Continuous integration”). years. This was done by rst organizing Search the Web for the names of a few the material into a mind map and then tools appearing together, and you’ll nd laying out the results in the two gures comparisons, extensive lists, and more that appear in the following pages. Both related material. Not all tools appearing gures also appear on the column’s blog in the gure were mentioned in the col- (www.spinellis.gr/tools) with hyperlinks umns, and many tools deserving a listing to each column’s text and in a format that are missing. Nevertheless, if none of the can be printed as a poster. tools in a speci c category rings a bell, Figure 1 categorizes the major points read the corresponding column to see of each column into information, opin- how you can bene t from them. ion, and prescriptive guidelines. The Back in 2005, the rst column in this information and opinion elements are series lamented our industry’s under- grouped into eight broad themes: design, spending on tool development. Ten years writing code, building, tooling, opera- and 60 installments later, it seems that tions, working with others, professional the rst column was overly pessimistic. Post your comments online advancement, and software process. We’re blessed with many powerful tools by visiting the column’s blog: The presented guidelines add debug- that can enhance our work’s quality and www.spinellis.gr/tools ging, performance, and avoiding errors our own productivity. The real challenge into the mix. Many columns offer addi- is getting to use them. 0740-7459/14/$31.00 © 2014 IEEE NOVEMBER/DECEMBER 2014 | IEEE SOFTWARE 21 s6too.indd 21 10/3/14 1:41 PM TOOLS OF THE TRADE Tools of the Trade: A Ten-Year Recap Dear Editor 22(2) Information & Opinion Inventive Tool Use to Comprehend Big Code 25(5) Guidelines The Way We Program 25(4) Code Documentation 27(4) Start with the Most Dif­cult Part 26(2) Effective code editing Getting the Most Out of the Web 28(1) Start with the most difcult part Follow style guidelines Writing code How to understand code elytS edoC 28(2) Commenting guidelines Refactoring on the Cheap 29(1) Check error returns Systems Software 30(3) Use simple interfaces Ef­cient use of the Web Writing code Tool Writing: A Forgotten Art? 22(4) Invest in deploying Refactoring on the cheap The Tools at Hand 22(1) and learning tools Tooling How to write Working with Unix Tools 22(6) Use at text-based les systems software Sometimes the Old Ways Are Best 25(6) Beware of vendor lock-in The importance of identi­ers Drawing Tools 26(3) Avoid friction Virtualize Me 29(5) Unix tools Contribute to open Professional Developing in the Cloud 31(2) source software advancement Declarative drawing Tool Building on the Shoulders of Others 26(1) Be polite Working Virtualization Using and Abusing XML 25(2) with others Cloud-based tools Project Asset Portability 23(1) Start bottom-up Build on the The Tools We Use 24(4) Work top-down Tooling shoulders of others The Frictionless Development Look at the generated code Environment Scorecard 30(6) XML Bespoke Infrastructures 31(1) Place code and data breakpoints Need for high-level tools The Gatekeeper's Guide, or How to Kill a Tool 23(6) Use remote debugging Debugging Bespoke infrastructures Open Source and Professional Advancement 23(5) Perform post-mortem debugging Tools require Job Security 26(5) Add logging statements management support Version Control Systems 22(5) Compare differences Professional Unmaintainable code Git 29(3) advancement won't get you job security Basic Etiquette of Technical Communication 26(6) Run under a proler Debuggers and Logging Frameworks 23(3) Use tracing tools Working Version control systems Performance with others Etiquette of technical Differential Debugging 30(5) Consider main-memory communication I Spy 24(2) approaches Build tools Software Builders 25(3) Building Use a high-level language Continuous integration Continuous Integration and Its Tools 31(3) Utilize compiler options Domain-speci­c Farewell to Disks 27(6) languages Bug Busters 23(2) Perform static analysis Abstraction Software Tracks 27(2) Use assertions Avoiding A Pedagogical Framework for errors Variation Domain-Speci­c Languages 26(4) Set library ags Modularity Choosing a Programming Language 23(4) Introduce types It's About Time to Take Javascript (More) Seriously 27(3) Use domain-specic languages Declarative approaches Abstraction and Variation 24(5) Design Structure around Reuse and open On Paper 24(6) extensible architectures source components Easy parallelism Silver Bullets and Other Mysteries 24(3) Build process support Lessons from Space 28(6) Choose appropriate Scripting languages The Importance of Being Declarative 30(1) programming languages Rational metaprogramming Cracking Software Reuse 24(1) Draw on paper Code portability Choosing an Open Source License 27(1) Scrap unmaintainable code Choosing and Using Open Source Components 28(3) Keep code that works Software Agility drivers Package Management Systems 29(2) Design process Testing APIs, Libraries, and Code 29(6) Go for 80% UML, Everywhere 27(5) Leave safety margins Deployment advice Faking It 28(5) Standardize on UML System con­guration management tools Java Makes Scripting Languages Irrelevant? 22(3) Preserve architectural properties Operations Rational Metaprogramming 25(1) Virtualization Maintain backward compatibility Service Portability: Goodies vs. the Hair Shirt 30(4) orchestration tools Agility Drivers 28(4) Software Perform code and design reviews process First, Do No Harm 31(5) Don't Install Software by Hand 29(4) Virtualize Me 29(5) Service Orchestration with Rundeck 31(4) FIGURE 1. Major points of each Tools of the Trade column. The information and opinion elements are grouped into eight broad themes: design, writing code, building, tooling, operations, working with others, professional advancement, and software process. Acknowledgments The column editor gratefully acknowl- nos Christidis, Al Davis, Theodore Dou- Mark Murray, George V. Neville-Neil, edges the support of the following people, nas, Julian Elischer, Ruslan Ermilov, Ioannis Nikolaou, Panos Papadopoulos, who have contributed informal reviews Martin Fowler, Marios Fragkoulis, Jian- Colin Percival, Wes Peters, Nancy Pou- and insightful feedback over the past 10 nis Georgiadis, Robert Glass, Dimitris loudi, Vassilis Prevelakis, Linda Rising, years: Yiorgos Adamopoulos, Achilleas Glezos, Georgios Gousios, Junio C. Ha- Greg Schueler, Hellen C. Sharp, Dag- Anagnostopoulos, Dimitris Andreadis, mano, Poul-Henning Kamp, Panagiotis Erling Smørgrav, Henry Spencer, Kostas Phillip G. Armour, Giovanni Asproni, Kanavos, Vassilios Karakoidas, Isidor Stroggylos, Alexandra Vassiliou, Rob- Steve Berczuk, Grady Booch, Christian Kouvelas, George Kyriazis, Panagiotis ert N.M. Watson, Greg Wilson, Rebecca Brueffer, Wilko Bulte, Bryan Cantrill, Louridas, Christos KK Loverdos, Dimi- Wirfs-Brock, Alexios Zavras, and George Damianos Chatziantoniou, Konstanti- tris Mitropoulos, Marcel Moolenaar, M. Zouganelis. In addition, the column 22 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE s6too.indd 22 10/3/14 1:41 PM TOOLS OF THE TRADE Before you start coding (Information, Opinion, Guidelines) Draw on paper Reuse and open source components Easy parallelism XML Declarative drawing - Paper Licenses: Package management systems: Language-based: Unix tools: Libraries: - XMLStarlet Graphviz - pic - netpbm - R Project: - Pencil - Apache - RPM - CPAN - CTAN - OpenMP - Clojure - Shell pipelines - ATLAS - xgawk . dot - gnuplot - PGF/TikZ . ggplot2 - Eraser - BSD - Debian packages - MacPorts - MiKTeX - Scala - R/parallel - GNU parallel - Framewave - xsltproc . neato - GMT - ImageMagick . graphics - Color markers - GPL - Maven - Pkgsrc - Cygwin - Haskell - Erlang - xargs -P - Intel IPP . circo - UMLGraph - D3.js - Highlighters - LGPL - Portage - CRAN - F# - sgsh - NAG Library for SMP . twopi - Inkscape - processing.org - MIT - FreeBSD Ports - NuGet - make -j - QtConcurrent Tools you want to be aware of Unix tools Cloud-based tools (one from each category) - ar - grep - strings Version control: Localization: Email: Issue tracking, project Collaborative editing: Payment processing: Continuous integration: Bulk email campaigns: - awk - head - tail - Bitbucket - Pootle - Gmail management, & collaboration: - Etherpad - Braintree - Bamboo - CampaignMonitor - comm - jar - tar - GitHub - Transifex - Outlook.com -Asana - Google Docs - Chargify - Cloudbees - Mailchimp - cut - javap - uniq Remote application - WebTranslateIt - Yahoo! Mail -Basecamp - Stypi - PayPal - Codeship - mailgun - dd - jot - wc monitoring: Real-time communication: Wiki work: -FogBugz - Microsoft Ofce 365 - Stripe Deployment servers:
Recommended publications
  • BSD – Alternativen Zu Linux
    ∗BSD { Alternativen zu Linux Karl Lockhoff March 19, 2015 Inhaltsverzeichnis I Woher kommt BSD? I Was ist BSD? I Was ist sind die Unterschiede zwischen FreeBSD, NetBSD und OpenBSD? I Warum soll ich *BSD statt Linux einsetzen? I Chuck Haley und Bill Joy entwickeln den vi in Berkeley I Bill Joy erstellt eine Sammlung von Tools, 1BSD I Unix Version 7 erscheint I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I 1978 I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I Bill Joy erstellt eine Sammlung von Tools, 1BSD I Unix Version 7 erscheint I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 1978 I Chuck Haley und Bill Joy entwickeln den vi in Berkeley I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I Unix Version 7 erscheint I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 1978 I Chuck Haley und Bill Joy entwickeln den
    [Show full text]
  • Analysis and Prediction of Number of Open Bugs Per Day by Using
    International Journal of Research and Scientific Innovation (IJRSI) | Volume V, Issue V, May 2018 | ISSN 2321–2705 Analysis and Prediction of Open Bugs Using Machine Learning Algorithms Sachin A S, Dr. Rajashree Shettar Department of Computer Science and Engineering, R V College of Engineering, Mysuru Road, Bengaluru, Karnataka, India. Abstract– There are many fault tracking repositories, some of problem[2]. Atlassian JIRA, Bugzilla, Mantis BT, Trac, them are YouTrack, Bugzilla, MantisBT and Atlassian JIRA. YouTrack etc., are some of the issue tracking systems which Atlassian JIRA repository has been used in this study, as it is are used in the software industries. But most extensively extensively accepted by most of the software companies. This accepted are JIRA and Bugzilla as they provide many features repository contains significant information of many projects. which are helpful for software development like task tracking, Each project has different kinds of issues such as bug(faults) reports, enhancement required to an existing feature, and new issues, bug, features many plugins to integrate with versioning feature of the product and task that needs to be done. This paper systems such as Git, mercury etc., and project management. focuses on analysing the previously raised bug report(history) to Consistently both commercial and open source projects understand the correlation and dependability of the attributes experience many changes to represent new client requirements like number of bugs created per day, their priority, number of days or hours taken to resolve etc., The data is then processed with the consideration of improving existing features, creation into a new format which will comply to machine learning of new features or to fix bugs.
    [Show full text]
  • Opensource Software in Mac OS X V. Zhhuta
    Foss Lviv 2013 191 - Linux VM з Wordpress на Azure під’єднано до SQL-бази в приватному центрі обробки даних. Як бачимо, бізнес Microsoft вже дуже сильно зав'язаний на Open Source! Далі в доповіді будуть розглянуті подробиці інтероперабельності платформ з Linux Server, Apache Hadoop, Java, PHP, Node.JS, MongoDb, і наостанок дізнаємося про цікаві Open Source-розробки Microsoft Research. OpenSource Software in Mac OS X V. Zhhuta UK2 LImIted t/a VPS.NET, [email protected] Max OS X stem from Unix: bSD. It contains a lot of things that are common for Unix systems. Kernel, filesystem and base unix utilities as well as it's own package managers. It's not a secret that Mac OS X has a bSD kernel Darwin. The raw Mac OS X won't provide you with all power of Unix but this could be easily fixed: install package manager. There are 3 package manager: MacPorts, Fink and Homebrew. To dive in OpenSource world of mac os x we would try to install lates version of bash, bash-completion and few other utilities. Where we should start? First of all you need to install on you system dev-tools: Xcode – native development tools that contain GCC and libraries. Next step: bring a GIU – X11 into your system. Starting from Mac OS 10.8 X11 is not included in base-installation and it's need to install Xquartz(http://xquartz.macosforge.org). Now it's time to look closely to package managers MacPorts Site: www.macports.org Latest MacPorts release: 2.1.3 Number of ports: 16740 MacPorts born inside Apple in 2002.
    [Show full text]
  • Project Management Software March 2019
    PROJECT MANAGEMENT SOFTWARE MARCH 2019 Powered by Methodology CONTENTS 3 Introduction 5 Defining Project Management Software 6 FrontRunners (Small Vendors) 8 FrontRunners (Enterprise Vendors) 10 Runners Up 22 Methodology Basics 2 INTRODUCTION his FrontRunners analysis minimum qualifying score of 3.96 Tis a data-driven assessment for Usability and 3.91 for User identifying products in the Project Recommended, while the Small Management software market that Vendor graphic had a minimum offer the best capability and value qualifying score of 4.55 for Usability for small businesses. For a given and 4.38 for User Recommended. market, products are evaluated and given a score for Usability (x-axis) To be considered for the Project and User Recommended (y-axis). Management FrontRunners, a FrontRunners then plots 10-15 product needed a minimum of 20 products each on a Small Vendor user reviews published within 18 and an Enterprise Vendor graphic, months of the evaluation period. based on vendor business size, per Products needed a minimum user category. rating score of 3.0 for both Usability and User Recommended in both In the Project Management the Small and Enterprise graphics. FrontRunners infographic, the Enterprise Vendor graphic had a 3 INTRODUCTION The minimum score cutoff to be included in the FrontRunners graphic varies by category, depending on the range of scores in each category. No product with a score less than 3.0 in either dimension is included in any FrontRunners graphic. For products included, the Usability and User Recommended scores determine their positions on the FrontRunners graphic. 4 DEFINING PROJECT MANAGEMENT SOFTWARE roject management software and document management, as well Phelps organizations manage as at least one of the following: time and deliver projects on time, on tracking, budgeting, and resource budget and within scope.
    [Show full text]
  • Table of Contents Modules and Packages
    Table of Contents Modules and Packages...........................................................................................1 Software on NAS Systems..................................................................................................1 Using Software Packages in pkgsrc...................................................................................4 Using Software Modules....................................................................................................7 Modules and Packages Software on NAS Systems UPDATE IN PROGRESS: Starting with version 2.17, SGI MPT is officially known as HPE MPT. Use the command module load mpi-hpe/mpt to get the recommended version of MPT library on NAS systems. This article is being updated to reflect this change. Software programs on NAS systems are managed as modules or packages. Available programs are listed in tables below. Note: The name of a software module or package may contain additional information, such as the vendor name, version number, or what compiler/library is used to build the software. For example: • comp-intel/2016.2.181 - Intel Compiler version 2016.2.181 • mpi-sgi/mpt.2.15r20 - SGI MPI library version 2.15r20 • netcdf/4.4.1.1_mpt - NetCDF version 4.4.1.1, built with SGI MPT Modules Use the module avail command to see all available software modules. Run module whatis to view a short description of every module. For more information about a specific module, run module help modulename. See Using Software Modules for more information. Available Modules (as
    [Show full text]
  • Getting Started Guide for Freebsd Release 18.11.11
    Getting Started Guide for FreeBSD Release 18.11.11 Jan 20, 2021 CONTENTS 1 Introduction 1 1.1 Documentation Roadmap...............................1 2 Installing DPDK from the Ports Collection3 2.1 Installing the DPDK FreeBSD Port..........................3 2.2 Compiling and Running the Example Applications.................3 3 Compiling the DPDK Target from Source6 3.1 System Requirements.................................6 3.2 Install the DPDK and Browse Sources........................7 3.3 Installation of the DPDK Target Environments...................7 3.4 Browsing the Installed DPDK Environment Target.................8 3.5 Loading the DPDK contigmem Module.......................8 3.6 Loading the DPDK nic_uio Module..........................9 4 Compiling and Running Sample Applications 12 4.1 Compiling a Sample Application........................... 12 4.2 Running a Sample Application............................ 13 4.3 Running DPDK Applications Without Root Privileges............... 14 5 EAL parameters 15 5.1 Common EAL parameters.............................. 15 5.2 FreeBSD-specific EAL parameters.......................... 17 i CHAPTER ONE INTRODUCTION This document contains instructions for installing and configuring the Data Plane Development Kit (DPDK) software. It is designed to get customers up and running quickly and describes how to compile and run a DPDK application in a FreeBSD application (bsdapp) environment, without going deeply into detail. For a comprehensive guide to installing and using FreeBSD, the following handbook is available from the FreeBSD Documentation Project: FreeBSD Handbook. Note: The DPDK is now available as part of the FreeBSD ports collection. Installing via the ports collection infrastructure is now the recommended way to install the DPDK on FreeBSD, and is documented in the next chapter, Installing DPDK from the Ports Collection.
    [Show full text]
  • Xcode Package from App Store
    KH Computational Physics- 2016 Introduction Setting up your computing environment Installation • MAC or Linux are the preferred operating system in this course on scientific computing. • Windows can be used, but the most important programs must be installed – python : There is a nice package ”Enthought Python Distribution” http://www.enthought.com/products/edudownload.php – C++ and Fortran compiler – BLAS&LAPACK for linear algebra – plotting program such as gnuplot Kristjan Haule, 2016 –1– KH Computational Physics- 2016 Introduction Software for this course: Essentials: • Python, and its packages in particular numpy, scipy, matplotlib • C++ compiler such as gcc • Text editor for coding (for example Emacs, Aquamacs, Enthought’s IDLE) • make to execute makefiles Highly Recommended: • Fortran compiler, such as gfortran or intel fortran • BLAS& LAPACK library for linear algebra (most likely provided by vendor) • open mp enabled fortran and C++ compiler Useful: • gnuplot for fast plotting. • gsl (Gnu scientific library) for implementation of various scientific algorithms. Kristjan Haule, 2016 –2– KH Computational Physics- 2016 Introduction Installation on MAC • Install Xcode package from App Store. • Install ‘‘Command Line Tools’’ from Apple’s software site. For Mavericks and lafter, open Xcode program, and choose from the menu Xcode -> Open Developer Tool -> More Developer Tools... You will be linked to the Apple page that allows you to access downloads for Xcode. You wil have to register as a developer (free). Search for the Xcode Command Line Tools in the search box in the upper left. Download and install the correct version of the Command Line Tools, for example for OS ”El Capitan” and Xcode 7.2, Kristjan Haule, 2016 –3– KH Computational Physics- 2016 Introduction you need Command Line Tools OS X 10.11 for Xcode 7.2 Apple’s Xcode contains many libraries and compilers for Mac systems.
    [Show full text]
  • Making Visual Studio Team System Work in Your Organisation Streamline Your Bug Handling and Development Management System
    Making Visual Studio Team System work in your Organisation Streamline your bug handling and development management system Bikes and Mackas… News Flash Visual Studio Team Edition for Database Professionals •New Visual Studio Database Project – import your database schema and put under source control. – build update scripts or packages and provides a deploy tool to the specified database. • Rename Refactoring • New T-SQL Editor • SchemaCompare • DataCompare • Database Unit Testing – using T-SQL or managed code. • DataGenerator – data based upon your existing production databases – can be deployed to a database prior to running unit tests thus ensuring consistent test results About Adam • Chief Architect for www.ssw.com.au doing: – internal corporate development and – generic off-the-shelf databases – Clients: Royal & SunAlliance, Westbus, Microsoft… • SSW Develops custom solutions for businesses across a range of industries such as Government, banking, insurance and manufacturing since 1990 • President .Net User Group, Sydney • Speaker for Microsoft TechEd and Roadshows, Dev Conn, VSLive…. • Microsoft Regional Director, Australia • [email protected] Agenda 1.History of Bug Systems 2. Exploring VSTS / TFS (a tour) 3. What’s wrong with VSTS for me 4. The Education - What you can customize 5. The Solution - including 3rd Parties How Bug Tracking Systems Work • Everyone needs one – even Microsoft! • Basic Requirements –Searchable – Reportable – Notifications when done •Nice-To-Haves – Source Control Integration – IDE integration (optional)
    [Show full text]
  • A Platform for Software Debugging and Crash Reporting
    Backtrace - A Platform for Software Debugging and Crash Reporting The Backtrace Vision 1 The Backtrace Platform 2 Capture 2 Analyze 3 Resolve 4 Comparing Backtrace with Generic Error Monitoring Tools 5 Backtrace Advantages 6 Feature & Capabilities List 8 The Backtrace Vision Backtrace was founded with a vision to build the best cross-platform, native application crash and error reporting technology for today’s complex software, video game systems, embedded technology, and IoT devices. The software development teams that work in these environments now have a greater impact on how the company performs. When software fails to perform consistently, customers will disappear and employees will function less efficiently. Backtrace developed a platform that empowers organizations to make new and better choices for investing in software. The Backtrace platform has broken new ground with technology that: A. Captures and analyzes crash data from multiple platforms, including desktop (Windows, Mac), mobile (iOS, Android) server systems (Linux), embedded devices (Linux, RTOS), and video game consoles, with new levels of granularity. B. Provides teams with easy to use analytics to prioritize bugs and application failures based on their impact. C. Enables collaboration and integration with the tools you have in place today to speed ability to resolve the issue. Page 1 of 9 Proprietary The Backtrace Platform Backtrace gives your team the automation and diagnostic tools they need to spot errors that matter, understand their impact, explore the context, and zero in on causes in hours or minutes instead of days or weeks. Backtrace is a turn-key solution that was purpose-built for crash and exception analysis.
    [Show full text]
  • Absolute BSD—The Ultimate Guide to Freebsd Table of Contents Absolute BSD—The Ultimate Guide to Freebsd
    Absolute BSD—The Ultimate Guide to FreeBSD Table of Contents Absolute BSD—The Ultimate Guide to FreeBSD............................................................................1 Dedication..........................................................................................................................................3 Foreword............................................................................................................................................4 Introduction........................................................................................................................................5 What Is FreeBSD?...................................................................................................................5 How Did FreeBSD Get Here?..................................................................................................5 The BSD License: BSD Goes Public.......................................................................................6 The Birth of Modern FreeBSD.................................................................................................6 FreeBSD Development............................................................................................................7 Committers.........................................................................................................................7 Contributors........................................................................................................................8 Users..................................................................................................................................8
    [Show full text]
  • Fulltext PDF 3,1 MB
    alpaka Parallel Programming – Online Tutorial Lecture 00 – Getting Started with alpaka Lesson 04: Installation www.casus.science Lesson 04: Installation How to download alpaka ● Install git for your operating system: ● Linux: sudo dnf install git (RPM) or sudo apt install git (DEB) ● macOS: Enter git --version in your terminal, you will be asked if you want to install git ● Windows: Download the installer from https://git-scm.com/download/win ● Open the terminal (Linux / macOS) or PowerShell (Windows) ● Navigate to a directory of your choice: cd /path/to/some/directory ● Download alpaka: git clone -b release-0.5.0 https://github.com/alpaka-group/alpaka.git alpaka Parallel Programming – Online Tutorial – Lesson 04: Installation | 2 Lesson 04: Installation Install alpaka’s dependencies ● alpaka only requires Boost and a modern C++ compiler (g++, clang++, Visual C++, …) ● Linux: ● sudo dnf install boost-devel (RPM) ● sudo apt install libboost-all-dev (DEB) ● macOS: ● brew install boost (Using Homebrew, https://brew.sh) ● sudo port install boost (Using MacPorts, https://macports.org) ● Windows: vcpkg install boost (Using vcpkg, https://github.com/microsoft/vcpkg) ● Depending on your target platform you may need additional packages ● NVIDIA GPUs: CUDA Toolkit (https://developer.nvidia.com/cuda-toolkit) ● AMD GPUs: ROCm / HIP (https://rocmdocs.amd.com/en/latest/index.html) alpaka Parallel Programming – Online Tutorial – Lesson 04: Installation | 3 Lesson 04: Installation Preparing alpaka for installation, Part 1 ● CMake is the preferred system
    [Show full text]
  • Jenkins Job Builder Documentation Release 3.10.0
    Jenkins Job Builder Documentation Release 3.10.0 Jenkins Job Builder Maintainers Aug 23, 2021 Contents 1 README 1 1.1 Developers................................................1 1.2 Writing a patch..............................................2 1.3 Unit Tests.................................................2 1.4 Installing without setup.py........................................2 2 Contents 5 2.1 Quick Start Guide............................................5 2.1.1 Use Case 1: Test a job definition................................5 2.1.2 Use Case 2: Updating Jenkins Jobs...............................5 2.1.3 Use Case 3: Working with JSON job definitions........................6 2.1.4 Use Case 4: Deleting a job...................................6 2.1.5 Use Case 5: Providing plugins info...............................6 2.2 Installation................................................6 2.2.1 Documentation.........................................7 2.2.2 Unit Tests............................................7 2.2.3 Test Coverage..........................................7 2.3 Configuration File............................................7 2.3.1 job_builder section.......................................8 2.3.2 jenkins section.........................................9 2.3.3 hipchat section.........................................9 2.3.4 stash section...........................................9 2.3.5 __future__ section.......................................9 2.4 Running.................................................9 2.4.1 Test Mode...........................................
    [Show full text]