Introduction to code quality
|
|
- Arlene Norris
- 6 years ago
- Views:
Transcription
1 Introduction to code quality Maarten Vandersteegen De Nayer, KU Leuven October 25, 2017
2 0 What? 2
3 0 Demo project 3
4 0 Demo project - hardware 4
5 0 Demo project - software 5
6 0 Content 6 1 Code versioning 2 Working in team 3 Test automation 4 Static and Dynamic code analysis 5 Continuous Integration
7 1 Outline 7 1 Code versioning 2 Working in team 3 Test automation 4 Static and Dynamic code analysis 5 Continuous Integration
8 1 Centralized version control 8
9 1 Centralized version control - examples 9
10 1 Distributed version control 10
11 1 Distributed version control - examples 11
12 1 Source code hosting in the cloud 12 git free public repos git, mercurial free private repos (5 user limit) git free private repos svn, git, mercurial svn, git, mercurial free private free public repos repos tfvc, git free private repos (5 user limit)
13 1 Demo project - version control 13
14 1 Demo project - workflow 14 # development branch g i t p u l l g i t add m y f i l e ; g i t commit... g i t add m y f i l e ; g i t commit g i t push # r e l e a s e to master g i t checkout master g i t p u l l g i t merge development g i t push g i t checkout development
15 2 Outline 15 1 Code versioning 2 Working in team 3 Test automation 4 Static and Dynamic code analysis 5 Continuous Integration
16 2 Task management 16
17 2 Task management - github 17
18 2 Documentation 18 API documentation (.h files) 1 /* 2 * Parse HTTP response 3 * in: HTTP response string from server 4 * regex_passed: Regex that matches in when the build has passed 5 * regex_running: Regex that matches in when the build is running 6 * regex_failed: Regex that matches in when the build has failed 7 * state: The resulting build status 8 * return: 0 on success, -1 on failure 9 */ 10 int response_parser_get_result(const char *in, const char *regex_passed, 11 const char *regex_running, 12 const char *regex_failed, 13 enum BuildState *state); Use wiki for functional documentation: tutorials/howtos use case examples
19 2 Code review - github 19
20 2 Atlassian toolbox 20
21 3 Outline 21 1 Code versioning 2 Working in team 3 Test automation 4 Static and Dynamic code analysis 5 Continuous Integration
22 3 Layers of testing 22
23 3 Layers of testing 23
24 3 Flow of a unit test 24 fixating the test conditions to a known state One or more actions that operate on the SUT (system under test) One or more conditions that need to be true undo setup
25 3 Example in pseudo code 25 1 /* setup */ 2 login_manager_init(); 3 login_manager_set_expected_passphrase("3xp3ctedpa22"); 4 5 /* act */ 6 login_manager_login("3xp3ctedpa22"); 7 8 /* assert */ 9 assert(login_manager_success() == OK); /* teardown */ 12 login_manager_deinit(); 13 Keep it short Avoid conditions (if/else/switch)
26 3 Basic unit test in C using cmocka 26 1 #include <stdarg.h> 2 #include <stddef.h> 3 #include <setjmp.h> 4 #include <cmocka.h> /* yes, all these includes are needed */ 5 6 void test_example(void **state) 7 { 8 assert_true(1); 9 } int main(void) 12 { 13 const struct CMUnitTest tests[] = { 14 cmocka_unit_test(test_example), 15 }; 16 return cmocka_run_group_tests(tests, NULL, NULL); 17 } 18 gcc -Wall test.c -o test -lcmocka &&./test [==========] Running 1 test(s). [ RUN ] test_example [ OK ] test_example [==========] 1 test(s) run. [ PASSED ] 1 test(s).
27 3 Unit test example 27 response_parser.h 1 int response_parser_get_result(const char *in, const char *regex_passed, 2 const char *regex_running, 3 const char *regex_failed, 4 enum BuildState *state); 5 test.c 1 void test_response_parser_build_passed(void **state) 2 { 3 int res; 4 enum BuildState build_state; 5 char *response = "{\"key\":\"value\", \"state\":\"passed\"}"; 6 7 /* act */ 8 res = response_parser_get_result(response, "\"state\":\"passed\"", 9 "\"state\":\"started created\", 10 "\"state\":\"failed\"", 11 &build_state); /* assert */ 14 assert_int_equal(res, 0); 15 assert_int_equal(build_state, BUILD_STATE_PASSED); 16 } 17
28 3 Extended unit test example 28
29 3 Extended unit test example 29
30 3 What is a mock? 30
31 3 Extended unit test example 31 lamp_control.c (SUT) 1 void lamp_control_set_state(enum LampState *lamp_state, enum BuildState build_state) 2 { 3 build_state_to_lamp_state(lamp_state, build_state); 4 lamp_io_set_state(*lamp_state); 5 } 6 7 lamp_io.c (need to create a mock for this) 1 void lamp_io_set_state(enum LampState lamp_state) 2 { 3 switch (lamp_state) { 4 case LAMP_STATE_OFF : 5 digitalwrite(lamp_io_red_pin, LOW); 6 digitalwrite(lamp_io_green_pin, LOW); 7 break; 8 case LAMP_STATE_GREEN : 9 digitalwrite(lamp_io_red_pin, LOW); 10 digitalwrite(lamp_io_green_pin, HIGH); 11 break; 12 case LAMP_STATE_RED : }; 15 } 16
32 3 Extended unit test example 32 test.c 1 /* mock */ 2 void lamp_io_set_state(enum LampState lamp_state) 3 { 4 check_expected(lamp_state); 5 } 6 7 /* test */ 8 void test_set_state_build_failed(void **state) 9 { 10 enum LampState current_lamp_state; 11 /* setup */ 12 current_lamp_state = LAMP_STATE_OFF; 13 expect_value(lamp_io_set_state, lamp_state, LAMP_STATE_RED); 14 /* act */ 15 lamp_control_set_state(¤t_lamp_state, BUILD_STATE_FAILED); 16 /* assert */ 17 assert_int_equal(current_lamp_state, LAMP_STATE_RED); 18 } 19 NOTE: cmocka implementation
33 3 Layers of testing 33
34 3 Integration/system testing 34
35 3 Integration/system testing 35
36 3 Layers of testing 36
37 3 Acceptance testing 37
38 3 Acceptance testing 38 + real end-to-end slow running tests high maintanance
39 4 Outline 39 1 Code versioning 2 Working in team 3 Test automation 4 Static and Dynamic code analysis 5 Continuous Integration
40 4 Static code analysis 40 + Finding potential bugs/security issues + Detecting code smells + Guarantees 100% code coverage + Validating coding standards
41 4 Static code analysis aspects 41 abstract interpretation cyclomatic complexity coding standards duplicate code compiler warnings
42 4 Static code analysis process 42
43 4 Static code analysis tools 43 free/paid C/C++, C#, Java, JS, Python, Ruby open source C/C++, Objective-C open source C/C++, C#, Java, JS, PHP, Python,... paid C/C++, C#, Java, JS, Go, Python,... paid C/C++, Java,.NET open source C/C++
44 4 Abstract interpretation - demo project 44
45 4 Dynamic code analysis 45 + Measuring test coverage + Finding complex issues not detectable by static analysis + Gives insight for improving efficiency (speed, memory) No 100% coverage ensured Tests run (deadly) slow
46 4 Dynamic code analysis aspects 46 Code coverage Issue analysis Profiling
47 4 Dynamic code analysis process 47
48 4 Code coverage tools - C/C++ 48 gcov/lcov open source line/branch coverage llvm-cov open source line/region coverage paid decision/condition coverage paid all types of coverage
49 4 Code coverage gcov/lcov - demo project 49 1 CFLAGS += --coverage 2 LDFLAGS += --coverage 3 1 lcov... 2 genhtml... 3 Makefile Report generation
50 4 Code coverage - demo project 50
51 4 Issue analysis & profiling tools - C/C++ 51 open source Mem leak, threading, heap/cache profiling Sanitizers (also in gcc!) open source Mem leak, addr issues, threading, non init mem Insure++ paid Mem, threading, file I/O, network,...
52 4 Address sanitizer - demo project 52 Instrumentation flags 1 CFLAGS += -fno-omit-frame-pointer -fsanitize=address 2 LDFLAGS += -fno-omit-frame-pointer -fsanitize=address 3 On runtime error 1 ================================================================= 2 ==6305==ERROR: AddressSanitizer: stack-buffer-overflow on... 3 READ of size 18 at 0x7ffe1ac4ab51 thread T0 4 #0 0x7f3da492f1e #1 0x7f3da492fbcc in vfprintf... 6 #2 0x7f3da492fcf9 in fprintf... 7 #3 0x40262a in regex_report_and_cleanup /home/maarten/code/rpi-ci-lamp/ lib/response_parser.c:15 8 #4 0x4027d8 in perform_regex /home/maarten/code/rpi-ci-lamp/lib/ response_parser.c:
53 5 Outline 53 1 Code versioning 2 Working in team 3 Test automation 4 Static and Dynamic code analysis 5 Continuous Integration
54 5 Getting it all together 54
55 5 CI pipeline in practice 55
56 5 CI tools 56 free NXP, Netflix, Facebook, Ebay, NASA free/paid Apple, Stackoverflow, Ebay, Cochlear free/paid, hosted Facebook, Twitter free trial... free/paid, hosted EAVISE,... paid Materialise
57 5 CI pipeline demo project 57
58 5 Travis CI - how does it work? 58
59 5 Travis CI - how does it work? 59.travis.yml 1 dist: trusty 2 language: c 3 4 addons: 5 apt: 6 packages: 7 - libcurl4-openssl-dev 8 - libconfig-dev 9 install: 10 - wget tar -xvf cmocka tar.xz script: 15 - make DEBUG=1 NOWIRINGPI=1 test 16 -./test/run_unit_tests.sh after_success: 19 - gcov -bclp lib/*.c bin/*.c 20 - bash <(curl -s 21
60 5 Build status notifications 60 /rss feed on failure build lamp build result badges
61 5 Full demo 61
62
Continuous Integration and Deployment (CI/CD)
WHITEPAPER OCT 2015 Table of contents Chapter 1. Introduction... 3 Chapter 2. Continuous Integration... 4 Chapter 3. Continuous Deployment... 6 2 Chapter 1: Introduction Apcera Support Team October 2015
More informationIs code in your project sane enough?
Is code in your project sane enough? Red Hat Kamil Dudka February 6th, 2015 Abstract This demo session will show how we can easily check the sanity of code in our project. There is a tool named csmock,
More informationJetBrains TeamCity Comparison
JetBrains TeamCity Comparison TeamCity is a continuous integration and continuous delivery server developed by JetBrains. It provides out-of-the-box continuous unit testing, code quality analysis, and
More informationGit Basi, workflow e concetti avanzati (pt2)
Git Basi, workflow e concetti avanzati (pt2) Andrea Fornaia, Ph.D. Department of Mathema.cs and Computer Science University of Catania Viale A.Doria, 6-95125 Catania Italy fornaia@dmi.unict.it hfp://www.cs.unict.it/~fornaia/
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 informationmanifold Documentation
manifold Documentation Release 0.0.1 Open Source Robotics Foundation Mar 04, 2017 Contents 1 What is Manifold? 3 2 Installation 5 2.1 Ubuntu Linux............................................... 5 2.2
More informationDEBUGGING: DYNAMIC PROGRAM ANALYSIS
DEBUGGING: DYNAMIC PROGRAM ANALYSIS WS 2017/2018 Martina Seidl Institute for Formal Models and Verification System Invariants properties of a program must hold over the entire run: integrity of data no
More informationGit for Subversion users
Git for Subversion users Zend webinar, 23-02-2012 Stefan who? Stefan who? Freelancer: Ingewikkeld Stefan who? Freelancer: Ingewikkeld Symfony Community Manager Stefan who? Freelancer: Ingewikkeld Symfony
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 informationBuild & Launch Tools (BLT) Automating best practices for enterprise sites
Build & Launch Tools (BLT) Automating best practices for enterprise sites Who are you? Matthew Grasmick @grasmash on Drupal.org, twitter, etc. Acquia Professional Services, 4yrs Drupalist, 9yrs Maintainer
More informationCSE 303 Concepts and Tools for Software Development. Magdalena Balazinska Winter 2010 Lecture 27 Final Exam Revision
CSE 303 Concepts and Tools for Software Development Magdalena Balazinska Winter 2010 Lecture 27 Final Exam Revision Today Final review session! The final is not yet written, but you know roughly what it
More informationSoftware Development I
6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even
More informationFPLLL. 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 informationTangeloHub Documentation
TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................
More informationJenkinsPipelineUnit. Test your Continuous Delivery Pipeline. Ozan Gunalp - Emmanuel Quincerot
JenkinsPipelineUnit Test your Continuous Delivery Pipeline Ozan Gunalp - Emmanuel Quincerot Who we are Ozan Günalp Emmanuel Quincerot Developer at LesFurets Developer at LesFurets PhD in Computer Science
More informationSoftware Project (Lecture 4): Git & Github
Software Project (Lecture 4): Git & Github Wouter Swierstra, Atze Dijkstra Feb 2016 Wouter Swierstra, Atze Dijkstra Software Project (Lecture 4): Git & Github Feb 2016 1 / 45 Wouter Swierstra, Atze Dijkstra
More informationPraktische Aspekte der Informatik
Praktische Aspekte der Informatik Moritz Mühlhausen Prof. Marcus Magnor Optimization valgrind, gprof, and callgrind Further Reading Warning! The following slides are meant to give you a very superficial
More informationNew features in AddressSanitizer. LLVM developer meeting Nov 7, 2013 Alexey Samsonov, Kostya Serebryany
New features in AddressSanitizer LLVM developer meeting Nov 7, 2013 Alexey Samsonov, Kostya Serebryany Agenda AddressSanitizer (ASan): a quick reminder New features: Initialization-order-fiasco Stack-use-after-scope
More informationGETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY
GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY 1 REVERTING CHANGES 2 REVERTING CHANGES Change local files git reset git checkout Revert a commit in the branch history git revert Reset
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 informationAzure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region
Azure DevOps Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region What is DevOps? People. Process. Products. Build & Test Deploy DevOps is the union of people, process, and products to
More informationRevision control Advanced git
Revision control Advanced git Waterford Institute of Technology April 30, 2016 John Fitzgerald Waterford Institute of Technology, Revision controladvanced git 1/35 Presentation outline Estimated duration
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 informationA JSON Data Processing Language. Audrey Copeland, Walter Meyer, Taimur Samee, Rizwan Syed
A JSON Data Processing Language Audrey Copeland, Walter Meyer, Taimur Samee, Rizwan Syed Introduction Language design centered around the programmatic manipulation of JSON data and interacting with HTTP
More informationWhat is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;
What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development; Why should I use a VCS? Repositories Types of repositories: Private - only you and the
More informationIntroduction to Git and Github Repositories
Introduction to Git and Github Repositories Benjamin Audren École Polytechnique Fédérale de Lausanne 29/10/2014 Benjamin Audren (EPFL) CLASS/MP MP runs 29/10/2014 1 / 16 Version Control survey Survey Who
More informationCall for Discussion: Project Skara Investigating source code management options for the JDK sources
Call for Discussion: Project Skara Investigating source code management options for the JDK sources Joseph D. Darcy (darcy, @jddarcy) and Erik Duveblad (ehelin) Java Platform Group, Oracle Committers Workshop
More informationContinuous Delivery the hard way with Kubernetes. Luke Marsden, Developer
Continuous Delivery the hard way with Luke Marsden, Developer Experience @lmarsden Agenda 1. Why should I deliver continuously? 2. primer 3. GitLab primer 4. OK, so we ve got these pieces, how are we going
More informationCESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic
CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic - basics Matthäus Zloch GESIS Outline for this session Git introduction and some theory Git command basics (plus some little advanced)
More informationCS314 Software Engineering Configuration Management
CS314 Software Engineering Configuration Management Dave Matthews Configuration Management Management of an evolving system in a controlled way. Version control tracks component changes as they happen.
More informationJenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC
Jenkins: A complete solution From Integration to Delivery For HSBC Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz Agenda Why Jenkins? Introduction and some facts about Jenkins Supported
More informationIdentifying Memory Corruption Bugs with Compiler Instrumentations. 이병영 ( 조지아공과대학교
Identifying Memory Corruption Bugs with Compiler Instrumentations 이병영 ( 조지아공과대학교 ) blee@gatech.edu @POC2014 How to find bugs Source code auditing Fuzzing Source Code Auditing Focusing on specific vulnerability
More informationDEVNET Introduction to Git. Ashley Roach Principal Engineer Evangelist
DEVNET-1080 Introduction to Git Ashley Roach Principal Engineer Evangelist Twitter: @aroach Email: asroach@cisco.com Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the
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 informationIntroduction to Version Control using Git
Introduction to Version Control using Git CC-BY Outline What is Version Control Why we need it in science Git as a version control system Version Control System to manage different versions of a single
More informationCS480. Compilers Eclipse, SVN, Makefile examples
CS480 Compilers Eclipse, SVN, Makefile examples January 26, 2015 New Project New Project C/C++ Project Create a New C Project Choose Makefile Project EmptyProject Toolchain: Linux GCC Next Advanced C/C++
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 informationData and File Structures Laboratory
Tools: Gcov, Cscope, Ctags, and Makefiles Assistant Professor Machine Intelligence Unit Indian Statistical Institute, Kolkata August, 2018 1 Gcov 2 Cscope 3 Ctags 4 Makefiles Gcov Gcov stands for GNU Coverage
More informationGit and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48
Git and GitHub Dan Wysocki February 12, 2015 Dan Wysocki Git and GitHub February 12, 2015 1 / 48 1 Version Control 2 Git 3 GitHub 4 Walkthrough Dan Wysocki Git and GitHub February 12, 2015 2 / 48 Version
More informationCSE 303, Winter 2007, Final Examination 15 March Please do not turn the page until everyone is ready.
Name: CSE 303, Winter 2007, Final Examination 15 March 2007 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for two 8.5x11in pieces of paper (both
More informationStatic analysis, test coverage, and other 12+ letter words A tour of ways to find and prevent bugs in PostgreSQL
Static analysis, test coverage, and other 12+ letter words A tour of ways to find and prevent bugs in PostgreSQL Peter Eisentraut peter@eisentraut.org @petereisentraut PGCon 2014 Compiler Warnings Compiler
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 informationConfiguration Management
Configuration Management A True Life Story October 16, 2018 Page 1 Configuration Management: A True Life Story John E. Picozzi Senior Drupal Architect Drupal Providence 401-228-7660 oomphinc.com 72 Clifford
More informationcs 140 project 1: threads 9 January 2015
cs 140 project 1: threads 9 January 2015 git The basics: git clone git add git commit git branch git merge git stash git pull git push git rebase git Some guidelines & ideas: Write helpful commit and stash
More informationAdvanced Java Testing. What s next?
Advanced Java Testing What s next? Vincent Massol, February 2018 Agenda Context & Current status quo Coverage testing Testing for backward compatibility Mutation testing Environment testing Context: XWiki
More informationCode: analysis, bugs, and security
Code: analysis, bugs, and security supported by Bitdefender Marius Minea marius@cs.upt.ro 4 October 2017 Course goals improve skills: write robust, secure code understand program internals learn about
More informationTM DevOps Use Case TechMinfy All Rights Reserved
Document Details Use Case Name TMDevOps Use Case01 First Draft 5 th March 2018 Author Reviewed By Prabhakar D Pradeep Narayanaswamy Contents Scope... 4 About Customer... 4 Use Case Description... 4 Primary
More informationPolitecnico di Milano FACOLTÀ DI INGEGNERIA DELL INFORMAZIONE. Advanced Operating Systems A.A Exam date: 28 June 2016
Politecnico di Milano FACOLTÀ DI INGEGNERIA DELL INFORMAZIONE Advanced Operating Systems A.A. 2015-2016 Exam date: 28 June 2016 Prof. William FORNACIARI Surname (readable)... Matr... Name (readable)...
More informationitesla Power System Tools The open-source project for power grid simulations
itesla Power System Tools The open-source project for power grid simulations ipst session RTE Tech Rain 1 st June, 2017 Paris La Défense, France ipst open-source project itesla platform source code available
More informationPractical C Programming
Practical C Programming Advanced Preprocessor # - quotes a string ## - concatenates things #pragma h3p://gcc.gnu.org/onlinedocs/cpp/pragmas.html #warn #error Defined Constants Macro FILE LINE DATE TIME
More informationPRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
More informationObject Oriented Programming. Week 1 Part 2 Git and egit
Object Oriented Programming Part 2 Git and egit Lecture Review of Git Local Repository Remote Repository Using Git from Eclipse Review of Git 3 What is Git? Software Configuration Management (SCM) Supports
More informationSECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE
SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis and CSE 390a OUTLINE Introductions Code Reasoning Version control IDEs
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 informationMAGPIE Installation Guide (version 1.0)
MAGPIE Installation Guide (version 1.0) June 2017 Authors: Sophiane Senni, Pierre-Yves Péneau, Abdoulaye Gamatié 1 Contents 1 About this guide 3 2 Framework installation 4 2.1 Dependencies...................................
More informationFROM VSTS TO AZURE DEVOPS
#DOH18 FROM VSTS TO AZURE DEVOPS People. Process. Products. Gaetano Paternò @tanopaterno info@gaetanopaterno.it 2 VSTS #DOH18 3 Azure DevOps Azure Boards (ex Work) Deliver value to your users faster using
More informationScientific Software Development with Eclipse
Scientific Software Development with Eclipse A Best Practices for HPC Developers Webinar Gregory R. Watson ORNL is managed by UT-Battelle for the US Department of Energy Contents Downloading and Installing
More informationVersion control. what is version control? setting up Git simple command-line usage Git basics
Version control what is version control? setting up Git simple command-line usage Git basics Version control - intro ensure we keep track of changes, updates, contributions, suggested mods... could try
More informationProgramming in C. Lecture 9: Tooling. Dr Neel Krishnaswami. Michaelmas Term
Programming in C Lecture 9: Tooling Dr Neel Krishnaswami Michaelmas Term 2017-2018 1 / 24 Undefined and Unspecified Behaviour 2 / 24 Undefined and Unspecified Behaviour We have seen that C is an unsafe
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 informationEmbedded Software TI2726 B. 3. C tools. Koen Langendoen. Embedded Software Group
Embedded Software 3. C tools TI2726 B Koen Langendoen Embedded Software Group C development cycle 1. [Think] 2. Edit 3. Compile 4. Test 5. Debug 6. Tune UNIX toolbox 2. vi, emacs, gedit 3. gcc, make 4.
More informationHow we implemented TDD in Embedded C & C++
How we implemented TDD in Embedded C & C++ Work for Cornwall, England. based in Provide an embedded software development service. Introduced Lean/Agile practices in 2009 and have delivered approximately
More informationThis tutorial provides a basic understanding of the infrastructure and fundamental concepts of managing an infrastructure using Chef.
About the Tutorial Chef is a configuration management technology developed by Opscode to manage infrastructure on physical or virtual machines. It is an open source developed using Ruby, which helps in
More informationCSE 303, Winter 2007, Final Examination 15 March Please do not turn the page until everyone is ready.
Name: CSE 303, Winter 2007, Final Examination 15 March 2007 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for two 8.5x11in pieces of paper (both
More informationJTSK Programming in C II C-Lab II. Lecture 3 & 4
JTSK-320112 Programming in C II C-Lab II Lecture 3 & 4 Xu (Owen) He Spring 2018 Slides modified from Dr. Kinga Lipskoch Planned Syllabus The C Preprocessor Bit Operations Pointers and Arrays (Dynamically
More informationVersion Control with Git and What is there in Project 1 PALLABI GHOSH COMPUTER NETWORKS RECITATION 1
Version Control with Git and What is there in Project 1 PALLABI GHOSH (PALLABIG@ANDREW.CMU.EDU) 15-441 COMPUTER NETWORKS RECITATION 1 What is version control? Revisit previous code versions Backup projects
More informationUsing a debugger. Segmentation fault? GDB to the rescue!
Using a debugger Segmentation fault? GDB to the rescue! But first... Let's talk about the quiz Let's talk about the previous homework assignment Let's talk about the current homework assignment K findkey(v
More informationVersion Control: Gitting Started
ting Started Cai Li October 2014 What is Version Control? Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. Local Version
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationCS 314 Principles of Programming Languages. Lecture 9
CS 314 Principles of Programming Languages Lecture 9 Zheng Zhang Department of Computer Science Rutgers University Wednesday 5 th October, 2016 Zheng Zhang 1 CS@Rutgers University Class Information Homework
More informationUsing the Debugger. Michael Jantz Dr. Prasad Kulkarni
Using the Debugger Michael Jantz Dr. Prasad Kulkarni 1 Debugger What is it a powerful tool that supports examination of your program during execution. Idea behind debugging programs. Creates additional
More informationGit Introduction CS 400. February 11, 2018
Git Introduction CS 400 February 11, 2018 1 Introduction Git is one of the most popular version control system. It is a mature, actively maintained open source project originally developed in 2005 by Linus
More informationExercise Session 2 Systems Programming and Computer Architecture
Systems Group Department of Computer Science ETH Zürich Exercise Session 2 Systems Programming and Computer Architecture Herbstsemester 216 Agenda Linux vs. Windows Working with SVN Exercise 1: bitcount()
More informationA Practical Introduction to Version Control Systems
A Practical Introduction to Version Control Systems A random CAKES(less) talk on a topic I hope others find useful! a.brampton@lancs.ac.uk 4th February 2009 Outline 1 What is Version Control Basic Principles
More informationDynamic code analysis tools
Dynamic code analysis tools Stewart Martin-Haugh (STFC RAL) Berkeley Software Technical Interchange meeting Stewart Martin-Haugh (STFC RAL) Dynamic code analysis tools 1 / 16 Overview Introduction Sanitizer
More informationCopyright 2015 MathEmbedded Ltd.r. Finding security vulnerabilities by fuzzing and dynamic code analysis
Finding security vulnerabilities by fuzzing and dynamic code analysis Security Vulnerabilities Top code security vulnerabilities don t change much: Security Vulnerabilities Top code security vulnerabilities
More informationUNDER THE HOOD. ROGER NUNN Principal Architect/EMEA Solution Manager 21/01/2015
UNDER THE HOOD 1 ROGER NUNN rnunn@redhat.com Principal Architect/EMEA Solution Manager 21/01/2015 TOPICS CONTEXT AVAILABILITY UNDER THE HOOD INTEGRATION 2 TOPICS CONTEXT AVAILABILITY UNDER THE HOOD INTEGRATION
More informationComposer Best Practices Nils Private Packagist
Composer Best Practices 2018 Private Packagist https://packagist.com 2018? Delete your lock files 2018? Delete your lock files Composer Ecosystem Reality Update 2018 Best Practices? Deployment Improving
More informationVersion Control for PL/SQL
Version Control for PL/SQL What is the problem? How did we solve it? Implementation Strategies Demo!! Customer Spotlight Success Story: (In other words, this really works. :-) ) Rhenus Logistics, leading
More informationCon$nuous Integra$on Development Environment. Kovács Gábor
Con$nuous Integra$on Development Environment Kovács Gábor kovacsg@tmit.bme.hu Before we start anything Select a language Set up conven$ons Select development tools Set up development environment Set up
More informationEclipse Tutorial How To Write Java Program In Eclipse Step By Step Eclipse Tutorial For Beginners Java
Eclipse Tutorial How To Write Java Program In Eclipse Step By Step Eclipse Tutorial For Beginners Java We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our
More informationBeyond git add/commit/push
add Working dir commit Staging area push Local Remote Based on original version made by Alexis López @aa_lopez About us @tuxtor @edivargas jorgevargas.mx github.com/tuxtor Review traditionals commands
More informationLab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU
Lab 01 How to Survive & Introduction to Git Web Programming DataLab, CS, NTHU Notice These slides will focus on how to submit you code by using Git command line You can also use other Git GUI tool or built-in
More informationBuild and Test. The COIN-OR Way Ted Ralphs. COIN forgery: Developing Open Source Tools for OR
Build and Test The COIN-OR Way Ted Ralphs COIN forgery: Developing Open Source Tools for OR Institute for Mathematics and Its Applications, Minneapolis, MN Outline 1 Build and Install 2 Unit Testing 3
More informationProgramming Studio #9 ECE 190
Programming Studio #9 ECE 190 Programming Studio #9 Concepts: Functions review 2D Arrays GDB Announcements EXAM 3 CONFLICT REQUESTS, ON COMPASS, DUE THIS MONDAY 5PM. NO EXTENSIONS, NO EXCEPTIONS. Functions
More informationCSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community
CSCI-243 Exam 1 Review February 22, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu History and Evolution of Programming Languages 1. Explain the relationship between machine
More informationAdvanced Debugging and the Address Sanitizer
Developer Tools #WWDC15 Advanced Debugging and the Address Sanitizer Finding your undocumented features Session 413 Mike Swingler Xcode UI Infrastructure Anna Zaks LLVM Program Analysis 2015 Apple Inc.
More informationGDB and Makefile. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
GDB and Makefile Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island GDB Debugging: An Example #include void main() { int i; int result
More informationMaking things work as expected
Making things work as expected System Programming Lab Maksym Planeta Björn Döbel 20.09.2018 Table of Contents Introduction Hands-on Tracing made easy Dynamic intervention Compiler-based helpers The GNU
More informationNew Chaste Infrastructure
04/11/2015 New Version Control: Subversion -> Git New build system: Scons -> CMake New Continuous Integration: Buildbot Subversion -> Git Figure : https://git-scm.com Chaste developers dispersing to other
More informationClass Information ANNOUCEMENTS
Class Information ANNOUCEMENTS Third homework due TODAY at 11:59pm. Extension? First project has been posted, due Monday October 23, 11:59pm. Midterm exam: Friday, October 27, in class. Don t forget to
More informationContinuous Integration INRIA
Vincent Rouvreau - https://sed.saclay.inria.fr February 28, 2017 Contents 1 Preamble In this exercise, we will focus on the configuration of Jenkins for: 1. A simple aspect of C++ unit testing 2. An aspect
More informationDNS Zone Test Documentation
DNS Zone Test Documentation Release 1.1.3 Maarten Diemel Dec 02, 2017 Contents 1 DNS Zone Test 3 1.1 Features.................................................. 3 1.2 Credits..................................................
More informationCSE 391 Lecture 9. Version control with Git
CSE 391 Lecture 9 Version control with Git slides created by Ruth Anderson & Marty Stepp, images from http://git-scm.com/book/en/ http://www.cs.washington.edu/391/ 1 Problems Working Alone Ever done one
More informationTreating Deployments as Code with Puppet and the Atlassian Toolsuite Puppet Camp, Geneva
Treating Deployments as Code with Puppet and the Atlassian Toolsuite Christoph Leithner Who is celix? Puppet Labs Partner Atlassian Expert IT Service Management (ITSM) Continuous Deployment und DevOps
More informationProgramming for Data Science Syllabus
Programming for Data Science Syllabus Learn to use Python and SQL to solve problems with data Before You Start Prerequisites: There are no prerequisites for this program, aside from basic computer skills.
More informationGIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7
GIT VERSION CONTROL TUTORIAL William Wu w@qed.ai 2014 October 7 ABOUT ME Scientific Computing Specialist background: math, cs, ee interests: machine learning, DSP, imaging, data viz, cloud work: various
More informationTrinityCore Documentation
TrinityCore Documentation Release TrinityCore Developers February 21, 2016 Contents 1 Compiling TrinityCore 3 1.1 Requirements............................................... 3 1.2 Build Environment............................................
More informationUsing Eclipse Che IDE to develop your codebase. Red Hat Developers Documentation Team :54:11 UTC
Using Eclipse Che IDE to develop your codebase Red Hat Developers Documentation Team 2019-02-15 17:54:11 UTC Table of Contents Using Eclipse Che IDE to develop your codebase...............................................
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 information