Exam Preparation

Total Page:16

File Type:pdf, Size:1020Kb

Exam Preparation Software Engineering Tools Course Summary Created by Tali Gutman, According to lectures by Zvi Gutterman Written in OpenOffice Writer™ I don't promise anything about this summary, it's been adapted from lecture slides and wikipedia. Introduction Syllabus: • Logging • Source Control Management • Build Tools • Documentation Tools • Quality Assurance • Reverse Engineering • Legal Summary What are we looking for? • Software development shortcuts • Stability • Support • Known standards • Easy integration with other products • e.g. IDE plug in, web interface • Simple • Scale well • Supported platforms • Commonly used • Open/close source Reading List - Will be mentioned as we go along Logging Tools Logging - Definition: - Low-tech method for debugging applications - Can also be viewed as an auditing tool [meaning - tool for examination, verification etc...] Basic features of any logging library are: • Control over which logging statements are enabled/disabled • Manage output destinations and output formats >> Central issue is the categorization of logging statements [From Wikipedia] In computerized data logging, a computer program may automatically record events in a certain scope in order to provide an audit trail that can be used to diagnose problems. Examples of physical systems which have logging subsystems include process control systems, and the black box recorders installed in aircraft. Many operating systems and multitudinous computer programs include some form of logging subsystem. Some operating systems provide a syslog service (described in RFC 3164), which allows the filtering and recording of log messages to be performed by a separate dedicated subsystem, rather than placing the onus on each application to provide its own ad hoc logging system. In many cases, the logs are esoteric and hard to understand; they need to be subjected to log analysis in order to make sense of them. Other servers use a splunk to parse log files in order to facilitate troubleshooting; this approach may yield correlations between seemingly-unrelated events on different servers. Other enterprise class solutions such as those from LogLogic collect log data files in volume and make them available for reporting and real-time analysis. [End of Wikipedia bit] Logger – Definition: - Named entities that follow the hierarchical naming rule. [example: A logger named 'com' is the direct parent of a logger named 'com.foo' and an ancestor of a logger named 'com.foo.bar'] (Irrelevant note: Foobar, adaptation of FUBAR, stands for "Fucked Up Beyond All Recognition. Thought you'd like to know) Log4j - A logging package for the Java Language (Ceki Gülcü wrote this logger) Loggers, Appenders and Layouts Log4j has three main components: loggers, appenders and layouts. These three types of components work together to enable developers to log messages according to message type and level, and to control at runtime how these messages are formatted and where they are reported. Log4j Levels: • Loggers may be assigned levels. The set of possible levels, that is DEBUG, INFO, WARN, ERROR and FATAL are defined in the org.apache.log4j.Level class, which I'm adding here: [From class definition] The DEBUG Level designates fine-grained informational events that are most useful to debug an application. The ERROR level designates error events that might still allow the application to continue running. The FATAL level designates very severe error events that will presumably lead the application to abort. The INFO level designates informational messages that highlight the progress of the application at coarse-grained level. The WARN level designates potentially harmful situations. [End of from class bit] • If a given logger is not assigned a level, then it inherits one from its closest ancestor with an assigned level. • A logging request is said to be enabled if its level is higher than or equal to the level of its logger. Otherwise, the request is said to be disabled. A logger without an assigned level will inherit one from the hierarchy. This rule is summarized below. Basic Selection Rule A log request of level p in a logger with (either assigned or inherited, whichever is appropriate) level q, is enabled if p >= q. This rule is at the heart of log4j. It assumes that levels are ordered. For the standard levels, we have DEBUG < INFO < WARN < ERROR < FATAL. Log4j Appenders • Output targets are implemented by appenders. Appenders exist for java.io.Writer, the console, files, Unix syslog, JMS [Java Message Service, it's a middleware for inter- process communications in Java. My deepest apologies to those who did not take OS yet, and my even deeper ones to those who did.], NT Event Log, SMTP and more. • More than one appender can be attached to a logger. • Appenders follow the logger hierarchy in an additive fashion. For example, if a console appender is added to the root logger, then all enabled logging requests will at least print on the console. If in addition a file appender is added to a logger, say C, then enabled logging requests for C and C's children will print on a file and on the console. It is possible to override this default behavior so that appender accumulation is no longer additive by setting the additivity flag to false. The rules governing appender additivity are summarized below. Appender Additivity The output of a log statement of logger C will go to all the appenders in C and its ancestors. This is the meaning of the term "appender additivity". However, if an ancestor of logger C, say P, has the additivity flag set to false, then C's output will be directed to all the appenders in C and it's ancestors up to and including P but not the appenders in any of the ancestors of P. Loggers have their additivity flag set to true by default. Layouts & ObjectRenderers • Users can customize the output of an appender by associating with it a Layout. The layout is responsible for formatting the logging request according to the user's wishes, whereas an appender takes care of sending the formatted output to its destination. The PatternLayout, part of the standard log4j distribution, lets the user specify the output format according to conversion patterns similar to the C language printf function. • Logging output can be formatted also in HTML or XML among other formats. • It is also possible to format the output by message object type by registering an appropriate ObjectRenderer for a given type. [Just as importantly, log4j will render the content of the log message according to user specified criteria. For example, if you frequently need to log Oranges, an object type used in your current project, then you can register an OrangeRenderer that will be invoked whenever an orange needs to be logged. Object rendering follows the class hierarchy. For example, assuming oranges are fruits, if you register an FruitRenderer, all fruits including oranges will be rendered by the FruitRenderer, unless of course you registered an orange specific OrangeRenderer. ] Configuration • Log4j allows both programmatical and script-based configuration • Configuration scripts can be expressed as key=value pairs or in XML format. • Meaning: You can configure via code, or you can read external configuration files. Logging performance: • Performance when logging is turned off is extremely fast but incurs the hidden cost of parameter construction, regardless of whether the message will be logged or not. To avoid the parameter construction cost write: if(logger.isDebugEnabled() { logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i])); } • Performance of logging when logging is turned on is determined by the cost of walking the logger hierarchy. Typical cost of a hierarchy walk is in the range 5 to 15 microseconds. • Actual logging is in order of 100 to 300 microseconds. Conclusion • Log4j is a popular logging package written in Java • One of its distinctive features is the notion of inheritance in loggers. • Log statements can be completely managed using configuration files. They can be selectively enabled or disabled and sent to different output targets in user chosen formats. • Log statements can remain in shipped code without incurring a heavy performance cost. Source Control Management ● Requirements ● Vocabulary ● Project organization ● Versioning ● Tools ○ RCS, CVS ○ Source Safe ○ Clear Case ○ Subversion ○ Additional tools Requirements • Software is made of many files • Source files, documentation, binaries, graphics, etc. • Complex directory tree • Some files are dynamically generated during the build process Which files do we store? In what structure? • Many developers • Need the same files • Privileges • Offline development • Mistakes • Multiple products may be base on the same source code • Distributed development sites • Low communication bandwidth • Archive and logging • When a function was added • Which tools are being used (like Log4j) • Management tool • Great for summary information. • Beware of abuse! Vocabulary http://en.wikipedia.org/wiki/Revision_control#Common_vocabulary http://producingoss.com/html-chunk/vc.html • Repository • The repository is where the file data is stored, often on a server. Sometimes also called a depot. • A database in which changes are stored. Some version control systems are centralized: there is a single, master repository, which stores all changes to the project. Others are decentralized: each developer has his own repository, and changes can be swapped back and forth between repositories arbitrarily. The version control system keeps track of dependencies between changes, and when it's time to make a release, a particular set of changes is approved for that release. The question of whether centralized or decentralized is better is one of the enduring holy wars of software development; try not to fall into the trap of arguing about it on your project lists. • Working copy • The working copy is the local copy of files from a repository, at a specific time or revision. All work done to the files in a repository is done on a working copy, hence the name. • A developer's private directory tree containing the project's source code files, and possibly its web pages or other documents.
Recommended publications
  • Log4j-Users-Guide.Pdf
    ...................................................................................................................................... Apache Log4j 2 v. 2.2 User's Guide ...................................................................................................................................... The Apache Software Foundation 2015-02-22 T a b l e o f C o n t e n t s i Table of Contents ....................................................................................................................................... 1. Table of Contents . i 2. Introduction . 1 3. Architecture . 3 4. Log4j 1.x Migration . 10 5. API . 16 6. Configuration . 18 7. Web Applications and JSPs . 48 8. Plugins . 56 9. Lookups . 60 10. Appenders . 66 11. Layouts . 120 12. Filters . 140 13. Async Loggers . 153 14. JMX . 167 15. Logging Separation . 174 16. Extending Log4j . 176 17. Extending Log4j Configuration . 184 18. Custom Log Levels . 187 © 2 0 1 5 , T h e A p a c h e S o f t w a r e F o u n d a t i o n • A L L R I G H T S R E S E R V E D . T a b l e o f C o n t e n t s ii © 2 0 1 5 , T h e A p a c h e S o f t w a r e F o u n d a t i o n • A L L R I G H T S R E S E R V E D . 1 I n t r o d u c t i o n 1 1 Introduction ....................................................................................................................................... 1.1 Welcome to Log4j 2! 1.1.1 Introduction Almost every large application includes its own logging or tracing API. In conformance with this rule, the E.U.
    [Show full text]
  • Web Development with Java
    Web Development with Java Tim Downey Web Development with Java Using Hibernate, JSPs and Servlets Tim Downey, BS, MS Florida International University Miami, FL 33199, USA British Library Cataloguing in Publication Data A catalogue record for this book is available from the British Library Library of Congress Control Number: 2007925710 ISBN: 978-1-84628-862-3 e-ISBN: 978-1-84628-863-0 Printed on acid-free paper © Springer-Verlag London Limited 2007 Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any form or by any means, with the prior permission in writing of the pub- lishers, or in the case of reprographic reproduction in accordance with the terms of licences issued by the Copyright Licensing Agency. Enquiries concerning reproduction outside those terms should be sent to the publishers. The use of registered names, trademarks, etc. in this publication does not imply, even in the absence of a specifi c statement, that such names are exempt from the relevant laws and regulations and therefore free for general use. The publisher makes no representation, express or implied, with regard to the accuracy of the informa- tion contained in this book and cannot accept any legal responsibility or liability for any errors or omissions that may be made. 9 8 7 6 5 4 3 2 1 Springer Science+Business Media springer.com To Bobbi, my sweetheart, with all my love. Preface I have been teaching web development for ten years.
    [Show full text]
  • Enterprise Development with Flex
    Enterprise Development with Flex Enterprise Development with Flex Yakov Fain, Victor Rasputnis, and Anatole Tartakovsky Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Enterprise Development with Flex by Yakov Fain, Victor Rasputnis, and Anatole Tartakovsky Copyright © 2010 Yakov Fain, Victor Rasputnis, and Anatole Tartakovsky.. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Mary E. Treseler Indexer: Ellen Troutman Development Editor: Linda Laflamme Cover Designer: Karen Montgomery Production Editor: Adam Zaremba Interior Designer: David Futato Copyeditor: Nancy Kotary Illustrator: Robert Romano Proofreader: Sada Preisch Printing History: March 2010: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Enterprise Development with Flex, the image of red-crested wood-quails, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein.
    [Show full text]
  • Kony Mobilefabric Integration Service - Manual Upgrade Version 1.3
    Kony MobileFabricTM Integration Service - Manual Upgrade Release 7.2 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and the document version stated on the Revision History page. Remember to always view and download the latest document version relevant to the software release you are using. © 2016 by Kony, Inc. All rights reserved 1 of 130 Kony MobileFabric Integration Service - Manual Upgrade Version 1.3 Copyright © 2013 by Kony, Inc. All rights reserved. October, 2016 This document contains information proprietary to Kony, Inc., is bound by the Kony license agreements and may not be used except in the context of understanding the use and methods of Kony Inc, software without prior, express, written permission. Kony, Empowering Everywhere, Kony MobileFabric, Kony Nitro, and Kony Visualizer are trademarks of Kony, Inc. Microsoft, the Microsoft logo, Internet Explorer, Windows, and Windows Vista are registered trademarks of Microsoft Corporation. Apple, the Apple logo, iTunes, iPhone, iPad, OS X, Objective-C, Safari, Apple Pay, Apple Watch and Xcode are trademarks or registered trademarks of Apple, Inc. Google, the Google logo, Android, and the Android logo are registered trademarks of Google, Inc. Chrome is a trademark of Google, Inc. BlackBerry, PlayBook, Research in Motion, and RIM are registered trademarks of BlackBerry. All other terms, trademarks, or service marks mentioned in this document have been capitalized and are to be considered the property of their respective owners. © 2016 by Kony, Inc. All rights reserved 2 of 130 Kony MobileFabric Integration Service - Manual Upgrade Version 1.3 Revision History Date Document Description of Modifications/Release Version 10/24/2016 1.3 Document updated for release 7.2 07/20/2016 1.2 Document updated for release 7.1 06/10/2016 1.1 Appended new section Upgrading Tomcat from 5.0.x to 7.0.x.
    [Show full text]
  • Oracle Fusion Middleware Configuring Log Files and Filtering Log Messages for Oracle Weblogic Server, 11G Release 1 (10.3.6) E13739-07
    Oracle® Fusion Middleware Configuring Log Files and Filtering Log Messages for Oracle WebLogic Server 11g Release 1 (10.3.6) E13739-07 September 2013 This document describes how you use WebLogic Server logging services to monitor server, subsystem, and application events. Oracle Fusion Middleware Configuring Log Files and Filtering Log Messages for Oracle WebLogic Server, 11g Release 1 (10.3.6) E13739-07 Copyright © 2007, 2013, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
    [Show full text]
  • Licensing Information User Manual Release 9.0 Revision 1.2
    Oracle SD-WAN Edge Licensing Information User Manual Release 9.0 Revision 1.2 October 2020 Licensing Information User Manual Oracle SD-WAN Edge 8.2 Oracle SD-WAN Edge Licensing Information ser !an"al# Release 9.0 Copyright Information $o%yrig't ( 2020# Oracle and)or its a*liates. All rig'ts reser+ed. ,'is soft-are and related doc"mentation are %rovided "nder a license agreement containing restrictions on "se and disclosure and are %rotected by intellect"al %ro%ert& la-s. E.ce%t as e.%ressly %ermitted in &o"r license agreement or allo-ed by la-# &o" may not "se# co%&# re%rod"ce# translate# broadcast# modif&# license# transmit# distrib"te# e.'ibit# %erform# %"blish# or display any %art# in any form# or by any means. Re+erse engineering# disassembl&# or decom%ilation of t'is soft-are# "nless re/"ired by la- for intero%erabilit&# is %ro'ibited. ,'e information contained 'erein is sub0ect to change -it'o"t notice and is not -arranted to be error-free. If &o" find any errors, %lease re%ort t'em to "s in -riting. If t'is is soft-are or related documentation t'at is deli+ered to t'e .S. 2o+ernment or an&one licensing it on be'alf of t'e .S. 2o+ernment# t'en t'e follo-ing notice is a%%licable3 .S. 2O4ERN!EN, END SERS3 Oracle %rograms, incl"ding any o%erating s&stem# integrated soft-are# any %rograms installed on t'e 'ard-are# and)or documentation# deli+ered to .S.
    [Show full text]
  • Zenworks Mobile Workspace Migration Guide
    ZENworks Mobile Workspace Migration guide Version 3.18.4 - March 2019 Copyright © Micro Focus Software Inc. All rights reserved. Table of Contents Overview. 1 From ZENworks Mobile Workspace 3.X to ZENworks Mobile Workspace 3.18 . 1 Introduction . 1 Required . 1 Server applications . 1 Push configuration . 1 Optional . 1 Server applications . 1 Push configuration . 2 Unix . 2 Windows . 2 Log4j configuration . 2 For information . 3 Reply/forward HTML content. 3 From ZENworks Mobile Workspace 3.X to ZENworks Mobile Workspace 3.17 . 4 Introduction . 4 Required . 4 Server applications . 4 LDAP configuration . 4 Log4j configuration . 4 Optional . 4 Customer infrastructure . 4 From ZENworks Mobile Workspace 3.X to ZENworks Mobile Workspace 3.16 . 5 Introduction . 5 Required . 5 Server applications . 5 SSL/TLS certificates. 5 LDAP configuration . 5 Workspace camera feature. 6 New supported media extensions attachment. 6 Customer infrastructure . 6 From ZENworks Mobile Workspace 3.X to ZENworks Mobile Workspace 3.15 . 6 Introduction . 6 Optional . 7 Server applications . 7 Customer infrastructure . 7 Overview Usually, an update of the ZENworks Mobile Workspace application server to a newer version only requires to execute the installer tool. However, some manual operations may be necessary to ensure the proper functioning of the product. This guide describes the required steps to finalize the migration to the desired supported version. All instructions for versions between the previous version and the updated version need to be followed. From ZENworks Mobile Workspace 3.X to ZENworks Mobile Workspace 3.18 Introduction This version introduces the push configuration per application. Required Server applications Push configuration Since ZENworks Mobile Workspace 3.18.0, push is no longer configured globally on the server, but on a per-application basis directly from the administration console.
    [Show full text]
  • Confidentiality and Authenticity for Distributed Version Control
    | Author's copy | Confidentiality and Authenticity for Distributed Version Control Systems — A Mercurial Extension Michael Lass Dominik Leibenger Christoph Sorge Paderborn University CISPA, Saarland University CISPA, Saarland University 33098 Paderborn, Germany 66123 Saarbrucken,¨ Germany 66123 Saarbrucken,¨ Germany [email protected] [email protected] [email protected] Abstract—Version Control Systems (VCS) are a valuable tool is a cryptography-based access control solution for SVN that for software development and document management. Both enforces access rights using end-to-end encryption. [13] client/server and distributed (Peer-to-Peer) models exist, with the Since Git [7] was released in 2005, distributed VCS have latter (e.g., Git and Mercurial) becoming increasingly popular. gained more and more popularity. Mercurial [16] and Git are Their distributed nature introduces complications, especially concerning security: it is hard to control the dissemination of the most-popular such systems today. In contrast to modern contents stored in distributed VCS as they rely on replication of centralized VCS, repositories are stored on users’ local work- complete repositories to any involved user. stations again. Collaboration among users is supported by We overcome this issue by designing and implementing a allowing users to synchronize their repositories with others. concept for cryptography-enforced access control which is trans- Revisions can be pulled from / pushed to remote repositories. parent to the user. Use of field-tested schemes (end-to-end encryp- tion, digital signatures) allows for strong security, while adoption There are no limitations concerning the resulting communica- of convergent encryption and content-defined chunking retains tion paths: Distributed VCS support centralized setups, fully storage efficiency.
    [Show full text]
  • Open Source and Third Party Documentation
    Open Source and Third Party Documentation Verint.com Twitter.com/verint Facebook.com/verint Blog.verint.com Content Introduction.....................2 Licenses..........................3 Page 1 Open Source Attribution Certain components of this Software or software contained in this Product (collectively, "Software") may be covered by so-called "free or open source" software licenses ("Open Source Components"), which includes any software licenses approved as open source licenses by the Open Source Initiative or any similar licenses, including without limitation any license that, as a condition of distribution of the Open Source Components licensed, requires that the distributor make the Open Source Components available in source code format. A license in each Open Source Component is provided to you in accordance with the specific license terms specified in their respective license terms. EXCEPT WITH REGARD TO ANY WARRANTIES OR OTHER RIGHTS AND OBLIGATIONS EXPRESSLY PROVIDED DIRECTLY TO YOU FROM VERINT, ALL OPEN SOURCE COMPONENTS ARE PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. Any third party technology that may be appropriate or necessary for use with the Verint Product is licensed to you only for use with the Verint Product under the terms of the third party license agreement specified in the Documentation, the Software or as provided online at http://verint.com/thirdpartylicense. You may not take any action that would separate the third party technology from the Verint Product. Unless otherwise permitted under the terms of the third party license agreement, you agree to only use the third party technology in conjunction with the Verint Product.
    [Show full text]
  • Syncro SVN Client 8.1
    Syncro SVN Client 8.1 Notice Copyright All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of the publisher. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and SyncRO Soft SRL, was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. Syncro SVN Client | Contents | 5 Contents Chapter 1: Introduction..........................................................................................11 Chapter 2: Installation............................................................................................13 Installation
    [Show full text]
  • Intro to Log4j 2.0.Key
    Introducing Log4j 2.0 History of Apache Log4j Early Java Logging • System.out and System.err • Originally, Java didn't have any form of logging other than abuse of the standard output and error PrintStream objects. • The shell running a Java application could simply redirect standard output and standard error to files. • It was common to include a sort of debug system property to enable or disable logging messages. • Many programmers still haven't upgraded from Logging 0.1. Example Code boolean debug = Boolean.getBoolean(“DEBUG”); ! if (debug) { System.out.println(“Low priority.”); System.err.println(“High priority.”); } ! catch (final Throwable t) { t.printStackTrace(); } The Original Log4j • Written by Ceki Gülcü • Provided a system of named Loggers that aided in categorising and filtering log messages. • Allowed for more than two levels of logging similar to Apache HTTPD Server and other custom logging systems. • Easily configurable using a Java properties file, XML file, or programmatically. • Provided various ways to output and save log messages. Example Code private static final Logger LOGGER = Logger.getLogger(“org.apache.Foo”); ! LOGGER.debug(“Low priority.”); LOGGER.info(“Next level up.”); LOGGER.warn(“High priority.”); LOGGER.error(“Higher priority.”); LOGGER.fatal(“Catastrophic priority.”); ! catch (final Throwable t) { LOGGER.error(“Caught exception.”, t); } Logback • Gülcü went on to create SLF4J and Logback • Provided parameterised log messages with placeholders. • Added markers for additional filterable message information.
    [Show full text]
  • Git and Gerrit in Action and Lessons Learned Along the Path to Distributed Version Control
    Git and Gerrit in Action And lessons learned along the path to distributed version control Chris Aniszczyk (Red Hat) Principal Software Engineer [email protected] http://aniszczyk.org About Me I've been using and hacking open source for ~12 years - contribute{d} to Gentoo Linux, Fedora Linux, Eclipse Hack on Eclipse, Git and other things at Red Hat Member of the Eclipse Board of Directors Member in the Eclipse Architecture Council I like to run! (2 mins short of Boston qualifying ;/) Co-author of RCP Book (www.eclipsercp.org) An Introduction to Git and Gerrit | © 2011 by Chris Aniszczyk Agenda History of Version Control (VCS) The Rise of Distributed Version Control (DVCS) Code Review with Git and Gerrit Lessons Learned at Eclipse moving to a DVCS Conclusion Q&A An Introduction to Git and Gerrit | © 2011 by Chris Aniszczyk Version Control Version Control Systems manage change “The only constant is change” (Heraclitus) An Introduction to Git and Gerrit | © 2011 by Chris Aniszczyk Why Version Control? VCS became essential to software development because: They allow teams to collaborate They manage change and allow for inspection They track ownership They track evolution of changes They allow for branching They allow for continuous integration An Introduction to Git and Gerrit | © 2011 by Chris Aniszczyk Version Control: The Ancients 1972 – Source Code Control System (SCCS) Born out of Bell Labs, based on interleaved deltas No open source implementations as far as I know 1982 – Revision Control System (RCS) Released as an alternative to SCCS
    [Show full text]