Code Analysis Via Version Control History
|
|
- Carmella Carr
- 6 years ago
- Views:
Transcription
1 Code Analysis Via Version Control History Justin Mclean Class Software Blog:
2 Who am I? Freelance Developer Programming for 25 years Apache Flex PMC, Incubator PMC, Apache member and mentor for several incubator projects Run IoT meetup in Sydney Australia
3 In the last 40 years we have written billions of lines of code that will keep programmers employed for trillions of man hours in the next few thousand years to clean up this mess we ve made. Joe Armstrong
4 Your Code as a Crime Scene
5 You Write Code? 40-80% of all code is maintenance Goal is to understand existing code This is difficult, time consuming and expensive Perhaps more so with agile methodologies? How can we fix this?
6 Detecting Issues With Code Code reviews Pair programming Unit tests Continuous integration Static code analysis Complexity metrics
7 Scalability What about legacy code? What about large code bases? How do you decide what to work on? How to work out where the bugs are? What bugs are actually important?
8 Code Visualisation Can you visually represent code to get a better understanding of what s going on? Code City Make a city of each class arranged by packages in city blocks Height is number of methods, colour coded by no of lines and area by no of terms
9 Code City
10 Code City Limitations Supports only a few common languages Shows complexity (large buildings) but no real indication of where to possibly spend effort Existing hotspots may be stable
11 Version Control History Version control history contains a lot of useful information that we mostly ignore. Information like: Who changed what lines when How much and how often things change Can we aggregate information to tell us something useful?
12 Why Code Changes New functionality Fixing bugs Refactoring Poor understanding of the problem Change frequency == proxy for effort Code that changes in the past is likely to change again in the future
13 Effort and Complexity Change frequency / effort is not the whole story Configuration files changes frequently Overlaps in effort and complexity gives better possible hotspots
14 Code Hotspots Hotspots are places where complex code changes frequently Frequent changes to complex code usually indicate poor quality or buggy code Surprisingly simple complexity measures perform just as well as more complex measures
15 What use are Hotspots? Take cognitive biases out of the equation Where you bugs are likely to be Point out areas for code reviews refactoring extra testing documentation
16 Code Maat Performs various analysis on version control history Produces simple csv text files Supports parsing git, svn, mercurial version control systems Open source (GPL licensed)
17 Producing HotSpot Data Clone repo Work out time period Generate log summary data Generate change frequencies Generate code complexity metrics Combine to find hotspots
18 Apache Flex Project Large code base 25,000 files, 5 million loc or about 20 million loc including tests Mix of many file types and languages MXML, ActionScript, Java, XML files Two distinct phases, before and after donation Mature code base
19 Adobe Flex SDK Summary statistic,value number-of-commits,30090 number-of-entities,4672 number-of-entities-changed,34916 number-of-authors,18
20 Apache Flex SDK Summary statistic,value number-of-commits,3096 number-of-entities,51550 number-of-entities-changed,82508 number-of-authors,57
21 Complexity LOC is a terrible complexity measure, but turns out it s just as bad as most others It s fast and simple Language agnostic (mostly) CLOC
22 Apache Flex SDK Revisions module,revisions,code build.xml,142,1432 frameworks/build.xml,60,432 mustella/jenkins.sh,50,167 mustella/build.xml,44,1988 modules/downloads.xml,39,388 ide/checkallplayerglobals.sh,38,87 frameworks/projects/mobiletheme/defaults.css,35,1568 frameworks/projects/framework/src/mx/collections/listcollectionview.as,33,1442 frameworks/downloads.xml,31,257 installer.xml,29,821 frameworks/projects/spark/build.xml,28,231 frameworks/projects/advancedgrids/src/mx/controls/advanceddatagridbaseex.as,28,4781
23 Apache Flex SDK Last Year module,revisions,code frameworks/projects/framework/src/mx/collections/listcollectionview.as,13,1442 build.xml,12,1432 frameworks/projects/mobiletheme/defaults.css,10,1568 frameworks/projects/spark/src/spark/collections/sort.as,9,82 frameworks/projects/framework/src/mx/collections/sort.as,9,405 frameworks/projects/spark/src/spark/components/datagrid.as,8,2881 frameworks/projects/advancedgrids/src/mx/collections/hierarchicalcollectionviewcursor.as,7,830 frameworks/build.xml,7,432 frameworks/projects/framework/src/mx/collections/sortfield.as,7,356 frameworks/projects/framework/src/mx/utils/objectutil.as,7,791 frameworks/projects/framework/src/mx/collections/complexsortfield.as,7,31 frameworks/projects/framework/src/mx/collections/arraylist.as,7,356 frameworks/projects/spark/src/spark/components/callout.as,6,864 modules/downloads.xml,6,388
24 Hot Spot Confirmation Build and install files Mobile theme ListCollections DataGrid and AdvancedDataGrid DateField
25 Recent Hot Spots Past year: List Collections and Sorting Mobile Themes DataGrid and AdvancedDataGrid Build Scripts Experimental components
26 Hot Spot Limitations Just numbers so may need to normalise Time period may be hard to get right (hotspots move above over time) Some impact by individual commit styles May be some false positives Just a guide, but still a very useful one
27 Visualise Hot Spots Hard to understand a large amount of information Classes are nested in packages and we have complexity and change frequency / effort Circle packing works well. Circle size is loc, colour by change frequency. D3.js easy to use / can display easily Need CSV -> JSON conversion
28 Apache Flex SDK
29 Apache Flex SDK
30 Apache Flex SDK
31 Apache Flex SDK
32 Hotspot Analysis Hotspots are small proportion of all code Configuration files vs complex application logic Can have false positives
33 Hotspot Analysis 3rd party modules and compiler stable Experimental area is an unknown Data grids have been and are still an issue Collections classes being heavily worked on
34 Apache FlexJS
35 Hotspot Analysis Doesn t seem to be a lot of tests Large no of hotspots means lot of change happening XML and Flat theme likely to have bugs UIBase good candidate for refactoring
36 Apache Falcon
37 Hotspot Analysis Reasonably stable in most areas Flex JS / AS / Goog emitters prime candidate for refactoring
38 Apache Mynewt
39 Hotspot Analysis BLE area lots going on Changes in core around tasks, semaphores, scheduling, time, buffers Tests not changing as fast as other code
40 Complexity (again) LOC is OK as a bad measure but is there something a little better? Whitespace indentation! Easy to calculate (Mostly) language independent
41 DataGrid.as complexity CLOC shows 50/50 split between code and comments with 2800 lines of actual code. May be good idea to remove comments? DataGrid.as whitespace n,total,mean,sd,max 5860,9244,1.58,1.21,13 Mean is low, sd is low, but max is way too high We have a real hotspot
42 rev,n,total,mean,sd f52eb16,5608,8816,1.57,1.23 0c4290c,5609,8816,1.57, a8,5644,8856,1.57,1.23 fa2108b,5644,8856,1.57,1.23 abc381b,5644,8856,1.57, cdd7,5791,9061,1.56,1.22 5e6e5c3,5791,9061,1.56, da8,5791,9061,1.56,1.22 ec1ac28,5810,9090,1.56, b68de,5839,9124,1.56,1.22 b1d0359,5855,9164,1.57,1.22 1bef097,5851,9158,1.57,1.22 3e752d9,5854,9165,1.57,1.22 6c53962,5857,9172,1.57,1.22 c47f9f9,5855,9169,1.57,1.22 bb600fd,5855,9169,1.57, f8757,5853,9230,1.58,1.21 3a1769b,5860,9247,1.58, c20,5860,9244,1.58,1.21 Complexity Trend
43 UIBase Complexity Trend
44 Temporal Coupling File that need to change at the same time Causes: Copy paste Inadequate encapsulation Anti-pattern sometimes referred to as shotgun surgery
45 Detect Temporal Coupling Results are a bit noisy - may need to filter frameworks/projects/framework/src/mx/states/additems.as,frameworks/projects/mx/src/mx/core/container.as,83,6 frameworks/projects/framework/src/mx/states/additems.as,frameworks/projects/spark/src/spark/components/skinnablecontainer.as,83,6 frameworks/projects/mx/src/mx/core/container.as,frameworks/projects/spark/src/spark/components/group.as,76,7 frameworks/projects/mx/src/mx/containers/viewstack.as,frameworks/projects/spark/src/spark/components/skinnablecontainer.as,76,7 frameworks/projects/framework/src/mx/states/additems.as,frameworks/projects/mx/src/mx/containers/viewstack.as,76,7 frameworks/projects/mx/src/mx/containers/viewstack.as,frameworks/projects/mx/src/mx/core/container.as,76,7 frameworks/projects/spark/src/spark/components/group.as,frameworks/projects/spark/src/spark/components/skinnablecontainer.as,76,7 frameworks/projects/mx/src/mx/containers/viewstack.as,frameworks/projects/spark/src/spark/components/group.as,71,7 frameworks/projects/framework/src/mx/core/uicomponent.as,frameworks/projects/spark/src/spark/components/skinnablecontainer.as,63,10 frameworks/projects/framework/src/mx/core/uicomponent.as,frameworks/projects/framework/src/mx/states/additems.as,63,10 frameworks/projects/framework/src/mx/core/uicomponent.as,frameworks/projects/spark/src/spark/components/group.as,60,10
46 Apache Mynewt
47 Apache Flex SDK
48 Flex JS
49 Flex Falcon
50 Mynewt
51 Knowledge Map Generate ownership of files Multiple owners per file imply more potential bugs Knowledge maps - who know most about which files
52 Apache Flex SDK
53 Apache Flex SDK
54 What we have learnt Lot of useful information in your version control history waiting to be found out Technique scales easily to (very) large code bases Keep data formats simple Simple measures of effort and complexity are often as good as complex ones Can use version control history to find the areas that need attention in your code base
55 Links Code as a crime scene Code City CLOC Code Maat
56 Questions? Ask now, see me after the session, follow me on or me at Slides can be found at conference site.
How to Become an IoT Developer (and Have Fun!) Justin Mclean Class Software.
How to Become an IoT Developer (and Have Fun!) Justin Mclean Class Software Email: justin@classsoftware.com Twitter: @justinmclean Who am I? Freelance Developer - programming for 25 years Incubator PMC
More informationHow to get your Release Through the Incubator
How to get your Release Through the Incubator Justin Mclean Class Software Email: justin@classsoftware.com Twitter: @justinmclean Who am I? Freelance Developer - programming for 25 years Incubator PMC
More informationFINDING TOXIC CODE. Experiences and techniques for finding dangerous code in large multi-language codebases
FINDING TOXIC CODE Experiences and techniques for finding dangerous code in large multi-language codebases Kornelis (Korny) Sietsma - @kornys on Twitter WHO AM I? 2 WHAT DO I DO NOW? Consulting, Delivery,
More informationTREASURE ISLAND VERSION
TREASURE ISLAND VERSION CONTROL @StefanSeegers TREASURE ISLAND? Hotspots Architectural Decay Commit Messages Knowledge Map Tools WHERE DID MY JOURNEY STARTED? CRIMES? Crimes have offenders To find offenders,
More information1. Evolving Software. 1. Evolving Software. 2. Dissect your Architecture. Pro & Cons??? 3. Master the Social Aspects of Code
1. Evolving Software 1. Evolving Software 2. Dissect your Architecture 3. Master the Social Aspects of Code Pro & Cons??? git clone https://github.com/hibernate/hibernate-orm.git https://github.com/adamtornhill/code-maat.git
More informationFlexJS Component Source Code Patterns
FlexJS Component Source Code Patterns This page is not about "coding conventions" like where to put your curly braces. This page is about how a single.as file produces a component that runs in a SWF as
More informationThe Attraction of Complexity
The Attraction of Complexity Carlo Bottiglieri December 10, 2017 1 Introduction How is complexity distributed through a codebase? Does this distribution present similarities across different projects?
More informationPlanets Testbed Prototype Release and Report
Project Number Project Title Title of Deliverable Deliverable Number Contributing Sub-project and Work-package Deliverable Dissemination Level Deliverable Nature IST-2006-033789 Planets Testbed Prototype
More informationI Want To Go Faster! A Beginner s Guide to Indexing
I Want To Go Faster! A Beginner s Guide to Indexing Bert Wagner Slides available here! @bertwagner bertwagner.com youtube.com/c/bertwagner bert@bertwagner.com Why Indexes? Biggest bang for the buck Can
More informationUNIT I Programming Language Syntax and semantics. Kainjan Sanghavi
UNIT I Programming Language Syntax and semantics B y Kainjan Sanghavi Contents Bird s eye view of programming language concepts Syntax Semantics Pragmatics Programming Language Concepts A programming language
More informationElliotte Rusty Harold August From XML to Flat Buffers: Markup in the Twenty-teens
Elliotte Rusty Harold elharo@ibiblio.org August 2018 From XML to Flat Buffers: Markup in the Twenty-teens Warning! The Contenders XML JSON YAML EXI Protobufs Flat Protobufs XML JSON YAML EXI Protobuf Flat
More informationOpenEmbedded in the Real World
OpenEmbedded in the Real World Scott Murray Senior Staff Software Engineer Konsulko Group http://konsulko.com Who am I? Long time Linux user (over 20 years) Have done Linux software development for over
More informationArduino Platform Part I
Arduino Platform Part I Justin Mclean Class Software Email: justin@classsoftware.com Twitter: @justinmclean Blog: http://blog.classsoftware.com Who am I? Director of Class Software for almost 15 years
More informationCC PROCESAMIENTO MASIVO DE DATOS OTOÑO 2018
CC5212-1 PROCESAMIENTO MASIVO DE DATOS OTOÑO 2018 Lecture 1: Introduction Aidan Hogan aidhog@gmail.com THE VALUE OF DATA Soho, London, 1854 Cholera: What we know now Cholera: What we knew in 1854 1854:
More informationThe Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering
The Power of Unit Testing and it s impact on your business Ashish Kumar Vice President, Engineering Agitar Software, 2006 1 The Power of Unit Testing Why Unit Test? The Practical Reality Where do we go
More informationFlexJS. OmPrakash Apache Flex PMC Member Advisory Software Engineer, IBM
FlexJS OmPrakash Muppirala @bigosmallm bigosmallm@apache.org Apache Flex PMC Member Advisory Software Engineer, IBM Who am I? Advisory Software Engineer at IBM Apache Flex Committer and PMC Member UI Architect
More informationAgenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors Agenda
More informationSQLite vs. MongoDB for Big Data
SQLite vs. MongoDB for Big Data In my latest tutorial I walked readers through a Python script designed to download tweets by a set of Twitter users and insert them into an SQLite database. In this post
More informationCS121/IS223. Object Reference Variables. Dr Olly Gotel
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors CS121/IS223
More informationGETTING STARTED. User Story Mapping
GETTING STARTED User Story Mapping contents SECTION 1 user story maps what is a user story map? 3 examples of user story maps 4 breakdown of a user story map 5 why create user story maps? 6 benefits of
More informationMischa Kölliker. JavaLounge Zürich, 23. Juni 2009
Mischa Kölliker Ueli Kistler JavaLounge Zürich, 23. Juni 2009 Basel Baden Bern Brugg Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien & The RIA space What is Adobe
More informationGrading Rubric Homework 1
Grading Rubric Homework 1 Used Git, has many commits, over time, wrote appropriate commit comments, set up Git correctly with git config Cloning repository results in a working site, no broken links, no
More informationBuilding Flex Components
Michael Labriola Senior Consultant >> Adobe Certified Instructor Adobe Community Expert >> Flex Community Champion Building Flex Components 1 What are we going to cover? Understanding why we build components
More informationProject Horizon Technical Overview. Bob Rullo GM; Presentation Architecture
Project Horizon Technical Overview Bob Rullo GM; Presentation Architecture robert.rullo@sungardhe.com Agenda Banner Evolution Overview Project Horizon Overview Project Horizon Architecture Review Preparing
More informationWeek 5. CS 400 Programming III
Exam Conflicts are due this week: 1. Put all course meetings, quizzes, and exams in your calendar 2. Report any conflicts with cs400 exams by Friday of this week 3. Report complete information via the
More informationManagement. Software Quality. Dr. Stefan Wagner Technische Universität München. Garching 28 May 2010
Technische Universität München Software Quality Management Dr. Stefan Wagner Technische Universität München Garching 28 May 2010 Some of these slides were adapted from the tutorial "Clone Detection in
More informationWhat is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)
1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?
More informationTips and Tricks for Microsoft PowerPoint Game
Tips and Tricks for Microsoft PowerPoint Game Topics include: 1. Linking 2. Inserting Sound 3. Animation 4. Background Ideas 5. Buttons and Image Linking 6. Creating an Invisible Hot Spot 7. Set as One
More informationWelcome to Python! If you re the type of person who wants to know
In This Chapter The history of Python What people use Python for Chapter 1 Introducing Python Useful concepts for Python programming Welcome to Python! If you re the type of person who wants to know what
More informationBuilding modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek
Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek @wrzodek Roche Group Penzberg Founded 1896 in Basel, Switzerland Employing > 82,000 people Clear focus
More informationHow We Refactor, and How We Know It
Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More information3 Continuous Integration 3. Automated system finding bugs is better than people
This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can
More informationExperiences with Apache Beam. Dan Debrunner Programming Model Architect IBM Streams STSM, IBM
Experiences with Apache Beam Dan Debrunner Programming Model Architect IBM Streams STSM, IBM Background To define my point of view IBM Streams brief history 2002 IBM Research/DoD joint research project
More informationPainless Persistence. Some guidelines for creating persistent Java applications that work
Painless Persistence Some guidelines for creating persistent Java applications that work The Authors Anthony Patricio Senior JBoss Certification Developer Highest volume poster on early Hibernate forums
More information24 th Annual Research Review
24 th Annual Research Review April 4-6 2017 Towards Better Understanding of Software Quality Evolution Through Commit-Impact Analysis Pooyan Behnamghader USC CSSE pbehnamg@usc.edu Commit-Impact Analysis
More informationCase Study: Access Control. Steven M. Bellovin October 4,
Case Study: Access Control Steven M. Bellovin October 4, 2015 1 Case Studies in Access Control Joint software development Mail Steven M. Bellovin October 4, 2015 2 Situations Small team on a single machine
More informationDoxygen Flavor for Structure 101g
Doxygen Flavor for Structure 101g By Marcio Marchini (marcio.marchini@gmail.com) 2012/01/05 1) What is the Doxygen Flavor for Structure101g? This is a sort of a plugin for Structure 101g (called a flavor).
More informationCSE 190D Spring 2017 Final Exam Answers
CSE 190D Spring 2017 Final Exam Answers Q 1. [20pts] For the following questions, clearly circle True or False. 1. The hash join algorithm always has fewer page I/Os compared to the block nested loop join
More informationSANER 17. Klagenfurt, Austria
SANER 17 Klagenfurt, Austria Carol V. Alexandru, Sebastiano Panichella, Harald C. Gall Software Evolution and Architecture Lab University of Zurich, Switzerland {alexandru,panichella,gall}@ifi.uzh.ch 22.02.2017
More informationBD-HDMV vs BD-J Menus
BD-HDMV vs BD-J Menus and the winner is... Paul Masters A Wasting Time Production Table of Contents Introduction...3 Comparison Charts...4 General...4 BD-HDMV pages vs BD-J looping chapters...5 Discussion...6
More informationJava Without the Jitter
TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency
More informationMaintainability and Agile development. Author: Mika Mäntylä
Maintainability and Agile development Author: Mika Mäntylä ISO 9126 Software Quality Characteristics Are the required functions available in the software? How easy is it to
More informationHow we built a highly scalable Machine Learning platform using Apache Mesos
How we built a highly scalable Machine Learning platform using Apache Mesos Daniel Sârbe Development Manager, BigData and Cloud Machine Translation @ SDL Co-founder of BigData/DataScience Meetup Cluj,
More informationPython Unit Testing and CI Workflow. Tim Scott, Python Meetup 11/07/17
Python Unit Testing and CI Workflow Tim Scott, Python Meetup 11/07/17 A Little About Me Started as a CoOp Engineer (2007-2008) and Design Engineer at Adtran (2010-2014) Currently work at Abaco Systems
More informationUnit Testing & Continuous Integration
O n a blustery autumn evening five old friends met in the backroom of one of the city s oldest and most private clubs. Each had traveled a long distance from all corners of the world to meet on this very
More informationLanding Page Optimization What is Split Testing?... 13
Table of Contents Introduction... 4 Types of Landing Pages... 5 Elements of Successful Landing Pages... 8 Creating Stunning Landing Pages... 10 WordPress Themes & Plugins... 10 Templates & Systems... 11
More informationcomma separated values .csv extension. "save as" CSV (Comma Delimited)
What is a CSV and how do I import it? A CSV is a comma separated values file which allows data to be saved in a table structured format. CSVs look like normal spreadsheet but with a.csv extension. Traditionally
More informationTest Driven Development TDD
Test Driven Development TDD Testing Testing can never demonstrate the absence of errors in software, only their presence Edsger W. Dijkstra (but it is very good at the latter). Testing If it's worth building,
More informationChallenges, Benefits and Best Practices of Performance Focused DevOps. 1 #Dynatrace
Challenges, Benefits and Best Practices of Performance Focused DevOps Wolfgang Gottesheim @gottesheim 1 #Dynatrace When do we find performance problems? Developers Unit/Integration Tests Acceptance Tests
More informationHow invariants help writing loops Author: Sander Kooijmans Document version: 1.0
How invariants help writing loops Author: Sander Kooijmans Document version: 1.0 Why this document? Did you ever feel frustrated because of a nasty bug in your code? Did you spend hours looking at the
More informationTeradata. This was compiled in order to describe Teradata and provide a brief overview of common capabilities and queries.
Teradata This was compiled in order to describe Teradata and provide a brief overview of common capabilities and queries. What is it? Teradata is a powerful Big Data tool that can be used in order to quickly
More informationMicroservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer
Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer http://ewolff.com Why Microservices? Why Microservices? Strong modularization Replaceability Small units Sustainable Development
More informationErlang. Joe Armstrong.
Erlang Joe Armstrong joe.armstrong@ericsson.com 1 Who is Joe? Inventor of Erlang, UBF, Open Floppy Grid Chief designer of OTP Founder of the company Bluetail Currently Software Architect Ericsson Current
More informationTHANKS FOR READING. - Marco Behler, Author. Copyright 2015 Marco Behler GmbH. All Rights Reserved.
6 THANKS FOR READING Thanks for reading Customer Requirements - Everything Programmers Need To Know Before Writing Code. If you have any suggestions, feedback (good or bad) then please do not hesitate
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 informationLast Time: Acceleration Data Structures for Ray Tracing. Schedule. Today. Shadows & Light Sources. Shadows
Last Time: Acceleration Data Structures for Ray Tracing Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion
More informationImproving Drupal search experience with Apache Solr and Elasticsearch
Improving Drupal search experience with Apache Solr and Elasticsearch Milos Pumpalovic Web Front-end Developer Gene Mohr Web Back-end Developer About Us Milos Pumpalovic Front End Developer Drupal theming
More informationInstallation Guide for the TITAN Designer and TITAN Executor for the Eclipse IDE
INSTALLATION GUIDE 1 (13) Installation Guide for the TITAN Designer and TITAN Executor for the Eclipse IDE Abstract This document describes the detailed information of installing the TITAN Designer and
More informationDrupalGovcon July 20th, 2016
Agile Drupal 8 Builds: Doing the Most Without PHP DrupalGovcon July 20th, 2016 Matt Cheney & Molly Byrnes 1 Hello to Drupalcon Govcon My name is Matthew Cheney. I work on the magical platform that is Pantheon.
More informationData Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data
More informationCS168 Programming Assignment 2: IP over UDP
Programming Assignment 2: Assignment Out: February 17, 2011 Milestone: February 25, 2011 Assignment Due: March 4, 2011, 10pm 1 Introduction In this assignment you will be constructing a Virtual IP Network
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 informationAutomated Testing of Tableau Dashboards
Kinesis Technical Whitepapers April 2018 Kinesis CI Automated Testing of Tableau Dashboards Abstract Companies make business critical decisions every day, based on data from their business intelligence
More informationHello, welcome to creating a widget in MyUW. We only have 300 seconds, so let s get going.
Hello, welcome to creating a widget in MyUW. We only have 300 seconds, so let s get going. And I ve included a slide about me. You might wonder why, since I only have five minutes, but don t worry. Widgets
More informationHandout 4: Version Control Reference
CSCI 2600 Principles of Software Handout 4: Version Control Reference Introduction SVN (Subversion) provides the following functionality: It allows multiple users to edit the same files independently,
More informationMBFuzzer - MITM Fuzzing for Mobile Applications
MBFuzzer - MITM Fuzzing for Mobile Applications Fatih Özavcı Mentor of MBFuzer @ yakindanegitim.org fatih.ozavci at gamasec.net gamasec.net/fozavci Scope Yakindan Egitim Project Security Vulnerabilities
More informationTOP 10 FREE PYTHON PROGRAMMING BOOKS - DOWNLOAD PDF OR
PDF EBOOK3000 TOP 10 FREE PYTHON PROGRAMMING BOOKS - DOWNLOAD PDF OR 1 / 5 2 / 5 3 / 5 java database programming bible pdf ebook Details: Paperback: 366 pages Publisher: WOW! ebook; 1st edition (April
More informationSECTION 2: HW3 Setup.
SECTION 2: HW3 Setup cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis,CSE 390a,Justin Bare, Deric Pang, Erin Peach, Vinod Rathnam LINKS TO DETAILED SETUP AND USAGE INSTRUCTIONS
More informationKarlen Communications Track Changes and Comments in Word. Karen McCall, M.Ed.
Karlen Communications Track Changes and Comments in Word Karen McCall, M.Ed. Table of Contents Introduction... 3 Track Changes... 3 Track Changes Options... 4 The Revisions Pane... 10 Accepting and Rejecting
More informationAnalytics for UX Workshop. Web Analytics for UX,
Analytics for UX Workshop 1 About Me Mike Beasley @UXMikeBeasley UX Architect, ITHAKA Author, Practical Web Analytics for User Experience Co-founder, Ignite UX Michigan (igniteuxmi.com) 2 Meet Google Analytics
More informationDeveloping Accessible Flex Applications
Developing Accessible Flex Applications Andrew Kirkpatrick Adobe Systems akirkpat@adobe.com 1 Agenda Introductions Motivation for Accessibility Planning for Accessibility Building Accessible Applications
More informationThe Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation
The Next Generation of Eclipse: e4 Mike Milinkovich Executive Director Eclipse Foundation 1 Changing Environment New Technologies: RIA Applications and Cloud Computing AJAX, Flash, Silverlight Amazon E2
More informationRust for high level applications. Lise Henry
Rust for high level applications Lise Henry Who am I Elisabeth Henry A.k.a Lizzie Crowdagger Computer science background Semi-professional fantasy writer I like Rust, but not really into systems programming
More informationFreeBSD and Git. Ed Maste - FreeBSD Vendor Summit 2018
FreeBSD and Git Ed Maste - FreeBSD Vendor Summit 2018 Purpose History and Context - ensure we re starting from the same reference Identify next steps for more effective use / integration with Git / GitHub
More informationSelecting Wordpress as Your Web Platform
Selecting Wordpress as Your Web Platform Why Choose WordPress: World s most popular weblog platform New York Times, CNN, People, EBay, Yahoo Becoming widely used as a CMS (Content Management System) easy
More informationProject Horizon Technical Overview. Steven Forman Principal Technical Consultant
Project Horizon Technical Overview Steven Forman Principal Technical Consultant Agenda Banner Evolution Overview Project Horizon Overview Project Horizon Architecture Review Preparing for Project Horizon
More informationReengineering II. Transforming the System
Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have
More informationHigh Availability Distributed (Micro-)services. Clemens Vasters Microsoft
High Availability Distributed (Micro-)services Clemens Vasters Microsoft Azure @clemensv ice Microsoft Azure services I work(-ed) on. Notification Hubs Service Bus Event Hubs Event Grid IoT Hub Relay Mobile
More informationAnalysis Tool Project
Tool Overview The tool we chose to analyze was the Java static analysis tool FindBugs (http://findbugs.sourceforge.net/). FindBugs is A framework for writing static analyses Developed at the University
More informationZero Install. Decentralised cross-platform package management
Zero Install Decentralised cross-platform package management Thomas Leonard / University of Cambridge / @talex5 OCaml 2014, Gothenburg, Sweden, September 5, 2014 History Started the ROX desktop in 1999...
More informationDECISION STRUCTURES: USING IF STATEMENTS IN JAVA
DECISION STRUCTURES: USING IF STATEMENTS IN JAVA S o far all the programs we have created run straight through from start to finish, without making any decisions along the way. Many times, however, you
More information"BEHAVIOR PATTERNS FOR DESIGNING AUTOMATED TESTS"
BIO PRESENTATION W3 5/16/2007 11:30:00 AM "BEHAVIOR PATTERNS FOR DESIGNING AUTOMATED TESTS" Jamie Mitchell Test & Automation Consulting LLC International Conference On Software Test Analysis And Review
More informationSelenium Testing Course Content
Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference
More informationThe Intuitive Jira Guide For Users (2018)
The Intuitive Jira Guide For Users (2018) idalko.com/jira-guide-pdf/ June 27, 2018 In this PDF you ll find the comprehensive Jira guide for users, brought to you by the Atlassian Platinum Solution Partner
More informationFirst-Order Translation Checklist
CS103 Winter 2019 First-Order Translation Checklist Cynthia Lee Keith Schwarz In this handout, we ve distilled five specific points that you should check in your first-order logic statements before submitting
More informationCIO 24/7 Podcast: Tapping into Accenture s rich content with a new search capability
CIO 24/7 Podcast: Tapping into Accenture s rich content with a new search capability CIO 24/7 Podcast: Tapping into Accenture s rich content with a new search capability Featuring Accenture managing directors
More informationCaching Basics. Memory Hierarchies
Caching Basics CS448 1 Memory Hierarchies Takes advantage of locality of reference principle Most programs do not access all code and data uniformly, but repeat for certain data choices spatial nearby
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 information. social? better than. 7 reasons why you should focus on . to GROW YOUR BUSINESS...
Is EMAIL better than social? 7 reasons why you should focus on email to GROW YOUR BUSINESS... 1 EMAIL UPDATES ARE A BETTER USE OF YOUR TIME If you had to choose between sending an email and updating your
More informationAutomatic Identification of Important Clones for Refactoring and Tracking
Automatic Identification of Important Clones for Refactoring and Tracking Manishankar Mondal Chanchal K. Roy Kevin A. Schneider Department of Computer Science, University of Saskatchewan, Canada {mshankar.mondal,
More informationGROW YOUR BUSINESS WITH HELP FROM GOOGLE Ranking Factors
GROW YOUR BUSINESS WITH HELP FROM GOOGLE Ranking Factors JUSTIN EMIG VP, MARKETING AND INNOVATION WEB TALENT MARKETING HELLO I am Justin Emig Holds 10 digital marketing certifications Has 9 years of digital
More informationDavid Bernstein Five Development Practices Essential for Scrum Teams
David Bernstein Five Development Practices Essential for Scrum Teams 1 Welcome! I m David Scott Bernstein Software developer since 1980 Trained 8,000 developers since 1990 Published author since 2015 Website:
More informationWACC Report. Zeshan Amjad, Rohan Padmanabhan, Rohan Pritchard, & Edward Stow
WACC Report Zeshan Amjad, Rohan Padmanabhan, Rohan Pritchard, & Edward Stow 1 The Product Our compiler passes all of the supplied test cases, and over 60 additional test cases we wrote to cover areas (mostly
More informationGit Branching for Agile Teams
Git Branching for Agile Teams Why use Git + agile? Git helps agile teams unleash their potential How? Developer First, let s review two pillars of agile 1 Build in narrow vertical slices Waterfall: can
More informationTop 5 Issues that Cannot be Resolved by DBAs (other than missed bind variables)
Top 5 Issues that Cannot be Resolved by DBAs (other than missed bind variables) March 12, 2013 Michael Rosenblum Dulcian, Inc. www.dulcian.com 1 of 43 Who Am I? Misha Oracle ACE Co-author of 2 books PL/SQL
More informationJUGAT Flex 3. Christoph Atteneder. May Flash / Flex Development Technical Lead Adobe Systems Incorporated. All Rights Reserved.
JUGAT Flex 3 Christoph Atteneder Flash / Flex Development Technical Lead May 2008 2006 Adobe Systems Incorporated. All Rights Reserved. 1 ADOBE FLEX 3 A highly productive, free open source framework for
More informationCS221: Algorithms and Data Structures. Asymptotic Analysis. Alan J. Hu (Borrowing slides from Steve Wolfman)
CS221: Algorithms and Data Structures Asymptotic Analysis Alan J. Hu (Borrowing slides from Steve Wolfman) 1 Learning Goals By the end of this unit, you will be able to Define which program operations
More informationVersion Control. Kyungbaek Kim. Chonnam National University School of Electronics and Computer Engineering. Original slides from James Brucker
Version Control Chonnam National University School of Electronics and Computer Engineering Kyungbaek Kim Original slides from James Brucker What is version control Manage documents over time Keep a history
More informationHaskell Program Coverage Toolkit
Haskell Program Coverage Toolkit Andy Gill Colin Runciman Why Study Code Coverage? If your program contains reachable code that has not been executed by your tests, then your program is insufficiently
More information