Quick training session.  There will always be bugs  But many bugs are easy to fix  Updating an extension takes a long time ◦ Download and install ◦

Slides:



Advertisements
Similar presentations
 Specifies a set of methods (i.e., method headings) that any class that implements that interface must have.  An interface is a type (but is not a class).
Advertisements

Yoshi
GEN2 Touch: Version GEN3: Version
CMSC 202 Exceptions 2 nd Lecture. Aug 7, Methods may fail for multiple reasons public class BankAccount { private int balance = 0, minDeposit =
11-Jun-15 Exceptions. 2 Errors and Exceptions An error is a bug in your program dividing by zero going outside the bounds of an array trying to use a.
Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Chapter 12 Separate Compilation Namespaces Simple Make Files (Ignore all class references.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 16 Applets.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
The easy way to a nice looking website design By a total non-designer (Me!)
07/19/04 NorCal OAUG Training Day, Paper 2.4 John Peters, JRPJR, Inc.1 Oracle Workflow Notifications John Peters JRPJR, Inc.
Desktop Security: Worms and Viruses Brian Arkills, C&C NDC-Sysmgt.
Quick training session.  Download and install takes a long time  End user just wants to work!  We want smooth updates …
Chapter 5 - Making Music: An On-Screen Piano
Io package as Java’s basic I/O system continue’d.
Ranga Rodrigo. Class is central to object oriented programming.
Student Companion - Final Project Presentation Members in Sweden: Andreas Drake Asad Saleem Muhammad Usman Ghani Robert Lundquist Vasilis.
1 Web Based Programming Section 6 James King 12 August 2003.
Chapter 12 Applets and Advanced Graphics  The Applet Class  The HTML Tag F Passing Parameters to Applets F Conversions Between Applications and Applets.
70-294: MCSE Guide to Microsoft Windows Server 2003 Active Directory Chapter 12: Deploying and Managing Software with Group Policy.
DEBUGGING CHAPTER Topics  Getting Started with Debugging  Types of Bugs –Compile-Time Bugs –Bugs Attaching Scripts –Runtime Errors  Stepping.
2013 Dynamics SL Event May 15, As of 5/1/2013 the most recent version of MR is 2012 Rollup 5 Proceed with caution if you choose to update your MR.
Microsoft ® Office SharePoint ® SharePoint calendars II: Connect a SharePoint calendar to Outlook Sharjah Higher Colleges of Technology presents:
Chapter 12 Applets and Advanced GUI  The Applet Class  The HTML Tag F Passing Parameters to Applets F Conversions Between Applications and Applets F.
Distributed File Systems Overview  A file system is an abstract data type – an abstraction of a storage device.  A distributed file system is available.
Sage ACT! 2013 SDK Update Brian P. Mowka March 23, 2012 Template date: October 2010.
Chapter 10: Applets and Advanced Graphics The Applet Class The Applet Class The HTML Tag The HTML Tag Passing Parameters to Applets Passing Parameters.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Java Threads. What is a Thread? A thread can be loosely defined as a separate stream of execution that takes place simultaneously with and independently.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
1 / 22 AliRoot and AliEn Build Integration and Testing System.
Microsoft ® Office SharePoint ® Server 2007 Training SharePoint calendars II: Connect a SharePoint calendar to Outlook Bellwood-Antis School District presents:
Records Engineering 1D04, Teaching Session 11. © Copyright 2006 David Das, Ryan Lortie, Alan Wassyng1 Records  So far we've seen a number of different.
Copyright 2004 Scott/Jones Publishing Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 7 Structured Data and Classes.
1 Loops. 2 Topics The while Loop Program Versatility Sentinel Values and Priming Reads Checking User Input Using a while Loop Counter-Controlled (Definite)
Capabilities of Software. Object Linking & Embedding (OLE) OLE allows information to be shared between different programs For example, a spreadsheet created.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
Namespace, scope, compile time activities, runtime activities When do the small integer values get stored in RAM? How did the names in the builtin namespace.
Chapter 10: Applets and Advanced Graphics The Applet Class The Applet Class The HTML Tag The HTML Tag Passing Parameters to Applets Passing Parameters.
Chapter 14 Applets and Advanced GUI  The Applet Class  The HTML Tag F Passing Parameters to Applets F Conversions Between Applications and Applets F.
Iteration 1 Looping Structures. Iteration 2 The Plan While not everyone understands: 1.Motivate loops 2.For loops 3.While loops 4.Do-while loops 5.Equivalence.
Porting a large scale enterprise application from Tcl/Tk 8.4 to 8.5 Prashant Thakre, Tushar Gupta {prashant_thakre, Gaurav Bansal.
A brief introduction to doxygen. What does a compiler do?  A compiler ignores comments and processes the code.  What does doxygen do? –It ignores the.
Using MS Excel to validate & load your data into Oracle EBS.
2013 Dynamics GP Event May 22, As of 5/1/2013 the most recent version of MR is 2012 Rollup 5 Proceed with caution if you choose to update your MR.
GOSS iCM Forms Gary Ratcliffe. 2 Agenda Webinar Programme Form Groups Publish Multiple Visual Script Editor Scripted Actions Form Examples.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
Architecture Multi Layered Architecture (n-tier): Application: Model Controllers Database Access Graphical User Interface (GUI): Forms, components, controls.
Error Handling Tonga Institute of Higher Education.
Programming in java Packages Access Protection Importing packages Java program structure Interfaces Why interface Defining interface Accessing impln thru.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Session 7 Introduction to Inheritance. Accumulator Example a simple calculator app classes needed: –AdderApp - contains main –AddingFrame - GUI –CloseableFrame.
Ajay Babar Publishing an Application. Steps:- 1. Understand publishing process. 2. Test for App quality. 3. Determine country distribution. 4. Confirm.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Chapter 5 Introduction to Defining Classes Fundamentals of Java.
Migrating from 1.0 to 1.5 A step by step tutorial Joomla!Day Thailand, 2007 Sam Moffatt.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
Development Environment
Winter 2009 Tutorial #6 Arrays Part 2, Structures, Debugger
Eclipse Navigation & Usage.
Navigate to the Kaspersky global product updates page.
FIX: RSOD Red Screen Of Death in Windows 7/8/8.1/10
Maintaining software solutions
A brief introduction to doxygen
Packages and Interfaces
Figure 6-4: Installation and Patching
CSE 303 Concepts and Tools for Software Development
CMSC 202 Exceptions 2nd Lecture.
CMSC 202 Exceptions 2nd Lecture.
Exceptions and networking
Presentation transcript:

Quick training session

 There will always be bugs  But many bugs are easy to fix  Updating an extension takes a long time ◦ Download and install ◦ And the painful clean restart ◦ Doesn’t even matter how small the changes was …  But we have a reload system? …

 Reload is a complex operation  And not 100% reliable ◦ Developers have to do clean sometimes too …  So … not good enough for release!  Main complexity derives from: ◦ Interface changes (rebind callers) ◦ Class layout changes (patch all instances)  But reloading a function body is easy!

 We believe we can do reload cmlibs …  If the patch only contains code ◦ Code in functions ◦ Code in finals ◦ Code in methods

 A patch is a cmlib containing only code  It is a modification of a known package  The cmpatch file contains: ◦ The name of the package it applies to ◦ The package version of dito ◦ A patch number (1, 2, 3…) ◦ And the altered definitions

 A hotfix contains a number of patches (1)  File type “.cmfix”  Bound to an extension  And a package  Both of a specific version

 Extension ◦ cmlib  Hotfix ◦ cmpatch

/** * Mouse entered button. If dragging then draw the button again inverted. */ public void enter(pointI p) { if (helpIcon.visible) { setToolTipText(getRs("calculationPriceDisplayHeavyDrawingTip", "cm.core")); mouseHover(p); } else { setToolTipText(getRs("calculationPriceDisplayTip", "cm.core")); } super(p); } Crash report!

/** * Mouse entered button. If dragging then draw the button again inverted. */ public void enter(pointI p) { if (helpIcon.visible) { setToolTipText(getRs("calculationPriceDisplayHeavyDrawingTip", "cm.core")); mouseHover(p); } else { setToolTipText(getRs("calculationPriceDisplayTip", "cm.core")); } super(p); } /** * Mouse entered button. If dragging then draw the button again inverted. */ public void enter(pointI p) { if (helpIcon and helpIcon.visible) { setToolTipText(getRs("calculationPriceDisplayHeavyDrawingTip", "cm.core")); mouseHover(p); } else { setToolTipText(getRs("calculationPriceDisplayTip", "cm.core")); } super(p); } Crash report … fix: Publish hotfix!

 We publish the hotfix (upload to ftp)  CET at end user will download it with BITS  CET checks package and versions  If it’s applicable: ◦ Wait until idle ◦ Then install silently  Normally, users wont notice the hotfixes at all ◦ Except that the crash does no longer occur

 System is prepared for “visible” hotfixes …  Brief info about hotfixes can be seen here:  And also in the Extension Details Viewer

use cm: io, runtime, extension; int patchnumber = 1; symbol pkg = #"cm.core"; if (pkg != #:package) load(pkg); HotfixInfo info(pkg, patchnumber); info.extensionVersion = version(2, 4, 0); info.defs <<? function(pkg, "coreIdleStep"); buildHotfix(info, "CET Core Hotfix"); cm> Build hotfix number 1 for CET Core Hotfix... make "c:\cmWriteExt\_cmLibTmp\cm.core cmpatch" Created [CET Core Hotfix; ;cm.core;001.cmfix] KB cm> Build hotfix number 1 for CET Core Hotfix... make "c:\cmWriteExt\_cmLibTmp\cm.core cmpatch" Created [CET Core Hotfix; ;cm.core;001.cmfix] KB

/** * Price display button. */ private class PriceDisplayButton extends Button { … /** * Mouse entered button. If dragging then draw the button again inverted. */ public void enter(pointI p) { if (helpIcon and helpIcon.visible) { …

use cm: io, runtime, extension; int patchnumber = 2; symbol pkg = #"cm.application"; if (pkg != #:package) load(pkg); HotfixInfo info(pkg, patchnumber); info.extensionVersion = version(2, 4, 0); SrcRef src(getCuId(pkg, "buildStdPriceDisplay"), 0); Class c = class(pkg, "PriceDisplayButton", src); Method m = c ? c.getMethod("enter", true) : null; info.defs <<? m; buildHotfix(info, "CET Core Hotfix"); /** * Price display button. */ private class PriceDisplayButton extends Button { … /** * Mouse entered button. If dragging then draw the button again inverted. */ public void enter(pointI p) { if (helpIcon and helpIcon.visible) { … /** * Price display button. */ private class PriceDisplayButton extends Button { … /** * Mouse entered button. If dragging then draw the button again inverted. */ public void enter(pointI p) { if (helpIcon and helpIcon.visible) { …

 The single purpose of the hotfix system is:  Quality!  Achieved through fast and smooth bugfixes

 Very untested – for emergency use only  Aimed at small fixes ◦ Access violations etc  No seatbelts, no airbags … ◦ Not too difficult to break  Lack of automation ◦ You have to manage patch numbers by yourselves  Global distribution ◦ STC users will download HW hotfixes etc … ◦ But server redirection are available