Programming HeuristicLab Basics A. Scheibenpflug Heuristic and Evolutionary Algorithms Laboratory (HEAL) School of Informatics/Communications/Media, Campus.

Slides:



Advertisements
Similar presentations
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Advertisements

Chapter 10 Database Applications Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.
Programming HeuristicLab A. Scheibenpflug Heuristic and Evolutionary Algorithms Laboratory (HEAL) School of Informatics/Communications/Media, Campus Hagenberg.
Basic Input Output System
ITEC200 – Week03 Inheritance and Class Hierarchies.
Chapter 9 Chapter 9: Managing Groups, Folders, Files, and Object Security.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
C++ data types. Structs vs. Classes C++ Classes.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
ASP.NET Programming with C# and SQL Server First Edition
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 7: Advanced File System Management.
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
Guide to Using Message Maker Robert Snelick National Institute of Standards & Technology (NIST) December 2005
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Classes and objects Practice 2. Basic terms  Classifier is an element of the model, which specifies some general features for a set of objects. Features.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 7: Advanced File System Management.
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
Chapter 5 Java Script And Forms JavaScript, Third Edition.
Apps Meeting 2010 Travis Armstrong Cyle Nelson January 2010 Advanced C# Customization Training.
Working Out with KURL! Shayne Koestler Kinetic Data.
Developing Workflows with SharePoint Designer David Coe Application Development Consultant Microsoft Corporation.
10-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
Microsoft Visual Basic 2008 CHAPTER ELEVEN Multiple Classes and Inheritance.
HeuristicLab. Motivation  less memory pressure no DOM single pass linear process  less developer effort no interfaces to implement  modularity & flexibility.
Chapter 8: Writing Graphical User Interfaces
JQuery UI. Slide 2 Introduction From the jQuery UI Home Page jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built.
Ray Konopka Developing Custom.NET Component Designers DevCon Course No: 4106.
HeuristicLab Hive An Open Source Environment for Parallel and Distributed Execution of Heuristic Optimization Algorithms S. Wagner, C. Neumüller, A. Scheibenpflug.
Lecture Set 2 Part A: Creating an Application with Visual Studio – Solutions, Projects, Files.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Programming HeuristicLab Basics A. Scheibenpflug Heuristic and Evolutionary Algorithms Laboratory (HEAL) School of Informatics/Communications/Media, Campus.
System.Security.Policy namespace Chinmay Lokesh.NET Security CS 795 Summer 2010.
Reformatted slides from the textbook, C++ How to Program, 6/e Pearson Education, Inc. All rights reserved Chapter 3. [Lecture 02] Introduction to.
RPMS - EHR v1.1 Techie Class Really Powerful at Measuring Stuff.
Developing Great Dashlets Will Abson About Me Project Lead, Share Extras Alfresco Developer and previously Solutions Engineer DevCon 2011 –
Chapter 14 Abstract Classes and Interfaces. Abstract Classes An abstract class extracts common features and functionality of a family of objects An abstract.
Microsoft Visual Basic 2008 CHAPTER ELEVEN Multiple Classes and Inheritance.
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
Programming HeuristicLab Basics A. Scheibenpflug Heuristic and Evolutionary Algorithms Laboratory (HEAL) School of Informatics/Communications/Media, Campus.
JAVA BEANS JSP - Standard Tag Library (JSTL) JAVA Enterprise Edition.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Object Oriented Software Development 4. C# data types, objects and references.
Unit 13 –JQuery Basics Instructor: Brent Presley.
Duke CPS From C++ to Java l Java history: Oak, toaster-ovens, internet language, panacea l What it is ä O-O language, not a hybrid (cf. C++)
HeuristicLab 3.0 Overview. Motivation genericity – no focus on any particular heuristic optimization paradigm – suitable for any kind of algorithm – suitable.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Inheritance and Class Hierarchies Chapter 3. Chapter Objectives  To understand inheritance and how it facilitates code reuse  To understand how Java.
Lecture Set 2 Part A: Creating an Application with Visual Studio – Solutions, Projects, Files 8/10/ :35 PM.
Introduction to Collections. Collections Collections provide a way of organizing related data in a model Different types of collections have different.
 Packages:  Scrapy, Beautiful Soup  Scrapy  Website  
Programming HeuristicLab A. Scheibenpflug Heuristic and Evolutionary Algorithms Laboratory (HEAL) School of Informatics/Communications/Media, Campus Hagenberg.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Web Parts Overview Web parts in SharePoint 2007 “Hello World” web part Typical deployment.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
© 2010 Delmar, Cengage Learning Chapter 11 Creating and Using Templates.
: Information Retrieval อาจารย์ ธีภากรณ์ นฤมาณนลิณี
Apache Struts Technology A MVC Framework for Java Web Applications.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Microsoft Visual Basic 2012: Reloaded Fifth Edition Chapter One An Introduction to Visual Basic 2012.
Developing Great Dashlets Will Abson About Me Project Lead, Share Extras Alfresco Developer and previously Solutions Engineer DevCon 2011 –
Developing Great Dashlets Will Abson About Me Project Lead, Share Extras Alfresco Developer and previously Solutions Engineer DevCon 2011 –
University Of Karachi Department Of Computer Science
Using E-Business Suite Attachments
CARA 3.10 Major New Features
Chapter 2: System Structures
How to organize and document your classes
C++ data types.
Presentation transcript:

Programming HeuristicLab Basics A. Scheibenpflug Heuristic and Evolutionary Algorithms Laboratory (HEAL) School of Informatics/Communications/Media, Campus Hagenberg University of Applied Sciences Upper Austria

Introduction HeuristicLab (HL) is quite a big project As of : – 5 VS solutions containing 187 projects – Lines of code: (EXT) = LOC – 368 unit tests – Quite a lot of feature branches in the SVN repository There are certain patterns/concepts that are used throughout all that code Programming HeuristicLabhttp://dev.heuristiclab.com2

Extension Points HL can be extended in multiple ways – Plugins – User-Defined algorithm – User-Defined problem – Programmable operators – C# Script – Programmable Problem Programming HeuristicLabhttp://dev.heuristiclab.com3

Overview Plugins HL Object Model Deep Cloning Persistence Items HL Data Types HL Collections Content and Views ViewHost Programming HeuristicLabhttp://dev.heuristiclab.com4

Where are we? Programming HeuristicLabhttp://dev.heuristiclab.com5

Plugins Every plugin needs to contain a class that inherits PluginBase If an assembly contains such a class, it is a plugin and loaded by HeuristicLab Programming HeuristicLabhttp://dev.heuristiclab.com6

Plugins PluginDependency must reflect references Plugin Infrastructure does not have to be included as it is always needed We normally use SubWCRev for version information Programming HeuristicLabhttp://dev.heuristiclab.com7

Some additional remarks Plugins are signed with the HeuristicLab key Every plugin builds to sources\bin (output path of project should be “..\..\bin\“ for all configurations adhering to standard HL folder structure) Default namespace and assembly name should/must match plugin description There should be x86, x64, Any CPU Debug and Release configurations “Copy Local“ should be false for all Project/File references Programming HeuristicLabhttp://dev.heuristiclab.com8

HL Object Model Programming HeuristicLabhttp://dev.heuristiclab.com9

Deep Cloning Objects in HeuristicLab that store data and may be displayed in views/collection views should be deep cloneable UI allows “copying” of these objects Inherit from either IDeepCloneable or Item Implement interface and cloning constructor Actual cloning happens in the cloning constructor Programming HeuristicLabhttp://dev.heuristiclab.com10

Deep Cloning Programming HeuristicLabhttp://dev.heuristiclab.com11 Item implements IDeepCloneable Call cloning constructor which implements the cloning

Persistence HL provides it‘s own serialization mechanism A class that should be serializable has to be marked with the StorableClass[] attribute Properties that should be serialized have to be marked with the Storable[] attribute Storable constructor has to be implemented Optional: Define hooks with attribute StorableHook[] to react on loading/saving events Implement IStorableContent to signal that this is a root object Programming HeuristicLabhttp://dev.heuristiclab.com12

Persistence Programming HeuristicLabhttp://dev.heuristiclab.com13 Properties that should be stored in a file have to be marked with Storable[] Mandatory storable constructor. Used by the persistence when deserializing.

Items Items have – A name – A description – An icon – ToStringChanged and ItemImageChanged events All Items are DeepCloneables and Storable Most Items are marked as IContent to allow displaying in views Use Item[] attribute to set name and description Programming HeuristicLabhttp://dev.heuristiclab.com14

Items Programming HeuristicLabhttp://dev.heuristiclab.com15

HL Data Types Located in HeuristicLab.Data (and corresponding views in Data.Views ) Wrap standard.NET data types and provide functionality necessary for UIs: – ValueChanged event – Parsing of strings – Validation Data types include – IntValue, DoubleValue, PercentValue, StringValue,… – Ranges, Arrays, Matrices Programming HeuristicLabhttp://dev.heuristiclab.com16

Collections Located in HeuristicLab.Collections/Core (and Core.Views for the corresponding views) Same as with data types, provide UI friendly wrappers for.NET collections (e.g., additional events) There are Lists, Arrays, Sets, Dictionaries and read-only collections Most are designed for Items Programming HeuristicLabhttp://dev.heuristiclab.com17

Data Types and Collections Programming HeuristicLabhttp://dev.heuristiclab.com18 results.Add(new Result("MWIPS", new IntValue(intRating / 1000))); DoubleValue doubleValue = new DoubleValue(); doubleValue.Value = resultValue.Value.Average(); [Storable] private ItemList terms; public CovarianceSum() : base() { this.terms = new ItemList (); } terms.Select(t => t.GetNumberOfParameters(numberOfVariables)).Sum();

Content and Views HL provides views for all data types, collections and much more (including input validation and updates) Views display (and manipulate) Content Use Content[] attribute to define the type of Content a View can display Inherit UserControl from AsynchronousContentView or ItemView Content is set by HeuristicLab or manually React on events (e.g., OnContentChanged, (De)RegisterContentEvents, …) Programming HeuristicLabhttp://dev.heuristiclab.com19

Content and Views Programming HeuristicLabhttp://dev.heuristiclab.com20 Defines what Content can be displayed with this view

Displaying Content Manually: – Log log = new Log(); – LogView logview = new LogView(); – logview.Content = log; In an own tab using discovery: – MainFormManager.MainForm.ShowContent(log); Using a ViewHost Programming HeuristicLabhttp://dev.heuristiclab.com21 Log log = new Log(); LogView logview = new LogView(); logview.Content = log; MainFormManager.MainForm.ShowContent(log);

ViewHost ViewHost is a special ContentView that changes it‘s appearance based on the type of Content Content[] attribute marks a view for a certain content type ViewHost looks up the view based on the Content type and uses it to display the Content Useful for views that can contain different Content types or collection views Programming HeuristicLabhttp://dev.heuristiclab.com22

Useful Links Programming HeuristicLabhttp://dev.heuristiclab.com